jackhill/mal.git
8 years agoPartial implementation of step 9, missing some of the deferrable functions
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

8 years agoImplemented step 8 (macros)
Javier Fernandez-Ivern [Mon, 26 Oct 2015 02:30:51 +0000 (21:30 -0500)]
Implemented step 8 (macros)

8 years agoImplemented step 7 (quoting)
Javier Fernandez-Ivern [Sun, 25 Oct 2015 06:07:43 +0000 (01:07 -0500)]
Implemented step 7 (quoting)

8 years agoImplemented step 6 (files and eval)
Javier Fernandez-Ivern [Sun, 25 Oct 2015 05:22:15 +0000 (00:22 -0500)]
Implemented step 6 (files and eval)

8 years agoAdded TCO support as step 5
Javier Fernandez-Ivern [Sun, 25 Oct 2015 04:13:39 +0000 (23:13 -0500)]
Added TCO support as step 5

8 years agoImplemented Kotlin MAL up to step 4
Javier Fernandez-Ivern [Sun, 25 Oct 2015 03:10:53 +0000 (22:10 -0500)]
Implemented Kotlin MAL up to step 4

8 years agoTravis: activate vimscript build/test.
Joel Martin [Tue, 20 Oct 2015 20:36:24 +0000 (15:36 -0500)]
Travis: activate vimscript build/test.

8 years agovimscript: fix load of readline lib. Update Dockerfile.
Joel Martin [Tue, 20 Oct 2015 20:34:24 +0000 (15:34 -0500)]
vimscript: fix load of readline lib. Update Dockerfile.

8 years agoVimscript implementation
Dov Murik [Tue, 20 Oct 2015 19:02:00 +0000 (15:02 -0400)]
Vimscript implementation

8 years agops: fix self-host and runtest.py parsing issue.
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.

8 years agomake: fix sapply to address self-host test failures.
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.

8 years agoTravis: build rpython step9 first.
Joel Martin [Mon, 12 Oct 2015 04:27:02 +0000 (23:27 -0500)]
Travis: build rpython step9 first.

8 years agoMakefile and tests/step4: Self-host test fixes.
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.

8 years agotests/step0: fix tests to not confuse runtest.py
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.

8 years agoTravis: comment out self-host tests in master.
Joel Martin [Sat, 10 Oct 2015 20:08:50 +0000 (15:08 -0500)]
Travis: comment out self-host tests in master.

8 years agoTravis: fix self-hosted test and error output.
Joel Martin [Sat, 10 Oct 2015 19:46:42 +0000 (14:46 -0500)]
Travis: fix self-hosted test and error output.

8 years agoTravis: add self-hosted testing.
Joel Martin [Sat, 10 Oct 2015 15:54:08 +0000 (10:54 -0500)]
Travis: add self-hosted testing.

8 years agoTravis: build rpython twice to workaround errors.
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

8 years agoTravis: add BUILD_IMPL=js for miniMAL.
Joel Martin [Sat, 10 Oct 2015 05:34:23 +0000 (00:34 -0500)]
Travis: add BUILD_IMPL=js for miniMAL.

8 years agominiMAL: add install of ffi dep.
Joel Martin [Sat, 10 Oct 2015 04:11:47 +0000 (23:11 -0500)]
miniMAL: add install of ffi dep.

8 years agoTravis: fix/activate miniMAL. Simplify .travis*
Joel Martin [Sat, 10 Oct 2015 03:45:48 +0000 (22:45 -0500)]
Travis: fix/activate miniMAL. Simplify .travis*

8 years agoTravis: better rpython Dockerfile.
Joel Martin [Fri, 9 Oct 2015 19:38:27 +0000 (14:38 -0500)]
Travis: better rpython Dockerfile.

8 years agoTravis: fixed rust, re-activate other impls
Joel Martin [Fri, 9 Oct 2015 19:36:57 +0000 (14:36 -0500)]
Travis: fixed rust, re-activate other impls

8 years agoTravis: just test rust to debug.
Joel Martin [Fri, 9 Oct 2015 17:37:09 +0000 (12:37 -0500)]
Travis: just test rust to debug.

