jackhill/mal.git
4 years agoorder alphabetically
AnotherTest [Sun, 12 Jan 2020 11:41:47 +0000 (15:11 +0330)]
order alphabetically

4 years agoMerge branch 'main+jq' of https://github.com/alimpfard/mal into main+jq
AnotherTest [Sun, 12 Jan 2020 11:40:42 +0000 (15:10 +0330)]
Merge branch 'main+jq' of https://github.com/alimpfard/mal into main+jq

4 years agoclean up comments
AnotherTest [Sun, 12 Jan 2020 11:39:52 +0000 (15:09 +0330)]
clean up comments

4 years agochange Dockerfile to build on top of ubuntu:bionic
AnotherTest [Sun, 12 Jan 2020 11:33:08 +0000 (15:03 +0330)]
change Dockerfile to build on top of ubuntu:bionic

4 years agoadd jq info to readme
Ali Mohammad Pur [Fri, 10 Jan 2020 14:37:10 +0000 (18:07 +0330)]
add jq info to readme

4 years agobring the let* child env to newwer steps
AnotherTest [Fri, 10 Jan 2020 14:27:51 +0000 (17:57 +0330)]
bring the let* child env to newwer steps

4 years agoadd jq to travis matrix
AnotherTest [Fri, 10 Jan 2020 14:22:44 +0000 (17:52 +0330)]
add jq to travis matrix

4 years agoswitch run to a python script that gives io to the program
AnotherTest [Fri, 10 Jan 2020 14:13:51 +0000 (17:43 +0330)]
switch run to a python script that gives io to the program

4 years agoswitch to tail -f circular pipes
AnotherTest [Fri, 10 Jan 2020 07:14:35 +0000 (10:44 +0330)]
switch to tail -f circular pipes

4 years agocoreutils
AnotherTest [Fri, 10 Jan 2020 06:38:47 +0000 (10:08 +0330)]
coreutils

4 years agoyes
AnotherTest [Fri, 10 Jan 2020 06:36:46 +0000 (10:06 +0330)]
yes

4 years agoxenial is the latest LTS apparently
AnotherTest [Fri, 10 Jan 2020 06:35:34 +0000 (10:05 +0330)]
xenial is the latest LTS apparently

4 years agoswitch to ubuntu :shrug:
AnotherTest [Fri, 10 Jan 2020 06:34:13 +0000 (10:04 +0330)]
switch to ubuntu :shrug:

4 years agochange python version, py2 segfaults
AnotherTest [Fri, 10 Jan 2020 06:25:03 +0000 (09:55 +0330)]
change python version, py2 segfaults

4 years agobusybox has its own timeout
AnotherTest [Fri, 10 Jan 2020 06:11:13 +0000 (09:41 +0330)]
busybox has its own timeout

4 years agoadd Dockerfile
AnotherTest [Fri, 10 Jan 2020 06:08:30 +0000 (09:38 +0330)]
add Dockerfile

4 years agoimplement conj/seq
AnotherTest [Fri, 10 Jan 2020 06:01:00 +0000 (09:31 +0330)]
implement conj/seq

now we're self-hosting

4 years agofix macroexpand
AnotherTest [Fri, 10 Jan 2020 01:13:54 +0000 (04:43 +0330)]
fix macroexpand

4 years agofix printing strings
AnotherTest [Fri, 10 Jan 2020 01:12:39 +0000 (04:42 +0330)]
fix printing strings

4 years agofix weird interaction between let* and fn* and atoms
AnotherTest [Thu, 9 Jan 2020 16:07:24 +0000 (19:37 +0330)]
fix weird interaction between let* and fn* and atoms

4 years agoadd step9 and fix "symbol not found" exception format
AnotherTest [Wed, 8 Jan 2020 16:34:12 +0000 (20:04 +0330)]
add step9 and fix "symbol not found" exception format

4 years agofix atom interactions and unfuck execution speed
AnotherTest [Wed, 8 Jan 2020 14:36:57 +0000 (18:06 +0330)]
fix atom interactions and unfuck execution speed

4 years agoproperly implement tco and add step7:quote
AnotherTest [Tue, 7 Jan 2020 16:43:49 +0000 (20:13 +0330)]
properly implement tco and add step7:quote

4 years agoadd step8
AnotherTest [Tue, 7 Jan 2020 20:26:31 +0000 (23:56 +0330)]
add step8

