jackhill/mal.git
5 years agoMerge pull request #333 from LispLY/objc-fix-conj-meta
Joel Martin [Thu, 27 Dec 2018 20:19:28 +0000 (14:19 -0600)]
Merge pull request #333 from LispLY/objc-fix-conj-meta

ojbc: fix conj, meta and with-meta

5 years agoIn objc. Modified conj, meta and with-meta to pass all the tests in stepA.
陆遥 [Tue, 18 Dec 2018 06:05:56 +0000 (14:05 +0800)]
In objc. Modified conj, meta and with-meta to pass all the tests in stepA.

5 years agoTest uncaught throw, catchless try* . Fix 46 impls.
Joel Martin [Mon, 3 Dec 2018 19:20:44 +0000 (13:20 -0600)]
Test uncaught throw, catchless try* . Fix 46 impls.

Fixes made to: ada, c, chuck, clojure, coffee, common-lisp, cpp,
crystal, d, dart, elm, erlang, es6, factor, fsharp, gnu-smalltalk,
groovy, guile, haxe, hy, js, livescript, matlab, miniMAL, nasm, nim,
objc, objpascal, ocaml, perl, perl6, php, plsql, ps, python, r,
rpython, ruby, scheme, swift3, tcl, ts, vb, vimscript, wasm, yorick.

Catchless try* test is an optional test. Not all implementations
support catchless try* but a number were fixed so they at least don't
crash on catchless try*.

5 years agoruntest: support carriage returns in tests.
Joel Martin [Mon, 10 Dec 2018 18:30:58 +0000 (12:30 -0600)]
runtest: support carriage returns in tests.

This allows carriage returns to be specified in tests which allows
multiline tests to be written i.e. by using Ctrl-V Enter to put
a literal carriage return (^M) into the test definition. The effect of
this is to send a single string to the REPL that contains newlines
which normally can't be done because readline behavior will split it
into two separate lines.

5 years agowasm: split js mode platform code out.
Joel Martin [Mon, 10 Dec 2018 06:30:59 +0000 (00:30 -0600)]
wasm: split js mode platform code out.

Simplify the interface to remove imports that aren't used (stdout and
add_history) and simplify (rename fputs to printline).

5 years agowasm: enable execution with Node
Joel Martin [Mon, 10 Dec 2018 04:55:49 +0000 (22:55 -0600)]
wasm: enable execution with Node

Add node mode to travis alongside wace_libc.

5 years agoREADME: fix formatting.
Joel Martin [Sun, 9 Dec 2018 00:29:28 +0000 (18:29 -0600)]
README: fix formatting.

5 years agoREADME: add missing talk youtube links.
Joel Martin [Sun, 9 Dec 2018 00:26:13 +0000 (18:26 -0600)]
README: add missing talk youtube links.

5 years agowasm: add package.json to pull in wamp.
Joel Martin [Sun, 9 Dec 2018 00:11:19 +0000 (18:11 -0600)]
wasm: add package.json to pull in wamp.

5 years agowasm: update README. Activate in travis.
Joel Martin [Sat, 8 Dec 2018 22:56:59 +0000 (16:56 -0600)]
wasm: update README. Activate in travis.

5 years agowasm: Update Dockerfile. WAMP and WASM_AS params.
Joel Martin [Sat, 8 Dec 2018 22:52:48 +0000 (16:52 -0600)]
wasm: Update Dockerfile. WAMP and WASM_AS params.

5 years agowasm: fix to work with wabt's wat2wasm.
Joel Martin [Sat, 8 Dec 2018 22:51:16 +0000 (16:51 -0600)]
wasm: fix to work with wabt's wat2wasm.

5 years agowasm: drop unnecessary signed suffixes.
Joel Martin [Sat, 8 Dec 2018 21:35:49 +0000 (15:35 -0600)]
wasm: drop unnecessary signed suffixes.

Apparently some of the assemblers ignored these sign indicators and so
this worked in the past.

