←2025-08-27 2025-08-28 2025-08-29→ ↑2025 ↑all
00:15:25 <esolangs> [[Special:Log/delete]] delete * Ais523 * deleted "[[Category:Nope. derivatives]]": unapproved category that is very likely misnamed, and would have had a better name if it were discussed (but we may end up using a list page instead)
00:15:43 <esolangs> [[Esolang:Categorization]] https://esolangs.org/w/index.php?diff=164049&oldid=160188 * Ais523 * (-34) /* Derivatives */ rm undiscussed category
00:16:21 <esolangs> [[User:Hotcrystal0/Sandbox/OotT ideas]] https://esolangs.org/w/index.php?diff=164050&oldid=163818 * Hotcrystal0 * (-689)
00:16:24 <esolangs> [[Special:Log/delete]] delete * Ais523 * deleted "[[User:/w/api.php/hidebots=1/urlversion=1/days=30/limit=50/action=feedrecentchanges/feedformat=atom]]": page in userspace that does not correspond to an existing user
00:17:42 <esolangs> [[Category talk:Pages with template loops]] https://esolangs.org/w/index.php?diff=164051&oldid=164011 * Ais523 * (+389) this s a MediaWiki auto-category
00:19:23 <esolangs> [[Special:Log/delete]] delete * Ais523 * deleted "[[Category:Joke examples]]": undiscussed category, currently unused
00:19:59 <esolangs> [[Special:Log/delete]] delete * Ais523 * deleted "[[Category:Process measurement and control]]": undiscussed category, currently unused this may have been a category created in the hope that people would create languages to add to it, but that isn't how the categorisation system works
00:20:14 <esolangs> [[Special:Log/delete]] delete * Ais523 * deleted "[[Category:Stupid family]]": unapproved category
00:20:23 <korvo> ki'esai! Thank you so much.
00:21:16 <esolangs> [[Special:Log/delete]] delete * Ais523 * deleted "[[Category:Tutorials]]": unapproved category (this is possibly a good idea, but in any case it contains no pages, so it isn't useful unless someone actually writes some tutorials, and those could probably go in [[Category:Programming techniques]])
00:22:13 <esolangs> [[Esolang:Categorization]] https://esolangs.org/w/index.php?diff=164052&oldid=164049 * Ais523 * (+97) /* Miscellaneous */ add [[Category:Programming techniques]], which predates the "categories must be discussed" rule and was added by the same person
00:24:32 <esolangs> [[Esolang talk:Categorization]] M https://esolangs.org/w/index.php?diff=164053&oldid=164036 * Ais523 * (-558) /* Category: Templates with page loops */ edit out overly long signature
00:25:21 <esolangs> [[Esolang talk:Categorization]] https://esolangs.org/w/index.php?diff=164054&oldid=164053 * Ais523 * (+536) /* Category: Templates with page loops */ some thoughts
00:26:51 -!- ais523 has joined.
00:27:31 <ais523> korvo: I'm not convinced your mention of Rice's theorem on the constant language page is correct – Rice's theorem has two conditions, a) that the property is true for at least one program and false for at least one program, and b) that the language is able to represent all computable functions
00:27:52 <ais523> although constant languages make a) impossible to satisfy, they don't satisfy b) either, making the lack of satisfaction of a) irrelevant
00:28:19 <ais523> condition a) is mostly there to exclude trivial properties like "the program starts executing", which would otherwise be counterexamples
00:29:23 <korvo> ais523: That's fair. (b) is really the issue there.
00:30:48 <korvo> FWIW the computable-universe perspective has a natural excuse for (a). We're given a blackbox semantic computer N → N and asked to figure out *any* property of it. Well, since the blackbox can be partial, we can't *run* the computer. That'd immediately risk not returning. The only thing we can do without poking the box is return a chosen point of the codomain.
00:31:35 <korvo> Since the codomain is traditionally 2, there are two natural points that we can choose, each given by a constant arrow.
00:33:40 <esolangs> [[Constant language]] https://esolangs.org/w/index.php?diff=164055&oldid=163961 * Corbin * (-18) Rice's theorem is basically not relevant since constant languages can't represent any interesting computations. Pointed out by ais523 on IRC.
00:34:18 <ais523> right, the codomain doesn't really matter here, 2 is just the smallest codomain needed to give a useful result and it's possible to generalise up to bigger codomains from there
00:35:34 <esolangs> [[Game:Esochain]] https://esolangs.org/w/index.php?diff=164056&oldid=163925 * Hotcrystal0 * (-1) fixing typo
00:38:37 <esolangs> [[User talk:Tommyaweosme]] https://esolangs.org/w/index.php?diff=164057&oldid=160736 * Hotcrystal0 * (+129)
00:38:47 <esolangs> [[User talk:Tommyaweosme]] https://esolangs.org/w/index.php?diff=164058&oldid=164057 * Hotcrystal0 * (+251)
01:51:21 <esolangs> [[User talk:Tommyaweosme]] https://esolangs.org/w/index.php?diff=164059&oldid=164058 * Tommyaweosme * (+127) /* HTML programs */
01:58:08 <esolangs> [[Special:Log/upload]] upload * Tommyaweosme * uploaded "[[File:Esolang wiki graph with 24 nodes.png]]"
01:58:30 <esolangs> [[User:Hotcrystal0/Sandbox/OotT ideas]] https://esolangs.org/w/index.php?diff=164061&oldid=164050 * XP2PHOENIX * (+208) /* Ideas */
01:58:35 <esolangs> [[User:Tommyaweosme]] https://esolangs.org/w/index.php?diff=164062&oldid=163891 * Tommyaweosme * (+46)
01:58:45 <esolangs> [[User:Hotcrystal0/Sandbox/OotT ideas]] https://esolangs.org/w/index.php?diff=164063&oldid=164061 * XP2PHOENIX * (+92) /* Ideas */
02:02:29 -!- ProofTechnique_ has quit (Server closed connection).
02:02:38 -!- ProofTechnique_ has joined.
02:14:52 -!- lambdabot has quit (Server closed connection).
02:16:08 -!- lambdabot has joined.
02:27:06 -!- integral has quit (Server closed connection).
02:27:19 -!- integral has joined.
02:28:39 -!- tetsuo-cpp has quit (Server closed connection).
02:28:53 -!- tetsuo-cpp has joined.
02:48:58 -!- ManDeJan has quit (Server closed connection).
02:49:08 -!- ManDeJan has joined.
03:39:22 <esolangs> [[Psychopaths]] M https://esolangs.org/w/index.php?diff=164064&oldid=122940 * None1 * (+26) Change description
03:46:29 <esolangs> [[Brainfucking]] N https://esolangs.org/w/index.php?oldid=164065 * None1 * (+652) Created page with "{{lang|a=User:None1}} It ignores the code and always executes a [[brainfuck]] interpreter. Since it ignores the code, it is a [[no-code esolang]]. ==Examples== ===[[brainfuck]] interpreter=== Any text can go here. ===[[Self-interpreter]]=== Any text can go here. ==
03:46:36 <esolangs> [[Brainfucking]] M https://esolangs.org/w/index.php?diff=164066&oldid=164065 * None1 * (+0)
03:47:05 <esolangs> [[Brainfucking]] https://esolangs.org/w/index.php?diff=164067&oldid=164066 * None1 * (+28)
03:48:40 <esolangs> [[Joke language list]] https://esolangs.org/w/index.php?diff=164068&oldid=163039 * None1 * (+82) /* General languages */
03:49:01 <esolangs> [[Joke language list]] https://esolangs.org/w/index.php?diff=164069&oldid=164068 * None1 * (+0) /* General languages */
03:50:36 <esolangs> [[User:None1]] https://esolangs.org/w/index.php?diff=164070&oldid=163754 * None1 * (+82)
03:52:05 <esolangs> [[Permission denied]] https://esolangs.org/w/index.php?diff=164071&oldid=163991 * None1 * (+0) /* Example Programs */
03:53:45 <esolangs> [[Permission denied]] https://esolangs.org/w/index.php?diff=164072&oldid=164071 * None1 * (+45) /* Implementations */
03:56:29 -!- ais523 has quit (Quit: sorry about my connection).
04:03:38 <esolangs> [[Constellation Cradle]] N https://esolangs.org/w/index.php?oldid=164073 * RainbowDash * (+1630) stars and stuff i guess
04:05:51 <esolangs> [[Constellation Cradle]] https://esolangs.org/w/index.php?diff=164074&oldid=164073 * RainbowDash * (+142) credit
04:21:11 -!- ais523 has joined.
04:26:17 -!- ais523 has quit (Quit: quit).
06:06:51 <esolangs> [[Game:Esochain]] M https://esolangs.org/w/index.php?diff=164075&oldid=164056 * Ractangle * (+103) /* Server 2 */
06:17:14 -!- tromp has joined.
06:31:38 -!- Sgeo has quit (Read error: Connection reset by peer).
07:06:41 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
07:16:29 <esolangs> [[StupidStackLanguage]] https://esolangs.org/w/index.php?diff=164076&oldid=145296 * Lebster * (-1868) Rework interpreters
07:26:14 -!- Lord_of_Life has quit (Excess Flood).
07:27:12 -!- Lord_of_Life has joined.
07:44:34 <APic> Hi
07:59:36 -!- b_jonas has quit (Quit: leaving).
08:14:36 -!- chiselfuse has quit (Remote host closed the connection).
08:14:52 -!- chiselfuse has joined.
08:24:47 -!- tromp has joined.
09:08:46 <esolangs> [[Game:Esochain]] https://esolangs.org/w/index.php?diff=164077&oldid=164075 * Pifrited * (+40) /* Server 2 */
09:18:07 <esolangs> [[Permufuck]] https://esolangs.org/w/index.php?diff=164078&oldid=163927 * Pro465 * (+106) /* Cat program */ add smaller cat
09:51:47 <esolangs> [[Special:Log/newusers]] create * ClickUp * New user account
10:08:23 <esolangs> [[Game:Esochain]] M https://esolangs.org/w/index.php?diff=164079&oldid=164077 * C0ffee * (+13)
10:10:56 <esolangs> [[Game:Esochain]] https://esolangs.org/w/index.php?diff=164080&oldid=164079 * C0ffee * (+11)
10:12:25 <esolangs> [[Game:Esochain]] https://esolangs.org/w/index.php?diff=164081&oldid=164080 * C0ffee * (+33)
10:42:48 <esolangs> [[Permufuck]] M https://esolangs.org/w/index.php?diff=164082&oldid=164078 * Pro465 * (-106) /* Cat program */ Olus hasn't gotten got
10:56:38 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
11:26:10 -!- Lord_of_Life has quit (Ping timeout: 245 seconds).
11:38:49 -!- tromp has joined.
11:42:19 <esolangs> [[Special:Log/newusers]] create * Intiha420 * New user account
11:43:47 -!- Lord_of_Life has joined.
11:51:46 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
12:04:25 <esolangs> [[Game:Esochain]] https://esolangs.org/w/index.php?diff=164083&oldid=164081 * PrySigneToFry * (-14) Add to server 2/4/4.5
12:06:56 <esolangs> [[Wenyan]] https://esolangs.org/w/index.php?diff=164084&oldid=146226 * PrySigneToFry * (+150)
12:45:28 -!- Melvar has quit (Ping timeout: 256 seconds).
12:45:47 -!- tromp has joined.
12:58:17 <esolangs> [[Esolang talk:Categorization]] https://esolangs.org/w/index.php?diff=164085&oldid=164054 * PrySigneToFry * (+963) /* "Nope. derivatives" VS "Constant languages" */ new section
13:12:47 <esolangs> [[Esolang talk:Categorization]] https://esolangs.org/w/index.php?diff=164086&oldid=164085 * PrySigneToFry * (+105) /* "Nope. derivatives" VS "Constant languages" */
13:30:01 -!- Melvar has joined.
13:32:31 <esolangs> [[Merriment]] https://esolangs.org/w/index.php?diff=164087&oldid=163890 * AlephSquirrel * (+28) Add Turing complete category (I'm practically certain it is, but I don't have an explicit construction)
13:34:58 <esolangs> [[PureFun]] N https://esolangs.org/w/index.php?oldid=164088 * PrySigneToFry * (+3731) Created page with "PureFun is designed by PSTF, where everything are functions. It is based on [[Lambda calculus]]. = Core Principles = All values are functions: Booleans, numbers, pairs, and even control structures are defined as functions. Evaluation Strategy: Use lazy evaluati
13:36:11 <esolangs> [[Language list]] https://esolangs.org/w/index.php?diff=164089&oldid=163965 * PrySigneToFry * (+14)
14:15:48 -!- Sgeo has joined.
14:31:25 <esolangs> [[Special:Log/newusers]] create * Ahineya * New user account
14:35:46 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=164090&oldid=164037 * Ahineya * (+204) /* Introductions */
14:36:06 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=164091&oldid=164090 * Ahineya * (-1) /* Introductions */
14:37:08 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
14:48:55 <esolangs> [[Special:Log/upload]] upload * PrySigneToFry * uploaded "[[File:Velato Hello, world! program in double sheets.png]]": This is the dual stave version of the program "Hello, world!" in Velato, created by PrySigneToFry on Musescore 3.
14:53:28 <esolangs> [[Esolang talk:Categorization]] https://esolangs.org/w/index.php?diff=164093&oldid=164086 * Corbin * (+750) /* "Nope. derivatives" VS "Constant languages" */ Too little too late.
14:55:09 <esolangs> [[Talk:PureFun]] N https://esolangs.org/w/index.php?oldid=164094 * Corbin * (+126) Tastes like RLHF.
15:04:53 <korvo> I have lmarena.ai open in a tab and I'm feeding snippets of wiki to it. I promise that I'm not being nefarious; I want to understand what some of our younger non-Anglophone speakers are grasping, given that they appear to be heavily reliant on LLMs for translation and generation.
15:19:58 <esolangs> [[Merriment]] https://esolangs.org/w/index.php?diff=164095&oldid=164087 * AlephSquirrel * (+17) Add links to other languages
15:30:04 -!- tromp has joined.
15:34:06 <esolangs> [[Semi-serious language list]] https://esolangs.org/w/index.php?diff=164096&oldid=163791 * Ais523 * (+25) /* R */ +[[Reversible Bitfuck]] I think this is different enough from the original language to count (the programming style is somewhat different)
15:38:57 <korvo> Hm. I'm reading the old discussions about quines, particularly about quineless TC languages, and it feels like there's some incommensurability. Like, folks are aware of Kleene's fixed point, but not of its implications.
15:41:32 <korvo> My thinking is that the set of natural numbers N has the fixed-point property in a computable universe: all computable maps N → N have a fixed point, and moreover they're defined at that fixed point. The theorem is constructive and proceeds directly from the fact that a computable universe has enumerations for all objects, including internalized maps [N, N].
15:42:55 <korvo> So, if one wants to have a quineless TC language, then one must start by reckoning with how their language will handle natural numbers and codes. I suspect that they'll find that they didn't really have a computable universe; they aren't actually able to enumerate some specific sort of first-class object.
15:50:29 <korvo> I'm gonna work the example from https://wwwep.stewartsplace.org.uk/quines/quineless.html which is attributed to ais523. Consider the language that is the union of Iota and question-mark-prefixed strings like "?asdf", but without the empty string. The attached semantics: if question-marked, emit the string; otherwise, reduce the string as an Iota program.
15:50:30 <int-e> I thought the typical quine-less TC language just picked program and output encodings that are disjoint
15:51:32 <korvo> This language has semidecidable output! Just check whether the first bits are "?". So calling it "quineless TC" is a little unfair. It's TC in the sense that Iota is TC: interpreted as Iota, it's undecidable whether a program has a normal form under reductions.
15:53:58 <int-e> (and you can combine that with ais523's idea for adding arbitrary output capability)
15:55:20 <korvo> I guess, but I don't see how those can be usefully interleaved.
15:57:20 <int-e> take a language whose programs are non-empty strings over {0,1}, and whose outputs are strings over {a,b}; that's quine-less but can easily be TC. Add question-mark-followed-by-string-over {?,0,1,a,b} to make it "output-complete".
15:57:33 <korvo> Like, I don't see how a clever encoding gets around the pipeline of TC-ness => Kleene's recursion => Rogers' fixed point => Gödel's diagonal lemma => Turing bird => self-application => WLOG access to own source code => quine.
15:58:29 <int-e> The last step, "access to own source code => quine", runs into the output restriction.
15:58:56 <int-e> I think the rest works, because you can pick suitable encodings for everything.
16:00:38 <int-e> (IIUC ais523 takes this to its extreme by having a TC fragment that has no output at all)
16:00:40 <korvo> Okay, then I think that the concept as documented is incoherent, or at least "evil" (varying under isomorphisms).
16:01:49 <korvo> To me, a quine is an instance of Quine's construction, where "is preceded by some quoted text" is preceded by some quoted text. It's a natural consequence of the existence of Turing birds, themselves ensured by the diagonal lemma.
16:03:00 <korvo> Like, category-theoretically I cannot be stopped from reading "a language whose programs are non-empty strings over 2 and whose outputs are strings over 2"; in FinSet (or Set!) there's no way to tell the difference between two-element sets, so there's no way to use labeling to artificially separate the domain and codomain.
16:09:54 <int-e> In the final step of your quine recipe, you have to be able to take a quotation and output its contents. And that's easy to subvert if you're willing to cripple the language's output capabilities.
16:10:54 <int-e> informally, you want to be able to print an arbitrary string that your program computed
16:11:07 <int-e> (assuming your programs are strings)
16:12:08 <int-e> And lacking that capability feels rather artificial... especially if the sole reason you're doing that is to prevent quines.
16:12:40 -!- zemhill has quit (Server closed connection).
16:12:50 -!- zemhill has joined.
16:13:11 <int-e> You can do more silly things... like, the interpreter can track program and output and the moment the output matches the program, append a multi-ocular o.
16:13:40 <korvo> It also contradicts the spirit of the concept, as introduced and explained by Hofstadter. I popped open GEB. He has an entire dialogue on the topic of Quine's construction where he focuses on use-mention. He talks about programming ergonomics but only to note that a language can make it *easier* to write a quine, not harder or impossible.
16:13:48 <int-e> Which also prevents quines, though it almost certainly won't prevent you from printing a program that's equivalent to the original program.
16:14:25 <int-e> (Not without giving the interpreter super-computable powers)
16:15:15 <korvo> His main goal was DNA, a non-output barely-language! p531: "There is a biochemical analogue to the use-mention dichotomy: when DNA is treated as a mere sequence of chemicals to be copied, it is like mention of typographical symbols; when DNA is dictating what operations shall be carried out, it is like use of typographical symbols."
16:16:59 <korvo> p530: "It is not by any means coincidental that the phrases 'sufficiently strong support system' and 'sufficiently powerful formal system' sound alike. One is the precondition for a self-rep to arise, the other for a self-ref to arise. In fact there is in essence only one phenomenon going on in two very different guises..."
16:20:14 <korvo> p449, mapping between truthiness and provability: "preceding a predicate by itself, in quotes ('quining')" <=> "substituting the Gödel number of an open formula into the formula itself ('arithmoquining')"
16:23:55 <korvo> p499, anticipating Muriel and ais523 somewhat: "In some computer language it might be a convention that nay program whose first symbol is an asterisk is to be copied before being executed normally. Then the program consisting of merely one asterisk is a self-rep! ...It is almost cheating to use the phrase 'this sentence' to achieve self-reference — it relies too much on the processor, and not enough on explicit directions for self-reference."
16:25:00 <korvo> "Using an asterisk as an example of a self-rep is like using the word 'I' as an example of a self-ref: both conceal all the interesting aspects of their respective problems. ... Before we call something a self-rep, we want to have the feeling that, to the maximum extent possible, it *explicitly* contains the directions for copying itself."
16:27:57 <korvo> On p499 Hofstadter says that what we call quines, he calls "self-reproducing object[s]" or "self-rep[s]". Quining can build a self-rep in a sufficiently-strong system, but other self-reps are possible too.
16:28:46 <korvo> int-e: This isn't to yell at you, but to suggest that we've culturally misunderstood Hofstadter's definition and examples.
16:30:55 <int-e> . o O ( Hehe, an author being misunderstood? Get in line... )
16:32:54 <int-e> korvo: one way to get around output restrictions, btw, is to change the interface: rather than "asking" the program to print is own source code, ask it to answer computable queries about its source code.
16:36:14 <int-e> (Though you need input capabilities for this. But we're far more used to dealing with encodings on that side.)
16:36:39 <korvo> I'm not sure I see much of a difference there. I'm still puzzled about output because the traditional formalisms I've listed on [[computable]] (lambda calculus, Diophantine equations, Turing machines, computable universes) don't have any notion of output. I'm not sure what I/O has to do with the story.
16:38:00 <int-e> Well, TMs do have output conventions. (At least two, a dedicated output tape, or the final state of the tape when the program terminates.)
16:38:56 <int-e> But anyway, output enters the picture because otherwise you have no mechanism for replication.
16:39:06 * int-e shrugs
16:40:12 <korvo> Quining isn't about replication, but about quoting and self-reference. Self-reps can be generated by quining in sufficiently strong systems; that's the extent of the relationship between them.
16:41:08 <int-e> But the programming term "quine" has become to mean a program that prints its own source code and that requires output. I'm working backwards from that.
16:41:16 <korvo> I suppose that this is merely yet another case of programmers ignoring computer science.
16:42:34 <int-e> I just don't think it's a big deal.
16:44:36 <korvo> It's not globally a big deal, no. I do think that the whole "quineless TC" meme is a good example of programmer hubris. I also think that there are global issues that fundamentally arise from programmer hubris. But it's not worth editing the page.
16:46:48 <korvo> Similarly, although it's not a big deal, TMs *don't* have output. TMs generalize pen-and-paper work, and there's no notion of output there. We have grown used to a particular fancy machine that Turing did not describe, and we justify ourselves because we can craft an output by summarizing the tape, or craft an input by preparing the tape, etc.
16:48:09 <int-e> Let me guess, when you say "TM" you insist on using Turing's original paper as the sole defintion, and exclude all the other flavors that people tend to use, some of which do have output.
16:48:39 <korvo> It's the same sort of imprecision as saying that a language has semantics. Nope! A language has syntax: letters, grammar, etc. We typically *equip* a language with a chosen semantics and want all operations to be semantics-preserving. This is the difference between a standard category and a slice category.
16:49:21 <korvo> When it matters, yes, I'd like to use *exactly* the same abstracta as other mathematicians.
16:49:22 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
16:49:56 <int-e> Mathematicians can't even agree on whether 0 is a natural number.
16:51:19 <korvo> 0 is an element of the initial semiring, regardless of whether people say "natural number" or "whole number". I mean, I could literally analogize this with a functor: programmers can't even agree on whether the always-failing regex is a legal regex.
16:55:45 -!- tromp has joined.
17:23:35 -!- b_jonas has joined.
17:25:27 <APic> cu
17:31:12 -!- ais523 has joined.
17:33:52 <ais523> fwiw, I always understood the "TC languages have a quine" rule as "any TC language is able to compute a representation of its own source code and perform arbitrary operations on it that the language allows" – but there is no requirement that the language is actually capable of outputting arbitrary strings, so it might not be able to output the source code even though it can compute it
17:37:12 <ais523> but this conversation has got me thinking about alternative formulations – some suggestions (above and on linked pages) more or less collapse to "any programming language that you can compile brainfuck into has a quine" and I think that may be correct
17:37:45 <ais523> and it may be correct even with BF-without-, (i.e. output only, no input)
17:39:02 <ais523> it feels like there should be a diagonal argument here
17:39:36 <ais523> (but the existence of the BF-to-language-X compiler is important as that compiler itself – i.e. its source code – is one of the inputs to the diagonalisation proof)
17:42:35 <int-e> ais523: You can do basically everything in Brainfuck for this: Write the compiler in Brainfuck, use quining so that it runs on itself as input. The other language just becomes an intermediate representation for a Brainfuck interpreter.
17:42:46 <ais523> OK, yes, this is an easy argument: suppose you have a compiler from BF-without-input to language X, written in BF; you can write a BF program that starts by creating data structures containing the compiler's source code and (using standard quine tricks) its own source code, then uses a BF self-interpreter to run the compiler on its own source code, then prints the output
17:42:56 <ais523> right, we had the same idea I think
17:43:09 <ais523> the BF-to-language-X compiler must produce a quine when written on that program, if it didn't it would be incorrect
17:43:16 <ais523> * when run on that program
17:44:22 <int-e> There's that multi-language "Ouroboros" quine; that's related.
17:44:25 <ais523> interestingly, this argument seems to only work because BF is deterministic
17:45:29 <int-e> https://esoteric.codes/blog/the-128-language-quine-relay -- oh 7 years old already
17:45:42 <ais523> ah, it still works as long as the compiler is guaranteed to produce output that is a correct implementation, even if it doesn't always produce the same output
17:46:23 <ais523> int-e: I find that uninteresting because it doesn't require any actual logic in most of the languages – you can use one language that contains 128 compilers from outputs to programs that print a constant string
17:46:34 <ais523> and only have to do the quining logic once, in that language
17:47:24 <ais523> normally, to avoid this problem, a multilanguage quine is defined to be a program that takes a language name or identifier as input, and outputs itself translated into the given language
17:48:11 <int-e> True; it's degenerate in that for many language you don't actually have a compiler, just something that can print arbitrary strings.
17:48:42 <ais523> right, only one of the languages even needs to be TC
17:48:59 <ais523> you can relay through Deadfish if you like (especially if the next language in the chain has a syntax that's a list of numbers)
17:51:11 <int-e> It's a bit more interesting if you optimize for size.
17:51:14 <int-e> > fix show
17:51:15 <lambdabot> "\"\\\"\\\\\\\"\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"\\\\\\\\\\\\\...
17:52:08 <ais523> I've seen some quine relays optimised for size, unless you're very careful with proper quine rules they normally end up as literals that print themselves
17:52:27 <ais523> like, program A is "1\n" which prints "1" in language A, program B is "1" which prints "1\n" in language B
17:52:47 <ais523> and I don't think there was ever a consensus about what specificially it is that makes a quine into a proper quine
17:53:48 <ais523> come to think of it, with error quines you can probably create a really big quine relay through thousands of languages that has distinct source code in all of them and reaches its starting point, but none of the programs do any interesting computation
17:56:05 <ais523> I guess the "payload-capable" definition would help a lot (i.e. you can insert (an encoding of) an arbitrary string into the quine and it survives around the whole loop), and is probably objectively definable
17:58:39 <int-e> I also imagined that we'd fix a set of languages to use. Or maybe the full cycle (with order). Like, that 128 languages quine-relay thing feels non-artificial in that it includes a ton of mainstream languages and goes through them in lexicographic order. I don't know whether candidate languages were specifically rejected for being too unwieldy of course.
17:59:25 <int-e> Heh, one of them is Piet.
18:01:02 <int-e> You'll still cover the majority of languages with just string encoding of course, and pick the more expressive ones to actually do more elaborate recoding of everything.
18:04:20 -!- ais523 has quit (Quit: quit).
18:05:28 <korvo> To bridge between "is deterministic" and "is guaranteed to produce output that is a correct implementation", note that quining has some sort of quotation, and the contents of a quote have to be mentioned literally. It's the same use-mention quirk as with first-class and second-class syntactic constructs in general.
18:35:39 <esolangs> [[Topple/Source Code]] https://esolangs.org/w/index.php?diff=164097&oldid=164020 * H33T33 * (+589)
18:36:53 <esolangs> [[Topple/Source Code]] M https://esolangs.org/w/index.php?diff=164098&oldid=164097 * H33T33 * (+89)
18:37:09 <esolangs> [[Topple/Source Code]] M https://esolangs.org/w/index.php?diff=164099&oldid=164098 * H33T33 * (+0)
18:46:57 -!- plutoasc333 has joined.
18:49:43 -!- plutoasc333 has quit (Client Quit).
18:49:56 -!- plutoasc333 has joined.
19:09:35 -!- xelxebar has quit (Server closed connection).
19:09:56 -!- xelxebar has joined.
19:16:29 -!- plutoasc333 has quit (Ping timeout: 250 seconds).
19:17:35 <esolangs> [[FP trivia]] https://esolangs.org/w/index.php?diff=164100&oldid=102420 * Fpstefan * (-11) /* Program Combinators are used in Infix Notation */
19:20:58 -!- plutoasc333 has joined.
19:23:52 -!- plutoasc333 has quit (Client Quit).
19:24:03 -!- plutoasc333 has joined.
19:25:07 -!- plutoasc333 has quit (Client Quit).
19:26:10 -!- plutoasc333 has joined.
19:37:49 -!- plutoasc333 has quit (Quit: Client closed).
19:42:33 <esolangs> [[Game:Esochain]] M https://esolangs.org/w/index.php?diff=164101&oldid=164083 * Ractangle * (+15) /* revreS 1 */
20:40:41 -!- joast has quit (Quit: Leaving.).
20:49:27 <esolangs> [[User:Tommyaweosme/deadfish programs generated with the genetic algorithm]] N https://esolangs.org/w/index.php?oldid=164102 * Tommyaweosme * (+143) Created page with "== 5-length programs == 6: isiso 8: issso == 9-length programs == 29: isisissio 32: isssssdio 65: issssssio 80: iisisssso 128: iisssssso"
20:50:29 <esolangs> [[User:Tommyaweosme/deadfish programs generated with the genetic algorithm]] https://esolangs.org/w/index.php?diff=164103&oldid=164102 * Tommyaweosme * (+15) /* 9-length programs */
21:09:07 -!- ais523 has joined.
21:23:34 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
22:11:35 -!- Pixton has joined.
22:12:44 -!- Pixton has quit (Client Quit).
22:21:34 <esolangs> [[Game:Esochain]] https://esolangs.org/w/index.php?diff=164104&oldid=164101 * WarzokERNST135 * (+16) /* Server 7 */
22:21:52 <esolangs> [[Game:Esochain]] https://esolangs.org/w/index.php?diff=164105&oldid=164104 * WarzokERNST135 * (+13) /* Server 5 */
22:24:04 <esolangs> [[Game:Esochain]] https://esolangs.org/w/index.php?diff=164106&oldid=164105 * WarzokERNST135 * (+13) /* Server 4 */
23:40:11 <esolangs> [[While true (cat)]] https://esolangs.org/w/index.php?diff=164107&oldid=147183 * Hotcrystal0 * (+14) lowercase
23:51:31 <esolangs> [[User:PrySigneToFry/Silicon dioxide in a polypropylene box/Chess between HCr0 and PSTF]] https://esolangs.org/w/index.php?diff=164108&oldid=163463 * Hotcrystal0 * (+56)
←2025-08-27 2025-08-28 2025-08-29→ ↑2025 ↑all