8 years agoTravis: add js,mal cases back into test matrix.
Joel Martin [Fri, 9 Oct 2015 17:20:53 +0000 (12:20 -0500)]
Travis: add js,mal cases back into test matrix.

8 years agoTravis: split build and test into separate scripts.
Joel Martin [Fri, 9 Oct 2015 17:13:05 +0000 (12:13 -0500)]
Travis: split build and test into separate scripts.

8 years agoTravis: try just swift (os: osx)
Joel Martin [Fri, 9 Oct 2015 16:55:55 +0000 (11:55 -0500)]
Travis: try just swift (os: osx)

8 years agoguile: fix regex with unicode bug.
Joel Martin [Fri, 9 Oct 2015 16:14:51 +0000 (11:14 -0500)]
guile: fix regex with unicode bug.

8 years agoTravis: refactor mal build, remove stepA fail notes
Joel Martin [Fri, 9 Oct 2015 14:32:21 +0000 (09:32 -0500)]
Travis: refactor mal build, remove stepA fail notes

8 years agoruntest.py: add --soft option, refactor test reader.
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.

8 years agorpython: fix _cache, and update to pypy 2.7.0-alpha0
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

8 years agoTravis: remove comments about groovy, rust bugs.
Joel Martin [Thu, 8 Oct 2015 21:30:42 +0000 (16:30 -0500)]
Travis: remove comments about groovy, rust bugs.

8 years agorust: update to rustc 1.3.0
Joel Martin [Thu, 8 Oct 2015 21:25:19 +0000 (16:25 -0500)]
rust: update to rustc 1.3.0

8 years agogroovy: implement conj
Joel Martin [Thu, 8 Oct 2015 20:15:25 +0000 (15:15 -0500)]
groovy: implement conj

8 years agoMerge pull request #91 from rhysd/fix-crystal-0.8.0
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

8 years agoCrystal: Fix 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

8 years agoTravis: another attempt to fix mal.
Joel Martin [Thu, 8 Oct 2015 05:37:33 +0000 (00:37 -0500)]
Travis: another attempt to fix mal.

8 years agoTravis: fix build of mal implementation.
Joel Martin [Thu, 8 Oct 2015 05:28:04 +0000 (00:28 -0500)]
Travis: fix build of mal implementation.

8 years agoTravis: fix mal and rust docker image build.
Joel Martin [Thu, 8 Oct 2015 05:22:07 +0000 (00:22 -0500)]
Travis: fix mal and rust docker image build.

8 years agoTravis: fix coffee and es6
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

8 years agoTravis: fix cat of output log file.
Joel Martin [Thu, 8 Oct 2015 04:20:59 +0000 (23:20 -0500)]
Travis: fix cat of output log file.

8 years agoTravis: add remaining implementations.
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)

8 years agoruntest.py: add --log-file option.
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.

8 years agoTravis: disable factor for now (fails in opt stepA)
Joel Martin [Tue, 6 Oct 2015 23:34:53 +0000 (18:34 -0500)]
Travis: disable factor for now (fails in opt stepA)

8 years agoTravis: add C++(cpp), factor and julia.
Joel Martin [Tue, 6 Oct 2015 23:28:46 +0000 (18:28 -0500)]
Travis: add C++(cpp), factor and julia.

8 years agoTravis: add mal and nim.
Joel Martin [Tue, 6 Oct 2015 22:32:29 +0000 (17:32 -0500)]
Travis: add mal and nim.

8 years agoTravis: add ocaml, forth and miniMAL.
Joel Martin [Tue, 6 Oct 2015 18:28:11 +0000 (13:28 -0500)]
Travis: add ocaml, forth and miniMAL.

8 years agoTravis: add lua and haskell. Add racket (disabled).
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.

8 years agoTravis: add scala.
Joel Martin [Tue, 6 Oct 2015 07:49:12 +0000 (02:49 -0500)]
Travis: add scala.

8 years agoTravis: comment out rust until fixed.
Joel Martin [Tue, 6 Oct 2015 07:35:40 +0000 (02:35 -0500)]
Travis: comment out rust until fixed.

8 years agoTravis: add VB.net
Joel Martin [Tue, 6 Oct 2015 07:16:34 +0000 (02:16 -0500)]
Travis: add VB.net