5 years agowasm: add line count rules.
Joel Martin [Fri, 7 Dec 2018 07:11:05 +0000 (01:11 -0600)]
wasm: add line count rules.

5 years agowasm: use LET macro and br_if.
Joel Martin [Sun, 11 Nov 2018 23:55:38 +0000 (17:55 -0600)]
wasm: use LET macro and br_if.

5 years agowasm: String refactor. Release macro memory
Joel Martin [Sun, 11 Nov 2018 21:30:42 +0000 (15:30 -0600)]
wasm: String refactor. Release macro memory

Also split platform out.

5 years agowasm: improve debug output using padding.
Joel Martin [Sun, 11 Nov 2018 21:07:27 +0000 (15:07 -0600)]
wasm: improve debug output using padding.

5 years agowasm: Steps 4-A, hashmaps, metadata.
Joel Martin [Sun, 14 Oct 2018 21:44:08 +0000 (16:44 -0500)]
wasm: Steps 4-A, hashmaps, metadata.

- Use more concise param and local syntax.
- Separate out string.wam.
- Add pr_str_seq functionality and add in print_readably
  functionality.
- Add REPLACE3 function.
- Remove use of putchar and simplify util.wam
- Move string functions from util.wam to string.wam including some
  renames to be more consistent with C library names.
- Add temporary content to 256 character buffers so that they are
  de-duplicated/combined.
- Use AND/OR macros.
- Improve Makefile deps and use more general wasm target.
- Properly cleanup memory in try* and use TCO as part of try*.

5 years agowasm: Convert to wam syntax using wamp.
Joel Martin [Sun, 14 Oct 2018 04:10:28 +0000 (23:10 -0500)]
wasm: Convert to wam syntax using wamp.

- Convert sources to much more concise wam syntax supported by wamp.
- Rename sources from *.wast to *.wam and generate *.wast files by
  translating via wamp.

5 years agowasm: Steps 0-3 ported from basic. Preprocessor.
Joel Martin [Sat, 13 Oct 2018 05:26:38 +0000 (00:26 -0500)]
wasm: Steps 0-3 ported from basic. Preprocessor.

Needs wace from https://github.com/kanaka/wac to run.

wastpp.py processes the listed modules and outputs a single combined
module. It finds inline strings and hoists them to the top into a data
section and creates pointer variables into that memory and replaces
the inline strings with pointer lookups.

5 years agoplpgsql, racket, tcl, yorick: fix errors.
Joel Martin [Thu, 29 Nov 2018 23:10:01 +0000 (17:10 -0600)]
plpgsql, racket, tcl, yorick: fix errors.

5 years agoguile, hy, java, make, matlab, miniMAL: fix errors
Joel Martin [Thu, 29 Nov 2018 23:09:28 +0000 (17:09 -0600)]
guile, hy, java, make, matlab, miniMAL: fix errors

5 years agolua, nasm, perl, rexx, vimscript: fix errors.
Joel Martin [Thu, 29 Nov 2018 21:32:27 +0000 (15:32 -0600)]
lua, nasm, perl, rexx, vimscript: fix errors.

5 years agoada, d, elixir, es6, factor, haxe: fix errors.
Joel Martin [Thu, 29 Nov 2018 21:31:50 +0000 (15:31 -0600)]
ada, d, elixir, es6, factor, haxe: fix errors.

5 years agoawk, bash, c, coffee, js: fix errors.
Joel Martin [Thu, 29 Nov 2018 06:41:47 +0000 (00:41 -0600)]
awk, bash, c, coffee, js: fix errors.

5 years agoforth: fix errors/reporting in steps 1-8.
Joel Martin & Chouser [Fri, 30 Nov 2018 20:54:21 +0000 (14:54 -0600)]
forth: fix errors/reporting in steps 1-8.

5 years agoruntest.py: process output/errors as regex match.
Joel Martin [Thu, 29 Nov 2018 06:39:53 +0000 (00:39 -0600)]
runtest.py: process output/errors as regex match.

Update output test data to be regex compatible.

