1
1
mirror of https://github.com/kanaka/mal.git synced 2024-09-21 10:37:58 +03:00
Commit Graph

168 Commits

Author SHA1 Message Date
Harry Terkelsen
2c52c8b118 Merge branch 'master' into dart 2016-11-13 14:24:49 -08:00
Harry Terkelsen
3934e3f825 add Dart implementation 2016-11-13 14:21:44 -08:00
Joel Martin
b3658328e4 Merge branch 'master' of github.com:kanaka/mal 2016-10-31 17:41:58 -05:00
Vasilij Schneidermann
42f304e8c9 Implement step 0 2016-09-30 10:05:43 +02:00
Joel Martin
8be49ba8ef Basic: switch to python preprocessor.
- Adds ON GOTO, ON GOSUB support.
- Simplifies REM keep/drop to just yes/no
2016-09-22 22:14:08 -05:00
Joel Martin
47def37ef4 Basic (C64 v2): step0
This works with cbmbasic from https://github.com/mist64/cbmbasic. The
cbmbasic interpreter needs to be on the PATH.

The actually sources are *.in.bas which are "compiled" to *.bas using
the qb2cbm.sh. qb2cbm.sh translates from a QBasic-ish format to a line
numbered source with include files inlined (REM $INCLUDE: 'file.bas').
One additional advantage is that the *.in.bas versions can also be
indented and qb2cbm.sh will remove the indenting in the translated
code.
2016-09-04 20:25:26 -05:00
Iqbal Ansari
3283e402d9 Compile clisp files before running
This step gives really good speedups, there still seem to be some
bottlenecks around evaluation which need attention
2016-08-28 22:26:35 +05:30
Iqbal Ansari
c505538df9 Rename common_lisp to clisp 2016-08-27 18:13:33 +05:30
Iqbal Ansari
1c7168cfd9 Add common-lisp step0 2016-08-27 18:13:33 +05:30
Joel Martin
f6146aef75 PowerShell: steps 4-A, optional, and self-hosting 2016-08-24 17:39:08 -05:00
Joel Martin
d7d197f96e PowerShell: steps 0-3 2016-08-20 15:09:19 -05:00
Vasilij Schneidermann
2b52a2a5d4 Add Dockerfile fixes and change runner to bash
Thanks to @kanaka
2016-08-09 19:25:33 +02:00
Vasilij Schneidermann
5d47a419a7 Merge branch 'master' into chuck-implementation 2016-08-06 23:56:29 +02:00
Dov Murik
4eb88ef295 Logo implementation
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.
2016-06-17 16:36:09 -04:00
Joel Martin
a7e008f463 Merge pull request #215 from hinrik/add_perl6_impl
Add Perl 6 implementation
2016-06-11 13:38:57 -05:00
Hinrik Örn Sigurðsson
a708140106 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.
2016-06-11 15:02:06 +00:00
Joel Martin
553a0950c8 Makefile: user specified TEST_OPTS take precedence.
runtest uses argparse so the later arguments will take precedence.
2016-06-08 13:29:59 -05:00
Joel Martin
ba1649e417 plsql: add oracle user in Dockerfile. Longer test startup,
Also, fix repeated test options in top-level Makefile.
2016-06-03 10:20:28 -05:00
Joel Martin
8119e74483 plsql: Fix readline/output async. Improve arg mode. 2016-05-22 00:16:02 -06:00
Joel Martin
97df14cdaf plsql (Oracle PL/SQL): Copy plpgsql. Step0,1 basics. 2016-05-22 00:16:01 -06:00
Joel Martin
20e8dea043 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
2016-05-18 22:29:18 -07:00
Dov Murik
37a33ac72e 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).
2016-05-16 11:25:42 -04:00
Dov Murik
31cc710f06 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.
2016-05-15 00:05:09 -04:00
Dov Murik
27a8252525 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.
2016-05-14 23:55:30 -04:00
Dov Murik
e09f1b102a java: Add 'run' script which quotes arguments correctly 2016-05-14 23:42:58 -04:00
Dov Murik
09dce03504 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).
2016-05-13 10:20:31 -04:00
Dov Murik
d3c401c1e8 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).
2016-05-11 11:31:04 -04:00
Joel Martin
a1eb30fcc9 Use more common spelling of deferrable.
Deferable is apprently a less common but correct spelling.
2016-05-10 10:26:39 -05:00
Joel Martin
46e2568944 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.
2016-05-09 21:14:15 -05:00
Dov Murik
36e91db404 Add VHDL implementation 2016-05-05 14:50:12 -04:00
Joel Martin
08e44c41d6 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
2016-05-02 23:37:16 -05:00
Joel Martin
5340418b47 plpgsql: steps 4-6. 2016-05-02 23:37:15 -05:00
Joel Martin
adc5b4fb54 plpgsql (Postgres PL/pgSQL): steps 0-3. 2016-05-02 23:37:15 -05:00
Vasilij Schneidermann
6a287d6291 Replace runner script to allow for globbing 2016-04-30 16:49:20 +02:00
Vasilij Schneidermann
916b30b98c Write a runner script
This script serves the following purposes:

- A --silent flag for testing purposes
- Support for @import comments (to work around no modules)
- Accessing extra arguments from CHUCK_ARGUMENTS
2016-04-25 14:20:39 +02:00
Vasilij Schneidermann
4abd73a692 Implement step 0 2016-04-24 16:18:01 +02:00
Dov Murik
d5221bcf04 Makefile: fail REGRESS=1 when earlier step fails
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.
2016-03-30 10:14:48 -04:00
Chris M Moore
adc03a1a5f Update from master 2016-03-20 21:37:07 +00:00
Joel Martin
f2b067cbd8 miniMAL: increase test timeouts 2016-03-15 11:19:51 -05:00
Joel Martin
dca6b58578 Tests: move step5 non-TCO tests to per impl.
- 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.
2016-03-14 23:39:21 -05:00
Joel Martin
0067158f6d Object Pascal: full implementation. Test cleanup.
- Move vector related step4 and step6 tests to optional.
- Fix two step9 tests that weren't checking return value.
2016-03-13 17:12:01 -05:00
Joel Martin
5b207de75e Makefile/README documentation. Build rules.
- Also, general cleanup/commenting of toplevel Makefile.
2016-03-07 23:33:45 -06:00
Joel Martin
4959b19df6 Makefile: add DOCKERIZE support. 2016-03-07 21:59:16 -06:00
Dov Murik
3da6f492d8 io: step5 2016-03-07 08:58:29 -05:00
Dov Murik
7511317b6c io: step0 2016-03-07 08:55:12 -05:00
Joel Martin
2faae94c0a Objective-C: OS X: build, read_atom, str comp., etc.
Also, fix designated init warnings. Note in README that OS X XCode
7 is also supported.
2016-03-06 01:24:16 -06:00
Vasilij Schneidermann
671c0e1c72 Merge branch 'master' into elisp 2016-03-02 01:01:43 +01:00
Vasilij Schneidermann
ae28e856fb Implement step 0 2016-02-28 21:21:38 +01:00
Joel Martin
bcfd8b7020 Generic recursive rules for dist, stats, clean
Also add missing clean rules for julia and matlab and fix perl clean
rule.
2016-02-24 01:09:19 -06:00
Joel Martin
5245b079e1 Add dist targets to most implementations.
TODO: factor groovy guile julia matlab miniMAL swift
2016-02-24 00:33:20 -06:00