diff options
| -rw-r--r-- | compiler/elymasAsm.ey | 1 | ||||
| -rw-r--r-- | compiler/standardClient.ey | 12 | ||||
| -rw-r--r-- | elymas/Makefile | 2 | ||||
| -rw-r--r-- | elymas/interpreter.ey | 2 | ||||
| -rw-r--r-- | elymas/loaded.ey | 2 | ||||
| -rw-r--r-- | elymas/optimized.ey | 2 |
6 files changed, 11 insertions, 10 deletions
diff --git a/compiler/elymasAsm.ey b/compiler/elymasAsm.ey index 3856d8a..1d4d906 100644 --- a/compiler/elymasAsm.ey +++ b/compiler/elymasAsm.ey @@ -774,6 +774,7 @@ /jnb _ %73 defJmpRel8 %83 defJmpRel32 /jnc _ %73 defJmpRel8 %83 defJmpRel32 /jne _ %75 defJmpRel8 %85 defJmpRel32 + /jng _ %7E defJmpRel8 %8E defJmpRel32 /jnl _ %7D defJmpRel8 %8D defJmpRel32 /jnle _ %7F defJmpRel8 %8F defJmpRel32 /jns _ %79 defJmpRel8 %89 defJmpRel32 diff --git a/compiler/standardClient.ey b/compiler/standardClient.ey index 30b7be2..bdc637c 100644 --- a/compiler/standardClient.ey +++ b/compiler/standardClient.ey @@ -806,7 +806,7 @@ { 0 dumpIndented } > -- /dump deffd -{ ==filename # ==f (left on the stack and executed from sys .asm .programStart) +{ ==filename # ==f (left on the stack a while and executed from sys .asm .programStart) sys .asm .patchProgramStart ==frozenAllocationCount # hex decoding @@ -1004,10 +1004,12 @@ out .close + ==f + sys .asm .patchProgramStart frozenAllocationCount neq { "freezing allocated new memory chunks, retrying..." dump - filename sys .freeze - } + f filename sys .freeze + } rep } /freeze sys .deff # no long-term stack use here as the executed program uses it as well @@ -1024,9 +1026,7 @@ }" /includeFile deffd { # ==?filename - sys .file -0010 .open - includeFile - .close + sys .file _ _ .|open -01 |includeFile -01 .|close ; ; -120 * # can use neither stack nor scope for storage here }" /include deffd # vim: syn=elymas diff --git a/elymas/Makefile b/elymas/Makefile index 08c7e69..6ee1265 100644 --- a/elymas/Makefile +++ b/elymas/Makefile @@ -1,5 +1,5 @@ loaded: optimized loaded.ey $(shell find lib -name '*.ey') ./optimized < loaded.ey || true -optimized: interpreter optimized.ey $(shell find lib -name '*.ey') +optimized: interpreter optimized.ey lib/math.ey lib/sys/opt.ey ./interpreter < optimized.ey || true diff --git a/elymas/interpreter.ey b/elymas/interpreter.ey index 35c0dad..bb25d00 100644 --- a/elymas/interpreter.ey +++ b/elymas/interpreter.ey @@ -1,3 +1,3 @@ #!/usr/bin/env elymas -{ "/proc/self/fd/0" include }' "interpreter" sys .freeze +{ "/proc/self/fd/0" include 0 sys .exit }' "interpreter" sys .freeze diff --git a/elymas/loaded.ey b/elymas/loaded.ey index c737634..f917b62 100644 --- a/elymas/loaded.ey +++ b/elymas/loaded.ey @@ -14,4 +14,4 @@ "lib/net/alg/http.ey" ] { _ dump include }' each -{ "/proc/self/fd/0" include }' "loaded" sys .freeze +{ "/proc/self/fd/0" include 0 sys .exit }' "loaded" sys .freeze diff --git a/elymas/optimized.ey b/elymas/optimized.ey index ca53b40..f64504e 100644 --- a/elymas/optimized.ey +++ b/elymas/optimized.ey @@ -5,4 +5,4 @@ "lib/sys/opt.ey" ] { _ dump include }' each -2 { { "/proc/self/fd/0" include }' "optimized" sys .freeze } rep # FIXME freeze wonkyness (the optimizer allocates during freeze) +2 { { "/proc/self/fd/0" include 0 sys .exit }' "optimized" sys .freeze } rep # FIXME freeze wonkyness (the optimizer allocates during freeze) |