5 years agoruntest.py: more generic prompt matching.
Joel Martin [Thu, 29 Nov 2018 03:04:44 +0000 (21:04 -0600)]
runtest.py: more generic prompt matching.

5 years agoawk: fix ignored escaped 'u' warning.
Joel Martin [Thu, 29 Nov 2018 03:33:56 +0000 (21:33 -0600)]
awk: fix ignored escaped 'u' warning.

5 years agomal: update Dockerfile to Ubuntu 18.04 and node 10
Joel Martin [Thu, 29 Nov 2018 02:45:28 +0000 (20:45 -0600)]
mal: update Dockerfile to Ubuntu 18.04 and node 10

5 years agoMerge pull request #331 from vi/patch-1
Joel Martin [Thu, 29 Nov 2018 02:49:25 +0000 (20:49 -0600)]
Merge pull request #331 from vi/patch-1

Add link to my Rust implementation

5 years agoUpdate JS impls: use ffi-napi and Ubuntu 18.04
Joel Martin [Wed, 28 Nov 2018 23:12:17 +0000 (17:12 -0600)]
Update JS impls: use ffi-napi and Ubuntu 18.04

5 years agoAdd link to my Rust implementation
Vitaly Shukela [Fri, 9 Nov 2018 21:24:56 +0000 (00:24 +0300)]
Add link to my Rust implementation

I assume this README serves as a wiki for collecting impls.

5 years agoMerge pull request #330 from omarroth/update-crystal
Joel Martin [Tue, 30 Oct 2018 00:27:05 +0000 (19:27 -0500)]
Merge pull request #330 from omarroth/update-crystal

Update Crystal implementation

5 years agoUpdate Crystal implementation
Omar Roth [Sat, 27 Oct 2018 20:20:36 +0000 (15:20 -0500)]
Update Crystal implementation

5 years agoAdd link to Rust implementation by Tim Morgan.
Joel Martin [Sat, 25 Aug 2018 22:30:33 +0000 (17:30 -0500)]
Add link to Rust implementation by Tim Morgan.

5 years agoTravis: re-active perf for erlang.
Joel Martin [Tue, 17 Jul 2018 00:10:00 +0000 (19:10 -0500)]
Travis: re-active perf for erlang.

Local testing shows that the test completes and doesn't hit OOM.

5 years agoMerge pull request #326 from seven1m/patch-1
Joel Martin [Tue, 17 Jul 2018 00:04:26 +0000 (17:04 -0700)]
Merge pull request #326 from seven1m/patch-1

Fix link to FAQ document

5 years agoFix link to FAQ document
Tim Morgan [Mon, 16 Jul 2018 23:41:12 +0000 (18:41 -0500)]
Fix link to FAQ document

5 years agoTravis: enable mal impl for perf test.
Joel Martin [Mon, 16 Jul 2018 23:15:19 +0000 (18:15 -0500)]
Travis: enable mal impl for perf test.

5 years agoTravis: trigger build after github push error.
Joel Martin [Mon, 16 Jul 2018 22:45:55 +0000 (17:45 -0500)]
Travis: trigger build after github push error.

git push gave this error and the commit was successfully pushed but it
didn't result in Travis starting a build:

remote: Resolving deltas: 100% (2/2), completed with 2 local objects.
remote: Unexpected system error after push was received.
remote: These changes may not be reflected on github.com!
remote: Your unique error code: 1d9d84300a34930b94914e59e9c3b381
To git@github.com:kanaka/mal.git
   5ffa331..1332215  master -> master

5 years agoperf: more accurate iter count (last-iters).
Joel Martin [Mon, 16 Jul 2018 17:33:36 +0000 (12:33 -0500)]
perf: more accurate iter count (last-iters).

We should return the iter count prior to then final iteration because
the final one was incomplete when the 10 seconds expired.

5 years agoperf: simplify perf3 iter calc. Enable perf^mal.
Joel Martin [Mon, 16 Jul 2018 17:24:05 +0000 (12:24 -0500)]
perf: simplify perf3 iter calc. Enable perf^mal.