4 years agoproperly implement tco and add step7:quote
AnotherTest [Tue, 7 Jan 2020 16:43:49 +0000 (20:13 +0330)]
properly implement tco and add step7:quote

4 years agoadd atoms
AnotherTest [Mon, 6 Jan 2020 20:55:22 +0000 (00:25 +0330)]
add atoms

+ fix lists (lists do not behave like let*)
+ add file io

4 years agostart step6 and add the cheaty runtime of cheatiness
AnotherTest [Mon, 6 Jan 2020 16:26:48 +0000 (19:56 +0330)]
start step6 and add the cheaty runtime of cheatiness

4 years agofix scoping and backport print patch
AnotherTest [Mon, 6 Jan 2020 07:30:26 +0000 (11:00 +0330)]
fix scoping and backport print patch

add TCO file, no TCO though (seems ok?)

4 years agoEQUIRECURSION BABY!
AnotherTest [Sun, 5 Jan 2020 23:40:03 +0000 (03:10 +0330)]
EQUIRECURSION BABY!

fix (cheat) print

4 years ago...add step4...
AnotherTest [Sun, 5 Jan 2020 20:25:03 +0000 (23:55 +0330)]
...add step4...

4 years agofix (= list vector) and the case where (((& x) ...)) assigns nothing
AnotherTest [Sun, 5 Jan 2020 20:22:44 +0000 (23:52 +0330)]
fix (= list vector) and the case where (((& x) ...)) assigns nothing

4 years agoimpl step5
AnotherTest [Sun, 5 Jan 2020 19:59:12 +0000 (23:29 +0330)]
impl step5

cannot print raw strings, so a lot of things fail

4 years agostep 3 done~
AnotherTest [Sun, 5 Jan 2020 17:49:41 +0000 (21:19 +0330)]
step 3 done~

4 years agoprepare for later
AnotherTest [Sun, 5 Jan 2020 15:08:15 +0000 (18:38 +0330)]
prepare for later

4 years agostep2 - eval
AnotherTest [Sun, 5 Jan 2020 15:05:49 +0000 (18:35 +0330)]
step2 - eval

Since we can't store functions, this is gonna be a _mess_

4 years agoall tests passing yay
AnotherTest [Sun, 5 Jan 2020 14:03:09 +0000 (17:33 +0330)]
all tests passing yay

4 years ago"fix" more reader stuff
AnotherTest [Sun, 5 Jan 2020 13:36:06 +0000 (17:06 +0330)]
"fix" more reader stuff

4 years agobasic...? impl
AnotherTest [Sun, 5 Jan 2020 11:02:39 +0000 (14:32 +0330)]
basic...? impl

4 years agoMerge pull request #478 from rjtobin/zig
Joel Martin [Fri, 20 Dec 2019 06:43:01 +0000 (00:43 -0600)]
Merge pull request #478 from rjtobin/zig

Zig implementation

4 years agozig: readme and travis
Josh Tobin [Fri, 20 Dec 2019 04:24:54 +0000 (23:24 -0500)]
zig: readme and travis

4 years agozig: remove env usage in step2
Josh Tobin [Thu, 19 Dec 2019 05:07:11 +0000 (00:07 -0500)]
zig: remove env usage in step2

4 years agotests: remove atom metadata test.
Joel Martin [Tue, 17 Dec 2019 20:49:15 +0000 (14:49 -0600)]
tests: remove atom metadata test.

This was a commented out test I added early as something that might be
interesting even though Clojure does not support it. However, I hadn't
thought through it fully. Most objects are cloned when meta-data is
added. It is weird to clone an atom because then you have two
references that can diverge (i.e. they are different atoms but start
out pointing to the same underlying object). But mutating an atom is
the wrong behavior too i.e. with-meta would be a pseudo form of
reset! just for the metadata part.

4 years agoMerge pull request #482 from dubek/fix-defmacro-clone-func
Joel Martin [Tue, 17 Dec 2019 15:13:50 +0000 (09:13 -0600)]
Merge pull request #482 from dubek/fix-defmacro-clone-func

es6, js, python, ruby: defmacro! doesn't mutate original function

4 years agoMerge pull request #480 from MontakOleg/swift5
Joel Martin [Tue, 17 Dec 2019 15:05:08 +0000 (09:05 -0600)]
Merge pull request #480 from MontakOleg/swift5

swift5: get rid of swift dependency to run tests

