From 14d1090daa471d0e0bade121ca072d897b73500a Mon Sep 17 00:00:00 2001 From: Vrganj Date: Fri, 12 Mar 2021 20:18:43 +0100 Subject: [PATCH 1/6] Add lolcode --- config/languages.json | 6 ++++++ container/install_script.sh | 12 +++++++++++- lxc/executors/lolcode | 4 ++++ lxc/tests/lolcode.lol | 4 ++++ readme.md | 1 + 5 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 lxc/executors/lolcode create mode 100644 lxc/tests/lolcode.lol diff --git a/config/languages.json b/config/languages.json index f62ea5c..b8a54b2 100644 --- a/config/languages.json +++ b/config/languages.json @@ -136,6 +136,12 @@ "java" ] }, + { + "name": "lolcode", + "aliases": [ + "lolcode" + ] + }, { "name": "nim", "aliases": [ diff --git a/container/install_script.sh b/container/install_script.sh index c7cf270..593f7e1 100644 --- a/container/install_script.sh +++ b/container/install_script.sh @@ -284,7 +284,6 @@ MIX_ENV=prod mix escript.build --force echo 'export PATH=$PATH:/opt/05AB1E/05AB1E' >> /opt/.profile source /opt/.profile - # install prolog # final binary: /opt/swipl/swipl-/build/src/swipl cd /opt && mkdir swipl && cd swipl @@ -300,6 +299,17 @@ ninja echo "export PATH=\$PATH:/opt/swipl/$SUB_DIR/build/src" >> /opt/.profile source /opt/.profile +# install lolcode +# final binary: /opt/lolcode/bin/lci +cd /opt +git clone https://github.com/justinmeza/lci.git lolcode +cd lolcode +mkdir bin +cmake .. +make +echo 'export PATH=$PATH:/opt/lolcode/bin' >> /opt/.profile +source /opt/.profile + # create runnable users and apply limits for i in {1..150}; do useradd -M runner$i diff --git a/lxc/executors/lolcode b/lxc/executors/lolcode new file mode 100644 index 0000000..15e7473 --- /dev/null +++ b/lxc/executors/lolcode @@ -0,0 +1,4 @@ +#!/bin/bash + +cd /tmp/$1 +timeout -s KILL 3 lci code.code < stdin.stdin diff --git a/lxc/tests/lolcode.lol b/lxc/tests/lolcode.lol new file mode 100644 index 0000000..eac51ad --- /dev/null +++ b/lxc/tests/lolcode.lol @@ -0,0 +1,4 @@ +HAI 1.2 + CAN HAS STDIO? + VISIBLE "good" +KTHXBYE diff --git a/readme.md b/readme.md index ea4c0e9..d58b4e5 100644 --- a/readme.md +++ b/readme.md @@ -275,6 +275,7 @@ Content-Type: application/json `julia`, `kotlin`, `lisp`, +`lolcode`, `lua`, `nasm`, `nasm64`, From ed0a5c4f78dc5a97f3eb3975e5c348beecb47ec1 Mon Sep 17 00:00:00 2001 From: Brian Seymour Date: Fri, 12 Mar 2021 13:27:06 -0600 Subject: [PATCH 2/6] merge and add clojure --- config/languages.json | 7 +++++++ container/install_script.sh | 9 +++++++++ lxc/executors/clojure | 4 ++++ lxc/tests/clojure.clj | 5 +++++ lxc/util/versions | 8 ++++++++ 5 files changed, 33 insertions(+) create mode 100644 lxc/executors/clojure create mode 100644 lxc/tests/clojure.clj diff --git a/config/languages.json b/config/languages.json index b8a54b2..e3c0c50 100644 --- a/config/languages.json +++ b/config/languages.json @@ -39,6 +39,13 @@ "c" ] }, + { + "name": "clojure", + "aliases": [ + "clojure", + "clj" + ] + }, { "name": "crystal", "aliases": [ diff --git a/container/install_script.sh b/container/install_script.sh index 593f7e1..a4e0eb0 100644 --- a/container/install_script.sh +++ b/container/install_script.sh @@ -310,6 +310,15 @@ make echo 'export PATH=$PATH:/opt/lolcode/bin' >> /opt/.profile source /opt/.profile +# install clojure +# final binary: /opt/clojure/bin/clojure +# get version: /opt/clojure/bin/clojure -version +cd /opt && mkdir clojure && cd clojure +curl -O https://download.clojure.org/install/linux-install-1.10.2.796.sh +chmod +x linux-install-1.10.2.796.sh +./linux-install-1.10.2.796.sh --prefix /opt/clojure +echo 'export PATH=$PATH:/opt/clojure/bin' >> /opt/.profile + # create runnable users and apply limits for i in {1..150}; do useradd -M runner$i diff --git a/lxc/executors/clojure b/lxc/executors/clojure new file mode 100644 index 0000000..39689c4 --- /dev/null +++ b/lxc/executors/clojure @@ -0,0 +1,4 @@ +#!/bin/bash + +cd /tmp/$1 +timeout -s KILL 3 xargs -a args.args -d '\n' clojure -M code.code < stdin.stdin diff --git a/lxc/tests/clojure.clj b/lxc/tests/clojure.clj new file mode 100644 index 0000000..befe5c3 --- /dev/null +++ b/lxc/tests/clojure.clj @@ -0,0 +1,5 @@ +(ns clojure.examples.hello + (:gen-class)) +(defn hello-world [] + (println "good")) +(hello-world) diff --git a/lxc/util/versions b/lxc/util/versions index 6ff9d54..5fd2866 100755 --- a/lxc/util/versions +++ b/lxc/util/versions @@ -21,6 +21,10 @@ echo 'cpp' lxc-attach --clear-env -n piston -- /bin/bash -l -c "g++ --version" echo '---' +echo 'clojure' +lxc-attach --clear-env -n piston -- /bin/bash -l -c "clojure -version" +echo '---' + echo 'crystal' lxc-attach --clear-env -n piston -- /bin/bash -l -c "crystal -v" echo '---' @@ -77,6 +81,10 @@ echo 'lisp' lxc-attach --clear-env -n piston -- /bin/bash -l -c "sbcl --version" echo '---' +echo 'lolcode' +echo '1.0.0' +echo '---' + echo 'lua' lxc-attach --clear-env -n piston -- /bin/bash -l -c "lua -v" echo '---' From 9f7d01bb189380ad79e1bff8c5df619a78937a73 Mon Sep 17 00:00:00 2001 From: Brian Seymour Date: Fri, 12 Mar 2021 13:28:39 -0600 Subject: [PATCH 3/6] add missing cd --- container/install_script.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/container/install_script.sh b/container/install_script.sh index a4e0eb0..3aaad05 100644 --- a/container/install_script.sh +++ b/container/install_script.sh @@ -305,6 +305,7 @@ cd /opt git clone https://github.com/justinmeza/lci.git lolcode cd lolcode mkdir bin +cd bin cmake .. make echo 'export PATH=$PATH:/opt/lolcode/bin' >> /opt/.profile From a2afccad268a75ac7a4f310eeb7e71dec1ca7020 Mon Sep 17 00:00:00 2001 From: Brian Seymour Date: Fri, 12 Mar 2021 13:33:17 -0600 Subject: [PATCH 4/6] add missing tests, give clojure more time --- lxc/executors/clojure | 2 +- lxc/tests/_run | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/lxc/executors/clojure b/lxc/executors/clojure index 39689c4..7298893 100644 --- a/lxc/executors/clojure +++ b/lxc/executors/clojure @@ -1,4 +1,4 @@ #!/bin/bash cd /tmp/$1 -timeout -s KILL 3 xargs -a args.args -d '\n' clojure -M code.code < stdin.stdin +timeout -s KILL 10 xargs -a args.args -d '\n' clojure -M code.code < stdin.stdin diff --git a/lxc/tests/_run b/lxc/tests/_run index b166802..dbcc47b 100755 --- a/lxc/tests/_run +++ b/lxc/tests/_run @@ -6,6 +6,8 @@ echo -n 'testing bash = ' ../../cli/execute bash bash.sh echo -n 'testing c = ' ../../cli/execute c c.c +echo -n 'testing clojure = ' +../../cli/execute clojure clojure.clj echo -n 'testing cpp = ' ../../cli/execute cpp cpp.cpp echo -n 'testing crystal = ' @@ -34,6 +36,8 @@ echo -n 'testing julia = ' ../../cli/execute julia julia.jl echo -n 'testing kotlin = ' ../../cli/execute kotlin kotlin.kt +echo -n 'testing lolcode = ' +../../cli/execute lolcode lolcode.lol echo -n 'testing lisp = ' ../../cli/execute lisp lisp.cl echo -n 'testing nasm 32 bit = ' From 66a602038b87d3c7e271e563e3159c22873325bb Mon Sep 17 00:00:00 2001 From: Brian Seymour Date: Fri, 12 Mar 2021 13:58:16 -0600 Subject: [PATCH 5/6] specify m2 directory explicitly --- lxc/executors/clojure | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lxc/executors/clojure b/lxc/executors/clojure index 7298893..f82f9e8 100644 --- a/lxc/executors/clojure +++ b/lxc/executors/clojure @@ -1,4 +1,4 @@ #!/bin/bash cd /tmp/$1 -timeout -s KILL 10 xargs -a args.args -d '\n' clojure -M code.code < stdin.stdin +timeout -s KILL 10 xargs -a args.args -d '\n' clojure -Sdeps '{:mvn/local-repo "/opt/.m2/repository"}' -M code.code < stdin.stdin From 6ff766d90b756b0c1c1a560042c1c313d829af3b Mon Sep 17 00:00:00 2001 From: Brian Seymour Date: Fri, 12 Mar 2021 14:12:25 -0600 Subject: [PATCH 6/6] fix deno, fix clojure version, lolcode dynamic version --- api/src/languages.js | 2 ++ lxc/executors/deno | 3 ++- lxc/util/versions | 2 +- readme.md | 1 + 4 files changed, 6 insertions(+), 2 deletions(-) diff --git a/api/src/languages.js b/api/src/languages.js index 6ac2f14..b1c93d2 100644 --- a/api/src/languages.js +++ b/api/src/languages.js @@ -22,6 +22,8 @@ const languages = require('../../config/languages.json'); versions[language] = /\d+/.exec(lines[1])?.[0]; } else if (language === 'emacs') { versions[language] = /\d+\.\d+/.exec(lines[1])?.[0]; + } else if (language === 'clojure') { + versions[language] = /\d+\.\d+\.\d+\.\d+/.exec(lines[1])?.[0]; } else { versions[language] = /\d+\.\d+\.\d+/.exec(section)?.[0]; } diff --git a/lxc/executors/deno b/lxc/executors/deno index 8ec4c14..85bdd93 100755 --- a/lxc/executors/deno +++ b/lxc/executors/deno @@ -1,4 +1,5 @@ #!/bin/bash cd /tmp/$1 -timeout -s KILL 3 xargs -a args.args -d '\n' NO_COLOR=true deno run code.code < stdin.stdin +export NO_COLOR=true +timeout -s KILL 3 xargs -a args.args -d '\n' deno run code.code < stdin.stdin diff --git a/lxc/util/versions b/lxc/util/versions index 5fd2866..49ec747 100755 --- a/lxc/util/versions +++ b/lxc/util/versions @@ -82,7 +82,7 @@ lxc-attach --clear-env -n piston -- /bin/bash -l -c "sbcl --version" echo '---' echo 'lolcode' -echo '1.0.0' +lxc-attach --clear-env -n piston -- /bin/bash -l -c "lci --version" echo '---' echo 'lua' diff --git a/readme.md b/readme.md index d58b4e5..3628d2a 100644 --- a/readme.md +++ b/readme.md @@ -260,6 +260,7 @@ Content-Type: application/json `brainfuck`, `c`, `cpp`, +`clojure`, `crystal`, `csharp`, `d`,