summary refs log tree commit diff
path: root/evoke.e
diff options
context:
space:
mode:
authorIrene Knapp <ireneista@irenes.space>2026-05-16 13:16:12 -0700
committerIrene Knapp <ireneista@irenes.space>2026-05-16 13:16:12 -0700
commit32f1fde313ce07e086b503b08babffe60a7be05d (patch)
tree74acb06f388959517cd52bcb8e788f81f9ca92be /evoke.e
parent8c5b92312f9e7bc2fff7b547a03805d9bf47d26e (diff)
ah, oops, there was a bug in the label transform for compiled words
fixed now

also a bunch of small things towards adding a log-load transform

Force-Push: yes
Change-Id: I6eeb94d896a7e79092886d7b60e9404c31b2ba6f
Diffstat (limited to 'evoke.e')
-rw-r--r--evoke.e55
1 files changed, 13 insertions, 42 deletions
diff --git a/evoke.e b/evoke.e
index 86e79c8..c1ee096 100644
--- a/evoke.e
+++ b/evoke.e
@@ -1,46 +1,16 @@
-~ cat labels.e elf.e execution.e transform.e evoke.e \
+~ (cat labels.e elf.e execution.e transform.e; \
+~  echo 65536 read-to-buffer; \
+~  cat core.e; \
+~  echo pyrzqxgl; \
+~  cat evoke.e) \
 ~     | ./quine > evoke && chmod 755 evoke && ./evoke
 
-1024 read-to-buffer
-~   Any word that ends with a normal semicolon will require this, so its
-~ definition has to be near the start.
-: exit
-  [ here @
-    :rsi pack-popcontrol
-    here ! ] ;asm
-
-: lit
-  [ here @
-    lods64
-    :rax push-reg64
-    here ! ] ;asm
-
-: sys-exit
-  [ here @
-    60 :rax mov-reg64-imm64
-    :rdi pop-reg64
-    syscall
-    hlt
-    here ! ] ;asm
-
-: happy-path 42 sys-exit ;
-
-~  : lods64 ;
-~  : :rax ;
-~  : push-reg64 ;
-~  : mov-reg64-imm64 ;
-~  : :rdi ;
-~  : pop-reg64 ;
-~  : syscall ;
-~  : hlt ;
-~  : here ;
-~  : @ ;
-~  : ! ;
-~  : [ ;
-~  : ] ;
+s" source-to-precompile" variable
 
+1024 read-to-buffer
+: foo 4 . ;
 pyrzqxgl
-s" source-to-precompile" variable
+s" source-to-heap-copy" variable
 
 ~ (output memory start, current output point
 ~  -- output memory start, current output point)
@@ -54,10 +24,11 @@ s" source-to-precompile" variable
   0x08000000 L!' origin
   elf-file-header
   elf-program-header
-  cold-start
-  warm-start
+  output-cold-start
+  source-to-heap-copy output-warm-start
   output-docol
-  source-to-precompile transform
+  output-exit
+  source-to-precompile label-transform
   0 L!' final-word-name
   current-offset L!' total-size
   0 L!' :