8 years agoTravis: add R, Rust. Also coffee (broke).
Joel Martin [Tue, 6 Oct 2015 06:49:15 +0000 (01:49 -0500)]
Travis: add R, Rust. Also coffee (broke).

8 years agoTravis: add C, C#, Go, Perl, PHP, and Ruby.
Joel Martin [Tue, 6 Oct 2015 05:56:02 +0000 (00:56 -0500)]
Travis: add C, C#, Go, Perl, PHP, and Ruby.

8 years agoTravis: add java, php, ps.
Joel Martin [Tue, 6 Oct 2015 04:31:05 +0000 (23:31 -0500)]
Travis: add java, php, ps.

8 years agoTravis: add Clojure Dockerfile and tests.
Joel Martin [Tue, 6 Oct 2015 03:18:57 +0000 (22:18 -0500)]
Travis: add Clojure Dockerfile and tests.

8 years agoREADME: Add travis build status icon.
Joel Martin [Tue, 6 Oct 2015 02:14:59 +0000 (21:14 -0500)]
README: Add travis build status icon.

8 years agotravis: add bash, c, make to test matrix.
Joel Martin [Mon, 5 Oct 2015 23:55:00 +0000 (18:55 -0500)]
travis: add bash, c, make to test matrix.

8 years agoAnother travisCI attempt for JS and python (matrix).
Joel Martin [Mon, 5 Oct 2015 22:23:21 +0000 (17:23 -0500)]
Another travisCI attempt for JS and python (matrix).

8 years agoAdd .travis.yml and js/Dockerfile
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.

8 years agoMerge pull request #88 from keith-rollin/optimize
Joel Martin [Tue, 22 Sep 2015 06:05:20 +0000 (01:05 -0500)]
Merge pull request #88 from keith-rollin/optimize

Optimize

8 years agoFix typos in README.md
Keith Rollin [Tue, 22 Sep 2015 04:29:50 +0000 (21:29 -0700)]
Fix typos in README.md

8 years agoState new Xcode/Swift requirements in README
Keith Rollin [Tue, 22 Sep 2015 04:28:38 +0000 (21:28 -0700)]
State new Xcode/Swift requirements in README

8 years agoMerge pull request #87 from keith-rollin/optimize
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

8 years agoUpdate 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.

