Skip to content

Commit 6c5bf69

Browse files
committed
Removed unneeded implementations and added MIT License
0 parents  commit 6c5bf69

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

88 files changed

+9532
-0
lines changed

.gitignore

+143
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,143 @@
1+
.bash_history
2+
.cache
3+
.cargo
4+
.config
5+
.mal-history
6+
.crystal
7+
.lein
8+
.m2
9+
.ivy2
10+
.sbt
11+
.npm
12+
.node-gyp
13+
package-lock.json
14+
.elm
15+
*/experiments
16+
*/node_modules
17+
*.o
18+
*.pyc
19+
*/step0_repl
20+
*/step1_read_print
21+
*/step2_eval
22+
*/step3_env
23+
*/step4_if_fn_do
24+
*/step5_tco
25+
*/step6_file
26+
*/step7_quote
27+
*/step8_macros
28+
*/step9_try
29+
*/stepA_mal
30+
*/mal
31+
*/notes
32+
33+
logs
34+
old
35+
36+
ada/obj/
37+
awk/mal.awk
38+
bash/mal.sh
39+
clojure/mal.jar
40+
clojure/target
41+
clojure/.lein-repl-history
42+
coffee/mal.coffee
43+
cs/*.exe
44+
cs/*.dll
45+
cs/*.mdb
46+
d/*.o
47+
elixir/_build
48+
elixir/deps
49+
elixir/erl_crash.dump
50+
elixir/*.ez
51+
erlang/ebin
52+
erlang/.rebar
53+
erlang/src/*.beam
54+
es6/mal.js
55+
es6/.esm-cache
56+
factor/mal.factor
57+
fantom/lib
58+
forth/mal.fs
59+
fsharp/*.exe
60+
fsharp/*.dll
61+
fsharp/*.mdb
62+
go/step*
63+
groovy/*.class
64+
groovy/mal.jar
65+
haskell/*.hi
66+
haskell/*.o
67+
haxe/*.n
68+
haxe/*.py
69+
haxe/cpp/
70+
haxe/*.js
71+
java/mal.jar
72+
java/target/
73+
java/dependency-reduced-pom.xml
74+
js/mal.js
75+
js/web/mal.js
76+
kotlin/*.jar
77+
kotlin/.idea
78+
kotlin/*.iml
79+
lua/lib
80+
lua/linenoise.so
81+
lua/mal.lua
82+
make/mal.mk
83+
mal/mal.mal
84+
matlab/octave-workspace
85+
miniMAL/mal.json
86+
nim/nimcache*
87+
objc/*.d
88+
ocaml/*.cmi
89+
ocaml/*.cmo
90+
ocaml/*.swp
91+
ocaml/*.cmx
92+
ocaml/*.o
93+
ocaml/mal_lib.*
94+
objpascal/*.o
95+
objpascal/*.ppu
96+
objpascal/pas-readline
97+
objpascal/regexpr/Source/RegExpr.ppu
98+
perl/mal.pl
99+
perl6/.precomp/
100+
php/mal.php
101+
php/mal-web.php
102+
ps/mal.ps
103+
python/mal.pyz
104+
r/mal.r
105+
ruby/mal.rb
106+
rust/target/
107+
rust/Cargo.lock
108+
rust/.cargo
109+
r/lib
110+
scala/mal.jar
111+
scala/target
112+
scala/project
113+
skew/*.js
114+
tcl/mal.tcl
115+
vb/*.exe
116+
vb/*.dll
117+
vimscript/mal.vim
118+
clisp/*.fas
119+
clisp/*.lib
120+
basic/step0_repl.bas
121+
basic/step1_read_print.bas
122+
basic/step2_eval.bas
123+
basic/step3_env.bas
124+
basic/step4_if_fn_do.bas
125+
basic/step5_tco.bas
126+
basic/step6_file.bas
127+
basic/step7_quote.bas
128+
basic/step8_macros.bas
129+
basic/step9_try.bas
130+
basic/stepA_mal.bas
131+
basic/*.prg
132+
common-lisp/*.fasl
133+
common-lisp/*.lib
134+
common-lisp/images/*
135+
common-lisp/hist/*
136+
livescript/*.js
137+
!livescript/node_readline.js
138+
livescript/node_modules
139+
elm/node_modules
140+
elm/elm-stuff
141+
elm/*.js
142+
!elm/node_readline.js
143+
!elm/bootstrap.js

.gitmodules

Whitespace-only changes.

.travis.yml

+111
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
sudo: required
2+
3+
# matrix layout based on:
4+
# https://github.com/libressl-portable/portable/blob/9e090286b55def5ca2c0cc375c65023a70d8796e/.travis.yml
5+
6+
matrix:
7+
include:
8+
- {env: IMPL=ada, services: [docker]}
9+
- {env: IMPL=awk, services: [docker]}
10+
- {env: IMPL=bash, services: [docker]}
11+
- {env: IMPL=basic basic_MODE=cbm, services: [docker]}
12+
- {env: IMPL=basic basic_MODE=qbasic, services: [docker]}
13+
- {env: IMPL=c, services: [docker]}
14+
- {env: IMPL=cpp, services: [docker]}
15+
- {env: IMPL=coffee, services: [docker]}
16+
- {env: IMPL=cs, services: [docker]}
17+
- {env: IMPL=chuck, services: [docker]}
18+
- {env: IMPL=clojure clojure_MODE=clj, services: [docker]}
19+
- {env: IMPL=clojure clojure_MODE=cljs, services: [docker]}
20+
- {env: IMPL=common-lisp, services: [docker]}
21+
- {env: IMPL=crystal, services: [docker]}
22+
- {env: IMPL=d, services: [docker]}
23+
- {env: IMPL=dart, services: [docker]}
24+
- {env: IMPL=elisp, services: [docker]}
25+
- {env: IMPL=elixir, services: [docker]}
26+
- {env: IMPL=elm, services: [docker]}
27+
- {env: IMPL=erlang, services: [docker]} # perf runs out of memory
28+
- {env: IMPL=es6, services: [docker]}
29+
- {env: IMPL=factor, services: [docker]}
30+
- {env: IMPL=fantom, services: [docker]}
31+
- {env: IMPL=forth, services: [docker]}
32+
- {env: IMPL=fsharp, services: [docker]}
33+
- {env: IMPL=go, services: [docker]}
34+
- {env: IMPL=groovy, services: [docker]}
35+
- {env: IMPL=gnu-smalltalk, services: [docker]}
36+
- {env: IMPL=guile, services: [docker]}
37+
- {env: IMPL=haskell, services: [docker]}
38+
- {env: IMPL=haxe haxe_MODE=neko, services: [docker]}
39+
- {env: IMPL=haxe haxe_MODE=python, services: [docker]}
40+
- {env: IMPL=haxe haxe_MODE=cpp, services: [docker]}
41+
- {env: IMPL=haxe haxe_MODE=js, services: [docker]}
42+
- {env: IMPL=hy, services: [docker]}
43+
- {env: IMPL=io, services: [docker]}
44+
- {env: IMPL=java, services: [docker]}
45+
- {env: IMPL=js, services: [docker]}
46+
- {env: IMPL=julia, services: [docker]}
47+
- {env: IMPL=kotlin, services: [docker]}
48+
- {env: IMPL=livescript, services: [docker]}
49+
- {env: IMPL=logo, services: [docker]}
50+
- {env: IMPL=lua, services: [docker]}
51+
- {env: IMPL=make, services: [docker]}
52+
- {env: IMPL=mal BUILD_IMPL=js, services: [docker]}
53+
- {env: IMPL=matlab, services: [docker]} # Uses Octave
54+
- {env: IMPL=miniMAL, services: [docker]}
55+
- {env: IMPL=nasm, services: [docker]}
56+
- {env: IMPL=nim, services: [docker]}
57+
- {env: IMPL=objpascal, services: [docker]}
58+
- {env: IMPL=objc NO_DOCKER=1, os: osx, osx_image: xcode7}
59+
- {env: IMPL=objc, services: [docker]}
60+
- {env: IMPL=ocaml, services: [docker]}
61+
- {env: IMPL=perl, services: [docker]}
62+
- {env: IMPL=perl6, services: [docker]}
63+
- {env: IMPL=php, services: [docker]}
64+
- {env: IMPL=picolisp, services: [docker]}
65+
- {env: IMPL=plpgsql, services: [docker]}
66+
# - {env: IMPL=plsql, services: [docker]}
67+
- {env: IMPL=ps, services: [docker]}
68+
- {env: IMPL=powershell, services: [docker]}
69+
- {env: IMPL=python python_MODE=python2, services: [docker]}
70+
- {env: IMPL=python python_MODE=python3, services: [docker]}
71+
- {env: IMPL=r, services: [docker]}
72+
- {env: IMPL=racket, services: [docker]}
73+
- {env: IMPL=rexx, services: [docker]}
74+
- {env: IMPL=rpython, services: [docker]}
75+
- {env: IMPL=ruby, services: [docker]}
76+
- {env: IMPL=rust, services: [docker]}
77+
- {env: IMPL=scala, services: [docker]}
78+
- {env: IMPL=scheme scheme_MODE=chibi, services: [docker]}
79+
- {env: IMPL=scheme scheme_MODE=kawa, services: [docker]}
80+
- {env: IMPL=scheme scheme_MODE=gauche, services: [docker]}
81+
- {env: IMPL=scheme scheme_MODE=chicken, services: [docker]}
82+
- {env: IMPL=scheme scheme_MODE=sagittarius, services: [docker]}
83+
- {env: IMPL=scheme scheme_MODE=cyclone, services: [docker]}
84+
# - {env: IMPL=scheme scheme_MODE=foment, services: [docker]}
85+
- {env: IMPL=skew, services: [docker]}
86+
- {env: IMPL=swift NO_DOCKER=1, os: osx, osx_image: xcode7.3}
87+
- {env: IMPL=swift3, services: [docker]}
88+
- {env: IMPL=swift3 NO_DOCKER=1, os: osx, osx_image: xcode8}
89+
- {env: IMPL=tcl, services: [docker]}
90+
- {env: IMPL=ts, services: [docker]}
91+
- {env: IMPL=vb, services: [docker]}
92+
- {env: IMPL=vhdl, services: [docker]}
93+
- {env: IMPL=vimscript, services: [docker]}
94+
- {env: IMPL=yorick, services: [docker]}
95+
96+
script:
97+
# Build
98+
- ./.travis_build.sh
99+
100+
# Regular tests
101+
- ./.travis_test.sh test ${IMPL}
102+
- cat test.err || true
103+
104+
# NOTE: use self-host-test branch
105+
# Self-hosted tests
106+
#- ./.travis_test.sh test mal ${IMPL}
107+
#- cat test.err || true; rm -f test.err
108+
109+
# Performance tests
110+
- if [ -z "${NO_PERF}" ]; then ./.travis_test.sh perf ${IMPL}; fi
111+
- cat perf.err || true

.travis_build.sh

+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
#!/bin/bash
2+
3+
set -ex
4+
5+
BUILD_IMPL=${BUILD_IMPL:-${IMPL}}
6+
7+
mode_var=${IMPL}_MODE
8+
mode_val=${!mode_var}
9+
10+
# If NO_DOCKER is blank then launch use a docker image, otherwise
11+
# use the Travis image/tools directly.
12+
if [ -z "${NO_DOCKER}" ]; then
13+
impl=$(echo "${IMPL}" | tr '[:upper:]' '[:lower:]')
14+
img_impl=$(echo "${BUILD_IMPL}" | tr '[:upper:]' '[:lower:]')
15+
16+
docker pull kanaka/mal-test-${impl}
17+
if [ "${impl}" != "${img_impl}" ]; then
18+
docker pull kanaka/mal-test-${img_impl}
19+
fi
20+
if [ "${BUILD_IMPL}" = "rpython" ]; then
21+
# rpython often fails on step9 in compute_vars_longevity
22+
# so build step9, then continue wit the full build
23+
docker run -it -u $(id -u) -v `pwd`:/mal kanaka/mal-test-${img_impl} \
24+
make -C ${BUILD_IMPL} step9_try || true
25+
fi
26+
docker run -it -u $(id -u) -v `pwd`:/mal kanaka/mal-test-${img_impl} \
27+
make ${mode_val:+${mode_var}=${mode_val}} \
28+
-C ${BUILD_IMPL}
29+
else
30+
make ${mode_val:+${mode_var}=${mode_val}} \
31+
-C ${BUILD_IMPL}
32+
fi

.travis_test.sh

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
#!/bin/bash
2+
3+
set -ex
4+
5+
ACTION=${1}
6+
IMPL=${2}
7+
MAL_IMPL=${3:-js}
8+
9+
mode_var=${IMPL}_MODE
10+
mode_val=${!mode_var}
11+
12+
echo "ACTION: ${ACTION}"
13+
echo "IMPL: ${IMPL}"
14+
echo "MAL_IMPL: ${MAL_IMPL}"
15+
16+
# If NO_DOCKER is blank then launch use a docker image, otherwise use
17+
# the Travis image/tools directly.
18+
if [ "${NO_DOCKER}" ]; then
19+
MAKE="make"
20+
else
21+
impl=$(echo "${IMPL}" | tr '[:upper:]' '[:lower:]')
22+
img_impl=$(echo "${3:-${IMPL}}" | tr '[:upper:]' '[:lower:]')
23+
24+
MAKE="docker run -it -u $(id -u) -v `pwd`:/mal kanaka/mal-test-${img_impl} make"
25+
fi
26+
27+
${MAKE} TEST_OPTS="--debug-file ../${ACTION}.err" \
28+
MAL_IMPL=${MAL_IMPL} \
29+
${mode_val:+${mode_var}=${mode_val}} \
30+
${ACTION}^${IMPL}
31+
32+
# no failure so remove error log
33+
rm -f ${ACTION}.err || true

0 commit comments

Comments
 (0)