Easy and standardized docker images for 200+ esoteric (and non-esoteric) languages.
Easy and standardized docker images for 200+ esoteric (and non-esoteric) languages.
Distributed docker images are separated for each esolangs.
For example docker image for Evil language is named as esolang/evil
, which is hosted on Docker Hub.
Suppose you have program in the current directory,
$ echo aeeeaeeewueuueweeueeuewwaaaweaaewaeaawueweeeaeeewaaawueeueweeaweeeueuw > program.evil
then you can run the program like the following.
$ docker run -v `pwd`:/code:ro esolang/evil evil /code/program.evil
Hello, World!
esolang-box 2.2.0 supports tracing of execve
and execveat
syscalls by strace command.
Setting STRACE_OUTPUT_PATH
environment variables and enabling ptrace will produce strace log to the specified path.
$ docker run --cap-add=SYS_PTRACE --rm -v `pwd`:/code --env STRACE_OUTPUT_PATH=/code/strace.txt esolang/evil evil /code/program.evil
Hello, World!
Some considerations:
--cap-add=SYS_PTRACE
(especially you must not use it with Xenial).Simple benchmark:
~ # cat benchmark.rb
sum = 0
1000.times do |i|
seq = `seq #{i}`.split.map(&:to_i)
sum = seq.sum
end
p sum
~ # echo -n "" | time ruby benchmark.rb
499500
real 0m 3.57s
user 0m 0.78s
sys 0m 0.70s
~ # echo -n "" | time strace -f -q -o strace.txt -e trace=execve,execveat ruby benchmark.rb
499500
real 0m 28.90s
user 0m 1.19s
sys 0m 13.73s
esolang/base
esolang/build-base
esolang/multi-reader
: multi-reader
esolang/osecpu
: osecpu
esolang/osecpu-aska
: osecpu-aska
esolang/rescript
: ReScript
esolang/codemania
: CodeMania
esolang/3var
: 3var
esolang/axo
: Axo
esolang/befunge93
: Befunge-93
esolang/befunge98
: Befunge-98
esolang/c-gcc
: C (GCC)
esolang/dis
: Dis
esolang/glass
: Glass
esolang/r
: R
esolang/ruby
: Ruby 3.2.0
esolang/ruby-trunk
: Ruby trunk
esolang/golfscript
: GolfScript
esolang/hexagony
: Hexagony
esolang/stackcats
: Stack Cats
esolang/standback
: (?i:standback)
esolang/starry
: Starry
esolang/cy
: Cy
esolang/labyrinth
: Labyrinth
esolang/typhon
: Typhon
esolang/alice
: Alice
esolang/wake
: wake
esolang/reversed-c
: reversed-c
esolang/copos-rb
: copos (Ruby)
esolang/golfish
: golfish
esolang/pxem
: Pxem
esolang/arithmetic
: Arithmetic
esolang/vim
: Vim
esolang/pyramid-scheme
: Pyramid Scheme
esolang/brainfuck-esomer
: Brainfuck (esomer)
esolang/goruby
: goruby
esolang/ruby1
: Ruby 1.8
esolang/make
: Make
esolang/bash-pure
: Bash (pure)
esolang/fish-shell-pure
: Fish (pure)
esolang/zsh-pure
: Zsh (pure)
esolang/malbolge
: Malbolge
esolang/piet
: Piet
esolang/python1
: Python 1
esolang/rail
: Rail
esolang/simula
: Simula
esolang/snowman
: Snowman
esolang/streem
: Streem
esolang/unlambda
: Unlambda
esolang/verilog
: Verilog (Icarus Verilog)
esolang/wierd
: Wierd
esolang/wordcpu
: Word!CPU
esolang/aheui
: Aheui
esolang/beatnik
: Beatnik
esolang/blc
: Binary lambda calculus
esolang/spl
: Shakespeare
esolang/intercal
: INTERCAL
esolang/lolcode
: LOLCODE
esolang/minus
: Minus
esolang/taxi
: Taxi
esolang/adjust
: ADJUST
esolang/braille
: Braille
esolang/rust
: Rust
esolang/cubically
: Cubically
esolang/sceql
: Sceql
esolang/apl
: APL
esolang/wat
: WebAssembly Text Format
esolang/lazyk
: Lazy-K
esolang/doubleplusungood
: Doubleplusungood
esolang/llvm-ir
: LLVM 10 IR
esolang/hanoi_stack
: Hanoi_Stack
esolang/dotnet-base
esolang/fortran
: Fortran 2018
esolang/ring
: Ring
esolang/snobol
: SNOBOL4
esolang/cobol
: COBOL
esolang/fetlang
: Fetlang
esolang/alphabeta
: AlphaBeta
esolang/tcl
: Tcl
esolang/rapira
: РАПИРА
esolang/vlang
: V
esolang/cyclicbrainfuck
: Cyclic Brainfuck
esolang/olang
: O
esolang/wren
: Wren
esolang/clisp-sbcl
: Common LISP (SBCL)
esolang/python2
: Python 2
esolang/haystack
: Haystack
esolang/stuck
: Stuck
esolang/unicat
: Unicat
esolang/unreadable
: Unreadable
esolang/zombie
: ZOMBIE
esolang/aubergine
: Aubergine
esolang/path
: PATH
esolang/recurse
: Recurse
esolang/fernando
: FerNANDo
esolang/gs2
: gs2
esolang/logicode
: Logicode
esolang/minimal2d
: Minimal-2D
esolang/i4004asm
: Intel 4004 Assembly
esolang/suzy
: Suzy
esolang/snusp
: SNUSP
esolang/brainfuck-esotope
: Brainfuck (esotope)
esolang/java
: Java
esolang/csharp
: C# (Mono)
esolang/jq
: jq
esolang/node
: Node.js
esolang/unicue
: Unicue
esolang/beam
: Beam
esolang/cubix
: Cubix
esolang/japt
: Japt
esolang/stop
: STOP
esolang/htms
: htms
esolang/maybelater
: Maybe Later
esolang/nadesiko
: なでしこ3
esolang/floating
: Floating
esolang/qlb
: قلب
esolang/calc
: LibreOffice Calc
esolang/nuts
: Nuts
esolang/canvas
: Canvas
esolang/wysiscript
: WysiScript
esolang/tetris
: Tetris
esolang/wenyan
: 文言
esolang/hakerh-base
esolang/compile-time-typescript
: Compile-time TypeScript
esolang/emojifunge
: emojifunge
esolang/octave
: Octave
esolang/perl
: Perl
esolang/php
: PHP 7.0
esolang/python3
: Python 3
esolang/ffb
: Foobar and Foobaz and Barbaz, oh my!
esolang/ezhil
: எழில்
esolang/exchangeif
: ExchangeIF
esolang/ubergenes
: UberGenes
esolang/2sable
: 2sable
esolang/fish
: ><>
esolang/arcyou
: Arcyóu
esolang/bots
: Bots
esolang/emoji
: Emoji
esolang/zucchini
: Zucchini
esolang/cardinal
: Cardinal
esolang/hbcht
: Half-Broken Car in Heavy Traffic
esolang/jelly
: Jelly
esolang/jellyfish
: Jellyfish
esolang/width
: Width
esolang/asciidots
: AsciiDots
esolang/picfunge
: PicFunge
esolang/iwashi
: Iwashi
esolang/hypertorus
: HyperTorus
esolang/gaia
: Gaia
esolang/triangularity
: Triangularity
esolang/backhand
: Backhand
esolang/mines
: Mines
esolang/mao
: MAO
esolang/pure-folders
: Pure Folders
esolang/cmd
: cmd.exe
esolang/lua
: Lua
esolang/ocaml
: OCaml
esolang/haskell
: Haskell
esolang/erlang
: Erlang
esolang/awk
: awk (GNU awk)
esolang/perl6
: Perl 6
esolang/ballerina
: Ballerina
esolang/sed
: sed
esolang/m4
: m4
esolang/racket
: Racket
esolang/gnuplot
: gnuplot
esolang/golang
: Go
esolang/zig
: Zig
esolang/ffmpeg
: FFmpeg
esolang/ubuntu-base
esolang/ada
: Ada (GNU GNAT)
esolang/crystal
: Crystal
esolang/d-dmd
: D (DMD)
esolang/d-gdc
: D (GDC)
esolang/emojicode
: Emojicode
esolang/powershell
: PowerShell
esolang/ed
: GNU ed
esolang/fugue
: Fugue
esolang/x86asm-nasm
: x86 Assembly (nasm)
esolang/swift
: Swift
esolang/cpp-clang
: C++ (Clang)
esolang/moo
: moo
esolang/abc
: ABC
esolang/tex
: TeX (plain)
esolang/egison
: Egison
esolang/sqlite3
: SQLite3
esolang/imagemagick
: ImageMagick
esolang/apache2-rewrite
: Apache mod_rewrite
esolang/nim-lang
: Nim
esolang/csound
: Csound
esolang/brainfuck-bfi
: Brainfuck (BFI)
Simulates behavior of "Bash (builtins)" in Anarchy Golf.
\n
in input is replaced as single space.newline$
at tail of output.input
entry.source
.Unlike Brainfuck (esotope)
, this execution simulates behavior of "brainfuck" in Anarchy Golf.
To achieve this, I have patched a tricky line to the original code.
--- BFI.c
+++ BFI.c
@@ -46,6 +46,7 @@
int pc, args, xc, prog_len, l = 0;
int x[32768];
int p[32768];
+ int xxx[1] = {'['};
FILE *stream, *fopen();
Write the constexpr function f
that receives the const char*
input as an argument and returns const char*
output.
You can use coq.io.
Input file is given as input.in
. You should write out to output.out
.
Note: DO NOT LISTEN TO GENERATED PROGRAM, IT MAY CONTAIN UNEXPECTEDLY LOUD SOUNDS, AND MAY CAUSE EAR DAMAGE.
Input file is given as in.txt
. You should write out to out.txt
.
You can use both video and audio.
Note: DO NOT LISTEN TO out.pcm, IT MAY CONTAIN UNEXPECTEDLY LOUD SOUNDS, AND MAY CAUSE EAR DAMAGE.
Input is given as STDIN
environment variable. This spec is equivalent to Anarchy Golf.
You can write CSV with the content below the B line.
The input is given in A1 cell.
Output the final result into B1 cell.
Your program must follow these restrictions:
osecpu_ask.h
and app.ask
are available at the same directoryThe input is given in an file at first argument. You can get the input as follows (see app0129):
Int32s fsize:R01;
VPtr p:P01;
junkApi_fileRead(fsize, p, 1);
The official archive is built on Windows. To develop on GNU/Linux, follow this article: takeutch-kemeco's note
The first line is the file name of the pxem code.
The rest is the content of the pxem code.
The input is given as the content of tag <input/>
.
Transform that into the desired value.
Below are the list of the languages that cannot even do the minimal jobs needed for esolang-battle.
Prerequires dobi.
$ cd /path/to/esolang-box
$ ruby build.rb
$ dobi
Tested with Ruby 3.0.0
$ bundle install
$ bundle exec rspec