jackhill/mal.git
7 years agoImplementation of step1 without the optional functionality
Iqbal Ansari [Mon, 15 Aug 2016 08:14:32 +0000 (13:44 +0530)]
Implementation of step1 without the optional functionality

7 years agoAdd common-lisp step0
Iqbal Ansari [Sat, 13 Aug 2016 19:37:22 +0000 (01:07 +0530)]
Add common-lisp step0

7 years agoPowerShell: add missing Makefile.
Joel Martin [Thu, 25 Aug 2016 16:17:33 +0000 (11:17 -0500)]
PowerShell: add missing Makefile.

7 years agoFix step4 case sensitivity test.
Joel Martin [Wed, 24 Aug 2016 22:48:56 +0000 (17:48 -0500)]
Fix step4 case sensitivity test.

7 years agoPowerShell: add to Travis build.
Joel Martin [Wed, 24 Aug 2016 22:45:38 +0000 (17:45 -0500)]
PowerShell: add to Travis build.

7 years agoREADME: add PowerShell, implementation 58.
Joel Martin [Wed, 24 Aug 2016 22:42:19 +0000 (17:42 -0500)]
README: add PowerShell, implementation 58.

7 years agotests: additional tests based on PowerShell impl
Joel Martin [Wed, 24 Aug 2016 22:39:24 +0000 (17:39 -0500)]
tests: additional tests based on PowerShell impl

- step1: empty list and vector
- step4: special forms case-sensitivity
- step9: apply with an empty list/vector

7 years agoPowerShell: steps 4-A, optional, and self-hosting
Joel Martin [Sun, 21 Aug 2016 22:14:01 +0000 (17:14 -0500)]
PowerShell: steps 4-A, optional, and self-hosting

7 years agoPowerShell: steps 0-3
Joel Martin [Sat, 20 Aug 2016 20:09:19 +0000 (15:09 -0500)]
PowerShell: steps 0-3

7 years agoMerge pull request #229 from wasamasa/chuck-implementation
Joel Martin [Tue, 9 Aug 2016 19:02:55 +0000 (14:02 -0500)]
Merge pull request #229 from wasamasa/chuck-implementation

ChucK implementation

7 years agoAdd basic Makefile
Vasilij Schneidermann [Tue, 9 Aug 2016 18:45:33 +0000 (20:45 +0200)]
Add basic Makefile

7 years agoAdd chuck to Travis builds
Vasilij Schneidermann [Tue, 9 Aug 2016 17:48:54 +0000 (19:48 +0200)]
Add chuck to Travis builds

7 years agoAdd Dockerfile fixes and change runner to bash
Vasilij Schneidermann [Tue, 9 Aug 2016 17:25:33 +0000 (19:25 +0200)]
Add Dockerfile fixes and change runner to bash

Thanks to @kanaka

7 years agoSupport backspace in readline implementation
Vasilij Schneidermann [Mon, 8 Aug 2016 19:32:30 +0000 (21:32 +0200)]
Support backspace in readline implementation

7 years agoMention in README
Vasilij Schneidermann [Sun, 7 Aug 2016 23:19:05 +0000 (01:19 +0200)]
Mention in README

7 years agoMove run_chuck.rb to run
Vasilij Schneidermann [Sun, 7 Aug 2016 23:09:39 +0000 (01:09 +0200)]
Move run_chuck.rb to run

7 years agoRemove temp file
Vasilij Schneidermann [Sat, 6 Aug 2016 21:57:38 +0000 (23:57 +0200)]
Remove temp file

7 years agoAdd run script, fix argv bug
Vasilij Schneidermann [Sat, 6 Aug 2016 21:57:14 +0000 (23:57 +0200)]
Add run script, fix argv bug

7 years agoMerge branch 'master' into chuck-implementation
Vasilij Schneidermann [Sat, 6 Aug 2016 21:56:29 +0000 (23:56 +0200)]
Merge branch 'master' into chuck-implementation

7 years agoSelf-hosting fix
Vasilij Schneidermann [Sat, 6 Aug 2016 20:41:00 +0000 (22:41 +0200)]
Self-hosting fix

7 years agoImplement step A
Vasilij Schneidermann [Sat, 6 Aug 2016 19:25:56 +0000 (21:25 +0200)]
Implement step A

7 years agoAdd a self-made readline implementation
Vasilij Schneidermann [Sat, 6 Aug 2016 15:42:56 +0000 (17:42 +0200)]
Add a self-made readline implementation

