Javier Fernandez-Ivern [Mon, 26 Oct 2015 04:02:43 +0000 (23:02 -0500)]
Partial implementation of step 9, missing some of the deferrable functions
Javier Fernandez-Ivern [Mon, 26 Oct 2015 02:30:51 +0000 (21:30 -0500)]
Implemented step 8 (macros)
Javier Fernandez-Ivern [Sun, 25 Oct 2015 06:07:43 +0000 (01:07 -0500)]
Implemented step 7 (quoting)
Javier Fernandez-Ivern [Sun, 25 Oct 2015 05:22:15 +0000 (00:22 -0500)]
Implemented step 6 (files and eval)
Javier Fernandez-Ivern [Sun, 25 Oct 2015 04:13:39 +0000 (23:13 -0500)]
Added TCO support as step 5
Javier Fernandez-Ivern [Sun, 25 Oct 2015 03:10:53 +0000 (22:10 -0500)]
Implemented Kotlin MAL up to step 4
Joel Martin [Tue, 20 Oct 2015 20:36:24 +0000 (15:36 -0500)]
Travis: activate vimscript build/test.
Joel Martin [Tue, 20 Oct 2015 20:34:24 +0000 (15:34 -0500)]
vimscript: fix load of readline lib. Update Dockerfile.
Dov Murik [Tue, 20 Oct 2015 19:02:00 +0000 (15:02 -0400)]
Vimscript implementation
Joel Martin [Tue, 13 Oct 2015 03:14:45 +0000 (22:14 -0500)]
ps: fix self-host and runtest.py parsing issue.
- make sure readline has large enough string for steps2-A
- fix keyword? so that it doesn't leave anything extra on the stack
- fix argparse command line parsing so that that the second '--' on
the command line is not dropped.
Joel Martin [Mon, 12 Oct 2015 23:58:33 +0000 (18:58 -0500)]
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.
Joel Martin [Mon, 12 Oct 2015 04:27:02 +0000 (23:27 -0500)]
Travis: build rpython step9 first.
Joel Martin [Mon, 12 Oct 2015 03:10:59 +0000 (22:10 -0500)]
Makefile and tests/step4: Self-host test fixes.
- Always use stepA for the RUNSTEP macro in addition to the
STEP_TO_PROG macro.
- Disable the (fib 10) test because this is really too slow for
several self-hosted implementations to complete before a timeout.
Joel Martin [Mon, 12 Oct 2015 03:10:06 +0000 (22:10 -0500)]
tests/step0: fix tests to not confuse runtest.py
- the test starts with ';' which is meaningful to runtest.py.
Joel Martin [Sat, 10 Oct 2015 20:08:50 +0000 (15:08 -0500)]
Travis: comment out self-host tests in master.
Joel Martin [Sat, 10 Oct 2015 19:46:42 +0000 (14:46 -0500)]
Travis: fix self-hosted test and error output.
Joel Martin [Sat, 10 Oct 2015 15:54:08 +0000 (10:54 -0500)]
Travis: add self-hosted testing.
Joel Martin [Sat, 10 Oct 2015 15:34:46 +0000 (10:34 -0500)]
Travis: build rpython twice to workaround errors.
To get around this error which often happens in step9 build after
first 8 steps have been built:
.......RPython traceback:
File "rpython_jit_metainterp_compile.c", line 21356, in send_loop_to_backend
File "rpython_jit_backend_x86_assembler.c", line 1905, in Assembler386_assemble_loop
File "rpython_jit_backend_x86_regalloc.c", line 309, in RegAlloc_prepare_loop
File "rpython_jit_backend_x86_regalloc.c", line 978, in RegAlloc__prepare
File "rpython_jit_backend_llsupport_regalloc.c", line 6519, in compute_vars_longevity
Fatal RPython error: AssertionError
Makefile:14: recipe for target 'step9_try' failed
Joel Martin [Sat, 10 Oct 2015 05:34:23 +0000 (00:34 -0500)]
Travis: add BUILD_IMPL=js for miniMAL.
Joel Martin [Sat, 10 Oct 2015 04:11:47 +0000 (23:11 -0500)]
miniMAL: add install of ffi dep.
Joel Martin [Sat, 10 Oct 2015 03:45:48 +0000 (22:45 -0500)]
Travis: fix/activate miniMAL. Simplify .travis*
Joel Martin [Fri, 9 Oct 2015 19:38:27 +0000 (14:38 -0500)]
Travis: better rpython Dockerfile.
Joel Martin [Fri, 9 Oct 2015 19:36:57 +0000 (14:36 -0500)]
Travis: fixed rust, re-activate other impls
Joel Martin [Fri, 9 Oct 2015 17:37:09 +0000 (12:37 -0500)]
Travis: just test rust to debug.
Joel Martin [Fri, 9 Oct 2015 17:20:53 +0000 (12:20 -0500)]
Travis: add js,mal cases back into test matrix.
Joel Martin [Fri, 9 Oct 2015 17:13:05 +0000 (12:13 -0500)]
Travis: split build and test into separate scripts.
Joel Martin [Fri, 9 Oct 2015 16:55:55 +0000 (11:55 -0500)]
Travis: try just swift (os: osx)
Joel Martin [Fri, 9 Oct 2015 16:14:51 +0000 (11:14 -0500)]
guile: fix regex with unicode bug.
Joel Martin [Fri, 9 Oct 2015 14:32:21 +0000 (09:32 -0500)]
Travis: refactor mal build, remove stepA fail notes
Joel Martin [Fri, 9 Oct 2015 14:30:16 +0000 (09:30 -0500)]
runtest.py: add --soft option, refactor test reader.
- also, mark later stepA optional as soft.
Joel Martin [Thu, 8 Oct 2015 22:11:51 +0000 (17:11 -0500)]
rpython: fix _cache, and update to pypy 2.7.0-alpha0
- also, enable rpython with Travis
Joel Martin [Thu, 8 Oct 2015 21:30:42 +0000 (16:30 -0500)]
Travis: remove comments about groovy, rust bugs.
Joel Martin [Thu, 8 Oct 2015 21:25:19 +0000 (16:25 -0500)]
rust: update to rustc 1.3.0
Joel Martin [Thu, 8 Oct 2015 20:15:25 +0000 (15:15 -0500)]
groovy: implement conj
Joel Martin [Thu, 8 Oct 2015 18:26:44 +0000 (13:26 -0500)]
Merge pull request #91 from rhysd/fix-crystal-0.8.0
Crystal: Fixed missing method error for Crystal 0.8.0
rhysd [Thu, 8 Oct 2015 17:25:17 +0000 (02:25 +0900)]
Crystal: Fix missing method error for Crystal 0.8.0
Joel Martin [Thu, 8 Oct 2015 05:37:33 +0000 (00:37 -0500)]
Travis: another attempt to fix mal.
Joel Martin [Thu, 8 Oct 2015 05:28:04 +0000 (00:28 -0500)]
Travis: fix build of mal implementation.
Joel Martin [Thu, 8 Oct 2015 05:22:07 +0000 (00:22 -0500)]
Travis: fix mal and rust docker image build.
Joel Martin [Thu, 8 Oct 2015 04:32:45 +0000 (23:32 -0500)]
Travis: fix coffee and es6
- coffee: install npm deps when built
- es6: create build directory
Joel Martin [Thu, 8 Oct 2015 04:20:59 +0000 (23:20 -0500)]
Travis: fix cat of output log file.
Joel Martin [Thu, 8 Oct 2015 02:46:12 +0000 (21:46 -0500)]
Travis: add remaining implementations.
- new impls: awk, crystal, elixir, erlang, es6, fsharp, groovy, guile
(disabled), rpython (disabled)
Joel Martin [Wed, 7 Oct 2015 16:00:58 +0000 (11:00 -0500)]
runtest.py: add --log-file option.
For logging the full output from the implementation to a file for
debug purposes.
Joel Martin [Tue, 6 Oct 2015 23:34:53 +0000 (18:34 -0500)]
Travis: disable factor for now (fails in opt stepA)
Joel Martin [Tue, 6 Oct 2015 23:28:46 +0000 (18:28 -0500)]
Travis: add C++(cpp), factor and julia.
Joel Martin [Tue, 6 Oct 2015 22:32:29 +0000 (17:32 -0500)]
Travis: add mal and nim.
Joel Martin [Tue, 6 Oct 2015 18:28:11 +0000 (13:28 -0500)]
Travis: add ocaml, forth and miniMAL.
Joel Martin [Tue, 6 Oct 2015 17:48:22 +0000 (12:48 -0500)]
Travis: add lua and haskell. Add racket (disabled).
- racket has some stepA failures in optional areas so it would cause
overall test failure.
Joel Martin [Tue, 6 Oct 2015 07:49:12 +0000 (02:49 -0500)]
Travis: add scala.
Joel Martin [Tue, 6 Oct 2015 07:35:40 +0000 (02:35 -0500)]
Travis: comment out rust until fixed.
Joel Martin [Tue, 6 Oct 2015 07:16:34 +0000 (02:16 -0500)]
Travis: add VB.net
Joel Martin [Tue, 6 Oct 2015 06:49:15 +0000 (01:49 -0500)]
Travis: add R, Rust. Also coffee (broke).
Joel Martin [Tue, 6 Oct 2015 05:56:02 +0000 (00:56 -0500)]
Travis: add C, C#, Go, Perl, PHP, and Ruby.
Joel Martin [Tue, 6 Oct 2015 04:31:05 +0000 (23:31 -0500)]
Travis: add java, php, ps.
Joel Martin [Tue, 6 Oct 2015 03:18:57 +0000 (22:18 -0500)]
Travis: add Clojure Dockerfile and tests.
Joel Martin [Tue, 6 Oct 2015 02:14:59 +0000 (21:14 -0500)]
README: Add travis build status icon.
Joel Martin [Mon, 5 Oct 2015 23:55:00 +0000 (18:55 -0500)]
travis: add bash, c, make to test matrix.
Joel Martin [Mon, 5 Oct 2015 22:23:21 +0000 (17:23 -0500)]
Another travisCI attempt for JS and python (matrix).
Joel Martin [Mon, 5 Oct 2015 21:46:21 +0000 (16:46 -0500)]
Add .travis.yml and js/Dockerfile
- .travis.yml: currently pulls js docker image and runs tests for js
impl only.
Joel Martin [Tue, 22 Sep 2015 06:05:20 +0000 (01:05 -0500)]
Merge pull request #88 from keith-rollin/optimize
Optimize
Keith Rollin [Tue, 22 Sep 2015 04:29:50 +0000 (21:29 -0700)]
Fix typos in README.md
Keith Rollin [Tue, 22 Sep 2015 04:28:38 +0000 (21:28 -0700)]
State new Xcode/Swift requirements in README
Joel Martin [Tue, 22 Sep 2015 02:34:36 +0000 (21:34 -0500)]
Merge pull request #87 from keith-rollin/optimize
Update for Xcode 7.0
Keith Rollin [Tue, 22 Sep 2015 01:26:47 +0000 (18:26 -0700)]
Update for Xcode 7.0
Optimizations:
* In Environment, skip checking unused local slots if we’ve switched
over to the general map.
* Mark as much as possible with “final” and “private”, and build with
-whole-module-optimization, per
https://developer.apple.com/swift/blog/?id=27.
* Refactor to include alternate types.swift with an implementation based
on “enum”. Add Makefile variable allowing us to switch between the two
so that we can compare the results. (At the time of this writing,
using the class-based implementation is better in terms of both size
and speed.)
Swift 1.2:
* Use the form of “if-let-as” that allows us to unwrap multiple
optionals at once.
* Use Swift’s as? rather than our own predicates after determining that
the former did not incur a performance hit.
Swift 2.0:
* Remove some Array conversions where Foundation/Cocoa is now declared
to return arrays of the desired type.
* println -> print.
* print() -> print("")
* Remove some NSError* parameters; changed to do/try/catch.
* Use Swift exception handling rather than tunneling that information in
MalError.
* Use `guard` statements where it makes sense. Especially `guard let a =
b as? c` statements in order to reduce subsequent forced unwrapping.
* Changed count(str) -> str.characters.count.
* Changed Swift.reduce(coll, ...) -> coll.reduce(...).
* Changed reverse(coll) -> coll.reverse().
* Changed use of .allZeros -> default OptionSet c'tor.
* Changed Printable -> CustomStringConvertible.
* Changed Sequence.extend -> Sequence.appendContentsOf
* Changed String.join -> Sequence.joinWithSeparator
* Changed advance(index, delta) -> index.advancedBy(delta)
* Addressed change in function parameter name requirements.
* Added and used substring(s, begin, end).
* Changed “for ch in str” to “for ch in str.characters”
* Changed some switch/case statements to briefer if/case statements.
* Slices are no longer necessarily 0-based.
* Sprinkle in some @noescapes.
* Search for the most recent swiftc compiler to use if Xcode and
Xcode-beta are both installed.
Other:
* Delete debugger symbols in `make clean`.
* Rebuild if Makefile is changed.
Joel Martin [Wed, 16 Sep 2015 14:47:29 +0000 (09:47 -0500)]
mal.html: Fix title typo (#86).
Joel Martin [Wed, 16 Sep 2015 14:45:43 +0000 (09:45 -0500)]
Merge pull request #85 from enitihas/master
Changed nim/nimcache to nim/nimcache* in .gitignore
Abhishek Pandey [Wed, 16 Sep 2015 06:01:58 +0000 (11:31 +0530)]
Changed nim/nimcache to nim/nimcache* in .gitignore
A seperate nimcache folder was being generated for each step with the
name of the step appended to nimcache, like nimcache-step0_repl and so
was not being ignored by git.
This change will prevent git from tracking
any folder with name starting with nimcache in the nim directory.
Joel Martin [Thu, 10 Sep 2015 21:23:51 +0000 (16:23 -0500)]
Merge pull request #83 from ekmartin/elixir_build
Update Elixir build method
ekmartin [Thu, 10 Sep 2015 20:10:40 +0000 (22:10 +0200)]
Update Elixir build method
Joel Martin [Thu, 10 Sep 2015 17:15:09 +0000 (12:15 -0500)]
Merge pull request #82 from ekmartin/elixir_headers
Only print Elixir header info in REPL mode
ekmartin [Thu, 10 Sep 2015 11:53:08 +0000 (13:53 +0200)]
Only print header info in REPL mode
Joel Martin [Thu, 10 Sep 2015 03:26:32 +0000 (22:26 -0500)]
Merge pull request #81 from ekmartin/elixir
Add Elixir implementation
ekmartin [Wed, 9 Sep 2015 23:41:44 +0000 (01:41 +0200)]
Update README/Makefile/Dockerfile
ekmartin [Wed, 9 Sep 2015 22:26:20 +0000 (00:26 +0200)]
Add conj, all tests 0 to A passes
ekmartin [Wed, 9 Sep 2015 22:14:44 +0000 (00:14 +0200)]
Add support for atoms
ekmartin [Wed, 9 Sep 2015 16:20:26 +0000 (18:20 +0200)]
Change core functions to be mal functions and add meta/with-meta
ekmartin [Wed, 9 Sep 2015 15:53:47 +0000 (17:53 +0200)]
Use the new data structures in the other steps
ekmartin [Wed, 9 Sep 2015 15:32:48 +0000 (17:32 +0200)]
Use a struct for functions
ekmartin [Wed, 9 Sep 2015 14:34:10 +0000 (16:34 +0200)]
Use a tuple for lists too and add meta info to the tuple
Joel Martin [Tue, 8 Sep 2015 19:58:33 +0000 (14:58 -0500)]
README: note Miutsuru kariya as GNU awk creator
ekmartin [Mon, 7 Sep 2015 22:04:30 +0000 (00:04 +0200)]
Add core readline and use it in all steps
ekmartin [Mon, 7 Sep 2015 21:35:57 +0000 (23:35 +0200)]
Change all non exported functions from def -> defp
ekmartin [Mon, 7 Sep 2015 21:30:43 +0000 (23:30 +0200)]
Add map core functions, step 1 to 9 passing
ekmartin [Mon, 7 Sep 2015 21:15:47 +0000 (23:15 +0200)]
Add evaluating of hash-maps to steps 2 - 9
ekmartin [Mon, 7 Sep 2015 21:11:08 +0000 (23:11 +0200)]
Add reading and printing of hash-maps
ekmartin [Mon, 7 Sep 2015 14:32:26 +0000 (16:32 +0200)]
Add support for vectors in all steps
ekmartin [Mon, 7 Sep 2015 12:08:49 +0000 (14:08 +0200)]
Fix keyword representation and add more core functions
ekmartin [Mon, 7 Sep 2015 11:55:51 +0000 (13:55 +0200)]
Add apply, symbol? nil? true? and false?
ekmartin [Mon, 7 Sep 2015 11:07:39 +0000 (13:07 +0200)]
Add try*/catch and map
ekmartin [Mon, 7 Sep 2015 10:33:33 +0000 (12:33 +0200)]
Add support for nth, first, rest, cond, or and macroexpand
ekmartin [Sun, 6 Sep 2015 16:44:36 +0000 (18:44 +0200)]
Add support for defmacro!
ekmartin [Sun, 6 Sep 2015 16:44:14 +0000 (18:44 +0200)]
Rely more on Kernel.inspect for printing
ekmartin [Sun, 6 Sep 2015 15:33:37 +0000 (17:33 +0200)]
Add quote and quasiquote support
ekmartin [Sun, 6 Sep 2015 14:08:21 +0000 (16:08 +0200)]
Add cons and concat to core
ekmartin [Sun, 6 Sep 2015 13:51:45 +0000 (15:51 +0200)]
Add support for load-file, eval and *ARGV*
ekmartin [Sun, 6 Sep 2015 13:51:25 +0000 (15:51 +0200)]
Exit with code 0 on EOF
ekmartin [Sun, 6 Sep 2015 13:12:59 +0000 (15:12 +0200)]
Add read-string and slurp
ekmartin [Sun, 6 Sep 2015 12:42:49 +0000 (14:42 +0200)]
Make sure eval of do is in tail position and skip step 5
ekmartin [Sat, 5 Sep 2015 23:34:20 +0000 (01:34 +0200)]
Use print_readably correctly for lists
ekmartin [Sat, 5 Sep 2015 23:30:08 +0000 (01:30 +0200)]
Add support for variable length arguments