For implementations that support different compile/run modes, the
convention is not <impl_name>_MODE=<mode>. This is passed through to
make/docker commands. Fix Makefiles and run scripts to listen to the
respective *_MODE variables.
Enable travis builds/tests for 4 Haxe modes and 2 python modes.
- Fix rust Dockerfile working dir.
- Make top-level Makefile more generic. This makes it easier to use
the Makefile with fewer changes in miniMAL.
- Simplify vhdl build when case is fixed in stepA_mal
- Remove BUILD_IMPL=js from miniMAL travis test. Just use a docker
image specifically made for miniMAL.
- Update TODO
Tested on UCBLogo 6.0 with some minor tweaks (for performance and adding
a `timems` function). The tweaks are performed during Docker image
creation (see Dockerfile).
Tests of step 5 are skipped because UCBLogo is too slow.
Interop is available via `(logo-eval "logo code to run")`.
The `examples` directory contains a Mal example of drawing a tree using
turtle graphics.
- Workarounds for Octave 4.0.0:
- no containers.Map yet so use new Dict
structure when running under Octave.
- weird error when +FOO/ directory and FOO.m file both exist so
rename types.m to type_utils.m
- no getReport so implement custom stack printer
- workaround weird issue that happens when a class initializer is
called with the first argument of the same class as per
Env(outer, ...). The class is not properly initialized. So for
now, wrap the outer in a cell as Env({outer}, ...)
- missing MException object types so when in Octave, use a global
variable to store the error object.
- missing native2unicode so just use 0xff character for keyword
prefix.
- workaround some function calling/passing differences. For
example, the "@" anonymous function symbol does not seem to work
for conveying an existing function but only for defininign a new
one. E.g. this works:
@(a,b) a+b
but this doesn't
@my_adder_fn.
so just do this:
@(a,b) my_adder_fn(a,b)
- Add Dockerfile with Octave
- Active Travis for matlab implementation using Octave
/dev/stdout is used for output by vimscript, but in container running
as a specific user, /dev/stdout is not writable and causes vimscript
to basically hang.