7 years agoImplement step 9
Vasilij Schneidermann [Fri, 5 Aug 2016 22:34:18 +0000 (00:34 +0200)]
Implement step 9

7 years agoImplement step 8
Vasilij Schneidermann [Mon, 1 Aug 2016 08:40:32 +0000 (10:40 +0200)]
Implement step 8

7 years agoSwift3: update to Swift 3 Preview 3.
Joel Martin [Mon, 1 Aug 2016 04:25:23 +0000 (23:25 -0500)]
Swift3: update to Swift 3 Preview 3.

7 years agoMerge pull request #228 from fredim/swift3
Joel Martin [Mon, 1 Aug 2016 04:16:26 +0000 (23:16 -0500)]
Merge pull request #228 from fredim/swift3

Squashed commits, updated to latest swift3 (swift-3.0-PREVIEW-2)

7 years agoImplement step 7
Vasilij Schneidermann [Sat, 30 Jul 2016 19:53:24 +0000 (21:53 +0200)]
Implement step 7

7 years agoImplement step 6
Vasilij Schneidermann [Fri, 29 Jul 2016 22:50:12 +0000 (00:50 +0200)]
Implement step 6

7 years agoSquashed commits, updated to latest swift3 (swift-3.0-PREVIEW-2)
Fred Im [Fri, 29 Jul 2016 18:37:32 +0000 (18:37 +0000)]
Squashed commits, updated to latest swift3 (swift-3.0-PREVIEW-2)

Main changes:
* consistency of func arguments, while every argument has both an outer and an inner name,
  but the first argument's outer was "unnamed" by default in swift<2. now all arguments are consistent
  and requires the initial "_" to declare the outer "unnamed" for the first argument
* indexes are now simpler types, the Array.index function computes successor/predecessor
* many, many API changes, that result in shorter "verb" names of functions with named arguments
  ex: Array.joinWithSeparator(String) -> Array.joined(separator: String)

7 years agoada: stats target.
Joel Martin [Fri, 29 Jul 2016 15:49:13 +0000 (10:49 -0500)]
ada: stats target.

Also, fix Crystal dockerfile build.

7 years agoperl6: update/add missing Dockerfile. Stats target.
Joel Martin [Fri, 29 Jul 2016 15:48:13 +0000 (10:48 -0500)]
perl6: update/add missing Dockerfile. Stats target.

- Update docker image from rakudo 2016-04 to 2016-07

8 years agoMerge pull request #225 from rhysd/crystal-0.18.4
Joel Martin [Mon, 27 Jun 2016 16:42:36 +0000 (11:42 -0500)]
Merge pull request #225 from rhysd/crystal-0.18.4

Crystal 0.18.4

8 years agoCrystal: Use Int64 instead of Int32 because time_ms requires 64bit integer
rhysd [Fri, 24 Jun 2016 23:21:36 +0000 (08:21 +0900)]
Crystal: Use Int64 instead of Int32 because time_ms requires 64bit integer

This fixes a test case for stepA.

8 years agoCrystal: subcommand is changed from 'build' to 'compile'
rhysd [Fri, 24 Jun 2016 23:21:15 +0000 (08:21 +0900)]
Crystal: subcommand is changed from 'build' to 'compile'

8 years agoMerge pull request #224 from dubek/logo
Joel Martin [Fri, 17 Jun 2016 21:12:55 +0000 (16:12 -0500)]
Merge pull request #224 from dubek/logo

Logo implementation

8 years agoLogo implementation
Dov Murik [Wed, 11 May 2016 17:32:51 +0000 (13:32 -0400)]
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.

8 years agoMerge pull request #223 from wasamasa/better-elisp-eval
Joel Martin [Thu, 16 Jun 2016 13:38:57 +0000 (08:38 -0500)]
Merge pull request #223 from wasamasa/better-elisp-eval

Improve elisp-eval to use MAL types

8 years agoImprove elisp-eval to use MAL types
Vasilij Schneidermann [Thu, 16 Jun 2016 07:32:55 +0000 (09:32 +0200)]
Improve elisp-eval to use MAL types

8 years agoMerge pull request #222 from wasamasa/elisp-eval
Joel Martin [Wed, 15 Jun 2016 15:41:55 +0000 (10:41 -0500)]
Merge pull request #222 from wasamasa/elisp-eval

Replace elisp* with elisp-eval

8 years agoMerge pull request #221 from dubek/js-interop
Joel Martin [Wed, 15 Jun 2016 14:48:26 +0000 (09:48 -0500)]
Merge pull request #221 from dubek/js-interop