4 years agoes6, js, python, ruby: defmacro! doesn't mutate original function
Dov Murik [Tue, 17 Dec 2019 11:16:28 +0000 (13:16 +0200)]
es6, js, python, ruby: defmacro! doesn't mutate original function

4 years agozig: tidy, more args, fix empty repl lines
Josh Tobin [Sat, 14 Dec 2019 21:39:03 +0000 (16:39 -0500)]
zig: tidy, more args, fix empty repl lines

4 years agoswift5: get rid of swift dependency to run tests
Oleg Montak [Sat, 14 Dec 2019 21:25:22 +0000 (00:25 +0300)]
swift5: get rid of swift dependency to run tests

discussed in https://github.com/kanaka/mal/pull/467#issuecomment-560435000

4 years agozig: adds missing build script and utility
Josh Tobin [Sat, 14 Dec 2019 04:49:33 +0000 (23:49 -0500)]
zig: adds missing build script and utility

4 years agoMakefile and Dockerfile for zig
Josh Tobin [Fri, 13 Dec 2019 06:24:16 +0000 (01:24 -0500)]
Makefile and Dockerfile for zig

4 years agoAdds zig implementation
Josh Tobin [Sun, 8 Dec 2019 20:07:41 +0000 (15:07 -0500)]
Adds zig implementation

4 years agoMerge pull request #476 from rectalogic/python.2-env
Joel Martin [Thu, 12 Dec 2019 18:40:33 +0000 (12:40 -0600)]
Merge pull request #476 from rectalogic/python.2-env

Fix python.2 Env.find implementation.

4 years agoAdd a test that eval is in root scope and that newly defined symbols can be found...
Andrew Wason [Wed, 11 Dec 2019 20:43:23 +0000 (15:43 -0500)]
Add a test that eval is in root scope and that newly defined symbols can be found in nested scopes.

4 years agoFix Env.find implementation.
Andrew Wason [Sat, 7 Dec 2019 15:47:26 +0000 (10:47 -0500)]
Fix Env.find implementation.

It should search the outer Env

4 years agoMerge pull request #475 from gautamkrishnar/patch-1
Joel Martin [Wed, 4 Dec 2019 21:27:22 +0000 (16:27 -0500)]
Merge pull request #475 from gautamkrishnar/patch-1

npm update should be npm install

4 years agonpm update should be npm install
Gautam krishna R [Wed, 4 Dec 2019 08:20:34 +0000 (13:50 +0530)]
npm update should be npm install

4 years agoMerge pull request #474 from denisidoro/patch-1
Joel Martin [Mon, 2 Dec 2019 16:40:23 +0000 (11:40 -0500)]
Merge pull request #474 from denisidoro/patch-1

Add reference to flk

4 years agoAdd reference to flk
Denis Isidoro [Mon, 2 Dec 2019 16:38:29 +0000 (13:38 -0300)]
Add reference to flk

Related: https://github.com/chr15m/flk

4 years agoMerge pull request #467 from MontakOleg/swift5
Joel Martin [Mon, 2 Dec 2019 14:59:12 +0000 (09:59 -0500)]
Merge pull request #467 from MontakOleg/swift5

Swift5 implementation

4 years agoMerge pull request #473 from chr15m/fix-bash-interop-asterisk-quoting
Joel Martin [Mon, 2 Dec 2019 14:41:59 +0000 (09:41 -0500)]
Merge pull request #473 from chr15m/fix-bash-interop-asterisk-quoting

Fix bash interop asterisk quoting

4 years agoReplace __STAR__ in sh* eval and quote result.
Chris McCormick [Mon, 2 Dec 2019 10:08:24 +0000 (18:08 +0800)]
Replace __STAR__ in sh* eval and quote result.

This supercedes #470 and includes #471.
This fixes some edge cases when passing an asterisk to an sh* interop call.
Before this fix mal would pass the string with any wildcard character converted to __STAR__ when passing to the subcommand.
For example `(sh* "ls *")` would become `ls __STAR__` when executed.
See the tests for examples of where this would fail to do what the user expects.
See also: https://github.com/chr15m/flk/issues/1

4 years agoBash: tests for multiline outputs from sh*.
Chris McCormick [Sun, 1 Dec 2019 06:24:19 +0000 (14:24 +0800)]
Bash: tests for multiline outputs from sh*.

4 years agoBash: sh* also captures output not ending with \n.
Chris McCormick [Sun, 1 Dec 2019 06:23:08 +0000 (14:23 +0800)]
Bash: sh* also captures output not ending with \n.