Since the iter count increases by 1 each time through the "loop", when
we hit more than 10 seconds elapsed time we can just return the
previous iter count rather than doing a percentage calculation. This
fixes results for basic modes which couldn't do the percent
calculation because itermediate values were greater than 32,768 which
is the limit for basic MODES.

Also, the mal implementation now runs and returns legit results so
re-enable perf^impl.

5 years agoperf: fix perf3 to show total iters instead of / 3
Joel Martin [Mon, 16 Jul 2018 14:34:37 +0000 (09:34 -0500)]
perf: fix perf3 to show total iters instead of / 3

The run-fn-for function was originally name run-fn and was hard-coded
to run for 3 seconds. I forgot to replace the 3 with the max-secs
variable. However, given that some implementations have less than
1 iteration per second, I'm just going to drop that division and
report the iterations per max-seconds so that for the slowest
implementations we have some relative comparison instead of all of
them just reporting 0.

Thanks to Tim Morgan for discovering this bug:
https://github.com/kanaka/mal/commit/699f0ad23aca21076edb6a51838d879ca580ffd5

5 years agorust: fix Dockerfile to include WORKDIR=/mal
Joel Martin [Sun, 15 Jul 2018 00:27:11 +0000 (19:27 -0500)]
rust: fix Dockerfile to include WORKDIR=/mal

5 years ago[travis] disable foment. Still hangs in perf.
Joel Martin [Sat, 14 Jul 2018 18:32:35 +0000 (13:32 -0500)]
[travis] disable foment. Still hangs in perf.

5 years agoscheme: enable foment to test if hangs are fixed
Joel Martin [Fri, 13 Jul 2018 20:24:18 +0000 (15:24 -0500)]
scheme: enable foment to test if hangs are fixed

5 years agorust: Update rust and update/refactor implementation
Joel Martin [Thu, 12 Jul 2018 05:23:40 +0000 (00:23 -0500)]
rust: Update rust and update/refactor implementation

This rewrites the rust implementation to use many new features of the
current version of rust.

The refactor is much more concise (only 2/3rds the size) and switches
to using a lot of the more functional features (iterators, closures,
etc) that have been added or improved in rust.

Unfortunately, the implementation is a fair bit slower (about 30% on
perf3). It's not clear why this is the case but concision and being
more idiomatic wins over performance.

5 years agorust: remove rustyline ANSI CSI codes from output
Joel Martin [Fri, 29 Jun 2018 03:02:42 +0000 (22:02 -0500)]
rust: remove rustyline ANSI CSI codes from output

5 years agoMerge pull request #323 from jig/master
Joel Martin [Fri, 13 Jul 2018 05:55:20 +0000 (22:55 -0700)]
Merge pull request #323 from jig/master

Go: Fix panic on call to function with wrong number of arguments

5 years agoMerge pull request #325 from chr15m/php-interop-language-constructs
Joel Martin [Thu, 12 Jul 2018 23:15:29 +0000 (16:15 -0700)]
Merge pull request #325 from chr15m/php-interop-language-constructs

PHP: Wrap some native "language constructs".

5 years agoMerge pull request #324 from seven1m/add-not-test-for-nil
Joel Martin [Thu, 12 Jul 2018 22:44:10 +0000 (15:44 -0700)]
Merge pull request #324 from seven1m/add-not-test-for-nil

Test that (not nil) returns true

5 years agotests/stepA: allow time-ms result to be signed.
Joel Martin [Thu, 12 Jul 2018 19:24:14 +0000 (14:24 -0500)]
tests/stepA: allow time-ms result to be signed.

In Java the time-ms value was negative. This actually still works fine
because arithmetic comparison is still correct. So allow signed
time-ms results.

5 years agoTypeScript: fix HOME bug and node symlink.
Joel Martin [Thu, 12 Jul 2018 19:21:55 +0000 (14:21 -0500)]
TypeScript: fix HOME bug and node symlink.

