[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-7630":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":17,"stars30d":15,"stars90d":16,"forks30d":16,"starsTrendScore":18,"compositeScore":19,"rankGlobal":10,"rankLanguage":10,"license":10,"archived":20,"fork":20,"defaultBranch":21,"hasWiki":22,"hasPages":20,"topics":23,"createdAt":10,"pushedAt":10,"updatedAt":25,"readmeContent":26,"aiSummary":27,"trendingCount":16,"starSnapshotCount":16,"syncStatus":18,"lastSyncTime":28,"discoverSource":29},7630,"quine-relay","mame\u002Fquine-relay","mame","An uroboros program with 100+ programming languages","",null,"Ruby",14481,569,233,16,0,5,2,69.37,false,"master",true,[24],"quine","2026-06-12 04:00:35","# Quine Relay\n\n[![CI](https:\u002F\u002Fgithub.com\u002Fmame\u002Fquine-relay\u002Fworkflows\u002FCI\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Fmame\u002Fquine-relay\u002Factions?query=workflow%3ACI)\n\n## What this is\n\n[QR.rb](https:\u002F\u002Fgithub.com\u002Fmame\u002Fquine-relay\u002Fblob\u002Fmaster\u002FQR.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:\u002F\u002Fgithub.com\u002Fmame\u002Fquine-relay\u002Ftree\u002F50) branch.)\n\n## Usage\n\n### Ubuntu\n\nIf you are using Ubuntu 25.10 (Questing Quokka), you can follow these steps.\n\n#### 1. Install all the interpreters\u002Fcompilers.\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 \\\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 swiftlang tcl tcsh valac vim wabt \\\n      xsltproc 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\u002Fcompiler.\n\n    $ ulimit -s unlimited\n    $ ruby QR.rb > QR.rs\n    $ rustc QR.rs && .\u002FQR > QR.scala\n    $ scalac QR.scala && scala QR > QR.scm\n    $ guile QR.scm > QR.sci\n    $ scilab-cli -nb -f QR.sci > QR.sed\n    $ sed -E -f QR.sed QR.sed > QR.spl\n    $ spl2c \u003C QR.spl > QR.spl.c && gcc -z muldefs -o QR -I .\u002Fvendor\u002Flocal\u002Finclude -L .\u002Fvendor\u002Flocal\u002Flib QR.spl.c -lspl -lm &&\n      .\u002FQR > QR.sl\n    $ slsh QR.sl > QR.nut\n    $ squirrel QR.nut > QR.sml\n    $ polyc -o QR QR.sml && .\u002FQR > QR.sq\n    $ ruby vendor\u002Fsubleq.rb QR.sq > QR.ss\n    $ surgescript QR.ss > QR.swift\n    $ swiftc QR.swift && .\u002FQR > QR.tcl\n    $ tclsh QR.tcl > QR.tcsh\n    $ tcsh QR.tcsh > QR.t\n    $ ruby vendor\u002Fthue.rb QR.t > QR.ts\n    $ tsc --outFile QR.ts.js QR.ts && nodejs QR.ts.js > QR.unl\n    $ ruby vendor\u002Funlambda.rb QR.unl > QR.vala\n    $ valac QR.vala && .\u002FQR > QR.mid\n    $ mono vendor\u002Flocal\u002Fbin\u002FVlt.exe \u002Fs QR.mid && mono QR.exe > QR.v\n    $ iverilog -o QR QR.v && .\u002FQR -vcd-none > QR.vim\n    $ vim -EsS QR.vim > QR.vb\n    $ echo '\u003CProject Sdk=\"Microsoft.NET.Sdk\">\u003CPropertyGroup>\u003COutputType>Exe\u003C\u002FOutputType>\u003CTargetFramework>net8.0\u003C\u002FTargetFramework>\u003CEnableDefaultCompileItems>false\u003C\u002FEnableDefaultCompileItems>\u003C\u002FPropertyGroup>\u003CItemGroup>\u003CCompile Include=\"QR.vb\" \u002F>\u003C\u002FItemGroup>\u003C\u002FProject>' > tmp.vbproj &&\n      DOTNET_NOLOGO=1 dotnet run --project tmp.vbproj > QR.wasm\n    $ $(WASI_RUNTIME) QR.wasm > QR.wat\n    $ wat2wasm QR.wat -o QR.wat.wasm && $(WASI_RUNTIME) QR.wat.wasm > QR.ws\n    $ ruby vendor\u002Fwhitespace.rb QR.ws > QR.xslt\n    $ xsltproc QR.xslt > QR.yab\n    $ yabasic QR.yab > QR.yorick\n    $ yorick -batch QR.yorick > QR.azm\n    $ zoem -i QR.azm > QR.zsh\n    $ zsh QR.zsh > QR.+\n    $ a+ QR.+ > qr.adb\n    $ gnatmake qr.adb && .\u002Fqr > QR.als\n    $ LANG=C LD_LIBRARY_PATH=\u002Fusr\u002Flib\u002Fafnix axi QR.als > QR.aheui\n    $ ruby vendor\u002Faheui.rb QR.aheui > QR.a68\n    $ a68g QR.a68 > QR.ante\n    $ ruby vendor\u002Fante.rb QR.ante > QR.aj\n    $ ajc QR.aj && java QR > QR.asy\n    $ asy QR.asy > QR.dats\n    $ patscc -o QR QR.dats && .\u002FQR > QR.awk\n    $ awk -f QR.awk > QR.bash\n    $ bash QR.bash > QR.bc\n    $ BC_LINE_LENGTH=4000000 bc -q QR.bc > QR.bsh\n    $ bsh QR.bsh > QR.bef\n    $ cfunge QR.bef > QR.Blc\n    $ ruby vendor\u002Fblc.rb \u003C QR.Blc > QR.bf\n    $ ruby vendor\u002Fbf.rb QR.bf > QR.c\n    $ gcc -o QR QR.c && .\u002FQR > QR.cpp\n    $ g++ -o QR QR.cpp && .\u002FQR > QR.cs\n    $ echo '\u003CProject Sdk=\"Microsoft.NET.Sdk\">\u003CPropertyGroup>\u003COutputType>Exe\u003C\u002FOutputType>\u003CTargetFramework>net8.0\u003C\u002FTargetFramework>\u003CEnableDefaultCompileItems>false\u003C\u002FEnableDefaultCompileItems>\u003C\u002FPropertyGroup>\u003CItemGroup>\u003CCompile Include=\"QR.cs\" \u002F>\u003C\u002FItemGroup>\u003C\u002FProject>' > tmp.csproj &&\n      DOTNET_NOLOGO=1 dotnet run --project tmp.csproj > QR.chef\n    $ PERL5LIB=vendor\u002Flocal\u002Flib\u002Fperl5 compilechef QR.chef QR.chef.pl &&\n      perl QR.chef.pl > QR.clj\n    $ clojure QR.clj > QR.cmake\n    $ cmake -P QR.cmake > QR.cob\n    $ cobc -O2 -x QR.cob && .\u002FQR > QR.coffee\n    $ coffee --nodejs --stack_size=100000 QR.coffee > QR.lisp\n    $ clisp QR.lisp > QR.cr\n    $ crystal QR.cr > QR.d\n    $ gdc -o QR QR.d && .\u002FQR > QR.dc\n    $ dc QR.dc > QR.dhall || true\n    $ dhall text --file QR.dhall > QR.exs\n    $ elixir QR.exs > QR.el\n    $ emacs -Q --script QR.el > QR.erl\n    $ escript QR.erl > QR.e\n    $ execlineb QR.e > QR.fsx\n    $ echo '\u003CProject Sdk=\"Microsoft.NET.Sdk\">\u003CPropertyGroup>\u003COutputType>Exe\u003C\u002FOutputType>\u003CTargetFramework>net8.0\u003C\u002FTargetFramework>\u003CEnableDefaultCompileItems>false\u003C\u002FEnableDefaultCompileItems>\u003C\u002FPropertyGroup>\u003CItemGroup>\u003CCompile Include=\"QR.fsx\" \u002F>\u003C\u002FItemGroup>\u003C\u002FProject>' > tmp.fsproj &&\n      DOTNET_NOLOGO=1 dotnet run --project tmp.fsproj > QR.false\n    $ ruby vendor\u002Ffalse.rb QR.false > QR.fl\n    $ flex -o QR.fl.c QR.fl && gcc -o QR QR.fl.c && .\u002FQR > QR.fish\n    $ fish QR.fish > QR.fs\n    $ gforth QR.fs > QR.f\n    $ gfortran -o QR QR.f && .\u002FQR > QR.f90\n    $ gfortran -o QR QR.f90 && .\u002FQR > QR.gbs\n    $ gbs3 QR.gbs > QR.g\n    $ gap -q QR.g > QR.gdb\n    $ gdb -q -x QR.gdb > QR.gel\n    $ genius QR.gel > QR.plt\n    $ gnuplot QR.plt > QR.go\n    $ go run QR.go > QR.gs\n    $ ruby vendor\u002Fgolfscript.rb QR.gs > QR.gpt\n    $ mv QR.c QR.c.bak && gpt -t QR.c QR.gpt && gcc -o QR QR.c && .\u002FQR > QR.grass &&\n      mv QR.c.bak QR.c\n    $ ruby vendor\u002Fgrass.rb QR.grass > QR.groovy\n    $ groovy QR.groovy > QR.gz\n    $ gzip -cd QR.gz > QR.hs\n    $ rm -f QR.o && ghc QR.hs && .\u002FQR > QR.hx\n    $ haxe -main QR -neko QR.n && neko QR.n > QR.icn\n    $ icont -s QR.icn && .\u002FQR > QR.i\n    $ ick -bfOc QR.i && gcc -std=c99 -static QR.c -I \u002Fusr\u002Finclude\u002Fick-* -o QR -lick &&\n      .\u002FQR > QR.j\n    $ jasmin QR.j && java QR > QR.java\n    $ javac QR.java && java QR > QR.js\n    $ nodejs QR.js > QR.jq\n    $ jq -r -n -f QR.jq > QR.jsfuck\n    $ nodejs --stack_size=100000 QR.jsfuck > QR.kt\n    $ kotlinc QR.kt -include-runtime -d QR.jar && kotlin QR.jar > QR.ksh\n    $ ksh QR.ksh > QR.lazy\n    $ lazyk QR.lazy > QR.ls\n    $ lsc QR.ls > QR.ll\n    $ llvm-as QR.ll && lli QR.bc > QR.lol\n    $ lci QR.lol > QR.lua\n    $ lua5.3 QR.lua > QR.m4\n    $ m4 QR.m4 > QR.mk\n    $ make -f QR.mk > QR.mzn\n    $ minizinc --solver COIN-BC --soln-sep '' QR.mzn > QR.mod\n    $ gm2 -fiso QR.mod -o QR && .\u002FQR > QR.il\n    $ ilasm QR.il && mono QR.exe > QR.mustache\n    $ mustache QR.mustache QR.mustache > QR.asm\n    $ nasm -felf QR.asm && ld -m elf_i386 -o QR QR.o && .\u002FQR > QR.neko\n    $ nekoc QR.neko && neko QR.n > QR.5c\n    $ nickle QR.5c > QR.nim\n    $ nim compile QR.nim && .\u002FQR > QR.m\n    $ gcc -o QR QR.m && .\u002FQR > QR.ml\n    $ ocaml QR.ml > QR.octave\n    $ mv QR.m QR.m.bak && octave -qf QR.octave > QR.ook && mv QR.m.bak QR.m\n    $ ruby vendor\u002Fook-to-bf.rb QR.ook QR.ook.bf && ruby vendor\u002Fbf.rb QR.ook.bf > QR.gp\n    $ gp -f -q QR.gp > QR.p\n    $ parser3 QR.p > QR.pas\n    $ fpc QR.pas && .\u002FQR > QR.pl\n    $ perl QR.pl > QR.pl6\n    $ perl6 QR.pl6 > QR.php\n    $ php QR.php > QR.png\n    $ npiet QR.png > QR.pike\n    $ pike QR.pike > QR.ps\n    $ gs -dNODISPLAY -q QR.ps > QR.prolog\n    $ swipl -q -t qr -f QR.prolog > QR.pr\n    $ spin -T QR.pr > QR.py\n    $ python3 QR.py > QR.R\n    $ R --slave -f QR.R > QR.ratfor\n    $ ratfor -o QR.ratfor.f QR.ratfor && gfortran -o QR QR.ratfor.f &&\n      .\u002FQR > QR.rc\n    $ rc QR.rc > QR.rexx\n    $ rexx .\u002FQR.rexx > 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):\u002Fusr\u002Flocal\u002Fshare\u002Fquine-relay -v \u002Fusr\u002Flocal\u002Fshare\u002Fquine-relay\u002Fvendor qr\n\n### Other platforms\n\nYou may find [instructions for other platforms in the wiki](https:\u002F\u002Fgithub.com\u002Fmame\u002Fquine-relay\u002Fwiki\u002FInstallation).\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\u002Fcompiler 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\n2   |Rust                        |rustc                             |1.85.1ubuntu1\n3   |Scala                       |scala                             |2.11.12-6\n4   |Scheme                      |guile-3.0                         |3.0.10+really3.0.10-5\n5   |Scilab                      |scilab-cli                        |2024.1.0+dfsg-7ubuntu1\n6   |sed                         |sed                               |4.9-2build2\n7   |Shakespeare                 |*N\u002FA*                             |-\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\u002FA*                             |-\n12  |SurgeScript                 |surgescript                       |0.5.4.4-1.1\n13  |Swift                       |swiftlang                         |6.0.3-2build1\n14  |Tcl                         |tcl                               |8.6.16\n15  |tcsh                        |tcsh                              |6.24.13-2\n16  |Thue                        |*N\u002FA*                             |-\n17  |TypeScript                  |node-typescript                   |5.0.4+ds1-2\n18  |Unlambda                    |*N\u002FA*                             |-\n19  |Vala                        |valac                             |0.56.18-2\n20  |Velato                      |*N\u002FA*                             |-\n21  |Verilog                     |iverilog                          |12.0-2build2\n22  |Vimscript                   |vim                               |2:9.1.0967-1ubuntu6\n23  |Visual Basic                |dotnet8                           |8.0.120-8.0.20-0ubuntu1\n24  |WebAssembly (Binary format) |wabt                              |1.0.36+dfsg+\\~cs1.0.36-2ubuntu1\n25  |WebAssembly (Text format)   |wabt                              |1.0.36+dfsg+\\~cs1.0.36-2ubuntu1\n26  |Whitespace                  |*N\u002FA*                             |-\n27  |XSLT                        |xsltproc                          |1.1.43-0.1\n28  |Yabasic                     |yabasic                           |1:2.91.4-1\n29  |Yorick                      |yorick                            |2.2.04+dfsg1-14\n30  |Zoem                        |zoem                              |21-341-2\n31  |zsh                         |zsh                               |5.9-8ubuntu2\n32  |A+                          |aplus-fsf                         |4.22.1-13\n33  |Ada                         |gnat                              |14.1ubuntu1\n34  |AFNIX                       |afnix                             |3.8.0-1.1ubuntu1\n35  |Aheui                       |*N\u002FA*                             |-\n36  |ALGOL 68                    |algol68g                          |3.1.2-1\n37  |Ante                        |*N\u002FA*                             |-\n38  |AspectJ                     |aspectj                           |1.9.6-1\n39  |Asymptote                   |asymptote                         |3.05+ds-2\n40  |ATS                         |ats2-lang                         |0.4.2-3\n41  |Awk                         |gawk                              |1:5.3.2-1build1\n42  |bash                        |bash                              |5.2.37-2ubuntu5\n43  |bc                          |bc                                |1.07.1-4\n44  |BeanShell                   |bsh                               |2.0b4-20\n45  |Befunge                     |*N\u002FA*                             |-\n46  |BLC8                        |*N\u002FA*                             |-\n47  |Brainfuck                   |*N\u002FA*                             |-\n48  |C                           |gcc                               |4:15.2.0-4ubuntu1\n49  |C++                         |g++                               |4:15.2.0-4ubuntu1\n50  |C#                          |dotnet8                           |8.0.120-8.0.20-0ubuntu1\n51  |Chef                        |*N\u002FA*                             |-\n52  |Clojure                     |clojure                           |1.12.0-1\n53  |CMake                       |cmake                             |3.31.6-2ubuntu6\n54  |Cobol                       |gnucobol4                         |4.0\\~early\\~20200606-8\n55  |CoffeeScript                |coffeescript                      |2.7.0+dfsg1-2\n56  |Common Lisp                 |clisp                             |1:2.49.20250504.gitf662209-1\n57  |Crystal                     |crystal, libevent-dev             |1.14.0+dfsg-1\n58  |D                           |gdc                               |4:15.2.0-4ubuntu1\n59  |dc                          |dc                                |1.07.1-4\n60  |Dhall                       |dhall                             |1.42.1-1build2\n61  |Elixir                      |elixir                            |1.18.3.dfsg-1\n62  |Emacs Lisp                  |emacs-nox                         |1:30.1+1-9ubuntu1\n63  |Erlang                      |erlang                            |1:27.3.4.1+dfsg-1build1\n64  |Execline                    |execline                          |2.9.6.1-1\n65  |F#                          |dotnet8                           |8.0.120-8.0.20-0ubuntu1\n66  |FALSE                       |*N\u002FA*                             |-\n67  |Flex                        |flex                              |2.6.4-8.2build1\n68  |Fish                        |fish                              |4.0.6-0ubuntu1\n69  |Forth                       |gforth                            |0.7.3+dfsg-9build4.1\n70  |FORTRAN77                   |f2c                               |20240504-1\n71  |Fortran90                   |gfortran                          |4:15.2.0-4ubuntu1\n72  |Gambas script               |gambas3-scripter, gambas3-gb-pcre |3.20.4-1build1\n73  |GAP                         |gap                               |4.15.0-1\n74  |GDB                         |gdb                               |16.3-1ubuntu2\n75  |GEL (Genius)                |genius                            |1.0.27-1build4\n76  |Gnuplot                     |gnuplot                           |6.0.2+dfsg1-2ubuntu1\n77  |Go                          |golang                            |2:1.24\\~2\n78  |GolfScript                  |*N\u002FA*                             |-\n79  |G-Portugol                  |gpt                               |1.1-8\n80  |Grass                       |*N\u002FA*                             |-\n81  |Groovy                      |groovy                            |2.4.21-10\n82  |Gzip                        |gzip                              |1.13-1ubuntu4\n83  |Haskell                     |ghc                               |9.6.6-4\n84  |Haxe                        |haxe                              |1:4.3.7-1\n85  |Icon                        |icont, iconx                      |9.5.25a-1\n86  |INTERCAL                    |intercal                          |30:0.30-6\n87  |Jasmin                      |jasmin-sable                      |2.5.0-3\n88  |Java                        |openjdk-11-jdk                    |11.0.28+6-1ubuntu1\n89  |JavaScript                  |nodejs                            |20.19.4+dfsg-1\n90  |Jq                          |jq                                |1.8.1-3ubuntu1\n91  |JSFuck                      |nodejs                            |20.19.4+dfsg-1\n92  |Kotlin                      |kotlin                            |1.3.31+ds1-3\n93  |ksh                         |ksh                               |20240113-1.0.10-2\n94  |Lazy K                      |*N\u002FA*                             |-\n95  |LiveScript                  |livescript                        |1.6.1+dfsg-3\n96  |LLVM asm                    |llvm                              |1:20.0-63ubuntu1\n97  |LOLCODE                     |*N\u002FA*                             |-\n98  |Lua                         |lua5.3                            |5.3.6-2build2\n99  |M4                          |m4                                |1.4.19-8\n100 |Makefile                    |make                              |4.4.1-2\n101 |MiniZinc                    |minizinc                          |2.9.2+dfsg1-1\n102 |Modula-2                    |gm2                               |4:15.2.0-4ubuntu1\n103 |MSIL                        |mono-devel                        |6.12.0.199+dfsg-6\n104 |Mustache                    |ruby-mustache                     |1.1.1-2\n105 |NASM                        |nasm                              |2.16.03-1\n106 |Neko                        |neko                              |2.4.1-1\n107 |Nickle                      |nickle                            |2.103\n108 |Nim                         |nim                               |2.2.4-1\n109 |Objective-C                 |gobjc                             |4:15.2.0-4ubuntu1\n110 |OCaml                       |ocaml                             |5.3.0-3\n111 |Octave                      |octave                            |9.4.0-1\n112 |Ook!                        |*N\u002FA*                             |-\n113 |PARI\u002FGP                     |pari-gp                           |2.17.2-1\n114 |Parser 3                    |parser3-cgi                       |3.5.1-3\n115 |Pascal                      |fp-compiler                       |3.2.2+dfsg-46\n116 |Perl 5                      |perl                              |5.40.1-6build1\n117 |Perl 6                      |rakudo                            |2024.09-4\n118 |PHP                         |php-cli                           |2:8.4+96ubuntu1\n119 |Piet                        |*N\u002FA*                             |-\n120 |Pike                        |pike8.0                           |8.0.1956-1\n121 |PostScript                  |ghostscript                       |10.05.0dfsg1-0ubuntu4\n122 |Prolog                      |swi-prolog                        |9.2.9+dfsg-1\n123 |Promela (Spin)              |spin                              |6.5.2+dfsg-2\n124 |Python                      |python3                           |3.13.7-1\n125 |R                           |r-base                            |4.5.1-1\n126 |Ratfor                      |ratfor                            |1.07-1\n127 |rc                          |rc                                |1.7.4+97.gceb59bb-6\n128 |REXX                        |regina-rexx                       |3.9.5+dfsg1-0.2\n\nNote that some languages are not available in Ubuntu (marked as *N\u002FA*).\nThis repository contains their implementations in `vendor\u002F`.\nSee also `vendor\u002FREADME` for detail.\n\n\n## Frequently asked questions\n\n### Q. Why?\n\nA. [Take your pick](https:\u002F\u002Fgithub.com\u002Fmame\u002Fquine-relay\u002Fissues\u002F11).\n\n### Q. How?\n\nA. Good news: I have published a book, [\"The World of Obfuscated, Esoteric, Artistic Programming\"](http:\u002F\u002Fgihyo.jp\u002Fbook\u002F2015\u002F978-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:\u002F\u002Fwww.amazon.co.jp\u002Fdp\u002F4774176435).\n\n(It also contains my almost all of my (about forty) works, including\n[alphabet-only Ruby program](http:\u002F\u002Fwww.slideshare.net\u002Fmametter\u002Fruby-esoteric-obfuscated-ruby-programming-5088683),\n[radiation-hardened quine](https:\u002F\u002Fgithub.com\u002Fmame\u002Fradiation-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>and help me earn royalties\u003C\u002Fstrike>.\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:\u002F\u002Fgithub.com\u002Fmame\u002Fquine-relay\u002Fwiki\u002FLanguage-inclusion-criteria\n[sponsors]: https:\u002F\u002Fgithub.com\u002Fsponsors\u002Fmame\n\n\n### Q. Does it really work?\n\nA. [![CI](https:\u002F\u002Fgithub.com\u002Fmame\u002Fquine-relay\u002Fworkflows\u002FCI\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Fmame\u002Fquine-relay\u002Factions?query=workflow%2ACI)\n\n### Q. How long did it take you?\n\nA. [Are you trying to cross the world line?](https:\u002F\u002Fgithub.com\u002Fmame\u002Fquine-relay\u002Fissues\u002F60)\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    $ rake clobber\n    $ rake\n\n## History\n\n## for Ubuntu 13.04\n\n[50 languages](https:\u002F\u002Fgithub.com\u002Fmame\u002Fquine-relay\u002Ftree\u002Fad3f8222c796969db8cfb1bae015a46c2387b3d6)\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:\u002F\u002Fgithub.com\u002Fmame\u002Fquine-relay\u002Ftree\u002Fea4d39fb1ebc7ee23ec6f60ca7bfa0d465b5806a)\n\n## for Ubuntu 14.04\n\n[50 languages](https:\u002F\u002Fgithub.com\u002Fmame\u002Fquine-relay\u002Ftree\u002Fd16bf072e3063dc476dc440c8f3e33d7426e98db)\n\n## for Ubuntu 14.10\n\n[64 languages](https:\u002F\u002Fgithub.com\u002Fmame\u002Fquine-relay\u002Ftree\u002Fe449baba456d4885102482cbd365335be59241b2)\n\nAdded: Scilab, S-Lang, SPL, LOLCODE, Maxima, NASM, Neko, Nickle, Ook!, PARI\u002FGP, Piet, PPT (Punched tape), PostScript, Ratfor\n\n## for Ubuntu 15.04\n\n[100 languages](https:\u002F\u002Fgithub.com\u002Fmame\u002Fquine-relay\u002Ftree\u002F7749715289ca162eb1c1eb1ff1ed1393edc41630)\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:\u002F\u002Fgithub.com\u002Fmame\u002Fquine-relay\u002Ftree\u002Ff45035f867c7c8f7b4e12fa63e7c8eef9aabecad)\n\nRemoved: Boo, Falcon, Kaya\n\nAdded: Elixir, Jq, Nim\n\n## for Ubuntu 16.04\n\n[100 languages](https:\u002F\u002Fgithub.com\u002Fmame\u002Fquine-relay\u002Ftree\u002F233ba8b4e1d7e4c59a46d64481048a8ea7f4400e)\n\n## for Ubuntu 17.04\n\n[100 languages](https:\u002F\u002Fgithub.com\u002Fmame\u002Fquine-relay\u002Ftree\u002Fe65a798da23df0367d9eb5e4d46f00d87e6cb342)\n\nRemoved: SPL, Gri, Logo, Parrot asm\n\nAdded: Squirrel, Dafny, Grass, MiniZinc\n\n## for Ubuntu 17.10\n\n[100 languages](https:\u002F\u002Fgithub.com\u002Fmame\u002Fquine-relay\u002Ftree\u002F943b83801a1bd019ebf348adc78df2cdfde06513)\n\nRemoved: CDuce\n\nAdded: Rust\n\n## for Ubuntu 18.04\n\n[128 languages](https:\u002F\u002Fgithub.com\u002Fmame\u002Fquine-relay\u002Ftree\u002F6e173d76e972e1da7992b84768bf9f4c788949ed)\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:\u002F\u002Fgithub.com\u002Fmame\u002Fquine-relay\u002Ftree\u002Fc8898351500682cea02219313e9203da7eca5505)\n\nRemoved: Scilab, G-Portugol, nesC\n\nAdded: Curry, Gambas script, GeneratorScriptingLanguage\n\n## for Ubuntu 19.10\n\n[128 languages](https:\u002F\u002Fgithub.com\u002Fmame\u002Fquine-relay\u002Ftree\u002F13041dbf3f80a90c9221ef94f8e8bc385800b6fd)\n\nRemoved: Gri\n\nAdded: Scilab\n\n## for Ubuntu 20.04\n\n[128 languages](https:\u002F\u002Fgithub.com\u002Fmame\u002Fquine-relay\u002Ftree\u002F62e2cc2d61d99719328094d185d899bc03a851fb)\n\n## for Ubuntu 20.10\n\n[128 languages](https:\u002F\u002Fgithub.com\u002Fmame\u002Fquine-relay\u002Ftree\u002F114f44fefd610812d2f5e3032603762752ed51b2)\n\nRemoved: AspectC++, eC\n\nAdded: SurgeScript, Dhall\n\n## for Ubuntu 21.04\n\n[128 languages](https:\u002F\u002Fgithub.com\u002Fmame\u002Fquine-relay\u002Ftree\u002Fd8df33bad3693afd0bd3bf1c2b1cedd5753325dc)\n\nRemoved: Curry\n\nAdded: G-Portugol\n\n## for Ubuntu 21.10\n\n[128 languages](https:\u002F\u002Fgithub.com\u002Fmame\u002Fquine-relay\u002Ftree\u002F158b6251d36a48122ec0006feaf759d8b1973b0f)\n\n## for Ubuntu 22.04\n\n[128 languages](https:\u002F\u002Fgithub.com\u002Fmame\u002Fquine-relay\u002Ftree\u002F7b81d8704549d31814499c5300be2be9568467c8)\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:\u002F\u002Fgithub.com\u002Fmame\u002Fquine-relay\u002Ftree\u002F362962dd2d55d7c36dd9fa3e0d4c0c52c0e6a18f)\n\n## for Ubuntu 23.04\n\n[128 languages](https:\u002F\u002Fgithub.com\u002Fmame\u002Fquine-relay\u002Ftree\u002F5dfdada5aa58f6a97ae85b84f86c7eb091225a8c)\n\nRemoved: Squirrel, GeneratorScriptingLanguage\n\nAdded: Crystal, Nim\n\n## for Ubuntu 23.10\n\n[128 languages](https:\u002F\u002Fgithub.com\u002Fmame\u002Fquine-relay\u002Ftree\u002F74c4cc7d79fccbb1c8315070b9efea03cb787755)\n\nRemoved: Smalltalk\n\nAdded: Modula-2\n\n## for Ubuntu 24.04\n\n[128 languages](https:\u002F\u002Fgithub.com\u002Fmame\u002Fquine-relay\u002Ftree\u002F20d7f437c053b8e0b301ba996d124a4b812e3571)\n\nRemoved: PPT (Punched tape)\n\nAdded: Pike\n\n## for Ubuntu 24.10\n\n[128 languages](https:\u002F\u002Fgithub.com\u002Fmame\u002Fquine-relay\u002Ftree\u002F2ed61a62c9d31121b39e740c89107085c122f478)\n\nRemoved: Dafny, Maxima\n\nAdded: Execline, Squirrel\n\n## for Ubuntu 25.04\n\n[128 languages](https:\u002F\u002Fgithub.com\u002Fmame\u002Fquine-relay\u002Ftree\u002Fb9c8056cad4589fe650163a3fd0cea4b3055fce4)\n\n## for Ubuntu 25.10\n\n[128 languages](https:\u002F\u002Fgithub.com\u002Fmame\u002Fquine-relay\u002Ftree\u002F5298413382ea707061e04aa077f99872d159a7b8)\n\nRemoved: Lisaac\n\nAdded: Swift\n\n## License\n\nThe MIT License applies to all resources\n*except* the files in the `vendor\u002F` directory.\n\nThe files in the `vendor\u002F` directory are from third-parties\nand are distributed under different licenses.\nSee `vendor\u002FREADME` 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\u002For 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","quine-relay 是一个使用超过128种编程语言实现的自生成程序链。该项目的核心功能是通过一系列语言编写的程序依次生成下一个程序，最终形成一个闭环，回到最初的Ruby代码。技术上，它展示了多种编程语言之间的互操作性和代码生成能力。适合用于编程教育、语言学习以及对编程语言特性和代码生成感兴趣的开发者探索和研究。","2026-06-11 03:13:26","top_language"]