8 years agomal.html: Fix title typo (#86).
Joel Martin [Wed, 16 Sep 2015 14:47:29 +0000 (09:47 -0500)]
mal.html: Fix title typo (#86).

8 years agoMerge pull request #85 from enitihas/master
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

8 years agoChanged 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.

8 years agoMerge pull request #83 from ekmartin/elixir_build
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

8 years agoUpdate Elixir build method
ekmartin [Thu, 10 Sep 2015 20:10:40 +0000 (22:10 +0200)]
Update Elixir build method

8 years agoMerge pull request #82 from ekmartin/elixir_headers
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

8 years agoOnly print header info in REPL mode
ekmartin [Thu, 10 Sep 2015 11:53:08 +0000 (13:53 +0200)]
Only print header info in REPL mode

8 years agoMerge pull request #81 from ekmartin/elixir
Joel Martin [Thu, 10 Sep 2015 03:26:32 +0000 (22:26 -0500)]
Merge pull request #81 from ekmartin/elixir

Add Elixir implementation

8 years agoUpdate README/Makefile/Dockerfile
ekmartin [Wed, 9 Sep 2015 23:41:44 +0000 (01:41 +0200)]
Update README/Makefile/Dockerfile

8 years agoAdd conj, all tests 0 to A passes
ekmartin [Wed, 9 Sep 2015 22:26:20 +0000 (00:26 +0200)]
Add conj, all tests 0 to A passes

8 years agoAdd support for atoms
ekmartin [Wed, 9 Sep 2015 22:14:44 +0000 (00:14 +0200)]
Add support for atoms

8 years agoChange core functions to be mal functions and add meta/with-meta
ekmartin [Wed, 9 Sep 2015 16:20:26 +0000 (18:20 +0200)]
Change core functions to be mal functions and add meta/with-meta

8 years agoUse the new data structures in the other steps
ekmartin [Wed, 9 Sep 2015 15:53:47 +0000 (17:53 +0200)]
Use the new data structures in the other steps

8 years agoUse a struct for functions
ekmartin [Wed, 9 Sep 2015 15:32:48 +0000 (17:32 +0200)]
Use a struct for functions

8 years agoUse a tuple for lists too and add meta info to the tuple
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

8 years agoREADME: note Miutsuru kariya as GNU awk creator
Joel Martin [Tue, 8 Sep 2015 19:58:33 +0000 (14:58 -0500)]
README: note Miutsuru kariya as GNU awk creator

8 years agoAdd core readline and use it in all steps
ekmartin [Mon, 7 Sep 2015 22:04:30 +0000 (00:04 +0200)]
Add core readline and use it in all steps

8 years agoChange all non exported functions from def -> defp
ekmartin [Mon, 7 Sep 2015 21:35:57 +0000 (23:35 +0200)]
Change all non exported functions from def -> defp

8 years agoAdd map core functions, step 1 to 9 passing
ekmartin [Mon, 7 Sep 2015 21:30:43 +0000 (23:30 +0200)]
Add map core functions, step 1 to 9 passing

8 years agoAdd evaluating of hash-maps to steps 2 - 9
ekmartin [Mon, 7 Sep 2015 21:15:47 +0000 (23:15 +0200)]
Add evaluating of hash-maps to steps 2 - 9

8 years agoAdd reading and printing of hash-maps
ekmartin [Mon, 7 Sep 2015 21:11:08 +0000 (23:11 +0200)]
Add reading and printing of hash-maps

8 years agoAdd support for vectors in all steps
ekmartin [Mon, 7 Sep 2015 14:32:26 +0000 (16:32 +0200)]
Add support for vectors in all steps

8 years agoFix keyword representation and add more core functions
ekmartin [Mon, 7 Sep 2015 12:08:49 +0000 (14:08 +0200)]
Fix keyword representation and add more core functions

8 years agoAdd apply, symbol? nil? true? and false?
ekmartin [Mon, 7 Sep 2015 11:55:51 +0000 (13:55 +0200)]
Add apply, symbol? nil? true? and false?

8 years agoAdd try*/catch and map
ekmartin [Mon, 7 Sep 2015 11:07:39 +0000 (13:07 +0200)]
Add try*/catch and map

8 years agoAdd support for nth, first, rest, cond, or and macroexpand
ekmartin [Mon, 7 Sep 2015 10:33:33 +0000 (12:33 +0200)]
Add support for nth, first, rest, cond, or and macroexpand

8 years agoAdd support for defmacro!
ekmartin [Sun, 6 Sep 2015 16:44:36 +0000 (18:44 +0200)]
Add support for defmacro!

8 years agoRely more on Kernel.inspect for printing
ekmartin [Sun, 6 Sep 2015 16:44:14 +0000 (18:44 +0200)]
Rely more on Kernel.inspect for printing

8 years agoAdd quote and quasiquote support
ekmartin [Sun, 6 Sep 2015 15:33:37 +0000 (17:33 +0200)]
Add quote and quasiquote support

8 years agoAdd cons and concat to core
ekmartin [Sun, 6 Sep 2015 14:08:21 +0000 (16:08 +0200)]
Add cons and concat to core

8 years agoAdd support for load-file, eval and *ARGV*
ekmartin [Sun, 6 Sep 2015 13:51:45 +0000 (15:51 +0200)]
Add support for load-file, eval and *ARGV*

8 years agoExit with code 0 on EOF
ekmartin [Sun, 6 Sep 2015 13:51:25 +0000 (15:51 +0200)]
Exit with code 0 on EOF

8 years agoAdd read-string and slurp
ekmartin [Sun, 6 Sep 2015 13:12:59 +0000 (15:12 +0200)]
Add read-string and slurp

8 years agoMake sure eval of do is in tail position and skip step 5
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

8 years agoUse print_readably correctly for lists
ekmartin [Sat, 5 Sep 2015 23:34:20 +0000 (01:34 +0200)]
Use print_readably correctly for lists

8 years agoAdd support for variable length arguments
ekmartin [Sat, 5 Sep 2015 23:30:08 +0000 (01:30 +0200)]
Add support for variable length arguments