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

59 Commits

Author SHA1 Message Date
Ben Harris
4b66bbdf6a gnu-smalltalk, go, js, lua, php, rust, ts: Detect more unterminated strings.
Rather than treating anything beginning and ending with '"' as a valid
string, we now use a regexp to detect a valid string and treat any other
token starting with '"' as an error.
2019-05-16 22:06:02 +01: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
dd7a4f55f3 Test uncaught throw, catchless try* . Fix 46 impls.
Fixes made to: ada, c, chuck, clojure, coffee, common-lisp, cpp,
crystal, d, dart, elm, erlang, es6, factor, fsharp, gnu-smalltalk,
groovy, guile, haxe, hy, js, livescript, matlab, miniMAL, nasm, nim,
objc, objpascal, ocaml, perl, perl6, php, plsql, ps, python, r,
rpython, ruby, scheme, swift3, tcl, ts, vb, vimscript, wasm, yorick.

Catchless try* test is an optional test. Not all implementations
support catchless try* but a number were fixed so they at least don't
crash on catchless try*.
2018-12-12 14:18:26 -06:00
Chris McCormick
634ca5e98b PHP: Wrap some native "language constructs".
Common ones which can't be called otherwise.
Can now be reached via php/exit, php/print, php/require.

Fixes chr15m/frock#7
2018-07-12 20:25:32 +08:00
Chris McCormick
ba218d6f0a Updated PHP native interop interface. 2018-06-25 09:59:15 +08:00
Joel Martin
a2bcbe2bb5
Merge pull request #319 from chr15m/refactor-php-web-runner
PHP: refactor web running mechanism.
2018-06-24 11:27:48 -05:00
Chris McCormick
9106f92cbc PHP: refactor web running mechanism. 2018-06-24 19:45:29 +08:00
Vasilij Schneidermann
a58f416a0d hy, php, powershell, scala: Add number?, fn?, macro? 2017-10-23 09:06:26 +02:00
Joel Martin
da9aef124a Fix unescaping in lua, objc, php, powershell, swift3 and ts. 2017-09-28 07:40:47 -05:00
Poeticode
df2cc0c51c Rename mal's Error class to _Error 2017-09-12 00:36:27 -04: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
Chris McCormick
29ebdb9c48 Added interop notes to README. 2016-10-29 12:32:26 +08:00
Chris McCormick
e7e13ef760 Merge branch 'master' into php-interop-extended 2016-10-29 12:29:33 +08:00
Chris McCormick
07eb8b944a Tests for new PHP interop functions. 2016-10-29 12:25:04 +08:00
Chris McCormick
42f9de6a8a Tighter PHP interop using '$' and '!' fns.
($ _SERVER) returns a mal hash-map holding the contents of the $_SERVER superglobal from PHP.
(! file_get_contents "https://github.com") returns a string containing the github homepage.
file_get_contents is a native PHP function.
2016-10-29 12:24:52 +08:00
Chris McCormick
f39b8db702 Allow printing of more PHP types.
In case return type from interop is a complex native PHP type.
2016-10-29 11:30:23 +08:00
Chris McCormick
5f0857261f New functions for converting between PHP and mal types. 2016-10-29 11:30:19 +08:00
Chris McCormick
80c5fbb13c Documentation for the web-run functionality. 2016-10-26 08:56:57 +08:00
Chris McCormick
082158f9ee Allow web exec of a .mal file via symlinked php script.
ln -s  mal.php myscript.php
Then create myscript.mal will get run when the user visits /myscript on a PHP capable webserver.
2016-10-25 10:35:14 +08: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
88af813b0c php: Fix exception on literal empty list
Issue #190
2016-03-30 08:56:24 -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
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
553b2960ea php: add seq and string?
Issue #166
2016-02-15 22:38:38 -06:00
Dov Murik
d46927d0c8 elixir, erlang, lua, php, r, vimscript: Fix (first nil) and (rest nil) 2016-02-03 21:23:47 -05: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
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
Joel Martin
33d33bb31b Bash, PHP: fix nested hash-map equality. 2015-12-03 16:19:22 -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
6479984c9b Travis: add C, C#, Go, Perl, PHP, and Ruby. 2015-10-06 00:56:02 -05:00
Joel Martin
d474baff47 Travis: add java, php, ps. 2015-10-05 23:31:05 -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
10b07148ba All step0: add test, fix bugs, remove step0 eval. 2015-03-07 09:04:07 -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
2ab1e5845c Multiple: interop enhancements. 2015-02-28 10:35:04 -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
6301e0b637 All: TCO let* and quasiquote. 2014-04-23 21:59:50 -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