1
1
mirror of https://github.com/kanaka/mal.git synced 2024-09-21 18:48:12 +03:00
Commit Graph

1883 Commits

Author SHA1 Message Date
Joel Martin
576d01e1b2 Clojure: node_modules or lein deps but not both. 2017-02-11 12:41:06 -06:00
Joel Martin
a0e89ae42a Rust, miniMAL, VHDL: misc fixes.
- Fix rust Dockerfile working dir.
- Make top-level Makefile more generic. This makes it easier to use
  the Makefile with fewer changes in miniMAL.
- Simplify vhdl build when case is fixed in stepA_mal
- Remove BUILD_IMPL=js from miniMAL travis test. Just use a docker
  image specifically made for miniMAL.
- Update TODO
2017-02-11 00:40:23 -06:00
Joel Martin
2c0c033bfc Go, Kotlin, Nim, ObjC, RPython: update Dockerfiles.
- Fix Nim IOError handling issue introduced by update.
2017-02-11 00:12:37 -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
b32495e94b miniMAL: update to using miniMAL 1.0.2
Also update miniMAL Dockerfile to xenial.
2017-02-10 23:02:30 -06:00
Joel Martin
a05c086f05 ES6: more use of ES6, simplifications, newer babel.
- Use Vector class derived from Array
- Use Array/Vector.from for initializing/cloning of Array/Vector
- Remove most semi-colon line endings
- More use of arrow functions
- Use Object.assign to copy properties in _malfunc and function
  cloning.
- Remove or inline a bunch of types.js functions that don't really
  need to be separate functions: _obj_type, _sequential_Q, _symbol,
  _symbol_Q, _vector, _vector_Q, _hash_map, _hash_map_Q
- Simplify dependency list in Makefile
- Remove some separate core.js functions by moving them into the
  core_ns declaration: _nth, keys, vals, with_meta.

With node 7, babel is mostly just used for translating imports into
CommonJS requires for node.
2017-02-10 23:02:30 -06:00
Joel Martin
577e643bfa Rust: update rust to 1.14
- fixup new warnings

Note: performance on the perf microbenchmark appears much better than
before.
2017-02-10 23:02:30 -06:00
Joel Martin
321dc7e69f Merge pull request #255 from chr15m/master
Fixed erroneous fn* -> native PHP function conversion.
2017-02-10 21:52:39 -06:00
Chris McCormick
7954b71a81 Fixed erroneous fn* -> native PHP function conversion.
Added test for callbacks during interop which is where this failure showed up.
2017-02-11 10:14:24 +08:00
Joel Martin
65af05304e Merge pull request #254 from cosmos72/master
Go: Use type assertions where possible instead of reflection
2017-02-06 15:34:33 -06:00
Massimiliano Ghilardi
fe3d4d3baf Go: Use type assertions where possible instead of reflection 2017-02-06 21:58:59 +01:00
Joel Martin
c32a44088f Merge pull request #253 from jonaslu/update_guide_w_file_permissions
Update README with hint on test permission failing
2017-02-03 09:49:42 -06:00
Jonas Lundberg
e1b080b401 Update README with hint on test permission failing
Ran into some problems with the <language>/run file
not having the executable flag set.

Setting +x on the run file helps this.

The error-message the python runner throws is:
Traceback (most recent call last):
  File "../runtest.py", line 227, in <module>
    r = Runner(args.mal_cmd, no_pty=args.no_pty)
  File "../runtest.py", line 105, in __init__
    env=env)
  File "/usr/lib/python3.6/subprocess.py", line 707, in __init__
    restore_signals, start_new_session)
  File "/usr/lib/python3.6/subprocess.py", line 1326, in _execute_child
    raise child_exception_type(errno_num, err_msg)
PermissionError: [Errno 13] Permission denied
make: *** [Makefile:310: test^mymal^step0] Error 1
2017-02-03 09:27:42 +01:00
Joel Martin
85d85d8785 Merge pull request #252 from pstephens/fsharp-exceptions
fsharp: added some top level exception catching
2016-12-28 11:22:49 -07:00
Peter Stephens
df8c925a24 fsharp: added some top level exception catching so that the repl wouldn't quit to CLI on errors. 2016-12-26 17:05:32 -06:00
Joel Martin
4a445e8493 Basic: QBasic fixes.
- restructure memory dim/initialization to support QBasic which
  requires all DIMs to be earlier in the code than references to the
  DIM'd variables (unlike C64 which just requires the DIMs to be
  called first logically).
- Fix printed header ("C64 QBasic" -> "QBasic")
2016-12-21 13:51:26 -07:00
Joel Martin
7895453b77 Basic: various memory savings.
- simplify DO_CONCAT.
- inline MAL_READ/PRINT.
- comment out memory debug/sanity checks.
- more aggressive space removal.

Saves over 900 bytes.

Increase Z% value memory by 374 to 9216 (8192+1024).
2016-12-21 13:51:26 -07:00
Joel Martin
e0bcd3fb42 Basic: more efficient/correct file reader.
- read one character at a time from the file instead of chunking it
  into the A$ string.