4 years agoBash: fix \n stripping from sh* output.
Chris McCormick [Sun, 1 Dec 2019 06:21:36 +0000 (14:21 +0800)]
Bash: fix \n stripping from sh* output.

4 years agoFix Bash implementation interop carriage returns.
Chris McCormick [Sat, 30 Nov 2019 07:47:02 +0000 (15:47 +0800)]
Fix Bash implementation interop carriage returns.

Before this fix the 'sh*' function was joining the lines of the output of whatever command was run in a way that resulted in '\n' instead of a literal carriage return.

4 years agoswift5: update run script to guarantee no unnecessary builds happens
Oleg Montak [Wed, 20 Nov 2019 08:19:21 +0000 (11:19 +0300)]
swift5: update run script to guarantee no unnecessary builds happens

4 years agoMerge pull request #468 from epylar/patch-3
Joel Martin [Tue, 19 Nov 2019 19:31:51 +0000 (13:31 -0600)]
Merge pull request #468 from epylar/patch-3

Clarify "rest" builtin in guide.md

4 years agoClarify "rest" builtin in guide.md
Gavin Lewis [Sat, 16 Nov 2019 17:14:55 +0000 (09:14 -0800)]
Clarify "rest" builtin in guide.md

4 years agoswift5: refactor a bit
Oleg Montak [Fri, 8 Nov 2019 17:29:42 +0000 (20:29 +0300)]
swift5: refactor a bit

4 years agoswift5: dockerfile
Oleg Montak [Fri, 8 Nov 2019 16:57:33 +0000 (19:57 +0300)]
swift5: dockerfile

4 years agoswift5: stepA_mal
Oleg Montak [Thu, 7 Nov 2019 17:22:41 +0000 (20:22 +0300)]
swift5: stepA_mal

4 years agoswift5: step9_try
Oleg Montak [Wed, 6 Nov 2019 17:01:08 +0000 (20:01 +0300)]
swift5: step9_try

4 years agoswift5: step8_macros
Oleg Montak [Tue, 5 Nov 2019 17:32:08 +0000 (20:32 +0300)]
swift5: step8_macros

4 years agoswift5: step7_quote
Oleg Montak [Mon, 4 Nov 2019 20:53:09 +0000 (23:53 +0300)]
swift5: step7_quote

4 years agoswift5: step6_file
Oleg Montak [Mon, 4 Nov 2019 12:59:19 +0000 (15:59 +0300)]
swift5: step6_file

4 years agoswift5: step5_tco
Oleg Montak [Sun, 3 Nov 2019 13:14:05 +0000 (16:14 +0300)]
swift5: step5_tco

4 years agoswift5: step4_if_fn_do
Oleg Montak [Thu, 31 Oct 2019 20:05:00 +0000 (23:05 +0300)]
swift5: step4_if_fn_do

4 years agoswift5: step3_env
Oleg Montak [Mon, 28 Oct 2019 17:00:02 +0000 (20:00 +0300)]
swift5: step3_env

4 years agoswift5: step2_eval
Oleg Montak [Wed, 23 Oct 2019 07:56:23 +0000 (10:56 +0300)]
swift5: step2_eval

4 years agoswift5: step1_read_print - parser combinators
Oleg Montak [Thu, 10 Oct 2019 21:56:00 +0000 (00:56 +0300)]
swift5: step1_read_print - parser combinators

4 years agoswift5: step0_repl
Oleg Montak [Wed, 9 Oct 2019 20:14:30 +0000 (23:14 +0300)]
swift5: step0_repl

4 years agoMerge pull request #466 from epylar/patch-2
Joel Martin [Sun, 3 Nov 2019 00:41:07 +0000 (19:41 -0500)]
Merge pull request #466 from epylar/patch-2

Update Rust version information in README.md

4 years agoUpdate Rust version information in README.md
Gavin Lewis [Sat, 2 Nov 2019 23:43:24 +0000 (16:43 -0700)]
Update Rust version information in README.md

4 years agoMerge pull request #465 from dubek/wren-impl
Joel Martin [Sat, 2 Nov 2019 20:49:25 +0000 (15:49 -0500)]
Merge pull request #465 from dubek/wren-impl

Wren implementation

4 years agowren: Add `dist` target to Makefile
Dov Murik [Sat, 2 Nov 2019 20:42:51 +0000 (22:42 +0200)]
wren: Add `dist` target to Makefile

