{"id":13412436,"url":"https://github.com/mame/quine-relay","last_synced_at":"2025-05-14T22:06:21.044Z","repository":{"id":9524304,"uuid":"11423758","full_name":"mame/quine-relay","owner":"mame","description":"An uroboros program with 100+ programming languages","archived":false,"fork":false,"pushed_at":"2025-04-25T03:17:06.000Z","size":14869,"stargazers_count":14144,"open_issues_count":16,"forks_count":556,"subscribers_count":234,"default_branch":"master","last_synced_at":"2025-05-07T21:58:24.698Z","etag":null,"topics":["quine"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mame.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"mame"}},"created_at":"2013-07-15T13:29:20.000Z","updated_at":"2025-05-07T03:15:08.000Z","dependencies_parsed_at":"2024-10-25T14:48:06.937Z","dependency_job_id":"74217294-5680-4af1-b7b8-32413201543d","html_url":"https://github.com/mame/quine-relay","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mame%2Fquine-relay","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mame%2Fquine-relay/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mame%2Fquine-relay/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mame%2Fquine-relay/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mame","download_url":"https://codeload.github.com/mame/quine-relay/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254235694,"owners_count":22036963,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["quine"],"created_at":"2024-07-30T20:01:24.640Z","updated_at":"2025-05-14T22:06:20.992Z","avatar_url":"https://github.com/mame.png","language":"Ruby","funding_links":["https://github.com/sponsors/mame"],"categories":["Ruby","Coding","others","Computing"],"sub_categories":[],"readme":"# Quine Relay\n\n[![CI](https://github.com/mame/quine-relay/workflows/CI/badge.svg)](https://github.com/mame/quine-relay/actions?query=workflow%3ACI)\n\n## What this is\n\n[QR.rb](https://github.com/mame/quine-relay/blob/master/QR.rb) is a Ruby program that generates\na Rust program that generates\na Scala program that generates\n...(through 128 languages in total)...\na REXX program that generates\nthe original Ruby code again.\n\n![Language Uroboros][langs]\n\n[langs]: langs.png\n\n(If you want to see the old 50-language version, see the [50](https://github.com/mame/quine-relay/tree/50) branch.)\n\n## Usage\n\n### Ubuntu\n\nIf you are using Ubuntu 25.04 (Plucky Puffin), you can follow these steps.\n\n#### 1. Install all the interpreters/compilers.\n\nFirst, you need to type the following apt-get command to install them all.\n\n    $ sudo apt-get install afnix algol68g aplus-fsf aspectj asymptote \\\n      ats2-lang bash bc bsh clisp clojure cmake coffeescript crystal dc \\\n      dhall dotnet8 elixir emacs-nox erlang execline f2c fish flex \\\n      fp-compiler g++ gambas3-gb-pcre gambas3-scripter gap gawk gcc gdb gdc \\\n      genius gforth gfortran ghc ghostscript gm2 gnat gnucobol4 gnuplot \\\n      gobjc golang gpt groovy guile-3.0 gzip haxe icont iconx intercal \\\n      iverilog jasmin-sable jq kotlin ksh libevent-dev libpolyml-dev lisaac \\\n      livescript llvm lua5.3 m4 make minizinc mono-devel nasm neko nickle \\\n      nim node-typescript nodejs ocaml octave openjdk-11-jdk pari-gp \\\n      parser3-cgi perl php-cli pike8.0 polyml python3 r-base rakudo ratfor \\\n      rc regina-rexx ruby ruby-mustache rustc scala scilab-cli sed slsh spin \\\n      squirrel3 surgescript swi-prolog tcl tcsh valac vim wabt xsltproc \\\n      yabasic yorick zoem zsh\n\nThen, build the bundled interpreters.\n\n    $ sudo apt-get install cmake libpng-dev libgd-dev groff bison curl\n    $ make -C vendor\n\n#### 2. Run each program on each interpreter/compiler.\n\n    $ ulimit -s unlimited\n    $ ruby QR.rb \u003e QR.rs\n    $ rustc QR.rs \u0026\u0026 ./QR \u003e QR.scala\n    $ scalac QR.scala \u0026\u0026 scala QR \u003e QR.scm\n    $ guile QR.scm \u003e QR.sci\n    $ scilab-cli -nb -f QR.sci \u003e QR.sed\n    $ sed -E -f QR.sed QR.sed \u003e QR.spl\n    $ spl2c \u003c QR.spl \u003e QR.spl.c \u0026\u0026 gcc -z muldefs -o QR -I ./vendor/local/include -L ./vendor/local/lib QR.spl.c -lspl -lm \u0026\u0026\n      ./QR \u003e QR.sl\n    $ slsh QR.sl \u003e QR.nut\n    $ squirrel QR.nut \u003e QR.sml\n    $ polyc -o QR QR.sml \u0026\u0026 ./QR \u003e QR.sq\n    $ ruby vendor/subleq.rb QR.sq \u003e QR.ss\n    $ surgescript QR.ss \u003e QR.tcl\n    $ tclsh QR.tcl \u003e QR.tcsh\n    $ tcsh QR.tcsh \u003e QR.t\n    $ ruby vendor/thue.rb QR.t \u003e QR.ts\n    $ tsc --outFile QR.ts.js QR.ts \u0026\u0026 nodejs QR.ts.js \u003e QR.unl\n    $ ruby vendor/unlambda.rb QR.unl \u003e QR.vala\n    $ valac QR.vala \u0026\u0026 ./QR \u003e QR.mid\n    $ mono vendor/local/bin/Vlt.exe /s QR.mid \u0026\u0026 mono QR.exe \u003e QR.v\n    $ iverilog -o QR QR.v \u0026\u0026 ./QR -vcd-none \u003e QR.vim\n    $ vim -EsS QR.vim \u003e QR.vb\n    $ echo '\u003cProject Sdk=\"Microsoft.NET.Sdk\"\u003e\u003cPropertyGroup\u003e\u003cOutputType\u003eExe\u003c/OutputType\u003e\u003cTargetFramework\u003enet8.0\u003c/TargetFramework\u003e\u003cEnableDefaultCompileItems\u003efalse\u003c/EnableDefaultCompileItems\u003e\u003c/PropertyGroup\u003e\u003cItemGroup\u003e\u003cCompile Include=\"QR.vb\" /\u003e\u003c/ItemGroup\u003e\u003c/Project\u003e' \u003e tmp.vbproj \u0026\u0026\n      DOTNET_NOLOGO=1 dotnet run --project tmp.vbproj \u003e QR.wasm\n    $ $(WASI_RUNTIME) QR.wasm \u003e QR.wat\n    $ wat2wasm QR.wat -o QR.wat.wasm \u0026\u0026 $(WASI_RUNTIME) QR.wat.wasm \u003e QR.ws\n    $ ruby vendor/whitespace.rb QR.ws \u003e QR.xslt\n    $ xsltproc QR.xslt \u003e QR.yab\n    $ yabasic QR.yab \u003e QR.yorick\n    $ yorick -batch QR.yorick \u003e QR.azm\n    $ zoem -i QR.azm \u003e QR.zsh\n    $ zsh QR.zsh \u003e QR.+\n    $ a+ QR.+ \u003e qr.adb\n    $ gnatmake qr.adb \u0026\u0026 ./qr \u003e QR.als\n    $ LANG=C LD_LIBRARY_PATH=/usr/lib/afnix axi QR.als \u003e QR.aheui\n    $ ruby vendor/aheui.rb QR.aheui \u003e QR.a68\n    $ a68g QR.a68 \u003e QR.ante\n    $ ruby vendor/ante.rb QR.ante \u003e QR.aj\n    $ ajc QR.aj \u0026\u0026 java QR \u003e QR.asy\n    $ asy QR.asy \u003e QR.dats\n    $ patscc -o QR QR.dats \u0026\u0026 ./QR \u003e QR.awk\n    $ awk -f QR.awk \u003e QR.bash\n    $ bash QR.bash \u003e QR.bc\n    $ BC_LINE_LENGTH=4000000 bc -q QR.bc \u003e QR.bsh\n    $ bsh QR.bsh \u003e QR.bef\n    $ cfunge QR.bef \u003e QR.Blc\n    $ ruby vendor/blc.rb \u003c QR.Blc \u003e QR.bf\n    $ ruby vendor/bf.rb QR.bf \u003e QR.c\n    $ gcc -o QR QR.c \u0026\u0026 ./QR \u003e QR.cpp\n    $ g++ -o QR QR.cpp \u0026\u0026 ./QR \u003e QR.cs\n    $ echo '\u003cProject Sdk=\"Microsoft.NET.Sdk\"\u003e\u003cPropertyGroup\u003e\u003cOutputType\u003eExe\u003c/OutputType\u003e\u003cTargetFramework\u003enet8.0\u003c/TargetFramework\u003e\u003cEnableDefaultCompileItems\u003efalse\u003c/EnableDefaultCompileItems\u003e\u003c/PropertyGroup\u003e\u003cItemGroup\u003e\u003cCompile Include=\"QR.cs\" /\u003e\u003c/ItemGroup\u003e\u003c/Project\u003e' \u003e tmp.csproj \u0026\u0026\n      DOTNET_NOLOGO=1 dotnet run --project tmp.csproj \u003e QR.chef\n    $ PERL5LIB=vendor/local/lib/perl5 compilechef QR.chef QR.chef.pl \u0026\u0026\n      perl QR.chef.pl \u003e QR.clj\n    $ clojure QR.clj \u003e QR.cmake\n    $ cmake -P QR.cmake \u003e QR.cob\n    $ cobc -O2 -x QR.cob \u0026\u0026 ./QR \u003e QR.coffee\n    $ coffee --nodejs --stack_size=100000 QR.coffee \u003e QR.lisp\n    $ clisp QR.lisp \u003e QR.cr\n    $ crystal QR.cr \u003e QR.d\n    $ gdc -o QR QR.d \u0026\u0026 ./QR \u003e QR.dc\n    $ dc QR.dc \u003e QR.dhall || true\n    $ dhall text --file QR.dhall \u003e QR.exs\n    $ elixir QR.exs \u003e QR.el\n    $ emacs -Q --script QR.el \u003e QR.erl\n    $ escript QR.erl \u003e QR.e\n    $ execlineb QR.e \u003e QR.fsx\n    $ echo '\u003cProject Sdk=\"Microsoft.NET.Sdk\"\u003e\u003cPropertyGroup\u003e\u003cOutputType\u003eExe\u003c/OutputType\u003e\u003cTargetFramework\u003enet8.0\u003c/TargetFramework\u003e\u003cEnableDefaultCompileItems\u003efalse\u003c/EnableDefaultCompileItems\u003e\u003c/PropertyGroup\u003e\u003cItemGroup\u003e\u003cCompile Include=\"QR.fsx\" /\u003e\u003c/ItemGroup\u003e\u003c/Project\u003e' \u003e tmp.fsproj \u0026\u0026\n      DOTNET_NOLOGO=1 dotnet run --project tmp.fsproj \u003e QR.false\n    $ ruby vendor/false.rb QR.false \u003e QR.fl\n    $ flex -o QR.fl.c QR.fl \u0026\u0026 gcc -o QR QR.fl.c \u0026\u0026 ./QR \u003e QR.fish\n    $ fish QR.fish \u003e QR.fs\n    $ gforth QR.fs \u003e QR.f\n    $ gfortran -o QR QR.f \u0026\u0026 ./QR \u003e QR.f90\n    $ gfortran -o QR QR.f90 \u0026\u0026 ./QR \u003e QR.gbs\n    $ gbs3 QR.gbs \u003e QR.g\n    $ gap -q QR.g \u003e QR.gdb\n    $ gdb -q -x QR.gdb \u003e QR.gel\n    $ genius QR.gel \u003e QR.plt\n    $ gnuplot QR.plt \u003e QR.go\n    $ go run QR.go \u003e QR.gs\n    $ ruby vendor/golfscript.rb QR.gs \u003e QR.gpt\n    $ mv QR.c QR.c.bak \u0026\u0026 gpt -t QR.c QR.gpt \u0026\u0026 gcc -o QR QR.c \u0026\u0026 ./QR \u003e QR.grass \u0026\u0026\n      mv QR.c.bak QR.c\n    $ ruby vendor/grass.rb QR.grass \u003e QR.groovy\n    $ groovy QR.groovy \u003e QR.gz\n    $ gzip -cd QR.gz \u003e QR.hs\n    $ rm -f QR.o \u0026\u0026 ghc QR.hs \u0026\u0026 ./QR \u003e QR.hx\n    $ haxe -main QR -neko QR.n \u0026\u0026 neko QR.n \u003e QR.icn\n    $ icont -s QR.icn \u0026\u0026 ./QR \u003e QR.i\n    $ ick -bfOc QR.i \u0026\u0026 gcc -static QR.c -I /usr/include/ick-* -o QR -lick \u0026\u0026\n      ./QR \u003e QR.j\n    $ jasmin QR.j \u0026\u0026 java QR \u003e QR.java\n    $ javac QR.java \u0026\u0026 java QR \u003e QR.js\n    $ nodejs QR.js \u003e QR.jq\n    $ jq -r -n -f QR.jq \u003e QR.jsfuck\n    $ nodejs --stack_size=100000 QR.jsfuck \u003e QR.kt\n    $ kotlinc QR.kt -include-runtime -d QR.jar \u0026\u0026 kotlin QR.jar \u003e QR.ksh\n    $ ksh QR.ksh \u003e QR.lazy\n    $ lazyk QR.lazy \u003e qr.li\n    $ lisaac -gcc -Wno-implicit-function-declaration qr.li \u0026\u0026 ./qr \u003e QR.ls\n    $ lsc QR.ls \u003e QR.ll\n    $ llvm-as QR.ll \u0026\u0026 lli QR.bc \u003e QR.lol\n    $ lci QR.lol \u003e QR.lua\n    $ lua5.3 QR.lua \u003e QR.m4\n    $ m4 QR.m4 \u003e QR.mk\n    $ make -f QR.mk \u003e QR.mzn\n    $ minizinc --solver COIN-BC --soln-sep '' QR.mzn \u003e QR.mod\n    $ gm2 -fiso QR.mod -o QR \u0026\u0026 ./QR \u003e QR.il\n    $ ilasm QR.il \u0026\u0026 mono QR.exe \u003e QR.mustache\n    $ mustache QR.mustache QR.mustache \u003e QR.asm\n    $ nasm -felf QR.asm \u0026\u0026 ld -m elf_i386 -o QR QR.o \u0026\u0026 ./QR \u003e QR.neko\n    $ nekoc QR.neko \u0026\u0026 neko QR.n \u003e QR.5c\n    $ nickle QR.5c \u003e QR.nim\n    $ nim compile QR.nim \u0026\u0026 ./QR \u003e QR.m\n    $ gcc -o QR QR.m \u0026\u0026 ./QR \u003e QR.ml\n    $ ocaml QR.ml \u003e QR.octave\n    $ mv QR.m QR.m.bak \u0026\u0026 octave -qf QR.octave \u003e QR.ook \u0026\u0026 mv QR.m.bak QR.m\n    $ ruby vendor/ook-to-bf.rb QR.ook QR.ook.bf \u0026\u0026 ruby vendor/bf.rb QR.ook.bf \u003e QR.gp\n    $ gp -f -q QR.gp \u003e QR.p\n    $ parser3 QR.p \u003e QR.pas\n    $ fpc QR.pas \u0026\u0026 ./QR \u003e QR.pl\n    $ perl QR.pl \u003e QR.pl6\n    $ perl6 QR.pl6 \u003e QR.php\n    $ php QR.php \u003e QR.png\n    $ npiet QR.png \u003e QR.pike\n    $ pike QR.pike \u003e QR.ps\n    $ gs -dNODISPLAY -q QR.ps \u003e QR.prolog\n    $ swipl -q -t qr -f QR.prolog \u003e QR.pr\n    $ spin -T QR.pr \u003e QR.py\n    $ python3 QR.py \u003e QR.R\n    $ R --slave -f QR.R \u003e QR.ratfor\n    $ ratfor -o QR.ratfor.f QR.ratfor \u0026\u0026 gfortran -o QR QR.ratfor.f \u0026\u0026\n      ./QR \u003e QR.rc\n    $ rc QR.rc \u003e QR.rexx\n    $ rexx ./QR.rexx \u003e QR2.rb\n\nYou will see that `QR.rb` is the same as `QR2.rb`.\n\n    $ diff QR.rb QR2.rb\n\nAlternatively, just type `make`.\n\n    $ make\n\nNote: It may take a lot of memory to compile some files.\n\n### Docker\n\nSimply build the image and run a container as follows:\n\n    $ docker build -t qr .\n    $ docker run --privileged --rm -e CI=true qr\n\nNote: You must run in privileged mode, otherwise the `maxima` command will fail.\n\nIf you want to check the generated files, you can mount the local directory in the Docker container (but still use the `vendor` directory of the container), as follows:\n\n    $ docker run --privileged --rm -e CI=true -v $(pwd):/usr/local/share/quine-relay -v /usr/local/share/quine-relay/vendor qr\n\n### Other platforms\n\nYou may find [instructions for other platforms in the wiki](https://github.com/mame/quine-relay/wiki/Installation).\n\nIf you do not use these Linux distributions, please find your own way.\nIf you manage it, please let me know.  I wish you good luck.\n\n## Interpreter/compiler versions tested\n\nI used the following Ubuntu deb packages to test this program.\n\n\\#  |language                    |ubuntu package                    |version\n----|----------------------------|----------------------------------|---------------------------------\n1   |Ruby                        |ruby                              |1:3.3\\~ubuntu3\n2   |Rust                        |rustc                             |1.84.0ubuntu1\n3   |Scala                       |scala                             |2.11.12-6\n4   |Scheme                      |guile-3.0                         |3.0.10+really3.0.10-4\n5   |Scilab                      |scilab-cli                        |2024.1.0+dfsg-6build5\n6   |sed                         |sed                               |4.9-2build1\n7   |Shakespeare                 |*N/A*                             |-\n8   |S-Lang                      |slsh                              |2.3.3-5\n9   |Squirrel                    |squirrel3                         |3.1-8.2\n10  |Standard ML                 |polyml, libpolyml-dev             |5.7.1-5build1\n11  |Subleq                      |*N/A*                             |-\n12  |SurgeScript                 |surgescript                       |0.5.4.4-1.1\n13  |Tcl                         |tcl                               |8.6.14build1\n14  |tcsh                        |tcsh                              |6.24.13-2\n15  |Thue                        |*N/A*                             |-\n16  |TypeScript                  |node-typescript                   |4.9.5+ds1-2\n17  |Unlambda                    |*N/A*                             |-\n18  |Vala                        |valac                             |0.56.18-2\n19  |Velato                      |*N/A*                             |-\n20  |Verilog                     |iverilog                          |12.0-2build2\n21  |Vimscript                   |vim                               |2:9.1.0967-1ubuntu4\n22  |Visual Basic                |dotnet8                           |8.0.115-8.0.15-0ubuntu1\n23  |WebAssembly (Binary format) |wabt                              |1.0.34+dsfg2+\\~cs1.0.32-1ubuntu2\n24  |WebAssembly (Text format)   |wabt                              |1.0.34+dsfg2+\\~cs1.0.32-1ubuntu2\n25  |Whitespace                  |*N/A*                             |-\n26  |XSLT                        |xsltproc                          |1.1.39-0exp1ubuntu4\n27  |Yabasic                     |yabasic                           |1:2.91.1-1\n28  |Yorick                      |yorick                            |2.2.04+dfsg1-14\n29  |Zoem                        |zoem                              |21-341-1\n30  |zsh                         |zsh                               |5.9-6ubuntu3\n31  |A+                          |aplus-fsf                         |4.22.1-13\n32  |Ada                         |gnat                              |14.1ubuntu1\n33  |AFNIX                       |afnix                             |3.8.0-1.1ubuntu1\n34  |Aheui                       |*N/A*                             |-\n35  |ALGOL 68                    |algol68g                          |3.1.2-1\n36  |Ante                        |*N/A*                             |-\n37  |AspectJ                     |aspectj                           |1.9.6-1\n38  |Asymptote                   |asymptote                         |2.95+ds-1\n39  |ATS                         |ats2-lang                         |0.4.2-3\n40  |Awk                         |gawk                              |1:5.2.1-2build3\n41  |bash                        |bash                              |5.2.37-1.1ubuntu1\n42  |bc                          |bc                                |1.07.1-4\n43  |BeanShell                   |bsh                               |2.0b4-20\n44  |Befunge                     |*N/A*                             |-\n45  |BLC8                        |*N/A*                             |-\n46  |Brainfuck                   |*N/A*                             |-\n47  |C                           |gcc                               |4:14.2.0-1ubuntu1\n48  |C++                         |g++                               |4:14.2.0-1ubuntu1\n49  |C#                          |dotnet8                           |8.0.115-8.0.15-0ubuntu1\n50  |Chef                        |*N/A*                             |-\n51  |Clojure                     |clojure                           |1.12.0-1\n52  |CMake                       |cmake                             |3.31.6-1ubuntu1\n53  |Cobol                       |gnucobol4                         |4.0\\~early\\~20200606-7\n54  |CoffeeScript                |coffeescript                      |2.7.0+dfsg1-2\n55  |Common Lisp                 |clisp                             |1:2.49.20241123.git9ff8aed-1\n56  |Crystal                     |crystal, libevent-dev             |1.14.0+dfsg-1\n57  |D                           |gdc                               |4:14.2.0-1ubuntu1\n58  |dc                          |dc                                |1.07.1-4\n59  |Dhall                       |dhall                             |1.42.1-1build2\n60  |Elixir                      |elixir                            |1.18.1.dfsg-1.1\n61  |Emacs Lisp                  |emacs-nox                         |1:30.1+1-5ubuntu1\n62  |Erlang                      |erlang                            |1:27.3+dfsg-1ubuntu1.1\n63  |Execline                    |execline                          |2.9.6.1-1\n64  |F#                          |dotnet8                           |8.0.115-8.0.15-0ubuntu1\n65  |FALSE                       |*N/A*                             |-\n66  |Flex                        |flex                              |2.6.4-8.2build1\n67  |Fish                        |fish                              |4.0.1-1\n68  |Forth                       |gforth                            |0.7.3+dfsg-9build4.1\n69  |FORTRAN77                   |f2c                               |20240504-1\n70  |Fortran90                   |gfortran                          |4:14.2.0-1ubuntu1\n71  |Gambas script               |gambas3-scripter, gambas3-gb-pcre |3.20.2-1build1\n72  |GAP                         |gap                               |4.14.0-3\n73  |GDB                         |gdb                               |16.2-8ubuntu1\n74  |GEL (Genius)                |genius                            |1.0.27-1build4\n75  |Gnuplot                     |gnuplot                           |6.0.2+dfsg1-1\n76  |Go                          |golang                            |2:1.24\\~2\n77  |GolfScript                  |*N/A*                             |-\n78  |G-Portugol                  |gpt                               |1.1-8\n79  |Grass                       |*N/A*                             |-\n80  |Groovy                      |groovy                            |2.4.21-10\n81  |Gzip                        |gzip                              |1.13-1ubuntu3\n82  |Haskell                     |ghc                               |9.6.6-4\n83  |Haxe                        |haxe                              |1:4.3.6-3\n84  |Icon                        |icont, iconx                      |9.5.24a-2\n85  |INTERCAL                    |intercal                          |30:0.30-6\n86  |Jasmin                      |jasmin-sable                      |2.5.0-3\n87  |Java                        |openjdk-11-jdk                    |11.0.26+4-1ubuntu1\n88  |JavaScript                  |nodejs                            |20.18.1+dfsg-1ubuntu2\n89  |Jq                          |jq                                |1.7.1-3ubuntu1\n90  |JSFuck                      |nodejs                            |20.18.1+dfsg-1ubuntu2\n91  |Kotlin                      |kotlin                            |1.3.31+ds1-2\n92  |ksh                         |ksh                               |20240113-1.0.10-2\n93  |Lazy K                      |*N/A*                             |-\n94  |Lisaac                      |lisaac                            |1:0.39\\~rc1-3.1\n95  |LiveScript                  |livescript                        |1.6.1+dfsg-3\n96  |LLVM asm                    |llvm                              |1:20.0-63ubuntu1\n97  |LOLCODE                     |*N/A*                             |-\n98  |Lua                         |lua5.3                            |5.3.6-2build2\n99  |M4                          |m4                                |1.4.19-7\n100 |Makefile                    |make                              |4.4.1-1\n101 |MiniZinc                    |minizinc                          |2.9.2+dfsg1-1\n102 |Modula-2                    |gm2                               |4:14.2.0-1ubuntu1\n103 |MSIL                        |mono-devel                        |6.12.0.199+dfsg-3\n104 |Mustache                    |ruby-mustache                     |1.1.1-2\n105 |NASM                        |nasm                              |2.16.03-1\n106 |Neko                        |neko                              |2.4.0-2\n107 |Nickle                      |nickle                            |2.102\n108 |Nim                         |nim                               |1.6.14-1ubuntu2\n109 |Objective-C                 |gobjc                             |4:14.2.0-1ubuntu1\n110 |OCaml                       |ocaml                             |5.3.0-2\n111 |Octave                      |octave                            |9.4.0-1\n112 |Ook!                        |*N/A*                             |-\n113 |PARI/GP                     |pari-gp                           |2.17.2-1\n114 |Parser 3                    |parser3-cgi                       |3.5.1-2\n115 |Pascal                      |fp-compiler                       |3.2.2+dfsg-46\n116 |Perl 5                      |perl                              |5.40.1-2ubuntu0.1\n117 |Perl 6                      |rakudo                            |2022.12-1\n118 |PHP                         |php-cli                           |2:8.4+96ubuntu1\n119 |Piet                        |*N/A*                             |-\n120 |Pike                        |pike8.0                           |8.0.1738-1.4build1\n121 |PostScript                  |ghostscript                       |10.05.0dfsg1-0ubuntu1\n122 |Prolog                      |swi-prolog                        |9.0.4+dfsg-3.1ubuntu4\n123 |Promela (Spin)              |spin                              |6.5.2+dfsg-2\n124 |Python                      |python3                           |3.13.3-1\n125 |R                           |r-base                            |4.4.3-1\n126 |Ratfor                      |ratfor                            |1.07-1\n127 |rc                          |rc                                |1.7.4+97.gceb59bb-5build2\n128 |REXX                        |regina-rexx                       |3.9.5+dfsg1-0.1\n\nNote that some languages are not available in Ubuntu (marked as *N/A*).\nThis repository contains their implementations in `vendor/`.\nSee also `vendor/README` for detail.\n\n\n## Frequently asked questions\n\n### Q. Why?\n\nA. [Take your pick](https://github.com/mame/quine-relay/issues/11).\n\n### Q. How?\n\nA. Good news: I have published a book, [\"The World of Obfuscated, Esoteric, Artistic Programming\"](http://gihyo.jp/book/2015/978-4-7741-7643-7).\nIt explains how to write a quine, an ascii-art quine, and an uroboros quine like this quine-relay.\nYou can buy my book on [amazon.co.jp](http://www.amazon.co.jp/dp/4774176435).\n\n(It also contains my almost all of my (about forty) works, including\n[alphabet-only Ruby program](http://www.slideshare.net/mametter/ruby-esoteric-obfuscated-ruby-programming-5088683),\n[radiation-hardened quine](https://github.com/mame/radiation-hardened-quine),\netc., and explains many techniques for writing such programs.)\n\nBad news: It is written in Japanese.\nI hope you can translate it into English \u003cstrike\u003eand help me earn royalties\u003c/strike\u003e.\n\n### Q. Language XXX is missing!\n\nA. See [the language inclusion criteria][criteria] in detail.  (In short, please create a deb package and contribute it to Ubuntu.)\n\nSee also [:heart:][sponsors].\n\n[criteria]: https://github.com/mame/quine-relay/wiki/Language-inclusion-criteria\n[sponsors]: https://github.com/sponsors/mame\n\n\n### Q. Does it really work?\n\nA. [![CI](https://github.com/mame/quine-relay/workflows/CI/badge.svg)](https://github.com/mame/quine-relay/actions?query=workflow%2ACI)\n\n### Q. How long did it take you?\n\nA. [Are you trying to cross the world line?](https://github.com/mame/quine-relay/issues/60)\n\n### Q. The code does not fit in my screen!\n\nA. [Here you go][thumbnail].\n\n[thumbnail]: thumbnail.png\n\n### Q. How was the code generated?\n\nA.\n\n    $ sudo apt-get install rake ruby-cairo ruby-rsvg2 ruby-gdk-pixbuf2 \\\n      optipng advancecomp ruby-chunky-png\n    $ cd src\n    $ rake2.0 clobber\n    $ rake2.0\n\n## History\n\n## for Ubuntu 13.04\n\n[50 languages](https://github.com/mame/quine-relay/tree/ad3f8222c796969db8cfb1bae015a46c2387b3d6)\n\nAdded: Ruby, Scala, Scheme, bash, Smalltalk, Unlambda, Tcl, Whitespace, Verilog, Vala, Ada, ALGOL 68, Awk, Brainfuck, Boo, C, C++, C#, Cobol, Clojure, Fortran90, FORTRAN77, Forth, Common Lisp, CoffeeScript, Groovy, Go, INTERCAL, Icon, Haskell, Jasmin, Java, LLVM asm, Logo, Lua, Makefile, MSIL, Objective-C, JavaScript, OCaml, Octave, Parrot asm, Pascal, Perl, PHP, Pike, Prolog, Python, R, REXX\n\n## for Ubuntu 13.10\n\n[50 languages](https://github.com/mame/quine-relay/tree/ea4d39fb1ebc7ee23ec6f60ca7bfa0d465b5806a)\n\n## for Ubuntu 14.04\n\n[50 languages](https://github.com/mame/quine-relay/tree/d16bf072e3063dc476dc440c8f3e33d7426e98db)\n\n## for Ubuntu 14.10\n\n[64 languages](https://github.com/mame/quine-relay/tree/e449baba456d4885102482cbd365335be59241b2)\n\nAdded: Scilab, S-Lang, SPL, LOLCODE, Maxima, NASM, Neko, Nickle, Ook!, PARI/GP, Piet, PPT (Punched tape), PostScript, Ratfor\n\n## for Ubuntu 15.04\n\n[100 languages](https://github.com/mame/quine-relay/tree/7749715289ca162eb1c1eb1ff1ed1393edc41630)\n\nAdded: Subleq, Standard ML, Thue, Visual Basic, XSLT, Yorick, Zoem, A+, AFNIX, Ante, Asymptote, ATS, BLC8, Befunge, bc, Chef, CDuce, D, dc, eC, Emacs Lisp, Erlang, F#, Falcon, FALSE, Gambas script, GAP, GEL (Genius), Gnuplot, G-Portugol, Gri, Haxe, Julia, Lisaac, Lazy K, Kaya\n\n## for Ubuntu 15.10\n\n[100 languages](https://github.com/mame/quine-relay/tree/f45035f867c7c8f7b4e12fa63e7c8eef9aabecad)\n\nRemoved: Boo, Falcon, Kaya\n\nAdded: Elixir, Jq, Nim\n\n## for Ubuntu 16.04\n\n[100 languages](https://github.com/mame/quine-relay/tree/233ba8b4e1d7e4c59a46d64481048a8ea7f4400e)\n\n## for Ubuntu 17.04\n\n[100 languages](https://github.com/mame/quine-relay/tree/e65a798da23df0367d9eb5e4d46f00d87e6cb342)\n\nRemoved: SPL, Gri, Logo, Parrot asm\n\nAdded: Squirrel, Dafny, Grass, MiniZinc\n\n## for Ubuntu 17.10\n\n[100 languages](https://github.com/mame/quine-relay/tree/943b83801a1bd019ebf348adc78df2cdfde06513)\n\nRemoved: CDuce\n\nAdded: Rust\n\n## for Ubuntu 18.04\n\n[128 languages](https://github.com/mame/quine-relay/tree/6e173d76e972e1da7992b84768bf9f4c788949ed)\n\nRemoved: Gambas script, Perl\n\nAdded: Shakespeare, sed, tcsh, TypeScript, Velato, Vimscript, Yabasic, zsh, Aheui, AspectC++, AspectJ, BeanShell, CMake, Flex, Fish, GDB, GolfScript, Gzip, Gri, JSFuck, ksh, LiveScript, M4, Mustache, nesC, Parser 3, Perl 5, Perl 6, Promela (Spin), rc\n\n## for Ubuntu 19.04\n\n[128 languages](https://github.com/mame/quine-relay/tree/c8898351500682cea02219313e9203da7eca5505)\n\nRemoved: Scilab, G-Portugol, nesC\n\nAdded: Curry, Gambas script, GeneratorScriptingLanguage\n\n## for Ubuntu 19.10\n\n[128 languages](https://github.com/mame/quine-relay/tree/13041dbf3f80a90c9221ef94f8e8bc385800b6fd)\n\nRemoved: Gri\n\nAdded: Scilab\n\n## for Ubuntu 20.04\n\n[128 languages](https://github.com/mame/quine-relay/tree/62e2cc2d61d99719328094d185d899bc03a851fb)\n\n## for Ubuntu 20.10\n\n[128 languages](https://github.com/mame/quine-relay/tree/114f44fefd610812d2f5e3032603762752ed51b2)\n\nRemoved: AspectC++, eC\n\nAdded: SurgeScript, Dhall\n\n## for Ubuntu 21.04\n\n[128 languages](https://github.com/mame/quine-relay/tree/d8df33bad3693afd0bd3bf1c2b1cedd5753325dc)\n\nRemoved: Curry\n\nAdded: G-Portugol\n\n## for Ubuntu 21.10\n\n[128 languages](https://github.com/mame/quine-relay/tree/158b6251d36a48122ec0006feaf759d8b1973b0f)\n\n## for Ubuntu 22.04\n\n[128 languages](https://github.com/mame/quine-relay/tree/7b81d8704549d31814499c5300be2be9568467c8)\n\nRemoved: Julia, Nim, Pike\n\nAdded: WebAssembly (Text format), WebAssembly (Binary format), Kotlin\n\n## for Ubuntu 22.10\n\n[128 languages](https://github.com/mame/quine-relay/tree/362962dd2d55d7c36dd9fa3e0d4c0c52c0e6a18f)\n\n## for Ubuntu 23.04\n\n[128 languages](https://github.com/mame/quine-relay/tree/5dfdada5aa58f6a97ae85b84f86c7eb091225a8c)\n\nRemoved: Squirrel, GeneratorScriptingLanguage\n\nAdded: Crystal, Nim\n\n## for Ubuntu 23.10\n\n[128 languages](https://github.com/mame/quine-relay/tree/74c4cc7d79fccbb1c8315070b9efea03cb787755)\n\nRemoved: Smalltalk\n\nAdded: Modula-2\n\n## for Ubuntu 24.04\n\n[128 languages](https://github.com/mame/quine-relay/tree/20d7f437c053b8e0b301ba996d124a4b812e3571)\n\nRemoved: PPT (Punched tape)\n\nAdded: Pike\n\n## for Ubuntu 24.10\n\n128 languages\n\nRemoved: Dafny, Maxima\n\nAdded: Execline, Squirrel\n\n## License\n\nThe MIT License applies to all resources\n*except* the files in the `vendor/` directory.\n\nThe files in the `vendor/` directory are from third-parties\nand are distributed under different licenses.\nSee `vendor/README` in detail.\n\n---\n\nThe MIT License (MIT)\n\nCopyright (c) 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024 Yusuke Endoh (@mametter), @hirekoke\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmame%2Fquine-relay","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmame%2Fquine-relay","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmame%2Fquine-relay/lists"}