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

37 Commits

Author SHA1 Message Date
Stephen Thirlwall
d53749f28e cpp: add number?, fn? and macro? 2017-10-10 10:02:09 +11:00
Stephen Thirlwall
3eb7df5a61 cpp makefile uses latest homebrew readline version
/usr/local/opt/$package is a symlink to /usr/local/Cellar/$package/$latest_version
2017-10-10 09:45:31 +11:00
Sebastian Rasmussen
0198b7a230 Fix a number of typos in documentation/comments. 2017-09-15 20:00:15 +02: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
f8985c0cb0 Merge pull request #212 from dubek/argv-testing
tests: Test *ARGV* is set correctly in step 6
2016-05-17 12:08:38 -05:00
Dov Murik
10ba42b883 cpp: Make integer values 64-bit so they can holds time-ms values 2016-05-11 15:52:55 -04:00
Dov Murik
2f8f48e12c cpp: When executing a mal script, don't print the final return value 2016-05-11 15:50:19 -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
b6dc3e37aa awk-es6, Makefile: dist ruiles 2016-02-24 00:33:20 -06:00
Stephen Thirlwall
b43cf8d6c9 C++ string? & seq implementations 2016-02-12 10:43:15 +11:00
Dov Murik
866042440b cpp, haxe, rust: Fix (first nil) and (rest nil) 2016-02-03 21:23:48 -05:00
Dov Murik
29ba1fb6c0 Add gensym and clean or macro to stepA of 19 implementations (part 3)
* awk
* cpp
* cs
* es6
* factor
* fsharp
* groovy
* haskell
* java
* julia
* kotlin
* matlab
* php
* r
* rpython
* rust
* scala
* swift
* vb
2016-01-25 16:30:54 -05:00
Stephen Thirlwall
494c160856 Don't pass an env to apply
Due to some initial confusion about which env to pass to the eval
builtin, I'd been needlessly passing an env to apply all along.

No need.
2015-12-15 11:22:25 +11:00
Stephen Thirlwall
19a6c2061e Implement native swap! function 2015-12-14 17:40:55 +11: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
ecdbada174 Travis: add C++(cpp), factor and julia. 2015-10-06 18:28:46 -05:00
Joel Martin
5c99a323e9 C++: add Makefile stats targets. 2015-03-28 11:53:30 -05:00
Stephen Thirlwall
0997015d97 Split ASSERT into ASSERT and MAL_CHECK/MAL_FAIL
* ASSERT is to check for internal errors
* MAL_CHECK / MAL_FAIL is to check mal code errors
2015-03-28 22:54:26 +11:00
Stephen Thirlwall
208abaae43 Fix bugs introduced in reader hash-map/{} change
Only apparent in double-self-hosting mode.

eg. ../cpp/stepA_mal ./stepA_mal.mal ./stepA_mal.mal

Throws an error that MACROEXPAND is not defined.

TODO: figure out why modifying he hash in-place doesn't work.
2015-03-28 16:31:06 +11:00
Stephen Thirlwall
50263ccae3 Fix *host-language* 2015-03-28 15:41:19 +11:00
Stephen Thirlwall
86eae5ec38 Revert { X } -> ( hash-map X ) reader macro
The macro breaks the step 2 tests.
2015-03-28 15:20:04 +11:00
Stephen Thirlwall
f01c26838d Replace table iterations with new for-loop syntax
Didn't even know this existed!
2015-03-28 12:41:54 +11:00
Stephen Thirlwall
778f6278b7 Use g++-4.9 instead of clang-3.5 on Linux
Using the linker fix from @kanaka
2015-03-28 12:17:25 +11:00
Stephen Thirlwall
fc9009e076 Fix Reader issues on Linux
* use regex_search rather than regex_iterator

* use multiple individual whitespace and token regexes,
  rather than one giant regex

This appears to work on 14.10 and 15.04
2015-03-28 11:47:00 +11:00
Stephen Thirlwall
e78c38d020 Add README.md 2015-03-27 20:44:43 +11:00
Stephen Thirlwall
cb25284585 c++11: step A 2015-03-27 20:44:43 +11:00
Stephen Thirlwall
2f61492a1e c++11: step 9 2015-03-27 20:44:43 +11:00
Stephen Thirlwall
3a8e11b85b c++11: step 8 2015-03-27 20:44:43 +11:00
Stephen Thirlwall
5f8f337a42 c++11: step 7 2015-03-27 20:44:43 +11:00
Stephen Thirlwall
ad50bab2e5 c++11: step 6 2015-03-27 20:44:42 +11:00
Stephen Thirlwall
ff15fb140a c++11: step 5 2015-03-27 20:44:42 +11:00
Stephen Thirlwall
ad0fc149de c++11: step 4 2015-03-27 20:44:42 +11:00
Stephen Thirlwall
dc9b184b66 c++11: step 3 2015-03-27 20:44:42 +11:00
Stephen Thirlwall
179e8eafe4 c++11: step 2
Note that the optional tests for step 1 now fail because I no longer create a
hash directly in the reader, rather handle this as a reader macro:

    { LIST } -> ( hash-map LIST )

This way, once the constructor has built the hash-map, the hash is now evaluated,
and its evaluation procedure is a no-op.

I'd like to do the same with vectors, but this isn't so easy, as we use vectors
as parameter lists in fn* later on.

ie. we'd have this situation, which is incorrect (and I don't see an obvious workaround)

    (fn* [params] body) -> (fn* (vector params) body)
2015-03-27 20:44:42 +11:00
Stephen Thirlwall
8bd091e3ad c++11: step 1 2015-03-27 20:44:42 +11:00
Stephen Thirlwall
9ddaa0b91b c++11: step 0 2015-03-27 20:44:42 +11:00