aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMarshall Lochbaum <mwlochbaum@gmail.com>2020-11-21 11:31:49 -0500
committerMarshall Lochbaum <mwlochbaum@gmail.com>2020-11-21 11:31:49 -0500
commit3ea7eb8d18be52a989285e1a659be6ab76cc02b4 (patch)
treeadc6d77c137f36a7e1e983524b3116a3bf0f938e /src
parentbac1b187aae5b524b98f0f70223d3b1d02175a80 (diff)
Stop encoding bytecode with LEB128; that can be done later for serialization
Diffstat (limited to 'src')
-rw-r--r--src/c.bqn11
-rwxr-xr-xsrc/cjs.bqn2
-rw-r--r--src/e.bqn5
3 files changed, 3 insertions, 15 deletions
diff --git a/src/c.bqn b/src/c.bqn
index 037debfd..1b005f99 100644
--- a/src/c.bqn
+++ b/src/c.bqn
@@ -191,16 +191,7 @@ Parse ← {r‿vn‿i‿e←𝕨⋄nv←≠vn
bc←or⊏∾idbc∾⟨0¨cn,ob,15¨bk,1+↕≠bk,14¨dr,⥊⍉(3+l⊏aa)≍ll
11⌈(11-1+⊑bG)+(af/ai)⊏ma+𝕩,5+oa⊏r,(⊢+9×10⊸=)16+dy-7×fa⊏er,25¨rt⟩
oj←i(≠-1˙)⊸⌊oi(-⊸↓˜⟜≠∾⊢)g⊏˜∾⟨1-˜af/at,oa,fa,rt⟩
- bcl‿el‿ol←LEB bc∾25
- ⟨bcl,u,⟨ft,¬fx,el/˜1∾or≥bc-○≠rt,lc+fsc⟩, (ol/¯1∾˜or⊏oj)⊸⊏¨i‿e⟩
-}
-
-LEB←{
- b←128
- s←+`»i←1+l←⌊b⋆⁼1⌈𝕩
- o←⍋⍋↕∘≠⊸-i/s
- v←o⊏l{f←×𝕨⋄(𝕨-1)(b⊸(×⟜f+|)∾𝕊⟜(⌊÷⟜b)○(f⊸/))⍟(∨´f)𝕩}𝕩
- v‿s‿i
+ ⟨bc∾25,u,⟨ft,¬fx,/1∾or≥bc-○≠rt,lc+fsc⟩, (¯1∾˜or⊏oj)⊸⊏¨i‿e⟩
}
Compile←{
diff --git a/src/cjs.bqn b/src/cjs.bqn
index 5abe7409..8041b9bc 100755
--- a/src/cjs.bqn
+++ b/src/cjs.bqn
@@ -12,7 +12,7 @@ L ← "["∾"]"∾˜1↓·∾","⊸∾⟜⍕¨
J ← ∾∾⟜(@+10)¨
Fout ← (≠↑⟨⊢,Fconst,L,⊢⟩˙) {L𝕎¨𝕩}¨ ⊢
Frun ← ("provide.concat("∾∾⟜")")⌾(1⊸⊑) Fout
-Long ← ∾ (≠↑1‿3/⟨" new Uint8Array("∾∾⟜")"⋄((@+10)∾" ,")⊸∾⟩˙) {𝕎𝕩}¨ ⊢
+Long ← ∾ (≠↑1‿3/⟨" "⊸∾⋄((@+10)∾" ,")⊸∾⟩˙) {𝕎𝕩}¨ ⊢
•Out (⊑"r"‿"c"‿"fmt"‿"e"⊐⊏)◶⟨
{𝕩⋄ref‿len←•Import"pr.bqn"⋄Long Frun len⊸↓⌾(1⊸⊑)Comp ref}
{𝕩⋄Long Fout Comp J •LNS "c.bqn"}
diff --git a/src/e.bqn b/src/e.bqn
index c242ce9f..506153ab 100644
--- a/src/e.bqn
+++ b/src/e.bqn
@@ -45,10 +45,7 @@ Explain ← {
"00000110111001001101000100" # Position determiner
m ← { # Mask of instruction starts
- a ← ba(⊣⊏˜≠⊸>×⊢)b
- na← ∾⟜≠ (≠-(1+↕∘≠)⊸(»·⌈`×)⌾⌽) <⟜128 b
- n ← 1+{(𝕩=⌜a) +˝∘× >⊏⟜na⍟𝕩↕≠a}↕3
- ! ∧´ ↕∘≠⊸< n
+ n ← (↕≠b)+1+ba(⊣⊏˜≠⊸>×⊢)b
Se←{(⊏˜𝕨)Se 1¨⌾((𝕩/𝕨)⊸⊏)𝕩}⍟(0=¯1⊑⊢)
(≠↑∾⟜≠Se 1∾0¨) n
}