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

35 Commits

Author SHA1 Message Date
Joel Martin
c4269f9bf5 Convert to loccount based stats calculation. 2019-03-20 23:34:21 -05: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
Joel Martin
5f80c83f9d lua, nasm, perl, rexx, vimscript: fix errors. 2018-11-30 14:57:46 -06:00
Dov Murik
7cecb87a7d go, rexx, vimscript, yorick: Add number?, fn?, macro? 2017-10-09 20:52:46 +00:00
Dov Murik
e73fcefe8f Fix unescaping in rexx, skew, vimscript 2017-09-28 07:38:32 -05:00
Dov Murik
4fbbe5719c vimscript: Use map and lambda in EvalAst 2016-10-26 08:22:11 +00:00
Dov Murik
b628a22074 vimscript: Remove useless calls to ObjQ 2016-10-26 08:22:11 +00:00
Dov Murik
b0b1e16947 vimscript: Remove calls to ObjType 2016-10-26 08:22:11 +00:00
Dov Murik
82641edb65 vimscript: Remove calls to ObjValue 2016-10-26 08:22:05 +00:00
Dov Murik
43d175390a vimscript: Simplify *ARGV* setting using map and lambda 2016-10-25 22:43:28 +00:00
Dov Murik
549763e9f6 vimscript: Update Dockerfile to install Vim 8.0 2016-10-25 22:33:07 +00:00
Dov Murik
aa62cbda71 vimscript: Use Vim 8.0 lambdas to reduce boilerplate code 2016-10-25 22:33:02 +00:00
Dov Murik
816f0e2fc7 vimscript: Increase the unixtime base to make sure time-ms fits in a *positive* integer 2016-10-25 22:32:16 +00:00
Dov Murik
ab1c5d944c vimscript: Fix misinformation in comment 2016-10-25 22:32:16 +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
Dov Murik
fddf570fd1 vimscript: implement time-ms in a C function
Instead of shelling out to `date`, implement time-ms as a C function in
the vimextras.c library (which was already used for readline()).

Since Vim numbers can only hold numbers up to 32-bit, we return the
number of milliseconds since 2000 and not since 1970.
2016-05-09 00:18:04 -04:00
Dov Murik
d831996cfb vimscript: rename libvimreadline -> libvimextras 2016-05-09 00:12:32 -04: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
8f27005f97 vimscript: Fix exception on literal empty list
Issue #190
2016-03-27 22:17:01 -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
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
Dov Murik
622c73eeeb vimscript: add seq and string?
Issue #166
2016-02-12 10:16:05 -05:00
Dov Murik
d46927d0c8 elixir, erlang, lua, php, r, vimscript: Fix (first nil) and (rest nil) 2016-02-03 21:23:47 -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
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
Dov Murik
6c94cd3e40 d, nim, ps, tcl, vimscript: fix macro result evaluation
Issue #142
2016-01-22 13:48:07 -05:00
Joel Martin
5f66fc069e vimscript: hack for make perf to work in docker 2015-12-17 08:12:10 -06:00
Joel Martin
8d78bc26bf All: fix read/print of \\, and \n 2015-10-30 22:05:49 -05:00
Joel Martin
dceeb410a3 vimscript: fix atom? to return boolean not integer. 2015-10-27 12:03:40 -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
06c3c3388c vimscript: add time-ms for perf/timing.
TODO: unfortunately, this relies on external data command (probably
UNIX only). However, this won't break the implementation on other
platforms, it just means the time-ms command won't work there.
2015-10-25 16:11:27 -05:00
Joel Martin
c9cf76dcb7 vimscript: fix load of readline lib. Update Dockerfile. 2015-10-20 15:34:24 -05:00
Dov Murik
50a964ce14 Vimscript implementation 2015-10-20 15:04:04 -04:00