> 1761091278 861901 PRIVMSG #esolangs :14[[07Mango14]]4 M10 02https://esolangs.org/w/index.php?diff=166371&oldid=166370 5* 03RaiseAfloppaFan3925 5* (+163) 10Open the door for contribution (do it on github idiot) < 1761091313 29890 :Sgeo!~Sgeo@user/sgeo PRIVMSG #esolangs :" The programmer should < 1761091313 147367 :Sgeo!~Sgeo@user/sgeo PRIVMSG #esolangs :bear in mind that 10,000 executions of all nonoptimum instructions would < 1761091313 175903 :Sgeo!~Sgeo@user/sgeo PRIVMSG #esolangs :take less than 3 minutes longer than 10,000 executions of optimum instructions. If the programmer spends 15 - 30 minutes on each routine < 1761091313 175945 :Sgeo!~Sgeo@user/sgeo PRIVMSG #esolangs :trying to save machine time by optimizing, this time may never be made up in the actual running of the problem." < 1761091333 136135 :Sgeo!~Sgeo@user/sgeo PRIVMSG #esolangs :https://bitsavers.org/pdf/royalPrecision/LGP-30/LGP-30_Subroutine_Manual_Oct60.pdf < 1761091532 109841 :zzo38!~zzo38@host-24-207-46-238.public.eastlink.ca PRIVMSG #esolangs :(In this case, it was to prevent Clefable from falling asleep; it is risky because in both cases you might not be able to do anything, although with different probabilities of that occurring at different times. It also reduces Clefable's speed compared with my other active pokemon attacking first) < 1761092110 202985 :int-e!~noone@int-e.eu PRIVMSG #esolangs :ais523: I guess it's not a bug then. The underlying quirk is that switching to unbuffered mode intializes buffer start and end to comprise a 1 byte buffer. And the automatic allocation only kicks in if no buffer is initialized. It ignores the `size` argument, too, instead uses the default buffer size (10000?). 8c85a940b12f57ed5116e759b6c9aa388b169fdd < 1761092145 167417 :int-e!~noone@int-e.eu PRIVMSG #esolangs :huh, what's that hash < 1761092307 432224 :int-e!~noone@int-e.eu PRIVMSG #esolangs :ais523: one half of that is here, https://github.com/bminor/glibc/blob/master/libio/iosetvbuf.c#L45-L69 and the other half is here, https://github.com/bminor/glibc/blob/master/libio/genops.c#L481-L485 (well, in part, the logic is repeated at least once that I saw in passing) < 1761092350 404287 :int-e!~noone@int-e.eu PRIVMSG #esolangs :ais523: So I guess, don't use NULL there if you want to get a buffer. < 1761092366 432273 :int-e!~noone@int-e.eu PRIVMSG #esolangs :ais523: And of course a 1 byte buffer explains the 12/1 behavior perfectly. < 1761092470 901704 :int-e!~noone@int-e.eu PRIVMSG #esolangs :ais523: and you need a 1 byte buffer for ungetc(), I think that's the last piece of the puzzle < 1761092494 212727 :int-e!~noone@int-e.eu PRIVMSG #esolangs :that, and sharing the basic buffer setup between reading and writing < 1761092746 340760 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :Sgeo: nowadays, a) programs are run more often than they used to be, b) one-off programs often deal with a very large amount of data, so you're OK with making the O(1) compile slower in order to make the O(n) program faster even if the constant-factor tradeoff isn't good < 1761092764 80773 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :so although that advice was historically correct I don't think it applies much nowadays for choice of compiler settings < 1761092786 748143 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :(it does sometimes apply to choice of language, e.g. languages like Perl are good for one-off scripts acting on small datasets despite having bad performance) < 1761092806 413301 :amby!~ambylastn@host-92-17-37-198.as13285.net QUIT :Quit: so long suckers! i rev up my motorcylce and create a huge cloud of smoke. when the cloud dissipates im lying completely dead on the pavement < 1761092824 595199 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :but the traditional wisdom from the early days of programming was that the only program worth optimising is the compiler, as it's the only one you run often enough to make optimising it save net time < 1761092874 630337 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :int-e: a default size that is not a multiple of the page size looks so wrong to me < 1761092898 390691 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :(although I know that it's being used purely for memory copies and not any mapping tricks, so it shouldn't hurt in any way other than possibly wasted TLB space) < 1761093019 56217 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :actually, a good reason for it to be a multiple of the page size is that it's a big allocation, so some allocators may want to put it in its own mapping < 1761093432 62340 :sytra!~sytra@212.24.11.211 JOIN #esolangs * :Jordan < 1761093433 446244 :sytra!~sytra@212.24.11.211 QUIT :Remote host closed the connection < 1761093562 512025 :Sgeo!~Sgeo@user/sgeo PRIVMSG #esolangs :In the case of LGP-30, optimizing is ... apparently choosing where the data is located relative to the instruction in a particular way. < 1761093712 733583 :int-e!~noone@int-e.eu PRIVMSG #esolangs :ais523: Oh it's 8192, the 10k is from a test, my bad. < 1761093733 248463 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :Sgeo: was it designed for drum memory or delay line memory? < 1761093744 349006 :Sgeo!~Sgeo@user/sgeo PRIVMSG #esolangs :Drum memory < 1761093771 480119 :Sgeo!~Sgeo@user/sgeo PRIVMSG #esolangs :But the instructions don't have a "next instruction" address. LGP-30 though was a predecessor machine to the one from Story of Mel apparently < 1761093903 56695 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I just realised that with drum memory, it might make sense for the instruction pointer to, after each instruction, increase by a constant that's greater than 1 < 1761093923 464696 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :to save the memory that would be needed for the "next instruction" pointer, whilst still getting decent speed < 1761093942 419978 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :although it'd require a full loop round the drum if the instruction accessed data memory that was on the same drum as the code < 1761093973 504161 :Sgeo!~Sgeo@user/sgeo PRIVMSG #esolangs :I still have no intuition for why drives are better than drums (for secondary storage) < 1761094051 828340 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :you mean, like hard drives? I think it's just because they're more usefully three-dimensional < 1761094060 39520 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :with drum memory you only get the outer surface of the drum to work with < 1761094070 719973 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :with a hard drive you get the entire surface area of each platter < 1761094107 685499 :Sgeo!~Sgeo@user/sgeo PRIVMSG #esolangs :I guess I keep thinking of hard drives as being single platter, but that... wasn't at all the case early on I think < 1761094138 400194 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :or to put it another way, multiple hard drive platters stack better into a small space than multiple drums do > 1761094598 404024 PRIVMSG #esolangs :14[[07Mango14]]4 M10 02https://esolangs.org/w/index.php?diff=166372&oldid=166371 5* 03RaiseAfloppaFan3925 5* (+9) 10comment > 1761095999 619524 PRIVMSG #esolangs :14[[07Mango14]]4 M10 02https://esolangs.org/w/index.php?diff=166373&oldid=166372 5* 03RaiseAfloppaFan3925 5* (+500) 10Added "nt tuff" + "so tuff" < 1761096254 781461 :Sgeo!~Sgeo@user/sgeo PRIVMSG #esolangs :I was thinking how fascinating it would be if a computer used hard drive as main memory... LGP-21 did < 1761096758 804762 :perlbot!~perlbot@perlbot/bot/simcop2387/perlbot JOIN #esolangs perlbot :ZNC - https://znc.in < 1761099403 926381 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :perlbot: help < 1761099920 402066 :Sgeo!~Sgeo@user/sgeo PRIVMSG #esolangs :ACTION vaguely wonders if perlbot has any relation to PerlNomic < 1761100120 904783 :Sgeo!~Sgeo@user/sgeo PRIVMSG #esolangs :I'm not sure why I thought the Story of Mel was fictional < 1761100134 15540 :Sgeo!~Sgeo@user/sgeo PRIVMSG #esolangs :When I first read it some time ago. < 1761100530 972469 :zzo38!~zzo38@host-24-207-46-238.public.eastlink.ca PRIVMSG #esolangs :(The one that I thought the opponent's pokemon should attack the ally if I was in their place, was that I had Gastrodon with Storm Drain ability, with Recover and some other things (I do not remember all of the details). One of opponent's pokemons was both trapped and choice-locked (and I think it was Samurott, but I do not reember for sure). < 1761100590 660138 :zzo38!~zzo38@host-24-207-46-238.public.eastlink.ca PRIVMSG #esolangs :Their other ones also could not attack Gastrodon enough, and both of my pokemons could attack the opponent's pokemon other than Samurott. I do not entirely remember why, but since opponent's Samurott was in all the time, I did not attack Samurott until knocking out all of opponent's other pokemons first.) < 1761100672 51193 :Sgeo!~Sgeo@user/sgeo PRIVMSG #esolangs :zzo38, is this a specific Pokemon game? < 1761100740 996145 :zzo38!~zzo38@host-24-207-46-238.public.eastlink.ca PRIVMSG #esolangs :This was the Pokemon Unbound Battle Frontier (which is a separate .gba file from the main Pokemon Unbound game) < 1761103777 406342 :b_jonas!~x@88.87.242.184 QUIT :Ping timeout: 255 seconds < 1761104818 244311 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :Sgeo: in case you haven't seen it: https://melsloop.com/ < 1761104944 443045 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :(summary: someone doing serious investigation into The Story of Mel, including figuring out who Mel was, and going into the technical details of the code – but there's also just a lot of general context added) < 1761105132 77637 :Sgeo!~Sgeo@user/sgeo PRIVMSG #esolangs :Came across it, haven't read it yet < 1761106036 835390 :zzo38!~zzo38@host-24-207-46-238.public.eastlink.ca PRIVMSG #esolangs :I am glad that someone wrote it because I had also wondering about such things like that < 1761106481 468299 :zzo38!~zzo38@host-24-207-46-238.public.eastlink.ca PRIVMSG #esolangs :(It does not display the entire article on my computer unless I disable CSS; if it does not work for you, you might try that too) < 1761107572 123629 :Sgeo!~Sgeo@user/sgeo PRIVMSG #esolangs :I saw a blog post by Masswerk about the LGP-50, but it contains an error (saying one's complement instead of two's complement). I hope... my email about that wasn't rude. I did call it nitpicking in the subject < 1761107593 728563 :Sgeo!~Sgeo@user/sgeo PRIVMSG #esolangs :*LGP-30 < 1761109669 101025 :Yayimhere!~Yayimhere@vc-nat-gp-s-41-13-0-229.umts.vodacom.co.za JOIN #esolangs * :[https://web.libera.chat] Yayimhere < 1761109796 230892 :Sgeo!~Sgeo@user/sgeo PRIVMSG #esolangs :"Machines with serial number 1.2 or less read 4 of the 6 channels < 1761109796 346142 :Sgeo!~Sgeo@user/sgeo PRIVMSG #esolangs :into the computer. " < 1761109807 86834 :Sgeo!~Sgeo@user/sgeo PRIVMSG #esolangs :12, not 1.2 < 1761109818 329225 :Yayimhere!~Yayimhere@vc-nat-gp-s-41-13-0-229.umts.vodacom.co.za PRIVMSG #esolangs :hello chat < 1761109819 901298 :Yayimhere!~Yayimhere@vc-nat-gp-s-41-13-0-229.umts.vodacom.co.za PRIVMSG #esolangs :lol < 1761109820 633300 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :1.2 would be a fun serial number < 1761109823 43232 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :hi Yayimhere < 1761109836 15233 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I guess this is old enough that making 12 computers of a given model would be a lot < 1761109839 517091 :Yayimhere!~Yayimhere@vc-nat-gp-s-41-13-0-229.umts.vodacom.co.za PRIVMSG #esolangs :ais523 yes it would lol < 1761109842 473356 :Yayimhere!~Yayimhere@vc-nat-gp-s-41-13-0-229.umts.vodacom.co.za PRIVMSG #esolangs :but hi! < 1761109906 29147 :Yayimhere!~Yayimhere@vc-nat-gp-s-41-13-0-229.umts.vodacom.co.za PRIVMSG #esolangs :what are we working on around here? < 1761109914 212675 :Sgeo!~Sgeo@user/sgeo PRIVMSG #esolangs :ACTION is learning about LGP-30 < 1761109919 824767 :Sgeo!~Sgeo@user/sgeo PRIVMSG #esolangs :https://bitsavers.org/pdf/generalPrecision/LGP-30/manuals/LGP-30_Programming_Class_Notes.pdf < 1761109926 103462 :Yayimhere!~Yayimhere@vc-nat-gp-s-41-13-0-229.umts.vodacom.co.za PRIVMSG #esolangs :cool! < 1761110007 890641 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I wonder whether there's a channel specifically for retrocomputing < 1761110016 41100 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :there's obviously a big overlap with esolangs, but they're technically different topics < 1761110032 553182 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :so the retrocomputing enthusiasts likely hang out elsewhere rather than here < 1761110036 962610 :Yayimhere!~Yayimhere@vc-nat-gp-s-41-13-0-229.umts.vodacom.co.za PRIVMSG #esolangs :yea < 1761110051 66598 :Sgeo!~Sgeo@user/sgeo PRIVMSG #esolangs :There are multiple retrocomputing Discords, and there's a retronetworking channel here (that I don't participate much in) > 1761110233 470509 PRIVMSG #esolangs :14[[071L a14]]4 10 02https://esolangs.org/w/index.php?diff=166374&oldid=137854 5* 03Ais523 5* (+41) 10add the unknown computational class because TCness hasn't been proven (somewhat odd for a language from 2005 that was relatively famous at the time) < 1761110424 108623 :Yayimhere!~Yayimhere@vc-nat-gp-s-41-13-0-229.umts.vodacom.co.za PRIVMSG #esolangs :yay!!! I think I have found something interesting to make (finally)!!! < 1761110645 989484 :Yayimhere!~Yayimhere@vc-nat-gp-s-41-13-0-229.umts.vodacom.co.za PRIVMSG #esolangs :well its already made but like < 1761110647 813567 :Yayimhere!~Yayimhere@vc-nat-gp-s-41-13-0-229.umts.vodacom.co.za PRIVMSG #esolangs :work on < 1761110780 635665 :Sgeo!~Sgeo@user/sgeo PRIVMSG #esolangs :The earlier LGP-30s have an extra break point button compared to the later ones > 1761110798 176492 PRIVMSG #esolangs :14[[07Talk:(ch34t) c0d314]]4 10 02https://esolangs.org/w/index.php?diff=166375&oldid=141480 5* 03Yayimhere2(school) 5* (-241) 10this was a comment by my, and is unnecessary > 1761110841 732225 PRIVMSG #esolangs :14[[07(ch34t) c0d314]]4 10 02https://esolangs.org/w/index.php?diff=166376&oldid=148937 5* 03Yayimhere2(school) 5* (+5) 10 < 1761111088 857833 :Yayimhere!~Yayimhere@vc-nat-gp-s-41-13-0-229.umts.vodacom.co.za PRIVMSG #esolangs :how do you guys name your esolangs? < 1761111119 361527 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I normally just go with the first thing that seems like it fits < 1761111152 639737 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :some of them have a lot of thought put into their names, e.g. Incident, but that's a minority of cases (I put extra effort into Incident because it was made for a competition) < 1761111168 109823 :Yayimhere!~Yayimhere@vc-nat-gp-s-41-13-0-229.umts.vodacom.co.za PRIVMSG #esolangs :makes sense < 1761111168 609529 :Yayimhere!~Yayimhere@vc-nat-gp-s-41-13-0-229.umts.vodacom.co.za PRIVMSG #esolangs :I need to look at incident again lol < 1761111179 902985 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :it is not an easy language < 1761111193 59273 :Yayimhere!~Yayimhere@vc-nat-gp-s-41-13-0-229.umts.vodacom.co.za PRIVMSG #esolangs :I just like to read < 1761111202 793769 :Yayimhere!~Yayimhere@vc-nat-gp-s-41-13-0-229.umts.vodacom.co.za PRIVMSG #esolangs :i find it interesting! < 1761111248 207617 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :the funny thing is that I thought of the basic rule ("every token appears three times, non-middle jumps to middle, middle jumps back to the non-middle") really quickly and then everything else was trying to work through the implications < 1761111291 663644 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :(and the "every token appears three times" rule was inspired by a programming competition where people had to avoid particular characters appearing in the source code, so I wanted to make a language that was Turing-complete-with-I/O off any two characters) < 1761111306 281509 :b_jonas!~x@88.87.242.184 JOIN #esolangs b_jonas :b_jonas < 1761111314 555202 :Yayimhere!~Yayimhere@vc-nat-gp-s-41-13-0-229.umts.vodacom.co.za PRIVMSG #esolangs :hello jonas < 1761111324 457500 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :o/ < 1761111337 30813 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :the tight-infinite-loops rule was originally added to make polyglotting easier but it turned out to be useful for other things too (e.g. producing a syntax for a goto statement as emergent behaviour) < 1761111398 598012 :Yayimhere!~Yayimhere@vc-nat-gp-s-41-13-0-229.umts.vodacom.co.za PRIVMSG #esolangs :its so interesting to hear the backstories of esolangs as well < 1761111404 572656 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :or, well, backwards jumps don't need it, just the forward ones < 1761111476 831208 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :oddly enough I mentally categorise esolangs by where I was when I created them, e.g. Incident was created walking to a restaurant and Echo Tag was created in a railway station < 1761111487 880591 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :(not the entire language, just the key idea) < 1761111505 561827 :Yayimhere!~Yayimhere@vc-nat-gp-s-41-13-0-229.umts.vodacom.co.za PRIVMSG #esolangs :nearly all of my good esolangs were either made in the car, or in the bed while having a massive headache < 1761111562 279466 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :The Waterfall Model was a really boring location: sitting at my computer < 1761111586 830755 :Yayimhere!~Yayimhere@vc-nat-gp-s-41-13-0-229.umts.vodacom.co.za PRIVMSG #esolangs :hehe < 1761111610 264475 :Yayimhere!~Yayimhere@vc-nat-gp-s-41-13-0-229.umts.vodacom.co.za PRIVMSG #esolangs :also ive found a good name for my esolang < 1761111877 423851 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :hiding data in arbitrary English text as carrier: I like that concept, I tried it at least once, though I just encoded a short constant string rather than a bf program: https://www.perlmonks.com/?node_id=877696 < 1761111893 455568 :sorear!sid184231@id-184231.uxbridge.irccloud.com PRIVMSG #esolangs :Sgeo: the lgp30 has one head _per track_, it "seeks" using a bank of relays instead of a voice coil and a hinge ... dunno if later drums solved this but you can't fit a perpendicular arc into a cylinder so you'd need a complicated linkage < 1761111894 356657 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :and making the text explain what you're doing is a good idea > 1761112096 631866 PRIVMSG #esolangs :14[[07Talk:14]]4 10 02https://esolangs.org/w/index.php?diff=166377&oldid=153045 5* 03Yayimhere2(school) 5* (+181) 10 > 1761112112 290311 PRIVMSG #esolangs :14[[07Talk:14]]4 10 02https://esolangs.org/w/index.php?diff=166378&oldid=166377 5* 03Yayimhere2(school) 5* (+0) 10 < 1761112146 142381 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :ais523: stegano vs obvious polyglot, there's a middle ground, where it's obvious that there's something hidden but it's not obvious how to decode it or what language it is polyglot with < 1761112184 219725 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :that usually comes up in puzzles, where the puzzle is written in a way that has an obvious surface meaning, and you can tell that there's something hidden, but it's hard to figure out what's hidden exactly < 1761112185 392184 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :b_jonas: like if you encounter a long hex string that's indistinguishable from random? < 1761112196 488235 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :ah, I see < 1761112205 396576 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :the difference being that in the puzzle, it's meant to be decoded < 1761112224 456259 :Yayimhere!~Yayimhere@vc-nat-gp-s-41-13-0-229.umts.vodacom.co.za PRIVMSG #esolangs :bye people! < 1761112226 883440 :Yayimhere!~Yayimhere@vc-nat-gp-s-41-13-0-229.umts.vodacom.co.za PRIVMSG #esolangs :you'll see me again < 1761112229 762802 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :bye < 1761112386 278857 :Yayimhere!~Yayimhere@vc-nat-gp-s-41-13-0-229.umts.vodacom.co.za QUIT :Quit: Client closed < 1761112408 607326 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :wait, what are these two basic patterns for quining? I can think of only one basic pattern. there's one more pattern is cheating to read the source code from somewhere that it's stored, but that doesn't seem to be what you're referring to; and there's also empty quines in many languages, including Underload, but that also doesn't seem to be what you're referring to. < 1761112542 63633 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :b_jonas: quoted code + code, and eval-quine < 1761112578 997196 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :there's a "third" which is topological quines, but those aren't possible in most languages and are mildly controversial (albeit generally accepted) < 1761112656 671119 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :a topological quine is, e.g., starting a Befunge program with < and ending it with an unmatched ", in order to put the program both inside and outside a string literal and produce a quoted code + code quine with only one copy of the code < 1761112701 787960 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :what does "eval-quine" mean? < 1761112774 228283 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :b_jonas: you write the program in the form x="string literal"; eval(x) < 1761112793 838969 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :and then the body of the string literal is a function that regenerates the entire pattern from the contents of the string literal < 1761112813 982272 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :ah I See > 1761112819 595585 PRIVMSG #esolangs :14[[07Bog prok14]]4 10 02https://esolangs.org/w/index.php?diff=166379&oldid=141142 5* 03Yayimhere2(school) 5* (-137) 10 < 1761112830 429345 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :(which is still in the variable x, which is why you need a separate variable) < 1761112841 667247 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :same string is both evalled and used as literal. yes, I've done such a thing though not as a quine I think < 1761112973 456114 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :JS allows reverse eval quines where, instead of using a string literal as code, you use code as a string literal by calling toString on a function – but that's widely considered cheating, whereas eval-quines aren't < 1761112985 862678 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :quine legality is a weird subject and almost impossible to define objectively < 1761113007 833555 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :in perl a trick is to `eval for ` followed by a string literal, then the code can access the string from the $_ variable < 1761113017 215010 :Sgeo!~Sgeo@user/sgeo PRIVMSG #esolangs :I've used JS reverse quines to make "malware" for the toy web OS Windows 96 >.> < 1761113190 525928 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :a (non-quine) example for that is https://www.perlmonks.com/?node_id=658930 . a large part of the string is a comment when it's interpreted as code, and that's long enough to encode all of the output, but you have to encode the output after you write the rest of the code in the string, because almost the whole string is used as data and is sufficiently mixed up so if you modify the code in any way it < 1761113196 532101 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :will completely ruin the output < 1761113284 435777 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :ugh, I remember I had a Perl-related problem in polyglotting or restricted source or something and fixed it by starting the code with a bareword followed by =~ < 1761113291 912160 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :but can't remember what the problem was or why that helped > 1761113306 573728 PRIVMSG #esolangs :14[[07Bog prok14]]4 10 02https://esolangs.org/w/index.php?diff=166380&oldid=166379 5* 03Yayimhere2(school) 5* (+99) 10/* other */ < 1761113313 443547 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :ooh… maybe it was a "make the deletion of any character observable" type of problem < 1761113505 859094 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :The first recipe, repeating a quote twice, is the one that is guaranteed by the diagonal lemma. The trick is merely to substitute the quote twice with different delimiters, so that the generated code repeats the quote literally and "repeats the quote literally". < 1761113587 512722 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :the second recipe is also guaranteed, because you can write a self-interpreter in any TC language < 1761113608 519317 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :it's just really really verbose if the language doesn't have an eval builtin > 1761113666 533674 PRIVMSG #esolangs :14[[07Bog prok14]]4 10 02https://esolangs.org/w/index.php?diff=166381&oldid=166380 5* 03Yayimhere2(school) 5* (+230) 10/* computation */ < 1761113761 888557 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :int-e: is the file handle flushed before you do those setvbuf calls? < 1761113798 703238 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :b_jonas: we figured it out later in the scrollback < 1761113810 733025 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :(well, mostly int-e did) < 1761113922 923817 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :ais523: re advice for choosing what to optimize, another reason why this changed is because interactive debuggers and some other tools used to be much worse at dealing with optimized code, now they are much better because the compiler writes better debug info and the debugger can interpret that debug info better. < 1761113950 611392 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I use -Og as a default when writing C nowadays < 1761113964 462543 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :but it's unclear whether it's actually much better for debugging than -O2 or -O3 < 1761113964 785703 :Sgeo!~Sgeo@user/sgeo QUIT :Read error: Connection reset by peer < 1761114374 44941 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :"mentally categorise esolangs by where I was when I created them" => hehe. for geo and scan that's really easy, because I made them for a university programming class, so I was clearly in the unviersity computer lab. I got the original idea for Consumer Society when I was visiting my brother in Sweden, but it took like a year after that to actually figure out how to get an interesting esolang based on < 1761114380 49016 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :that idea. But I've no idea when and how I first started to think about Enchain. < 1761114409 566934 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :Yayimhere: you have headache-inspired esoteric languages? I haven't tried that and I don't see how that strategy would work < 1761114484 390542 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :sorear: can't you use a head moving on a linear rail with a flexible cable, like how the head of some printers works? < 1761114571 716514 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :I mean the head is moved by a chain loop between two gears driven by a motor in that case < 1761114656 191833 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :although if you don't need to make the drum drive portable then you could use the typewriter method, where it's the drum that moves on a rail and the head is fixed to the bulk of the drive, which is better because you don't need flexible cables < 1761114669 798449 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :no wait, that doesn't work for a drum drive because you can't rotate the drum fast that way < 1761114680 397685 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :well, maybe you could, but it'd be harder than in a typewriter < 1761114769 32586 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :you'd need to add two or three extra eletric rails with moving contact footwear to transmit electricity into a motor in the moving part, in addition to the rails for mechanical linkage, and that gets ugly and the footwear can wear out too quickly < 1761114841 958343 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :what do you actually call in english the footwear that makes electrical contact between a moving carriage and a fixed rail? < 1761115050 581046 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :b_jonas: in the railway context, "contact shoe" but often just "shoe" for short < 1761115057 570216 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :the equivalent in a motor is called a "brush" < 1761115140 883655 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :oh, and if it's an overhead conductor rather than on the ground, it uses a different form of electrical contact that's usually called a "pantograph" for some reason (I guess it kind-of looks a bit like the drawing tool?) < 1761116180 407920 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :also for magnetic storage, the r/w head should be kept at a steady distance from the drum, close but not touching, because the magnetizable media layer is fragile and if the head is touching it would damage the layer, and keeping the distance steady would be harder if the whole drum is moving on a rail < 1761116192 454966 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :contact shoe, thank you < 1761116236 874063 :sorear!sid184231@id-184231.uxbridge.irccloud.com PRIVMSG #esolangs :the rail approach is also extremely slow compared to either a multi-head drum or a disk with a seek arm < 1761116411 344442 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :well now because of the shoe I'm imagining a Cinderella story: the prince found a custom disk drive left at the stairs of his palace, whoever has the matching disk that it can read must be the princess > 1761116464 260761 PRIVMSG #esolangs :14[[07Mango14]]4 M10 02https://esolangs.org/w/index.php?diff=166382&oldid=166373 5* 03RaiseAfloppaFan3925 5* (+264) 10Removed comment, added two more keywords to the page + inspired by Rust < 1761116513 477127 :sorear!sid184231@id-184231.uxbridge.irccloud.com PRIVMSG #esolangs :the typewriter approach wouldn't work for the lgp30 due to the circulators, for true secondary storage it could work but the weight is problematic < 1761118447 567740 :tromp!~textual@2001:1c00:3487:1b00:d987:75c1:5d6f:6cf JOIN #esolangs * :Textual User > 1761120945 947023 PRIVMSG #esolangs :14[[07Mango14]]4 M10 02https://esolangs.org/w/index.php?diff=166383&oldid=166382 5* 03RaiseAfloppaFan3925 5* (+570) 10im so stupid + added emoji requirement < 1761121561 257412 :chiselfuse!~chiselfus@user/chiselfuse QUIT :Remote host closed the connection < 1761121574 701483 :chiselfuse!~chiselfus@user/chiselfuse JOIN #esolangs chiselfuse :chiselfuse > 1761121664 91358 PRIVMSG #esolangs :14[[07Mango14]]4 M10 02https://esolangs.org/w/index.php?diff=166384&oldid=166383 5* 03RaiseAfloppaFan3925 5* (-291) 10I TAKE IT BACK < 1761121799 103573 :wob_jonas!~wob_jonas@business-37-191-60-209.business.broadband.hu JOIN #esolangs * :[https://web.libera.chat] wob_jonas < 1761121817 959728 :tromp!~textual@2001:1c00:3487:1b00:d987:75c1:5d6f:6cf QUIT :Quit: My iMac has gone to sleep. ZZZzzz… < 1761121836 860596 :wob_jonas!~wob_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :sorear: right, I was thinking of the later disk drives that are used as backing storage rather than main memory, so you mostly read them sequentially and seek time is less important < 1761122190 924591 :wob_jonas!~wob_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :https://www.righto.com/2024/08/minuteman-guidance-computer.html has a description about a computer that uses a multi-head disk with main memory. the part that's interesting to me is that the disk is used with at least two different delays. there's a more traditional addressed main memory part that stores both data and code instructions, where the < 1761122191 424100 :wob_jonas!~wob_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :computer has to wait until the disk rotates to the place corresponding to the address that it wants to read from. but there are also tracks that are just one word long, so there's a read head one word behind a write head, and these store a single register value. the computer is serial, so reading the bits of a register in sequence works well. > 1761123190 995126 PRIVMSG #esolangs :14[[07/14]]4 10 02https://esolangs.org/w/index.php?diff=166385&oldid=136506 5* 03Yayimhere2(school) 5* (+45) 10/* syntax */ > 1761123444 212931 PRIVMSG #esolangs :14[[07Mango14]]4 10 02https://esolangs.org/w/index.php?diff=166386&oldid=166384 5* 03RaiseAfloppaFan3925 5* (+2317) 10Added stack example + classes and try/catch > 1761124104 326897 PRIVMSG #esolangs :14[[07(*)14]]4 10 02https://esolangs.org/w/index.php?diff=166387&oldid=138640 5* 03Yayimhere2(school) 5* (+18) 10/* Memory */ < 1761124140 100178 :Yayimhere!~Yayimhere@160.119.235.55 JOIN #esolangs * :[https://web.libera.chat] Yayimhere < 1761124162 559913 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :hello! how are we doing? < 1761124232 502430 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I suspect most of the channel regulars are asleep, given timezones < 1761124239 222755 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :(and I'm not very awake myself) < 1761124248 170921 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :true < 1761124264 148179 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :where are most ppl located anyways? < 1761124352 483521 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :anyways, is the still Turing complete if evaluated non randomly? > 1761124393 191734 PRIVMSG #esolangs :14[[0714]]4 10 02https://esolangs.org/w/index.php?diff=166388&oldid=136857 5* 03Yayimhere2(school) 5* (+22) 10 < 1761124411 984669 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :which language? Thue? < 1761124420 27734 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :see https://esolangs.org/wiki/Thupit < 1761124437 702044 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :oops < 1761124447 108938 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :but yea thue < 1761124461 881450 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :this comes up often enough that I wrote a page about it < 1761124477 762003 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :but yes, you can modify Thue's evaluation order to more or less anything sensible and it's still Turing-complete < 1761124483 923342 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :lol thanks:] < 1761124488 2070 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :great!!! < 1761124493 461455 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :because a Thue program can be written to only have one replacement available at a time < 1761124501 826268 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :it's easier to just link to the Thupit page and use that as the proof, though < 1761124524 125693 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :true < 1761124524 631155 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :thaaaanks > 1761124551 85820 PRIVMSG #esolangs :14[[0714]]4 10 02https://esolangs.org/w/index.php?diff=166389&oldid=166388 5* 03Yayimhere2(school) 5* (+30) 10/* turing completeness proof */ > 1761124596 654303 PRIVMSG #esolangs :14[[0714]]4 10 02https://esolangs.org/w/index.php?diff=166390&oldid=166389 5* 03Yayimhere2(school) 5* (+1) 10 < 1761124621 716914 :wob_jonas!~wob_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :`? wegian # Yayimhere: < 1761124624 487865 :HackEso!~h@techne.zem.fi PRIVMSG #esolangs :wegian # Yayimhere:? ¯\(°​_o)/¯ < 1761124639 590015 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :why the heck did I prove my lambda calculus copy Turing complete with thue lol < 1761124687 359818 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :wob_jonas and HackEso ... huh??? < 1761124709 40812 :wob_jonas!~wob_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :uh... < 1761124720 399491 :wob_jonas!~wob_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :``` \? wegian # Yayimhere: I meant this one < 1761124722 787925 :HackEso!~h@techne.zem.fi PRIVMSG #esolangs :A wegian is an equivalence class of #esoteric regulars. There are two main wegians, the Nor (from Finland) and the Glas (from Hexham). There's also the hypothetical Gal, which hasn't been observed yet so we're not sure where it's from. < 1761124738 367413 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :oh ok!!! < 1761124741 404453 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :thanks > 1761124903 147840 PRIVMSG #esolangs :14[[07.chat14]]4 10 02https://esolangs.org/w/index.php?diff=166391&oldid=138635 5* 03Yayimhere2(school) 5* (+23) 10 > 1761124916 203401 PRIVMSG #esolangs :14[[07.chat14]]4 10 02https://esolangs.org/w/index.php?diff=166392&oldid=166391 5* 03Yayimhere2(school) 5* (-61) 10 < 1761124990 739963 :wob_jonas!~wob_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :re Thue, I think that's because you can translate a deterministic one-tape Turing-machine into Thue in a straightforward way, such that the program state contains the tape except there's a terminating symbol at the end and the program state is inserted where the Turing machine head is, and each rule of the Turing-machine is encoded as a Thue rule, < 1761124991 208577 :wob_jonas!~wob_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :except that rules that read the blank tape symbol each have an extra Thue rule to extend the tape. < 1761125070 216484 :wob_jonas!~wob_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :yeah, like ais said, https://esolangs.org/wiki/Thupit#Computational_class explains this already > 1761125103 236225 PRIVMSG #esolangs :14[[07/14]]4 10 02https://esolangs.org/w/index.php?diff=166393&oldid=166385 5* 03Yayimhere2(school) 5* (+22) 10 < 1761125120 580120 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I lost count of how many times I saw "Thue, except…" proofs explained (both by me and by others) and really should have written up the general page about it much earlier < 1761125138 46500 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :lol < 1761125184 348492 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :because although the angelic-nondeterminism version of Thue (i.e. the compiler picks replacements to make the program work) is really neat, and the pick-randomly version is what commonly gets implemented in practice, the evaluation-order-doesn't-matter version is by far the easiest for proofs > 1761125185 207782 PRIVMSG #esolangs :14[[07/14]]4 10 02https://esolangs.org/w/index.php?diff=166394&oldid=166393 5* 03Yayimhere2(school) 5* (+9) 10/* syntax */ < 1761125230 260739 :wob_jonas!~wob_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :and by the way, this still works for any deterministic two-stack machine with finite control, which is a convenient generalization of Turing machines > 1761125281 363942 PRIVMSG #esolangs :14[[07/14]]4 10 02https://esolangs.org/w/index.php?diff=166395&oldid=166394 5* 03Yayimhere2(school) 5* (+4) 10/* syntax */ < 1761125288 218134 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :well, Turing machines are Turing-complete already, so the question is, what you gain by the generalisation? < 1761125294 111110 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :(I think something is gained but it is hard to quantify what) < 1761125310 493015 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :err, quailfy what? this is qualitative, not quantitative < 1761125428 218587 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :I really need to get to identifying [ ]'s computation class lol < 1761125459 346825 :sorear!sid184231@id-184231.uxbridge.irccloud.com PRIVMSG #esolangs :korvo: What would you expect to see as Nix infrastructure in the nql repo? > 1761125523 26289 PRIVMSG #esolangs :14[[07Mango14]]4 M10 02https://esolangs.org/w/index.php?diff=166396&oldid=166386 5* 03RaiseAfloppaFan3925 5* (+49) 10Mango is pseudonatural and I realized it yesterday how did I NOT ADD IT TO PSEUDONATURAL EARLIER AHHHHHHHHHHH < 1761125535 590022 :APic!apic@apic.name PRIVMSG #esolangs :Hi < 1761125543 512211 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :hi!!! < 1761125580 985457 :wob_jonas!~wob_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :ais523: there are other Turing-completness proofs when you can reduce to a two-stack machine with finite control, such as for Blindfolded Arithmetic or Underload or Consumer Society. I think the general two-stack machine is in some sense more natural, because these proofs don't become easier with the Turing-machine restriction that you can't insert < 1761125581 485274 :wob_jonas!~wob_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :or delete tape symbols. > 1761125630 21010 PRIVMSG #esolangs :14[[07Mango14]]4 M10 02https://esolangs.org/w/index.php?diff=166397&oldid=166396 5* 03RaiseAfloppaFan3925 5* (+27) 10Guys is Mango thematic??? < 1761125637 574164 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :now I'm thinking about how three-stack machines are faster at solving certain problems than two-stack machines, likewise for four-stack, five-stack and so on < 1761125688 69047 :wob_jonas!~wob_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :also for a Turing-machine you need some extra argument to extend the tape, whereas for a two-stack machine you can just make it UB to try to access the bottom of any stack, and this makes the translations simpler < 1761125721 41905 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I like my solution to that in StackFlow (a static analysis that prevents pops below the bottom of the stack) < 1761125738 396332 :wob_jonas!~wob_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :ais523: wait, are four-stack machines faster than three-stack machines even in theory? I know a few extra tapes can be useful for practical cases, but I didn't know there were theoretical reasons for them. > 1761125741 871083 PRIVMSG #esolangs :14[[0714]]4 10 02https://esolangs.org/w/index.php?diff=166398&oldid=145758 5* 03Yayimhere2(school) 5* (-19) 10/* syntax */ < 1761125751 407274 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :wob_jonas: I think so but am not sure < 1761125795 10039 :wob_jonas!~wob_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :I mean in the case when all three tapes are writable; if one of the three tapes is read-only then indeed a fourth tape helps < 1761125803 554735 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :ok, so, I made this esolang a while back, and im stilll not sure if it "makes sense"? so I'd like to ask you all if you could take a guess: https://esolangs.org/wiki/⊥ > 1761125853 769947 PRIVMSG #esolangs :14[[0714]]4 10 02https://esolangs.org/w/index.php?diff=166399&oldid=166398 5* 03Yayimhere2(school) 5* (+6) 10 < 1761125870 259666 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :Yayimhere: I don't think the spec is clear enough, in particular it doesn't explain how the axioms are used and what format they're in < 1761125884 212633 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :ais523: ah ok, makes sense < 1761125890 916625 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :also ⊥ is used as the symbol for false in some types of logic, so pronouncing it as "true" will be confusing (although that might be intentional?) < 1761125903 516607 :wob_jonas!~wob_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :(this argument is from TAOCP actually: Knuth argues in a multi-tape sorting algorithm for practical reasons it's best to treat the tape with the input as read-only, so he'll consider only algorithms with that constraint < 1761125907 205455 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :ais523: pretty sure its intentional < 1761125931 117045 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :wob_jonas: bear in mind that three tapes is more power than three stacks < 1761125986 921652 :wob_jonas!~wob_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :ais523: yes, but that just means even the third tape is less useful < 1761126001 450678 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :hmmmmmm, I need two find an "axiom format" whatever that means lol < 1761126005 777404 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :there are definitely situations where extra tapes help with constant factors (e.g. the "merge" step of mergesort done on more than two lists at once) but that's only a constant factor, I feel like O(n) cases should exist but can't think of one immedaitely < 1761126022 331730 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :how does a ppprogram interpret axioms? < 1761126024 555196 :wob_jonas!~wob_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :sure, constant factor is believable < 1761126032 832939 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :because in principle I want every character to be valid < 1761126075 14437 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :it's more, an axiom is part of a proof system – but they aren't useful without having rules for manipulating them to make proofs with them < 1761126082 522006 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :true < 1761126102 409527 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :I think I might have confused axioms with rule's, back in the daay < 1761126103 824864 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :lol < 1761126124 223181 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :here's an example of a simple system which has axioms and inference rules: https://en.wikipedia.org/wiki/Metamath#Language_basics < 1761126129 681829 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :thanks! < 1761126160 480358 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :couldnt you take it in reverse order? (having a bunch of proofs and then the program interprets an axiom) < 1761126163 765067 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :hmm < 1761126167 983932 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :although, to me, it's maybe a bit too simple to understand easily (because the simpler a language is, the more complicatedthe programs get) < 1761126178 900440 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :lol < 1761126196 275273 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :but yea < 1761126211 973991 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :i want the same with "only" axioms and not a specific logic system < 1761126233 834676 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :Metamath is close to that, I think – the language doesn't hardcode any axioms or inference rules < 1761126245 865712 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :ea < 1761126247 822113 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :*yea < 1761126292 33504 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :the biggest (wanted) difference is that any symbol is valid from the startt < 1761126474 162683 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :idk lol < 1761126614 704240 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :ill do something about it later < 1761126622 539847 :wob_jonas!~wob_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :ais523: re Metamath, wait, how does that work, does it encode some kind of context-free grammar parser? < 1761126646 574881 :tromp!~textual@2001:1c00:3487:1b00:d987:75c1:5d6f:6cf JOIN #esolangs * :Textual User < 1761126693 437626 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :hello tromp!!! < 1761126702 43009 :wob_jonas!~wob_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :like, does Metamath include a yacc in its guts or something? < 1761126736 367294 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :wob_jonas: I don't know the language very well, the examples make it look like it matches ( and ) and otherwise just uses uninterpreted whitespace-separated tokens < 1761126788 883789 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :but that's effectively reverse-engineered from examples < 1761126804 429667 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :so I don't know for certain that that's actually how it works < 1761126821 263621 :wob_jonas!~wob_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :ok > 1761126934 761692 PRIVMSG #esolangs :14[[07UnCompetition14]]4 N10 02https://esolangs.org/w/index.php?oldid=166400 5* 03Yayimhere2(school) 5* (+887) 10Created page with "'''UnCompetition''' is an esolang created by [[User:Yayimhere]], with the focus of trying to have an undecidable question, instead of actually being a programming language. == Description == UnCompetition consists of a tree, full of programs in its own < 1761127225 100192 :Yayimhere!~Yayimhere@160.119.235.55 QUIT :Ping timeout: 250 seconds < 1761127457 6611 :ais523!~ais523@user/ais523 QUIT :Quit: quit < 1761127909 125492 :Yayimhere!~Yayimhere@160.119.235.55 JOIN #esolangs * :[https://web.libera.chat] Yayimhere > 1761128145 653364 PRIVMSG #esolangs :14[[07UnCompetition14]]4 10 02https://esolangs.org/w/index.php?diff=166401&oldid=166400 5* 03Yayimhere2(school) 5* (+211) 10/* Description */ > 1761128168 93028 PRIVMSG #esolangs :14[[07UnCompetition14]]4 10 02https://esolangs.org/w/index.php?diff=166402&oldid=166401 5* 03Yayimhere2(school) 5* (+0) 10/* Description */ > 1761128251 701531 PRIVMSG #esolangs :14[[07UnCompetition14]]4 10 02https://esolangs.org/w/index.php?diff=166403&oldid=166402 5* 03Yayimhere2(school) 5* (+54) 10/* Description */ > 1761128315 151974 PRIVMSG #esolangs :14[[07Lalala14]]4 10 02https://esolangs.org/w/index.php?diff=166404&oldid=136233 5* 03Yayimhere2(school) 5* (-17) 10/* memory */ > 1761128461 875051 PRIVMSG #esolangs :14[[07UnCompetition14]]4 10 02https://esolangs.org/w/index.php?diff=166405&oldid=166403 5* 03Yayimhere2(school) 5* (+13) 10 > 1761128530 457515 PRIVMSG #esolangs :14[[07UnCompetition14]]4 10 02https://esolangs.org/w/index.php?diff=166406&oldid=166405 5* 03Yayimhere2(school) 5* (+97) 10/* Description */ < 1761128578 658736 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :ok, so, I'd just like to ask, if this documentation is clear?: https://esolangs.org/wiki/UnCompetition < 1761128612 309307 :wob_jonas!~wob_jonas@business-37-191-60-209.business.broadband.hu QUIT :Quit: Client closed > 1761128742 64898 PRIVMSG #esolangs :14[[07User:Yayimhere14]]4 10 02https://esolangs.org/w/index.php?diff=166407&oldid=148938 5* 03Yayimhere2(school) 5* (+34) 10 > 1761129301 459072 PRIVMSG #esolangs :14[[07Mango14]]4 M10 02https://esolangs.org/w/index.php?diff=166408&oldid=166397 5* 03RaiseAfloppaFan3925 5* (+1) 10added empty line < 1761130215 103207 :Yayimhere!~Yayimhere@160.119.235.55 QUIT :Ping timeout: 250 seconds < 1761130502 99803 :Yayimhere!~Yayimhere@160.119.235.55 JOIN #esolangs * :[https://web.libera.chat] Yayimhere < 1761131201 948148 :cbs!df2953d28a@2a03:6000:1812:100::1451 QUIT :Remote host closed the connection < 1761131202 149253 :ursa-major!114efe6c39@2a03:6000:1812:100::11f3 QUIT :Remote host closed the connection < 1761131202 261746 :dcreager!a9e780c4d1@2a03:6000:1812:100::136b QUIT :Remote host closed the connection < 1761131202 614801 :ManDeJan!3da94070ba@user/mandejan QUIT :Write error: error:80000068:system library::Connection reset by peer < 1761131359 133370 :Yayimhere!~Yayimhere@160.119.235.55 QUIT :Ping timeout: 250 seconds < 1761132120 99866 :Yayimhere!~Yayimhere@160.119.235.55 JOIN #esolangs * :[https://web.libera.chat] Yayimhere > 1761132214 186780 PRIVMSG #esolangs :14[[07User:Yayimhere14]]4 10 02https://esolangs.org/w/index.php?diff=166409&oldid=166407 5* 03Yayimhere2(school) 5* (+20) 10 > 1761132359 746539 PRIVMSG #esolangs :14[[07User:Yayimhere/Sandbox14]]4 10 02https://esolangs.org/w/index.php?diff=166410&oldid=148774 5* 03Yayimhere2(school) 5* (+4) 10 > 1761132525 131674 PRIVMSG #esolangs :14[[07Mango14]]4 M10 02https://esolangs.org/w/index.php?diff=166411&oldid=166408 5* 03RaiseAfloppaFan3925 5* (+46) 10Added clapback statement < 1761132642 338806 :Yayimhere!~Yayimhere@160.119.235.55 QUIT :Quit: Client closed > 1761132661 196542 PRIVMSG #esolangs :14[[07Bijection14]]4 10 02https://esolangs.org/w/index.php?diff=166412&oldid=166352 5* 03Yayimhere2(school) 5* (+5) 10/* examples */ < 1761132698 100195 :Yayimhere!~Yayimhere@160.119.235.55 JOIN #esolangs * :[https://web.libera.chat] Yayimhere < 1761133010 431693 :Lord_of_Life_!~Lord@user/lord-of-life/x-2819915 JOIN #esolangs Lord_of_Life :Lord < 1761133028 701594 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs : hello Lord_of_life < 1761133072 711426 :Lord_of_Life!~Lord@user/lord-of-life/x-2819915 QUIT :Ping timeout: 260 seconds < 1761133092 565160 :Lord_of_Life_!~Lord@user/lord-of-life/x-2819915 NICK :Lord_of_Life < 1761133147 684505 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :how are ya? > 1761133311 186318 PRIVMSG #esolangs :14[[07RECT4n=GLE14]]4 10 02https://esolangs.org/w/index.php?diff=166413&oldid=147537 5* 03Yayimhere2(school) 5* (-244) 10/* adding random programs onto eachother to see if it does anything */ < 1761134540 948963 :Everything!~Everythin@46.96.48.125 JOIN #esolangs Everything :Everything < 1761134713 101298 :Yayimhere!~Yayimhere@160.119.235.55 QUIT :Ping timeout: 250 seconds < 1761135565 596460 :dcreager!a9e780c4d1@2a03:6000:1812:100::136b JOIN #esolangs dcreager :Douglas Creager < 1761135569 26590 :cbs!df2953d28a@2a03:6000:1812:100::1451 JOIN #esolangs cbs :cbs < 1761135569 796313 :ursa-major!114efe6c39@2a03:6000:1812:100::11f3 JOIN #esolangs ursa-major :Bailey Bjornstad < 1761135570 889807 :ManDeJan!3da94070ba@user/mandejan JOIN #esolangs ManDeJan :ManDeJan > 1761136490 476139 PRIVMSG #esolangs :14[[07Hello world program in esoteric languages (B-C)14]]4 10 02https://esolangs.org/w/index.php?diff=166414&oldid=158175 5* 03RaiseAfloppaFan3925 5* (+100) 10Added Bussin and Bussin X > 1761136709 977238 PRIVMSG #esolangs :14[[07Hello world program in esoteric languages (T-Z)14]]4 10 02https://esolangs.org/w/index.php?diff=166415&oldid=163368 5* 03RaiseAfloppaFan3925 5* (+102) 10Added Yappacino > 1761136767 854361 PRIVMSG #esolangs :14[[07Hello world program in esoteric languages (T-Z)14]]4 M10 02https://esolangs.org/w/index.php?diff=166416&oldid=166415 5* 03RaiseAfloppaFan3925 5* (+3) 10Fixed the mistake, I'm so stupid > 1761136866 851378 PRIVMSG #esolangs :14[[07Hello world program in esoteric languages (N-S)14]]4 10 02https://esolangs.org/w/index.php?diff=166417&oldid=162760 5* 03RaiseAfloppaFan3925 5* (+81) 10Added Nonstraightforward > 1761137055 56819 PRIVMSG #esolangs :14[[07PythOwO14]]4 10 02https://esolangs.org/w/index.php?diff=166418&oldid=144637 5* 03RaiseAfloppaFan3925 5* (+25) 10PythOwO likely counts as a thematic language, and the main theme is "uwu" or something? How do you name this? < 1761137847 360996 :amby!~ambylastn@host-92-17-37-198.as13285.net JOIN #esolangs amby :realname < 1761137981 101333 :wob_jonas!~wob_jonas@business-37-191-60-209.business.broadband.hu JOIN #esolangs * :[https://web.libera.chat] wob_jonas < 1761138115 958973 :wob_jonas!~wob_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :`python3 -cs='print("`python3 -cs=%r;exec(s)"%s)';exec(s) < 1761138117 431280 :HackEso!~h@techne.zem.fi PRIVMSG #esolangs :​`python3 -cs='print("`python3 -cs=%r;exec(s)"%s)';exec(s) < 1761138150 5959 :wob_jonas!~wob_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :^ exec-quine, based on ais's explanation yesterday < 1761138166 509241 :wob_jonas!~wob_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :Yayimhere: no, the documentation is not clear > 1761138357 572365 PRIVMSG #esolangs :14[[07User:RaiseAfloppaFan392514]]4 10 02https://esolangs.org/w/index.php?diff=166419&oldid=166338 5* 03RaiseAfloppaFan3925 5* (+1276) 10why < 1761138783 11648 :wob_jonas!~wob_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :`perl -eeval for q(print((q(`perl -eeval for q(b))=~s/b/lc/re))) < 1761138784 155202 :HackEso!~h@techne.zem.fi PRIVMSG #esolangs :​`perl -eeval for q(print((q(`perl -eeval for q(b))=~s/b/lc/re))) < 1761138804 95674 :wob_jonas!~wob_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :^ another eval quine < 1761138852 805192 :wob_jonas!~wob_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :`perl -eeval for q(print(q(`perl -eeval for q(b))=~s/b/lc/re)) < 1761138854 448133 :HackEso!~h@techne.zem.fi PRIVMSG #esolangs :​`perl -eeval for q(print(q(`perl -eeval for q(b))=~s/b/lc/re)) < 1761138896 415701 :wob_jonas!~wob_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :`perl -eeval for q(print(q(`perl -eeval for q(b))=~s/b/lc/re)# it's also easy to add a payload to these ) < 1761138897 421916 :HackEso!~h@techne.zem.fi PRIVMSG #esolangs :​`perl -eeval for q(print(q(`perl -eeval for q(b))=~s/b/lc/re)# it's also easy to add a payload to these ) < 1761138935 756525 :wob_jonas!~wob_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :`python3 -cs='print("`python3 -cs=%r;exec(s)"%s)# payload in this one as well ';exec(s) < 1761138937 279212 :HackEso!~h@techne.zem.fi PRIVMSG #esolangs :​`python3 -cs='print("`python3 -cs=%r;exec(s)"%s)# payload in this one as well ';exec(s) < 1761139319 512920 :wob_jonas!~wob_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :`perl -eprintf lc,lc for q(`perl -eprintf lc,lc for q(%s)) < 1761139320 653196 :HackEso!~h@techne.zem.fi PRIVMSG #esolangs :​`perl -eprintf lc,lc for q(`perl -eprintf lc,lc for q(%s)) < 1761140701 693014 :wob_jonas!~wob_jonas@business-37-191-60-209.business.broadband.hu QUIT :Quit: Client closed < 1761140971 95355 :tromp!~textual@2001:1c00:3487:1b00:d987:75c1:5d6f:6cf PRIVMSG #esolangs :hello, Yayimhere < 1761141073 101714 :Yayimhere!~Yayimhere@197.184.123.213 JOIN #esolangs * :[https://web.libera.chat] Yayimhere < 1761141129 732914 :Yayimhere!~Yayimhere@197.184.123.213 PRIVMSG #esolangs :there's this strange difference between newer and older esolangs, where older ones where more thematic, and newer one's are more abstract or conceptual(like, Underload Vs Whitespace) < 1761141132 937450 :Yayimhere!~Yayimhere@197.184.123.213 PRIVMSG #esolangs :I wonder whyy > 1761141304 423765 PRIVMSG #esolangs :14[[07Selt14]]4 10 02https://esolangs.org/w/index.php?diff=166420&oldid=103814 5* 03I am islptng 5* (+36) 10 > 1761141579 273215 PRIVMSG #esolangs :14[[07Hello world program in esoteric languages (N-S)14]]4 10 02https://esolangs.org/w/index.php?diff=166421&oldid=166417 5* 03I am islptng 5* (+313) 10/* Add SLet */ < 1761142369 732855 :tromp!~textual@2001:1c00:3487:1b00:d987:75c1:5d6f:6cf PRIVMSG #esolangs :maybe because it's harder to come up with an original theme < 1761142391 473250 :Yayimhere!~Yayimhere@197.184.123.213 PRIVMSG #esolangs :yea, that tracks, actually < 1761143081 178404 :Yayimhere!~Yayimhere@197.184.123.213 PRIVMSG #esolangs :ok if I was to have like, a null register, just any register with a null, then what would happen, if I were to negate that register? < 1761143242 804264 :tromp!~textual@2001:1c00:3487:1b00:d987:75c1:5d6f:6cf QUIT :Ping timeout: 246 seconds < 1761143527 662111 :Everything!~Everythin@46.96.48.125 QUIT :Read error: Connection reset by peer < 1761143625 764124 :Yayimhere!~Yayimhere@197.184.123.213 QUIT :Quit: Client closed < 1761143705 99567 :Yayimhere!~Yayimhere@197.184.123.213 JOIN #esolangs * :[https://web.libera.chat] Yayimhere > 1761143727 281723 PRIVMSG #esolangs :14[[07=?14]]4 10 02https://esolangs.org/w/index.php?diff=166422&oldid=128527 5* 03Yayimhere2(school) 5* (-103) 10 < 1761143849 176184 :Everything!~Everythin@46.96.48.125 JOIN #esolangs Everything :Everything < 1761144003 899076 :Yayimhere!~Yayimhere@197.184.123.213 PRIVMSG #esolangs :hello everything! < 1761144664 971227 :tromp!~textual@2001:1c00:3487:1b00:cd8f:ea15:2cfa:e4a8 JOIN #esolangs * :Textual User > 1761145180 690582 PRIVMSG #esolangs :14[[07Hello world program in esoteric languages (H-M)14]]4 10 02https://esolangs.org/w/index.php?diff=166423&oldid=165780 5* 03RaiseAfloppaFan3925 5* (+173) 10Added Mango > 1761145747 834873 PRIVMSG #esolangs :14[[07Mango14]]4 10 02https://esolangs.org/w/index.php?diff=166424&oldid=166411 5* 03RaiseAfloppaFan3925 5* (+1153) 10Added progress > 1761145996 923259 PRIVMSG #esolangs :14[[07UnCompetition14]]4 10 02https://esolangs.org/w/index.php?diff=166425&oldid=166406 5* 03Yayimhere2(school) 5* (+9) 10 > 1761146561 664235 PRIVMSG #esolangs :14[[07UnCompetition14]]4 10 02https://esolangs.org/w/index.php?diff=166426&oldid=166425 5* 03Yayimhere2(school) 5* (+10) 10/* Description */ > 1761146624 203403 PRIVMSG #esolangs :14[[07UnCompetition14]]4 10 02https://esolangs.org/w/index.php?diff=166427&oldid=166426 5* 03Yayimhere2(school) 5* (+12) 10/* Description */ < 1761146804 83293 :Yayimhere!~Yayimhere@197.184.123.213 QUIT :Quit: Client closed < 1761146921 366626 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :sorear: I don't really need anything in the upstream repo. If you choose to offer a Nix flake (flake.nix and flake.lock in the root) then I can import from that, but that's really just a fancier version of depending on an upstream git repo. < 1761146960 574931 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :b_jonas: Metamath's parser is hilariously simple: split on spaces, special tokens start with $. ( and ) are not matched, but the comments $( and $) are matched, as well as nesting brackets ${ and $}. < 1761147016 566467 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :There's no encoding of the target logic's grammar. Instead, users have to manually construct rules for each production. > 1761147460 165587 PRIVMSG #esolangs :14[[07UnCompetition14]]4 10 02https://esolangs.org/w/index.php?diff=166428&oldid=166427 5* 03Yayimhere2(school) 5* (+62) 10/* Description */ > 1761147887 142315 PRIVMSG #esolangs :14[[07UnCompetition14]]4 10 02https://esolangs.org/w/index.php?diff=166429&oldid=166428 5* 03Yayimhere2(school) 5* (+273) 10/* Description */ > 1761148020 214137 PRIVMSG #esolangs :14[[07UnCompetition14]]4 10 02https://esolangs.org/w/index.php?diff=166430&oldid=166429 5* 03Yayimhere2(school) 5* (+22) 10 > 1761148382 522282 PRIVMSG #esolangs :14[[07UnCompetition14]]4 10 02https://esolangs.org/w/index.php?diff=166431&oldid=166430 5* 03Yayimhere2(school) 5* (+157) 10/* Description */ > 1761148718 164664 PRIVMSG #esolangs :14[[07UnCompetition14]]4 10 02https://esolangs.org/w/index.php?diff=166432&oldid=166431 5* 03Yayimhere2(school) 5* (+0) 10/* Description */ > 1761149622 321049 PRIVMSG #esolangs :14[[07UnCompetition14]]4 10 02https://esolangs.org/w/index.php?diff=166433&oldid=166432 5* 03Yayimhere2(school) 5* (+413) 10 > 1761149811 585693 PRIVMSG #esolangs :14[[07User talk:Yayimhere14]]4 10 02https://esolangs.org/w/index.php?diff=166434&oldid=155727 5* 03Yayimhere2(school) 5* (+132) 10/* Sorry? */ > 1761149855 122467 PRIVMSG #esolangs :14[[07User:Yayimhere14]]4 10 02https://esolangs.org/w/index.php?diff=166435&oldid=166409 5* 03Yayimhere2(school) 5* (+20) 10 > 1761149904 493172 PRIVMSG #esolangs :14[[07Good writing, bad execution14]]4 10 02https://esolangs.org/w/index.php?diff=166436&oldid=148738 5* 03Yayimhere2(school) 5* (+15) 10 > 1761149927 355922 PRIVMSG #esolangs :14[[07Good writing, bad execution14]]4 10 02https://esolangs.org/w/index.php?diff=166437&oldid=166436 5* 03Yayimhere2(school) 5* (+2) 10/* esolang */ > 1761150015 666667 PRIVMSG #esolangs :14[[07UnCompetition14]]4 10 02https://esolangs.org/w/index.php?diff=166438&oldid=166433 5* 03Yayimhere2(school) 5* (+50) 10 > 1761150185 61185 PRIVMSG #esolangs :14[[07Special:Log/newusers14]]4 create10 02 5* 03Agecaf 5* 10New user account > 1761150202 989301 PRIVMSG #esolangs :14[[07UnCompetition14]]4 10 02https://esolangs.org/w/index.php?diff=166439&oldid=166438 5* 03Yayimhere2(school) 5* (+36) 10/* Description */ > 1761150398 32868 PRIVMSG #esolangs :14[[07Esolang:Introduce yourself14]]4 10 02https://esolangs.org/w/index.php?diff=166440&oldid=166341 5* 03Agecaf 5* (+242) 10/* Introductions */ > 1761150497 685165 PRIVMSG #esolangs :14[[07UnCompetition14]]4 10 02https://esolangs.org/w/index.php?diff=166441&oldid=166439 5* 03Yayimhere2(school) 5* (-19) 10/* Description */ > 1761150725 767929 PRIVMSG #esolangs :14[[07UnCompetition14]]4 10 02https://esolangs.org/w/index.php?diff=166442&oldid=166441 5* 03Yayimhere2(school) 5* (-41) 10/* Description */ < 1761151153 454627 :APic!apic@apic.name PRIVMSG #esolangs :cu < 1761151729 378265 :tromp!~textual@2001:1c00:3487:1b00:cd8f:ea15:2cfa:e4a8 QUIT :Quit: My iMac has gone to sleep. ZZZzzz… < 1761151901 212408 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :Tayimhere: that's because DMM stopped making esolangs, and he was the one who made them thematic > 1761152604 115034 PRIVMSG #esolangs :14[[07UnCompetition14]]4 10 02https://esolangs.org/w/index.php?diff=166443&oldid=166442 5* 03Yayimhere2(school) 5* (+9) 10 < 1761152614 877163 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Also, Homespring. < 1761152805 679138 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :That said, plenty of languages have themes. Monte has vats of objects slowly being turned, unfulfilled and broken promises, pulling ingredients from the freezer to bake muffins, vamping on a riff while waiting for a solo to start, and that's without talking about all of the windowing metaphors common to any TUI or GUI system. > 1761152863 366920 PRIVMSG #esolangs :14[[07User:Yayimhere14]]4 10 02https://esolangs.org/w/index.php?diff=166444&oldid=166435 5* 03Yayimhere2(school) 5* (+22) 10/* esolangs */ < 1761152885 565646 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Those themes and analogies are apparently easier for people to understand than the brute concepts of concurrency, asynchrony, multi-stage compilation, and distributed parallelism respectively. > 1761153039 533248 PRIVMSG #esolangs :14[[07User:Yayimhere14]]4 10 02https://esolangs.org/w/index.php?diff=166445&oldid=166444 5* 03Yayimhere2(school) 5* (+20) 10/* esolangs */ > 1761153092 916020 PRIVMSG #esolangs :14[[07The Sophomores From Tbilsi14]]4 10 02https://esolangs.org/w/index.php?diff=166446&oldid=145475 5* 03Yayimhere2(school) 5* (+0) 10 < 1761153518 552705 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :korvo: sometimes yes, but sometimes the theme actually makes the language harder to understand because it masks familiar concepts under a description with unfamiliar terminology > 1761153752 580274 PRIVMSG #esolangs :14[[0714]]4 10 02https://esolangs.org/w/index.php?diff=166447&oldid=155991 5* 03C++DSUCKER 5* (+0) 10X is not a bound variable, and y is the only bound one. this also makes the code work as intended. < 1761153900 262355 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :b_jonas: Yeah, for sure. I generally try not to come up with new names for old abstractions. I have a different bad habit: if an algorithm is only known by its author, like Lentz's or Welford's algorithms, then I'll just call the abstraction a "lentz" or "welford". The latter's now become a "welf" in my latest codebase. < 1761154075 954839 :tromp!~textual@2001:1c00:3487:1b00:cd8f:ea15:2cfa:e4a8 JOIN #esolangs * :Textual User > 1761154200 822524 PRIVMSG #esolangs :14[[07(,!)14]]4 10 02https://esolangs.org/w/index.php?diff=166448&oldid=135600 5* 03Yayimhere2(school) 5* (-244) 10/* Minor paradox */ > 1761154299 903989 PRIVMSG #esolangs :14[[07Y/14]]4 10 02https://esolangs.org/w/index.php?diff=166449&oldid=130424 5* 03Yayimhere2(school) 5* (+31) 10 < 1761154607 100793 :Yayimhere!~Yayimhere@197.184.123.213 JOIN #esolangs * :[https://web.libera.chat] Yayimhere < 1761154612 42283 :Yayimhere!~Yayimhere@197.184.123.213 PRIVMSG #esolangs :hello, people! < 1761154642 682113 :Yayimhere!~Yayimhere@197.184.123.213 PRIVMSG #esolangs :i have a question to ask you all! > 1761154675 11030 PRIVMSG #esolangs :14[[07User:Yayimhere14]]4 10 02https://esolangs.org/w/index.php?diff=166450&oldid=166445 5* 03Yayimhere2(school) 5* (+229) 10/* esolangs */ < 1761154727 698596 :Yayimhere!~Yayimhere@197.184.123.213 PRIVMSG #esolangs :what is the most common category of languages you make? for me its concurrent language's(which makes no sense to me), and string replacement languages, which makes a lot more sense to me(I like strings) < 1761154919 554576 :ais523!~ais523@user/ais523 JOIN #esolangs ais523 :(this is obviously not my real name) < 1761154929 849053 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :Yayimhere: for me it's mostly counter machines and tag systems < 1761154958 429134 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :Yayimhere: dunno, that depends on where you draw the boundary for what domain-specific thing counts as a "language" and how you count them < 1761154978 977179 :Yayimhere!~Yayimhere@197.184.123.213 PRIVMSG #esolangs :ais523: i see what you mean < 1761154989 722963 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :because those are generally the best sorts of language for proving Turing-completeness with, so I need a lot of them in order to make Turing-completeness proofs easy to find < 1761155042 888531 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :although there are also a few languages which are very similar to tag systems but don't actually count as tag systems because they don't actually have a queue, I'm not sure how to classify those < 1761155043 247837 :Yayimhere!~Yayimhere@197.184.123.213 PRIVMSG #esolangs :b_jonas: tbh whatever you think Is more interesting for generating an answer I guess lol < 1761155072 540331 :Yayimhere!~Yayimhere@197.184.123.213 PRIVMSG #esolangs :ais523: i find your tendency to make languages to prove the TC'ness of other languages quite interesting < 1761155123 537624 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :it's one of the things I'm most interested in, out of esolang-related things (and the other things I'm interested in take much more time) < 1761155134 218262 :Yayimhere!~Yayimhere@197.184.123.213 PRIVMSG #esolangs :the closest ive ever gotten to that is Short Minsky Machine Notation, which barely is anythingh new > 1761155144 311131 PRIVMSG #esolangs :14[[07ThingLangOOP14]]4 10 02https://esolangs.org/w/index.php?diff=166451&oldid=166273 5* 03Rasa8877 5* (+57) 10 < 1761155180 493033 :Yayimhere!~Yayimhere@197.184.123.213 PRIVMSG #esolangs :credit to chuck esoteric tbh lol < 1761155188 876742 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Yayimhere: Most of my languages are actually APIs; they're patterns for calling an object and getting it to behave a certain way. < 1761155206 332959 :Yayimhere!~Yayimhere@197.184.123.213 PRIVMSG #esolangs :korvo: interesting < 1761155208 685259 :Yayimhere!~Yayimhere@197.184.123.213 PRIVMSG #esolangs :lol < 1761155214 737514 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :one of my visions for big esolang-related projects, that I've had for many years now, is writing a program that, for any two esolangs in a large set of esolangs, can compile from one to the other < 1761155227 697384 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Like, where the typical language is initial-coded, I'm usually final-coded. I wrote up how I look at things for the example of Brainfuck in Python 2.7: https://pypy.org/posts/2024/11/guest-post-final-encoding-in-rpython.html < 1761155240 162527 :Yayimhere!~Yayimhere@197.184.123.213 PRIVMSG #esolangs :korvo: I feel like that itself is a language "category" of sorts < 1761155336 247725 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :korvo: my interaction with final encodings is mostly remembering they exist, forgetting how they work, then getting instantly reminded upon seeing an example < 1761155350 147412 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I guess they don't come up often enough for me to hold them in my memory < 1761155351 928827 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Yayimhere: It is emphatically not a language, no. A language has an alphabet of symbols, strings, grammar, etc. The correspondence between initial and final encodings is deep; it turns out that computer science isn't just about languages. < 1761155352 234534 :Yayimhere!~Yayimhere@197.184.123.213 PRIVMSG #esolangs :sadly I need to leave now, but thanks for the short interaction! < 1761155356 297055 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Peace. < 1761155363 912854 :Yayimhere!~Yayimhere@197.184.123.213 PRIVMSG #esolangs :korvo: yea I know < 1761155366 493545 :Yayimhere!~Yayimhere@197.184.123.213 PRIVMSG #esolangs ::] > 1761155404 496805 PRIVMSG #esolangs :14[[07User talk:ChuckEsoteric0814]]4 10 02https://esolangs.org/w/index.php?diff=166452&oldid=165057 5* 03Yayimhere2(school) 5* (+218) 10 < 1761155412 440404 :Yayimhere!~Yayimhere@197.184.123.213 PRIVMSG #esolangs :but bye! < 1761155416 467647 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :…and now I'm thinking about parser visitors, which are quite similar to final encodings (but, I think, substantially different in practice) < 1761155417 896812 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :bye < 1761155419 33144 :Yayimhere!~Yayimhere@197.184.123.213 QUIT :Quit: Client closed < 1761155424 341697 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :ais523: They come up for me in the context of fast interpreters and code reuse. The difficult ergonomics are why they're not more common, I think. < 1761155483 515126 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Coming up in Python, I didn't understand why visitors were weird at first. My types didn't have to line up, or they only had to line up in the fancy dependent way rather than at first order, so visitors and walkers seemed like the same thing phrased two ways. > 1761155487 881110 PRIVMSG #esolangs :14[[07Short Minsky Machine Notation14]]4 10 02https://esolangs.org/w/index.php?diff=166453&oldid=165037 5* 03Yayimhere2(school) 5* (-9) 10Unstubbed, I would say it is detailed enough, for what it is < 1761155531 571590 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :there's probably more than one way to do a parser visitor < 1761155555 530530 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :but the one I've seen was, effectively, equivalent to representing as XML and then sending all the start-tags and end-tags individually < 1761155564 839894 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Paraphrasing glyph, Python doesn't really have much of a different between f(x) and x.apply(f) besides who gets execution control. But paraphrasing Mark Miller and Allen Short, whoever is applying f onto x likely has an opinion about who should get that control, particularly when f and x are not trusted code. < 1761155580 490646 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :which is complex from a typing point of view because there's no static guarantee that it's correctly nested < 1761155632 645574 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :a final encoding feels like a type-safe version of that < 1761155742 360736 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :…and now I just realised that yacc generates what is in effect a final encoding < 1761155746 107988 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Yeah! I actually first discovered them in a similar context; I was working with a Python library that could either return a synchronous value *or* an async handle, and I eventually arranged the library so that it was agnostic as to whether values were sync. < 1761155776 568565 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :and the semantic actions are normally used to convert that into an initial encoding, but they can do other things too < 1761155780 147967 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Yep! Any time there is an interface of behaviors, there is a final-encoded algebra describing the effects of that interface. < 1761155977 438062 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :ah no, I just realised, there is a difference < 1761156002 969668 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :or, hmm < 1761156006 109485 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :maybe not? < 1761156009 356211 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I was wondering about evaluation order < 1761156048 560834 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :but final encodings do allow a pure call-by-value approach (which is what yacc gives you) < 1761156111 322822 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Right. Evaluation order only matters to the extent that one violates the encapsulation of the encoding; the caller isn't supposed to know anything about intermediate values. < 1761156132 797881 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :this makes it hard to generate visitors from them because you can't generate the list of events "start x, start y, end y, end x" from a final encoding with methods for x and y when using pure call-by-value, unless you convert to an initial encoding as a temporary < 1761156268 595379 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Right, you can only generate the applicative trees on the final algebra. Since the starting and ending actions are part of the metatheory, they aren't visible to the encoding. < 1761156326 830264 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :now I'm thinking about performance < 1761156352 139053 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :suppose I want to write a program whose input is source code in some language, and whose output is the code's parse tree in XML > 1761156360 417411 PRIVMSG #esolangs :14[[07F calculus14]]4 10 02https://esolangs.org/w/index.php?diff=166454&oldid=166317 5* 03C++DSUCKER 5* (+62) 10 < 1761156361 720839 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :with a visitor, this is trivial to write < 1761156368 276610 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :with an initial encoding, this is just a recursive tree walk > 1761156381 184608 PRIVMSG #esolangs :14[[07F calculus14]]4 M10 02https://esolangs.org/w/index.php?diff=166455&oldid=166454 5* 03C++DSUCKER 5* (-11) 10 < 1761156382 179716 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :with a final encoding, there's an obvious way to write it but it has O(n²) performance > 1761156395 348401 PRIVMSG #esolangs :14[[07F calculus14]]4 10 02https://esolangs.org/w/index.php?diff=166456&oldid=166455 5* 03C++DSUCKER 5* (+1) 10 < 1761156468 286854 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :What's the big difference? In e.g. Python, we could imagine that an initial emitter for XML is like xmlelement.MakeElement(tag, attrs) while a final emitter is like lambda xml: xml.makeElement(tag, attrs) < 1761156495 638357 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :korvo: I mean, outputting the XML as text < 1761156500 970295 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :with an initial encoding you can stream it < 1761156524 297464 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :with a final encoding you're appending and prepending, which is slow to do repeatedly using most string types < 1761156618 894744 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Sorry, I think I'm too far up the mountain. I'll try to climb down carefully. If the input is a tree and the output is a tree then the transformation is a hylomorphism, and we can decompose that into a katamorphism and anamorphism: we walk the input tree and build an intermediate structure in memory, we consume the intermediate structure to emit pieces of output tree. < 1761156740 390540 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :The initial encoding just looks like a heap-allocated AST, while the final encoding looks like a bunch of stack records and calls. > 1761156960 273822 PRIVMSG #esolangs :14[[07Adofaiscript14]]4 10 02https://esolangs.org/w/index.php?diff=166457&oldid=166365 5* 03 5* (+533) 10/* Pattern-signal */ Added more patterns > 1761157050 319471 PRIVMSG #esolangs :14[[07User:14]]4 10 02https://esolangs.org/w/index.php?diff=166458&oldid=147377 5* 03 5* (+98) 10 < 1761157141 425497 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :ais523: Oh! I see what you're saying. You're saying that *my specific technique* in https://github.com/rpypkgs/rpypkgs/blob/6aebcb5b16de8d6572a5d263647dfd0b334dcc0c/bf/bf.py#L39-L47 is quadratic-time due to strings. Yeah, it would be if RPython didn't optimize that common case. When I do this in Cammy, I pass a list instead, using the string-builder pattern; RPython also has a StringBuilder helper. < 1761157238 437717 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Or, if I wanted to be less pure, I could write e.g. def join(self, l, r): print l; print r;; def loop(self, bfs): print '['; print bfs; print ']' < 1761157271 228798 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Appending to my buffer is quadratic. Appending to Somebody Else's Buffer is linear. Our machine models are cracked~ < 1761157327 942915 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :korvo: not just you, other people have made that mistake too < 1761157417 335104 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :e.g. the «def join(self, l, r): print l; print r;; def loop(self, bfs): print '['; print bfs; print ']'» version is, when call-by-value, either quadratic or doesn't work (because the loop body either has to be printed before the loop itself, or has to be made into a string so that it can be printed after the [ of the starting loop) < 1761157453 97726 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :to make it work you have to create an initial encoding as a temporary < 1761157468 248414 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :ais523: you can do it in linear time though, it's just a big ugly process in two or three passes. first you create a tree of string snippets that you want to concatenate, creating a tree node instead of catenating the strings. then you do iterate on the leaves of the tree to make a flat list of those strings, then you join the strings in that list. this last sentence can be either one or two pass. < 1761157501 355389 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :b_jonas: oh yes, but that's basically the initial-encoding-as-temporary approach < 1761157511 524399 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :probably < 1761157542 90204 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :my usual way to do it is to use reverse-Polish as an intermediary, which a final encoding can generate efficiently without actually returning any values > 1761157613 81284 PRIVMSG #esolangs :14[[07Crypten14]]4 N10 02https://esolangs.org/w/index.php?oldid=166459 5* 03 5* (+853) 10Started the page > 1761157667 647506 PRIVMSG #esolangs :14[[07Crypten14]]4 10 02https://esolangs.org/w/index.php?diff=166460&oldid=166459 5* 03 5* (+72) 10 < 1761157810 367097 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :ais523: That precise issue is fixed with an intermediate lambda-binding. No flavor of Python will let me do it easily, though; it will always look like an initial encoding because there's an explicit allocation. In Scheme the lambda would just go on the stack with all the other activated lambdas. < 1761157834 6139 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Oleg has words about this; it bites him in SML too. < 1761157861 738038 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :yes, you can return closures/thunks and make it work that way < 1761157889 902410 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :yeha, that works too, it's just not my usual style < 1761157893 365382 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :(although the implicit allocation that that needs still bothers me, it's O(n) now but the constant factors are bad) < 1761157923 474220 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Also, I'm not some sort of purist. Cammy's "kamis" solver uses plain strings as initial encoding and is constantly building new strings by concatenation; it turns out to be easier to let genes be strings and do recombination with string operations than to try to preserve type information and do well-typed recombination. > 1761157980 914587 PRIVMSG #esolangs :14[[07EarScript14]]4 N10 02https://esolangs.org/w/index.php?oldid=166461 5* 03Agecaf 5* (+12957) 10EarScript is a programming language focused on the manipulation of integers. < 1761158054 385074 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :now I'm wondering what the best practical performance you can get for a model where you can create immutable strings, and concatenate them without losing access to the original < 1761158087 508566 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :or, indeed, just start with a set of strings representing characters, and concatenate them < 1761158097 439649 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :I mean general closures are nice to have, but in practical non-esoteric code, almost all the times when I write a closure, it's just the kind that refers to still active stack frames and thus don't survive the context that created them < 1761158099 682807 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :there is an obvious O(1) approach but the constant factors are terrible < 1761158100 948871 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Rope, O(n log n), don't overthink it. RPython folks did a bunch of experiments and plain old rope ended up being the best by far. < 1761158125 275398 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :it maybe that O(n) or O(n log n) approaches are better in practice < 1761158152 571342 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :b_jonas: Yeah. And in final encodings it's especially annoying because I really just want a reader-monad transformation that attaches some sort of context, or a state-monad transformation that will thread a state through the control flow, for precisely the reasons ais523 has given. > 1761158160 883107 PRIVMSG #esolangs :14[[07Language list14]]4 10 02https://esolangs.org/w/index.php?diff=166462&oldid=166312 5* 03Agecaf 5* (+16) 10 < 1761158251 482244 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :(There's also a writer-monad transformation that collects results into a monoid, but that just kicks the can: how do we have an efficient list? Difference lists are what we've been talking about, and they require lots of heap allocations; so much for sticking to stack!) < 1761158358 366835 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :as for the string concatenation thing, when the concatenated string is long then I most likely don't actually construct the string, rather I print it streaming from the structured representation, and it's the structured representation that contains all the chunks of the string that I have in memory. I admit I haven't written a fully recursive one of these for a long time (unless you count < 1761158364 376247 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :read-modify-write with an existing XML or JSON library), only ones with limited depth, but I think this applies to recursive too. < 1761158471 923502 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :There is the related problem of making efficient text transducers, which are generic functions with type (String -> String) -> (String -> String). Most of the standard list- and string-manipulation tools are liftable to transducers, so it'd be nice to have a unifying theory of them, but they seem to be quite opaque in general. < 1761158503 405769 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :oh right, there's an alternative approach which involves running the parser twice, once to work out where in the output the output generated by each nonterminal of input goes, then once to write it < 1761158513 328348 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :this is probably slower but it's interesting that it exists < 1761158524 445796 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :it might be faster if the allocator is slow > 1761158699 121994 PRIVMSG #esolangs :14[[07EarScript14]]4 M10 02https://esolangs.org/w/index.php?diff=166463&oldid=166461 5* 03Agecaf 5* (+184) 10Added categories < 1761159881 838998 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :hehe, I actually had a program (now unmaintained) that ran the same parser twice on the same input, but not for the reason that you mention, because the file that it parses is easier to parse with no deep recursion and prefix notation everywhere < 1761159890 287030 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :s/and prefix/and with prefix/ < 1761159930 459246 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :(that's because I chose the format of the file parsed and I wrote the program that writes it, so obviously I made it easy to parse) > 1761159956 491525 PRIVMSG #esolangs :14[[07EarScript14]]4 10 02https://esolangs.org/w/index.php?diff=166464&oldid=166463 5* 03Agecaf 5* (+0) 10Corrected a to b > 1761160052 452456 PRIVMSG #esolangs :14[[07EarScript14]]4 M10 02https://esolangs.org/w/index.php?diff=166465&oldid=166464 5* 03Agecaf 5* (-1) 10/* Description */ > 1761160763 963701 PRIVMSG #esolangs :14[[07User:Ivava14]]4 10 02https://esolangs.org/w/index.php?diff=166466&oldid=166332 5* 03Ivava 5* (+14) 10/* Esolangs list */ < 1761162259 416913 :Everything!~Everythin@46.96.48.125 QUIT :Ping timeout: 255 seconds < 1761164835 114158 :vista_user!~vista_use@72.red-88-1-117.dynamicip.rima-tde.net JOIN #esolangs * :[https://web.libera.chat] vista_user < 1761164842 679712 :vista_user!~vista_use@72.red-88-1-117.dynamicip.rima-tde.net CHGHOST ~vista_use :user/DOS-User:11249 < 1761164960 336791 :vista_user!~vista_use@user/DOS-User:11249 QUIT :Remote host closed the connection > 1761165828 631007 PRIVMSG #esolangs :14[[07Monte14]]4 10 02https://esolangs.org/w/index.php?diff=166467&oldid=140192 5* 03Corbin 5* (+154) 10/* Running Monte */ I fixed the flake's compatibility with nix-run and now the REPL can be directly loaded from The Cloud. < 1761169280 895906 :zzo38!~zzo38@host-24-207-46-238.public.eastlink.ca PRIVMSG #esolangs :Now I made ASN.1 DER parser in PostScript, too. (Encoding is not implemented yet) < 1761170213 549480 :tromp!~textual@2001:1c00:3487:1b00:cd8f:ea15:2cfa:e4a8 QUIT :Quit: My iMac has gone to sleep. ZZZzzz… < 1761170490 319077 :zzo38!~zzo38@host-24-207-46-238.public.eastlink.ca PRIVMSG #esolangs :(I also wrote JSON parser in PostScript, but my opinion is that DER is generally better format than JSON, even though many people prefer to use JSON or one of its variants (which help a little bit but not much, and sometimes add additional things that are worse).) < 1761170906 954331 :Sgeo!~Sgeo@user/sgeo JOIN #esolangs Sgeo :realname