Joel Martin [Mon, 13 Jun 2016 15:27:15 +0000 (10:27 -0500)]
Merge pull request #218 from dubek/io-interop
io: Add interop function io-eval
Joel Martin [Mon, 13 Jun 2016 15:25:29 +0000 (10:25 -0500)]
Merge pull request #219 from hinrik/perl6_eval_tests
Add tests for perl6-eval function
Joel Martin [Mon, 13 Jun 2016 15:25:04 +0000 (10:25 -0500)]
Merge pull request #220 from dubek/test-case-sensitive
tests: Verify case sensitivity of names and strings
Dov Murik [Mon, 13 Jun 2016 05:09:56 +0000 (01:09 -0400)]
tests: Verify case sensitivity of names and strings
Dov Murik [Sun, 12 Jun 2016 02:47:27 +0000 (22:47 -0400)]
io: Add interop function io-eval
Joel Martin [Sun, 12 Jun 2016 18:44:15 +0000 (13:44 -0500)]
Merge pull request #216 from hinrik/add_perl6_impl
Perl 6: Throw exception on missing ), ], or }
Joel Martin [Sun, 12 Jun 2016 18:43:23 +0000 (13:43 -0500)]
Merge pull request #217 from dubek/lua-interop
Add Lua interop and describe interop in the guide
Hinrik Örn Sigurðsson [Sun, 12 Jun 2016 14:20:27 +0000 (14:20 +0000)]
Add tests for perl6-eval function
Dov Murik [Sun, 12 Jun 2016 01:36:01 +0000 (21:36 -0400)]
process/guide: Describe interop function quux-eval
Dov Murik [Sun, 12 Jun 2016 01:30:44 +0000 (21:30 -0400)]
lua: Add interop core function lua-eval
Hinrik Örn Sigurðsson [Sat, 11 Jun 2016 19:50:39 +0000 (19:50 +0000)]
Perl 6: Throw exception on missing ), ], or }
Joel Martin [Sat, 11 Jun 2016 18:38:57 +0000 (13:38 -0500)]
Merge pull request #215 from hinrik/add_perl6_impl
Add Perl 6 implementation
Hinrik Örn Sigurðsson [Wed, 8 Jun 2016 16:15:53 +0000 (16:15 +0000)]
Test the Perl 6 implementation on Travis
Hinrik Örn Sigurðsson [Tue, 7 Jun 2016 09:16:48 +0000 (09:16 +0000)]
Add perl6-eval interop function
Hinrik Örn Sigurðsson [Mon, 6 Jun 2016 21:11:29 +0000 (21:11 +0000)]
Add Perl 6 implementation
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.
Joel Martin [Wed, 8 Jun 2016 18:29:59 +0000 (13:29 -0500)]
Makefile: user specified TEST_OPTS take precedence.
runtest uses argparse so the later arguments will take precedence.
Joel Martin [Mon, 6 Jun 2016 19:22:00 +0000 (13:22 -0600)]
Merge pull request #214 from rhysd/crystal-0.17.4
Crystal: Fix steps for Crystal v0.17.4
rhysd [Mon, 6 Jun 2016 17:17:40 +0000 (02:17 +0900)]
Crystal: Fix steps for Crystal v0.17.4
Joel Martin [Mon, 6 Jun 2016 16:33:33 +0000 (11:33 -0500)]
plsql: disable until tests more reliably pass.
Joel Martin [Fri, 3 Jun 2016 15:20:28 +0000 (10:20 -0500)]
plsql: add oracle user in Dockerfile. Longer test startup,
Also, fix repeated test options in top-level Makefile.
Joel Martin [Thu, 2 Jun 2016 17:57:34 +0000 (12:57 -0500)]
plsql: disable until uid 1001 issue resolved.
Joel Martin [Thu, 2 Jun 2016 17:44:36 +0000 (12:44 -0500)]
plsql: enable travis build.
Joel Martin [Tue, 24 May 2016 03:41:29 +0000 (21:41 -0600)]
plsql: add run script.
Joel Martin [Wed, 4 May 2016 05:45:01 +0000 (00:45 -0500)]
plsql: fix normal user/sudo startup of container.
Joel Martin [Wed, 4 May 2016 05:38:02 +0000 (00:38 -0500)]
*sql: update Makefiles, README. Logon override.
Joel Martin [Wed, 4 May 2016 04:25:41 +0000 (23:25 -0500)]
plsql: add dockerfile. Lots of cleanup/renaming.
Joel Martin [Wed, 4 May 2016 03:29:07 +0000 (22:29 -0500)]
plsql: Fix readline/output async. Improve arg mode.
Joel Martin [Tue, 3 May 2016 05:28:33 +0000 (00:28 -0500)]
plsql: self-hosting. Long strings, refactor io.
Joel Martin [Tue, 3 May 2016 04:56:48 +0000 (23:56 -0500)]
plsql: keyword/vector/hash-map. Other deferrables.
Joel Martin [Fri, 29 Apr 2016 05:11:59 +0000 (00:11 -0500)]
plsql: stepA basics. Fix step6 argument processing.
Joel Martin [Fri, 29 Apr 2016 03:36:24 +0000 (22:36 -0500)]
plsql: add step9 basics. Refactor arg list passing.
Joel Martin [Thu, 7 Apr 2016 06:22:15 +0000 (01:22 -0500)]
plsql: refactor with memory pool. step5,7,8 basics.
Ran into the same problem with macroexpand that prevented TCO in
step5. Apparently objects as parameters cannot be re-assigning (or
copied and re-assigned even) in a loop. When trying to do so, the
server process crashes with a memory error.
Move away from try to allocate and pass full structures around.
Instead pass integer references into a memory pool of the objects
(nested table of mal objects) and then pass this memory pool around by
reference. Passing the memory pool around all over the place is ugly,
but it allows TCO and macroexpand to work at all and seems to have
better performance anyways.
Joel Martin [Wed, 6 Apr 2016 05:48:26 +0000 (00:48 -0500)]
plsql: step6 basics. File I/O in io.sql and wrap.sh
Joel Martin [Tue, 5 Apr 2016 06:29:14 +0000 (01:29 -0500)]
plsql: step4 basics.
Joel Martin [Tue, 5 Apr 2016 04:37:52 +0000 (23:37 -0500)]
plsql: step2,3 basics.
Joel Martin [Fri, 1 Apr 2016 02:29:47 +0000 (21:29 -0500)]
plsql (Oracle PL/SQL): Copy plpgsql. Step0,1 basics.
Joel Martin [Wed, 18 May 2016 04:37:26 +0000 (21:37 -0700)]
Refactor to use run scripts, remove *_RUNSTEP
- 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
Joel Martin [Tue, 17 May 2016 17:08:38 +0000 (12:08 -0500)]
Merge pull request #212 from dubek/argv-testing
tests: Test *ARGV* is set correctly in step 6
Dov Murik [Mon, 16 May 2016 15:25:42 +0000 (11:25 -0400)]
scala: Run steps directly from jar file
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).
Dov Murik [Sun, 15 May 2016 04:05:09 +0000 (00:05 -0400)]
make: Clean script output; skip test for command-line argument with spaces
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.
Dov Murik [Sun, 15 May 2016 03:54:07 +0000 (23:54 -0400)]
matlab: Add 'run' script to handle command-line args
The 'run' wrapper script escapes and creates the proper matlab/octave
command-line, replacing definitions from the main Makefile.
Dov Murik [Sun, 15 May 2016 03:42:58 +0000 (23:42 -0400)]
java: Add 'run' script which quotes arguments correctly
Dov Murik [Fri, 13 May 2016 14:17:00 +0000 (10:17 -0400)]
io: Add wrapper to swallow startup message from Io interpreter
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).
Joel Martin [Thu, 12 May 2016 21:30:57 +0000 (16:30 -0500)]
Merge pull request #213 from dubek/time-ms-fixes
cpp, erlang: time-ms fixes
Dov Murik [Thu, 12 May 2016 12:51:19 +0000 (08:51 -0400)]
factor: Set *ARGV* and run command-line script correctly in step6-stepA
Dov Murik [Wed, 11 May 2016 20:29:33 +0000 (16:29 -0400)]
r: Fix setting *ARGV*
Dov Murik [Wed, 11 May 2016 20:11:18 +0000 (16:11 -0400)]
js: Fix setting *ARGV* in step6 & step7
Dov Murik [Wed, 11 May 2016 20:01:15 +0000 (16:01 -0400)]
fsharp: When executing a mal script, don't print the final return value
Dov Murik [Wed, 11 May 2016 19:53:42 +0000 (15:53 -0400)]
erlang: Fix time-ms to return milliseconds since epoch
Dov Murik [Wed, 11 May 2016 19:52:55 +0000 (15:52 -0400)]
cpp: Make integer values 64-bit so they can holds time-ms values
Dov Murik [Wed, 11 May 2016 19:51:22 +0000 (15:51 -0400)]
erlang: When executing a mal script, don't print the final return value
Dov Murik [Wed, 11 May 2016 19:50:19 +0000 (15:50 -0400)]
cpp: When executing a mal script, don't print the final return value
Dov Murik [Wed, 11 May 2016 19:48:21 +0000 (15:48 -0400)]
ocaml: Remove debug prints in step6 & step7
Dov Murik [Tue, 10 May 2016 19:28:29 +0000 (15:28 -0400)]
tests: Test *ARGV* is set correctly in step 6
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).
Joel Martin [Wed, 11 May 2016 14:03:50 +0000 (09:03 -0500)]
Merge pull request #211 from dubek/racket-fix-argv
racket: Set *ARGV* correctly
Dov Murik [Wed, 11 May 2016 13:02:36 +0000 (09:02 -0400)]
racket: Set *ARGV* correctly
Joel Martin [Tue, 10 May 2016 17:41:44 +0000 (12:41 -0500)]
Merge pull request #210 from dubek/test-slurp-newline
tests: Test slurp captures final newline in step6
Dov Murik [Tue, 10 May 2016 16:36:06 +0000 (12:36 -0400)]
tests: Test slurp captures final newline in step6
Joel Martin [Tue, 10 May 2016 15:43:38 +0000 (10:43 -0500)]
Link to cheatsheet at gh-pages.
Joel Martin [Tue, 10 May 2016 15:34:05 +0000 (10:34 -0500)]
Add cheatsheet. Link to it from guide.
Joel Martin [Tue, 10 May 2016 15:26:39 +0000 (10:26 -0500)]
Use more common spelling of deferrable.
Deferable is apprently a less common but correct spelling.
Joel Martin [Mon, 9 May 2016 23:00:49 +0000 (18:00 -0500)]
Makefile/runtest/tests: deferable/optional options
- 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.
Joel Martin [Mon, 9 May 2016 22:46:42 +0000 (17:46 -0500)]
guide: update step9, stepA diagrams.
- Add single arg `prn` as mandatory in step4 (for testing do
side-effects).
- Re-order some deferables in the guide to more closely match the
tests.
Joel Martin [Mon, 9 May 2016 16:13:30 +0000 (11:13 -0500)]
Merge pull request #208 from dubek/vim-fix-time-ms
vimscript: implement time-ms in C
Joel Martin [Mon, 9 May 2016 16:12:21 +0000 (11:12 -0500)]
Merge pull request #209 from dubek/python-interop
python: Fix interop (py*, py!*)
Dov Murik [Mon, 9 May 2016 05:39:45 +0000 (01:39 -0400)]
python: Fix interop (py*, py!*)
py!*: Fix to work on both Python 2 and 3.
py*: Python types are converted to Mal types where applicable.
Added tests for Python interop.
Dov Murik [Mon, 9 May 2016 04:21:15 +0000 (00:21 -0400)]
docs/Hints: vimscript no longer shells out in time-ms
Dov Murik [Mon, 9 May 2016 04:16:52 +0000 (00:16 -0400)]
vimscript: implement time-ms in a C function
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.
Dov Murik [Mon, 9 May 2016 04:11:59 +0000 (00:11 -0400)]
vimscript: rename libvimreadline -> libvimextras
Joel Martin [Thu, 5 May 2016 20:30:46 +0000 (15:30 -0500)]
Merge pull request #207 from dubek/vhdl
Add VHDL implementation
Dov Murik [Thu, 5 May 2016 20:06:28 +0000 (16:06 -0400)]
vhdl: Update Dockerfile, add Travis-CI build
Dov Murik [Wed, 23 Mar 2016 20:03:58 +0000 (16:03 -0400)]
Add VHDL implementation
Dov Murik [Thu, 5 May 2016 01:25:58 +0000 (21:25 -0400)]
docs/Hints: add questions about command-line arguments
Joel Martin [Wed, 4 May 2016 19:24:04 +0000 (14:24 -0500)]
Hints.md: fix formatting.
Joel Martin [Wed, 4 May 2016 06:10:34 +0000 (01:10 -0500)]
Add Hints wiki page.
Joel Martin [Tue, 3 May 2016 17:21:57 +0000 (12:21 -0500)]
plpgsql: fix env.sql envs.sql in stats target.
Joel Martin [Tue, 3 May 2016 17:19:49 +0000 (12:19 -0500)]
plpgsql: fix Makefile stats targets.
Joel Martin [Tue, 3 May 2016 04:02:29 +0000 (23:02 -0500)]
plpgsql: schema namespaces. refactor IO.
- 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
Joel Martin [Sat, 30 Apr 2016 04:12:38 +0000 (23:12 -0500)]
plpgsql: another attempt using travis user.
Joel Martin [Fri, 29 Apr 2016 22:50:49 +0000 (17:50 -0500)]
plpgsql: try again with Travis user/sudo permissions.
This time sudo inside the entrypoint only for starting postgres
service.
Joel Martin [Fri, 29 Apr 2016 22:37:59 +0000 (17:37 -0500)]
plpgsql: set WORKDIR in Dockerfile.
Joel Martin [Fri, 29 Apr 2016 22:27:37 +0000 (17:27 -0500)]
plpgsql: minor tweaks to Dockerfile to work with Travis.
Travis runs as user 1001, make that a user in the container too and
use sudo to launch the entrypoint as the postgres user.
Joel Martin [Fri, 29 Apr 2016 20:58:09 +0000 (15:58 -0500)]
Travis: enable plpgsql.
Joel Martin [Thu, 31 Mar 2016 06:09:08 +0000 (01:09 -0500)]
plpgsql: add to README.
Joel Martin [Thu, 31 Mar 2016 06:04:15 +0000 (01:04 -0500)]
plpgsql: testing via Makefile/Docker container.
- 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
Joel Martin [Thu, 31 Mar 2016 05:45:01 +0000 (00:45 -0500)]
plpgsql: fix issues with repeated calls to wrap.sh
Joel Martin [Thu, 31 Mar 2016 05:38:35 +0000 (00:38 -0500)]
plpgsql: remove type table. Fix slurp.
- Use COPY FROM PROGRAM to invoke sed to double backslashes before
reading into the table.
Joel Martin [Thu, 31 Mar 2016 04:58:03 +0000 (23:58 -0500)]
plpgsql: refactor/remove collection table. Add seq/conj.
Joel Martin [Sat, 26 Mar 2016 06:44:43 +0000 (01:44 -0500)]
plpgsql: add time-ms, use bigints, add indexes for perf.
Joel Martin [Sat, 26 Mar 2016 05:41:35 +0000 (00:41 -0500)]
plpgsql: restructure I/O to allow input in command mode.
Joel Martin [Sat, 26 Mar 2016 04:11:40 +0000 (23:11 -0500)]
plpgsql: stepA, hash-maps, metadata.
Joel Martin [Fri, 25 Mar 2016 05:05:54 +0000 (00:05 -0500)]
plpgsql: IO using stream table. Add keywords.
Joel Martin [Fri, 25 Mar 2016 02:12:48 +0000 (21:12 -0500)]
tests: make throw of non-strings optional/soft.
Joel Martin [Fri, 25 Mar 2016 02:10:10 +0000 (21:10 -0500)]
plpgsql: add steps7-9
Joel Martin [Tue, 22 Mar 2016 05:53:31 +0000 (00:53 -0500)]
plpgsql: steps 4-6.
Joel Martin [Tue, 22 Mar 2016 01:28:08 +0000 (20:28 -0500)]
plpgsql (Postgres PL/pgSQL): steps 0-3.
Joel Martin [Sat, 30 Apr 2016 14:18:48 +0000 (09:18 -0500)]
Merge pull request #205 from Wilfred/fix_link
Fix broken link
Wilfred Hughes [Sat, 30 Apr 2016 11:18:24 +0000 (12:18 +0100)]
Fix broken link
Previously, this would link to https://github.com/kanaka/mal/blob/master/factorcode.org
Joel Martin [Thu, 28 Apr 2016 20:10:37 +0000 (15:10 -0500)]
FAQ: add question about * and ! endings on forms.
Joel Martin [Thu, 28 Apr 2016 01:04:22 +0000 (20:04 -0500)]
Merge pull request #204 from dubek/guide-step2-addition
process/guide: add vector and hash-map evaluation in step 2