js: Fix interop, update web REPL page

8 years agoReplace elisp* with elisp-eval, use rx in test
Vasilij Schneidermann [Wed, 15 Jun 2016 07:43:50 +0000 (09:43 +0200)]
Replace elisp* with elisp-eval, use rx in test

8 years agojs: Fix interop, update web REPL page
Dov Murik [Wed, 15 Jun 2016 03:21:38 +0000 (23:21 -0400)]
js: Fix interop, update web REPL page

* js* renamed to js-eval and is no longer a special form (just a normal
  function in core.js)
* . is no longer a special form (just a normal function in core.js)
* fixed object/method parsing of first argument to .
* added tests for .
* updated mal.html: "Mal at a glance" shows all Mal functions

8 years agoMerge pull request #218 from dubek/io-interop
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

8 years agoMerge pull request #219 from hinrik/perl6_eval_tests
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

8 years agoMerge pull request #220 from dubek/test-case-sensitive
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

8 years agotests: 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

8 years agoio: Add interop function io-eval
Dov Murik [Sun, 12 Jun 2016 02:47:27 +0000 (22:47 -0400)]
io: Add interop function io-eval

8 years agoMerge pull request #216 from hinrik/add_perl6_impl
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 }

8 years agoMerge pull request #217 from dubek/lua-interop
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

8 years agoAdd tests for perl6-eval function
Hinrik Örn Sigurðsson [Sun, 12 Jun 2016 14:20:27 +0000 (14:20 +0000)]
Add tests for perl6-eval function

8 years agoprocess/guide: Describe interop function quux-eval
Dov Murik [Sun, 12 Jun 2016 01:36:01 +0000 (21:36 -0400)]
process/guide: Describe interop function quux-eval

8 years agolua: Add interop core function lua-eval
Dov Murik [Sun, 12 Jun 2016 01:30:44 +0000 (21:30 -0400)]
lua: Add interop core function lua-eval

8 years agoPerl 6: Throw exception on missing ), ], or }
Hinrik Örn Sigurðsson [Sat, 11 Jun 2016 19:50:39 +0000 (19:50 +0000)]
Perl 6: Throw exception on missing ), ], or }

8 years agoMerge pull request #215 from hinrik/add_perl6_impl
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

8 years agoTest the Perl 6 implementation on Travis
Hinrik Örn Sigurðsson [Wed, 8 Jun 2016 16:15:53 +0000 (16:15 +0000)]
Test the Perl 6 implementation on Travis

8 years agoAdd perl6-eval interop function
Hinrik Örn Sigurðsson [Tue, 7 Jun 2016 09:16:48 +0000 (09:16 +0000)]
Add perl6-eval interop function

8 years agoAdd Perl 6 implementation
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.

8 years agoMakefile: user specified TEST_OPTS take precedence.
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.

8 years agoMerge pull request #214 from rhysd/crystal-0.17.4
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

8 years agoCrystal: 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

8 years agoplsql: disable until tests more reliably pass.
Joel Martin [Mon, 6 Jun 2016 16:33:33 +0000 (11:33 -0500)]
plsql: disable until tests more reliably pass.

8 years agoplsql: add oracle user in Dockerfile. Longer test startup,
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.

8 years agoplsql: disable until uid 1001 issue resolved.
Joel Martin [Thu, 2 Jun 2016 17:57:34 +0000 (12:57 -0500)]
plsql: disable until uid 1001 issue resolved.

8 years agoplsql: enable travis build.
Joel Martin [Thu, 2 Jun 2016 17:44:36 +0000 (12:44 -0500)]
plsql: enable travis build.

8 years agoplsql: add run script.
Joel Martin [Tue, 24 May 2016 03:41:29 +0000 (21:41 -0600)]
plsql: add run script.

8 years agoplsql: fix normal user/sudo startup of container.
Joel Martin [Wed, 4 May 2016 05:45:01 +0000 (00:45 -0500)]
plsql: fix normal user/sudo startup of container.

8 years ago*sql: update Makefiles, README. Logon override.
Joel Martin [Wed, 4 May 2016 05:38:02 +0000 (00:38 -0500)]
*sql: update Makefiles, README. Logon override.

8 years agoplsql: add dockerfile. Lots of cleanup/renaming.
Joel Martin [Wed, 4 May 2016 04:25:41 +0000 (23:25 -0500)]
plsql: add dockerfile. Lots of cleanup/renaming.

