Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use dotnet command to reduce the dependency to mono #140

Merged
merged 2 commits into from
Oct 1, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,4 @@ gst.im
/src/blc-boot.dat
/src/grass-boot.dat
*.sw*
tmp.*proj
26 changes: 13 additions & 13 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ RUN chronic apt-get -qq install -y asymptote ats2-lang bash bc && chronic apt-ge
RUN chronic apt-get -qq install -y bison bsdgames bsh clisp && chronic apt-get clean
RUN chronic apt-get -qq install -y clojure cmake coffeescript crystal && chronic apt-get clean
RUN chronic apt-get -qq install -y curl dafny dc dhall && chronic apt-get clean
RUN chronic apt-get -qq install -y elixir emacs-nox erlang f2c && chronic apt-get clean
RUN chronic apt-get -qq install -y fish flex fp-compiler fsharp && chronic apt-get clean
RUN chronic apt-get -qq install -y dotnet7 elixir emacs-nox erlang && chronic apt-get clean
RUN chronic apt-get -qq install -y f2c fish flex fp-compiler && chronic apt-get clean
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
Expand All @@ -22,17 +22,17 @@ RUN chronic apt-get -qq install -y iverilog jasmin-sable jq kotlin && chronic ap
RUN chronic apt-get -qq install -y ksh libevent-dev libgd-dev libpng-dev && chronic apt-get clean
RUN chronic apt-get -qq install -y libpolyml-dev lisaac livescript llvm && chronic apt-get clean
RUN chronic apt-get -qq install -y lua5.3 m4 make maxima && chronic apt-get clean
RUN chronic apt-get -qq install -y minizinc mono-devel mono-mcs mono-vbnc && chronic apt-get clean
RUN chronic apt-get -qq install -y nasm neko nickle nim && chronic apt-get clean
RUN chronic apt-get -qq install -y node-typescript nodejs ocaml octave && chronic apt-get clean
RUN chronic apt-get -qq install -y openjdk-11-jdk pari-gp parser3-cgi perl && chronic apt-get clean
RUN chronic apt-get -qq install -y php-cli polyml python3 r-base && chronic apt-get clean
RUN chronic apt-get -qq install -y rakudo ratfor rc regina-rexx && chronic apt-get clean
RUN chronic apt-get -qq install -y ruby ruby-mustache rustc scala && chronic apt-get clean
RUN chronic apt-get -qq install -y scilab-cli sed slsh spin && chronic apt-get clean
RUN chronic apt-get -qq install -y surgescript swi-prolog tcl tcsh && chronic apt-get clean
RUN chronic apt-get -qq install -y valac vim wabt xsltproc && chronic apt-get clean
RUN chronic apt-get -qq install -y yabasic yorick zoem zsh && chronic apt-get clean
RUN chronic apt-get -qq install -y minizinc mono-devel nasm neko && chronic apt-get clean
RUN chronic apt-get -qq install -y nickle nim node-typescript nodejs && chronic apt-get clean
RUN chronic apt-get -qq install -y ocaml octave openjdk-11-jdk pari-gp && chronic apt-get clean
RUN chronic apt-get -qq install -y parser3-cgi perl php-cli polyml && chronic apt-get clean
RUN chronic apt-get -qq install -y python3 r-base rakudo ratfor && chronic apt-get clean
RUN chronic apt-get -qq install -y rc regina-rexx ruby ruby-mustache && chronic apt-get clean
RUN chronic apt-get -qq install -y rustc scala scilab-cli sed && chronic apt-get clean
RUN chronic apt-get -qq install -y slsh spin surgescript swi-prolog && chronic apt-get clean
RUN chronic apt-get -qq install -y tcl tcsh valac vim && chronic apt-get clean
RUN chronic apt-get -qq install -y wabt xsltproc yabasic yorick && chronic apt-get clean
RUN chronic apt-get -qq install -y zoem zsh && chronic apt-get clean
ADD . /usr/local/share/quine-relay
WORKDIR /usr/local/share/quine-relay
RUN make -C vendor
Expand Down
12 changes: 6 additions & 6 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -215,8 +215,8 @@ QR.wasm: QR.vb
@echo "## 22: Visual Basic -> WebAssembly (Binary format) ##"
@echo "#######################################################"
@echo
vbnc QR.vb
mono ./QR.exe > QR.wasm
echo '<Project Sdk="Microsoft.NET.Sdk"><PropertyGroup><OutputType>Exe</OutputType><TargetFramework>net7.0</TargetFramework><EnableDefaultCompileItems>false</EnableDefaultCompileItems></PropertyGroup><ItemGroup><Compile Include="QR.vb" /></ItemGroup></Project>' > tmp.vbproj
DOTNET_NOLOGO=1 dotnet run --project tmp.vbproj > QR.wasm

