01:30:10 <korvo> Does anybody happen to know of syntax traditions for Hoare logic that aren't typeset nicely and that operate over abstract domains? I know about e.g. TLA+.
01:30:45 <korvo> I'm puzzling over how to do conditions for a compiler where I might want to only generate code when I know that a certain flag is true, or when I know that the flag is either false or undefined.
01:31:36 <korvo> Right now I'm saying e.g. `.pre b` for a flag being true, or `.pre ~b` for false/undefined (that is, the complement of true) or `.pre !b` for false, but that's ad-hoc and grungy.
01:32:01 <korvo> It does give me a way to express `.pre ~!b`, for when the flag is either true or undefined (the complement of false).
01:38:54 <korvo> My overall idea is that I can embed optimizations as abstract interpretation into a META II system by encoding the abstract domain as a bunch of postconditional assignments. The preconditions are used to steer code generation.
01:40:17 <korvo> Like, say I have a parse flag `pf`. I might start the parser with `.post { pf }` to set it true, and then `.pre { ~pf } .do { .out('self.pf = True' .nl) } .post { pf }`.
01:47:58 <ais523> I vaguely remember seeing a notion that has preconditions before a function, surrounded by some sort of grouping character (I forget which one), and likewise postconditions afterwards
01:48:08 <ais523> but I'm not sure it came with a notation for the logical operators
01:48:57 <ais523> meanwhile, I've been continuing to try to write Rust macros-by-example, becoming increasingly convinced it's an esolang as time went on
01:49:45 <ais523> I got fed up with the number of times I'd implemented a foreach loop by hand, and decided to write foreach itself as a macro – but then I struggled to write the part which substitutes the loop variable into the output
01:50:33 <ais523> trying to work out what sort of code I'd need in order to do that generically, I realised it was basically the same problem as trying to build up a string from a template in Underload (you have the same basic operations available), so for a while I was seriously writing an Underload interpreter in Rust macros-by-example in order to make this work
01:50:47 <ais523> but I was worried about hitting the tail-recursion limit (which is actually fairly low)
01:51:31 <ais523> and think I found an alternative method of combining all the foreach loops into one or two big loops, which seems like a better option
01:52:25 <ais523> anyway, this got me thinking: just like in Underload, one of the main things it looks like you can't do using macros-by-example is to compare two identifiers with each other, which is something that I mildly want to do
01:53:26 <ais523> but it turns out that it actually is possible, by ridiculous means – you can test to see if an identifier matches an arbitrary hardcoded identifier – so "all" you have to do is to get the macro to output a macro definition that hardcodes the identifier in order to do a comparison!
01:53:29 <korvo> Hm. Shades of execline, which has a similar set of limitations at a higher level.
01:53:45 <ais523> (this only works in item context, because a macro definition is an item)
01:54:55 <korvo> Weird to think that META II spoils me here, but it has a register that stores the most-recently-parsed token, and that's sufficient for *emitting* an identifier into a new context without actually comparing it. META II assumes that some other compiler will bother with building a name/label table.
01:56:14 <ais523> the same technique could probably be used to generate my foreach loops – if you create a macro that generates foreach loops, rather than a macro that implements them, then the substitution part of things is really easy
01:56:55 <korvo> Yeah. Also, equations are overpowered; I'm assuming that you're not allowing yourself any intermediate assignments of runtime objects, just pure macro expansion?
01:56:59 <ais523> (hopefully all this will be obsolete in a couple of years – there are plans to add foreach loops to the macro lnaguage)
01:57:30 <ais523> I'm doing a lot of generation of compile-time objects, to make things easier
01:58:04 <ais523> but I'd like to avoid having, e.g., unnecessary extra traits just to work around deficiencies in the macros' parsing ability
02:00:08 <ais523> this started as an attempt to write a serious program (well, library) – but the issue is that it's a code generator, and I don't want it to be a separate executable because that makes the build system more complicated, so I'm trying to implement it by exploiting Turing-complete behaviours of the Rust compiler to do all the code generation at compile time
02:00:44 <ais523> and then it turned into an esoprogram because these behaviours weren't designed to be used with that level of computational power
02:01:53 <korvo> I know that feeling. I started with a need for a JSON parser and now I've got a metalanguage.
02:02:36 <ais523> I've decided to just let it happen, maybe I'll create something that's useful for the future, maybe I'll learn something
02:02:44 <ais523> although I'm about six levels deep recursing through the process by this point
02:03:15 <ais523> (fortunately it appears to be a convergent series)
02:06:55 <ais523> aww… I tried to get a macro to generate a macro that shadowed itself, but Rust treats both macro definitions as visible and errors on the ambiguity when you try to use it
02:07:58 <ais523> (I'm not even sure if I was trying to accomplish anything in particular there, I just wanted to see if it was possible before I spent time trying to figure out whether it was useful or not)
03:47:10 <b_jonas> ais523: what? you can output a macro definition and use it in the same stage of compilation?
04:37:46 <esolangs> [[User talk:TenBillionPlusOne]] N https://esolangs.org/w/index.php?oldid=156187 * I am islptng * (+631) Created page with "Who Are You? ~~~~"
05:08:41 <esolangs> [[User talk:TenBillionPlusOne]] https://esolangs.org/w/index.php?diff=156188&oldid=156187 * I am islptng * (+103)
05:10:35 <esolangs> [[User:I am islptng/List of the users that is also in conwaylife.com]] https://esolangs.org/w/index.php?diff=156189&oldid=154769 * I am islptng * (+71)
05:25:10 <esolangs> [[User:I am islptng/List of the users that is also in conwaylife.com]] https://esolangs.org/w/index.php?diff=156190&oldid=156189 * I am islptng * (+29)
05:52:22 <esolangs> [[Dis]] https://esolangs.org/w/index.php?diff=156191&oldid=126977 * Tpaefawzen * (+98) /* Sample programs */
05:58:52 -!- ais523 has quit (Ping timeout: 244 seconds).
06:04:11 <esolangs> [[257-wrap brainfuck]] https://esolangs.org/w/index.php?diff=156192&oldid=155328 * Tpaefawzen * (+10) My dialect
06:10:21 -!- ais523 has joined.
06:11:58 -!- ais523 has quit (Client Quit).
06:17:20 <strerror> esolangs: who are the most famous esoteric language programmers that everyone should know about
06:17:40 <strerror> (actually, this might run up against gemma's anti-doxxing protections.)
06:17:46 <esolangs> strerror: While the field is vast, some key figures stand out: * **Ben Rudiak-Gould:** Known for Lazy K, Kayak, and AviSynth, he bridges esoteric and practical programming. * **Alan Mycroft:** Co-author of Haskell is not not ML, contributing to functional programming's esoteric roots. * **Simon Peyton Jones:** Another Haskell co-author, he's a prominent...
06:17:46 <esolangs> figure in functional programming and language design. These individuals have shaped the landscape of esoteric programming, influencing languages and research.
06:22:57 <esolangs> [[User:PrySigneToFry/Silicon dioxide in a polypropylene box/Chess between HCr0 and PSTF]] https://esolangs.org/w/index.php?diff=156193&oldid=156148 * Hotcrystal0 * (+36)
06:43:02 -!- amadaluzia_ has quit (Ping timeout: 252 seconds).
06:48:25 -!- tromp has joined.
06:54:36 <esolangs> [[Vague]] https://esolangs.org/w/index.php?diff=156194&oldid=156112 * JHSHernandez-ZBH * (+143) no, but that edit lets me hide a concept based on it
06:56:00 <esolangs> [[Unvague]] https://esolangs.org/w/index.php?diff=156195&oldid=156102 * JHSHernandez-ZBH * (+76)
07:09:43 -!- impomatic has joined.
07:14:26 <esolangs> [[Unvague]] https://esolangs.org/w/index.php?diff=156196&oldid=156195 * JHSHernandez-ZBH * (-11)
07:15:40 <esolangs> [[Unvague]] https://esolangs.org/w/index.php?diff=156197&oldid=156196 * JHSHernandez-ZBH * (+6)
07:18:11 <esolangs> [[Unvague]] https://esolangs.org/w/index.php?diff=156198&oldid=156197 * JHSHernandez-ZBH * (-2)
07:19:46 -!- Lord_of_Life_ has joined.
07:20:50 -!- Lord_of_Life has quit (Ping timeout: 265 seconds).
07:21:09 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
07:22:01 <esolangs> [[Unvague]] https://esolangs.org/w/index.php?diff=156199&oldid=156198 * JHSHernandez-ZBH * (+2)
08:07:05 <esolangs> [[User:PrySigneToFry/Silicon dioxide in a polypropylene box/Chess between HCr0 and PSTF]] https://esolangs.org/w/index.php?diff=156200&oldid=156193 * PrySigneToFry * (+427)
08:10:12 <esolangs> [[Unvague]] https://esolangs.org/w/index.php?diff=156201&oldid=156199 * JHSHernandez-ZBH * (+0)
08:11:05 <esolangs> [[Unvague]] https://esolangs.org/w/index.php?diff=156202&oldid=156201 * JHSHernandez-ZBH * (+0)
08:11:34 <esolangs> [[Unvague]] https://esolangs.org/w/index.php?diff=156203&oldid=156202 * JHSHernandez-ZBH * (+6)
08:12:02 <esolangs> [[WaifuScript]] https://esolangs.org/w/index.php?diff=156204&oldid=154145 * PrySigneToFry * (+33)
08:12:04 <esolangs> [[Unvague]] https://esolangs.org/w/index.php?diff=156205&oldid=156203 * JHSHernandez-ZBH * (-9)
08:17:14 <esolangs> [[Unvague]] https://esolangs.org/w/index.php?diff=156206&oldid=156205 * JHSHernandez-ZBH * (-93) test
08:17:51 <esolangs> [[Unvague]] https://esolangs.org/w/index.php?diff=156207&oldid=156206 * JHSHernandez-ZBH * (+1)
08:18:30 <esolangs> [[Unvague]] https://esolangs.org/w/index.php?diff=156208&oldid=156207 * JHSHernandez-ZBH * (+2)
08:19:09 <esolangs> [[Unvague]] https://esolangs.org/w/index.php?diff=156209&oldid=156208 * JHSHernandez-ZBH * (+93)
09:01:36 -!- amadaluzia_ has joined.
09:06:50 <esolangs> [[OREO Conversion Sheet]] https://esolangs.org/w/index.php?diff=156210&oldid=117270 * JHSHernandez-ZBH * (+290)
09:08:18 <esolangs> [[OREO Conversion Sheet]] https://esolangs.org/w/index.php?diff=156211&oldid=156210 * JHSHernandez-ZBH * (+36)
09:09:12 <esolangs> [[OREO Conversion Sheet]] https://esolangs.org/w/index.php?diff=156212&oldid=156211 * JHSHernandez-ZBH * (+32)
09:21:48 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
09:22:12 -!- amadaluzia_ has quit (Ping timeout: 272 seconds).
09:25:10 -!- amadaluzia_ has joined.
09:30:19 -!- tromp has joined.
09:48:10 -!- Sgeo has quit (Read error: Connection reset by peer).
09:51:11 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
10:04:10 -!- tromp has joined.
10:34:00 -!- amadaluzia has quit (Remote host closed the connection).
11:30:18 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
11:40:11 <esolangs> [[Talk:Loop preventing brainfuck]] https://esolangs.org/w/index.php?diff=156213&oldid=156093 * C++DSUCKER * (-133)
11:47:30 <esolangs> [[Loop preventing brainfuck]] https://esolangs.org/w/index.php?diff=156214&oldid=156142 * C++DSUCKER * (-56)
12:03:55 <esolangs> [[BitChanger Busy beaver]] https://esolangs.org/w/index.php?diff=156215&oldid=156153 * C++DSUCKER * (+42)
12:05:23 -!- amadaluzia_ has quit (Ping timeout: 245 seconds).
12:35:29 <esolangs> [[BitChanger Busy beaver]] https://esolangs.org/w/index.php?diff=156216&oldid=156215 * C++DSUCKER * (+30)
12:35:47 <esolangs> [[BitChanger Busy beaver]] https://esolangs.org/w/index.php?diff=156217&oldid=156216 * C++DSUCKER * (+13)
12:52:39 -!- tromp has joined.
13:28:50 <esolangs> [[User talk:Stkptr]] https://esolangs.org/w/index.php?diff=156218&oldid=155311 * Cycwin * (+127) /* My question */ new section
14:06:45 <esolangs> [[User talk:I am islptng]] https://esolangs.org/w/index.php?diff=156219&oldid=156154 * PrySigneToFry * (+1045) /* Mke even scir!!!! */ new section
14:23:33 <esolangs> [[R + S]] https://esolangs.org/w/index.php?diff=156220&oldid=154743 * C++DSUCKER * (+205)
14:26:42 <esolangs> [[R + S]] https://esolangs.org/w/index.php?diff=156221&oldid=156220 * C++DSUCKER * (+221)
14:55:40 <esolangs> [[R + S]] https://esolangs.org/w/index.php?diff=156222&oldid=156221 * C++DSUCKER * (+3)
15:17:28 <esolangs> [[R + S]] https://esolangs.org/w/index.php?diff=156223&oldid=156222 * C++DSUCKER * (+1150)
16:07:19 -!- amadaluzia has joined.
16:15:43 <esolangs> [[User talk:Stkptr]] https://esolangs.org/w/index.php?diff=156224&oldid=156218 * Stkptr * (+502)
16:17:15 <esolangs> [[WaifuScript]] https://esolangs.org/w/index.php?diff=156225&oldid=156204 * Stkptr * (+80)
16:53:57 -!- impomatic72 has joined.
16:55:42 -!- impomatic has quit (Ping timeout: 240 seconds).
16:59:18 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
17:05:50 <korvo> Hm. Using Neighbors' convention for META II extended tokens, where e.g. `.lm+` and `.lm-` adjust the left margin (think Python INDENT and DEDENT), I think I'm going to add a flag which toggles the output buffer, and manage it with `.o+` and `.o-`.
17:06:32 <korvo> My syntax from last night wasn't a complete disaster, but it could be clearer. I could require booleans to be written as `+b` or `-b`. This is starting to feel like design principles.
17:16:14 -!- tromp has joined.
17:19:38 -!- \a has quit (Quit: ZNC 1.9.1 - https://znc.in).
17:20:16 -!- Noisytoot has joined.
17:26:13 -!- Noisytoot has quit (Remote host closed the connection).
17:26:39 -!- Noisytoot has joined.
18:09:50 -!- ais523 has joined.
18:28:20 <esolangs> [[BitChanger Busy beaver]] https://esolangs.org/w/index.php?diff=156226&oldid=156217 * C++DSUCKER * (+44)
18:49:10 -!- Sgeo has joined.
18:57:27 -!- impomatic72 has quit (Quit: Client closed).
18:59:14 -!- impomatic has joined.
19:51:17 <esolangs> [[Zaddy]] N https://esolangs.org/w/index.php?oldid=156227 * Corbin * (+700) Stub the META II dialect I've been hacking on this week.
20:25:07 <korvo> Where does the phrase "computational class" come from?
20:31:43 <korvo> Do we have a "see also on Wikipedia" template? I thought we maybe did, but perhaps it was in a dream.
20:35:35 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
20:43:24 -!- chiselfuse has quit (Ping timeout: 264 seconds).
20:44:42 -!- chiselfuse has joined.
20:47:45 <esolangs> [[META II]] https://esolangs.org/w/index.php?diff=156228&oldid=156176 * Corbin * (+761) Add a couple important quotes about parsing power. Also give the ACM ref for Long 2014, because it's a single-click operation on ACM's website now.
20:51:33 <esolangs> [[META II]] https://esolangs.org/w/index.php?diff=156229&oldid=156228 * Corbin * (+109) Bluelinks and expand intro.
20:55:12 <esolangs> [[AGL]] N https://esolangs.org/w/index.php?oldid=156230 * Helpeesl * (+3442) Created page with "== Intro == AGL was made by [[users:helpeesl]] on April 19 2025 and was inspired by APL, and trying to be a minimalist golfing language. == Commands == AGLs commands have 2 forms based on how many inputs the have. === 1 input === {| class="wikitable" |+ Commands |- ! Symb
20:56:30 <esolangs> [[User:Helpeesl]] https://esolangs.org/w/index.php?diff=156231&oldid=154043 * Helpeesl * (+28)
21:02:30 -!- amadaluzia has quit (Ping timeout: 265 seconds).
21:24:19 <esolangs> [[Metacompiler]] M https://esolangs.org/w/index.php?diff=156232&oldid=156036 * Corbin * (+18)
21:30:07 <esolangs> [[Ralative 1 Bit, a quarter byte]] N https://esolangs.org/w/index.php?oldid=156233 * Krolkrol * (+818) Created page with "'''Ralative 1 Bit''' is a variant of [[1 Bit, a quarter byte]] that has unbounded memory. =Instructions= The instructions stay relativly unchanged from the original, the only difference is that '''1 inverts the next bit instead of the other one''
21:30:44 <esolangs> [[Ralative 1 Bit, a quarter byte]] M https://esolangs.org/w/index.php?diff=156234&oldid=156233 * Krolkrol * (-40)
21:31:57 <esolangs> [[Special:Log/move]] move * Krolkrol * moved [[Ralative 1 Bit, a quarter byte]] to [[Ralative 1 Bit]]: Misspelled title
21:36:48 <esolangs> [[Ralative 1 Bit]] https://esolangs.org/w/index.php?diff=156237&oldid=156235 * Krolkrol * (+71)
21:48:10 <ais523> <korvo> Where does the phrase "computational class" come from? ← I'm not sure where I learned it, but the wiki has been using it ever since I first got into esolangs
21:50:48 <esolangs> [[Ralative 1 Bit]] M https://esolangs.org/w/index.php?diff=156238&oldid=156237 * Krolkrol * (+201) fixed the interpreter
21:52:32 <korvo> ais523: I wonder if it's a transatlantic situation. Over here, it's always "complexity class".
22:21:43 -!- Ae` has changed nick to Ae.
22:23:08 <esolangs> [[Ralative 1 Bit]] https://esolangs.org/w/index.php?diff=156239&oldid=156238 * Stkptr * (+62)
22:26:37 <esolangs> [[Ralative 1 Bit]] https://esolangs.org/w/index.php?diff=156240&oldid=156239 * Stkptr * (+19)
22:29:26 <esolangs> [[Ralative 1 Bit]] https://esolangs.org/w/index.php?diff=156241&oldid=156240 * Stkptr * (+28)
22:29:38 <esolangs> [[Ralative 1 Bit]] https://esolangs.org/w/index.php?diff=156242&oldid=156241 * Stkptr * (+0)
23:28:23 -!- tromp has joined.
23:29:10 -!- tromp has quit (Client Quit).
23:53:03 <esolangs> [[Chefs Kiss]] https://esolangs.org/w/index.php?diff=156243&oldid=117871 * Kaveh Yousefi * (+3419) Added an interpreter implementation in Common Lisp.
23:54:43 <esolangs> [[Chefs Kiss]] https://esolangs.org/w/index.php?diff=156244&oldid=156243 * Kaveh Yousefi * (+1598) Introduced an examples section comprehending one incipial member in a Hello, World! program.