(based on this post and the ensuing discussion on chat -- also, much thanks to Dennis for TIO!)
The Challenge
Choose a language that's currently available on the TryItOnline site, for example PowerShell. Write code in that language on that page, that doesn't take any input, such that when the Run button is clicked, the output on that page is the exact same as what is in the "Plain URL" field when the Save/Store button is clicked instead.
For a fictitious example, suppose that aaa
was the code for a solution to this in PowerShell. Then, the result of clicking Run with aaa
as the code on https://tio.run/#powershell
should output https://tio.run/##K8gvTy0qzkjNyfn/PzEx8f9/AA
, which is also the "Plain URL" field when the Save/Store button is clicked.
Scoring
The resulting URL is your submission to this challenge. The winner is the shortest URL measured in bytes. For the example above, the URL https://tio.run/##K8gvTy0qzkjNyfn/PzEx8f9/AA
is the submission to the challenge, at 44 bytes. The shortest URL that fulfills the rest of this challenge wins the challenge and earns brownie points (points not redeemable). Given that there is a distinct minimum possible length, if two submissions tie in length, the earlier submission wins.
URL Generation
This is the start of the URL generation algorithm in the repository. You can see how the main code area is taken, any extra elements are appended, the string is deflated and Base64 converted, and then ##
prepended, etc. I won't go into full detail here; part of the challenge is to parse and understand how the URLs are generated in order to exploit any potential quirks in said algorithm.
Rules / Clarifications
- The actual code should take no input and produce only the quine-URL as output.
-- This means the only text fields that should be populated when clicking into the URL are theCode
,Header
,Footer
or corresponding "Compiler Flag" fields; theInput
andArguments
fields are forbidden and must remain empty/unused. Clicking the Run button should only change theOutput
field. For this challenge, theDebug
field is ignored in all situations. - Usual quine rules apply to the code to the extent possible (for example, the code cannot read its own source code via
.code.tio
). - Please include a description of how the code works in your submission.
- Submitting a "cheaty" quine by submitting a Git pull request to the TIO repository to create a "trick" URL or shortcut or the like is not allowed.
- Similarly, submitting a pull request to update a particular language to produce a "trick" URL is not allowed.
- Please be nice to Dennis' servers and don't abuse them or attempt exploits for the sake of this challenge.
https://tio.run/##a+a
which links to a program that outputshttps://tio.run/##a+a
, is it valid even tough the link generated bysaveState
would have beenhttps://tio.run/##a@a
\$\endgroup\$