QR.wat: QR.wasm
@echo
Expand Down Expand Up @@ -438,8 +438,8 @@ QR.chef: QR.cs
@echo "## 49: C# -> Chef ##"
@echo "######################"
@echo
mcs QR.cs
mono QR.exe > QR.chef
echo '<Project Sdk="Microsoft.NET.Sdk"><PropertyGroup><OutputType>Exe</OutputType><TargetFramework>net7.0</TargetFramework><EnableDefaultCompileItems>false</EnableDefaultCompileItems></PropertyGroup><ItemGroup><Compile Include="QR.cs" /></ItemGroup></Project>' > tmp.csproj
DOTNET_NOLOGO=1 dotnet run --project tmp.csproj > QR.chef

QR.clj: QR.chef
@echo
Expand Down Expand Up @@ -563,8 +563,8 @@ QR.false: QR.fsx
@echo "## 64: F# -> FALSE ##"
@echo "#######################"
@echo
fsharpc QR.fsx -o QR.exe
mono QR.exe > QR.false
echo '<Project Sdk="Microsoft.NET.Sdk"><PropertyGroup><OutputType>Exe</OutputType><TargetFramework>net7.0</TargetFramework><EnableDefaultCompileItems>false</EnableDefaultCompileItems></PropertyGroup><ItemGroup><Compile Include="QR.fsx" /></ItemGroup></Project>' > tmp.fsproj
DOTNET_NOLOGO=1 dotnet run --project tmp.fsproj > QR.false

