From 34a95f255f9d557dadb18e98663cb7aa01da3288 Mon Sep 17 00:00:00 2001 From: Marshall Lochbaum Date: Thu, 1 Apr 2021 07:25:14 -0400 Subject: Update formatter information --- docs/implementation/vm.html | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'docs/implementation/vm.html') diff --git a/docs/implementation/vm.html b/docs/implementation/vm.html index 75e71ad1..450c9663 100644 --- a/docs/implementation/vm.html +++ b/docs/implementation/vm.html @@ -541,11 +541,12 @@

The following steps give a working BQN system, assuming a working VM and core runtime:

The compiler takes the runtime as 𝕨 and source code as 𝕩. To evaluate BQN source code, convert it into a BQN string (rank-1 array of characters), pass this string and runtime to the compiler, and evaluate the result as bytecode. Results can be formatted with the formatter for use in a REPL, or used from the implementation language.

+

Two formatter arguments Glyph and FmtNum are not part of the runtime. Glyph assumes 𝕩 is a primitive and returns the character (not string) that represents it, and FmtNum assumes 𝕩 is a number and returns a string representing it.

Testing

I recommend roughly the following sequence of tests to get everything working smoothly. It can be very difficult to figure out where in a VM things went wrong, so it's important to work methodically and make sure each component is all right before moving to the next.

Because the compiler works almost entirely with lists of numbers, a correct fill implementation is not needed to run the compiler. Instead, you can define Fill as 0 and _fillBy_ as {𝔽} to always use a fill element of 0.

-- cgit v1.2.3