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

46 Commits

Author SHA1 Message Date
Joel Martin
e10ceff503 Update JS impls: use ffi-napi and Ubuntu 18.04 2018-11-28 17:12:17 -06:00
Joel Martin
ba46e3b027 [clojure] update lumo/image to fix module mismatch. 2018-04-02 11:01:24 -05:00
Joel Martin
f5bb2941f6 coffee, clojure, cs: add number?, fn?, and macro? 2017-10-12 15:20:12 -07:00
Joel Martin
458852b23a Clojure, Haxe: all target based on MODE. 2017-09-11 23:28:00 -05:00
Joel Martin
2d76e8776c Generic <impl>_MODE setting. Add travis modes.
For implementations that support different compile/run modes, the
convention is not <impl_name>_MODE=<mode>. This is passed through to
make/docker commands. Fix Makefiles and run scripts to listen to the
respective *_MODE variables.

Enable travis builds/tests for 4 Haxe modes and 2 python modes.
2017-09-11 17:54:26 -05:00
Joel Martin
259b5c9420 [clojure] fix uberjar file name.
The project.clj sets the uberjar path so the build needs to copy from
that location.
2017-07-27 00:19:00 -05:00
Joel Martin
62fc786e1b [clojure] Fixes to support lumo 1.6.0.
- Pass down the CLJ_MODE value for DOCKERIZED builds in addition to
  run/tests.
- Correct deps so that node_modules is installed for CLJ_MODE=cljs for
  all steps.
- Lumo 1.6.0 is currently not able to install globally as root
  (https://github.com/anmonteiro/lumo/issues/206) so add the local
  node_modules/.bin to the PATH in the run script.
- Reader conditionals needed for clojure.reader/cljs.reader until this
  is fixed: https://github.com/anmonteiro/lumo/issues/209
2017-07-27 00:04:35 -05:00
Joel Martin
576d01e1b2 Clojure: node_modules or lein deps but not both. 2017-02-11 12:41:06 -06:00
Joel Martin
2b933f429c Clojure: support ClojureScript using CLJ_MODE=cljs
- Requires conditional in stepA tests.
2017-02-11 00:09:02 -06: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
938e6903d2 clojure: Fix exception on literal empty list
Issue #190
2016-03-30 10:28:49 -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
ece28ddbd4 Clojure: make indent consistent across steps. 2016-03-14 22:45:46 -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
b6dc3e37aa awk-es6, Makefile: dist ruiles 2016-02-24 00:33:20 -06:00
Joel Martin
4c14a8b835 bash, c, clojure, coffee, es6, js: add seq/string?
Issue #166.
2016-02-11 09:18:46 -06:00
Dov Murik
cb737f83da clojure: Pass empty extra arguments as empty list 2016-01-29 21:37:32 -05:00
Joel Martin
44aef1f401 clojure, groovy, rpython, scala: fix macro result evaluation
Related to issue #142.

- also, fix groovy build dependency bug
2016-01-26 14:15:16 -06: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
Joel Martin
7636474971 Clojure: No comma hash-map printing. Fix str nil printing.
- This is again related to https://github.com/kanaka/mal/pull/134
2015-12-18 13:27:27 -06:00
Joel Martin
aa716df67c Clojure: *print-readably* for str. Use 1.8.0-RC4
- This is related to https://github.com/kanaka/mal/pull/134
- The str function now force *print-readably* to false. Otherwise str
  only prints the first level with non-readable printing, but every
  embedded structure after the first will have readable printing. The
  mal way is that str is non-readable all the way down.
- One remaining bug prior to Clojure 1.8.0 was improperly printing
  empty lists as the object name. This was fixed in
  828d82fb5b
  so change the project.clj to require Clojure 1.8.0-RC4 so that all
  string tests pass.
2015-12-17 16:14:43 -06: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
e8933402bd Travis: add Clojure Dockerfile and tests. 2015-10-05 22:18:57 -05:00
Joel Martin
f364114340 mal: add back conj definition. 2015-08-07 07:34:09 -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
10b07148ba All step0: add test, fix bugs, remove step0 eval. 2015-03-07 09:04:07 -06:00
Joel Martin
992543a722 Various: stepA test fixes/ignores. 2015-03-02 13:46:30 -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
47930f7463 Clojure: only load readline history once. 2015-01-09 16:16:56 -06: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
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
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
86b689f3d7 All: *ARGV* and *host-language*. Misc syncing/fixes. 2014-04-19 13:04:09 -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
712af9efbe Add stats-lisp target (only env, core, stepA) 2014-04-10 19:27:42 -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
ea81a8087b All: split types into types, env, printer, core.
- types: low-level mapping to the implementation language.
- core: functions on types that are exposed directly to mal.
- printer: implementation called by pr-str, str, prn, println.
- env: the environment implementation

- Also, unindent all TCO while loops so that the diff of step4 and
  step5 are minimized.
2014-04-02 22:23:37 -05:00
Joel Martin
1617910ad3 All: remove slurp-do, use str around slurp instead. 2014-04-01 23:12:33 -05:00
Joel Martin
dc7938d8e6 Clojure, Java, PHP: remove hardcoded readline history path. 2014-03-29 15:00:07 -05:00
Joel Martin
3169070063 Current state of mal for Clojure West lighting talk. 2014-03-24 16:32:24 -05:00