From 9c99a927bec02047afed59fd5ebbda3e1177b3df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Remko=20Tron=C3=A7on?= Date: Fri, 8 Nov 2019 16:55:34 +0100 Subject: [PATCH] Replace assembler with preprocessor --- .travis.yml | 1 - Makefile | 2 +- README.md | 15 +- src/tools/assembler.rkt | 66 ----- src/tools/preprocess.js | 30 +++ src/waforth.wat | 547 +++++++++++++++++++--------------------- 6 files changed, 301 insertions(+), 360 deletions(-) delete mode 100644 src/tools/assembler.rkt create mode 100755 src/tools/preprocess.js diff --git a/.travis.yml b/.travis.yml index be36fd5..a979002 100644 --- a/.travis.yml +++ b/.travis.yml @@ -17,5 +17,4 @@ addons: apt: packages: - make - - racket # - wabt diff --git a/Makefile b/Makefile index d6e2d54..16b38f4 100644 --- a/Makefile +++ b/Makefile @@ -16,7 +16,7 @@ dev-server: $(WASM_FILES) wasm: $(WASM_FILES) src/waforth.assembled.wat src/tools/quadruple.wasm.hex src/waforth.wasm: src/waforth.wat dist - racket -f $< > src/waforth.wat.tmp + ./src/tools/preprocess.js $< > src/waforth.wat.tmp $(WAT2WASM) $(WAT2WASM_FLAGS) -o $@ src/waforth.wat.tmp src/waforth.assembled.wat: src/waforth.wasm diff --git a/README.md b/README.md index eb94193..1fa6c49 100644 --- a/README.md +++ b/README.md @@ -51,23 +51,16 @@ You can also run the tests in Node.JS by running ## Design -### The Macro Assembler +### The Preprocessor The WAForth core is written as [a single module](https://github.com/remko/waforth/blob/master/src/waforth.wat) in WebAssembly's [text format](https://webassembly.github.io/spec/core/text/index.html). The text format isn't really meant for writing code in, so it has no facilities like a -real assembler (e.g. constant definitions, macro expansion, ...) However, since -the text format uses S-expressions, you can do some small modifications to make -it extensible with Lisp-style macros. - -I added some Racket macros to the module definition, and implemented [a mini -assembler](https://github.com/remko/waforth/blob/master/src/tools/assembler.rkt) -to print out the resulting s-expressions in the right format. - -The result is something that looks like a standard WebAssembly module, but -sprinkled with some macros for convenience. +real assembler (e.g. constant definitions, macro expansion, ...). +To help with maintenance, the WebAssembly file is piped through a simple string +preprocessor that replaces constants with defined values. ### The Interpreter diff --git a/src/tools/assembler.rkt b/src/tools/assembler.rkt deleted file mode 100644 index 7705e26..0000000 --- a/src/tools/assembler.rkt +++ /dev/null @@ -1,66 +0,0 @@ -#lang racket - -(define (asm-symbol? x) - (and (symbol? x) (eq? (string-ref (symbol->string x) 0) #\!))) - -(define (preprocess x) - (cond ((list? x) - (cond ((null? x) '()) - ((and (list? (car x)) (asm-symbol? (caar x))) - (append (eval (car x)) (preprocess (cdr x)))) - (else - (cons (preprocess (car x)) (preprocess (cdr x)))))) - ((asm-symbol? x) - (eval x)) - (else x))) - -(define (byte->hex byte) - (define digits "0123456789ABCDEF") - (string (string-ref digits (quotient byte 16)) - (string-ref digits (remainder byte 16)))) - -(define (byte->string byte) - (cond ((> byte 255) (raise "Illegal byte")) - ((and (> byte 32) (< byte 127) (not (or (eqv? byte 34) (eqv? byte 92)))) - (string (integer->char byte))) - (else (string-append "\\" (byte->hex byte))))) - -(define (string-escape s) - (string-join (map byte->string (map char->integer (string->list s))) "")) - -(define (serialize x) - (cond ((list? x) - (string-append "(" (string-join (map serialize x) " ") ")")) - ((string? x) - (string-append "\"" (string-escape x) "\"")) - ((symbol? x) - (symbol->string x)) - ((number? x) - (number->string x)) - ((bytes? x) - (string-append - "\"" - (string-join (map byte->string (bytes->list x)) "") - "\"")) - (else (raise (list "Unexpected type" x))))) - -(define (priority x) - (cond ((eq? x 'module) 0) - ((and (list? x) (eq? (car x) 'import)) 1000000) - ((and (list? x) (eq? (car x) 'memory)) 2000000) - ((and (list? x) (eq? (car x) 'global)) 3000000) - ((and (list? x) (eq? (car x) 'data)) (+ 5000000 (car (cdr (car (cdr x)))))) - (else 100000000))) - -(define (wasm-assemble module) - (display - (serialize - (sort (preprocess module) - (lambda (x y) (< (priority x) (priority y))))))) - -(define-syntax module - (syntax-rules () - ((_ arg ...) - (wasm-assemble '(module arg ...))))) - -(provide module) diff --git a/src/tools/preprocess.js b/src/tools/preprocess.js new file mode 100755 index 0000000..0bec7d5 --- /dev/null +++ b/src/tools/preprocess.js @@ -0,0 +1,30 @@ +#!/usr/bin/env node + +const process = require("process"); +const fs = require("fs"); + +function escapeRegExp(string) { + return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string +} + +const file = process.argv[2]; +const lines = fs + .readFileSync(file) + .toString() + .split("\n"); + +const definitions = {}; +lines.forEach(line => { + Object.keys(definitions).forEach(k => { + line = line.replace( + new RegExp(escapeRegExp(k) + "(\\s|\\))", "g"), + definitions[k] + " (; = " + k + " ;)$1" + ); + }); + const m = line.match(/^;; \(define\s+([^\s]+)\s+([^\s]+)\)/); + if (m) { + definitions[m[1]] = m[2]; + } else { + console.log(line); + } +}); diff --git a/src/waforth.wat b/src/waforth.wat index daadc67..f2fee79 100644 --- a/src/waforth.wat +++ b/src/waforth.wat @@ -1,82 +1,67 @@ - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; Assembler Macros +;; +;; Constants +;; This isn't part of the WebAssembly spec, but is picked up by a simple preprocessor that does search/replace. ;; -;; This is not part of the WebAssembly spec, but uses some custom assembler -;; infrastructure. -;; -;; Although you can go crazy wild with macro programming, I tried to keep this -;; as simple as possible. -;; -;; Variables and functions in the WebAssembly module definition starting with -;; ! are processed by the assembler, and defined in this section. -;; The assembler also fixes the order of "table" in the module (which needs to come -;; before "elem"s, but due to our assembly macros building up the table need to come -;; last in our definition. -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -(require "tools/assembler.rkt") - -(define !baseBase #x100) -(define !stateBase #x104) -(define !inBase #x108) -(define !wordBase #x200) -(define !wordBasePlus1 #x201) -(define !wordBasePlus2 #x202) -(define !inputBufferBase #x300) +;; (define !baseBase 0x100) +;; (define !stateBase 0x104) +;; (define !inBase 0x108) +;; (define !wordBase 0x200) +;; (define !wordBasePlus1 0x201) +;; (define !wordBasePlus2 0x202) +;; (define !inputBufferBase 0x300) ;; Compiled modules are limited to 4096 bytes until Chrome refuses to load ;; them synchronously -(define !moduleHeaderBase #x1000) -(define !returnStackBase #x2000) -(define !stackBase #x10000) -(define !dictionaryBase #x21000) -(define !memorySize 104857600) ;; 100*1024*1024 -(define !memorySizePages 1600) ;; memorySize / 65536 +;; (define !moduleHeaderBase 0x1000) +;; (define !returnStackBase 0x2000) +;; (define !stackBase 0x10000) +;; (define !dictionaryBase 0x21000) +;; (define !memorySize 104857600) ;; 100*1024*1024 +;; (define !memorySizePages 1600) ;; memorySize / 65536 -; (define !moduleHeaderSize (string-length !moduleHeader)) -(define !moduleHeaderSize #x68) -; (define !moduleHeaderCodeSizeOffset (char-index (string->list !moduleHeader) #\u00FF 0)) -(define !moduleHeaderCodeSizeOffset #x59) -(define !moduleHeaderCodeSizeOffsetPlus4 #x5d) -; (define !moduleHeaderBodySizeOffset (char-index (string->list !moduleHeader) #\u00FE 0)) -(define !moduleHeaderBodySizeOffset #x5e) -(define !moduleHeaderBodySizeOffsetPlus4 #x62) -; (define !moduleHeaderLocalCountOffset (char-index (string->list !moduleHeader) #\u00FD 0)) -(define !moduleHeaderLocalCountOffset #x63) -; (define !moduleHeaderTableIndexOffset (char-index (string->list !moduleHeader) #\u00FC 0)) -(define !moduleHeaderTableIndexOffset #x51) -; (define !moduleHeaderTableInitialSizeOffset (char-index (string->list !moduleHeader) #\u00FB 0)) -(define !moduleHeaderTableInitialSizeOffset #x2b) -; (define !moduleHeaderFunctionTypeOffset (char-index (string->list !moduleHeader) #\u00FA 0)) -(define !moduleHeaderFunctionTypeOffset #x4b) +;; (define !moduleHeaderSize (string-length !moduleHeader)) +;; (define !moduleHeaderSize 0x68) +;; (define !moduleHeaderCodeSizeOffset (char-index (string->list !moduleHeader) \FF 0)) +;; (define !moduleHeaderCodeSizeOffset 0x59) +;; (define !moduleHeaderCodeSizeOffsetPlus4 0x5d) +;; (define !moduleHeaderBodySizeOffset (char-index (string->list !moduleHeader) \FE 0)) +;; (define !moduleHeaderBodySizeOffset 0x5e) +;; (define !moduleHeaderBodySizeOffsetPlus4 0x62) +;; (define !moduleHeaderLocalCountOffset (char-index (string->list !moduleHeader) \FD 0)) +;; (define !moduleHeaderLocalCountOffset 0x63) +;; (define !moduleHeaderTableIndexOffset (char-index (string->list !moduleHeader) \FC 0)) +;; (define !moduleHeaderTableIndexOffset 0x51) +;; (define !moduleHeaderTableInitialSizeOffset (char-index (string->list !moduleHeader) \FB 0)) +;; (define !moduleHeaderTableInitialSizeOffset 0x2b) +;; (define !moduleHeaderFunctionTypeOffset (char-index (string->list !moduleHeader) \FA 0)) +;; (define !moduleHeaderFunctionTypeOffset 0x4b) -(define !moduleBodyBase #x1068) ;; (+ !moduleHeaderBase !moduleHeaderSize)) -(define !moduleHeaderCodeSizeBase #x1059) ;; (+ !moduleHeaderBase !moduleHeaderCodeSizeOffset)) -(define !moduleHeaderBodySizeBase #x105e) ;; (+ !moduleHeaderBase !moduleHeaderBodySizeOffset)) -(define !moduleHeaderLocalCountBase #x1063) ;; (+ !moduleHeaderBase !moduleHeaderLocalCountOffset)) -(define !moduleHeaderTableIndexBase #x1051) ;; (+ !moduleHeaderBase !moduleHeaderTableIndexOffset)) -(define !moduleHeaderTableInitialSizeBase #x102b) ;; (+ !moduleHeaderBase !moduleHeaderTableInitialSizeOffset)) -(define !moduleHeaderFunctionTypeBase #x104b) ;; (+ !moduleHeaderBase !moduleHeaderFunctionTypeOffset)) +;; (define !moduleBodyBase 0x1068) ;; (+ !moduleHeaderBase !moduleHeaderSize)) +;; (define !moduleHeaderCodeSizeBase 0x1059) ;; (+ !moduleHeaderBase !moduleHeaderCodeSizeOffset)) +;; (define !moduleHeaderBodySizeBase 0x105e) ;; (+ !moduleHeaderBase !moduleHeaderBodySizeOffset)) +;; (define !moduleHeaderLocalCountBase 0x1063) ;; (+ !moduleHeaderBase !moduleHeaderLocalCountOffset)) +;; (define !moduleHeaderTableIndexBase 0x1051) ;; (+ !moduleHeaderBase !moduleHeaderTableIndexOffset)) +;; (define !moduleHeaderTableInitialSizeBase 0x102b) ;; (+ !moduleHeaderBase !moduleHeaderTableInitialSizeOffset)) +;; (define !moduleHeaderFunctionTypeBase 0x104b) ;; (+ !moduleHeaderBase !moduleHeaderFunctionTypeOffset)) -(define !fNone #x0) -(define !fImmediate #x80) -(define !fData #x40) -(define !fHidden #x20) -(define !lengthMask #x1F) +;; (define !fNone 0x0) +;; (define !fImmediate 0x80) +;; (define !fData 0x40) +;; (define !fHidden 0x20) +;; (define !lengthMask 0x1F) ;; Predefined table indices -(define !pushIndex 1) -(define !popIndex 2) -(define !pushDataAddressIndex 3) -(define !setLatestBodyIndex 4) -(define !compileCallIndex 5) -(define !pushIndirectIndex 6) -(define !typeIndex #x85) -(define !abortIndex #x39) -(define !constantIndex #x4c) +;; (define !pushIndex 1) +;; (define !popIndex 2) +;; (define !pushDataAddressIndex 3) +;; (define !setLatestBodyIndex 4) +;; (define !compileCallIndex 5) +;; (define !pushIndirectIndex 6) +;; (define !typeIndex 0x85) +;; (define !abortIndex 0x39) +;; (define !constantIndex 0x4c) -(define !nextTableIndex #xa7) +;; (define !nextTableIndex 0xa7) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; WebAssembly module definition @@ -105,13 +90,13 @@ ;; Constant strings ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - (data (i32.const #x20000) "\u000eundefined word") - (data (i32.const #x20014) "\u000ddivision by 0") - (data (i32.const #x20028) "\u0010incomplete input") - (data (i32.const #x2003C) "\u000bmissing ')'") - (data (i32.const #x2004C) "\u0009missing \u0022") - (data (i32.const #x2005C) "\u0024word not supported in interpret mode") - (data (i32.const #x20084) "\u000Fnot implemented") + (data (i32.const 0x20000) "\0eundefined word") + (data (i32.const 0x20014) "\0ddivision by 0") + (data (i32.const 0x20028) "\10incomplete input") + (data (i32.const 0x2003C) "\0bmissing ')'") + (data (i32.const 0x2004C) "\09missing \22") + (data (i32.const 0x2005C) "\24word not supported in interpret mode") + (data (i32.const 0x20084) "\0Fnot implemented") ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Built-in words @@ -123,19 +108,19 @@ (i32.store (i32.load (i32.sub (get_global $tos) (i32.const 4))) (i32.load (tee_local $bbtos (i32.sub (get_global $tos) (i32.const 8))))) (set_global $tos (get_local $bbtos))) - (data (i32.const 135168) "\u0000\u0000\u0000\u0000\u0001!\u0000\u0000\u0010\u0000\u0000\u0000") + (data (i32.const 135168) "\00\00\00\00\01!\00\00\10\00\00\00") (elem (i32.const 0x10) $!) (func $# (call $fail (i32.const 0x20084))) ;; not implemented - (data (i32.const 135180) "\u0000\u0010\u0002\u0000\u0001#\u0000\u0000\u0011\u0000\u0000\u0000") + (data (i32.const 135180) "\00\10\02\00\01#\00\00\11\00\00\00") (elem (i32.const 0x11) $#) (func $#> (call $fail (i32.const 0x20084))) ;; not implemented - (data (i32.const 135192) "\u000c\u0010\u0002\u0000\u0002#>\u0000\u0012\u0000\u0000\u0000") + (data (i32.const 135192) "\0c\10\02\00\02#>\00\12\00\00\00") (elem (i32.const 0x12) $#>) (func $#S (call $fail (i32.const 0x20084))) ;; not implemented - (data (i32.const 135204) "\u0018\u0010\u0002\u0000\u0002#S\u0000\u0013\u0000\u0000\u0000") + (data (i32.const 135204) "\18\10\02\00\02#S\00\13\00\00\00") (elem (i32.const 0x13) $#S) ;; 6.1.0070 @@ -144,7 +129,7 @@ (if (i32.eqz (i32.load8_u (i32.const !wordBase))) (call $fail (i32.const 0x20028))) ;; incomplete input (call $find) (drop (call $pop))) - (data (i32.const 135216) "$\u0010\u0002\u0000\u0001'\u0000\u0000\u0014\u0000\u0000\u0000") + (data (i32.const 135216) "$\10\02\00\01'\00\00\14\00\00\00") (elem (i32.const 0x14) $tick) ;; 6.1.0080 @@ -156,7 +141,7 @@ (call $fail (i32.const 0x2003C))) ;; missing ')' (br_if $endLoop (i32.eq (get_local $c) (i32.const 41))) (br $loop)))) - (data (i32.const 135228) "0\u0010\u0002\u0000\u0081(\u0000\u0000\u0015\u0000\u0000\u0000") + (data (i32.const 135228) "0\10\02\00\81(\00\00\15\00\00\00") (elem (i32.const 0x15) $paren) ;; immediate ;; 6.1.0090 @@ -167,7 +152,7 @@ (i32.mul (i32.load (tee_local $btos (i32.sub (get_global $tos) (i32.const 4)))) (i32.load (get_local $bbtos)))) (set_global $tos (get_local $btos))) - (data (i32.const 135240) "<\u0010\u0002\u0000\u0001*\u0000\u0000\u0016\u0000\u0000\u0000") + (data (i32.const 135240) "<\10\02\00\01*\00\00\16\00\00\00") (elem (i32.const 0x16) $star) ;; 6.1.0100 @@ -181,7 +166,7 @@ (i64.extend_s/i32 (i32.load (tee_local $bbtos (i32.sub (get_global $tos) (i32.const 8)))))) (i64.extend_s/i32 (i32.load (i32.sub (get_global $tos) (i32.const 4))))))) (set_global $tos (get_local $bbtos))) - (data (i32.const 135252) "H\u0010\u0002\u0000\u0002*/\u0000\u0017\u0000\u0000\u0000") + (data (i32.const 135252) "H\10\02\00\02*/\00\17\00\00\00") (elem (i32.const 0x17) $*/) ;; 6.1.0110 @@ -199,7 +184,7 @@ (tee_local $x2 (i64.extend_s/i32 (i32.load (tee_local $btos (i32.sub (get_global $tos) (i32.const 4))))))))) (i32.store (get_local $bbtos) (i32.wrap/i64 (i64.div_s (get_local $x1) (get_local $x2)))) (set_global $tos (get_local $btos))) - (data (i32.const 135264) "T\u0010\u0002\u0000\u0005*/MOD\u0000\u0000\u0018\u0000\u0000\u0000") + (data (i32.const 135264) "T\10\02\00\05*/MOD\00\00\18\00\00\00") (elem (i32.const 0x18) $*/MOD) ;; 6.1.0120 @@ -210,7 +195,7 @@ (i32.add (i32.load (tee_local $btos (i32.sub (get_global $tos) (i32.const 4)))) (i32.load (get_local $bbtos)))) (set_global $tos (get_local $btos))) - (data (i32.const 135280) "`\u0010\u0002\u0000\u0001+\u0000\u0000\u0019\u0000\u0000\u0000") + (data (i32.const 135280) "`\10\02\00\01+\00\00\19\00\00\00") (elem (i32.const 0x19) $plus) ;; 6.1.0130 @@ -221,14 +206,14 @@ (i32.add (i32.load (get_local $addr)) (i32.load (tee_local $bbtos (i32.sub (get_global $tos) (i32.const 8)))))) (set_global $tos (get_local $bbtos))) - (data (i32.const 135292) "p\u0010\u0002\u0000\u0002+!\u0000\u001a\u0000\u0000\u0000") + (data (i32.const 135292) "p\10\02\00\02+!\00\1a\00\00\00") (elem (i32.const 0x1a) $+!) ;; 6.1.0140 (func $plus-loop (call $ensureCompiling) (call $compilePlusLoop)) - (data (i32.const 135304) "|\u0010\u0002\u0000\u0085+LOOP\u0000\u0000\u001b\u0000\u0000\u0000") + (data (i32.const 135304) "|\10\02\00\85+LOOP\00\00\1b\00\00\00") (elem (i32.const 0x1b) $plus-loop) ;; immediate ;; 6.1.0150 @@ -238,7 +223,7 @@ (i32.load (i32.sub (get_global $tos) (i32.const 4)))) (set_global $here (i32.add (get_global $here) (i32.const 4))) (set_global $tos (i32.sub (get_global $tos) (i32.const 4)))) - (data (i32.const 135320) "\u0088\u0010\u0002\u0000\u0001,\u0000\u0000\u001c\u0000\u0000\u0000") + (data (i32.const 135320) "\88\10\02\00\01,\00\00\1c\00\00\00") (elem (i32.const 0x1c) $comma) ;; 6.1.0160 @@ -249,7 +234,7 @@ (i32.sub (i32.load (get_local $bbtos)) (i32.load (tee_local $btos (i32.sub (get_global $tos) (i32.const 4)))))) (set_global $tos (get_local $btos))) - (data (i32.const 135332) "\u0098\u0010\u0002\u0000\u0001-\u0000\u0000\u001d\u0000\u0000\u0000") + (data (i32.const 135332) "\98\10\02\00\01-\00\00\1d\00\00\00") (elem (i32.const 0x1d) $minus) ;; 6.1.0180 @@ -257,7 +242,7 @@ (call $ensureCompiling) (call $Sq) (call $emitICall (i32.const 0) (i32.const !typeIndex))) ;; TYPE - (data (i32.const 135344) "\u00a4\u0010\u0002\u0000\u0082.\u0022\u0000\u001e\u0000\u0000\u0000") + (data (i32.const 135344) "\a4\10\02\00\82.\22\00\1e\00\00\00") (elem (i32.const 0x1e) $.q) ;; immediate ;; 6.1.0230 @@ -270,7 +255,7 @@ (i32.store (tee_local $bbtos (i32.sub (get_global $tos) (i32.const 8))) (i32.div_s (i32.load (get_local $bbtos)) (get_local $divisor))) (set_global $tos (get_local $btos))) - (data (i32.const 135356) "\u00b0\u0010\u0002\u0000\u0001/\u0000\u0000\u001f\u0000\u0000\u0000") + (data (i32.const 135356) "\b0\10\02\00\01/\00\00\1f\00\00\00") (elem (i32.const 0x1f) $/) ;; 6.1.0240 @@ -284,7 +269,7 @@ (tee_local $n2 (i32.load (tee_local $btos (i32.sub (get_global $tos) (i32.const 4))))))) (i32.store (get_local $btos) (i32.div_s (get_local $n1) (get_local $n2)))) - (data (i32.const 135368) "\u00bc\u0010\u0002\u0000\u0004/MOD\u0000\u0000\u0000 \u0000\u0000\u0000") + (data (i32.const 135368) "\bc\10\02\00\04/MOD\00\00\00 \00\00\00") (elem (i32.const 0x20) $/MOD) ;; 6.1.0250 @@ -295,7 +280,7 @@ (i32.const 0)) (then (i32.store (get_local $btos) (i32.const -1))) (else (i32.store (get_local $btos) (i32.const 0))))) - (data (i32.const 135384) "\u00c8\u0010\u0002\u0000\u00020<\u0000!\u0000\u0000\u0000") + (data (i32.const 135384) "\c8\10\02\00\020<\00!\00\00\00") (elem (i32.const 0x21) $0<) @@ -306,7 +291,7 @@ (i32.const 4))))) (then (i32.store (get_local $btos) (i32.const -1))) (else (i32.store (get_local $btos) (i32.const 0))))) - (data (i32.const 135396) "\u00d8\u0010\u0002\u0000\u00020=\u0000\u0022\u0000\u0000\u0000") + (data (i32.const 135396) "\d8\10\02\00\020=\00\22\00\00\00") (elem (i32.const 0x22) $zero-equals) ;; 6.1.0290 @@ -314,7 +299,7 @@ (local $btos i32) (i32.store (tee_local $btos (i32.sub (get_global $tos) (i32.const 4))) (i32.add (i32.load (get_local $btos)) (i32.const 1)))) - (data (i32.const 135408) "\u00e4\u0010\u0002\u0000\u00021+\u0000#\u0000\u0000\u0000") + (data (i32.const 135408) "\e4\10\02\00\021+\00#\00\00\00") (elem (i32.const 0x23) $one-plus) ;; 6.1.0300 @@ -322,14 +307,14 @@ (local $btos i32) (i32.store (tee_local $btos (i32.sub (get_global $tos) (i32.const 4))) (i32.sub (i32.load (get_local $btos)) (i32.const 1)))) - (data (i32.const 135420) "\u00f0\u0010\u0002\u0000\u00021-\u0000$\u0000\u0000\u0000") + (data (i32.const 135420) "\f0\10\02\00\021-\00$\00\00\00") (elem (i32.const 0x24) $one-minus) ;; 6.1.0310 (func $2! (call $SWAP) (call $OVER) (call $!) (call $CELL+) (call $!)) - (data (i32.const 135432) "\u00fc\u0010\u0002\u0000\u00022!\u0000%\u0000\u0000\u0000") + (data (i32.const 135432) "\fc\10\02\00\022!\00%\00\00\00") (elem (i32.const 0x25) $2!) ;; 6.1.0320 @@ -337,7 +322,7 @@ (local $btos i32) (i32.store (tee_local $btos (i32.sub (get_global $tos) (i32.const 4))) (i32.shl (i32.load (get_local $btos)) (i32.const 1)))) - (data (i32.const 135444) "\u0008\u0011\u0002\u0000\u00022*\u0000&\u0000\u0000\u0000") + (data (i32.const 135444) "\08\11\02\00\022*\00&\00\00\00") (elem (i32.const 0x26) $2*) ;; 6.1.0330 @@ -345,7 +330,7 @@ (local $btos i32) (i32.store (tee_local $btos (i32.sub (get_global $tos) (i32.const 4))) (i32.shr_s (i32.load (get_local $btos)) (i32.const 1)))) - (data (i32.const 135456) "\u0014\u0011\u0002\u0000\u00022/\u0000'\u0000\u0000\u0000") + (data (i32.const 135456) "\14\11\02\00\022/\00'\00\00\00") (elem (i32.const 0x27) $2/) ;; 6.1.0350 @@ -355,14 +340,14 @@ (call $@) (call $SWAP) (call $@)) - (data (i32.const 135468) " \u0011\u0002\u0000\u00022@\u0000(\u0000\u0000\u0000") + (data (i32.const 135468) " \11\02\00\022@\00(\00\00\00") (elem (i32.const 0x28) $2@) ;; 6.1.0370 (func $two-drop (set_global $tos (i32.sub (get_global $tos) (i32.const 8)))) - (data (i32.const 135480) ",\u0011\u0002\u0000\u00052DROP\u0000\u0000)\u0000\u0000\u0000") + (data (i32.const 135480) ",\11\02\00\052DROP\00\00)\00\00\00") (elem (i32.const 0x29) $two-drop) ;; 6.1.0380 @@ -372,7 +357,7 @@ (i32.store (i32.add (get_global $tos) (i32.const 4)) (i32.load (i32.sub (get_global $tos) (i32.const 4)))) (set_global $tos (i32.add (get_global $tos) (i32.const 8)))) - (data (i32.const 135496) "8\u0011\u0002\u0000\u00042DUP\u0000\u0000\u0000*\u0000\u0000\u0000") + (data (i32.const 135496) "8\11\02\00\042DUP\00\00\00*\00\00\00") (elem (i32.const 0x2a) $two-dupe) ;; 6.1.0400 @@ -382,7 +367,7 @@ (i32.store (i32.add (get_global $tos) (i32.const 4)) (i32.load (i32.sub (get_global $tos) (i32.const 12)))) (set_global $tos (i32.add (get_global $tos) (i32.const 8)))) - (data (i32.const 135512) "H\u0011\u0002\u0000\u00052OVER\u0000\u0000+\u0000\u0000\u0000") + (data (i32.const 135512) "H\11\02\00\052OVER\00\00+\00\00\00") (elem (i32.const 0x2b) $2OVER) ;; 6.1.0430 @@ -399,7 +384,7 @@ (get_local $x1)) (i32.store (i32.sub (get_global $tos) (i32.const 4)) (get_local $x2))) - (data (i32.const 135528) "X\u0011\u0002\u0000\u00052SWAP\u0000\u0000,\u0000\u0000\u0000") + (data (i32.const 135528) "X\11\02\00\052SWAP\00\00,\00\00\00") (elem (i32.const 0x2c) $2SWAP) ;; 6.1.0450 @@ -422,7 +407,7 @@ (call $startColon (i32.const 0)) (call $right-bracket)) - (data (i32.const 135544) "h\u0011\u0002\u0000\u0001:\u0000\u0000-\u0000\u0000\u0000") + (data (i32.const 135544) "h\11\02\00\01:\00\00-\00\00\00") (elem (i32.const 0x2d) $colon) ;; 6.1.0460 @@ -431,7 +416,7 @@ (call $endColon) (call $hidden) (call $left-bracket)) - (data (i32.const 135556) "x\u0011\u0002\u0000\u0081;\u0000\u0000.\u0000\u0000\u0000") + (data (i32.const 135556) "x\11\02\00\81;\00\00.\00\00\00") (elem (i32.const 0x2e) $semicolon) ;; immediate ;; 6.1.0480 @@ -443,11 +428,11 @@ (then (i32.store (get_local $bbtos) (i32.const -1))) (else (i32.store (get_local $bbtos) (i32.const 0)))) (set_global $tos (get_local $btos))) - (data (i32.const 135568) "\u0084\u0011\u0002\u0000\u0001<\u0000\u0000/\u0000\u0000\u0000") + (data (i32.const 135568) "\84\11\02\00\01<\00\00/\00\00\00") (elem (i32.const 0x2f) $less-than) (func $<# (call $fail (i32.const 0x20084))) ;; not implemented - (data (i32.const 135580) "\u0090\u0011\u0002\u0000\u0002<#\u00000\u0000\u0000\u0000") + (data (i32.const 135580) "\90\11\02\00\02<#\000\00\00\00") (elem (i32.const 0x30) $<#) ;; 6.1.0530 @@ -459,7 +444,7 @@ (then (i32.store (get_local $bbtos) (i32.const -1))) (else (i32.store (get_local $bbtos) (i32.const 0)))) (set_global $tos (get_local $btos))) - (data (i32.const 135592) "\u009c\u0011\u0002\u0000\u0001=\u0000\u00001\u0000\u0000\u0000") + (data (i32.const 135592) "\9c\11\02\00\01=\00\001\00\00\00") (elem (i32.const 0x31) $=) ;; 6.1.0540 @@ -471,7 +456,7 @@ (then (i32.store (get_local $bbtos) (i32.const -1))) (else (i32.store (get_local $bbtos) (i32.const 0)))) (set_global $tos (get_local $btos))) - (data (i32.const 135604) "\u00a8\u0011\u0002\u0000\u0001>\u0000\u00002\u0000\u0000\u0000") + (data (i32.const 135604) "\a8\11\02\00\01>\00\002\00\00\00") (elem (i32.const 0x32) $greater-than) ;; 6.1.0550 @@ -480,18 +465,18 @@ (i32.store (tee_local $btos (i32.sub (get_global $tos) (i32.const 4))) (i32.add (call $body (i32.load (get_local $btos))) (i32.const 4)))) - (data (i32.const 135616) "\u00b4\u0011\u0002\u0000\u0005>BODY\u0000\u00003\u0000\u0000\u0000") + (data (i32.const 135616) "\b4\11\02\00\05>BODY\00\003\00\00\00") (elem (i32.const 0x33) $>BODY) ;; 6.1.0560 (func $>IN (i32.store (get_global $tos) (i32.const !inBase)) (set_global $tos (i32.add (get_global $tos) (i32.const 4)))) - (data (i32.const 135632) "\u00c0\u0011\u0002\u0000\u0003>IN4\u0000\u0000\u0000") + (data (i32.const 135632) "\c0\11\02\00\03>IN4\00\00\00") (elem (i32.const 0x34) $>IN) (func $>NUMBER (call $fail (i32.const 0x20084))) ;; not implemented - (data (i32.const 135644) "\u00d0\u0011\u0002\u0000\u0007>NUMBER5\u0000\u0000\u0000") + (data (i32.const 135644) "\d0\11\02\00\07>NUMBER5\00\00\00") (elem (i32.const 0x35) $>NUMBER) ;; 6.1.0580 @@ -499,7 +484,7 @@ (set_global $tos (i32.sub (get_global $tos) (i32.const 4))) (i32.store (get_global $tors) (i32.load (get_global $tos))) (set_global $tors (i32.add (get_global $tors) (i32.const 4)))) - (data (i32.const 135660) "\u00dc\u0011\u0002\u0000\u0002>R\u00006\u0000\u0000\u0000") + (data (i32.const 135660) "\dc\11\02\00\02>R\006\00\00\00") (elem (i32.const 0x36) $>R) ;; 6.1.0630 @@ -511,7 +496,7 @@ (i32.store (get_global $tos) (i32.load (get_local $btos))) (set_global $tos (i32.add (get_global $tos) (i32.const 4)))))) - (data (i32.const 135672) "\u00ec\u0011\u0002\u0000\u0004?DUP\u0000\u0000\u00007\u0000\u0000\u0000") + (data (i32.const 135672) "\ec\11\02\00\04?DUP\00\00\007\00\00\00") (elem (i32.const 0x37) $?DUP) ;; 6.1.0650 @@ -519,7 +504,7 @@ (local $btos i32) (i32.store (tee_local $btos (i32.sub (get_global $tos) (i32.const 4))) (i32.load (i32.load (get_local $btos))))) - (data (i32.const 135688) "\u00f8\u0011\u0002\u0000\u0001@\u0000\u00008\u0000\u0000\u0000") + (data (i32.const 135688) "\f8\11\02\00\01@\00\008\00\00\00") (elem (i32.const 0x38) $@) ;; 6.1.0670 ABORT @@ -527,7 +512,7 @@ (set_global $tos (i32.const !stackBase)) (call $QUIT)) ;; WARNING: If you change this table index, make sure the emitted ICalls are also updated - (data (i32.const 135700) "\u0008\u0012\u0002\u0000\u0005ABORT\u0000\u00009\u0000\u0000\u0000") + (data (i32.const 135700) "\08\12\02\00\05ABORT\00\009\00\00\00") (elem (i32.const 0x39) $ABORT) ;; none ;; 6.1.0680 ABORT" @@ -537,7 +522,7 @@ (call $emitICall (i32.const 0) (i32.const !typeIndex)) ;; TYPE (call $emitICall (i32.const 0) (i32.const !abortIndex)) ;; ABORT (call $compileThen)) - (data (i32.const 135716) "\u0014\u0012\u0002\u0000\u0086ABORT\u0022\u0000:\u0000\u0000\u0000") + (data (i32.const 135716) "\14\12\02\00\86ABORT\22\00:\00\00\00") (elem (i32.const 0x3a) $ABORT-quote) ;; immediate ;; 6.1.0690 @@ -549,7 +534,7 @@ (i32.sub (i32.xor (tee_local $v (i32.load (get_local $btos))) (tee_local $y (i32.shr_s (get_local $v) (i32.const 31)))) (get_local $y)))) - (data (i32.const 135732) "$\u0012\u0002\u0000\u0003ABS;\u0000\u0000\u0000") + (data (i32.const 135732) "$\12\02\00\03ABS;\00\00\00") (elem (i32.const 0x3b) $ABS) ;; 6.1.0695 @@ -560,15 +545,15 @@ (call $shell_accept (i32.load (get_local $bbtos)) (i32.load (tee_local $btos (i32.sub (get_global $tos) (i32.const 4)))))) (set_global $tos (get_local $btos))) - (data (i32.const 135744) "4\u0012\u0002\u0000\u0006ACCEPT\u0000<\u0000\u0000\u0000") + (data (i32.const 135744) "4\12\02\00\06ACCEPT\00<\00\00\00") (elem (i32.const 0x3c) $ACCEPT) ;; 6.1.0705 (func $ALIGN (set_global $here (i32.and (i32.add (get_global $here) (i32.const 3)) - (i32.const -4 #| ~3 |#)))) - (data (i32.const 135760) "@\u0012\u0002\u0000\u0005ALIGN\u0000\u0000=\u0000\u0000\u0000") + (i32.const -4 (; ~3 ;))))) + (data (i32.const 135760) "@\12\02\00\05ALIGN\00\00=\00\00\00") (elem (i32.const 0x3d) $ALIGN) ;; 6.1.0706 @@ -576,14 +561,14 @@ (local $btos i32) (i32.store (tee_local $btos (i32.sub (get_global $tos) (i32.const 4))) (i32.and (i32.add (i32.load (get_local $btos)) (i32.const 3)) - (i32.const -4 #| ~3 |#)))) - (data (i32.const 135776) "P\u0012\u0002\u0000\u0007ALIGNED>\u0000\u0000\u0000") + (i32.const -4 (; ~3 ;))))) + (data (i32.const 135776) "P\12\02\00\07ALIGNED>\00\00\00") (elem (i32.const 0x3e) $ALIGNED) ;; 6.1.0710 (func $ALLOT (set_global $here (i32.add (get_global $here) (call $pop)))) - (data (i32.const 135792) "`\u0012\u0002\u0000\u0005ALLOT\u0000\u0000?\u0000\u0000\u0000") + (data (i32.const 135792) "`\12\02\00\05ALLOT\00\00?\00\00\00") (elem (i32.const 0x3f) $ALLOT) ;; 6.1.0720 @@ -594,26 +579,26 @@ (i32.and (i32.load (tee_local $btos (i32.sub (get_global $tos) (i32.const 4)))) (i32.load (get_local $bbtos)))) (set_global $tos (get_local $btos))) - (data (i32.const 135808) "p\u0012\u0002\u0000\u0003AND@\u0000\u0000\u0000") + (data (i32.const 135808) "p\12\02\00\03AND@\00\00\00") (elem (i32.const 0x40) $AND) ;; 6.1.0750 (func $BASE (i32.store (get_global $tos) (i32.const !baseBase)) (set_global $tos (i32.add (get_global $tos) (i32.const 4)))) - (data (i32.const 135820) "\u0080\u0012\u0002\u0000\u0004BASE\u0000\u0000\u0000A\u0000\u0000\u0000") + (data (i32.const 135820) "\80\12\02\00\04BASE\00\00\00A\00\00\00") (elem (i32.const 0x41) $BASE) ;; 6.1.0760 (func $begin (call $ensureCompiling) (call $compileBegin)) - (data (i32.const 135836) "\u008c\u0012\u0002\u0000\u0085BEGIN\u0000\u0000B\u0000\u0000\u0000") + (data (i32.const 135836) "\8c\12\02\00\85BEGIN\00\00B\00\00\00") (elem (i32.const 0x42) $begin) ;; immediate ;; 6.1.0770 (func $bl (call $push (i32.const 32))) - (data (i32.const 135852) "\u009c\u0012\u0002\u0000\u0002BL\u0000C\u0000\u0000\u0000") + (data (i32.const 135852) "\9c\12\02\00\02BL\00C\00\00\00") (elem (i32.const 0x43) $bl) ;; 6.1.0850 @@ -622,7 +607,7 @@ (i32.store8 (i32.load (i32.sub (get_global $tos) (i32.const 4))) (i32.load (tee_local $bbtos (i32.sub (get_global $tos) (i32.const 8))))) (set_global $tos (get_local $bbtos))) - (data (i32.const 135864) "\u00ac\u0012\u0002\u0000\u0002C!\u0000D\u0000\u0000\u0000") + (data (i32.const 135864) "\ac\12\02\00\02C!\00D\00\00\00") (elem (i32.const 0x44) $c-store) ;; 6.1.0860 @@ -631,7 +616,7 @@ (i32.load (i32.sub (get_global $tos) (i32.const 4)))) (set_global $here (i32.add (get_global $here) (i32.const 1))) (set_global $tos (i32.sub (get_global $tos) (i32.const 4)))) - (data (i32.const 135876) "\u00b8\u0012\u0002\u0000\u0002C,\u0000E\u0000\u0000\u0000") + (data (i32.const 135876) "\b8\12\02\00\02C,\00E\00\00\00") (elem (i32.const 0x45) $c-comma) ;; 6.1.0870 @@ -639,21 +624,21 @@ (local $btos i32) (i32.store (tee_local $btos (i32.sub (get_global $tos) (i32.const 4))) (i32.load8_u (i32.load (get_local $btos))))) - (data (i32.const 135888) "\u00c4\u0012\u0002\u0000\u0002C@\u0000F\u0000\u0000\u0000") + (data (i32.const 135888) "\c4\12\02\00\02C@\00F\00\00\00") (elem (i32.const 0x46) $c-fetch) (func $CELL+ (local $btos i32) (i32.store (tee_local $btos (i32.sub (get_global $tos) (i32.const 4))) (i32.add (i32.load (get_local $btos)) (i32.const 4)))) - (data (i32.const 135900) "\u00d0\u0012\u0002\u0000\u0005CELL+\u0000\u0000G\u0000\u0000\u0000") + (data (i32.const 135900) "\d0\12\02\00\05CELL+\00\00G\00\00\00") (elem (i32.const 0x47) $CELL+) (func $CELLS (local $btos i32) (i32.store (tee_local $btos (i32.sub (get_global $tos) (i32.const 4))) (i32.shl (i32.load (get_local $btos)) (i32.const 2)))) - (data (i32.const 135916) "\u00dc\u0012\u0002\u0000\u0005CELLS\u0000\u0000H\u0000\u0000\u0000") + (data (i32.const 135916) "\dc\12\02\00\05CELLS\00\00H\00\00\00") (elem (i32.const 0x48) $CELLS) ;; 6.1.0895 @@ -662,15 +647,15 @@ (if (i32.eqz (i32.load8_u (i32.const !wordBase))) (call $fail (i32.const 0x20028))) ;; incomplete input (i32.store (i32.sub (get_global $tos) (i32.const 4)) (i32.load8_u (i32.const !wordBasePlus1)))) - (data (i32.const 135932) "\u00ec\u0012\u0002\u0000\u0004CHAR\u0000\u0000\u0000I\u0000\u0000\u0000") + (data (i32.const 135932) "\ec\12\02\00\04CHAR\00\00\00I\00\00\00") (elem (i32.const 0x49) $CHAR) (func $CHAR+ (call $one-plus)) - (data (i32.const 135948) "\u00fc\u0012\u0002\u0000\u0005CHAR+\u0000\u0000J\u0000\u0000\u0000") + (data (i32.const 135948) "\fc\12\02\00\05CHAR+\00\00J\00\00\00") (elem (i32.const 0x4a) $CHAR+) (func $CHARS) - (data (i32.const 135964) "\u000c\u0013\u0002\u0000\u0005CHARS\u0000\u0000K\u0000\u0000\u0000") + (data (i32.const 135964) "\0c\13\02\00\05CHARS\00\00K\00\00\00") (elem (i32.const 0x4b) $CHARS) ;; 6.1.0950 @@ -679,7 +664,7 @@ (i32.store (i32.sub (get_global $here) (i32.const 4)) (i32.const !pushIndirectIndex)) (i32.store (get_global $here) (call $pop)) (set_global $here (i32.add (get_global $here) (i32.const 4)))) - (data (i32.const 135980) "\u001c\u0013\u0002\u0000" "\u0008" "CONSTANT\u0000\u0000\u0000" "L\u0000\u0000\u0000") + (data (i32.const 135980) "\1c\13\02\00" "\08" "CONSTANT\00\00\00" "L\00\00\00") (elem (i32.const !constantIndex) $CONSTANT) ;; 6.1.0980 @@ -691,12 +676,12 @@ (i32.const 4))))))) (i32.store (get_local $btos) (i32.add (get_local $addr) (i32.const 1))) (set_global $tos (i32.add (get_global $tos) (i32.const 4)))) - (data (i32.const 136000) ",\u0013\u0002\u0000\u0005COUNT\u0000\u0000M\u0000\u0000\u0000") + (data (i32.const 136000) ",\13\02\00\05COUNT\00\00M\00\00\00") (elem (i32.const 0x4d) $COUNT) (func $CR (call $push (i32.const 10)) (call $EMIT)) - (data (i32.const 136016) "@\u0013\u0002\u0000\u0002CR\u0000N\u0000\u0000\u0000") + (data (i32.const 136016) "@\13\02\00\02CR\00N\00\00\00") (elem (i32.const 0x4e) $CR) ;; 6.1.1000 @@ -724,12 +709,12 @@ (i32.store (get_global $here) (i32.const 0)) (call $setFlag (i32.const !fData))) - (data (i32.const 136028) "P\u0013\u0002\u0000\u0006CREATE\u0000O\u0000\u0000\u0000") + (data (i32.const 136028) "P\13\02\00\06CREATE\00O\00\00\00") (elem (i32.const 0x4f) $CREATE) (func $DECIMAL (i32.store (i32.const !baseBase) (i32.const 10))) - (data (i32.const 136044) "\u005c\u0013\u0002\u0000\u0007DECIMALP\u0000\u0000\u0000") + (data (i32.const 136044) "\5c\13\02\00\07DECIMALP\00\00\00") (elem (i32.const 0x50) $DECIMAL) ;; 6.1.1200 @@ -737,7 +722,7 @@ (i32.store (get_global $tos) (i32.shr_u (i32.sub (get_global $tos) (i32.const !stackBase)) (i32.const 2))) (set_global $tos (i32.add (get_global $tos) (i32.const 4)))) - (data (i32.const 136060) "l\u0013\u0002\u0000\u0005DEPTH\u0000\u0000Q\u0000\u0000\u0000") + (data (i32.const 136060) "l\13\02\00\05DEPTH\00\00Q\00\00\00") (elem (i32.const 0x51) $DEPTH) @@ -745,7 +730,7 @@ (func $do (call $ensureCompiling) (call $compileDo)) - (data (i32.const 136076) "|\u0013\u0002\u0000\u0082DO\u0000R\u0000\u0000\u0000") + (data (i32.const 136076) "|\13\02\00\82DO\00R\00\00\00") (elem (i32.const 0x52) $do) ;; immediate ;; 6.1.1250 @@ -756,13 +741,13 @@ (call $endColon) (call $startColon (i32.const 1)) (call $compilePushLocal (i32.const 0))) - (data (i32.const 136088) "\u008c\u0013\u0002\u0000\u0085DOES>\u0000\u0000S\u0000\u0000\u0000") + (data (i32.const 136088) "\8c\13\02\00\85DOES>\00\00S\00\00\00") (elem (i32.const 0x53) $DOES>) ;; immediate ;; 6.1.1260 (func $DROP (set_global $tos (i32.sub (get_global $tos) (i32.const 4)))) - (data (i32.const 136104) "\u0098\u0013\u0002\u0000\u0004DROP\u0000\u0000\u0000T\u0000\u0000\u0000") + (data (i32.const 136104) "\98\13\02\00\04DROP\00\00\00T\00\00\00") (elem (i32.const 0x54) $DROP) ;; 6.1.1290 @@ -771,25 +756,25 @@ (get_global $tos) (i32.load (i32.sub (get_global $tos) (i32.const 4)))) (set_global $tos (i32.add (get_global $tos) (i32.const 4)))) - (data (i32.const 136120) "\u00a8\u0013\u0002\u0000\u0003DUPU\u0000\u0000\u0000") + (data (i32.const 136120) "\a8\13\02\00\03DUPU\00\00\00") (elem (i32.const 0x55) $DUP) ;; 6.1.1310 (func $else (call $ensureCompiling) (call $emitElse)) - (data (i32.const 136132) "\u00b8\u0013\u0002\u0000\u0084ELSE\u0000\u0000\u0000V\u0000\u0000\u0000") + (data (i32.const 136132) "\b8\13\02\00\84ELSE\00\00\00V\00\00\00") (elem (i32.const 0x56) $else) ;; immediate ;; 6.1.1320 (func $EMIT (call $shell_emit (i32.load (i32.sub (get_global $tos) (i32.const 4)))) (set_global $tos (i32.sub (get_global $tos) (i32.const 4)))) - (data (i32.const 136148) "\u00c4\u0013\u0002\u0000\u0004EMIT\u0000\u0000\u0000W\u0000\u0000\u0000") + (data (i32.const 136148) "\c4\13\02\00\04EMIT\00\00\00W\00\00\00") (elem (i32.const 0x57) $EMIT) (func $ENVIRONMENT (call $fail (i32.const 0x20084))) ;; not implemented - (data (i32.const 136164) "\u00d4\u0013\u0002\u0000\u000bENVIRONMENTX\u0000\u0000\u0000") + (data (i32.const 136164) "\d4\13\02\00\0bENVIRONMENTX\00\00\00") (elem (i32.const 0x58) $ENVIRONMENT) ;; 6.1.1360 @@ -819,7 +804,7 @@ (i32.store (i32.const !inBase) (get_local $prevIn)) (set_global $inputBufferBase (get_local $prevInputBufferBase)) (set_global $inputBufferSize (get_local $prevInputBufferSize))) - (data (i32.const 136184) "\u00e4\u0013\u0002\u0000\u0008EVALUATE\u0000\u0000\u0000Y\u0000\u0000\u0000") + (data (i32.const 136184) "\e4\13\02\00\08EVALUATE\00\00\00Y\00\00\00") (elem (i32.const 0x59) $EVALUATE) ;; 6.1.1370 @@ -834,14 +819,14 @@ (i32.load (get_local $body)))) (else (call_indirect (type $word) (i32.load (get_local $body)))))) - (data (i32.const 136204) "\u00f8\u0013\u0002\u0000\u0007EXECUTEZ\u0000\u0000\u0000") + (data (i32.const 136204) "\f8\13\02\00\07EXECUTEZ\00\00\00") (elem (i32.const 0x5a) $EXECUTE) ;; 6.1.1380 (func $EXIT (call $ensureCompiling) (call $emitReturn)) - (data (i32.const 136220) "\u000c\u0014\u0002\u0000\u0084EXIT\u0000\u0000\u0000[\u0000\u0000\u0000") + (data (i32.const 136220) "\0c\14\02\00\84EXIT\00\00\00[\00\00\00") (elem (i32.const 0x5b) $EXIT) ;; immediate ;; 6.1.1540 @@ -851,7 +836,7 @@ (i32.load (i32.sub (get_global $tos) (i32.const 4))) (i32.load (i32.sub (get_global $tos) (i32.const 8)))) (set_global $tos (get_local $bbbtos))) - (data (i32.const 136236) "\u001c\u0014\u0002\u0000\u0004FILL\u0000\u0000\u0000\u005c\u0000\u0000\u0000") + (data (i32.const 136236) "\1c\14\02\00\04FILL\00\00\00\5c\00\00\00") (elem (i32.const 0x5c) $FILL) ;; 6.1.1550 @@ -903,7 +888,7 @@ (br_if $endLoop (i32.eqz (get_local $entryP))) (br $loop))) (call $push (i32.const 0))) - (data (i32.const 136252) ",\u0014\u0002\u0000\u0004FIND\u0000\u0000\u0000]\u0000\u0000\u0000") + (data (i32.const 136252) ",\14\02\00\04FIND\00\00\00]\00\00\00") (elem (i32.const 0x5d) $find) ;; 6.1.1561 @@ -918,38 +903,38 @@ (i32.store (i32.sub (get_global $tos) (i32.const 8)) (i32.wrap/i64 (i64.div_s (get_local $n1) (i64.extend_s/i32 (get_local $n2))))) (set_global $tos (get_local $btos))) - (data (i32.const 136268) "<\u0014\u0002\u0000\u0006FM/MOD\u0000^\u0000\u0000\u0000") + (data (i32.const 136268) "<\14\02\00\06FM/MOD\00^\00\00\00") (elem (i32.const 0x5e) $f-m-slash-mod) ;; 6.1.1650 (func $here (i32.store (get_global $tos) (get_global $here)) (set_global $tos (i32.add (get_global $tos) (i32.const 4)))) - (data (i32.const 136284) "L\u0014\u0002\u0000\u0004HERE\u0000\u0000\u0000_\u0000\u0000\u0000") + (data (i32.const 136284) "L\14\02\00\04HERE\00\00\00_\00\00\00") (elem (i32.const 0x5f) $here) (func $HOLD (call $fail (i32.const 0x20084))) ;; not implemented - (data (i32.const 136300) "\u005c\u0014\u0002\u0000\u0004HOLD\u0000\u0000\u0000`\u0000\u0000\u0000") + (data (i32.const 136300) "\5c\14\02\00\04HOLD\00\00\00`\00\00\00") (elem (i32.const 0x60) $HOLD) ;; 6.1.1680 (func $i (call $ensureCompiling) (call $compilePushLocal (i32.sub (get_global $currentLocal) (i32.const 1)))) - (data (i32.const 136316) "l\u0014\u0002\u0000\u0081I\u0000\u0000a\u0000\u0000\u0000") + (data (i32.const 136316) "l\14\02\00\81I\00\00a\00\00\00") (elem (i32.const 0x61) $i) ;; immediate ;; 6.1.1700 (func $if (call $ensureCompiling) (call $compileIf)) - (data (i32.const 136328) "|\u0014\u0002\u0000\u0082IF\u0000b\u0000\u0000\u0000") + (data (i32.const 136328) "|\14\02\00\82IF\00b\00\00\00") (elem (i32.const 0x62) $if) ;; immediate ;; 6.1.1710 (func $immediate (call $setFlag (i32.const !fImmediate))) - (data (i32.const 136340) "\u0088\u0014\u0002\u0000\u0009IMMEDIATE\u0000\u0000c\u0000\u0000\u0000") + (data (i32.const 136340) "\88\14\02\00\09IMMEDIATE\00\00c\00\00\00") (elem (i32.const 0x63) $immediate) ;; 6.1.1720 @@ -957,28 +942,28 @@ (local $btos i32) (i32.store (tee_local $btos (i32.sub (get_global $tos) (i32.const 4))) (i32.xor (i32.load (get_local $btos)) (i32.const -1)))) - (data (i32.const 136360) "\u0094\u0014\u0002\u0000\u0006INVERT\u0000d\u0000\u0000\u0000") + (data (i32.const 136360) "\94\14\02\00\06INVERT\00d\00\00\00") (elem (i32.const 0x64) $INVERT) ;; 6.1.1730 (func $j (call $ensureCompiling) (call $compilePushLocal (i32.sub (get_global $currentLocal) (i32.const 4)))) - (data (i32.const 136376) "\u00a8\u0014\u0002\u0000\u0081J\u0000\u0000e\u0000\u0000\u0000") + (data (i32.const 136376) "\a8\14\02\00\81J\00\00e\00\00\00") (elem (i32.const 0x65) $j) ;; immediate ;; 6.1.1750 (func $key (i32.store (get_global $tos) (call $shell_key)) (set_global $tos (i32.add (get_global $tos) (i32.const 4)))) - (data (i32.const 136388) "\u00b8\u0014\u0002\u0000\u0003KEYf\u0000\u0000\u0000") + (data (i32.const 136388) "\b8\14\02\00\03KEYf\00\00\00") (elem (i32.const 0x66) $key) ;; 6.1.1760 (func $LEAVE (call $ensureCompiling) (call $compileLeave)) - (data (i32.const 136400) "\u00c4\u0014\u0002\u0000\u0085LEAVE\u0000\u0000g\u0000\u0000\u0000") + (data (i32.const 136400) "\c4\14\02\00\85LEAVE\00\00g\00\00\00") (elem (i32.const 0x67) $LEAVE) ;; immediate @@ -986,14 +971,14 @@ (func $literal (call $ensureCompiling) (call $compilePushConst (call $pop))) - (data (i32.const 136416) "\u00d0\u0014\u0002\u0000\u0087LITERALh\u0000\u0000\u0000") + (data (i32.const 136416) "\d0\14\02\00\87LITERALh\00\00\00") (elem (i32.const 0x68) $literal) ;; immediate ;; 6.1.1800 (func $loop (call $ensureCompiling) (call $compileLoop)) - (data (i32.const 136432) "\u00e0\u0014\u0002\u0000\u0084LOOP\u0000\u0000\u0000i\u0000\u0000\u0000") + (data (i32.const 136432) "\e0\14\02\00\84LOOP\00\00\00i\00\00\00") (elem (i32.const 0x69) $loop) ;; immediate ;; 6.1.1805 @@ -1004,7 +989,7 @@ (i32.shl (i32.load (get_local $bbtos)) (i32.load (tee_local $btos (i32.sub (get_global $tos) (i32.const 4)))))) (set_global $tos (get_local $btos))) - (data (i32.const 136448) "\u00f0\u0014\u0002\u0000\u0006LSHIFT\u0000j\u0000\u0000\u0000") + (data (i32.const 136448) "\f0\14\02\00\06LSHIFT\00j\00\00\00") (elem (i32.const 0x6a) $LSHIFT) ;; 6.1.1810 @@ -1014,7 +999,7 @@ (i64.mul (i64.extend_s/i32 (i32.load (get_local $bbtos))) (i64.extend_s/i32 (i32.load (i32.sub (get_global $tos) (i32.const 4))))))) - (data (i32.const 136464) "\u0000\u0015\u0002\u0000\u0002M*\u0000k\u0000\u0000\u0000") + (data (i32.const 136464) "\00\15\02\00\02M*\00k\00\00\00") (elem (i32.const 0x6b) $m-star) ;; 6.1.1870 @@ -1028,7 +1013,7 @@ (then (i32.store (get_local $bbtos) (get_local $v)))) (set_global $tos (get_local $btos))) - (data (i32.const 136476) "\u0010\u0015\u0002\u0000\u0003MAXl\u0000\u0000\u0000") + (data (i32.const 136476) "\10\15\02\00\03MAXl\00\00\00") (elem (i32.const 0x6c) $MAX) ;; 6.1.1880 @@ -1042,7 +1027,7 @@ (then (i32.store (get_local $bbtos) (get_local $v)))) (set_global $tos (get_local $btos))) - (data (i32.const 136488) "\u001c\u0015\u0002\u0000\u0003MINm\u0000\u0000\u0000") + (data (i32.const 136488) "\1c\15\02\00\03MINm\00\00\00") (elem (i32.const 0x6d) $MIN) ;; 6.1.1890 @@ -1053,7 +1038,7 @@ (i32.rem_s (i32.load (get_local $bbtos)) (i32.load (tee_local $btos (i32.sub (get_global $tos) (i32.const 4)))))) (set_global $tos (get_local $btos))) - (data (i32.const 136500) "(\u0015\u0002\u0000\u0003MODn\u0000\u0000\u0000") + (data (i32.const 136500) "(\15\02\00\03MODn\00\00\00") (elem (i32.const 0x6e) $MOD) ;; 6.1.1900 @@ -1063,7 +1048,7 @@ (i32.load (tee_local $bbbtos (i32.sub (get_global $tos) (i32.const 12)))) (i32.load (i32.sub (get_global $tos) (i32.const 4)))) (set_global $tos (get_local $bbbtos))) - (data (i32.const 136512) "4\u0015\u0002\u0000\u0004MOVE\u0000\u0000\u0000o\u0000\u0000\u0000") + (data (i32.const 136512) "4\15\02\00\04MOVE\00\00\00o\00\00\00") (elem (i32.const 0x6f) $MOVE) ;; 6.1.1910 @@ -1071,7 +1056,7 @@ (local $btos i32) (i32.store (tee_local $btos (i32.sub (get_global $tos) (i32.const 4))) (i32.sub (i32.const 0) (i32.load (get_local $btos))))) - (data (i32.const 136528) "@\u0015\u0002\u0000\u0006NEGATE\u0000p\u0000\u0000\u0000") + (data (i32.const 136528) "@\15\02\00\06NEGATE\00p\00\00\00") (elem (i32.const 0x70) $negate) ;; 6.1.1980 @@ -1082,7 +1067,7 @@ (i32.or (i32.load (tee_local $btos (i32.sub (get_global $tos) (i32.const 4)))) (i32.load (get_local $bbtos)))) (set_global $tos (get_local $btos))) - (data (i32.const 136544) "P\u0015\u0002\u0000\u0002OR\u0000q\u0000\u0000\u0000") + (data (i32.const 136544) "P\15\02\00\02OR\00q\00\00\00") (elem (i32.const 0x71) $OR) ;; 6.1.1990 @@ -1090,7 +1075,7 @@ (i32.store (get_global $tos) (i32.load (i32.sub (get_global $tos) (i32.const 8)))) (set_global $tos (i32.add (get_global $tos) (i32.const 4)))) - (data (i32.const 136556) "`\u0015\u0002\u0000\u0004OVER\u0000\u0000\u0000r\u0000\u0000\u0000") + (data (i32.const 136556) "`\15\02\00\04OVER\00\00\00r\00\00\00") (elem (i32.const 0x72) $OVER) ;; 6.1.2033 @@ -1108,7 +1093,7 @@ (else (call $emitConst (get_local $findToken)) (call $emitICall (i32.const 1) (i32.const !compileCallIndex))))) - (data (i32.const 136572) "l\u0015\u0002\u0000\u0088POSTPONE\u0000\u0000\u0000s\u0000\u0000\u0000") + (data (i32.const 136572) "l\15\02\00\88POSTPONE\00\00\00s\00\00\00") (elem (i32.const 0x73) $POSTPONE) ;; immediate ;; 6.1.2050 @@ -1116,7 +1101,7 @@ (set_global $tors (i32.const !returnStackBase)) (set_global $sourceID (i32.const 0)) (unreachable)) - (data (i32.const 136592) "|\u0015\u0002\u0000\u0004QUIT\u0000\u0000\u0000t\u0000\u0000\u0000") + (data (i32.const 136592) "|\15\02\00\04QUIT\00\00\00t\00\00\00") (elem (i32.const 0x74) $QUIT) ;; 6.1.2060 @@ -1124,21 +1109,21 @@ (set_global $tors (i32.sub (get_global $tors) (i32.const 4))) (i32.store (get_global $tos) (i32.load (get_global $tors))) (set_global $tos (i32.add (get_global $tos) (i32.const 4)))) - (data (i32.const 136608) "\u0090\u0015\u0002\u0000\u0002R>\u0000u\u0000\u0000\u0000") + (data (i32.const 136608) "\90\15\02\00\02R>\00u\00\00\00") (elem (i32.const 0x75) $R>) ;; 6.1.2070 (func $R@ (i32.store (get_global $tos) (i32.load (i32.sub (get_global $tors) (i32.const 4)))) (set_global $tos (i32.add (get_global $tos) (i32.const 4)))) - (data (i32.const 136620) "\u00a0\u0015\u0002\u0000\u0002R@\u0000v\u0000\u0000\u0000") + (data (i32.const 136620) "\a0\15\02\00\02R@\00v\00\00\00") (elem (i32.const 0x76) $R@) ;; 6.1.2120 (func $RECURSE (call $ensureCompiling) (call $compileRecurse)) - (data (i32.const 136632) "\u00ac\u0015\u0002\u0000\u0087RECURSEw\u0000\u0000\u0000") + (data (i32.const 136632) "\ac\15\02\00\87RECURSEw\00\00\00") (elem (i32.const 0x77) $RECURSE) ;; immediate @@ -1146,7 +1131,7 @@ (func $repeat (call $ensureCompiling) (call $compileRepeat)) - (data (i32.const 136648) "\u00b8\u0015\u0002\u0000\u0086REPEAT\u0000x\u0000\u0000\u0000") + (data (i32.const 136648) "\b8\15\02\00\86REPEAT\00x\00\00\00") (elem (i32.const 0x78) $repeat) ;; immediate ;; 6.1.2160 ROT @@ -1162,7 +1147,7 @@ (i32.load (tee_local $bbtos (i32.sub (get_global $tos) (i32.const 8))))) (i32.store (get_local $bbtos) (get_local $tmp))) - (data (i32.const 136664) "\u00c8\u0015\u0002\u0000\u0003ROTy\u0000\u0000\u0000") + (data (i32.const 136664) "\c8\15\02\00\03ROTy\00\00\00") (elem (i32.const 0x79) $ROT) ;; 6.1.2162 @@ -1173,7 +1158,7 @@ (i32.shr_u (i32.load (get_local $bbtos)) (i32.load (tee_local $btos (i32.sub (get_global $tos) (i32.const 4)))))) (set_global $tos (get_local $btos))) - (data (i32.const 136676) "\u00d8\u0015\u0002\u0000\u0006RSHIFT\u0000z\u0000\u0000\u0000") + (data (i32.const 136676) "\d8\15\02\00\06RSHIFT\00z\00\00\00") (elem (i32.const 0x7a) $RSHIFT) ;; 6.1.2165 @@ -1193,7 +1178,7 @@ (call $compilePushConst (get_local $start)) (call $compilePushConst (i32.sub (get_global $here) (get_local $start))) (call $ALIGN)) - (data (i32.const 136692) "\u00e4\u0015\u0002\u0000\u0082S\u0022\u0000{\u0000\u0000\u0000") + (data (i32.const 136692) "\e4\15\02\00\82S\22\00{\00\00\00") (elem (i32.const 0x7b) $Sq) ;; immediate ;; 6.1.2170 @@ -1202,27 +1187,27 @@ (i64.store (tee_local $btos (i32.sub (get_global $tos) (i32.const 4))) (i64.extend_s/i32 (i32.load (get_local $btos)))) (set_global $tos (i32.add (get_global $tos) (i32.const 4)))) - (data (i32.const 136704) "\u00f4\u0015\u0002\u0000\u0003S>D|\u0000\u0000\u0000") + (data (i32.const 136704) "\f4\15\02\00\03S>D|\00\00\00") (elem (i32.const 0x7c) $s-to-d) (func $SIGN (call $fail (i32.const 0x20084))) ;; not implemented - (data (i32.const 136716) "\u0000\u0016\u0002\u0000\u0004SIGN\u0000\u0000\u0000}\u0000\u0000\u0000") + (data (i32.const 136716) "\00\16\02\00\04SIGN\00\00\00}\00\00\00") (elem (i32.const 0x7d) $SIGN) (func $SM/REM (call $fail (i32.const 0x20084))) ;; not implemented - (data (i32.const 136732) "\u000c\u0016\u0002\u0000\u0006SM/REM\u0000~\u0000\u0000\u0000") + (data (i32.const 136732) "\0c\16\02\00\06SM/REM\00~\00\00\00") (elem (i32.const 0x7e) $SM/REM) ;; 6.1.2216 (func $SOURCE (call $push (get_global $inputBufferBase)) (call $push (get_global $inputBufferSize))) - (data (i32.const 136748) "\u001c\u0016\u0002\u0000\u0006SOURCE\u0000\u007f\u0000\u0000\u0000") + (data (i32.const 136748) "\1c\16\02\00\06SOURCE\00\7f\00\00\00") (elem (i32.const 0x7f) $SOURCE) ;; 6.1.2220 (func $space (call $bl) (call $EMIT)) - (data (i32.const 136764) ",\u0016\u0002\u0000\u0005SPACE\u0000\u0000\u0080\u0000\u0000\u0000") + (data (i32.const 136764) ",\16\02\00\05SPACE\00\00\80\00\00\00") (elem (i32.const 0x80) $space) (func $SPACES @@ -1234,14 +1219,14 @@ (call $space) (set_local $i (i32.sub (get_local $i) (i32.const 1))) (br $loop)))) - (data (i32.const 136780) "<\u0016\u0002\u0000\u0006SPACES\u0000\u0081\u0000\u0000\u0000") + (data (i32.const 136780) "<\16\02\00\06SPACES\00\81\00\00\00") (elem (i32.const 0x81) $SPACES) ;; 6.1.2250 (func $STATE (i32.store (get_global $tos) (i32.const !stateBase)) (set_global $tos (i32.add (get_global $tos) (i32.const 4)))) - (data (i32.const 136796) "L\u0016\u0002\u0000\u0005STATE\u0000\u0000\u0082\u0000\u0000\u0000") + (data (i32.const 136796) "L\16\02\00\05STATE\00\00\82\00\00\00") (elem (i32.const 0x82) $STATE) ;; 6.1.2260 @@ -1253,14 +1238,14 @@ (i32.store (get_local $bbtos) (i32.load (tee_local $btos (i32.sub (get_global $tos) (i32.const 4))))) (i32.store (get_local $btos) (get_local $tmp))) - (data (i32.const 136812) "\u005c\u0016\u0002\u0000\u0004SWAP\u0000\u0000\u0000\u0083\u0000\u0000\u0000") + (data (i32.const 136812) "\5c\16\02\00\04SWAP\00\00\00\83\00\00\00") (elem (i32.const 0x83) $SWAP) ;; 6.1.2270 (func $then (call $ensureCompiling) (call $compileThen)) - (data (i32.const 136828) "l\u0016\u0002\u0000\u0084THEN\u0000\u0000\u0000\u0084\u0000\u0000\u0000") + (data (i32.const 136828) "l\16\02\00\84THEN\00\00\00\84\00\00\00") (elem (i32.const 0x84) $then) ;; immediate ;; 6.1.2310 TYPE @@ -1275,13 +1260,13 @@ (set_local $p (i32.add (get_local $p) (i32.const 1))) (br $loop)))) ;; WARNING: If you change this table index, make sure the emitted ICalls are also updated - (data (i32.const 136844) "|\u0016\u0002\u0000\u0004TYPE\u0000\u0000\u0000\u0085\u0000\u0000\u0000") + (data (i32.const 136844) "|\16\02\00\04TYPE\00\00\00\85\00\00\00") (elem (i32.const 0x85) $TYPE) ;; none (func $U. (call $U._ (call $pop) (i32.load (i32.const !baseBase))) (call $shell_emit (i32.const 0x20))) - (data (i32.const 136860) "\u008c\u0016\u0002\u0000\u0002U.\u0000\u0086\u0000\u0000\u0000") + (data (i32.const 136860) "\8c\16\02\00\02U.\00\86\00\00\00") (elem (i32.const 0x86) $U.) ;; 6.1.2340 @@ -1293,7 +1278,7 @@ (then (i32.store (get_local $bbtos) (i32.const -1))) (else (i32.store (get_local $bbtos) (i32.const 0)))) (set_global $tos (get_local $btos))) - (data (i32.const 136872) "\u009c\u0016\u0002\u0000\u0002U<\u0000\u0087\u0000\u0000\u0000") + (data (i32.const 136872) "\9c\16\02\00\02U<\00\87\00\00\00") (elem (i32.const 0x87) $U<) ;; 6.1.2360 @@ -1303,44 +1288,44 @@ (i64.mul (i64.extend_u/i32 (i32.load (get_local $bbtos))) (i64.extend_u/i32 (i32.load (i32.sub (get_global $tos) (i32.const 4))))))) - (data (i32.const 136884) "\u00a8\u0016\u0002\u0000\u0003UM*\u0088\u0000\u0000\u0000") + (data (i32.const 136884) "\a8\16\02\00\03UM*\88\00\00\00") (elem (i32.const 0x88) $um-star) (func $UM/MOD (call $fail (i32.const 0x20084))) ;; not implemented - (data (i32.const 136896) "\u00b4\u0016\u0002\u0000\u0006UM/MOD\u0000\u0089\u0000\u0000\u0000") + (data (i32.const 136896) "\b4\16\02\00\06UM/MOD\00\89\00\00\00") (elem (i32.const 0x89) $UM/MOD) ;; TODO: Rename ;; 6.1.2380 (func $UNLOOP (call $ensureCompiling)) - (data (i32.const 136912) "\u00c0\u0016\u0002\u0000\u0086UNLOOP\u0000\u008a\u0000\u0000\u0000") + (data (i32.const 136912) "\c0\16\02\00\86UNLOOP\00\8a\00\00\00") (elem (i32.const 0x8a) $UNLOOP) ;; immediate ;; 6.1.2390 (func $UNTIL (call $ensureCompiling) (call $compileUntil)) - (data (i32.const 136928) "\u00d0\u0016\u0002\u0000\u0085UNTIL\u0000\u0000\u008b\u0000\u0000\u0000") + (data (i32.const 136928) "\d0\16\02\00\85UNTIL\00\00\8b\00\00\00") (elem (i32.const 0x8b) $UNTIL) ;; immediate ;; 6.1.2410 (func $VARIABLE (call $CREATE) (set_global $here (i32.add (get_global $here) (i32.const 4)))) - (data (i32.const 136944) "\u00e0\u0016\u0002\u0000\u0008VARIABLE\u0000\u0000\u0000\u008c\u0000\u0000\u0000") + (data (i32.const 136944) "\e0\16\02\00\08VARIABLE\00\00\00\8c\00\00\00") (elem (i32.const 0x8c) $VARIABLE) ;; 6.1.2430 (func $while (call $ensureCompiling) (call $compileWhile)) - (data (i32.const 136964) "\u00f0\u0016\u0002\u0000\u0085WHILE\u0000\u0000\u008d\u0000\u0000\u0000") + (data (i32.const 136964) "\f0\16\02\00\85WHILE\00\00\8d\00\00\00") (elem (i32.const 0x8d) $while) ;; immediate ;; 6.1.2450 (func $word (call $readWord (call $pop))) - (data (i32.const 136980) "\u0004\u0017\u0002\u0000\u0004WORD\u0000\u0000\u0000\u008e\u0000\u0000\u0000") + (data (i32.const 136980) "\04\17\02\00\04WORD\00\00\00\8e\00\00\00") (elem (i32.const 0x8e) $word) ;; 6.1.2490 @@ -1351,14 +1336,14 @@ (i32.xor (i32.load (tee_local $btos (i32.sub (get_global $tos) (i32.const 4)))) (i32.load (get_local $bbtos)))) (set_global $tos (get_local $btos))) - (data (i32.const 136996) "\u0014\u0017\u0002\u0000\u0003XOR\u008f\u0000\u0000\u0000") + (data (i32.const 136996) "\14\17\02\00\03XOR\8f\00\00\00") (elem (i32.const 0x8f) $XOR) ;; 6.1.2500 (func $left-bracket (call $ensureCompiling) (i32.store (i32.const !stateBase) (i32.const 0))) - (data (i32.const 137008) "$\u0017\u0002\u0000\u0081[\u0000\u0000\u0090\u0000\u0000\u0000") + (data (i32.const 137008) "$\17\02\00\81[\00\00\90\00\00\00") (elem (i32.const 0x90) $left-bracket) ;; immediate ;; 6.1.2510 @@ -1366,7 +1351,7 @@ (call $ensureCompiling) (call $tick) (call $compilePushConst (call $pop))) - (data (i32.const 137020) "0\u0017\u0002\u0000\u0083[']\u0091\u0000\u0000\u0000") + (data (i32.const 137020) "0\17\02\00\83[']\91\00\00\00") (elem (i32.const 0x91) $bracket-tick) ;; immediate ;; 6.1.2520 @@ -1374,13 +1359,13 @@ (call $ensureCompiling) (call $CHAR) (call $compilePushConst (call $pop))) - (data (i32.const 137032) "<\u0017\u0002\u0000\u0086[CHAR]\u0000\u0092\u0000\u0000\u0000") + (data (i32.const 137032) "<\17\02\00\86[CHAR]\00\92\00\00\00") (elem (i32.const 0x92) $bracket-char) ;; immediate ;; 6.1.2540 (func $right-bracket (i32.store (i32.const !stateBase) (i32.const 1))) - (data (i32.const 137048) "H\u0017\u0002\u0000\u0001]\u0000\u0000\u0093\u0000\u0000\u0000") + (data (i32.const 137048) "H\17\02\00\01]\00\00\93\00\00\00") (elem (i32.const 0x93) $right-bracket) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -1393,7 +1378,7 @@ (i32.const 0)) (then (i32.store (get_local $btos) (i32.const -1))) (else (i32.store (get_local $btos) (i32.const 0))))) - (data (i32.const 137060) "X\u0017\u0002\u0000\u00020>\u0000\u0094\u0000\u0000\u0000") + (data (i32.const 137060) "X\17\02\00\020>\00\94\00\00\00") (elem (i32.const 0x94) $zero-greater) ;; 6.2.1350 @@ -1403,7 +1388,7 @@ (i32.const 0) (i32.load (i32.sub (get_global $tos) (i32.const 4)))) (set_global $tos (get_local $bbtos))) - (data (i32.const 137072) "d\u0017\u0002\u0000\u0005ERASE\u0000\u0000\u0095\u0000\u0000\u0000") + (data (i32.const 137072) "d\17\02\00\05ERASE\00\00\95\00\00\00") (elem (i32.const 0x95) $erase) ;; 6.2.2030 @@ -1414,7 +1399,7 @@ (i32.shl (i32.add (i32.load (get_local $btos)) (i32.const 2)) (i32.const 2)))))) - (data (i32.const 137088) "p\u0017\u0002\u0000\u0004PICK\u0000\u0000\u0000\u0096\u0000\u0000\u0000") + (data (i32.const 137088) "p\17\02\00\04PICK\00\00\00\96\00\00\00") (elem (i32.const 0x96) $PICK) ;; 6.2.2125 @@ -1437,7 +1422,7 @@ (else (i32.store (i32.const !inBase) (i32.const 0)) (call $push (i32.const -1))))) - (data (i32.const 137104) "\u0080\u0017\u0002\u0000\u0006REFILL\u0000\u0097\u0000\u0000\u0000") + (data (i32.const 137104) "\80\17\02\00\06REFILL\00\97\00\00\00") (elem (i32.const 0x97) $refill) ;; 6.2.2295 @@ -1447,13 +1432,13 @@ (call $find) (if (i32.eqz (call $pop)) (call $fail (i32.const 0x20000))) ;; undefined word (i32.store (i32.add (call $body (call $pop)) (i32.const 4)) (call $pop))) - (data (i32.const 137120) "\u0090\u0017\u0002\u0000\u0002TO\u0000\u0098\u0000\u0000\u0000") + (data (i32.const 137120) "\90\17\02\00\02TO\00\98\00\00\00") (elem (i32.const 0x98) $TO) ;; 6.1.2395 (func $UNUSED (call $push (i32.shr_s (i32.sub (i32.const !memorySize) (get_global $here)) (i32.const 2)))) - (data (i32.const 137132) "\u00a0\u0017\u0002\u0000\u0006UNUSED\u0000\u0099\u0000\u0000\u0000") + (data (i32.const 137132) "\a0\17\02\00\06UNUSED\00\99\00\00\00") (elem (i32.const 0x99) $UNUSED) ;; 6.2.2535 @@ -1463,16 +1448,16 @@ (loop $skipComments (set_local $char (call $readChar)) (br_if $endSkipComments (i32.eq (get_local $char) - (i32.const 0x0a #| '\n' |#))) + (i32.const 0x0a (; '\n' ;)))) (br_if $endSkipComments (i32.eq (get_local $char) (i32.const -1))) (br $skipComments)))) - (data (i32.const 137148) "\u00ac\u0017\u0002\u0000\u0081\u005c\u0000\u0000\u009a\u0000\u0000\u0000") + (data (i32.const 137148) "\ac\17\02\00\81\5c\00\00\9a\00\00\00") (elem (i32.const 0x9a) $backslash) ;; immediate ;; 6.1.2250 (func $SOURCE-ID (call $push (get_global $sourceID))) - (data (i32.const 137160) "\u00bc\u0017\u0002\u0000\u0009SOURCE-ID\u0000\u0000\u009b\u0000\u0000\u0000") + (data (i32.const 137160) "\bc\17\02\00\09SOURCE-ID\00\00\9b\00\00\00") (elem (i32.const 0x9b) $SOURCE-ID) (func $dspFetch @@ -1480,48 +1465,48 @@ (get_global $tos) (get_global $tos)) (set_global $tos (i32.add (get_global $tos) (i32.const 4)))) - (data (i32.const 137180) "\u00c8\u0017\u0002\u0000\u0004DSP@\u0000\u0000\u0000\u009c\u0000\u0000\u0000") + (data (i32.const 137180) "\c8\17\02\00\04DSP@\00\00\00\9c\00\00\00") (elem (i32.const 0x9c) $dspFetch) (func $S0 (call $push (i32.const !stackBase))) - (data (i32.const 137196) "\u00dc\u0017\u0002\u0000\u0002S0\u0000\u009d\u0000\u0000\u0000") + (data (i32.const 137196) "\dc\17\02\00\02S0\00\9d\00\00\00") (elem (i32.const 0x9d) $S0) (func $latest (i32.store (get_global $tos) (get_global $latest)) (set_global $tos (i32.add (get_global $tos) (i32.const 4)))) - (data (i32.const 137208) "\u00ec\u0017\u0002\u0000\u0006LATEST\u0000\u009e\u0000\u0000\u0000") + (data (i32.const 137208) "\ec\17\02\00\06LATEST\00\9e\00\00\00") (elem (i32.const 0x9e) $latest) (func $HEX (i32.store (i32.const !baseBase) (i32.const 16))) - (data (i32.const #x21820) "\u0008\u0018\u0002\u0000\u0003HEX\u00a0\u0000\u0000\u0000") - (elem (i32.const #xa0) $HEX) + (data (i32.const 0x21820) "\08\18\02\00\03HEX\a0\00\00\00") + (elem (i32.const 0xa0) $HEX) ;; 6.2.2298 (func $TRUE (call $push (i32.const 0xffffffff))) - (data (i32.const #x2182c) "\u0020\u0018\u0002\u0000" "\u0004" "TRUE000" "\u00a1\u0000\u0000\u0000") - (elem (i32.const #xa1) $TRUE) + (data (i32.const 0x2182c) "\20\18\02\00" "\04" "TRUE000" "\a1\00\00\00") + (elem (i32.const 0xa1) $TRUE) ;; 6.2.1485 (func $FALSE (call $push (i32.const 0x0))) - (data (i32.const #x2183c) "\u002c\u0018\u0002\u0000" "\u0005" "FALSE00" "\u00a2\u0000\u0000\u0000") - (elem (i32.const #xa2) $FALSE) + (data (i32.const 0x2183c) "\2c\18\02\00" "\05" "FALSE00" "\a2\00\00\00") + (elem (i32.const 0xa2) $FALSE) ;; 6.2.1930 (func $NIP (call $SWAP) (call $DROP)) - (data (i32.const #x2184c) "\u003c\u0018\u0002\u0000" "\u0003" "NIP" "\u00a3\u0000\u0000\u0000") - (elem (i32.const #xa3) $NIP) + (data (i32.const 0x2184c) "\3c\18\02\00" "\03" "NIP" "\a3\00\00\00") + (elem (i32.const 0xa3) $NIP) ;; 6.2.2300 (func $TUCK (call $SWAP) (call $OVER)) - (data (i32.const #x21858) "\u004c\u0018\u0002\u0000" "\u0003" "NIP" "\u00a4\u0000\u0000\u0000") - (elem (i32.const #xa4) $TUCK) + (data (i32.const 0x21858) "\4c\18\02\00" "\03" "NIP" "\a4\00\00\00") + (elem (i32.const 0xa4) $TUCK) (func $UWIDTH (local $v i32) @@ -1536,11 +1521,11 @@ (set_local $v (i32.div_s (get_local $v) (get_local $base))) (br $loop))) (call $push (get_local $r))) - (data (i32.const #x21864) "\u0058\u0018\u0002\u0000" "\u0006" "UWIDTH0" "\u00a5\u0000\u0000\u0000") - (elem (i32.const #xa5) $UWIDTH) + (data (i32.const 0x21864) "\58\18\02\00" "\06" "UWIDTH0" "\a5\00\00\00") + (elem (i32.const 0xa5) $UWIDTH) ;; 6.2.2405 - (data (i32.const #x21874) "\u0064\u0018\u0002\u0000" "\u0005" "VALUE00" "\u004c\u0000\u0000\u0000") ;; !constantIndex + (data (i32.const 0x21874) "\64\18\02\00" "\05" "VALUE00" "\4c\00\00\00") ;; !constantIndex ;; 6.1.0180 (func $. @@ -1552,8 +1537,8 @@ (set_local $v (i32.sub (i32.const 0) (get_local $v))))) (call $U._ (get_local $v) (i32.load (i32.const !baseBase))) (call $shell_emit (i32.const 0x20))) - (data (i32.const #x21884) "\u0074\u0018\u0002\u0000" "\u0001" ".00" "\u00a6\u0000\u0000\u0000") - (elem (i32.const #xa6) $.) + (data (i32.const 0x21884) "\74\18\02\00" "\01" ".00" "\a6\00\00\00") + (elem (i32.const 0xa6) $.) (func $U._ (param $v i32) (param $base i32) (local $m i32) @@ -1682,10 +1667,10 @@ ;; Read first character (if (i32.eq (tee_local $char (i32.load8_u (i32.const !wordBasePlus1))) - (i32.const 0x2d #| '-' |#)) + (i32.const 0x2d (; '-' ;))) (then (set_local $sign (i32.const -1)) - (set_local $char (i32.const 48 #| '0' |# ))) + (set_local $char (i32.const 48 (; '0' ;) ))) (else (set_local $sign (i32.const 1)))) @@ -1693,14 +1678,14 @@ (set_local $value (i32.const 0)) (block $endLoop (loop $loop - (if (i32.lt_s (get_local $char) (i32.const 48 #| '0' |# )) + (if (i32.lt_s (get_local $char) (i32.const 48 (; '0' ;) )) (return (i32.const -1))) - (if (i32.le_s (get_local $char) (i32.const 57 #| '9' |# )) + (if (i32.le_s (get_local $char) (i32.const 57 (; '9' ;) )) (then (set_local $n (i32.sub (get_local $char) (i32.const 48)))) (else - (if (i32.lt_s (get_local $char) (i32.const 65 #| 'A' |# )) + (if (i32.lt_s (get_local $char) (i32.const 65 (; 'A' ;) )) (return (i32.const -1))) (set_local $n (i32.sub (get_local $char) (i32.const 55))) (if (i32.ge_s (get_local $n) (get_local $base)) @@ -1779,7 +1764,7 @@ (loop $skipBlanks (set_local $char (call $readChar)) (br_if $skipBlanks (i32.eq (get_local $char) (get_local $delimiter))) - (br_if $skipBlanks (i32.eq (get_local $char) (i32.const 0x0a #| ' ' |#))) + (br_if $skipBlanks (i32.eq (get_local $char) (i32.const 0x0a (; ' ' ;)))) (br $endSkipBlanks))) (set_local $stringPtr (i32.const !wordBasePlus1)) @@ -1793,7 +1778,7 @@ (loop $readChars (set_local $char (call $readChar)) (br_if $endReadChars (i32.eq (get_local $char) (get_local $delimiter))) - (br_if $endReadChars (i32.eq (get_local $char) (i32.const 0x0a #| ' ' |#))) + (br_if $endReadChars (i32.eq (get_local $char) (i32.const 0x0a (; ' ' ;)))) (br_if $endReadChars (i32.eq (get_local $char) (i32.const -1))) (i32.store8 (get_local $stringPtr) (get_local $char)) (set_local $stringPtr (i32.add (get_local $stringPtr) (i32.const 0x1))) @@ -2180,7 +2165,7 @@ (i32.and (i32.load8_u (i32.add (get_local $xt) (i32.const 4))) (i32.const !lengthMask))) - (i32.const 8 #| 4 + 1 + 3 |#)) + (i32.const 8 (; 4 + 1 + 3 ;))) (i32.const -4))) (func $readChar (result i32) @@ -2263,7 +2248,7 @@ (set_local $i (i32.add (i32.const 1) (get_local $i))) (br_if $endLoop3 (i32.ge_s (get_local $i) (get_local $end))) (br $loop3)))) - (data (i32.const 137224) "\u00f8\u0017\u0002\u0000" "\u000c" "sieve_direct\u0000\u0000\u0000" "\u009f\u0000\u0000\u0000") + (data (i32.const 137224) "\f8\17\02\00" "\0c" "sieve_direct\00\00\00" "\9f\00\00\00") (elem (i32.const 0x9f) $sieve) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -2285,46 +2270,46 @@ ;; ;; Execution tokens are addresses of dictionary entries - (data (i32.const !baseBase) "\u000A\u0000\u0000\u0000") - (data (i32.const !stateBase) "\u0000\u0000\u0000\u0000") - (data (i32.const !inBase) "\u0000\u0000\u0000\u0000") + (data (i32.const !baseBase) "\0A\00\00\00") + (data (i32.const !stateBase) "\00\00\00\00") + (data (i32.const !inBase) "\00\00\00\00") (data (i32.const !moduleHeaderBase) - "\u0000\u0061\u0073\u006D" ;; Header - "\u0001\u0000\u0000\u0000" ;; Version + "\00\61\73\6D" ;; Header + "\01\00\00\00" ;; Version - "\u0001" "\u0011" ;; Type section - "\u0004" ;; #Entries - "\u0060\u0000\u0000" ;; (func) - "\u0060\u0001\u007F\u0000" ;; (func (param i32)) - "\u0060\u0000\u0001\u007F" ;; (func (result i32)) - "\u0060\u0001\u007f\u0001\u007F" ;; (func (param i32) (result i32)) + "\01" "\11" ;; Type section + "\04" ;; #Entries + "\60\00\00" ;; (func) + "\60\01\7F\00" ;; (func (param i32)) + "\60\00\01\7F" ;; (func (result i32)) + "\60\01\7f\01\7F" ;; (func (param i32) (result i32)) - "\u0002" "\u002B" ;; Import section - "\u0003" ;; #Entries - "\u0003\u0065\u006E\u0076" "\u0005\u0074\u0061\u0062\u006C\u0065" ;; 'env' . 'table' - "\u0001" "\u0070" "\u0000" "\u00FB\u0000\u0000\u0000" ;; table, anyfunc, flags, initial size - "\u0003\u0065\u006E\u0076" "\u0006\u006d\u0065\u006d\u006f\u0072\u0079" ;; 'env' . 'memory' - "\u0002" "\u0000" "\u0001" ;; memory - "\u0003\u0065\u006E\u0076" "\u0003\u0074\u006f\u0073" ;; 'env' . 'tos' - "\u0003" "\u007F" "\u0000" ;; global, i32, immutable + "\02" "\2B" ;; Import section + "\03" ;; #Entries + "\03\65\6E\76" "\05\74\61\62\6C\65" ;; 'env' . 'table' + "\01" "\70" "\00" "\FB\00\00\00" ;; table, anyfunc, flags, initial size + "\03\65\6E\76" "\06\6d\65\6d\6f\72\79" ;; 'env' . 'memory' + "\02" "\00" "\01" ;; memory + "\03\65\6E\76" "\03\74\6f\73" ;; 'env' . 'tos' + "\03" "\7F" "\00" ;; global, i32, immutable - "\u0003" "\u0002" ;; Function section - "\u0001" ;; #Entries - "\u00FA" ;; Type 0 + "\03" "\02" ;; Function section + "\01" ;; #Entries + "\FA" ;; Type 0 - "\u0009" "\u000a" ;; Element section - "\u0001" ;; #Entries - "\u0000" ;; Table 0 - "\u0041\u00FC\u0000\u0000\u0000\u000B" ;; i32.const ..., end - "\u0001" ;; #elements - "\u0000" ;; function 0 + "\09" "\0a" ;; Element section + "\01" ;; #Entries + "\00" ;; Table 0 + "\41\FC\00\00\00\0B" ;; i32.const ..., end + "\01" ;; #elements + "\00" ;; function 0 - "\u000A" "\u00FF\u0000\u0000\u0000" ;; Code section (padded length) - "\u0001" ;; #Bodies - "\u00FE\u0000\u0000\u0000" ;; Body size (padded) - "\u0001" ;; #locals - "\u00FD\u0000\u0000\u0000\u007F") ;; # #i32 locals (padded) + "\0A" "\FF\00\00\00" ;; Code section (padded length) + "\01" ;; #Bodies + "\FE\00\00\00" ;; Body size (padded) + "\01" ;; #locals + "\FD\00\00\00\7F") ;; # #i32 locals (padded) (func (export "tos") (result i32) (get_global $tos)) @@ -2358,8 +2343,8 @@ ;; words start. (table (export "table") !nextTableIndex anyfunc) - (global $latest (mut i32) (i32.const #x21884)) - (global $here (mut i32) (i32.const #x21890)) + (global $latest (mut i32) (i32.const 0x21884)) + (global $here (mut i32) (i32.const 0x21890)) (global $nextTableIndex (mut i32) (i32.const !nextTableIndex)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;