8 years agoplsql: Fix readline/output async. Improve arg mode.
Joel Martin [Wed, 4 May 2016 03:29:07 +0000 (22:29 -0500)]
plsql: Fix readline/output async. Improve arg mode.

8 years agoplsql: self-hosting. Long strings, refactor io.
Joel Martin [Tue, 3 May 2016 05:28:33 +0000 (00:28 -0500)]
plsql: self-hosting. Long strings, refactor io.

8 years agoplsql: keyword/vector/hash-map. Other deferrables.
Joel Martin [Tue, 3 May 2016 04:56:48 +0000 (23:56 -0500)]
plsql: keyword/vector/hash-map. Other deferrables.

8 years agoplsql: stepA basics. Fix step6 argument processing.
Joel Martin [Fri, 29 Apr 2016 05:11:59 +0000 (00:11 -0500)]
plsql: stepA basics. Fix step6 argument processing.

8 years agoplsql: add step9 basics. Refactor arg list passing.
Joel Martin [Fri, 29 Apr 2016 03:36:24 +0000 (22:36 -0500)]
plsql: add step9 basics. Refactor arg list passing.

8 years agoplsql: refactor with memory pool. step5,7,8 basics.
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.

8 years agoplsql: step6 basics. File I/O in io.sql and wrap.sh
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

8 years agoplsql: step4 basics.
Joel Martin [Tue, 5 Apr 2016 06:29:14 +0000 (01:29 -0500)]
plsql: step4 basics.

8 years agoplsql: step2,3 basics.
Joel Martin [Tue, 5 Apr 2016 04:37:52 +0000 (23:37 -0500)]
plsql: step2,3 basics.

8 years agoplsql (Oracle PL/SQL): Copy plpgsql. Step0,1 basics.
Joel Martin [Fri, 1 Apr 2016 02:29:47 +0000 (21:29 -0500)]
plsql (Oracle PL/SQL): Copy plpgsql. Step0,1 basics.

8 years agoRefactor to use run scripts, remove *_RUNSTEP
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

8 years agoMerge pull request #212 from dubek/argv-testing
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

8 years agoscala: Run steps directly from jar file
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).

8 years agomake: Clean script output; skip test for command-line argument with spaces
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.

8 years agomatlab: Add 'run' script to handle command-line args
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.

8 years agojava: Add 'run' script which quotes arguments correctly
Dov Murik [Sun, 15 May 2016 03:42:58 +0000 (23:42 -0400)]
java: Add 'run' script which quotes arguments correctly

8 years agoImplement step 5
Vasilij Schneidermann [Sat, 14 May 2016 01:02:07 +0000 (03:02 +0200)]
Implement step 5

8 years agoio: Add wrapper to swallow startup message from Io interpreter
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).

8 years agoMerge pull request #213 from dubek/time-ms-fixes
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

8 years agoUse truthiness constants
Vasilij Schneidermann [Thu, 12 May 2016 18:04:22 +0000 (20:04 +0200)]
Use truthiness constants

8 years agofactor: Set *ARGV* and run command-line script correctly in step6-stepA
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

8 years agoImplement step 4
Vasilij Schneidermann [Thu, 12 May 2016 08:01:09 +0000 (10:01 +0200)]
Implement step 4

8 years agor: Fix setting *ARGV*
Dov Murik [Wed, 11 May 2016 20:29:33 +0000 (16:29 -0400)]
r: Fix setting *ARGV*

8 years agojs: Fix setting *ARGV* in step6 & step7
Dov Murik [Wed, 11 May 2016 20:11:18 +0000 (16:11 -0400)]
js: Fix setting *ARGV* in step6 & step7

8 years agofsharp: When executing a mal script, don't print the final return value
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

8 years agoerlang: Fix time-ms to return milliseconds since epoch
Dov Murik [Wed, 11 May 2016 19:53:42 +0000 (15:53 -0400)]
erlang: Fix time-ms to return milliseconds since epoch

8 years agocpp: Make integer values 64-bit so they can holds time-ms values
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

8 years agoerlang: When executing a mal script, don't print the final return value
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

8 years agocpp: 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

8 years agoocaml: Remove debug prints in step6 & step7
Dov Murik [Wed, 11 May 2016 19:48:21 +0000 (15:48 -0400)]
ocaml: Remove debug prints in step6 & step7

8 years agotests: Test *ARGV* is set correctly in step 6
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).

8 years agoMerge pull request #211 from dubek/racket-fix-argv
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