Update the Dockerfile to fix a symlink loop.
Update node_readline.ts to fix a failure with usage of
process.env.HOME which started failing for some reason.

5 years agoscala: fix w/ xenial, sbt 0.14.6, update build.
Joel Martin [Thu, 12 Jul 2018 18:51:02 +0000 (13:51 -0500)]
scala: fix w/ xenial, sbt 0.14.6, update build.

Build had become out of date so update docker image to xenial and sbt
to 0.14.6 and update Scala build files to go with new sbt version.

5 years agojava: fix by updating to xenial, java 8, maven 3
Joel Martin [Thu, 12 Jul 2018 14:27:21 +0000 (09:27 -0500)]
java: fix by updating to xenial, java 8, maven 3

The vivid build with java 7 and maven 2 was no longer able to retrieve
upstream deps and was failing.

5 years agoPHP: Wrap some native "language constructs".
Chris McCormick [Thu, 12 Jul 2018 12:21:03 +0000 (20:21 +0800)]
PHP: Wrap some native "language constructs".

Common ones which can't be called otherwise.
Can now be reached via php/exit, php/print, php/require.

Fixes chr15m/frock#7

5 years agoTest that (not nil) returns true
Tim Morgan [Mon, 9 Jul 2018 03:21:01 +0000 (22:21 -0500)]
Test that (not nil) returns true

5 years agoGo: Minor
Jordi Íñigo [Sun, 8 Jul 2018 09:22:49 +0000 (11:22 +0200)]
Go: Minor

5 years agoGo: added file back accidentally removed
Jordi Íñigo [Sun, 8 Jul 2018 09:20:46 +0000 (11:20 +0200)]
Go: added file back accidentally removed

5 years agoGo: modified error messages
Jordi Íñigo [Sat, 7 Jul 2018 23:44:28 +0000 (01:44 +0200)]
Go: modified error messages

5 years agoGo: added argument count checks to functions
Jordi Íñigo [Sat, 7 Jul 2018 23:23:00 +0000 (01:23 +0200)]
Go: added argument count checks to functions

5 years agoGo: removed some redundant tests
Jordi Íñigo [Sat, 7 Jul 2018 20:04:52 +0000 (22:04 +0200)]
Go: removed some redundant tests

5 years agoGo: Fix panic on call to function with wrong number of arguments
Jordi Íñigo [Fri, 6 Jul 2018 11:01:57 +0000 (13:01 +0200)]
Go: Fix panic on call to function with wrong number of arguments

6 years agoMerge pull request #322 from chr15m/projects-using-mal
Joel Martin [Tue, 26 Jun 2018 13:43:15 +0000 (08:43 -0500)]
Merge pull request #322 from chr15m/projects-using-mal

Added README section for projects using mal.

6 years agoAdded README section for projects using mal.
Chris McCormick [Tue, 26 Jun 2018 07:27:45 +0000 (15:27 +0800)]
Added README section for projects using mal.

6 years agoMerge pull request #320 from chr15m/php-interop-improvements
Joel Martin [Mon, 25 Jun 2018 16:04:41 +0000 (11:04 -0500)]
Merge pull request #320 from chr15m/php-interop-improvements

Updated PHP native interop interface.

6 years agoUpdated PHP native interop interface.
Chris McCormick [Sun, 24 Jun 2018 08:31:40 +0000 (16:31 +0800)]
Updated PHP native interop interface.

6 years agoMerge pull request #319 from chr15m/refactor-php-web-runner
Joel Martin [Sun, 24 Jun 2018 16:27:48 +0000 (11:27 -0500)]
Merge pull request #319 from chr15m/refactor-php-web-runner

PHP: refactor web running mechanism.

6 years agoPHP: refactor web running mechanism.
Chris McCormick [Sun, 24 Jun 2018 11:45:29 +0000 (19:45 +0800)]
PHP: refactor web running mechanism.

