remove debug function
[jackhill/mal.git] / .travis.yml
dissimilarity index 91%
index 711212a..df389e3 100644 (file)
-sudo: required
-
-# matrix layout based on:
-# https://github.com/libressl-portable/portable/blob/9e090286b55def5ca2c0cc375c65023a70d8796e/.travis.yml
-
-matrix:
-  include:
-    - {env: IMPL=ada,       services: [docker]}
-    - {env: IMPL=awk,       services: [docker]}
-    - {env: IMPL=bash,      services: [docker]}
-    - {env: IMPL=basic,     services: [docker]}
-    - {env: IMPL=c,         services: [docker]}
-    - {env: IMPL=cpp,       services: [docker]}
-    - {env: IMPL=coffee,    services: [docker]}
-    - {env: IMPL=cs,        services: [docker]}
-    - {env: IMPL=chuck,     services: [docker]}
-    - {env: IMPL=clojure,   services: [docker]}
-    - {env: IMPL=common-lisp, services: [docker]}
-    - {env: IMPL=crystal,   services: [docker]}
-    - {env: IMPL=d,         services: [docker]}
-    - {env: IMPL=dart,      services: [docker]}
-    - {env: IMPL=elisp,     services: [docker]}
-    - {env: IMPL=elixir,    services: [docker]}
-    - {env: IMPL=erlang NO_PERF=1, services: [docker]} # perf runs out of memory
-    - {env: IMPL=es6,       services: [docker]}
-    - {env: IMPL=factor,    services: [docker]}
-    - {env: IMPL=forth,     services: [docker]}
-    - {env: IMPL=fsharp,    services: [docker]}
-    - {env: IMPL=go,        services: [docker]}
-    - {env: IMPL=groovy,    services: [docker]}
-    - {env: IMPL=guile,     services: [docker]}
-    - {env: IMPL=haskell,   services: [docker]}
-    - {env: IMPL=haxe,      services: [docker]}
-    - {env: IMPL=io,        services: [docker]}
-    - {env: IMPL=java,      services: [docker]}
-    - {env: IMPL=js,        services: [docker]}
-    - {env: IMPL=julia,     services: [docker]}
-    - {env: IMPL=kotlin,    services: [docker]}
-    - {env: IMPL=livescript, services: [docker]}
-    - {env: IMPL=logo,      services: [docker]}
-    - {env: IMPL=lua,       services: [docker]}
-    - {env: IMPL=make,      services: [docker]}
-    - {env: IMPL=mal BUILD_IMPL=js NO_PERF=1, services: [docker]}
-    - {env: IMPL=matlab, services: [docker]} # Uses Octave
-    - {env: IMPL=miniMAL,   services: [docker]}
-    - {env: IMPL=nim,       services: [docker]}
-    - {env: IMPL=objpascal, services: [docker]}
-    - {env: IMPL=objc NO_DOCKER=1, os: osx, osx_image: xcode7}
-    - {env: IMPL=objc,      services: [docker]}
-    - {env: IMPL=ocaml,     services: [docker]}
-    - {env: IMPL=perl,      services: [docker]}
-    - {env: IMPL=perl6,     services: [docker]}
-    - {env: IMPL=php,       services: [docker]}
-    - {env: IMPL=pil,       services: [docker]}
-    - {env: IMPL=plpgsql,   services: [docker]}
-#    - {env: IMPL=plsql,     services: [docker]}
-    - {env: IMPL=ps,        services: [docker]}
-    - {env: IMPL=powershell, services: [docker]}
-    - {env: IMPL=python,    services: [docker]}
-    - {env: IMPL=r,         services: [docker]}
-    - {env: IMPL=racket,    services: [docker]}
-    - {env: IMPL=rpython,   services: [docker]}
-    - {env: IMPL=ruby,      services: [docker]}
-    - {env: IMPL=rust,      services: [docker]}
-    - {env: IMPL=scala,     services: [docker]}
-    - {env: IMPL=skew,      services: [docker]}
-    - {env: IMPL=swift NO_DOCKER=1, os: osx, osx_image: xcode7}
-    - {env: IMPL=swift3,    services: [docker]}
-    - {env: IMPL=swift3 NO_DOCKER=1, os: osx, osx_image: xcode8}
-    - {env: IMPL=tcl,       services: [docker]}
-    - {env: IMPL=ts,        services: [docker]}
-    - {env: IMPL=vb,        services: [docker]}
-    - {env: IMPL=vhdl,      services: [docker]}
-    - {env: IMPL=vimscript, services: [docker]}
-
-script:
-  # Build
-  - ./.travis_build.sh
-
-  # Regular tests
-  - ./.travis_test.sh test ${IMPL}
-  - cat test.err || true
-
-  # NOTE: use self-host-test branch
-  # Self-hosted tests
-  #- ./.travis_test.sh test mal ${IMPL}
-  #- cat test.err || true; rm -f test.err
-
-  # Performance tests
-  - if [ -z "${NO_PERF}" ]; then ./.travis_test.sh perf ${IMPL}; fi
-  - cat perf.err || true
+sudo: required
+
+# matrix layout based on:
+# https://github.com/libressl-portable/portable/blob/9e090286b55def5ca2c0cc375c65023a70d8796e/.travis.yml
+
+matrix:
+  include:
+    - {env: IMPL=ada,                         services: [docker]}
+    - {env: IMPL=ada.2,                       services: [docker]}
+    - {env: IMPL=awk,                         services: [docker]}
+    - {env: IMPL=bash NO_SELF_HOST=1,         services: [docker]} # step8 timeout
+    - {env: IMPL=basic basic_MODE=cbm NO_SELF_HOST=1,    services: [docker]} # step4 OOM
+    - {env: IMPL=basic basic_MODE=qbasic NO_SELF_HOST=1, services: [docker]} # step4 OOM
+    - {env: IMPL=bbc-basic,                   services: [docker]}
+    - {env: IMPL=c,                           services: [docker]}
+    - {env: IMPL=cpp,                         services: [docker]}
+    - {env: IMPL=coffee,                      services: [docker]}
+    - {env: IMPL=cs,                          services: [docker]}
+    - {env: IMPL=chuck NO_SELF_HOST_PERF=1,   services: [docker]} # perf OOM
+    - {env: IMPL=clojure clojure_MODE=clj,    services: [docker]}
+    - {env: IMPL=clojure clojure_MODE=cljs,   services: [docker]}
+    - {env: IMPL=common-lisp,                 services: [docker]}
+    - {env: IMPL=crystal,                     services: [docker]}
+    - {env: IMPL=d d_MODE=gdc,                services: [docker]}
+    - {env: IMPL=d d_MODE=ldc2,               services: [docker]}
+    - {env: IMPL=d d_MODE=dmd,                services: [docker]}
+    - {env: IMPL=dart,                        services: [docker]}
+    - {env: IMPL=elisp,                       services: [docker]}
+    - {env: IMPL=elixir,                      services: [docker]}
+    - {env: IMPL=elm,                         services: [docker]}
+    - {env: IMPL=erlang NO_SELF_HOST=1,       services: [docker]} # step8 OOM
+    - {env: IMPL=es6,                         services: [docker]}
+    - {env: IMPL=factor,                      services: [docker]}
+    - {env: IMPL=fantom,                      services: [docker]}
+    - {env: IMPL=forth,                       services: [docker]}
+    - {env: IMPL=fsharp,                      services: [docker]}
+    - {env: IMPL=go,                          services: [docker]}
+    - {env: IMPL=groovy,                      services: [docker]}
+    - {env: IMPL=gnu-smalltalk,               services: [docker]}
+    - {env: IMPL=guile,                       services: [docker]}
+    - {env: IMPL=haskell,                     services: [docker]}
+    - {env: IMPL=haxe haxe_MODE=neko,         services: [docker]}
+    - {env: IMPL=haxe haxe_MODE=python,       services: [docker]}
+    - {env: IMPL=haxe haxe_MODE=cpp,          services: [docker]}
+    - {env: IMPL=haxe haxe_MODE=js,           services: [docker]}
+    - {env: IMPL=hy,                          services: [docker]}
+    - {env: IMPL=io NO_SELF_HOST_PERF=1,      services: [docker]} # perf OOM
+    - {env: IMPL=java,                        services: [docker]}
+    - {env: IMPL=jq,                          services: [docker]}
+    - {env: IMPL=js,                          services: [docker]}
+    - {env: IMPL=julia,                       services: [docker]}
+    - {env: IMPL=kotlin,                      services: [docker]}
+    - {env: IMPL=livescript,                  services: [docker]}
+    - {env: IMPL=logo NO_SELF_HOST=1,         services: [docker]} # step4 timeout
+    - {env: IMPL=lua,                         services: [docker]}
+    - {env: IMPL=make NO_SELF_HOST=1,         services: [docker]} # step4 timeout
+    - {env: IMPL=mal MAL_IMPL=js      BUILD_IMPL=js  NO_SELF_HOST=1,           services: [docker]}
+    - {env: IMPL=mal MAL_IMPL=js-mal  BUILD_IMPL=js  NO_SELF_HOST=1 NO_PERF=1, services: [docker]}
+    - {env: IMPL=mal MAL_IMPL=nim     BUILD_IMPL=nim NO_SELF_HOST=1,           services: [docker]}
+    - {env: IMPL=mal MAL_IMPL=nim-mal BUILD_IMPL=nim NO_SELF_HOST=1 NO_PERF=1, services: [docker]}
+    - {env: IMPL=matlab NO_SELF_HOST_PERF=1,  services: [docker]} # Octave, perf timeout
+    - {env: IMPL=miniMAL NO_SELF_HOST_PERF=1, services: [docker]} # perf timeout
+    - {env: IMPL=nasm NO_SELF_HOST_PERF=1,    services: [docker]} # perf OOM
+    - {env: IMPL=nim,                         services: [docker]}
+    - {env: IMPL=objpascal,                   services: [docker]}
+    - {env: IMPL=objc NO_DOCKER=1, os: osx, osx_image: xcode7}
+    - {env: IMPL=objc,                        services: [docker]}
+    - {env: IMPL=ocaml,                       services: [docker]}
+    - {env: IMPL=perl,                        services: [docker]}
+    - {env: IMPL=perl6,                       services: [docker]}
+    - {env: IMPL=php,                         services: [docker]}
+    - {env: IMPL=picolisp,                    services: [docker]}
+    - {env: IMPL=pike,                        services: [docker]}
+    - {env: IMPL=plpgsql NO_SELF_HOST=1,      services: [docker]} # step3 timeout
+#    - {env: IMPL=plsql,                       services: [docker]}
+    - {env: IMPL=ps,                          services: [docker]}
+    - {env: IMPL=powershell NO_SELF_HOST_PERF=1, services: [docker]} # perf timeout
+    - {env: IMPL=python python_MODE=python2,  services: [docker]}
+    - {env: IMPL=python python_MODE=python3,  services: [docker]}
+    - {env: IMPL=python.2,                    services: [docker]}
+    - {env: IMPL=r,                           services: [docker]}
+    - {env: IMPL=racket,                      services: [docker]}
+    - {env: IMPL=rexx,                        services: [docker]}
+    - {env: IMPL=rpython,                     services: [docker]}
+    - {env: IMPL=ruby,                        services: [docker]}
+    - {env: IMPL=rust,                        services: [docker]}
+    - {env: IMPL=scala,                       services: [docker]}
+    - {env: IMPL=scheme scheme_MODE=chibi,    services: [docker]}
+    - {env: IMPL=scheme scheme_MODE=kawa,     services: [docker]}
+    - {env: IMPL=scheme scheme_MODE=gauche,   services: [docker]}
+    - {env: IMPL=scheme scheme_MODE=chicken,  services: [docker]}
+    - {env: IMPL=scheme scheme_MODE=sagittarius, services: [docker]}
+    - {env: IMPL=scheme scheme_MODE=cyclone,  services: [docker]}
+#    - {env: IMPL=scheme scheme_MODE=foment,   services: [docker]}
+    - {env: IMPL=skew,                        services: [docker]}
+    - {env: IMPL=swift NO_DOCKER=1, os: osx, osx_image: xcode7.3}
+    - {env: IMPL=swift3,                      services: [docker]}
+    - {env: IMPL=swift3 NO_DOCKER=1, os: osx, osx_image: xcode8}
+    - {env: IMPL=swift4,                      services: [docker]}
+    - {env: IMPL=swift4 NO_DOCKER=1, os: osx, osx_image: xcode10}
+    - {env: IMPL=swift5,                      services: [docker]}
+    - {env: IMPL=swift5 NO_DOCKER=1, os: osx, osx_image: xcode11}
+    - {env: IMPL=tcl,                         services: [docker]}
+    - {env: IMPL=ts,                          services: [docker]}
+    - {env: IMPL=vala,                        services: [docker]}
+    - {env: IMPL=vb,                          services: [docker]}
+    - {env: IMPL=vhdl NO_SELF_HOST_PERF=1,    services: [docker]} # perf timeout
+    - {env: IMPL=vimscript,                   services: [docker]}
+      # no self-host perf for wasm due to mac stack overflow
+    - {env: IMPL=wasm wasm_MODE=wasmtime  NO_SELF_HOST_PERF=1, services: [docker]}
+    - {env: IMPL=wasm wasm_MODE=wasmer    NO_SELF_HOST_PERF=1, services: [docker]}
+    - {env: IMPL=wasm wasm_MODE=lucet     NO_SELF_HOST_PERF=1, services: [docker]}
+    - {env: IMPL=wasm wasm_MODE=wax       NO_SELF_HOST_PERF=1, services: [docker]}
+    - {env: IMPL=wasm wasm_MODE=node      NO_SELF_HOST_PERF=1, services: [docker]}
+    - {env: IMPL=wasm wasm_MODE=warpy     NO_SELF_HOST_PERF=1, services: [docker]}
+    - {env: IMPL=wasm wasm_MODE=wace_libc NO_SELF_HOST_PERF=1, services: [docker]}
+    - {env: IMPL=wren,                        services: [docker]}
+    - {env: IMPL=yorick,                      services: [docker]}
+    - {env: IMPL=zig,                         services: [docker]}
+
+script:
+  # Build, test, perf
+  - ./.travis_test.sh build ${IMPL}
+  - ./.travis_test.sh test ${IMPL}
+  - STEP=stepA REGRESS=1 HARD=1 OPTIONAL=0 ./.travis_test.sh test ${IMPL}
+  - ./.travis_test.sh perf ${IMPL}