diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index c49e6b5a..34554563 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -25,7 +25,6 @@ jobs: sudo docker cp qr:/usr/local/share/quine-relay/QR.sed spoiler/ sudo docker cp qr:/usr/local/share/quine-relay/QR.spl spoiler/ sudo docker cp qr:/usr/local/share/quine-relay/QR.sl spoiler/ - sudo docker cp qr:/usr/local/share/quine-relay/QR.st spoiler/ sudo docker cp qr:/usr/local/share/quine-relay/QR.sml spoiler/ sudo docker cp qr:/usr/local/share/quine-relay/QR.sq spoiler/ sudo docker cp qr:/usr/local/share/quine-relay/QR.ss spoiler/ @@ -119,6 +118,7 @@ jobs: sudo docker cp qr:/usr/local/share/quine-relay/QR.mk spoiler/ sudo docker cp qr:/usr/local/share/quine-relay/QR.mac spoiler/ sudo docker cp qr:/usr/local/share/quine-relay/QR.mzn spoiler/ + sudo docker cp qr:/usr/local/share/quine-relay/QR.mod spoiler/ sudo docker cp qr:/usr/local/share/quine-relay/QR.il spoiler/ sudo docker cp qr:/usr/local/share/quine-relay/QR.mustache spoiler/ sudo docker cp qr:/usr/local/share/quine-relay/QR.asm spoiler/ diff --git a/Dockerfile b/Dockerfile index a0164be2..2209165d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:23.04 +FROM ubuntu:23.10 ENV DEBIAN_FRONTEND noninteractive RUN rm /etc/dpkg/dpkg.cfg.d/excludes RUN apt-get update && apt-get upgrade -y @@ -14,7 +14,7 @@ RUN chronic apt-get -qq install -y f2c fish flex fp-compiler && chronic apt-get RUN chronic apt-get -qq install -y g++ gambas3-gb-pcre gambas3-scripter gap && chronic apt-get clean RUN chronic apt-get -qq install -y gawk gcc gdb gdc && chronic apt-get clean RUN chronic apt-get -qq install -y genius gforth gfortran ghc && chronic apt-get clean -RUN chronic apt-get -qq install -y ghostscript gnat gnu-smalltalk gnucobol4 && chronic apt-get clean +RUN chronic apt-get -qq install -y ghostscript gm2 gnat gnucobol4 && chronic apt-get clean RUN chronic apt-get -qq install -y gnuplot gobjc golang gpt && chronic apt-get clean RUN chronic apt-get -qq install -y groff groovy guile-3.0 gzip && chronic apt-get clean RUN chronic apt-get -qq install -y haxe icont iconx intercal && chronic apt-get clean diff --git a/Makefile b/Makefile index b76df564..68e72d92 100644 --- a/Makefile +++ b/Makefile @@ -92,27 +92,19 @@ QR.sl: QR.spl gcc -z muldefs -o QR -I ./vendor/local/include -L ./vendor/local/lib QR.spl.c -lspl -lm ./QR > QR.sl -QR.st: QR.sl +QR.sml: QR.sl @echo - @echo "##############################" - @echo "## 8: S-Lang -> Smalltalk ##" - @echo "##############################" - @echo - slsh QR.sl > QR.st - -QR.sml: QR.st - @echo - @echo "###################################" - @echo "## 9: Smalltalk -> Standard ML ##" - @echo "###################################" + @echo "################################" + @echo "## 8: S-Lang -> Standard ML ##" + @echo "################################" @echo - gst QR.st > QR.sml + slsh QR.sl > QR.sml QR.sq: QR.sml @echo - @echo "#################################" - @echo "## 10: Standard ML -> Subleq ##" - @echo "#################################" + @echo "################################" + @echo "## 9: Standard ML -> Subleq ##" + @echo "################################" @echo polyc -o QR QR.sml ./QR > QR.sq @@ -120,7 +112,7 @@ QR.sq: QR.sml QR.ss: QR.sq @echo @echo "#################################" - @echo "## 11: Subleq -> SurgeScript ##" + @echo "## 10: Subleq -> SurgeScript ##" @echo "#################################" @echo ruby vendor/subleq.rb QR.sq > QR.ss @@ -128,7 +120,7 @@ QR.ss: QR.sq QR.tcl: QR.ss @echo @echo "##############################" - @echo "## 12: SurgeScript -> Tcl ##" + @echo "## 11: SurgeScript -> Tcl ##" @echo "##############################" @echo surgescript QR.ss > QR.tcl @@ -136,7 +128,7 @@ QR.tcl: QR.ss QR.tcsh: QR.tcl @echo @echo "#######################" - @echo "## 13: Tcl -> tcsh ##" + @echo "## 12: Tcl -> tcsh ##" @echo "#######################" @echo tclsh QR.tcl > QR.tcsh @@ -144,7 +136,7 @@ QR.tcsh: QR.tcl QR.t: QR.tcsh @echo @echo "########################" - @echo "## 14: tcsh -> Thue ##" + @echo "## 13: tcsh -> Thue ##" @echo "########################" @echo tcsh QR.tcsh > QR.t @@ -152,7 +144,7 @@ QR.t: QR.tcsh QR.ts: QR.t @echo @echo "##############################" - @echo "## 15: Thue -> TypeScript ##" + @echo "## 14: Thue -> TypeScript ##" @echo "##############################" @echo ruby vendor/thue.rb QR.t > QR.ts @@ -160,7 +152,7 @@ QR.ts: QR.t QR.unl: QR.ts @echo @echo "##################################" - @echo "## 16: TypeScript -> Unlambda ##" + @echo "## 15: TypeScript -> Unlambda ##" @echo "##################################" @echo tsc --outFile QR.ts.js QR.ts @@ -169,7 +161,7 @@ QR.unl: QR.ts QR.vala: QR.unl @echo @echo "############################" - @echo "## 17: Unlambda -> Vala ##" + @echo "## 16: Unlambda -> Vala ##" @echo "############################" @echo ruby vendor/unlambda.rb QR.unl > QR.vala @@ -177,7 +169,7 @@ QR.vala: QR.unl QR.mid: QR.vala @echo @echo "##########################" - @echo "## 18: Vala -> Velato ##" + @echo "## 17: Vala -> Velato ##" @echo "##########################" @echo valac QR.vala @@ -186,7 +178,7 @@ QR.mid: QR.vala QR.v: QR.mid @echo @echo "#############################" - @echo "## 19: Velato -> Verilog ##" + @echo "## 18: Velato -> Verilog ##" @echo "#############################" @echo mono vendor/local/bin/Vlt.exe /s QR.mid @@ -195,7 +187,7 @@ QR.v: QR.mid QR.vim: QR.v @echo @echo "################################" - @echo "## 20: Verilog -> Vimscript ##" + @echo "## 19: Verilog -> Vimscript ##" @echo "################################" @echo iverilog -o QR QR.v @@ -204,7 +196,7 @@ QR.vim: QR.v QR.vb: QR.vim @echo @echo "#####################################" - @echo "## 21: Vimscript -> Visual Basic ##" + @echo "## 20: Vimscript -> Visual Basic ##" @echo "#####################################" @echo vim -EsS QR.vim > QR.vb @@ -212,7 +204,7 @@ QR.vb: QR.vim QR.wasm: QR.vb @echo @echo "#######################################################" - @echo "## 22: Visual Basic -> WebAssembly (Binary format) ##" + @echo "## 21: Visual Basic -> WebAssembly (Binary format) ##" @echo "#######################################################" @echo echo 'Exenet7.0false' > tmp.vbproj @@ -221,7 +213,7 @@ QR.wasm: QR.vb QR.wat: QR.wasm @echo @echo "####################################################################" - @echo "## 23: WebAssembly (Binary format) -> WebAssembly (Text format) ##" + @echo "## 22: WebAssembly (Binary format) -> WebAssembly (Text format) ##" @echo "####################################################################" @echo $(WASI_RUNTIME) QR.wasm > QR.wat @@ -229,7 +221,7 @@ QR.wat: QR.wasm QR.ws: QR.wat @echo @echo "###################################################" - @echo "## 24: WebAssembly (Text format) -> Whitespace ##" + @echo "## 23: WebAssembly (Text format) -> Whitespace ##" @echo "###################################################" @echo wat2wasm QR.wat -o QR.wat.wasm @@ -238,7 +230,7 @@ QR.ws: QR.wat QR.xslt: QR.ws @echo @echo "##############################" - @echo "## 25: Whitespace -> XSLT ##" + @echo "## 24: Whitespace -> XSLT ##" @echo "##############################" @echo ruby vendor/whitespace.rb QR.ws > QR.xslt @@ -246,7 +238,7 @@ QR.xslt: QR.ws QR.yab: QR.xslt @echo @echo "###########################" - @echo "## 26: XSLT -> Yabasic ##" + @echo "## 25: XSLT -> Yabasic ##" @echo "###########################" @echo xsltproc QR.xslt > QR.yab @@ -254,7 +246,7 @@ QR.yab: QR.xslt QR.yorick: QR.yab @echo @echo "#############################" - @echo "## 27: Yabasic -> Yorick ##" + @echo "## 26: Yabasic -> Yorick ##" @echo "#############################" @echo yabasic QR.yab > QR.yorick @@ -262,7 +254,7 @@ QR.yorick: QR.yab QR.azm: QR.yorick @echo @echo "##########################" - @echo "## 28: Yorick -> Zoem ##" + @echo "## 27: Yorick -> Zoem ##" @echo "##########################" @echo yorick -batch QR.yorick > QR.azm @@ -270,7 +262,7 @@ QR.azm: QR.yorick QR.zsh: QR.azm @echo @echo "#######################" - @echo "## 29: Zoem -> zsh ##" + @echo "## 28: Zoem -> zsh ##" @echo "#######################" @echo zoem -i QR.azm > QR.zsh @@ -278,7 +270,7 @@ QR.zsh: QR.azm QR.+: QR.zsh @echo @echo "#####################" - @echo "## 30: zsh -> A+ ##" + @echo "## 29: zsh -> A+ ##" @echo "#####################" @echo zsh QR.zsh > QR.+ @@ -286,7 +278,7 @@ QR.+: QR.zsh qr.adb: QR.+ @echo @echo "#####################" - @echo "## 31: A+ -> Ada ##" + @echo "## 30: A+ -> Ada ##" @echo "#####################" @echo a+ QR.+ > qr.adb @@ -294,7 +286,7 @@ qr.adb: QR.+ QR.als: qr.adb @echo @echo "########################" - @echo "## 32: Ada -> AFNIX ##" + @echo "## 31: Ada -> AFNIX ##" @echo "########################" @echo gnatmake qr.adb @@ -303,7 +295,7 @@ QR.als: qr.adb QR.aheui: QR.als @echo @echo "##########################" - @echo "## 33: AFNIX -> Aheui ##" + @echo "## 32: AFNIX -> Aheui ##" @echo "##########################" @echo LANG=C LD_LIBRARY_PATH=/usr/lib/afnix axi QR.als > QR.aheui @@ -311,7 +303,7 @@ QR.aheui: QR.als QR.a68: QR.aheui @echo @echo "#############################" - @echo "## 34: Aheui -> ALGOL 68 ##" + @echo "## 33: Aheui -> ALGOL 68 ##" @echo "#############################" @echo ruby vendor/aheui.rb QR.aheui > QR.a68 @@ -319,7 +311,7 @@ QR.a68: QR.aheui QR.ante: QR.a68 @echo @echo "############################" - @echo "## 35: ALGOL 68 -> Ante ##" + @echo "## 34: ALGOL 68 -> Ante ##" @echo "############################" @echo a68g QR.a68 > QR.ante @@ -327,7 +319,7 @@ QR.ante: QR.a68 QR.aj: QR.ante @echo @echo "###########################" - @echo "## 36: Ante -> AspectJ ##" + @echo "## 35: Ante -> AspectJ ##" @echo "###########################" @echo ruby vendor/ante.rb QR.ante > QR.aj @@ -335,7 +327,7 @@ QR.aj: QR.ante QR.asy: QR.aj @echo @echo "################################" - @echo "## 37: AspectJ -> Asymptote ##" + @echo "## 36: AspectJ -> Asymptote ##" @echo "################################" @echo ajc QR.aj @@ -344,7 +336,7 @@ QR.asy: QR.aj QR.dats: QR.asy @echo @echo "############################" - @echo "## 38: Asymptote -> ATS ##" + @echo "## 37: Asymptote -> ATS ##" @echo "############################" @echo asy QR.asy > QR.dats @@ -352,7 +344,7 @@ QR.dats: QR.asy QR.awk: QR.dats @echo @echo "######################" - @echo "## 39: ATS -> Awk ##" + @echo "## 38: ATS -> Awk ##" @echo "######################" @echo patscc -o QR QR.dats @@ -361,7 +353,7 @@ QR.awk: QR.dats QR.bash: QR.awk @echo @echo "#######################" - @echo "## 40: Awk -> bash ##" + @echo "## 39: Awk -> bash ##" @echo "#######################" @echo awk -f QR.awk > QR.bash @@ -369,7 +361,7 @@ QR.bash: QR.awk QR.bc: QR.bash @echo @echo "######################" - @echo "## 41: bash -> bc ##" + @echo "## 40: bash -> bc ##" @echo "######################" @echo bash QR.bash > QR.bc @@ -377,7 +369,7 @@ QR.bc: QR.bash QR.bsh: QR.bc @echo @echo "###########################" - @echo "## 42: bc -> BeanShell ##" + @echo "## 41: bc -> BeanShell ##" @echo "###########################" @echo BC_LINE_LENGTH=4000000 bc -q QR.bc > QR.bsh @@ -385,7 +377,7 @@ QR.bsh: QR.bc QR.bef: QR.bsh @echo @echo "################################" - @echo "## 43: BeanShell -> Befunge ##" + @echo "## 42: BeanShell -> Befunge ##" @echo "################################" @echo bsh QR.bsh > QR.bef @@ -393,7 +385,7 @@ QR.bef: QR.bsh QR.Blc: QR.bef @echo @echo "###########################" - @echo "## 44: Befunge -> BLC8 ##" + @echo "## 43: Befunge -> BLC8 ##" @echo "###########################" @echo cfunge QR.bef > QR.Blc @@ -401,7 +393,7 @@ QR.Blc: QR.bef QR.bf: QR.Blc @echo @echo "#############################" - @echo "## 45: BLC8 -> Brainfuck ##" + @echo "## 44: BLC8 -> Brainfuck ##" @echo "#############################" @echo ruby vendor/blc.rb < QR.Blc > QR.bf @@ -409,7 +401,7 @@ QR.bf: QR.Blc QR.c: QR.bf @echo @echo "##########################" - @echo "## 46: Brainfuck -> C ##" + @echo "## 45: Brainfuck -> C ##" @echo "##########################" @echo ruby vendor/bf.rb QR.bf > QR.c @@ -417,7 +409,7 @@ QR.c: QR.bf QR.cpp: QR.c @echo @echo "####################" - @echo "## 47: C -> C++ ##" + @echo "## 46: C -> C++ ##" @echo "####################" @echo $(CC) -o QR QR.c @@ -426,7 +418,7 @@ QR.cpp: QR.c QR.cs: QR.cpp @echo @echo "#####################" - @echo "## 48: C++ -> C# ##" + @echo "## 47: C++ -> C# ##" @echo "#####################" @echo $(CXX) -o QR QR.cpp @@ -435,7 +427,7 @@ QR.cs: QR.cpp QR.chef: QR.cs @echo @echo "######################" - @echo "## 49: C# -> Chef ##" + @echo "## 48: C# -> Chef ##" @echo "######################" @echo echo 'Exenet7.0false' > tmp.csproj @@ -444,7 +436,7 @@ QR.chef: QR.cs QR.clj: QR.chef @echo @echo "###########################" - @echo "## 50: Chef -> Clojure ##" + @echo "## 49: Chef -> Clojure ##" @echo "###########################" @echo PERL5LIB=vendor/local/lib/perl5 compilechef QR.chef QR.chef.pl @@ -453,7 +445,7 @@ QR.clj: QR.chef QR.cmake: QR.clj @echo @echo "############################" - @echo "## 51: Clojure -> CMake ##" + @echo "## 50: Clojure -> CMake ##" @echo "############################" @echo clojure QR.clj > QR.cmake @@ -461,7 +453,7 @@ QR.cmake: QR.clj QR.cob: QR.cmake @echo @echo "##########################" - @echo "## 52: CMake -> Cobol ##" + @echo "## 51: CMake -> Cobol ##" @echo "##########################" @echo cmake -P QR.cmake > QR.cob @@ -469,7 +461,7 @@ QR.cob: QR.cmake QR.coffee: QR.cob @echo @echo "#################################" - @echo "## 53: Cobol -> CoffeeScript ##" + @echo "## 52: Cobol -> CoffeeScript ##" @echo "#################################" @echo cobc -O2 -x QR.cob @@ -478,7 +470,7 @@ QR.coffee: QR.cob QR.lisp: QR.coffee @echo @echo "#######################################" - @echo "## 54: CoffeeScript -> Common Lisp ##" + @echo "## 53: CoffeeScript -> Common Lisp ##" @echo "#######################################" @echo coffee --nodejs --stack_size=100000 QR.coffee > QR.lisp @@ -486,7 +478,7 @@ QR.lisp: QR.coffee QR.cr: QR.lisp @echo @echo "##################################" - @echo "## 55: Common Lisp -> Crystal ##" + @echo "## 54: Common Lisp -> Crystal ##" @echo "##################################" @echo clisp QR.lisp > QR.cr @@ -494,7 +486,7 @@ QR.cr: QR.lisp QR.d: QR.cr @echo @echo "########################" - @echo "## 56: Crystal -> D ##" + @echo "## 55: Crystal -> D ##" @echo "########################" @echo crystal QR.cr > QR.d @@ -502,7 +494,7 @@ QR.d: QR.cr QR.dfy: QR.d @echo @echo "######################" - @echo "## 57: D -> Dafny ##" + @echo "## 56: D -> Dafny ##" @echo "######################" @echo gdc -o QR QR.d @@ -511,7 +503,7 @@ QR.dfy: QR.d QR.dc: QR.dfy @echo @echo "#######################" - @echo "## 58: Dafny -> dc ##" + @echo "## 57: Dafny -> dc ##" @echo "#######################" @echo dafny QR.dfy @@ -520,7 +512,7 @@ QR.dc: QR.dfy QR.dhall: QR.dc @echo @echo "#######################" - @echo "## 59: dc -> Dhall ##" + @echo "## 58: dc -> Dhall ##" @echo "#######################" @echo dc QR.dc > QR.dhall || true @@ -528,7 +520,7 @@ QR.dhall: QR.dc QR.exs: QR.dhall @echo @echo "###########################" - @echo "## 60: Dhall -> Elixir ##" + @echo "## 59: Dhall -> Elixir ##" @echo "###########################" @echo dhall text --file QR.dhall > QR.exs @@ -536,7 +528,7 @@ QR.exs: QR.dhall QR.el: QR.exs @echo @echo "################################" - @echo "## 61: Elixir -> Emacs Lisp ##" + @echo "## 60: Elixir -> Emacs Lisp ##" @echo "################################" @echo elixir QR.exs > QR.el @@ -544,7 +536,7 @@ QR.el: QR.exs QR.erl: QR.el @echo @echo "################################" - @echo "## 62: Emacs Lisp -> Erlang ##" + @echo "## 61: Emacs Lisp -> Erlang ##" @echo "################################" @echo emacs -Q --script QR.el > QR.erl @@ -552,7 +544,7 @@ QR.erl: QR.el QR.fsx: QR.erl @echo @echo "########################" - @echo "## 63: Erlang -> F# ##" + @echo "## 62: Erlang -> F# ##" @echo "########################" @echo escript QR.erl > QR.fsx @@ -560,7 +552,7 @@ QR.fsx: QR.erl QR.false: QR.fsx @echo @echo "#######################" - @echo "## 64: F# -> FALSE ##" + @echo "## 63: F# -> FALSE ##" @echo "#######################" @echo echo 'Exenet7.0false' > tmp.fsproj @@ -569,7 +561,7 @@ QR.false: QR.fsx QR.fl: QR.false @echo @echo "#########################" - @echo "## 65: FALSE -> Flex ##" + @echo "## 64: FALSE -> Flex ##" @echo "#########################" @echo ruby vendor/false.rb QR.false > QR.fl @@ -577,7 +569,7 @@ QR.fl: QR.false QR.fish: QR.fl @echo @echo "########################" - @echo "## 66: Flex -> Fish ##" + @echo "## 65: Flex -> Fish ##" @echo "########################" @echo flex -o QR.fl.c QR.fl @@ -587,7 +579,7 @@ QR.fish: QR.fl QR.fs: QR.fish @echo @echo "#########################" - @echo "## 67: Fish -> Forth ##" + @echo "## 66: Fish -> Forth ##" @echo "#########################" @echo fish QR.fish > QR.fs @@ -595,7 +587,7 @@ QR.fs: QR.fish QR.f: QR.fs @echo @echo "##############################" - @echo "## 68: Forth -> FORTRAN77 ##" + @echo "## 67: Forth -> FORTRAN77 ##" @echo "##############################" @echo gforth QR.fs > QR.f @@ -603,7 +595,7 @@ QR.f: QR.fs QR.f90: QR.f @echo @echo "##################################" - @echo "## 69: FORTRAN77 -> Fortran90 ##" + @echo "## 68: FORTRAN77 -> Fortran90 ##" @echo "##################################" @echo @mv QR.c QR.c.bak @@ -614,7 +606,7 @@ QR.f90: QR.f QR.gbs: QR.f90 @echo @echo "######################################" - @echo "## 70: Fortran90 -> Gambas script ##" + @echo "## 69: Fortran90 -> Gambas script ##" @echo "######################################" @echo gfortran -o QR QR.f90 @@ -623,7 +615,7 @@ QR.gbs: QR.f90 QR.g: QR.gbs @echo @echo "################################" - @echo "## 71: Gambas script -> GAP ##" + @echo "## 70: Gambas script -> GAP ##" @echo "################################" @echo $(GBS) QR.gbs > QR.g @@ -631,7 +623,7 @@ QR.g: QR.gbs QR.gdb: QR.g @echo @echo "######################" - @echo "## 72: GAP -> GDB ##" + @echo "## 71: GAP -> GDB ##" @echo "######################" @echo gap -q QR.g > QR.gdb @@ -639,7 +631,7 @@ QR.gdb: QR.g QR.gel: QR.gdb @echo @echo "###############################" - @echo "## 73: GDB -> GEL (Genius) ##" + @echo "## 72: GDB -> GEL (Genius) ##" @echo "###############################" @echo gdb -q -x QR.gdb > QR.gel @@ -647,7 +639,7 @@ QR.gel: QR.gdb QR.plt: QR.gel @echo @echo "###################################" - @echo "## 74: GEL (Genius) -> Gnuplot ##" + @echo "## 73: GEL (Genius) -> Gnuplot ##" @echo "###################################" @echo genius QR.gel > QR.plt @@ -655,7 +647,7 @@ QR.plt: QR.gel QR.go: QR.plt @echo @echo "#########################" - @echo "## 75: Gnuplot -> Go ##" + @echo "## 74: Gnuplot -> Go ##" @echo "#########################" @echo gnuplot QR.plt > QR.go @@ -663,7 +655,7 @@ QR.go: QR.plt QR.gs: QR.go @echo @echo "############################" - @echo "## 76: Go -> GolfScript ##" + @echo "## 75: Go -> GolfScript ##" @echo "############################" @echo go run QR.go > QR.gs @@ -671,7 +663,7 @@ QR.gs: QR.go QR.gpt: QR.gs @echo @echo "####################################" - @echo "## 77: GolfScript -> G-Portugol ##" + @echo "## 76: GolfScript -> G-Portugol ##" @echo "####################################" @echo ruby vendor/golfscript.rb QR.gs > QR.gpt @@ -679,7 +671,7 @@ QR.gpt: QR.gs QR.grass: QR.gpt @echo @echo "###############################" - @echo "## 78: G-Portugol -> Grass ##" + @echo "## 77: G-Portugol -> Grass ##" @echo "###############################" @echo mv QR.c QR.c.bak @@ -691,7 +683,7 @@ QR.grass: QR.gpt QR.groovy: QR.grass @echo @echo "###########################" - @echo "## 79: Grass -> Groovy ##" + @echo "## 78: Grass -> Groovy ##" @echo "###########################" @echo ruby vendor/grass.rb QR.grass > QR.groovy @@ -699,7 +691,7 @@ QR.groovy: QR.grass QR.gz: QR.groovy @echo @echo "##########################" - @echo "## 80: Groovy -> Gzip ##" + @echo "## 79: Groovy -> Gzip ##" @echo "##########################" @echo groovy QR.groovy > QR.gz @@ -707,7 +699,7 @@ QR.gz: QR.groovy QR.hs: QR.gz @echo @echo "###########################" - @echo "## 81: Gzip -> Haskell ##" + @echo "## 80: Gzip -> Haskell ##" @echo "###########################" @echo gzip -cd QR.gz > QR.hs @@ -715,7 +707,7 @@ QR.hs: QR.gz QR.hx: QR.hs @echo @echo "###########################" - @echo "## 82: Haskell -> Haxe ##" + @echo "## 81: Haskell -> Haxe ##" @echo "###########################" @echo ghc QR.hs @@ -724,7 +716,7 @@ QR.hx: QR.hs QR.icn: QR.hx @echo @echo "########################" - @echo "## 83: Haxe -> Icon ##" + @echo "## 82: Haxe -> Icon ##" @echo "########################" @echo haxe -main QR -neko QR.n @@ -733,7 +725,7 @@ QR.icn: QR.hx QR.i: QR.icn @echo @echo "############################" - @echo "## 84: Icon -> INTERCAL ##" + @echo "## 83: Icon -> INTERCAL ##" @echo "############################" @echo icont -s QR.icn @@ -742,7 +734,7 @@ QR.i: QR.icn QR.j: QR.i @echo @echo "##############################" - @echo "## 85: INTERCAL -> Jasmin ##" + @echo "## 84: INTERCAL -> Jasmin ##" @echo "##############################" @echo @mv QR.c QR.c.bak @@ -754,7 +746,7 @@ QR.j: QR.i QR.java: QR.j @echo @echo "##########################" - @echo "## 86: Jasmin -> Java ##" + @echo "## 85: Jasmin -> Java ##" @echo "##########################" @echo jasmin QR.j @@ -763,7 +755,7 @@ QR.java: QR.j QR.js: QR.java @echo @echo "##############################" - @echo "## 87: Java -> JavaScript ##" + @echo "## 86: Java -> JavaScript ##" @echo "##############################" @echo javac QR.java @@ -772,7 +764,7 @@ QR.js: QR.java QR.jq: QR.js @echo @echo "############################" - @echo "## 88: JavaScript -> Jq ##" + @echo "## 87: JavaScript -> Jq ##" @echo "############################" @echo $(JAVASCRIPT) QR.js > QR.jq @@ -780,7 +772,7 @@ QR.jq: QR.js QR.jsfuck: QR.jq @echo @echo "########################" - @echo "## 89: Jq -> JSFuck ##" + @echo "## 88: Jq -> JSFuck ##" @echo "########################" @echo jq -r -n -f QR.jq > QR.jsfuck @@ -788,7 +780,7 @@ QR.jsfuck: QR.jq QR.kt: QR.jsfuck @echo @echo "############################" - @echo "## 90: JSFuck -> Kotlin ##" + @echo "## 89: JSFuck -> Kotlin ##" @echo "############################" @echo ulimit -s unlimited && $(JAVASCRIPT) --stack_size=100000 QR.jsfuck > QR.kt @@ -796,7 +788,7 @@ QR.kt: QR.jsfuck QR.ksh: QR.kt @echo @echo "#########################" - @echo "## 91: Kotlin -> ksh ##" + @echo "## 90: Kotlin -> ksh ##" @echo "#########################" @echo kotlinc QR.kt -include-runtime -d QR.jar @@ -805,7 +797,7 @@ QR.ksh: QR.kt QR.lazy: QR.ksh @echo @echo "#########################" - @echo "## 92: ksh -> Lazy K ##" + @echo "## 91: ksh -> Lazy K ##" @echo "#########################" @echo ksh QR.ksh > QR.lazy @@ -813,7 +805,7 @@ QR.lazy: QR.ksh qr.li: QR.lazy @echo @echo "############################" - @echo "## 93: Lazy K -> Lisaac ##" + @echo "## 92: Lazy K -> Lisaac ##" @echo "############################" @echo lazyk QR.lazy > qr.li @@ -821,7 +813,7 @@ qr.li: QR.lazy QR.ls: qr.li @echo @echo "################################" - @echo "## 94: Lisaac -> LiveScript ##" + @echo "## 93: Lisaac -> LiveScript ##" @echo "################################" @echo @mv QR.c QR.c.bak @@ -832,7 +824,7 @@ QR.ls: qr.li QR.ll: QR.ls @echo @echo "##################################" - @echo "## 95: LiveScript -> LLVM asm ##" + @echo "## 94: LiveScript -> LLVM asm ##" @echo "##################################" @echo lsc QR.ls > QR.ll @@ -840,7 +832,7 @@ QR.ll: QR.ls QR.lol: QR.ll @echo @echo "###############################" - @echo "## 96: LLVM asm -> LOLCODE ##" + @echo "## 95: LLVM asm -> LOLCODE ##" @echo "###############################" @echo @mv QR.bc QR.bc.bak @@ -851,7 +843,7 @@ QR.lol: QR.ll QR.lua: QR.lol @echo @echo "##########################" - @echo "## 97: LOLCODE -> Lua ##" + @echo "## 96: LOLCODE -> Lua ##" @echo "##########################" @echo lci QR.lol > QR.lua @@ -859,7 +851,7 @@ QR.lua: QR.lol QR.m4: QR.lua @echo @echo "#####################" - @echo "## 98: Lua -> M4 ##" + @echo "## 97: Lua -> M4 ##" @echo "#####################" @echo lua5.3 QR.lua > QR.m4 @@ -867,36 +859,45 @@ QR.m4: QR.lua QR.mk: QR.m4 @echo @echo "##########################" - @echo "## 99: M4 -> Makefile ##" + @echo "## 98: M4 -> Makefile ##" @echo "##########################" @echo m4 QR.m4 > QR.mk QR.mac: QR.mk @echo - @echo "###############################" - @echo "## 100: Makefile -> Maxima ##" - @echo "###############################" + @echo "##############################" + @echo "## 99: Makefile -> Maxima ##" + @echo "##############################" @echo make -f QR.mk > QR.mac QR.mzn: QR.mac @echo @echo "###############################" - @echo "## 101: Maxima -> MiniZinc ##" + @echo "## 100: Maxima -> MiniZinc ##" @echo "###############################" @echo @if [ "$(CI)" = "true" ]; then mv /tmp /tmp.bak && ln -s /dev/shm /tmp; fi maxima -q --init-mac=QR.mac > QR.mzn @if [ "$(CI)" = "true" ]; then rm /tmp && mv /tmp.bak /tmp; fi -QR.il: QR.mzn +QR.mod: QR.mzn + @echo + @echo "#################################" + @echo "## 101: MiniZinc -> Modula-2 ##" + @echo "#################################" + @echo + minizinc --solver Gecode --soln-sep '' QR.mzn > QR.mod + +QR.il: QR.mod @echo @echo "#############################" - @echo "## 102: MiniZinc -> MSIL ##" + @echo "## 102: Modula-2 -> MSIL ##" @echo "#############################" @echo - minizinc --solver Gecode --soln-sep '' QR.mzn > QR.il + gm2 -fiso QR.mod -o QR + ./QR > QR.il QR.mustache: QR.il @echo diff --git a/QR.rb b/QR.rb index fab547fe..a53bfa80 100644 --- a/QR.rb +++ b/QR.rb @@ -1,65 +1,67 @@ -eval$s=%q(eval(%w(B=92.chr;g=32.chr;puts(eval(%q(N=10.chr;n=0;e=->s{Q[Q[s,B],?"].K(N,B+?n)};E=->s{'("'+e[s]+'")'};d=->s,t=?"{s.K(t){t+t}};def~f(s,n)s.K(/.{1,#{n*255}}/m){yield$S=E[$s=$&]}end;Q=->s,t=?${s.K(t){B+$&}};R=";return~0;";V=->s,a,z{s.K(/( -#{B*4})+/){a+"#{$&.size/2}"+z}};C=%w(System.Console~Write);$C=C*?.;$D="program~QR";$G="~contents~of"+$F="~the~mix!g~bowl";$L="public~static";$W="s.WriteByte";rp=->s,r{v="";[r.!ject(s){|s,j|o={};m=n=0;s.size.times{|i|o[f=s[i,2]]||=0;c=o[f]+=1;m(p(3+ord~c);Z"-1~0~";c))#{E[~~~~~~%(object"Application"{state"ma!"{foreach(s~![#{f(%(puts~"#{Q[e[%(echo~'a::=`x7e#{Q[Q["let~s=#{E[%(void~p(!t[]c){foreach(!t~v~!~c)stdo -ut.Zf("%c%c",v/256,v%256);}void~mX{!t[]a;p({19796,26724,0,6,0,1,480,19796,29291,#{s=%(module~QR;!itial~beg!~#{f((%(Module~QR`nSub~MX`nDim~c,n:Dim~s~As~Object=#{C[0]}.OpenStandardOutput():Dim~t()As~Short={26,34,86,127,148,158,200}:For~Each~d~!"Basm -CBBBCRE`x60F<<<D`x21BE@ABRCABRCABRCA`x4a`x21CE@~B-BB~CACk:CvACqRC~COBMADRCACRCADRCABRCABRC~BACj:B-BBOBMADRCADRCADRCAFRCMM} -CBABM`x7e#{40.chr}BBBCBBB,BBBDBBB0BBBDBBB4BBB=BBB?BBB;BBB~...^t..^n..(module(import~:wasi_snapshot_preview1:~:fd_H:~(func(param~i32~i32~i32~i32)(result~i32)))(memory(export~:memory:)(data~:^08^00^00^00$:))(func(export~:_start:)i32.const~1~i32.cons -t~0~i32.const~1~i32.const~0~call~0~drop))":c=Asc(d):If~c=36:For~c=0To~11:#$W(If(c~Mod~3,Asc(#{s="<#{U="xsl:template"}~match='/'><`x21[C DATA[#{%( sub~f(s$,n)Z(s$);:for~i=1to~n~Z("Y");:next:end~sub:f("#{V[e[%(H,format="#{y="";f("^H{-}{txt}{#{Q["echo~-E~$'#{Q[Q[E[%(with~Ada.Text_Io;procedure~qr~is~beg!~Ada.Text_Io.Put(" -#{d[%(trans~B(Buffer)`ntrans~O(n){`nB:add(Byte(+~12 8~n))} `ntr ans~f(v~ n){`nO(+(/~n~64)107)`nO(n:mod~64)`nO~v}`ntrans~D(n){if(<~n~4){f(+(*~6~n)9)48}{if(n:odd-p){D(-~n~3)`nf~27~48`nf~36~11}{D(/~n~2)`nf~21~48`nf~48~20}}}`ntrans~S(Buffe -r"#{e[%W[STRINGz:=~226+~153,a:=z+~166,b:=a+"2"+z+ ~16 0 ,c:=b+"8"+z+~165,t:="#{d[%(class~QR{#$L~void~ma!(SJ[]a){a=#{E["H('#{Q[e["implement~m a!0()=Z"+E["BEGIN{Z#{E[%(echo~'#{%(f(s){System.out.Z(s);}s="389 -**6+44*6+00p45*,";for(c:#{E[(s="#!clude `n!t~mX{std::cout<<#{E[%(class~Program{#$L~void~MX{#$C("Qu!e~Re lay~Coffee.^n^nIngredients.^n");for(!t~i=9;i++<126;)#$C -($"{i}~g~caffe!e~{i}^n");#$C("^nMethod.^n");f oreach(char~c~!#{E[%((doseq[s(lazy-cat["IDENTIFICATION~DIVIS ION.""PROGRAM-ID.~QR.""PROCEDURE~DIVISION."'DISPLA -`x59](map~#(str"~~~~^""(.replace~%1"^"""^"^" ")"^"")(re-seq~#".{1,45}""#{e["(f=(n)->Array(n+1) .jo!~'Y');console.log('%s',#{V[E[%((H-l!e"#{e[ -"puts#{E["import~std.stdio;void~mX{H(`x60#{ %(method~MX{Z(@"#{d["['']p[#{"IO.puts"+E[% ((pr!c~"#{e["`nma!(_)->`nio:fH#{d[E['Zfn("" -"'+d[?"+"%option~noyywrap`n%%`n%%`n!t~mX{ puts#{E["echo~'#{Q[Q[%(~:~A~."#{g*9}"~;~: ~B~A~."~WRITE(*,*)'"~A~;~:~C~B~T`x59PE~. -"~'"~CR~;~:~D~S"~#$D"~C~S^"~Z~^"(&"~C~S ^"~# {e[%(Z"#{e["s:=OutputTextUser();Wr iteAll(s,#{E[% (Zf"#{e[d[f('set~Z"-";Z'+E[%(package~ -ma!;import"fmt";func~mX{fmt.Pr!t#{E[%( 236:j ;{119:i;{206i-:i;.48<{71+}{[ i]^48-*}if}%}:t;"algoritmo~Q R;!"[195][173]++'cio~imprima("'"0131 -41"t"/12131"t~6*"/1:1918151:??6271413 /4=3 626612/2/353251215/`x5a0`x5 a0R"t"#{e[%(z=new~java.util.zip.G`x5aI POutputStream(System.out);z.H('#{" -ma!=putStr"+E["class~QR{#$L~function~ mX{neko.Lib.Z#{E[%(pro cedure~mX;i:=c:=0;s:=# {E[%(.class~public~QR`n.super~#{$T="java/io/ Pr!tStream"}`n.method~#$L~ma!([L -#{S="java/lang/S"}J;)V~;]`n.limit~sta ck~2 `ngetstatic~#{S}ystem/out~L#$T;`nl dc~"#{e[%(class~Q R{#$L~void~ma!(SJ[]v){SJ~c[]=new~SJ[99999],y="",z= y,s="#{z=t=(0..r=q=126).map{|n| -[n,[]]};a="";b=->n{a<<(n%78+55)%84+42}; (%(P={0:'[+[]]',m:'((+[])'+(C="['constructor']")+ "+[])['11']"} ;for(R~!~B=('`x21[]@`x21`x21[]@[][[]]@'+(A="[]['fill'] ")+"@([]+[])['fontcolor']([]) -@(+('11e20')+[])['split']([])@"+A+C+ "('return~escape')()("+A+')').split('@'))for(E~!~D= eval(G='('+B [R]+'+[])'))P[T=D[E]]=P[T]||G+"['"+E+"']";for(G='[',B=0;++ B<36;)P[D=B.toSJ(36)]=B<10?( -G+='+`x21+[]')+']':P[D]||"(+('"+B +"'))['to'+([]+[])"+C+"['name']]('36')";A+=C+"('console. log(unes cape(^"";for(E~!~G=#{E["fun~ma!(a:Array){Z#{Q[E[%(s=();a( ){~s+=($(echo~-n~$1|od~-An~ --tu1~-v)~$2);};a~"Section`x48ead er+name:=QR;SectionPublic-ma!<-("~10;t='#{"console.log"+Q[E[ %(@s =global[#{i=(s=%(`x48AI~1.2`nVISIBLE~"#{"x=sJ.K(#{V[E["changequot e(<@,@>)`ndef!e(p,<@#{"all -:`n`t@echo~'#{d["l!el:99999;Z# {E["solve~satisfy;output~[#{E[%(.assembly~t{}.method~#$L~void~M X{ .entrypo!t~ldstr"#{e["m{{`x21:~x`nqr:~|-`n~:db`x60#{e[s="$Z#{E["Zf#{E["echo#{E[ "#import#{N}!t~mX -{puts#{E["Z_sJ"+E["s=double# {E["Z#{E["$console:l!e[#{"#$D(output);beg!~H(#{f((p="eval";%($_="#{ s,v=rp ["$_='#{Q[%($z )&&$i/$z<($c<$w?ord($s[(!t)($c/3)]):$c--% 3+2)?$t[2].$t[$c%3%2].$t -[$c%3]:"^0^0^0":"^0")$c=$ i%$z;foreach(array("I`x48DR".pack("NNCV",$w+2,128,8,2),"IDAT".gzcompress($m) ,"IEND")as$d)echo~pack("NA*N",strlen( $d)-4,$d,crc32($d));).K( -B,"`x7f"),?']}';s:g/^x7f /Y/;Z~$_",128..287];s="$_='#{Q[s,c=/['Y]/]}';$n=32;$s='#{Q[v,c]}';$s=`x7es{..}{ $a=$&;$b=chr(--$n&255);`x7es/$b/$a /g;}eg;Z";(s+N*(-s.size -%6)).unpack("B*")[0].K(/ .{6}/){n=$&.to_i~2;((n+14)/26*6+n+47).chr}}";s|.|$n=ord$&;substr~unpack(B8,chr$n -!t($n/32)*6-41),2|eg;eval~pack 'B*',$_).scan(/[~,-:A-z -]+|(.)/){p="s++#{$1?"ch r~#{$1.ord}+e":$&+?+};"+p};p),1){"'#$s',"}}'')end.".K(/[:;()]/){?`x5e+$&}}]"]};qui t"]};t=num2cell(b=11-ceil(s /13));for~n=1:9m={};for -~i=1:141f=@(x,y,n)repma t(['Ook'~char(x)~'~Ook'~char(y)~'~'],[1~abs(n)]);m(i)=[f(z=46,63,n)~f(q=z-(i<13)*13 ,q,i-13)~f(33,z,1)~f(63, z,n)];end;t(x=b==n)=m(di -ff([0~s(x)])+13);end;Zf ('%%s',t{:})"]]+R}}"]}"]}`n"]};"]}`x60`n~global~_start`n~_start:mov~edx,#{s.size}` n ~mov~ecx,m`n~mov~ebx, 1`n~mov~eax,4`n~!t~128`n -~mov~ebx,0`n~mov~eax,1` n~!t~128`nx:~|`n~}}{{{qr}}}"]}"call~void~[mscorlib]#{C*"::"}(sJ)ret})]}];"]};qui t( );",?$].K( ?'){ "'^''"}}'"}@>)`np" ],?&,?&]},'&(%d+)&',func -tion(s)return~sJ.rep('Y ',tonumber(s))end);Z(x)".K(/[:"]/,":^0")}"`n`x4bT`x48`x58B`x59E~B`x59E)).size+1 } x~i8]c"#{s.K( /[^"`n`t]/) {"^%02`x58"%$&. ord}}^00"declare~i32@puts -(i8*)def!e~i32@mX{%1=cal l~i32@puts(i8*getelementptr([#{i}x~i8],[#{i}x~i8]*@s,i32~0,i32~0))ret~i32~0}) ] ,?#].K(?',%('" '"'))}';for((i =0;i< ${#t};i+=99) );do;x=${t:$i:99};a~"^"${ -x//[Y^`"]/Y^0}^".Z;"~10; done;a~");";p(){~echo~-n~$1;};f(){~for~x~!~${s[*]};do;p~$3;for((j=$2;j--;) ); do;h~$1~$x~$j;done;done;};p~k^` x60;h(){~p~^ `x60${1:$ (($2>>$3&1)):2};};f~kki~7~ -'`x60`x60s`x60`x60s`x60`x 60s`x60`x60s`x60`x60s`x60`x60s`x60`x60s`x60`x60si';s=();a~'AG-`x48-`x48F y.Il D==;=jdlAy=;=jldltldltl{lAulAy=j tlldlAyFy=?=jdlA yGFyFy G2AFy>zlAFFBCjldGyGFy>GFy.A -Gy=G==n`x48==nlldC=j@=jtll dltldlAut11';h(){~p~${1:$(((($2%83-10)>>((2-$3)*2))%4)):1};};f~ski^`x 60~3)]]} ~}"]})A+="'+`x21[]+'"+G.charCode At(E).toSJ(16);for( A+= "^".replace(/'+`x21[]+'/g,^" -%^")))')()",R=0;R<9;R++)A= A.replace(/'.*?'/g,function(B){T=[];for(E=1;B[E+1];)T.push(P[B[E++ ]]);return ~T.jo!('+')});console.log('"'+A+'"'))).bytes{|n|r,z= z [n]||(b[r/78];b[r];q<6083&&z[ -n]=[q+=1,[]];t[n])};b[r/78] ;b[r]}";!t~i=0,n=0,q=0;for(;++n<126;)c[n]=""+(char)n;for(;i<#{a .size};){q=q*7 8+(s.charAt(i)-13)%84;if(i++%2>0){y=qn{L<<(n+62)%92+35;D};s -.bytes{|c|n>0?n-=1:(t[c]=(t[c]||[]).reject {|j|j4&&x<<[k,j]};x=x.max) -?(n,j=x;x=b.size;(u=[x,3999].m!;D[u%87][u/87] ;L<0;x=4001+i-j;D[x%87][x/ 87][n-5]):b<`ncha -r*p=#{E[L]},s[999999],*q=s;!t~mX{!t~n,m;for(;*p;){ n=(*p-5)%92+(p[1]-5)%92*87;p+=2;if(n>3999)for(m=(*p++-5)%92+6;m-- ;q++)*q=q[4000-n];else~for(;n--;)*q++=*p++;}puts(s)#{R} -}")]}){s+="00g,";for(m=1;m<256;m*=2)s+="00g,4,:"+(c/m%2> 0?"4+":"")+",";f(s);s="4,:,";}f(s+s);for(c:Base64.getDecoder().decode("kaARERE` x58/I0ALn3n5ef6l/Pz8+fnz58/BOf5/7/hE`x58/O`x5azM5mC`x58/Oczm`x -5azBPn5+`x58/OczMznBL/nM5m`x5azBPu++fPPOc5zngnnO`x5azO`x5agnBMGAW7A==")){c=c<0?256+c:c;for(i=0;i++<3;c/=8)f(c%8);f("8*+8*+,");}f("@");).K(?',%('"'"'))}'|sed~-e's/Y/YY/g'~-e's/"/Yq/g'~-e's/.*/Z~"&"^nquit/')]}}"]],?']}');".K(/^+/){"`x5e#{$&.size}`x5 -e"}]}.split("Y`x5e");for(!t~i=1;i";s.size*16+3}.ToSJ("x8")(1`x58or~7-c*2^3)),92)):Next:Else:n=(c>124)*(8*c-#{s.size+1294}):Do~While~n>127:#$W(128+(127And~n)):n^=128:Loop:#$W(If(c<125,If((c-1)^7-8,c+66*(c>65And~c<91),t(c-57)),n)):End~If:Next:For~Each~ -c~!"#{d[s].K~N,'"&~VbLf~&"'}":#$W(Asc(c)):Next:End~Sub:End~Module)).l!es.map{|s|"let~s=#{E[s]}`nput=s`nZ`n"}.jo!+"qa`x21",3){%($H("%s",#$S);)+N}}end~endmodule);W=s.size*72+4;"%d,%d"%[W/65536,W%65536]}});foreach(!t~c~!#{E[s]}.data)foreach(!t~v~!~a= -{0,9,7,4,5,c/100*7/6+1,c%100/10*7/6+1,c%10*7/6+1,7})p({144,v=15450+v*256,384,v});p({255,12032});})]},i=0,t='k';while(s[i])t='^x60.'+s[i++]+t;console.log(t)",B],?`x21].K(?',%('"'"'))}'"^n::=^na")],/[`[`]$]/]}"),4){$S+?,}}])Console.H(s);Application. -exit();}})]};Z"0~0~-1");),?']}';cr",127..255];f(%(variable~s=`x60#{s.K(/.{1,234}/){$&.K("`x60",%(`x60+"`x60"+`x60))+"`x60+`n`x60"}}`x60,i;for(i=0;i<129;i++)s=strreplace(s,pack("C",255-i),substrbytes(`x60#{v[0,99]}`x60+`n`x60#{v[99..-1]}`x60,i*2+1, -2));Zf("%s",s)),7){"f('%s')`n"%$s.unpack("`x48*")}}Zf("^n#[Exeunt]");quit)]}")),196){%(Z#$S;)}}}"]});})).gsub(/[!HJKXYZ^`~]/){[B*2,:write,B,:tring,:gsub,"ain()",B*4,:print,g,:in][$&.ord%47%12]})))*"")#_buffer_for_future_bug_fixes_#_buffer_for_futu -#################################################################################### Quine Relay -- Copyright (c) 2013, 2014 Yusuke Endoh (@mametter), @hirekoke ###################################################################################) +eval$s=%q(eval(%w(B=92.chr;g=32.chr;puts(eval(%q(N=10.chr;n=0;e=->s{Q[Q[s,B],?"].K(N,B+?n)};E=->s{'("'+e[s]+'")'};d=->s,t=?"{s.K(t){t+t}};def~f(s,n)s.K(/.{1,#{n*255}}/m){yield$S=E[$s=$&]}end;Q=->s,t=?${s.K(t){B+$&}};R=";return~0;";V=->s,a,z{s.K(/(#{B*4})+/){a ++"#{$&.size/2}"+z}};C=%w(System.Console~Write);$C=C*?.;$D="program~QR";$G="~contents~of"+$F="~the~mix!g~bowl";$L="public~static";$W="s.WriteByte";rp=->s,r{v="";[r.!ject(s){|s,j|o={};m=n=0;s.size.times{|i|o[f=s[i,2]]||=0;c=o[f]+=1;m(p(3+ord~c);Z"-1~0~";c))#{E[~~~~~~%(object"Application"{state"ma!"{foreach(s~![#{f(%(puts~"#{Q[e[%(echo~'a::=`x7e#{Q[Q["let~s=#{E[%(void~p(!t[]c){foreach(!t~v~!~c)stdout.Zf("%c%c",v/256,v%256);}void~mX{!t[]a;p({19796,26724,0,6,0,1,480,19796,29291,#{s +=%(module~QR;!itial~beg!~#{f((%(Module~QR`nSub~MX`nDim~c,n:Dim~s~As~Object=#{C[0]}.OpenStandardOutput():Dim~t()As~Short={26,34,86,127,148,158,200}:For~Each~d~!"BasmCBBBCRE`x60F<<<D`x21BE@ABRCABRCABRCA`x4a`x21CE@~B-BB~CACk:CvACqRC~COBMADRCACRCADRCABRCABRC~BACj:B-BBOBMADRCADRCADRCAFRCMM}CBABM`x7e#{40.chr}BBBCBBB,BBBDBBB0BBBDBBB4BBB=BBB?BBB;BBB~...^t..^n..(module(import~:wasi_snapshot_preview1 +:~:fd_H:~(func(param~i32~i32~i32~i32)(result~i32)))(memory(export~:memory:)(data~:^08^00^00^00$:))(func(export~:_start:)i32.const~1~i32.const~0~i32.const~1~i32.const~0~call~0~drop))":c=Asc(d):If~c=36:For~c=0To~11:#$W(If(c~Mod~3,Asc(#{s="<#{U="xsl:template"}~match='/'><`x21[CDATA[#{%(sub~f(s$,n)Z(s$);:for~i=1to~n~Z("Y");:next:end~sub:f("#{V[e[ +%(H,format="#{y="";f("^H{-}{txt}{#{Q["echo~-E~$'#{Q[Q[E[%(with~Ada.Text_Io;procedure~qr~is~beg!~Ada.Text_Io.Put("#{d[%(trans~B(Buffer)`ntrans~O(n){`nB:add(Byte(+~128~n))}`ntrans~f(v~n){`nO(+(/~n~64)107)`nO(n:mod~64)`nO~v}`ntrans~D(n){if(<~n~4){f(+(*~6~n)9)48} +{if(n:odd-p){D(-~n~3)`nf~27~48`nf~36~11}{D(/~n~2)`nf~21~48`nf~48~20} }}`ntrans ~S(Buffer"#{e[%W[STRINGz:=~226+~153,a:=z+~166,b:=a+"2"+z+~160,c:=b+"8"+z+~165,t:="#{d[%(class~QR{#$L~void~ma!(SJ[]a){a=#{E["H('#{Q[e["implement~ma!0()=Z"+E["BEGIN{Z#{E[%(echo~'#{% +(f(s){System.out.Z(s);}s="389**6+44*6+00p45*,";for(c:#{E[ (s="#! clud e`n!t~mX{std::cout<<#{E[%(class~Program{#$L~void~MX{#$C("Qu!e~Relay~Coffee.^n^nIngredients.^n");for(!t~i=9;i++<126;)#$C($"{i}~g~caffe!e~{i}^n");#$C("^nMethod.^n");for +each(char~c~!#{E[%((doseq[s(lazy-cat["IDENTIFICATION~DI VIS I ON.""PROGRAM-ID.~QR.""PROCEDURE~DIVISION."'DISPLA`x59](map~#(str"~~~~^""(.replace~%1 "^"""^"^"")"^"")(re-seq~#".{1,45}""#{e["(f=(n)->Array(n+1).jo!~'Y');c +onsole.log('%s',#{V[E[%((H-l!e"#{e["puts#{E["import~s td .stdio;void~mX{H(`x60#{%(method~MX{Z(@"#{d["['']p[#{"IO.puts"+E [%((pr!c~"#{e["`nma!(_)->`nio:fH#{d[E['Zfn("""'+d[?"+"%option +~noyywrap`n%%`n%%`n!t~mX{puts#{E["echo~'#{Q[Q[%(~:~ A~."#{g*9}"~;~:~B~A~."~WRITE(*,*)'"~A~;~:~C~B~T`x59PE~."~'"~ CR~;~:~D~S"~#$D"~C~S^"~Z~^"(&"~C~S^"~#{e[%(Z"#{e["s:=Out +putTextUser();WriteAll(s,#{E[%(Zf"#{e[d[f('set~Z"- ";Z'+E[%(package~ma!;import"fmt";func~mX{fmt.Pr!t #{E[%(236:j;{119:i;{206i-:i;.48<{71+}{[i]^48-*}if}%} +:t;"algoritmo~QR;!"[195][173]++'cio~imprima("'"01 3141"t"/12131"t~6*"/1:1918151:??6271413/4= 3626612/2/353251215/`x5a0`x5a0R"t"#{e[%(z=new~jav +a.util.zip.G`x5aIPOutputStream(System.out);z.H( '#{"ma!=putStr"+E["class~QR{#$L~function~ mX{neko.Lib.Z#{E[%(procedure~mX;i:=c:=0;s:=#{E +[%(.class~public~QR`n.super~#{$T="java/io/Pr! tStr eam"}`n.method~#$L~ma!([L#{S="java /lang/S"}J;)V~ ;]`n.limit~stack~2`ngetstatic~#{S}ystem/out +~L#$T;`nldc~"#{e[%(class~QR{#$L~void~ma!(SJ[ ]v){S J~c[]=new~SJ[99999],y="",z=y ,s="#{z=t=(0..r=q=126).map{| n|[n,[]]};a="";b=->n{a<<(n%78+55)%84+42};( +%(P={0:'[+[]]',m:'((+[])'+(C="['constructor ']") +"+[])['11']"};for(R~!~B=(' `x21[]@`x21`x21[]@[][[]]@'+(A="[]['fil l']")+"@([]+[])['fontcolor']([])@(+('11e +20')+[])['split']([])@"+A+C+"('return~escap e')()("+A+')').split(' @'))for(E~!~D=eval(G=' ('+B[R]+'+[])'))P[T=D[E]]=P[T]||G+"['"+E+"'] ";for(G='[',B=0;++B<36;)P[D=B.toSJ(36) +]=B<10?(G+='+`x21+[]')+']':P[D]||"(+('"+B+" '))[ 'to'+([]+[])"+C+"['name']]('36')"; A+=C+"('console.l og(unescape(^"";for(E~!~G=#{E["fun~ma!(a:Array ){Z#{Q[E[%(s=();a(){~s+=($(echo~-n~$1 +|od~-An~-tu1~-v)~$2);};a~"Section`x48eader+na me:=QR;SectionPublic-ma!<-("~10;t='#{"console.log "+Q[E[%(@s=gl obal[#{i=(s=%(`x48AI~1.2`nVISIBLE~"#{"x=sJ.K(#{V[E["ch angequote(<@,@>)`ndef!e(p,<@#{"all: +`n`t@echo~'#{d["l!el:99999;Z#{E["solve~sat isfy;output~[#{E["MODULE~QR;FROM~StrIO~IMPORT~Write SJ;BEGIN~#{( %(.assembly~t{}.method~#$L~void~MX{.entrypo!t~ldstr"#{e["m {{`x21:~x`nqr:~|-`n~:db`x60#{e[s=" +$Z#{E["Zf#{E["echo#{E["#import #{N}!t~mX{puts#{E["Z_sJ"+E["s=double#{E["Z#{E["$console: l!e[#{"# $D(output);beg!~H(#{f((p="eval";%($_="#{s,v=rp["$_='#{Q[%($z)&&$i/$z<($c<$w?ord($s[(!t)($c/3 )]):$c --%3+2)?$t[2].$t[$c%3%2].$t[$c%3]:"^0^0^0":"^0")$c=$i%$z;foreac h(array("I`x48DR".pack("NNCV",$ +w+2,128,8,2),"IDAT".gzcompress($m ),"IEND")as$d)echo~pack("NA*N",strlen($d)-4,$d,crc32($d));).K(B,"`x7f" ),?']}';s:g/^x7f/Y/;Z~$_",128..287];s="$_='#{Q[s,c= /['Y]/]}';$n=32;$s='#{Q[v,c]}' +;$s=`x7es{..}{$a=$&;$b=chr(--$n& 255);`x7es/$b/$a/g;}eg;Z";(s+N*(-s.size%6)).unpack("B*")[0].K(/.{6}/){n= $&.to_i~2;((n+14)/26*6+n+47).chr}}";s|.|$n=ord $&;substr~unpack(B8,chr$n-!t($ +n/32)*6-41),2|eg;eval~pack'B*', $_).scan(/[~,-:A-z]+|(.)/){p="s++#{$1?"chr~#{$1.ord}+e":$&+?+};"+p};p),1){" '#$s',"}}'')end.".K(/[:;()]/){?`x5e+$&}}] "]};quit"]};t=num2cell(b=11-ce +il(s/13));for~n=1:9m={};for~i=1 :141f=@(x,y,n)repmat(['Ook'~char(x)~'~Ook'~char(y)~'~'],[1~abs(n)]);m(i)=[f( z=46,63,n)~f(q=z-(i<13)*13,q,i-13)~f( 33,z,1)~f(63,z,n)];end;t(x=b== +n)=m(diff([0~s(x)])+13);end;Zf ('%%s',t{:})"]]+R}}"]}"]}`n"]};"]}`x60`n~global~_start`n~_start:mov~edx,#{s.siz e}`n~mov~ecx,m`n~mov~ebx,1`n~mov~e ax,4`n~!t~128`n~mov~ebx,0`n~m +ov~eax,1`n~!t~128`nx:~|`n~}}{{ {qr}}}"]}"call~void~[mscorlib]#{C*"::"}(sJ)ret})).K(/()[#{i=94.chr}"]+|[#{i}']+/ ){["WriteSJ(",$&,");"]*($1??":? ')}}END~QR."]}];"]};quit();", +?$].K(?'){"'^''"}}'"}@>)`np"] ,?&,?&]},'&(%d+)&',function(s)return~sJ.rep('Y',tonumber(s))end);Z(x)".K(/[:"]/,": ^0")}"`n`x4bT`x48`x58B`x59E ~B`x59E)).size+1}x~i8]c"#{s.K +(/[^"`n`t]/){"^%02`x58"%$&.or d}}^00"declare~i32@puts(i8*)def!e~i32@mX{%1=call~i32@puts(i8*getelementptr([#{i}x~i 8],[#{i}x~i8]*@s,i32~0,i 32~0))ret~i32~0})],?#].K(?',%( +'"'"'))}';for((i=0;i<${#t};i+ =99));do;x=${t:$i:99};a~"^"${x//[Y^`"]/Y^0}^".Z;"~10;done;a~");";p(){~echo~-n~$1;} ; f(){~for~x~!~${s[*]}; do;p~$3;for((j=$2;j--;));do;h~ +$1~$x~$j;done;done;};p~k^`x60 ;h(){~p~^`x60${1:$(($2>>$3&1)):2};};f~kki~7~'`x60`x60s`x60`x60s`x60`x60s`x60`x60 s` x60`x60s`x 60`x 60s`x60`x60s`x60`x 60si';s=();a~'AG-`x48-`x48Fy.I +lD==;=jdlAy=;=jldltldltl{lAul Ay=jtlldlAyFy=?=jdlAyGFyFyG2AFy>zlAFFBCjldGyGFy>GFy.AGy=G==n`x48==nlldC=j@=jtll d ltldlAut11';h (){~p~${1:$ (((($2%83-10)>> ((2-$3)*2))%4)):1};};f~ski^`x60 +~3)]]}~}"]})A+="'+`x21[]+'"+G. charCodeAt(E).toSJ(16);for(A+="^".replace(/'+`x21[]+'/g,^"%^")))')()",R=0;R<9 ; R++)A=A.replac e(/'.*?'/g,fun ction (B){T=[];for (E=1;B[E+1];)T.push(P[B[E++]]); +return~T.jo!('+')});console.lo g('"'+A+'"'))).bytes{|n|r,z=z[n]||(b[r/78];b[r];q<6083&&z[n]=[q+=1,[]];t[n ]) };b[r/78];b[r]}";!t~i=0,n=0,q=0 ;for(;++n<12 6;)c[n]=" "+(char)n;for(;i<#{a.size};){q=q +*78+(s.charAt(i)-13)%84;if(i++% 2>0){y=qn{L<<(n+62)%92+3 5;D};s.bytes{|c|n>0?n-=1:(t[c]=(t[c]||[]).reject{|j |j4&&x<<[k,j]};x=x.max)?( +n,j=x;x=b.size;(u=[x,3999].m!;D[u%87][u /87];L<0;x=400 1+i-j;D[x%87][x/87][n-5]):b< `nchar*p=#{E[L]},s[999999], +*q=s;!t~mX{!t~n,m;for(;*p;){n=(*p-5)%92+( p[1]-5)%92*87;p+=2;if(n>3999)for(m=(*p+ +-5)%92+6;m--;q++)*q=q[4000-n];els e~for(;n--;)*q++=*p++;}puts(s)#{R}}")]}){s+=" +00g,";for(m=1;m<256;m*=2)s+="00g,4,:"+(c/m% 2>0?"4+":"")+",";f(s);s="4,:," ;}f(s+s);for(c:Base64.getDecoder().dec ode("kaARERE`x58/I0ALn3n5ef6l/Pz8+fnz58/BOf5/7/ +hE`x58/O`x5azM5mC`x58/Oczm`x5azBPn5+`x58/OczM znBL/nM5m`x5azB Pu++fPPOc5zngnnO`x5azO`x5agnBMGAW7A==")){c=c <0?256+c:c;for(i=0;i++<3;c/=8)f(c%8);f("8*+8*+,"); +}f("@");).K(?',%('"'"'))}'|sed~-e's/Y/YY/g'~-e's /"/Yq/g'~-e's/.*/Z~"&"^nquit/')]}}"]],?']}');".K(/ ^+/){"`x5e#{$&.size}`x5e"}]}.split("Y`x5e");for(!t~i= +1;i";s.size*16+3}.ToSJ("x8")(1`x58or~7-c*2^3)),92)):Next:Else:n=( +c>124)*(8*c-#{s.size+1294}):Do~While~n>127:#$W(128+(127And~n)):n^=128:Loop:#$W(If(c<125,If((c-1)^7-8,c+66*(c>65And~c<91),t(c-57)),n)):End~If:Next:For~Each~c~!"#{d[s].K~N,'"&~VbLf~&"'}":#$W(Asc(c)):Next:End~Sub:End~Module)).l!es.map{|s|"let~s=#{E[s]}`nput=s`nZ +`n"}.jo!+"qa`x21",3){%($H("%s",#$S);)+N}}end~endmodule);W=s.size*72+4;"%d,%d"%[W/65536,W%65536]}});foreach(!t~c~!#{E[s]}.data)foreach(!t~v~!~a={0,9,7,4,5,c/100*7/6+1,c%100/10*7/6+1,c%10*7/6+1,7})p({144,v=15450+v*256,384,v});p({255,12032});})]},i=0,t='k';while +(s[i])t='^x60.'+s[i++]+t;console.log(t)",B],?`x21].K(?',%('"'"'))}'"^n::=^na")],/[`[`]$]/]}"),4){$S+?,}}])Console.H(s);Application.exit();}})]};Z"0~0~-1");),127..255];f(%(variable~s=`x60#{s.K(/.{1,234}/){$&.K("`x60",%(`x60+"`x60"+`x60))+"`x60+`n`x60"}}`x60,i; +for(i=0;i<129;i++)s=strreplace(s,pack("C",255-i),substrbytes(`x60#{v[0,99]}`x60+`n`x60#{v[99..-1]}`x60,i*2+1,2));Zf("%s",s)),7){"f('%s')`n"%$s.unpack("`x48*")}}Zf("^n#[Exeunt]");quit)]}")),196){%(Z#$S;)}}}"]});})).gsub(/[!HJKXYZ^`~]/){[B*2,:write,B,:tring,:gs +ub,"ain()",B*4,:print,g,:in][$&.ord%47%12]})))*"")#_buffer_for_future_bug_fixes_#_buffer_for_future_bug_fixes_#_buffer_for_future_bug_fixes_#_buffer_for_future_bug_fixes_#_buffer_for_future_bug_fixes_#_buffer_for_future_bug_fixes_#_buffer_for_future_bug_fixes +#_buffer_for_future_bug_fixes_#_buffer_for_future_bug_fixes_#_buffer_for_future_bug_fixes_#_buffer_for_future_bug_fixes_#_buffer_for_future_bug_fixes_#_buffer_for_future_bug_fixes_#_buffer_for_future_bug_fixes_#_buffer_for_future_bug_fixes_#_buffer_for_future +#_buffer_for_future_bug_fixes_#_buffer_for_future_bug_fixes_#_buffer_for_future_bug_fixes_#_buffer_for_future_bug_fixes_#_buffer_for_future_bug_fixes_#_buffer_for_future_bug_fixes_#_buffer_for_future_bug_fixes_#_buffer_for_future_bug_fixes_#_buffer_for_future +#_buffer_for_future_bug_fixes_#_buffer_for_future_bug_fixes_#_buffer_for_future_bug_fixes_#_buffer_for_future_bug_fixes_#_buffer_for_future_bug_fixes_#_buffer_for_future_bug_fixes_#_buffer_for_future_bug_fixes_#_buffer_for_future_bug_fixes_#_buffer_for_future +#_buffer_for_future_bug_fixes_#_buffer_for_future_bug_fixes_#_buffer_for_future_bug_fixes_#_buffer_for_future_bug_fixes_#_buffer_for_future_bug_fixes_#_buffer_for_future_bug_fixes_#_buffer_for_future_bug_fixes_#_buffer_for_future_bug_fixes_#_buffer_for_future +########################################################################################## Quine Relay -- Copyright (c) 2013, 2014 Yusuke Endoh (@mametter), @hirekoke #########################################################################################) diff --git a/README.md b/README.md index d0200e6b..5a7ff757 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ the original Ruby code again. ### Ubuntu -If you are using Ubuntu 23.04 (Lunar Lobster), you can follow these steps. +If you are using Ubuntu 23.10 (Mantic Minotaur), you can follow these steps. #### 1. Install all the interpreters/compilers. @@ -31,15 +31,15 @@ First, you need to type the following apt-get command to install them all. ats2-lang bash bc bsdgames bsh clisp clojure cmake coffeescript \ crystal dafny dc dhall dotnet7 elixir emacs-nox erlang f2c fish flex \ fp-compiler g++ gambas3-gb-pcre gambas3-scripter gap gawk gcc gdb gdc \ - genius gforth gfortran ghc ghostscript gnat gnu-smalltalk gnucobol4 \ - gnuplot gobjc golang gpt groovy guile-3.0 gzip haxe icont iconx \ - intercal iverilog jasmin-sable jq kotlin ksh libevent-dev \ - libpolyml-dev lisaac livescript llvm lua5.3 m4 make maxima minizinc \ - mono-devel nasm neko nickle nim node-typescript nodejs ocaml octave \ - openjdk-11-jdk pari-gp parser3-cgi perl php-cli polyml python3 r-base \ - rakudo ratfor rc regina-rexx ruby ruby-mustache rustc scala scilab-cli \ - sed slsh spin surgescript swi-prolog tcl tcsh valac vim wabt xsltproc \ - yabasic yorick zoem zsh + genius gforth gfortran ghc ghostscript gm2 gnat gnucobol4 gnuplot \ + gobjc golang gpt groovy guile-3.0 gzip haxe icont iconx intercal \ + iverilog jasmin-sable jq kotlin ksh libevent-dev libpolyml-dev lisaac \ + livescript llvm lua5.3 m4 make maxima minizinc mono-devel nasm neko \ + nickle nim node-typescript nodejs ocaml octave openjdk-11-jdk pari-gp \ + parser3-cgi perl php-cli polyml python3 r-base rakudo ratfor rc \ + regina-rexx ruby ruby-mustache rustc scala scilab-cli sed slsh spin \ + surgescript swi-prolog tcl tcsh valac vim wabt xsltproc yabasic yorick \ + zoem zsh Then, build the bundled interpreters. @@ -57,8 +57,7 @@ Then, build the bundled interpreters. $ sed -E -f QR.sed QR.sed > QR.spl $ ./vendor/local/bin/spl2c < QR.spl > QR.spl.c && gcc -z muldefs -o QR -I ./vendor/local/include -L ./vendor/local/lib QR.spl.c -lspl -lm && ./QR > QR.sl - $ slsh QR.sl > QR.st - $ gst QR.st > QR.sml + $ slsh QR.sl > QR.sml $ polyc -o QR QR.sml && ./QR > QR.sq $ ruby vendor/subleq.rb QR.sq > QR.ss $ surgescript QR.ss > QR.tcl @@ -157,7 +156,8 @@ Then, build the bundled interpreters. $ m4 QR.m4 > QR.mk $ make -f QR.mk > QR.mac $ maxima -q --init-mac=QR.mac > QR.mzn - $ minizinc --solver Gecode --soln-sep '' QR.mzn > QR.il + $ minizinc --solver Gecode --soln-sep '' QR.mzn > QR.mod + $ gm2 -fiso QR.mod -o QR && ./QR > QR.il $ ilasm QR.il && mono QR.exe > QR.mustache $ mustache QR.mustache QR.mustache > QR.asm $ nasm -felf QR.asm && ld -m elf_i386 -o QR QR.o && ./QR > QR.neko @@ -221,132 +221,132 @@ If you manage it, please let me know. I wish you good luck. I used the following Ubuntu deb packages to test this program. \# |language |ubuntu package |version -----|----------------------------|----------------------------------|----------------------------------- +----|----------------------------|----------------------------------|------------------------------- 1 |Ruby |ruby |1:3.1 -2 |Rust |rustc |1.67.1+dfsg0ubuntu1-0ubuntu2 +2 |Rust |rustc |1.71.1+dfsg0ubuntu2-0ubuntu1 3 |Scala |scala |2.11.12-5 4 |Scheme |guile-3.0 |3.0.8-2 -5 |Scilab |scilab-cli |6.1.1+dfsg2-5 +5 |Scilab |scilab-cli |6.1.1+dfsg2-9 6 |sed |sed |4.9-1 7 |Shakespeare |*N/A* |- -8 |S-Lang |slsh |2.3.3-2 -9 |Smalltalk |gnu-smalltalk |3.2.5-1.3ubuntu2 -10 |Standard ML |polyml, libpolyml-dev |5.7.1-5 -11 |Subleq |*N/A* |- -12 |SurgeScript |surgescript |0.5.4.4-1.1 -13 |Tcl |tcl |8.6.13 -14 |tcsh |tcsh |6.24.07-1 -15 |Thue |*N/A* |- -16 |TypeScript |node-typescript |4.8.4+ds1-2 -17 |Unlambda |*N/A* |- -18 |Vala |valac |0.56.7-1 -19 |Velato |*N/A* |- -20 |Verilog |iverilog |11.0-1.1 -21 |Vimscript |vim |2:9.0.1000-4ubuntu3.1 -22 |Visual Basic |dotnet7 |7.0.111-0ubuntu1\~23.04.1 -23 |WebAssembly (Binary format) |wabt |1.0.32-1 -24 |WebAssembly (Text format) |wabt |1.0.32-1 -25 |Whitespace |*N/A* |- -26 |XSLT |xsltproc |1.1.35-1 -27 |Yabasic |yabasic |1:2.90.3-1 -28 |Yorick |yorick |2.2.04+dfsg1-12 -29 |Zoem |zoem |21-341-1 -30 |zsh |zsh |5.9-4 -31 |A+ |aplus-fsf |4.22.1-10.2 -32 |Ada |gnat |12.2ubuntu1 -33 |AFNIX |afnix |3.8.0-1 -34 |Aheui |*N/A* |- -35 |ALGOL 68 |algol68g |3.1.2-1 -36 |Ante |*N/A* |- -37 |AspectJ |aspectj |1.9.5-1 -38 |Asymptote |asymptote |2.85+ds-1 -39 |ATS |ats2-lang |0.4.2-1.1 -40 |Awk |gawk |1:5.2.1-2 -41 |bash |bash |5.2.15-2ubuntu1 -42 |bc |bc |1.07.1-3build1 -43 |BeanShell |bsh |2.0b4-20 -44 |Befunge |*N/A* |- -45 |BLC8 |*N/A* |- -46 |Brainfuck |*N/A* |- -47 |C |gcc |4:12.2.0-3ubuntu1 -48 |C++ |g++ |4:12.2.0-3ubuntu1 -49 |C# |dotnet7 |7.0.111-0ubuntu1\~23.04.1 -50 |Chef |*N/A* |- -51 |Clojure |clojure |1.11.1-2 -52 |CMake |cmake |3.25.1-1ubuntu1 -53 |Cobol |gnucobol4 |4.0\~early\~20200606-6 -54 |CoffeeScript |coffeescript |2.7.0-4 -55 |Common Lisp |clisp |1:2.49.20210628.gitde01f0f-3build1 -56 |Crystal |crystal, libevent-dev |1.6.0+dfsg-2 -57 |D |gdc |4:12.2.0-3ubuntu1 -58 |Dafny |dafny |2.3.0+dfsg-0.1 -59 |dc |dc |1.07.1-3build1 -60 |Dhall |dhall |1.40.2-2build1 -61 |Elixir |elixir |1.14.0.dfsg-2 -62 |Emacs Lisp |emacs-nox |1:28.2+1-13ubuntu3 -63 |Erlang |erlang |1:25.2.3+dfsg-1 -64 |F# |dotnet7 |7.0.111-0ubuntu1\~23.04.1 -65 |FALSE |*N/A* |- -66 |Flex |flex |2.6.4-8.1 -67 |Fish |fish |3.6.0-3 -68 |Forth |gforth |0.7.3+dfsg-9build4.1 -69 |FORTRAN77 |f2c |20200916-1 -70 |Fortran90 |gfortran |4:12.2.0-3ubuntu1 -71 |Gambas script |gambas3-scripter, gambas3-gb-pcre |3.18.0-4ubuntu1 -72 |GAP |gap |4.12.1-2 -73 |GDB |gdb |13.1-2ubuntu2 -74 |GEL (Genius) |genius |1.0.27-1 -75 |Gnuplot |gnuplot |5.4.4+dfsg1-2build1 -76 |Go |golang |2:1.20\~0ubuntu1 -77 |GolfScript |*N/A* |- -78 |G-Portugol |gpt |1.1-7 -79 |Grass |*N/A* |- -80 |Groovy |groovy |2.4.21-7 -81 |Gzip |gzip |1.12-1ubuntu1 -82 |Haskell |ghc |9.0.2-4ubuntu2 -83 |Haxe |haxe |1:4.2.5-1build1 -84 |Icon |icont, iconx |9.4.3-7ubuntu1 -85 |INTERCAL |intercal |30:0.30-3 -86 |Jasmin |jasmin-sable |2.5.0-2 -87 |Java |openjdk-11-jdk |11.0.20.1+1-0ubuntu1\~23.04 -88 |JavaScript |nodejs |18.13.0+dfsg1-1ubuntu2 -89 |Jq |jq |1.6-2.1ubuntu3 -90 |JSFuck |nodejs |18.13.0+dfsg1-1ubuntu2 -91 |Kotlin |kotlin |1.3.31+ds1-1build5 -92 |ksh |ksh |20230128 -93 |Lazy K |*N/A* |- -94 |Lisaac |lisaac |1:0.39\~rc1-3.1 -95 |LiveScript |livescript |1.6.1+dfsg-3 -96 |LLVM asm |llvm |1:15.0-56\~exp2 -97 |LOLCODE |*N/A* |- -98 |Lua |lua5.3 |5.3.6-2 -99 |M4 |m4 |1.4.19-3 -100 |Makefile |make |4.3-4.1build1 -101 |Maxima |maxima |5.45.1-8 -102 |MiniZinc |minizinc |2.6.4+dfsg1-1 -103 |MSIL |mono-devel |6.8.0.105+dfsg-3.3 +8 |S-Lang |slsh |2.3.3-3 +9 |Standard ML |polyml, libpolyml-dev |5.7.1-5 +10 |Subleq |*N/A* |- +11 |SurgeScript |surgescript |0.5.4.4-1.1 +12 |Tcl |tcl |8.6.13 +13 |tcsh |tcsh |6.24.10-2 +14 |Thue |*N/A* |- +15 |TypeScript |node-typescript |4.8.4+ds1-2 +16 |Unlambda |*N/A* |- +17 |Vala |valac |0.56.13-1 +18 |Velato |*N/A* |- +19 |Verilog |iverilog |12.0-2 +20 |Vimscript |vim |2:9.0.1672-1ubuntu2.1 +21 |Visual Basic |dotnet7 |7.0.113-0ubuntu1\~23.10.1 +22 |WebAssembly (Binary format) |wabt |1.0.33-1 +23 |WebAssembly (Text format) |wabt |1.0.33-1 +24 |Whitespace |*N/A* |- +25 |XSLT |xsltproc |1.1.35-1 +26 |Yabasic |yabasic |1:2.90.3-1 +27 |Yorick |yorick |2.2.04+dfsg1-12 +28 |Zoem |zoem |21-341-1 +29 |zsh |zsh |5.9-5ubuntu1 +30 |A+ |aplus-fsf |4.22.1-10.2 +31 |Ada |gnat |12.2ubuntu1 +32 |AFNIX |afnix |3.8.0-1 +33 |Aheui |*N/A* |- +34 |ALGOL 68 |algol68g |3.1.2-1 +35 |Ante |*N/A* |- +36 |AspectJ |aspectj |1.9.5-2 +37 |Asymptote |asymptote |2.86+ds-1 +38 |ATS |ats2-lang |0.4.2-1.1 +39 |Awk |gawk |1:5.2.1-2 +40 |bash |bash |5.2.15-2ubuntu1 +41 |bc |bc |1.07.1-3build1 +42 |BeanShell |bsh |2.0b4-20 +43 |Befunge |*N/A* |- +44 |BLC8 |*N/A* |- +45 |Brainfuck |*N/A* |- +46 |C |gcc |4:13.2.0-1ubuntu1 +47 |C++ |g++ |4:13.2.0-1ubuntu1 +48 |C# |dotnet7 |7.0.113-0ubuntu1\~23.10.1 +49 |Chef |*N/A* |- +50 |Clojure |clojure |1.11.1-2 +51 |CMake |cmake |3.27.4-1 +52 |Cobol |gnucobol4 |4.0\~early\~20200606-6 +53 |CoffeeScript |coffeescript |2.7.0+dfsg1-1 +54 |Common Lisp |clisp |1:2.49.20210628.gitde01f0f-3.1 +55 |Crystal |crystal, libevent-dev |1.9.2+dfsg-3 +56 |D |gdc |4:13.2.0-1ubuntu1 +57 |Dafny |dafny |2.3.0+dfsg-0.1 +58 |dc |dc |1.07.1-3build1 +59 |Dhall |dhall |1.40.2-2build1 +60 |Elixir |elixir |1.14.0.dfsg-2 +61 |Emacs Lisp |emacs-nox |1:29.1+1-5ubuntu1 +62 |Erlang |erlang |1:25.2.3+dfsg-1 +63 |F# |dotnet7 |7.0.113-0ubuntu1\~23.10.1 +64 |FALSE |*N/A* |- +65 |Flex |flex |2.6.4-8.2 +66 |Fish |fish |3.6.1-1 +67 |Forth |gforth |0.7.3+dfsg-9build4.1 +68 |FORTRAN77 |f2c |20200916-1 +69 |Fortran90 |gfortran |4:13.2.0-1ubuntu1 +70 |Gambas script |gambas3-scripter, gambas3-gb-pcre |3.18.3-1ubuntu1 +71 |GAP |gap |4.12.1-2 +72 |GDB |gdb |14.0.50.20230907-0ubuntu1 +73 |GEL (Genius) |genius |1.0.27-1 +74 |Gnuplot |gnuplot |5.4.4+dfsg1-2build1 +75 |Go |golang |2:1.21\~2 +76 |GolfScript |*N/A* |- +77 |G-Portugol |gpt |1.1-7 +78 |Grass |*N/A* |- +79 |Groovy |groovy |2.4.21-8 +80 |Gzip |gzip |1.12-1ubuntu1 +81 |Haskell |ghc |9.0.2-5 +82 |Haxe |haxe |1:4.3.1-1 +83 |Icon |icont, iconx |9.4.3-7ubuntu1 +84 |INTERCAL |intercal |30:0.30-6 +85 |Jasmin |jasmin-sable |2.5.0-2 +86 |Java |openjdk-11-jdk |11.0.20.1+1-0ubuntu1\~23.04 +87 |JavaScript |nodejs |18.13.0+dfsg1-1ubuntu2 +88 |Jq |jq |1.6-3 +89 |JSFuck |nodejs |18.13.0+dfsg1-1ubuntu2 +90 |Kotlin |kotlin |1.3.31+ds1-1build5 +91 |ksh |ksh |20230128 +92 |Lazy K |*N/A* |- +93 |Lisaac |lisaac |1:0.39\~rc1-3.1 +94 |LiveScript |livescript |1.6.1+dfsg-3 +95 |LLVM asm |llvm |1:16.0-57 +96 |LOLCODE |*N/A* |- +97 |Lua |lua5.3 |5.3.6-2 +98 |M4 |m4 |1.4.19-3 +99 |Makefile |make |4.3-4.1build1 +100 |Maxima |maxima |5.45.1-8 +101 |MiniZinc |minizinc |2.6.4+dfsg1-1 +102 |Modula-2 |gm2 |4:13.2.0-1ubuntu1 +103 |MSIL |mono-devel |6.8.0.105+dfsg-3.4 104 |Mustache |ruby-mustache |1.1.1-2 105 |NASM |nasm |2.16.01-1 -106 |Neko |neko |2.3.0-1build3 -107 |Nickle |nickle |2.91 -108 |Nim |nim |1.6.10-2 -109 |Objective-C |gobjc |4:12.2.0-3ubuntu1 -110 |OCaml |ocaml |4.13.1-4ubuntu1 -111 |Octave |octave |7.3.0-1build1 +106 |Neko |neko |2.3.0-2 +107 |Nickle |nickle |2.92 +108 |Nim |nim |1.6.14-1 +109 |Objective-C |gobjc |4:13.2.0-1ubuntu1 +110 |OCaml |ocaml |4.13.1-6ubuntu1 +111 |Octave |octave |8.3.0-2 112 |Ook! |*N/A* |- -113 |PARI/GP |pari-gp |2.15.2-1 +113 |PARI/GP |pari-gp |2.15.4-2 114 |Parser 3 |parser3-cgi |3.4.6-3 -115 |Pascal |fp-compiler |3.2.2+dfsg-18ubuntu1 -116 |Perl 5 |perl |5.36.0-7ubuntu0.23.04.1 +115 |Pascal |fp-compiler |3.2.2+dfsg-22 +116 |Perl 5 |perl |5.36.0-9ubuntu1 117 |Perl 6 |rakudo |2022.12-1 -118 |PHP |php-cli |2:8.1+92ubuntu1 +118 |PHP |php-cli |2:8.2+93ubuntu1 119 |Piet |*N/A* |- -120 |PostScript |ghostscript |10.0.0\~dfsg1-0ubuntu1.3 -121 |PPT (Punched tape) |bsdgames |2.17-29 -122 |Prolog |swi-prolog |9.0.4+dfsg-1ubuntu2 +120 |PostScript |ghostscript |10.01.2\~dfsg1-0ubuntu2.1 +121 |PPT (Punched tape) |bsdgames |2.17-30 +122 |Prolog |swi-prolog |9.0.4+dfsg-2ubuntu1 123 |Promela (Spin) |spin |6.5.2+dfsg-1 -124 |Python |python3 |3.11.2-1 -125 |R |r-base |4.2.2.20221110-2build1 +124 |Python |python3 |3.11.4-5 +125 |R |r-base |4.3.1-4 126 |Ratfor |ratfor |1.05-2 127 |rc |rc |1.7.4+97.gceb59bb-5 128 |REXX |regina-rexx |3.6-2.4 diff --git a/langs.png b/langs.png index 41c6090d..0e5b2610 100644 Binary files a/langs.png and b/langs.png differ diff --git a/src/code-gen-pool.rb b/src/code-gen-pool.rb index fac7fddc..87c96730 100644 --- a/src/code-gen-pool.rb +++ b/src/code-gen-pool.rb @@ -37,26 +37,6 @@ class Execline < CodeGen Code = %q(%(echo "#{e[PREV]}")) end -class Modula2 < CodeGen - Name = "Modula-2" - File = "QR.mod" - Cmd = "gm2 -fiso QR.mod -o QR && ./QR > OUTFILE" - Apt = "gm2" - def code - <<-'END'.lines.map {|l| l.strip }.join - " - MODULE QR; - FROM StrIO IMPORT WriteString; - BEGIN #{ - (PREV).gsub(/()[#{i=94.chr}"]+|[#{i}']+/){ - ["WriteString(",$&,");"]*($1??":?') - } - }END QR. - " - END - end -end - class Pike < CodeGen File = "QR.pike" Cmd = "pike QR.pike > OUTFILE" diff --git a/src/code-gen.rb b/src/code-gen.rb index a7b3f5b3..0945f40e 100644 --- a/src/code-gen.rb +++ b/src/code-gen.rb @@ -339,6 +339,26 @@ def code end end +class Modula2 < CodeGen + Name = "Modula-2" + File = "QR.mod" + Cmd = "gm2 -fiso QR.mod -o QR && ./QR > OUTFILE" + Apt = "gm2" + def code + <<-'END'.lines.map {|l| l.strip }.join + " + MODULE QR; + FROM StrIO IMPORT WriteString; + BEGIN #{ + (PREV).gsub(/()[#{i=94.chr}"]+|[#{i}']+/){ + ["WriteString(",$&,");"]*($1??":?') + } + }END QR. + " + END + end +end + class MiniZinc < CodeGen File = "QR.mzn" Cmd = "minizinc --solver Gecode --soln-sep '' QR.mzn > OUTFILE" @@ -1483,13 +1503,6 @@ def code end end -class Smalltalk < CodeGen - File = "QR.st" - Cmd = "gst QR.st > OUTFILE" - Apt = "gnu-smalltalk" - Code = %q("Transcript show: '#{d[PREV,?']}';cr") -end - class Scilab_Sed_Shakespeare_SLang < CodeGen Name = ["Scilab", "sed", "Shakespeare", "S-Lang"] File = ["QR.sci", "QR.sed", "QR.spl", "QR.sl"] diff --git a/thumbnail.png b/thumbnail.png index 81299f3b..3b3bd23f 100644 Binary files a/thumbnail.png and b/thumbnail.png differ