6 years agoMerge pull request #318 from jamesbvaughan/fix-readme-typo
Joel Martin [Sat, 23 Jun 2018 23:10:40 +0000 (18:10 -0500)]
Merge pull request #318 from jamesbvaughan/fix-readme-typo

Fix typo in Common Lisp section of Readme

6 years agoFix typo in Common Lisp section
James Vaughan [Sat, 23 Jun 2018 23:08:15 +0000 (16:08 -0700)]
Fix typo in Common Lisp section

6 years agoMerge pull request #317 from kanaka/rename-short-abbreviations
Joel Martin [Fri, 22 Jun 2018 17:43:56 +0000 (12:43 -0500)]
Merge pull request #317 from kanaka/rename-short-abbreviations

Rename short abbreviations

6 years agoUse correct implementation names in build matrix
Vasilij Schneidermann [Fri, 22 Jun 2018 16:24:47 +0000 (18:24 +0200)]
Use correct implementation names in build matrix

6 years agoRename gst and pil directories in README
Vasilij Schneidermann [Fri, 22 Jun 2018 16:20:38 +0000 (18:20 +0200)]
Rename gst and pil directories in README

6 years agoRename gst and pil to gnu-smalltalk and picolisp
Vasilij Schneidermann [Sun, 17 Jun 2018 17:54:54 +0000 (19:54 +0200)]
Rename gst and pil to gnu-smalltalk and picolisp

6 years agoMerge pull request #316 from dubek/fantom
Joel Martin [Mon, 4 Jun 2018 00:56:52 +0000 (19:56 -0500)]
Merge pull request #316 from dubek/fantom

I pushed a container (we should probably figure out how to let you and @wasamasa do that at some point). The Fantom build is passing. Did a brief code review and looks good. Merged.

6 years agotravis: Add fantom to build CI matrix
Dov Murik [Sun, 3 Jun 2018 20:14:27 +0000 (20:14 +0000)]
travis: Add fantom to build CI matrix

6 years agoAdd Fantom implementation
Dov Murik [Sun, 29 Apr 2018 12:53:32 +0000 (12:53 +0000)]
Add Fantom implementation

6 years ago[clojure] update lumo/image to fix module mismatch.
Joel Martin [Mon, 2 Apr 2018 16:01:24 +0000 (11:01 -0500)]
[clojure] update lumo/image to fix module mismatch.

6 years agoMerge pull request #310 from bendudson/master
Joel Martin [Thu, 4 Jan 2018 17:33:58 +0000 (11:33 -0600)]
Merge pull request #310 from bendudson/master

NASM x86-64 assembly implementation

6 years agoTidying, minimising differences between steps
Ben Dudson [Thu, 4 Jan 2018 16:05:03 +0000 (16:05 +0000)]
Tidying, minimising differences between steps

Merging fixes in stepA into earlier steps, and
removing differences in comments and spacing

6 years agoRemoving env and core from step2
Ben Dudson [Thu, 4 Jan 2018 14:36:53 +0000 (14:36 +0000)]
Removing env and core from step2

Changed Env to Map. Need to define arithmetic
operators in step2 rather than core for this step.

6 years agoTidying up steps 0-3 (in progress)
Ben Dudson [Wed, 3 Jan 2018 23:50:34 +0000 (23:50 +0000)]
Tidying up steps 0-3 (in progress)

Trying to remove common code, and minimise differences
between steps.

6 years agoAdding nasm to Travis yml file
Ben Dudson [Wed, 3 Jan 2018 15:47:05 +0000 (15:47 +0000)]
Adding nasm to Travis yml file

Enables testing of NASM implementation

6 years agoAdd clean target
Ben Dudson [Wed, 3 Jan 2018 15:43:22 +0000 (15:43 +0000)]
Add clean target

Deletes executables and object files

6 years agoAdd stats and stats-lisp targets
Ben Dudson [Tue, 2 Jan 2018 23:48:51 +0000 (23:48 +0000)]
Add stats and stats-lisp targets

Updated list of source files, added targets
with `;` as the comment character