QR.fl: QR.false
@echo
Expand Down
12 changes: 6 additions & 6 deletions QR.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@
(m=c;n=f)};v=n+v;s.K(n,(j%256).chr)},v]};%(fn~mX{Z`x21("{}",#{E["object~QR~extends~App{#{f(%((display~"#{e[%(Zf("1d;s/.//;s/1/~the~sum~of~a~son~and0/g;s/0/~twice/g;s/2/`x59ou~are~as~bad~as/g;s/3/~a~son`x21Speak~your~m!d`x21/g^n#The~Relay~of~Qu!e.^
n#Ajax,~a~man.^n#Ford,~a~man.^n#Act~i:~Qu!e.^n#Scene~i:~Relay.^n#[Enter~Ajax~and~Ford]^n#Ajax:^n#");function[]=f(s);for~i=1:2:length(s),Zf("2%s3",part(dec2b!(hex2dec(part(s,i:i+1))),$:-1:2)),end;endfunction`n#{s,v=rp["Transcript~show:~'#{d[%(fun~p
~n=Z(Int.toSJ~n`x5e"~");fun~mX=(p~0;p~0;p~130;List.tabulate(127,p);SJ.map(fn~c=>(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("let~s=#{E[%(Module~QR:Sub~MX:Dim~c,n,s~As~Object=#{C[0]}.OpenStandardOutput(),t()As~Short={26,34,86,127,148,158,200}:For~Each~c~!"Basm
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<<<<C<`x60C<B`x60BBD#C`x58wasi_snapshot_preview1`x4afd_HBBEEDCDGECB@IUD`x48memoryDB`x48_startBDL|DRBAC~BA`x4alACA4RB9MiCD<AERCA>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(c):If~c=36:For~c=0To~11:#$W(If(c~Mod~3,Asc(#{s="<?xml#{O="~version='1.0'"}?><?xml-#{I="stylesheet"}~type='text/xsl'href='QR.xslt'?><xsl:#{I+O}~xmlns:xsl='http://www.w3.org/1999/`x58SL/Transform'><xs
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="<?xml#{O="~version='1.0'"}?><?xml-#{I="stylesheet"}~type='text/xsl'href='QR.xslt'?><xsl:#{I+O}~xmlns:xsl='http://www.w3.org/1999/`x58SL/Transform'><xs
l:output~method='text'/><#{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
Expand Down Expand Up @@ -58,8 +58,8 @@
e"}]}.split("Y`x5e");for(!t~i=1;i<a.length;a[0]+=a[i+1],i+=2){a[0]+="Y".repeat(Integer.parseInt(a[i]));}System.out.Z(a[0]);}})]}";FORiTO`~UPBtDO`~INTn:=ABSt[i];Z(~(50+n%64)+c+~(50+n%8MOD8)+c+~(50+nMOD8)+b+"`x4a"+a)OD]*"REPR"]}")`nwhile(`x21=(S:len
gth)0){`ntrans~c(S:read)`nD(c:to-!teger)`nf~35~39}`nf~24~149`n!terp:library"afnix-sio"`ntrans~o(afnix:sio:OutputTerm)`no:H~B)].K(N,'"&Character'+?'+'Val(10)&"')}");end;)]+"`nsys.exit~0",B],?']}'",/[^{}]/]}}",35){y<<",`n"+$S;"%s"}}")+y],'",','):f("
']}",0))}]]></#{U}></xsl:#{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)]}`nput=s`nZ`nqa`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_future_bug_fixes_#_buffer_for_future_b
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 ###################################################################################)
43 changes: 23 additions & 20 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,17 +29,17 @@ First, you need to type the following apt-get command to install them all.

$ sudo apt-get install afnix algol68g aplus-fsf aspectj asymptote \
ats2-lang bash bc bsdgames bsh clisp clojure cmake coffeescript \
crystal dafny dc dhall elixir emacs-nox erlang f2c fish flex \
fp-compiler fsharp 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 \
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 mono-mcs mono-vbnc 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
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.

Expand Down Expand Up @@ -71,7 +71,8 @@ Then, build the bundled interpreters.
$ mono vendor/local/bin/Vlt.exe /s QR.mid && mono QR.exe > QR.v
$ iverilog -o QR QR.v && ./QR -vcd-none > QR.vim
$ vim -EsS QR.vim > QR.vb
$ vbnc QR.vb && mono ./QR.exe > QR.wasm
$ echo '<Project Sdk="Microsoft.NET.Sdk"><PropertyGroup><OutputType>Exe</OutputType><TargetFramework>net7.0</TargetFramework><EnableDefaultCompileItems>false</EnableDefaultCompileItems></PropertyGroup><ItemGroup><Compile Include="QR.vb" /></ItemGroup></Project>' > tmp.vbproj &&
DOTNET_NOLOGO=1 dotnet run --project tmp.vbproj > QR.wasm
$ $(WASI_RUNTIME) QR.wasm > QR.wat
$ wat2wasm QR.wat -o QR.wat.wasm && $(WASI_RUNTIME) QR.wat.wasm > QR.ws
$ ruby vendor/whitespace.rb QR.ws > QR.xslt
Expand All @@ -98,7 +99,8 @@ Then, build the bundled interpreters.
$ ruby vendor/bf.rb QR.bf > QR.c
$ gcc -o QR QR.c && ./QR > QR.cpp
$ g++ -o QR QR.cpp && ./QR > QR.cs
$ mcs QR.cs && mono QR.exe > QR.chef
$ echo '<Project Sdk="Microsoft.NET.Sdk"><PropertyGroup><OutputType>Exe</OutputType><TargetFramework>net7.0</TargetFramework><EnableDefaultCompileItems>false</EnableDefaultCompileItems></PropertyGroup><ItemGroup><Compile Include="QR.cs" /></ItemGroup></Project>' > tmp.csproj &&
DOTNET_NOLOGO=1 dotnet run --project tmp.csproj > QR.chef
$ PERL5LIB=vendor/local/lib/perl5 compilechef QR.chef QR.chef.pl &&
perl QR.chef.pl > QR.clj
$ clojure QR.clj > QR.cmake
Expand All @@ -114,7 +116,8 @@ Then, build the bundled interpreters.
$ elixir QR.exs > QR.el
$ emacs -Q --script QR.el > QR.erl
$ escript QR.erl > QR.fsx
$ fsharpc QR.fsx -o QR.exe && mono QR.exe > QR.false
$ echo '<Project Sdk="Microsoft.NET.Sdk"><PropertyGroup><OutputType>Exe</OutputType><TargetFramework>net7.0</TargetFramework><EnableDefaultCompileItems>false</EnableDefaultCompileItems></PropertyGroup><ItemGroup><Compile Include="QR.fsx" /></ItemGroup></Project>' > tmp.fsproj &&
DOTNET_NOLOGO=1 dotnet run --project tmp.fsproj > QR.false
$ ruby vendor/false.rb QR.false > QR.fl
$ flex -o QR.fl.c QR.fl && gcc -o QR QR.fl.c && ./QR > QR.fish
$ fish QR.fish > QR.fs
Expand Down Expand Up @@ -239,8 +242,8 @@ I used the following Ubuntu deb packages to test this program.
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
22 |Visual Basic |mono-vbnc |4.0.1-3
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* |-
Expand All @@ -267,7 +270,7 @@ I used the following Ubuntu deb packages to test this program.
46 |Brainfuck |*N/A* |-
47 |C |gcc |4:12.2.0-3ubuntu1
48 |C++ |g++ |4:12.2.0-3ubuntu1
49 |C# |mono-mcs |6.8.0.105+dfsg-3.3
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
Expand All @@ -282,7 +285,7 @@ I used the following Ubuntu deb packages to test this program.
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# |fsharp |4.0.0.4+dfsg2-2
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
Expand All @@ -305,7 +308,7 @@ I used the following Ubuntu deb packages to test this program.
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.18+10-0ubuntu5
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
Expand Down Expand Up @@ -334,11 +337,11 @@ I used the following Ubuntu deb packages to test this program.
113 |PARI/GP |pari-gp |2.15.2-1
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-7
116 |Perl 5 |perl |5.36.0-7ubuntu0.23.04.1
117 |Perl 6 |rakudo |2022.12-1
118 |PHP |php-cli |2:8.1+92ubuntu1
119 |Piet |*N/A* |-
120 |PostScript |ghostscript |10.0.0\~dfsg1-0ubuntu1.1
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
123 |Promela (Spin) |spin |6.5.2+dfsg-1
Expand Down
Loading