aboutsummaryrefslogtreecommitdiff
path: root/rt.bqn
diff options
context:
space:
mode:
authorMarshall Lochbaum <mwlochbaum@gmail.com>2021-10-31 18:08:32 -0400
committerMarshall Lochbaum <mwlochbaum@gmail.com>2021-10-31 20:00:03 -0400
commitae3be51b576657d68130040251f15e74ee6bdfcf (patch)
tree924e6fc75652a26c9a5d5186dfad47b4f03817f3 /rt.bqn
parent05466cf34faedfb9aa46395c41da9b860f1f0f9d (diff)
Add tests based on vm.bqn
Diffstat (limited to 'rt.bqn')
-rw-r--r--rt.bqn19
1 files changed, 19 insertions, 0 deletions
diff --git a/rt.bqn b/rt.bqn
new file mode 100644
index 00000000..3dd727a5
--- /dev/null
+++ b/rt.bqn
@@ -0,0 +1,19 @@
+# BQN runtime hosted in BQN
+
+⟨src,need⟩ ← •Import "src/pr.bqn"
+compile ← need •Import "src/c.bqn"
+glyphs ← ∾ •Import "src/glyphs.bqn"
+vm ← •Import "vm.bqn"
+
+FillFn ← (⊑1↑0↑⥊)⊘{𝕩˙⌾⊢ <𝕨}
+_fillBy_ ← {𝕘⋄𝔽}
+GroupLen ← {(𝕨⌈≠)⊸↑0 FillFn≠¨⊔𝕩}
+extra ← ⟨ •Type, FillFn, ⋆⁼, GroupLen, ∾⊔∘⊢, _fillBy_ ⟩
+provide ← { g←𝕩∊glyphs ⋄ (⍋⍋g)⊏extra∾•BQN∘⥊¨g/𝕩 } ∾need
+
+rt‿SetPrims ← VM ⟨provide,!∘0¨⟩ Compile src
+PrimInd ← rt⊸⊐⌾<
+Decompose ← ((≠glyphs)>PrimInd)◶⟨•Decompose,0⊸≍⟩
+SetPrims ⟨ Decompose, PrimInd ⟩
+
+rt