6 years agoBump language count in README
Ben Dudson [Tue, 2 Jan 2018 23:39:01 +0000 (23:39 +0000)]
Bump language count in README

Updated to 72 languages

6 years agoDockerfile xenial and binutils install
Ben Dudson [Tue, 2 Jan 2018 23:37:42 +0000 (23:37 +0000)]
Dockerfile xenial and binutils install

* Changed from generic ubuntu to ubuntu:xenial

* Now requires binutils to be installed for `ld`

6 years agoMerge pull request #311 from bendudson/nasm-tests-step7_9
Joel Martin [Tue, 2 Jan 2018 15:53:18 +0000 (09:53 -0600)]
Merge pull request #311 from bendudson/nasm-tests-step7_9

New tests for steps 7 and 9

6 years agoMerge pull request #312 from jonaslu/add_metadata_reader_macro_in_docs
Joel Martin [Tue, 2 Jan 2018 15:51:23 +0000 (09:51 -0600)]
Merge pull request #312 from jonaslu/add_metadata_reader_macro_in_docs

Update guide with note on reader macro with-meta

6 years agoSwift: try forcing Travis to xcode version 7.3
Joel Martin [Sat, 30 Dec 2017 19:18:34 +0000 (13:18 -0600)]
Swift: try forcing Travis to xcode version 7.3

6 years agoUpdate guide with note on reader macro with-meta
Jonas Lundberg [Sat, 30 Dec 2017 18:18:20 +0000 (19:18 +0100)]
Update guide with note on reader macro with-meta

Guide was missing the deferrable step of having
a reader macro for ^ (which is included in the
tests for step A) which caused some confusion
as to what it was.

It's included in the tests/step1_read_print.mal
but not mentioned in the docs.

6 years agoFix bug in map: should pass args as list
Ben Dudson [Thu, 21 Dec 2017 10:56:14 +0000 (10:56 +0000)]
Fix bug in map: should pass args as list

This appeared only for variadic function which is used in EVAL.

Added a test to step 9 to catch this earlier.

6 years agoFix bug in concat, add test to step 7
Ben Dudson [Sat, 16 Dec 2017 23:52:59 +0000 (23:52 +0000)]
Fix bug in concat, add test to step 7

Concatenating multiple empty lists resulted in a return
which should be empty but was not checked.

(concat (list) (list))
-> ()

Test added to step 7 to catch, since this appeared in
self-hosting step 8 in the -> macro expansion.

6 years agoAdding test to step7 for quasiquote
Ben Dudson [Mon, 27 Nov 2017 14:07:00 +0000 (14:07 +0000)]
Adding test to step7 for quasiquote

Handling of the last element of the AST
is tested by having an unquote as the last element.

6 years agoRemoving new tests from step7 and step9
Ben Dudson [Fri, 29 Dec 2017 22:44:22 +0000 (22:44 +0000)]
Removing new tests from step7 and step9

These will be separated into another branch.

6 years agoAdd docker file. Docker tests pass
Ben Dudson [Wed, 27 Dec 2017 23:57:34 +0000 (23:57 +0000)]
Add docker file. Docker tests pass

Tested with:

```
docker build -t kanaka/mal-test-nasm" .

make DOCKERIZE=1 "test^nasm"
make DOCKERIZE=1 MAL_IMPL=nasm "test^mal"
```

Docker image not pushed to server, so Travis script fails.

6 years agoMoved macro-related functions to start of core Env
Ben Dudson [Wed, 27 Dec 2017 23:34:30 +0000 (23:34 +0000)]
Moved macro-related functions to start of core Env

Changes the performance test 3 from ~ 3500/s to ~4300/s

Probably indicates that Env lookups are a big part of the
runtime.

6 years agoAdding README.md file and Make all target
Ben Dudson [Wed, 27 Dec 2017 23:33:03 +0000 (23:33 +0000)]
Adding README.md file and Make all target

* README.md in nasm/ directory lists some features and limitations

* Added NASM entry to root directory README.md

* Added an 'all' target to the nasm Makefile