- fix an overflow that was happening during reads of long forms.
2016-12-21 13:51:26 -07:00
Joel Martin
3c823be2f8 Merge pull request #250 from dubek/skew
Add Skew implementation
2016-11-21 11:16:23 -06:00
Joel Martin
8e4d682e2b Merge pull request #248 from iqbalansari/common-lisp
Portable implementation in Common LISP
2016-11-21 10:51:16 -06:00
Iqbal Ansari
96b93a9769 Common Lisp: Add support for running on ABCL 2016-11-21 01:23:18 +05:30
Iqbal Ansari
a1586c57d5 Common Lisp: Use a custom hash-function when running on ABCL 2016-11-21 01:21:16 +05:30
Iqbal Ansari
4257071937 Common Lisp: Load libraries silently 2016-11-21 01:21:16 +05:30
Dov Murik
034e82adc5 Add Skew implementation
See http://skew-lang.org/ for details on the Skew language. Currently
Mal only compiles to Javascript, as there are some issues with the C#
backend for Skew (https://github.com/evanw/skew/issues/19).

Tested with Skew 0.7.42.
2016-11-20 10:10:41 +00:00
Joel Martin
4202ef7bf1 Basic: miscellaneous memory savings.
- Use variables A1, A2, B2 for Z%(A+1), Z%(A+2), Z%(B+2) respectively.
- Replace Z%(R)=Z%(R)+32 with GOSUB INC_REF_R
- Add functions TYPE_A and TYPE_F for (Z%(A)AND 31) and (Z%(F)AND 31)
  respectively.
- Inline NATIVE_FUNCTION and MAL_FUNCTION.

All together saves over 500 bytes so increase Z% value memory by 250
entries.
2016-11-18 23:51:33 -06:00
Iqbal Ansari
f48e7d5a7a Common Lisp: Remove GNU CLISP specific implementation 2016-11-18 22:49:24 +05:30
Iqbal Ansari
e7f85ce18c Common Lisp: Add documentation 2016-11-18 22:49:18 +05:30
Iqbal Ansari
a8499ff9e7 Common Lisp: Add wrapper shell code to change to script's directory when
cl-launch scripts are run
2016-11-18 18:11:20 +05:30
Iqbal Ansari
250163cd06 Common Lisp: Use a custom hash-function when running on ECL
ECL's sxhash function does not seem to be consistent for compound data types
2016-11-18 18:11:20 +05:30
Iqbal Ansari
033f64c44f Common Lisp: Suppress messages from CMUCL while restoring image
The 'Reloaded library ... ' messages were causing some tests to fail
2016-11-18 18:11:20 +05:30
Iqbal Ansari
d7534a7b68 Common Lisp: Fix println on GNU CLISP
Use `write-line` instead of `(format *standard-output* ... )` since the former
seems to be printing an extra newline at the start
2016-11-18 18:11:20 +05:30
Iqbal Ansari
89676a9fba Common Lisp: Initialize standard streams in GNU CLISP on startup
Without the initialization CLISP seems to be interacting wierdly with PERL_RL
flag
2016-11-18 18:11:20 +05:30
Iqbal Ansari
e7e61f3274 Common Lisp: Keep track of the implementation used to build a step
Rebuild the step if the implementation changes
2016-11-18 18:11:20 +05:30
Iqbal Ansari
035d28ed43 Common Lisp: Allow user to select the implementation to use for building MAL 2016-11-18 18:11:20 +05:30
Iqbal Ansari
79011c5393 Common Lisp: Ignore fasl and lib files 2016-11-18 18:11:20 +05:30
Iqbal Ansari
b5e99959dd Common Lisp: Enable travis for Common Lisp 2016-11-18 18:11:20 +05:30
Iqbal Ansari
542e997048 Common Lisp: Add Dockerfile for Common Lisp implementation 2016-11-18 18:11:17 +05:30
Iqbal Ansari
3cf68bd8ff Common Lisp: Add tasks for stats and stats-lisp for Common Lisp implementation 2016-11-18 17:59:27 +05:30
Iqbal Ansari
4434be1d0a Common Lisp: Implement step A 2016-11-18 17:59:27 +05:30
Iqbal Ansari
27a79f9e5f Common Lisp: Implement step 9 2016-11-18 17:59:27 +05:30
Iqbal Ansari
c8ac1eda7d Common Lisp: Implement step 8 2016-11-18 17:59:27 +05:30
Iqbal Ansari
3e9628d8d7 Common Lisp: Implement step 7 2016-11-18 17:59:27 +05:30
Iqbal Ansari
3dc177e408 Common Lisp: Implement step 6 2016-11-18 17:59:27 +05:30
Iqbal Ansari
626e3a1f7e Common Lisp: Implement step 5 2016-11-18 17:59:27 +05:30
Iqbal Ansari
82b73d0b29 Common Lisp: Implement step 4 2016-11-18 17:59:27 +05:30
Iqbal Ansari
526eda5741 Common Lisp: Implement step 3 2016-11-18 17:59:27 +05:30
Iqbal Ansari
d045c9cff4 Common Lisp: Implement step 2 2016-11-18 17:59:27 +05:30
Iqbal Ansari
8164982fd4 Common Lisp: Implement step 1 2016-11-18 17:59:27 +05:30
Iqbal Ansari
983d9f3b20 Common Lisp: Implement step 0 2016-11-18 17:59:27 +05:30
Joel Martin
d7a6c2d6c9 Basic: refactor memory layout.
Use a one dimensional array for the Z% value array. This enables
lists, vectors, environments and metadata pointers to all save off
1 word (2 bytes) of space.

Split the memory init and functions into mem.in.bas.

In addition, change type 14 to be metdata rather than any type 16-31.

This change saves about 560 bytes (no second array dimension
subscripts) and reduces Z% value usage by 10%-15%.

Bump the number of Z% words by 200 (to 8591). This enables
self-hosting up to step7 (without step8-stepA functions in core.mal).
2016-11-18 01:26:23 -06:00