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

52 Commits

Author SHA1 Message Date
Dov Murik
2bce8a6901 ruby: Fix exception when handling catchless try* 2019-02-19 08:37:28 +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
4aa0ebdf47 Error on unterminated strings.
Add a step1 test to make sure that implementations are properly
throwing an error on unclosed strings.

Fix 47 implementations and update the guide to note the correct
behavior.
2019-01-25 16:16:06 -06:00
Joel Martin
dd7a4f55f3 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*.
2018-12-12 14:18:26 -06:00
Dov Murik
2e13db6324 ruby: Add number?, fn?, macro? 2017-10-09 20:25:08 +00:00
Joel Martin
ea02f46445 Fix unescaping in bash, basic, es6, js, ruby, rust. 2017-09-28 07:40:47 -05:00
Joel Martin
e17aef048e Misc fixes and TODO updates.
- Truncate ruby and python stacktraces since they can get very long
  in certain cases causing problems.
- Fix Clojure West example with proper escaping.
2017-09-15 00:00:23 -05: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
f53183a389 ruby: Fix exception on literal empty list
Issue #190
2016-03-27 22:16:59 -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
Dov Murik
05ad2bf6cd ruby: concat should not modify its argument 2016-03-09 14:23:13 -05: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
a968e287c1 make, ps, ruby: add seq/string?
Issue #166
2016-02-11 13:57:49 -06:00
Dov Murik
8d1e25ac24 coffee, es6, js, perl, python, ruby: Fix (first nil) and (rest nil) 2016-02-03 21:23:46 -05:00
Dov Murik
79859c62d5 ruby: Pass function arguments as a mal list 2016-01-29 21:37:31 -05:00
Joel Martin
411abc90f4 Merge pull request #146 from dubek/fix-macro-eval
Fix macro eval in 24 impls
2016-01-26 14:16:55 -06:00
Dov Murik
92c7576ceb make, php, python, ruby: fix macro result evaluation
Issue #142
2016-01-25 21:30:46 -05:00
Dov Murik
48572759b7 Add gensym and clean or macro to stepA of 12 implementations (part 1)
* go
* guile
* js
* mal
* miniMAL
* ocaml
* ps
* python
* racket
* ruby
* tcl
* vimscript
2016-01-23 00:31:51 -05:00
Joel Martin
8d78bc26bf All: fix read/print of \\, and \n 2015-10-30 22:05:49 -05: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
6479984c9b Travis: add C, C#, Go, Perl, PHP, and Ruby. 2015-10-06 00:56:02 -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
f2a758cb13 Merge branch 'ruby1.9' of https://github.com/elektronaut/mal into elektronaut-ruby1.9 2015-02-28 11:30:45 -06: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
2ab1e5845c Multiple: interop enhancements. 2015-02-28 10:35:04 -06:00
Inge Jørgensen
107d969497 Ruby: Updated for Ruby 1.9+ 2015-02-28 00:36:27 +01:00
Joel Martin
96f1845afd Misc cleanup. Move *host-language* to stepA. 2015-01-09 16:16:55 -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
fb5c165838 go: add time-ms. Ruby: fix step9,A content. 2015-01-06 21:59:01 -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
6301e0b637 All: TCO let* and quasiquote. 2014-04-23 21:59:50 -05:00
Joel Martin
86b689f3d7 All: *ARGV* and *host-language*. Misc syncing/fixes. 2014-04-19 13:04:09 -05:00
Joel Martin
718887c301 Ruby,Python,C#: readline history fixes. Ruby include path. 2014-04-17 22:23:07 -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
43c18567fa Ruby: remove debug. Update TODO. 2014-04-15 21:04:43 -05:00
Joel Martin
7e9a2883fe All: fix get. All pass stepA tests. 2014-04-15 01:24:43 -05:00
Joel Martin
a2849f89e7 Mal space cleanup. Ruby Makefile. TODO updates. 2014-04-14 23:04:48 -05:00
Joel Martin
3e8a088f48 Ruby: fixes to enable self-hosting.
Also, other cleanup and sync between steps.
2014-04-13 15:27:34 -05:00
Joel Martin
3a56f91a12 Ruby: add stepA_more and rest of core functions. 2014-04-13 14:37:56 -05:00
Joel Martin
393c1c447f Ruby: add step9_interop
- Just (rb* "str") which evals the string and returns the result
2014-04-10 23:31:04 -05:00
Joel Martin
d85fc03775 Ruby: add step8_macros 2014-04-10 23:27:50 -05:00
Joel Martin
01e254893f Ruby: add step7_quote 2014-04-10 23:20:11 -05:00
Joel Martin
46dbc0d87a Ruby: add step6_file 2014-04-10 23:08:42 -05:00
Joel Martin
7d2dad89d2 Ruby: add step5_tco
Function type in types extends Proc.
2014-04-10 22:52:26 -05:00
Joel Martin
8bf53bec72 Ruby: step4_if_fn_do with core functions. 2014-04-10 22:24:58 -05:00
Joel Martin
b5f469de18 Ruby: add step3 2014-04-10 21:12:17 -05:00