1
1
mirror of https://github.com/kanaka/mal.git synced 2024-11-11 00:52:44 +03:00
Commit Graph

54 Commits

Author SHA1 Message Date
Dov Murik
afc477fbb8 forth: Support catchless try* 2019-02-21 11:24:13 +00:00
Joel Martin
18f0ec2150 Runtest should fail on bad test data. Fix interop tests.
The interop tests weren't updated when regex support was added to
runtest for matching output data. This was causing a bunch of
implementations to silently fail while testing interop. Fix runtest.py
to fail on bad test data and fix 21 implementations with the old style
output matches.
2019-01-28 10:27:41 -06:00
Joel Martin & Chouser
9e2a4ab0f9 forth: fix errors/reporting in steps 1-8. 2018-11-30 14:57:45 -06:00
Dov Murik
c91c8de968 forth, skew, tcl: Add number?, fn?, macro? 2017-10-14 12:21:33 +00: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
Joel Martin
efa2daef57 Fix empty list eval in step2 for most languages.
I think the only remaining ones are ada, elisp, factor, and rust.
2016-04-02 18:40:49 -05:00
Dov Murik
4e258d3aec forth: Fix exception on literal empty list
Issue #190
2016-03-30 14:28:50 -04: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
7412ebc64b haxe, forth: fix negative numbers.
Issue #178
2016-02-26 21:54:07 -06:00
Joel Martin
9044b1fdb1 Merge branch 'master' into issue_166_string_ops 2016-02-24 12:00:08 -06:00
Joel Martin
8e2d4a4ccb Dist/packaging for most impls. erlang, racket *ARGV* fixes.
Also in this commit:
- fix *ARGV* setup in erlang and racket.
- print startup message in fsharp

Dist/packaging support for most implementations and also generate
a */mal standalone app for most languages. The following
implementations still have ability to generate a single */mal
standalone application:
    - guile
    - julia
    - matlab (mkoctfile doesn't actually package up source files)
    - swift
    - vb (mkbundle error)

Also, the following are mostly packaged into a single file but need
some module dependencies
    - coffee: requires node_modules/ffi
    - es6: requires node_modules/ffi
    - js: requires node_modules/ffi
    - lua: module 'readline' not found
    - miniMAL: cannot find module '/mal/node_readline.js'
    - r: needs lib directory
2016-02-24 00:45:40 -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
Joel Martin
82e2b26b36 forth: add seq and string?
Issue #166

With assistance from chouser (thanks!).
2016-02-16 13:56:51 -06:00
Dov Murik
fe364a976d forth: Pass empty extra arguments as empty list 2016-02-01 00:12:00 -05:00
Dov Murik
2aff8547f7 forth: Fix hash-map equality
Issue #116
2016-01-26 10:43:50 -05:00
Dov Murik
166da203fa Add gensym and clean or macro to stepA of 13 implementations (part 2)
* bash
* c
* clojure
* coffee
* crystal
* d
* elixir
* erlang
* forth
* lua
* make
* nim
* perl
2016-01-23 00:31:55 -05:00
Dov Murik
7148ddb621 forth: implement atom swap! in step6 (and later)
The `swap!` implementation calls invoke and eval, and therefore require
backporting the implementation of invoke for MalUserFn and MalNativeFn
from step9 all the way back to step6.
2016-01-06 14:33:56 +02:00
Dov Murik
6703e76ad8 forth: don't print commas in hash-maps 2015-12-17 22:01:32 +02:00
Joel Martin
f15b4021db All: show comments with stats target.
- Put guile into correct alphabetical order.
2015-10-26 22:33:49 -05:00
Joel Martin
0eb9fcb683 Travis: add ocaml, forth and miniMAL. 2015-10-06 13:28:11 -05:00
Joel Martin
90f618cbe7 All: rename stepA_interop to stepA_mal
Also, add missed postscript interop tests.
2015-02-28 11:09:54 -06:00
Joel Martin
bf8237d5ee forth: add Makefile for stats. 2015-02-25 22:24:34 -06:00
Chouser
a631063f3f forth: Add map-hint to symbols for better perf 2015-02-23 22:22:04 -05:00
Chouser
3a17cb9682 forth: Clean up symbol eval for better perf 2015-02-23 22:22:04 -05:00
Chouser
975126be58 forth: Add call-site caching to boost perf 2015-02-23 22:22:04 -05:00
Chouser
e46223c2b7 forth: Add . interop special operator and tests 2015-02-23 22:22:01 -05:00
Chouser
b6607ac70f forth: Fix bug in (get nil ...) 2015-02-21 13:22:44 -05:00
Chouser
b254151c2a forth: Fix bug in extend-protocol array insertion 2015-02-21 13:22:44 -05:00
Chouser
45c1894b96 forth: Back-propogate fixes from stepA through step1 2015-02-21 13:22:44 -05:00
Chouser
6512bd8000 forth: Self-hosted mal passes all tests 2015-02-21 13:22:44 -05:00
Chouser
224e09ed42 forth: Finish step 9 2015-02-21 13:22:44 -05:00
Chouser
580c4eef9d forth: Add step 9, just try*/throw
- Moved some stuff out of printer into str,
  to support throwing strings in types.fs
- Fixed an apparently completely broken 'nth'
- Still failing 120 step9 tests
2015-02-21 13:22:44 -05:00
Chouser
e82947d00f forth: Add step 8 2015-02-21 13:22:44 -05:00
Chouser
794bfca136 forth: Add step 7 2015-02-21 13:22:44 -05:00
Chouser
bf6a574e00 forth: Add step 6, clean up comment parsing 2015-02-21 13:22:44 -05:00
Chouser
cd21ff0d3c forth: Fix critical string-resizing bug 2015-02-21 13:22:44 -05:00
Chouser
d44f31c221 forth: Add step 5 2015-02-21 13:22:44 -05:00
Chouser
785786c603 forth: Finish step 4 2015-02-21 13:22:44 -05:00
Chouser
c4403c179e forth: Add support for & var-args 2015-02-21 13:22:44 -05:00
Chouser
136ce7c9af forth: Split types for user fns vs native fns 2015-02-21 13:22:44 -05:00
Chouser
60801ed68d forth: Add step 4, but not varargs 2015-02-21 13:22:44 -05:00
Chouser
79feb89f9c forth: Add defspecial for Mal special ops 2015-02-21 13:22:44 -05:00
Chouser
e6106d4543 forth: Get rid of invoke+
Fold 'invoke+' into 'invoke'. Allows (:k m nf) to evaluate nf lazily!
2015-02-21 13:22:44 -05:00
Chouser
c05d35e8dd forth: Get rid of car/cdr style lists
Rename MalArray to MalList
2015-02-21 13:22:44 -05:00
Chouser
69972a8399 forth: Add step 3 2015-02-21 13:22:44 -05:00
Chouser
9da223a35a forth: Add step 2 2015-02-21 13:22:44 -05:00
Chouser
2e78e94eb8 forth: Finished step 1 2015-02-21 13:22:44 -05:00
Chouser
168fb5dc56 forth: Add step 1, but not maps 2015-02-21 13:22:44 -05:00
Chouser
50e417ffe3 forth: Add string printing 2015-02-21 13:22:43 -05:00
Chouser
59038a10f0 forth: Added lists, ints, symbols for step 1 2015-02-21 13:22:43 -05:00