> 1744502652 368619 PRIVMSG #esolangs :14[[07User:PrySigneToFry/Silicon dioxide in a polypropylene box/Chess between HCr0 and PSTF14]]4 10 02https://esolangs.org/w/index.php?diff=155753&oldid=155715 5* 03PrySigneToFry 5* (+47) 10
< 1744503079 119323 :zzo38!~zzo38@host-24-207-52-143.public.eastlink.ca PRIVMSG #esolangs :Do you know where is documentation for adding the new locales and writing your own code to handle this?
< 1744503190 696223 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :zzo38: I don't know, you could try to ask on #glibc
< 1744503263 954170 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :There used to be a page on the freedesktop.org wiki but I can't find it. https://docs.translatehouse.org/projects/localization-guide/en/latest/guide/locales_x11.html looks like it has some of the necessary steps.
< 1744503450 514746 :zzo38!~zzo38@host-24-207-52-143.public.eastlink.ca PRIVMSG #esolangs :I suppose glibc is also relevant because setlocale will have to accept it too
> 1744503611 427765 PRIVMSG #esolangs :14[[07Tskastic/Command Table14]]4 10 02https://esolangs.org/w/index.php?diff=155754&oldid=155652 5* 03PrySigneToFry 5* (+167) 10
< 1744504061 426057 :zzo38!~zzo38@host-24-207-52-143.public.eastlink.ca PRIVMSG #esolangs :I found some information about glibc locales. However, it seems to require Unicode for some purposes, so I don't know how to make it work without (or how to implement stateful encodings). However, I only need the locale for Xlib, so as long as setlocale function accepts it even if it cannot otherwise do anything with it, might be acceptable. (There are other problems with glibc and POSIX locales too anyways)
> 1744504090 413789 PRIVMSG #esolangs :14[[07BitChanger Busy beaver/Proof14]]4 10 02https://esolangs.org/w/index.php?diff=155755&oldid=155748 5* 03C++DSUCKER 5* (+348) 10
< 1744504101 403004 :zzo38!~zzo38@host-24-207-52-143.public.eastlink.ca PRIVMSG #esolangs :(For one thing, I think many of the things they put in there don't belong there anyways)
< 1744504442 655685 :zzo38!~zzo38@host-24-207-52-143.public.eastlink.ca PRIVMSG #esolangs :But, that isn't my concern right now; I wanted to know how to work it with Xlib.
< 1744504492 22862 :lisbeths!uid135845@id-135845.lymington.irccloud.com JOIN #esolangs lisbeths :lisbeths
< 1744504885 457819 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :lisbeths: I stubbed two articles on low-level parsing machines designed for meta, LPeg and META II. The latter also has a WP article, if you'd like more examples.
< 1744504920 674296 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :I also was considering OMeta or Ohm, as well as (the UNIX flavor of) TMG, but I don't think that those are likely to be useful for you.
< 1744504961 158738 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :OMeta is meant to be hosted as a DSL inside a fairly rich ALGOL derivative. Ohm is slow and IMO a dead end due to not being able to leave ECMAScript.
< 1744504962 154930 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :zzo38: I did't know Xlib was involved, I thought locales were handled through libc only
< 1744504972 450597 :lisbeths!uid135845@id-135845.lymington.irccloud.com PRIVMSG #esolangs :I think I am pushing up to the limits of what a high level assembly language that does not compiler down to the machine code could be
< 1744505022 845113 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :TMG is interesting, but ultimately it's not a line of research which allows for the meta-language to vary with the needs of compiler authors. If you like it, look at its offspring, particularly the Bison/YACC lineage.
< 1744505061 477748 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :What are those limits?
< 1744505064 44572 :lisbeths!uid135845@id-135845.lymington.irccloud.com PRIVMSG #esolangs :I was saddened to find that posix doesn't come with yacc
< 1744505092 103598 :lisbeths!uid135845@id-135845.lymington.irccloud.com PRIVMSG #esolangs :well like I don't think I can make my assembler language more performant without translating to machine code and then executing the machine code
< 1744505151 8657 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :You could likely translate to a *virtual* machine, which is a lot easier than native JIT if you're limiting yourself to C.
< 1744505169 61170 :lisbeths!uid135845@id-135845.lymington.irccloud.com PRIVMSG #esolangs :I think my program is a virtual machine
< 1744505791 527176 :zzo38!~zzo38@host-24-207-52-143.public.eastlink.ca PRIVMSG #esolangs :Xlib has its own locale handling but uses the locale set by libc, which means I think both are required
> 1744505920 268153 PRIVMSG #esolangs :14[[07User talk:MihaiEso14]]4 10 02https://esolangs.org/w/index.php?diff=155756&oldid=154088 5* 03PrySigneToFry 5* (+1034) 10/* Make it even scarier !!!! */ new section
> 1744507658 735619 PRIVMSG #esolangs :14[[07Tskastic/Command Table14]]4 10 02https://esolangs.org/w/index.php?diff=155757&oldid=155754 5* 03PrySigneToFry 5* (+964) 10
> 1744508102 5823 PRIVMSG #esolangs :14[[07User talk:Hotcrystal014]]4 10 02https://esolangs.org/w/index.php?diff=155758&oldid=155691 5* 03PrySigneToFry 5* (+42) 10
< 1744509445 982339 :zzo38!~zzo38@host-24-207-52-143.public.eastlink.ca PRIVMSG #esolangs :It seems that one thing I will need to do is to make that setlocale(LC_CTYPE,0) will be able to return the locale name that I want if that locale is set. However, I can't set a locale unless libc allows it (even if the locale is otherwise empty; glibc seems to require locales to be Unicode and in this case I want to create non-Unicode locales, but it might not matter if the locale doesn't actually do anything).
< 1744509555 597371 :zzo38!~zzo38@host-24-207-52-143.public.eastlink.ca PRIVMSG #esolangs :It seems that, on my computer, it accepts the locales called "C", "POSIX" (which gets converted to "C"), "en_US.UTF-8", "en_CA", "en_CA.UTF-8", and "en_CA.ISO-8859-1"; nothing else I tried works.
< 1744509667 696954 :zzo38!~zzo38@host-24-207-52-143.public.eastlink.ca PRIVMSG #esolangs :(I don't actually need any of those other than the "C" locale, although I want to add another one in order that the setlocale function allows it to be selected (and will return the name I have defined for it rather than changing it to a different one), even if the new locale has no meaning otherwise.)
< 1744509711 66532 :zzo38!~zzo38@host-24-207-52-143.public.eastlink.ca PRIVMSG #esolangs :(Also, I think I don't need the new locale to work with any category other than LC_CTYPE.)
< 1744509903 481257 :op_4!~tslil@2a01:4f8:c0c:7952::1 QUIT :Remote host closed the connection
< 1744509933 102982 :op_4!~tslil@user/op-4/x-9116473 JOIN #esolangs op_4 :op_4
> 1744510763 637113 PRIVMSG #esolangs :14[[0714]]4 N10 02https://esolangs.org/w/index.php?oldid=155759 5* 03PrySigneToFry 5* (+7) 10Created page with "{{WIP}}"
> 1744510957 553458 PRIVMSG #esolangs :14[[07Talk:14]]4 N10 02https://esolangs.org/w/index.php?oldid=155760 5* 03PrySigneToFry 5* (+1175) 10Created page with "Here is the forum of this langauge. = Name = I also used AI, and DeepSeek-R1 gives me the name "". Is that name good? Also, DeepSeek said that Korean are used for stack-operation and Japanese(especially Katakana) are used for function define, and Chinese are contr
> 1744510996 21769 PRIVMSG #esolangs :14[[07User talk:Hotcrystal014]]4 10 02https://esolangs.org/w/index.php?diff=155761&oldid=155758 5* 03PrySigneToFry 5* (+39) 10
< 1744511333 960705 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :I'm doing one of those things where I listen to a greybeard interview and summarize the findings. Hopefully folks will let me know if they want transcriptions?
> 1744511802 90379 PRIVMSG #esolangs :14[[07Tmg14]]4 N10 02https://esolangs.org/w/index.php?oldid=155762 5* 03Corbin 5* (+2241) 10Stub an important historical language.
> 1744511865 486093 PRIVMSG #esolangs :14[[07META II14]]4 M10 02https://esolangs.org/w/index.php?diff=155763&oldid=155734 5* 03Corbin 5* (+21) 10One of two influences on one of Knuth's metacompilers.
< 1744512087 540434 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :lisbeths: ^^ Stubbed Tmg. It could be what you're looking for; it's a very powerful formalism. It does require a fair bit of RAM and was eventually outcompeted by the YACC approach which supports fewer grammars but is much smaller and faster.
< 1744513649 653572 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Somebody talk me out of CHR(META II). It sounds like a lot of work but also *very* funny.
> 1744519617 589471 PRIVMSG #esolangs :14[[0714]]4 10 02https://esolangs.org/w/index.php?diff=155764&oldid=155759 5* 03PrySigneToFry 5* (+707) 10
< 1744520416 349186 :zzo38!~zzo38@host-24-207-52-143.public.eastlink.ca PRIVMSG #esolangs :Idea of esolangs: programming language that is made of only characters that are not in Unicode (and possibly that are not in any other character set either, but that is even more difficult)
< 1744520560 915784 :amadaluzia!~amadaluzi@user/amadaluzia QUIT :Ping timeout: 268 seconds
> 1744521087 996838 PRIVMSG #esolangs :14[[07Talk:14]]4 10 02https://esolangs.org/w/index.php?diff=155765&oldid=155760 5* 03I am islptng 5* (+909) 10
> 1744521585 195998 PRIVMSG #esolangs :14[[07Talk:257-wrap brainfuck14]]4 10 02https://esolangs.org/w/index.php?diff=155766&oldid=155335 5* 03Tpaefawzen 5* (+236) 10/* Why the 3rd difference? */ Replied
> 1744521700 500467 PRIVMSG #esolangs :14[[07Talk:14]]4 10 02https://esolangs.org/w/index.php?diff=155767&oldid=155765 5* 03I am islptng 5* (+685) 10
> 1744521913 850520 PRIVMSG #esolangs :14[[07Talk:14]]4 10 02https://esolangs.org/w/index.php?diff=155768&oldid=155767 5* 03I am islptng 5* (+937) 10
< 1744522113 985184 :amadaluzia!~amadaluzi@user/amadaluzia JOIN #esolangs amadaluzia :Artur Manuel
> 1744522233 575718 PRIVMSG #esolangs :14[[07Talk:14]]4 10 02https://esolangs.org/w/index.php?diff=155769&oldid=155768 5* 03I am islptng 5* (+87) 10
< 1744522439 951193 :amadaluzia!~amadaluzi@user/amadaluzia QUIT :Ping timeout: 260 seconds
< 1744522857 616717 :craigo!~craigo@user/craigo QUIT :Quit: Leaving
> 1744523409 125326 PRIVMSG #esolangs :14[[07User:PrySigneToFry14]]4 10 02https://esolangs.org/w/index.php?diff=155770&oldid=155635 5* 03PrySigneToFry 5* (+578) 10
> 1744524626 841161 PRIVMSG #esolangs :14[[07List of ideas14]]4 10 02https://esolangs.org/w/index.php?diff=155771&oldid=155675 5* 03Zzo38 5* (+165) 10Programming language that only uses characters that are not in Unicode (alternatively, only uses characters that are not in any other character set than its own).
< 1744526228 618607 :lisbeths!uid135845@id-135845.lymington.irccloud.com QUIT :Quit: Connection closed for inactivity
< 1744528758 890170 :Lord_of_Life!~Lord@user/lord-of-life/x-2819915 QUIT :Ping timeout: 252 seconds
< 1744528795 494748 :Lord_of_Life!~Lord@user/lord-of-life/x-2819915 JOIN #esolangs Lord_of_Life :Lord
> 1744528876 674457 PRIVMSG #esolangs :14[[07General blindfolded arithmetic14]]4 10 02https://esolangs.org/w/index.php?diff=155772&oldid=154719 5* 03Stkptr 5* (+2493) 10
> 1744529408 614244 PRIVMSG #esolangs :14[[07User:PkmnQ/common.css14]]4 10 02https://esolangs.org/w/index.php?diff=155773&oldid=155730 5* 03PkmnQ 5* (+31) 10Similar but different font
< 1744530907 287356 :APic!apic@apic.name PRIVMSG #esolangs :Hi
> 1744531288 722254 PRIVMSG #esolangs :14[[0714]]4 10 02https://esolangs.org/w/index.php?diff=155774&oldid=155764 5* 03PrySigneToFry 5* (+156) 10
< 1744532404 428679 :zzo38!~zzo38@host-24-207-52-143.public.eastlink.ca QUIT :Ping timeout: 252 seconds
> 1744532615 230070 PRIVMSG #esolangs :14[[0714]]4 10 02https://esolangs.org/w/index.php?diff=155775&oldid=155774 5* 03PrySigneToFry 5* (+184) 10
> 1744533296 324685 PRIVMSG #esolangs :14[[07Talk:14]]4 10 02https://esolangs.org/w/index.php?diff=155776&oldid=155769 5* 03I am islptng 5* (+671) 10
< 1744533680 521251 :Noisytoot!~noisytoot@user/meow/Noisytoot QUIT :Excess Flood
< 1744533706 380435 :Noisytoot!~noisytoot@user/meow/Noisytoot JOIN #esolangs Noisytoot :Ron (they/them)
< 1744534244 83177 :lisbeths!uid135845@id-135845.lymington.irccloud.com JOIN #esolangs lisbeths :lisbeths
> 1744534659 147855 PRIVMSG #esolangs :14[[07User:RixTheTyrunt14]]4 10 02https://esolangs.org/w/index.php?diff=155777&oldid=107040 5* 03RixTheTyrunt 5* (+15887) 10
> 1744534998 358930 PRIVMSG #esolangs :14[[07BitChanger Busy beaver/Proof14]]4 10 02https://esolangs.org/w/index.php?diff=155778&oldid=155755 5* 03C++DSUCKER 5* (+435) 10
> 1744535239 345287 PRIVMSG #esolangs :14[[07Kolakoski sequence14]]4 10 02https://esolangs.org/w/index.php?diff=155779&oldid=152106 5* 03PkmnQ 5* (+848) 10finally got around to the [[Minsky machine]] implementation
> 1744539844 811035 PRIVMSG #esolangs :14[[07User:RixTheTyrunt14]]4 10 02https://esolangs.org/w/index.php?diff=155780&oldid=155777 5* 03RixTheTyrunt 5* (+68) 10
> 1744539897 526742 PRIVMSG #esolangs :14[[07Special:Log/newusers14]]4 create10 02 5* 03Junkshipp 5* 10New user account
< 1744540060 786319 :Sgeo!~Sgeo@user/sgeo QUIT :Read error: Connection reset by peer
> 1744540085 418892 PRIVMSG #esolangs :14[[07Esolang:Introduce yourself14]]4 10 02https://esolangs.org/w/index.php?diff=155781&oldid=155728 5* 03Junkshipp 5* (+155) 10/* Introductions */
> 1744541890 78244 PRIVMSG #esolangs :14[[07CJKGolfer14]]4 10 02https://esolangs.org/w/index.php?diff=155782&oldid=154048 5* 03PrySigneToFry 5* (+0) 10
> 1744541955 457701 PRIVMSG #esolangs :14[[0714]]4 10 02https://esolangs.org/w/index.php?diff=155783&oldid=155775 5* 03PrySigneToFry 5* (+2185) 10
> 1744543251 692767 PRIVMSG #esolangs :14[[07Empty Program14]]4 10 02https://esolangs.org/w/index.php?diff=155784&oldid=152385 5* 03Ractangle 5* (+4) 10/* Brainfuck, JS, Python, Lua and many other languages */
> 1744543371 31026 PRIVMSG #esolangs :14[[07Empty Program14]]4 10 02https://esolangs.org/w/index.php?diff=155785&oldid=155784 5* 03Ractangle 5* (-238) 10/* Scratch(text), Kitten3(text), Kitten4(text) */ technicaly a null program is also correct since it does absolutely nothing
> 1744543431 283695 PRIVMSG #esolangs :14[[07User:Ractangle/common.css14]]4 10 02https://esolangs.org/w/index.php?diff=155786&oldid=155737 5* 03Ractangle 5* (-132) 10
> 1744543466 883422 PRIVMSG #esolangs :14[[07User:Ractangle/common.css14]]4 10 02https://esolangs.org/w/index.php?diff=155787&oldid=155786 5* 03Ractangle 5* (-2) 10
< 1744548138 180215 :Lord_of_Life!~Lord@user/lord-of-life/x-2819915 QUIT :Excess Flood
< 1744548197 373102 :Lord_of_Life!~Lord@user/lord-of-life/x-2819915 JOIN #esolangs Lord_of_Life :Lord
> 1744548489 323376 PRIVMSG #esolangs :14[[07Special:Log/upload14]]4 upload10 02 5* 03Joachim 5* 10uploaded "[[02File:UPLHelloWorld.gif10]]": A screen capture showing the execution of an Hello World program in UPL.
> 1744548701 55550 PRIVMSG #esolangs :14[[07Undyne Programming Language14]]4 10 02https://esolangs.org/w/index.php?diff=155789&oldid=155562 5* 03Joachim 5* (+28) 10
< 1744549284 855497 :leah2!~leah@vuxu.org QUIT :Ping timeout: 272 seconds
< 1744550541 974675 :leah2!~leah@vuxu.org JOIN #esolangs leah2 :Leah Neukirchen
< 1744551023 556304 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Thinking about Futamura projections and specializers. A syntax-directed compilation, as a program, could represent a morphism in a category of compilers. But the implementation seems hard given the available metacompilers.
< 1744551060 598757 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Like, in META II or Tmg, it's not hard to imagine an identity compiler for a given syntax; each rule contains actions which pretty-print itself.
< 1744551180 443501 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :In META II, for each terminal like `.id`, there would be a following quine, like `.id .out(*)`, and similarly for each literal like `'/'` a quine like `'/' .out('/')`.
< 1744551203 430407 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :META II has whitespace issues which have known fixes. Tmg's good to go.
< 1744551251 225196 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :But that's the easy part. More difficult is composition; given two syntax-directed compilers where one can feed into the other, how can we *compute* the composite compiler?
< 1744551316 275628 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Even given Tmg's relatively nice algebra, it seems like this could only be done by a Turing-complete simulation of the second compiler in terms of the first compiler. It seems like it would be messy and require a lot of partial-evaluation trickery.
< 1744551640 576173 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :...So last night I dreamed of how to take a product of two compilers. And one of the things I imagined was that there could be a natural curry.
< 1744551699 960545 :leah2!~leah@vuxu.org QUIT :Ping timeout: 260 seconds
< 1744551873 794357 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Like, suppose I want to compose two META II programs, one from language X to Y and one from Y to Z. Instead of somehow simulating that second compiler in terms of the first, maybe we could recompile the first one into a language that parses X and returns instructions for parsing Y in terms of Y.
< 1744551899 204451 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :And this new curried compiler, when run on a compiler from Y to Z, produces the desired final product from X to Z.
> 1744551917 804704 PRIVMSG #esolangs :14[[07Special:Log/upload14]]4 upload10 02 5* 03Joachim 5* 10uploaded "[[02File:UPLLogo.png10]]": The logo of UPL.
> 1744552548 907819 PRIVMSG #esolangs :14[[07Undyne Programming Language14]]4 10 02https://esolangs.org/w/index.php?diff=155791&oldid=155789 5* 03Joachim 5* (+247) 10
< 1744552568 240219 :leah2!~leah@vuxu.org JOIN #esolangs leah2 :Leah Neukirchen
> 1744552761 42072 PRIVMSG #esolangs :14[[07Undyne Programming Language14]]4 M10 02https://esolangs.org/w/index.php?diff=155792&oldid=155791 5* 03Joachim 5* (+42) 10Had deleted categories by error
> 1744553490 17219 PRIVMSG #esolangs :14[[07Stackowey14]]4 10 02https://esolangs.org/w/index.php?diff=155793&oldid=155719 5* 03Lampe2020 5* (+89) 10/* Syntax */ Add "prick" command
< 1744553873 767558 :ais523!~ais523@user/ais523 JOIN #esolangs ais523 :(this is obviously not my real name)
< 1744554313 726629 :Melvar!~melvar@dslb-084-063-063-254.084.063.pools.vodafone-ip.de QUIT :Quit: WeeChat 4.5.2
> 1744554727 390138 PRIVMSG #esolangs :14[[07Try to Take14]]4 N10 02https://esolangs.org/w/index.php?oldid=155794 5* 03Junkshipp 5* (+2496) 10Created page with "THIS PAGE IS A WORK IN PROGRESS AND I HAVE THUS NOT ADDED CATEGORIES YET ==Introduction== Try to Take is a language capable of expressing different kinds of programs, including all Turing machines. It does this using a single command, a single constant (the numb
> 1744554818 626918 PRIVMSG #esolangs :14[[07Try to Take14]]4 10 02https://esolangs.org/w/index.php?diff=155795&oldid=155794 5* 03Junkshipp 5* (+1) 10
> 1744554864 150686 PRIVMSG #esolangs :14[[07Try to Take14]]4 10 02https://esolangs.org/w/index.php?diff=155796&oldid=155795 5* 03Junkshipp 5* (+6) 10
> 1744555261 610548 PRIVMSG #esolangs :14[[07Onechar14]]4 M10 02https://esolangs.org/w/index.php?diff=155797&oldid=151472 5* 03Cycwin 5* (+39) 10/* Some simple programs(?) */
> 1744555593 147419 PRIVMSG #esolangs :14[[07Onechar14]]4 M10 02https://esolangs.org/w/index.php?diff=155798&oldid=155797 5* 03Cycwin 5* (+4) 10/* The Syntax */
> 1744555792 107415 PRIVMSG #esolangs :14[[07HAPPA14]]4 M10 02https://esolangs.org/w/index.php?diff=155799&oldid=155752 5* 03RixTheTyrunt 5* (+40) 10yuh uh?
> 1744555842 614298 PRIVMSG #esolangs :14[[07HAPPA14]]4 M10 02https://esolangs.org/w/index.php?diff=155800&oldid=155799 5* 03RixTheTyrunt 5* (-5) 10
> 1744556684 721868 PRIVMSG #esolangs :14[[07Undyne Programming Language14]]4 M10 02https://esolangs.org/w/index.php?diff=155801&oldid=155792 5* 03Joachim 5* (+1028) 10Better formatting (
)
> 1744556981 486740 PRIVMSG #esolangs :14[[07Syntax Null Language14]]4 N10 02https://esolangs.org/w/index.php?oldid=155802 5* 03Akira 5* (+1381) 10Start Page
< 1744557156 37699 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :so I compiled my yacc compiler bomb into a regular expression: ^(0*1){0,23}(1(0*1){23})*$
< 1744557168 755956 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :but disappointingly, so far I haven't found a regex engine that struggles with it
< 1744557203 636794 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :either they use backtracking (which is good at that regex even though it's exponential-time in general), or they compile the regex lazily to avoid exponential behaviour on that sort of regex
< 1744558978 817405 :ais523!~ais523@user/ais523 PRIVMSG #esolangs : I was saddened to find that posix doesn't come with yacc ← POSIX does specify yacc but it might be an optional component
< 1744559017 256985 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I wrote my own POSIX yacc in Perl, with the motivation being "you can ship this with your program and use it to build your .y files even if the target system doesn't have yacc, as long as it has Perl, and most systems do"
< 1744559051 341704 :izabera!izabera@user/meow/izabera PRIVMSG #esolangs :now you just need to add perl to posix
< 1744559062 676702 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :although, POSIX yacc is weird in a number of ways and I think the only reason to use it is compatibility with existing programs
< 1744559090 365986 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :in particular it specifies a number of things that block reasonable-looking optimisations, and the way it does precedence is weird and slightly broken
< 1744559223 225364 :ais523!~ais523@user/ais523 PRIVMSG #esolangs : But that's the easy part. More difficult is composition; given two syntax-directed compilers where one can feed into the other, how can we *compute* the composite compiler? ← I think this one is interesting if you restrict the compilers to be in some restricted sub-TC compiler-writing language, it's an interesting question as to whether it composes
< 1744559303 585825 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I have been thinking a lot recently about "parse with a context-free grammar into an AST, then convert the AST into a string via providing a template string for each AST node", which is a somewhat restricted but surprisingly useful way to write simple compilers or at least transpilers
< 1744559403 138998 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :e.g. to transpile BF to C one of the rules might look like «'[' commands ']' => "while(*ptr) { $2 }"», i.e. the output contains «while(*ptr) { » and « }» literally, and places the result of compiling «commands» in between them
< 1744559438 37322 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :yacc works similarly to that but generates code that runs as part of the parser, rather than generating an output string
< 1744559480 509621 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :and I'm not sure whether this composes with itself or not, but it'd be interesting if it did
< 1744559545 177159 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I guess if it the first compiler pretty-prints from the AST and the second one parses back into the same AST, it trivially composes, so to get interesting behaviour there would have to be some sort of rebracketing going on
< 1744560001 33625 :tromp!~textual@2001:1c00:3487:1b00:1844:3a13:7641:5c03 JOIN #esolangs * :Textual User
< 1744560956 964350 :amadaluzia!~amadaluzi@user/amadaluzia JOIN #esolangs amadaluzia :Artur Manuel
< 1744561149 487348 :lisbeths!uid135845@id-135845.lymington.irccloud.com QUIT :Quit: Connection closed for inactivity
< 1744561399 504794 :tromp!~textual@2001:1c00:3487:1b00:1844:3a13:7641:5c03 QUIT :Quit: My iMac has gone to sleep. ZZZzzz…
< 1744561793 801149 :Melvar!~melvar@dslb-084-063-063-254.084.063.pools.vodafone-ip.de JOIN #esolangs Melvar :melvar
> 1744561917 14416 PRIVMSG #esolangs :14[[07Main Page14]]4 M10 02https://esolangs.org/w/index.php?diff=155803&oldid=147155 5* 03RixTheTyrunt 5* (+0) 10
< 1744561989 950902 :amadaluzia!~amadaluzi@user/amadaluzia QUIT :Ping timeout: 260 seconds
> 1744562032 329467 PRIVMSG #esolangs :14[[07Main Page14]]4 10 02https://esolangs.org/w/index.php?diff=155804&oldid=155803 5* 03Ais523 5* (+0) 10Undo revision [[Special:Diff/155803|155803]] by [[Special:Contributions/RixTheTyrunt|RixTheTyrunt]] ([[User talk:RixTheTyrunt|talk]]) "brainfuck" is in fact spelled with a lowercase first letter, at least when it appears mid-sentence, according to the original specification
< 1744562202 487613 :amadaluzia!~amadaluzi@user/amadaluzia JOIN #esolangs amadaluzia :Artur Manuel
> 1744562309 424950 PRIVMSG #esolangs :14[[07Arrowey14]]4 10 02https://esolangs.org/w/index.php?diff=155805&oldid=155563 5* 035anz 5* (+0) 10
< 1744562803 151552 :tromp!~textual@2001:1c00:3487:1b00:1844:3a13:7641:5c03 JOIN #esolangs * :Textual User
< 1744563131 486954 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :even if POSIX didn't have yacc, you could compile your yacc program into C that's portable enough for any POSIX system and distribute it that way, similar to how you run autotools as a developer and get a portable enough configure script
< 1744565140 694956 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :ais523: Sure, that's like what Tmg offers. But just like with Futamura's original projections, I think that there's some serious engineering work being handwaved.
< 1744565175 701357 :tromp!~textual@2001:1c00:3487:1b00:1844:3a13:7641:5c03 QUIT :Quit: My iMac has gone to sleep. ZZZzzz…
> 1744566037 985192 PRIVMSG #esolangs :14[[07Tmg14]]4 10 02https://esolangs.org/w/index.php?diff=155806&oldid=155762 5* 03Corbin 5* (+258) 10It's at least context-sensitive!
< 1744566089 35924 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :ais523: Oh, also see this example: https://commons.wikimedia.org/wiki/File:Brainfuck_to_C_translator_in_Unix_TMG.png
< 1744566152 864239 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :I can *imagine* the partial evaluator, but it seems like it's not gonna actually be fun to write.
< 1744566436 286124 :tromp!~textual@2001:1c00:3487:1b00:1844:3a13:7641:5c03 JOIN #esolangs * :Textual User
> 1744566841 640096 PRIVMSG #esolangs :14[[07User:PrySigneToFry/Silicon dioxide in a polypropylene box/Chess between HCr0 and PSTF14]]4 10 02https://esolangs.org/w/index.php?diff=155807&oldid=155753 5* 03Hotcrystal0 5* (+32) 10
< 1744568618 182456 :zzo38!~zzo38@host-24-207-52-143.public.eastlink.ca JOIN #esolangs zzo38 :zzo38
> 1744569260 510024 PRIVMSG #esolangs :14[[07LogicGate14]]4 10 02https://esolangs.org/w/index.php?diff=155808&oldid=108015 5* 03Joachim 5* (+167) 10Better readability and formatting
< 1744569847 610299 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :korvo: hmm, that example is a lot more complex than I was imagining
< 1744569900 127443 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :also the string notation is bizarre (it appears to be angle-bracket-delimited, but accepts both <<> and <>> as valid strings)
< 1744570439 670653 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :oh, I think I figured out the complexity – it is to indent the outputted C correctly
< 1744570569 404421 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :also, it seems to be numbering the rightmost nonterminal as 1, the second-rightmost as 2, and so on?
> 1744570870 878282 PRIVMSG #esolangs :14[[07C14]]4 10 02https://esolangs.org/w/index.php?diff=155809&oldid=145641 5* 03Keymaker 5* (+197) 10Link IOCCC.
< 1744570981 637899 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I found the docs: apparently the parsing rule is that > can appear as the first character but not later, sort-of like how [[] and []] work in regexps
< 1744571125 856121 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I guess the reason I was confused is that when strings use paired starting and ending delimiters, I expect them to nest (because that's the main advantage you get from using two different delimiters rather than a single delimiter)
< 1744571220 368124 :craigo!~craigo@user/craigo JOIN #esolangs craigo :realname
< 1744571292 568493 :APic!apic@apic.name PRIVMSG #esolangs :G'Night
> 1744571629 804704 PRIVMSG #esolangs :14[[07User:Junkshipp14]]4 N10 02https://esolangs.org/w/index.php?oldid=155810 5* 03Junkshipp 5* (+9) 10Created page with "Hi there!"
< 1744571848 930316 :Sgeo!~Sgeo@user/sgeo JOIN #esolangs Sgeo :realname
> 1744572290 761659 PRIVMSG #esolangs :14[[07Try to Take14]]4 10 02https://esolangs.org/w/index.php?diff=155811&oldid=155796 5* 03Junkshipp 5* (+47) 10
> 1744572529 994149 PRIVMSG #esolangs :14[[07Language list14]]4 M10 02https://esolangs.org/w/index.php?diff=155812&oldid=155744 5* 03Buckets 5* (+16) 10
> 1744572581 722256 PRIVMSG #esolangs :14[[07User:Buckets14]]4 M10 02https://esolangs.org/w/index.php?diff=155813&oldid=155745 5* 03Buckets 5* (+15) 10
> 1744572592 820407 PRIVMSG #esolangs :14[[07Therefuck14]]4 N10 02https://esolangs.org/w/index.php?oldid=155814 5* 03Buckets 5* (+2076) 10Created page with "{{Lowercase}} therefuck is an Esoteric programming language created by [[User:Buckets]] in 2021. {| class="wikitable" |- ! Command !! Instruction |- | || If this Command is Reached, +1 Execute The Pseudo-Commands below; If this Command Is not Reached, +1. |} {| cla
> 1744572621 921817 PRIVMSG #esolangs :14[[07Therefuck14]]4 M10 02https://esolangs.org/w/index.php?diff=155815&oldid=155814 5* 03Buckets 5* (+18) 10
< 1744573418 479326 :amby!~ambylastn@ward-15-b2-v4wan-167229-cust809.vm18.cable.virginm.net JOIN #esolangs amby :realname
< 1744574190 641529 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :ais523: Yeah, but at least it fits on a single page.
< 1744574734 457250 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :this logically means that a > mid-string is escaped as ><>
< 1744575040 737307 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :fish
< 1744576322 637566 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :korvo: so after looking up Tmg, I think the style of compiler I described above is substantially different; Tmg is imperative, whereas my style is declarative
> 1744576984 578485 PRIVMSG #esolangs :14[[07Try to Take14]]4 10 02https://esolangs.org/w/index.php?diff=155816&oldid=155811 5* 03Junkshipp 5* (+2324) 10
> 1744577201 852043 PRIVMSG #esolangs :14[[07Try to Take14]]4 10 02https://esolangs.org/w/index.php?diff=155817&oldid=155816 5* 03Junkshipp 5* (-1) 10/* Abbreviations */
> 1744577452 129139 PRIVMSG #esolangs :14[[07Try to Take14]]4 10 02https://esolangs.org/w/index.php?diff=155818&oldid=155817 5* 03Junkshipp 5* (+82) 10/* Examples of monuseries */
< 1744578645 998100 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :ais523: I'm struggling to find a difference when it comes to Futamura reasoning. We want the imperative action of *computing* the residue; it's not enough to merely declare that it exists, because we're concerned with the fine structure of the residue.
< 1744578689 57046 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :korvo: well I was thinking about maybe using a different style of reasoning – if the compilers have a regular enough structure we may be able to find a function that composes the structure
< 1744578714 690691 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :for example, imagine if the compilers are finite-state transducers; we know those compose because there's an algorithm for composing finite-state transducers
< 1744578728 45787 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Well, the compositions exist, if that's the concern. They're just not efficient.
< 1744578827 790205 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Given two Tmg programs and a TMG implementation for some machine M, we can compile both programs to M and then run them in sequence. And it seems like Tmg is sufficiently surjective as a computational system; if it can compile X to Y and Y to Z, then it should have a compiler from X to Z.
< 1744578857 730727 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :But the partial evaluation of Tmg on Tmg seems as tough as any other partial evaluation.
< 1744579067 897686 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :(There is a real concern, particularly with jank languages like Tmg, that the compiler-compiler will get stuck when compiling Y to Z if it sees invalid input. So we'd like these to be *correct* compilers, and the first compiler must always emit valid Y.)
> 1744581023 201752 PRIVMSG #esolangs :14[[07Past Tense14]]4 N10 02https://esolangs.org/w/index.php?oldid=155819 5* 03Rottytooth 5* (+1135) 10creating Past Tense page
> 1744581066 282071 PRIVMSG #esolangs :14[[07Past Tense14]]4 10 02https://esolangs.org/w/index.php?diff=155820&oldid=155819 5* 03Rottytooth 5* (-74) 10Cleaned up desc
> 1744581096 10053 PRIVMSG #esolangs :14[[07User:Rottytooth14]]4 10 02https://esolangs.org/w/index.php?diff=155821&oldid=154559 5* 03Rottytooth 5* (+7) 10Added Past Tense
< 1744581125 264090 :hermes!~hermes@205.185.107.46 JOIN #esolangs * :[https://web.libera.chat] hermes
> 1744581244 293029 PRIVMSG #esolangs :14[[07Past Tense14]]4 10 02https://esolangs.org/w/index.php?diff=155822&oldid=155820 5* 03Rottytooth 5* (+121) 10Text clean-up
> 1744581289 648484 PRIVMSG #esolangs :14[[07Language list14]]4 10 02https://esolangs.org/w/index.php?diff=155823&oldid=155812 5* 03Rottytooth 5* (+16) 10/* P */
> 1744581313 103788 PRIVMSG #esolangs :14[[07Language list14]]4 10 02https://esolangs.org/w/index.php?diff=155824&oldid=155823 5* 03Rottytooth 5* (+1) 10/* P */
< 1744581514 13627 :hermes!~hermes@205.185.107.46 PART :#esolangs
< 1744583924 630716 :tromp!~textual@2001:1c00:3487:1b00:1844:3a13:7641:5c03 QUIT :Quit: My iMac has gone to sleep. ZZZzzz…
< 1744588264 975643 :ais523!~ais523@user/ais523 QUIT :Quit: quit
< 1744588562 335921 :amby!~ambylastn@ward-15-b2-v4wan-167229-cust809.vm18.cable.virginm.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