all repos — min @ c95b67036916e2fe1fc3932a1fad9fc11f0af637

A small but practical concatenative programming language.

Fixes.
h3rald h3rald@h3rald.com
Sat, 09 Nov 2024 17:54:20 +0100
commit

c95b67036916e2fe1fc3932a1fad9fc11f0af637

parent

4d53dbbeaf8e8da0baacb88b612e18658ef8463d

2 files changed, 28 insertions(+), 4 deletions(-)

jump to
M minpkg/lib/min_gui.nimminpkg/lib/min_gui.nim

@@ -13,6 +13,11 @@

proc window(i: In, v: MinValue): var Fenster = return WINDOWS[i.dget(v, "ref").intVal] +proc close(i: In, v: MinValue) = + i.window(v).close() + let r = i.dget(v, "ref").intVal + WINDOWS.delete(r) + proc gui_module*(i: In) = let def = i.define()

@@ -43,13 +48,13 @@ WINDOWS.add window

i.push win def.symbol("loop") do (i: In): - var vals = i.expect("dict:window") - i.push i.window(vals[0]).loop.newVal + var vals = i.expect("quot", "dict:window") + while i.window(vals[1]).loop: + i.dequote vals[0] def.symbol("close") do (i: In): var vals = i.expect("dict:window") - i.window(vals[0]).close() - WINDOWS.delete(vals[0].intVal) + i.close(vals[0]) def.symbol("pixel") do (i: In): var vals = i.expect("quot", "dict:window")
M tests/global.mintests/global.min

@@ -819,6 +819,25 @@ ((1 2 "test") ("test" "a" true 1) difference (2) ==) test.assert

((1 2 "test") ("test" "a" true 1) symmetric-difference (true "a" 2) ==) test.assert + ( + 0 :x + 0 :y + 0 :t + (x 100 <) + ( + 0 @y + (y 200 <) + ( + y succ @y + t succ @t + ) + while + x succ @x + ) + while + x y t + + 20300 == + ) test.assert + test.report ;; Tidy up stack.clear