4 years agowren: Add dummy Makefile
Dov Murik [Sat, 2 Nov 2019 20:28:34 +0000 (22:28 +0200)]
wren: Add dummy Makefile

4 years agoTravis: add wren to matrix
Dov Murik [Thu, 31 Oct 2019 13:28:26 +0000 (15:28 +0200)]
Travis: add wren to matrix

4 years agoREADME: add Wren implementation
Dov Murik [Thu, 31 Oct 2019 13:27:46 +0000 (15:27 +0200)]
README: add Wren implementation

4 years agoAdd Wren implementation
Dov Murik [Wed, 18 Sep 2019 18:04:02 +0000 (21:04 +0300)]
Add Wren implementation

4 years agoMerge pull request #464 from dubek/tests-nth-with-nil-element
Joel Martin [Thu, 31 Oct 2019 00:15:50 +0000 (19:15 -0500)]
Merge pull request #464 from dubek/tests-nth-with-nil-element

tests: step8: Verify nth doesn't throw on nil elements

4 years agotests: step8: Verify nth doesn't throw on nil elements
Dov Murik [Wed, 30 Oct 2019 23:06:46 +0000 (01:06 +0200)]
tests: step8: Verify nth doesn't throw on nil elements

4 years agoMerge pull request #463 from epylar/rust-2018
Joel Martin [Fri, 25 Oct 2019 04:42:56 +0000 (23:42 -0500)]
Merge pull request #463 from epylar/rust-2018

Update Rust implementation to Rust 2018

4 years agoUpdate rust dependencies to latest versions
Gavin Lewis [Fri, 25 Oct 2019 00:41:28 +0000 (17:41 -0700)]
Update rust dependencies to latest versions

Rustyline now includes the newline when we read lines, so readline
in core.rs is modified to remove trailing \r\n or \n.

4 years agoUpdate rust dependency lazy_static to 1.4.0
Gavin Lewis [Thu, 24 Oct 2019 22:57:28 +0000 (15:57 -0700)]
Update rust dependency lazy_static to 1.4.0

1.4.0 is the latest version of lazy_static. The previous version,
1.0.1, resulted in some compiler warnings when building the rust
implementation with rust 1.38.0.

4 years agoUpdate Rust implementation to Rust 2018
Gavin Lewis [Thu, 24 Oct 2019 14:44:36 +0000 (07:44 -0700)]
Update Rust implementation to Rust 2018

- Use 'cargo fix --edition' to perform upgrade
- Update Dockerfile to use latest Rust stable: 1.38.0

4 years agoMerge pull request #461 from epylar/patch-1
Joel Martin [Tue, 22 Oct 2019 13:39:03 +0000 (08:39 -0500)]
Merge pull request #461 from epylar/patch-1

Add missing python.2 author (myself) to README.md

4 years agoAdd missing python.2 author (myself) to README.md
Gavin Lewis [Tue, 22 Oct 2019 04:01:33 +0000 (21:01 -0700)]
Add missing python.2 author (myself) to README.md

I missed the authors table when originally submitting the `python.2` implementation.

4 years agoMerge pull request #460 from epylar/perf-python.2
Joel Martin [Sat, 19 Oct 2019 17:08:05 +0000 (12:08 -0500)]
Merge pull request #460 from epylar/perf-python.2

Improve python.2 performance on perf3 benchmark by 77%

4 years agoImprove python.2 performance on perf3 benchmark
Gavin Lewis [Sat, 19 Oct 2019 00:15:09 +0000 (17:15 -0700)]
Improve python.2 performance on perf3 benchmark

Performance is improved about 77% on my system

Optimizations:

 - remove use of ABC/abstractmethod
 - start new environments with copy of outer; no need to find(key)
 - run with asserts off

4 years agoMerge pull request #459 from epylar/fix-travis-script-bash-5
Joel Martin [Thu, 17 Oct 2019 20:23:57 +0000 (15:23 -0500)]
Merge pull request #459 from epylar/fix-travis-script-bash-5

Fix Travis test script to work with Bash 5

4 years agoMerge pull request #458 from epylar/standardize-python.2-Dockerfile
Joel Martin [Thu, 17 Oct 2019 16:59:58 +0000 (11:59 -0500)]
Merge pull request #458 from epylar/standardize-python.2-Dockerfile

Standardize python.2 dockerfile