- Add */run script for every implementation.
- Refactor Clojure build to allow individual jar files for each step.
- Update FFI version for es6 and miniMAL to work with newer node
versions.
The run scripts for the following could use some additional
refactoring:
- java: build individual step jar, use java -jar instead of mvn to run
- plpgsql: maybe combine plpgsql/run and plpgsql/wrap.sh
- vhdl: combine vhdl/run and vhdl/run_vhdl.sh
- vimscript: combine vimscript/run and vimscript/run_vimscript.sh
The Scala build will create a mal.jar file with all the steps' classes
in it. A `run` wrapper script will run that jar with a specific step
main class according to the `$STEP` environment variable. Now the jar
file is created only once (when testing step0) and then re-used for
testing the next steps, which should speed up the build.
Moreover, sbt now prepends shell script header to the jar file, so no
need to implement this in Makefile (for the `dist` target).
Add --no-print-directory to make implementation execution so it only
prints the actual output from a Mal script.
Alos, since the make implementation can't handle spaces in a
command-line argument, we skip this test.
The `io/run` script will run the io interpreter on a step file given in
the `$STEP` environment variable. It'll swallow the first 25 bytes
printed by the interpreter because they are a startup message about the
Io Regex module (and can't be suppressed in a normal way).
Add new mini test harness run_argv_test.sh to run the Mal interpreter
with different command-line arguments and test the stdout of that
process.
The main Makefile will automatically run the new harness whenever step 6
is tested (either directly or during REGRESS=1 of a more advanced step).
- 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.
Instead of shelling out to `date`, implement time-ms as a C function in
the vimextras.c library (which was already used for readline()).
Since Vim numbers can only hold numbers up to 32-bit, we return the
number of milliseconds since 2000 and not since 1970.
- move each file to a schema namespace. Don't recreate DB, just the
schemas. This is much faster and avoids the error about user still
using the DB when recreating the DB.
- combine RUN and MAIN_LOOP into MAIN routine.
- add open column to streams table
- close stream 1 in MAIN
- 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