Dov Murik
539427f0db
nim: fix tokenizer endless loop (and out-of-memory) on bad input
...
The input string `(prn "abc` caused the nim implementaion (from step1
onwards) to enter an endless loop in tokenize (which eventually caused
out-of-memory).
The fix verfies that indeed the regex matches a non-empty substring
before adding that substring as a token.
2015-12-04 15:35:39 -05:00
Joel Martin
c46b421a24
Haskell: fix simple vector equality. Add test.
...
- Was missing vector to vector equality but never noticed because test
was missing.
- Related to #123
2015-12-03 16:27:47 -06:00
Dov Murik
6496cd1d17
tests: add tests for nil hashmap values
2015-12-02 15:52:32 -05:00
Joel Martin
5044ce44f4
Tests: add nested hash-map tests.
2015-12-02 11:16:09 -06:00
Dov Murik
4b7f92e5d6
tests: add soft tests for nested vector/list equality in step 4
2015-11-30 10:35:14 -05:00
Dov Murik
c362489f35
tests: add more hash equality test cases in step 9
2015-11-17 21:19:30 -05:00
Joel Martin
a0b63ee477
hash-map equality: bash, c, coffee, cs, es6, ...
...
- hash-map equality support for bash, c, coffee, cs, es6, java, js,
julia, make, php.
- also, add another test to catch another hash-map in-equality: same
keys, different values
2015-11-16 23:28:58 -06:00
Dov Murik
9af1191f5d
tests: step9: add hash-map equality tests (as soft tests)
2015-11-09 22:24:02 -05:00
Joel Martin
595376919b
Misc cleanup for midwest.io presentation.
2015-11-07 15:31:25 -06:00
Joel Martin
8d78bc26bf
All: fix read/print of \\, and \n
2015-10-30 22:05:49 -05:00
Joel Martin
953772ca00
step5 test: group related test code together.
2015-10-27 15:33:53 -05:00
Javier Fernandez-Ivern
b25e3d29fb
Reduced the mutually recursive function test size
2015-10-27 15:05:40 -05:00
Javier Fernandez-Ivern
5e43076014
Added TCO test for mutually recursive functions
2015-10-27 13:17:56 -05:00
Javier Fernandez-Ivern
6132da853d
Fixed final bug with swap, added tests
2015-10-26 21:49:58 -05:00
Javier Fernandez-Ivern
f39c5a2633
Fixed step 6 tests
2015-10-26 21:31:44 -05:00
Javier Fernandez-Ivern
2eb2cac230
Fixed several self-hosting issues, added atom? tests
2015-10-26 20:27:29 -05:00
Joel Martin
922d4c3b9b
Makefile and tests/step4: Self-host test fixes.
...
- Always use stepA for the RUNSTEP macro in addition to the
STEP_TO_PROG macro.
- Disable the (fib 10) test because this is really too slow for
several self-hosted implementations to complete before a timeout.
2015-10-11 22:10:59 -05:00
Joel Martin
378d1ff68e
tests/step0: fix tests to not confuse runtest.py
...
- the test starts with ';' which is meaningful to runtest.py.
2015-10-11 22:10:06 -05:00
Joel Martin
98af2ae360
runtest.py: add --soft option, refactor test reader.
...
- also, mark later stepA optional as soft.
2015-10-09 09:31:29 -05:00
ekmartin
bb52697591
Update README/Makefile/Dockerfile
2015-09-10 01:47:55 +02:00
Mitsuru Kariya
8c7587af67
Adds GNU awk implementaion
2015-08-26 00:46:31 +09:00
Joel Martin
a9cd654347
Add groovy implementation.
...
I'm away from my main workstation for a week and unfortunately, I only
copied the code but not the branch with full history so this is just
the implementation. However, the history isn't all that interesting
(mostly just the steps one at a time) and I wanted to get this out
there.
2015-05-18 19:54:18 -07:00
def
de69b63902
Use Nim 0.11.0
2015-04-30 17:51:20 +02:00
Joel Martin
cd80c38146
Dockerfile: move Julia & Erlang. Add guile & factor.
2015-04-08 17:31:01 -05:00
Nathan Fiedler
83d3c03370
Update Dockerfile to install Erlang/OTP R17
2015-04-04 09:15:44 -07:00
Joel Martin
520051615c
tests: add test to make sure *host-language* is set
2015-04-03 18:31:14 -05:00
Joel Martin
7e0bb668cf
Julia: self-hosting.
...
- fix meta and swap! functions and add missing tests
- fix eval_ast of hash-maps across all steps
2015-03-31 23:04:45 -05:00
Joel Martin
fc15535c69
Julia: add Dockerfile dependencies.
2015-03-31 23:04:45 -05:00
Stephen Thirlwall
79f8ce3ec5
Add C++ packages to tests/docker/Dockerfile
...
Thought I'd already done this. Must've got lost in all the rebasing...
2015-03-28 12:41:45 +11:00
Joel Martin
8b142f0828
Swift: lang cnt to 28, note XCode, skip in docker.
...
- Update the README to 28 languages.
- Note that Swift impl currently requires XCode/OS X :-(
- Add Swift to skip list in Dockerfile.
2015-03-24 09:29:53 -06:00
Joel Martin
20c05e3561
racket: fix apply/vector
...
- re-order apply/vector tests into optional section.
2015-03-22 14:43:26 -05:00
Stephen Thirlwall
3fcc9c8d01
Step 9 test cases for apply on vectors
2015-03-22 22:45:45 +11:00
Joel Martin
0afb3ee867
Dockerfile: make Nim build one layer.
...
Save couple hundred MB or so.
2015-03-18 14:51:32 -05:00
Joel Martin
b3c30da9fc
runtest: set pty size to fix readline of long lines.
...
- Also, add a long line test to step0 tests.
- Fix java step0 arg parsing.
- Fix postscript long line reads (larger buffer)
- Add mal step0_repl
2015-03-18 13:08:08 -05:00
Joel Martin
6b9eb18e01
tests: move reorder tests to better match guide.
2015-03-18 08:12:19 -05:00
Stephen Thirlwall
ba53efc2b5
Add test that (with-meta X ...) returns an X
2015-03-17 11:14:13 +11:00
Joel Martin
11df60ad8c
Merge pull request #44 from sdt/step9-typo-fix
...
Remove extra ) from step9 test snippet
2015-03-16 09:51:21 -05:00
Stephen Thirlwall
617bdb3552
Remove extra ) from step9 test snippet
...
My reader complains if there is extra input after the top-level
read_form, so this test was inadvertently failing for me.
2015-03-16 16:55:34 +11:00
Stephen Thirlwall
58002e1bf3
Step 9 apply tests test user fns as well as core
...
I had a bug in my apply core function. It worked for core functions, but
not for user-defined functions.
This bug escaped direct testing, but caused problems in self-host
testing.
Here's a couple of simple test cases that catch those errors.
2015-03-16 16:49:28 +11:00
Joel Martin
4e7296f90a
guide clarifications, but order for step5 tests.
2015-03-14 17:34:49 -05:00
Joel Martin
dbac60df00
All: move metadata, atoms, readline, conj to stepA.
...
- Move some of the more optional things (conj, readline) to stepA. All
implementations pass step9 tests now.
- Move metadata and atoms to stepA.
- Update step9 and stepA diagrams.
2015-03-14 17:17:14 -05:00
Gavin Lewis
6f58a92605
Add outer tests to step3_env.mal
2015-03-14 08:53:20 -07:00
Joel Martin
86da00cc55
tests: add multilevel assoc test.
2015-03-12 21:49:58 -05:00
Joel Martin
4a55f10c42
docker: build script executable. Skip matlab automatically.
2015-03-12 17:41:55 -05:00
Joel Martin
c9de2e82ed
Tests: add testing Dockerfile. Impl fixes.
...
- tests/docker/Dockerfile: specifies full docker image containing all
tools/languages (except matlab).
- tests/docker-build.sh: build above image.
- tests/docker-run.sh: launch above image.
Example: ./tests/docker-run.sh make test^js^step2
- Various fixes across multiple languages:
- Unicode fixes for bash and R on Ubuntu Utopic
- readline history fixes for when ~/.mal-history is not available
or readable/writable. No fatal errors.
- fixes to work with perl 5.20 (and still perl 5.18)
2015-03-11 22:22:35 -05:00
Joel Martin
31ad43483a
tests: add step0_repl.mal test missed earlier.
2015-03-11 21:57:12 -05:00
Nacho Martín
a917237630
Removed extra parenthesis in tests for step5
...
Hi there, just fixing an extra parenthesis.
PS: This thing is very addictive :)
2015-03-06 22:43:59 +01:00
Joel Martin
e27782ea09
tests: fix long line error when self-hosted.
2015-03-06 07:03:41 -06:00
Joel Martin
758933f215
tests: add macro-in-macro test.
...
E.g.: (or (or false 4)) -> 4
2015-03-05 11:27:22 -06:00
Joel Martin
90ab31710e
JS: fix https://github.com/kanaka/mal/issues/9
2015-02-28 11:18:18 -06:00
Joel Martin
699f0ad23a
Add long running perf test.
2015-02-28 10:38:17 -06:00
Joel Martin
d90c784472
miniMAL: stepA. Comments. Add impl Makefile for stats.
2015-02-16 00:01:10 -06:00
Joel Martin
9d8f029932
miniMAL: step6
2015-02-15 20:11:11 -06:00
Chouser
db11c74027
Add tests for problems uncovered during forth self-hosted tests
2015-02-21 13:16:40 -05:00
Chouser
f6a4ddf758
test step1: Add input for existing output case
2015-02-21 13:16:34 -05:00
Joel Martin
ffd31966ec
guide.md: step9,A stubs. TODO. More vector tests.
2015-01-30 13:21:10 -06:00
Joel Martin
9d42904e47
Lua: all steps and self-hosting.
...
Also some misc docs/TODO updates.
2015-01-08 23:25:40 -06:00
Joel Martin
f4c8a091aa
Make: refactor number type. Support large numbers.
...
- Can support numbers up to 100 decimal digits in length.
- Still no support for negative numbers or floating point.
- Change time-secs to time-ms and remove conditional in perf.mal
2015-01-09 16:16:56 -06:00
Joel Martin
f522319598
Racket: add steps0-A. Self-hosting.
...
- Some additioanl tests.
- Split step9 tests into optional but self-hosting requirements
(metadata on functions) and other optional (conj, metadata on
collections).
2015-01-09 16:16:55 -06:00
Joel Martin
c150ec41f4
Haskell: Add steps9-A, metadata, and atoms.
...
Some refactoring of Core.hs to make better use of pattern matching.
Only remaining thing is exception handling (generic try/throw).
2015-01-09 16:16:53 -06:00
Joel Martin
a816262a05
Scala: refactor collections with metadata.
...
Convert numeric to Long. Add time-ms.
Add Makefile for stats targets.
2015-01-09 16:16:51 -06:00
Joel Martin
b8ee29b22f
All: add keywords.
...
Also, fix nth and count to match cloure.
2015-01-09 16:16:50 -06:00
Joel Martin
891c3f3b47
CoffeeScript: add all steps. Self-hosting.
2015-01-09 16:16:45 -06:00
Joel Martin
f947d503f7
R: atom support, fixes for self-hosting.
2015-01-09 16:16:45 -06:00
Joel Martin
8128c69a1d
R: add step8_macros and step9_try.
2015-01-09 16:16:44 -06:00
Joel Martin
c30efef469
R: add step6_file and step7_quote
...
Change symbols to be special class.
2015-01-09 16:16:43 -06:00
Joel Martin
b554fd4ed0
rust: fix quote/quasiquote of vectors.
2015-01-06 21:59:01 -06:00
Joel Martin
77b2da6cf3
rust: add conj, stepA. Self-hosting!
2015-01-06 21:59:01 -06:00
Joel Martin
06fef9b518
rust: add atom support. Fix vector params.
2015-01-06 21:59:00 -06:00
Joel Martin
b12d98e4e3
rust: core hash-map functions.
2015-01-06 21:59:00 -06:00
Joel Martin
a77e2b31de
rust: add step8_macros
2015-01-06 21:58:59 -06:00
Joel Martin
4ee7c0f297
rust: add step7_quote. Refactor with type constructors.
2015-01-06 21:58:58 -06:00
Joel Martin
abdd56ebc0
Rust: step0_repl and step1_read_print
2015-01-06 21:58:35 -06:00
Joel Martin
01c9731649
All: swap step9,A. Fixes for bash, C, perl.
...
step9_interop -> stepA_interop
stepA_more -> step9_try
C: fix glib headers
bash: behavior change of declare -A and pattern replacement.
perl: squelch new 5.18 warnings related to switch/given statement.
Also, include some in-progress interop related files.
2015-01-06 21:57:24 -06:00
Joel Martin
1771ab50b8
go: update README. Backport Func usage.
2015-01-06 21:57:02 -06:00
Joel Martin
ad95503cea
go: add step6_file
2014-10-06 22:27:28 -05:00
Joel Martin
70ea599b6e
go: step1_read_print print working.
2014-10-04 21:49:26 -05:00
Joel Martin
cc021efe10
Add step5/9 tests for impls that support it.
...
- Also remove broken make/tests/*.mk tests. Not used any more.
2014-04-27 17:58:48 -05:00
Joel Martin
6301e0b637
All: TCO let* and quasiquote.
2014-04-23 21:59:50 -05:00
Joel Martin
89bd4de1e2
Perl: add vector, hash-map, metadata, atom support. TCO let*
...
- Changes all collections to be one level of inderection where the top
level is always a hash containing 'meta' and 'val'.
2014-04-23 21:46:57 -05:00
Joel Martin
16354bb461
Perl: add stepA_more.
2014-04-22 23:50:43 -05:00
Joel Martin
a5a6605877
Perl: add step4_if_fn_do
...
- Move string/printing tests to the bottom of tests/step4_if_fn_do
2014-04-20 23:45:58 -05:00
Joel Martin
9af8aee63a
Tests: move optional features to end and print header.
2014-04-19 15:27:19 -05:00
Joel Martin
db4c329aff
All: perf test, Makefile refactor, add *host-language*
...
Other:
- bash,make,postscript: quasiquote of vectors
- Fix Java slurp
- add time function to core.mal
- switches on *host-language* for make time-secs vs time-ms
- Ignore */experiments directories
2014-04-17 21:49:07 -05:00
Joel Martin
8cb5cda46c
All: move some fns to core. Major cleanup.
...
- Don't import/require core until step4.
- Define cond/or macros from step8
2014-04-16 23:57:50 -05:00
Joel Martin
a05f7822b1
Python: metadata on builtin funcs. Support python3.
2014-04-16 22:42:17 -05:00
Joel Martin
0027e8fed4
PS: fix function closures. Self-hosted up to step7.
2014-04-14 22:46:54 -05:00
Joel Martin
d85fc03775
Ruby: add step8_macros
2014-04-10 23:27:50 -05:00
Joel Martin
a34b020065
Fix metadata on functions.
...
- Don't use metadata to store ast, env, params data.
- In Clojure, store metadata on the :meta key of the real metadata.
This also allows using any datatype as metadata.
2014-04-09 23:58:27 -05:00
Joel Martin
17ae845ec1
C#: add metadata and atoms.
2014-04-09 21:57:50 -05:00
Joel Martin
b079f51028
C,PHP,Python: stepA fixup. All tests/impls pass!
2014-04-06 16:24:27 -05:00
Joel Martin
5ce65382cf
PS: add vector, hash-map, atoms and metadata.
...
As part of this lists switch from being a postscript array to being
a mal boxed type (dictionary with type in the /_maltype_ key).
2014-04-06 15:23:40 -05:00
Joel Martin
9528bb1451
All: pass stepA tests, in particular with correct conj behavior.
2014-04-01 22:50:55 -05:00
Joel Martin
aef93ea396
PS: error handling, throw, print excpetions without dying.
2014-03-29 17:35:53 -05:00
Joel Martin
3169070063
Current state of mal for Clojure West lighting talk.
2014-03-24 16:32:24 -05:00