1
1
mirror of https://github.com/kanaka/mal.git synced 2024-09-20 10:07:45 +03:00
Commit Graph

45 Commits

Author SHA1 Message Date
Joel Martin
b137ff4f44 make, swift3: fix parsing empty literal sequences.
Specifically the problem is that parsing sequence literals breaks if
there are only empty spaces between the opening and closing character.

This is to address issues found in: https://github.com/kanaka/mal/pull/372
2019-05-13 11:59:46 -05:00
Nicolas Boulenguez
14ab099cea gensym: hide the counter in an environment, define inc in stepA.
tests: check that `inc` is present in stepA.
nasm: split lines in mal_startup_string for readability.
objpascal: remove obsolete .orig file
swift: remove an unneeded line in template
swift4: remove duplicate definition of `or` macro
2019-05-11 16:37:26 +02:00
Joel Martin
c4269f9bf5 Convert to loccount based stats calculation. 2019-03-20 23:34:21 -05: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
ae6e2220b3 guile, hy, java, make, matlab, miniMAL: fix errors 2018-11-30 14:57:46 -06:00
Joel Martin
b156d1f145 make, miniMAL: add number?, fn? and macro? 2017-10-24 09:31:35 -05:00
Joel Martin
14a5c0d8bc make: move macro attr to fn rather than in env. 2017-10-24 09:31:35 -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
7730ef754b make: Fix empty/nil value for literal empty list
Issue #190
2016-04-01 16:49:55 -04:00
Joel Martin
4c0073a3e4 make: add negative number support.
Issue #178
2016-02-26 08:46:43 -08: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
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
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
028012e9ea make: fix comparison of empty hash-maps.
Again, combine checks onto a single line to prevent newline/whitespace
breakage in the check.
2015-11-18 22:58:47 -06:00
Joel Martin
0cc625237e make: fix list comparison
Multiline check introduces bug in certain sequential comparisons.
So make it one line :-(
2015-11-18 21:54:09 -06: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
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
edda92c85b make: fix sapply to address self-host test failures.
sapply has a strip in the wrong position and was allowing a space at
the beginning of the arugment to sneak in. This was breaking most
sequence functions like (empty? (list 7 8)), (count [7 8]), (first [7
8]), etc.
2015-10-12 18:58:33 -05:00
Joel Martin
e152d48827 travis: add bash, c, make to test matrix. 2015-10-05 18:55:00 -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
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
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
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
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
92474a1bef Java, Make: return nil from core readline function on EOF. 2014-05-10 15:47:05 -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
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
7e9a2883fe All: fix get. All pass stepA tests. 2014-04-15 01:24:43 -05:00
Joel Martin
712af9efbe Add stats-lisp target (only env, core, stepA) 2014-04-10 19:27:42 -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
9528bb1451 All: pass stepA tests, in particular with correct conj behavior. 2014-04-01 22:50:55 -05:00
Joel Martin
3169070063 Current state of mal for Clojure West lighting talk. 2014-03-24 16:32:24 -05:00