- Reorder README to have implementation list after "learning tool"
bullet.
- This also moves tests/ and libs/ into impls. It would be preferrable
to have these directories at the top level. However, this causes
difficulties with the wasm implementations which need pre-open
directories and have trouble with paths starting with "../../". So
in lieu of that, symlink those directories to the top-level.
- Move the run_argv_test.sh script into the tests directory for
general hygiene.
wasm: update to wat syntax as of Jan 2019.
Examples:
- get_local -> local.get
- i32.wrap/i64 -> i32.warp_i64
- etc
The distinction between wat and wast has been clarified:
- wat: textual format for web assembly modules
- wast: superset of wat used in the specification to define tests.
- Convert sources to much more concise wam syntax supported by wamp.
- Rename sources from *.wast to *.wam and generate *.wast files by
translating via wamp.
Needs wace from https://github.com/kanaka/wac to run.
wastpp.py processes the listed modules and outputs a single combined
module. It finds inline strings and hoists them to the top into a data
section and creates pointer variables into that memory and replaces
the inline strings with pointer lookups.
- Truncate ruby and python stacktraces since they can get very long
in certain cases causing problems.
- Fix Clojure West example with proper escaping.
- Pass down the CLJ_MODE value for DOCKERIZED builds in addition to
run/tests.
- Correct deps so that node_modules is installed for CLJ_MODE=cljs for
all steps.
- Lumo 1.6.0 is currently not able to install globally as root
(https://github.com/anmonteiro/lumo/issues/206) so add the local
node_modules/.bin to the PATH in the run script.
- Reader conditionals needed for clojure.reader/cljs.reader until this
is fixed: https://github.com/anmonteiro/lumo/issues/209
- Strip linefeeds in run_argv_test.sh so that step6 arg test passes
for basic.
- Add gensym and convert or macro.
- Add gitignore entries for transpiled basic sources.
- Add conj/seq stubs so that step4 self-host loads (if non-step4
functions are commented out in core.mal)
- Bump up Z% value space by 256 spaces (1K)
- Remove old qb2cbm.sh
All tests pass, but readline support (via Linenoise module) is commented
out in step0_repl.pl as it is not a core module. Should maybe change it
when docker support is added.
Also in this commit:
- fix *ARGV* setup in erlang and racket.
- print startup message in fsharp
Dist/packaging support for most implementations and also generate
a */mal standalone app for most languages. The following
implementations still have ability to generate a single */mal
standalone application:
- guile
- julia
- matlab (mkoctfile doesn't actually package up source files)
- swift
- vb (mkbundle error)
Also, the following are mostly packaged into a single file but need
some module dependencies
- coffee: requires node_modules/ffi
- es6: requires node_modules/ffi
- js: requires node_modules/ffi
- lua: module 'readline' not found
- miniMAL: cannot find module '/mal/node_readline.js'
- r: needs lib directory
A seperate nimcache folder was being generated for each step with the
name of the step appended to nimcache, like nimcache-step0_repl and so
was not being ignored by git.
This change will prevent git from tracking
any folder with name starting with nimcache in the nim directory.
I'm away from my main workstation for a week and unfortunately, I only
copied the code but not the branch with full history so this is just
the implementation. However, the history isn't all that interesting
(mostly just the steps one at a time) and I wanted to get this out
there.