- tests/*: marked with deferable and optional runtest flags. Some
moving around of tests within different sections to more closely
align with the guide.
- runtest.py has --deferable/--no-deferable and
--optional/--no-optional to control whether tests marked as
deferable and optional are tested.
- Makefile: DEFERABLE and OPTIONAL top level flags to be passed to
runtest when running tests.
- Also, fix problems in java quoting revealed by step7 test changes.
- Add Dockerfile for an image with postgres installed that
automatically starts the server when the docker image is started.
- Fix Unicode issue with keywords that caused "requested character too
large for encoding: 670" when used with rebuilt docker image.
Switched from 0x29e (670) to 0x7f (127) as the keyword string
prefix.
- Add default PSQL user as "postgres" in wrap.sh
When running tests with REGRESS=1, the Makefile would not exit with
failure if an earlier step failed some tests. Replacing ; with && in
the test rule fixed this behaviour to exit with failure exitcode on the
first regression failure.
- Remove most of the step5 excludes in the Makefile except for ones
which don't have TCO capability at all (or the implementation is too
slow): bash, make, mal, matlab.
- Make perf_EXCLUDES consistent with other excludes.
- Add a print-FOO target which prints the resolved value of Makefile
variable FOO. For example, `make print-IMPLS` to print the list of
implementations.
- 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
The Readline library for Tcl (tclreadline) enables history
substitutions, which means that lines that begin with `^` or `!` are
preprocessed by readline. This interferes with some step1 tests of the
`^` form (--> with-meta).
Now the Tcl implementation supports a `--raw` command line flag which
disables the readline library and opts for simple input from stdin. The
tests (Makefile) are run with `--raw`.
* Works on soon-to-be-released 0.98 (triple quote strings removed)
* 50% more iterations per second on perf3.mal
* Removed 'src' directory, use 'factor' as the root
* Using 'mal' namespace for core, reader, printer, malenv, types
* Fixed issue with "empty" readline input (should be ignored and wasn't)
* Tried to simplify some of the code
- make sure readline has large enough string for steps2-A
- fix keyword? so that it doesn't leave anything extra on the stack
- fix argparse command line parsing so that that the second '--' on
the command line is not dropped.
- Always use stepA for the RUNSTEP macro in addition to the
STEP_TO_PROG macro.
- Disable the (fib 10) test because this is really too slow for
several self-hosted implementations to complete before a timeout.