←2025-09-13 2025-09-14 2025-09-15→ ↑2025 ↑all
00:26:55 -!- tromp has joined.
00:27:24 -!- tromp has quit (Client Quit).
00:38:24 -!- amby has quit (Remote host closed the connection).
00:38:27 <esolangs> [[Game:Esochain]] https://esolangs.org/w/index.php?diff=164610&oldid=164584 * PrySigneToFry * (+32)
01:14:47 <esolangs> [[Collern]] https://esolangs.org/w/index.php?diff=164611&oldid=164486 * Dmiz * (+47)
02:05:02 -!- op_4 has quit (Remote host closed the connection).
02:05:32 -!- op_4 has joined.
02:59:23 <esolangs> [[Special:Log/newusers]] create2 * PrySigneToFry * created new account User:CollaborativePL: This account is used just for making a new language.
03:00:54 <esolangs> [[User:CollaborativePL]] N https://esolangs.org/w/index.php?oldid=164612 * PrySigneToFry * (+142) Created page with "This user is created for an User-edited language. Everyone are allowed to join! = Category = [[Category:Languages]] [[Category:User Edited]]"
03:12:15 <esolangs> [[Deep]] https://esolangs.org/w/index.php?diff=164613&oldid=164601 * PrySigneToFry * (+198)
03:38:54 -!- ais523 has joined.
06:11:04 -!- chiselfuse has quit (Remote host closed the connection).
06:11:22 -!- chiselfuse has joined.
06:52:13 <APic> Hello, World!
07:18:03 -!- tromp has joined.
07:40:35 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
07:50:31 -!- Uni has joined.
07:52:00 -!- tromp has joined.
07:53:10 -!- Uni has quit (Client Quit).
08:05:18 * ais523 wonders whether the world ever says hello back
08:13:13 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
08:15:50 -!- tromp has joined.
08:16:47 -!- Sgeo has quit (Read error: Connection reset by peer).
08:17:22 -!- Sgeo has joined.
08:19:06 <b_jonas> `hello U
08:19:07 <HackEso> Hello, World!
08:27:43 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
08:52:41 <b_jonas> if I'm documenting an interface like a file format or network protocol, and I have a field reserved for the future that must be written as zero, what's a good way to distinguish in the documentation whether the reader must verify that the field value is zero and nonzero should give an error that you don't support the file, versus when the reader should ignore the field because it's reserved for a hint
08:52:48 <b_jonas> that you can ignore in a backwards compatible way
09:19:30 <FireFly> b_jonas: prose, perhaps? well, or something like "(must be 0)" next to it, but I'd probably still add some prose suggesting it _should_ be checked in that case
09:20:09 <FireFly> below the structure that contains it, probably (presuming this is in some kind of header)
09:46:46 <ais523> b_jonas: I like the word "essential" as a method of describing the case where the reader has to verify it (although you would need to define what that means in case the implementor doesn't know)
09:47:50 <ais523> also worth noting: the problem is not so much zero/nonzero for reserved fields, but known/unknown values for fields in general (and reserved fields are a special case in which the only known value is 0)
09:48:05 * APic → Bathtub 😌 🐬
09:50:50 <ais523> I guess there's also the problem of "what nonzero values could be syntactically legal", which is probably easy to determine for a byte-based protocol where you know how many bytes the field is, but might be much harder for something with a less rigid format
09:51:19 <ais523> because even if unknown values are permitted and ignored, you still need to know how to parse them
10:23:05 <esolangs> [[Three variable modification language]] https://esolangs.org/w/index.php?diff=164614&oldid=127326 * ChuckEsoteric08 * (+66) /* Computational Class */
10:23:07 <esolangs> [[]] https://esolangs.org/w/index.php?diff=164615&oldid=163518 * PrySigneToFry * (+2263)
10:24:12 <esolangs> [[Three variable modification language]] https://esolangs.org/w/index.php?diff=164616&oldid=164614 * ChuckEsoteric08 * (+39)
10:25:08 <esolangs> [[User:ChuckEsoteric08]] https://esolangs.org/w/index.php?diff=164617&oldid=164473 * ChuckEsoteric08 * (+42) /* Turing-completness Proofs */
10:44:17 -!- Sgeo has quit (Read error: Connection reset by peer).
10:45:13 <b_jonas> yes, it could be for something where 0 isn't the only defined value
10:45:58 <b_jonas> and this is mostly for file formats, because in a network protocol you can often make use of interactivity, as in if you add a new feature then you define it such that the initiator can tell from the other party's response whether they support that feature
11:08:41 <FireFly> I mean, the description of the field made me think of formats with a "format version" field or similar as well
11:11:23 <FireFly> I guess another way to express it would be "the header structure might look different if (the reserved field) is nonzero", which I guess might discourage people being sloppy with checking it
11:12:37 <FireFly> in my own notes when looking at file formats I often add things like "(= 0)" next to fields if they have a seemingly constant value (and if I'd be interested in cases where it doesn't hold), but that's more from a reverser's point-of-view rather than a specification's
11:20:15 <esolangs> [[Special:Log/newusers]] create * Rasa8877 * New user account
11:26:58 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=164618&oldid=164589 * Rasa8877 * (+139) /* Introductions */
11:29:21 -!- Lord_of_Life_ has joined.
11:30:15 -!- Lord_of_Life has quit (Ping timeout: 265 seconds).
11:30:40 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
11:35:49 <b_jonas> I see
12:03:48 <ais523> <the B programming language manual> An octal constant is the same as a decimal constant except that it begins with a zero. It is then interpreted in base 8. Note that 09 (base 8) is legal and equal to 011.
12:04:10 <ais523> …does that carry like Addition Automaton, or count as two digits?
12:05:42 <ais523> I was considering using "C except that the only type is an int/pointer union" as a compiler backend, which is essentially B, so I thought I might as well try to learn actual B to see if it gave any inspiration
12:12:12 <ais523> in general this is very like C, although one oddity is that NUL and end-of-string are different characters (the manual doesn't say how end-of-string is encoded – maybe it was an actual character in the character set of the time)
12:12:50 <esolangs> [[ThingLang]] N https://esolangs.org/w/index.php?oldid=164619 * Rasa8877 * (+2031) Created page with "== ThingLang == '''ThingLang''' is an esoteric programming language created by [[User:Rasa8877]] in 2025. It is designed to be playful and readable, using English-like keywords for variables, printing, functions, loops, and comments. === Overview === ThingLang us
12:13:04 <ais523> and of course, not having a char type (and only being able to address at the machine word level) would mean awkward bitshifting to get at the characters of a string
12:13:21 <ais523> apparently B being bad at string handling was one of the main things that motivated the creation of C
12:15:07 <esolangs> [[Language list]] https://esolangs.org/w/index.php?diff=164620&oldid=164581 * Rasa8877 * (+16)
12:16:32 <ais523> oh wow, B has assigning versions of basically all the operators, e.g. x === y sets x to 1 if x and y are equal or 0 otherwise
12:17:35 <esolangs> [[Language list]] https://esolangs.org/w/index.php?diff=164621&oldid=164620 * Rasa8877 * (+16) /* T */
12:19:55 <ais523> …and it has C-style switch with jump-to-case: and fallthrough, *but* does not have a break statement – that's a nasty combination
12:20:12 <ais523> I think any sufficiently old language looks like an esolang if viewed through modern eyes :-D
12:21:21 <esolangs> [[User:Rasa8877]] N https://esolangs.org/w/index.php?oldid=164622 * Rasa8877 * (+721) Created page with "== User:Rasa8877 == Hi! I'm Rasa8877, a developer and esolang enthusiast. I create esoteric programming languages for fun and experimentation. === About Me === - Interested in programming languages, interpreters, and esoteric languages. - Creator of the es
12:22:46 <ais523> presumably you were supposed to leave using goto (in cases where return was inappropriate)
12:24:31 <ais523> <ais523> (the manual doesn't say how end-of-string is encoded – maybe it was an actual character in the character set of the time) ← it does mention that it was the same character as end-of-file, though
12:27:08 <ais523> <ais523> oh wow, B has assigning versions of basically all the operators, e.g. x === y sets x to 1 if x and y are equal or 0 otherwise ← "has" in that they're documented – the manual later admits that some of them, including ===, weren't actually implemented
12:28:01 <esolangs> [[User talk:Rasa8877]] N https://esolangs.org/w/index.php?oldid=164623 * Rasa8877 * (+673) Created page with "== Welcome to the talk page of Rasa8877! == Hi! This is the talk page for Rasa8877, creator of the esolang ThingLang. Feel free to leave messages, suggestions, questions, or comments about ThingLang or any other esolangs-related topic. === Guidelines ==
12:29:53 <esolangs> [[User:Rasa8877]] https://esolangs.org/w/index.php?diff=164624&oldid=164622 * Rasa8877 * (+0) /* About Me */
12:30:41 <esolangs> [[User:Rasa8877]] https://esolangs.org/w/index.php?diff=164625&oldid=164624 * Rasa8877 * (+0) /* User:Rasa8877 */
12:31:08 <esolangs> [[User:Rasa8877]] https://esolangs.org/w/index.php?diff=164626&oldid=164625 * Rasa8877 * (-2) /* About Me */
13:07:10 <esolangs> [[User talk:Rasa8877]] https://esolangs.org/w/index.php?diff=164627&oldid=164623 * PrySigneToFry * (+252) /* Collaborative programming language */ new section
13:07:37 <esolangs> [[User talk:Rasa8877]] https://esolangs.org/w/index.php?diff=164628&oldid=164627 * PrySigneToFry * (+0)
13:14:33 -!- isabella has changed nick to izabera.
13:24:19 -!- amby has joined.
15:34:39 -!- lisbeths has joined.
15:35:54 -!- lisbeths has quit (Client Quit).
15:53:11 <ais523> korvo and anyone else interested: I finished my blog post about how linear logic's ? can be used to model Rust's shared references (warning: it's very long for a blog post): http://ais523.me.uk/blog/logic-of-shared-references.html
15:53:47 -!- DOS_User has joined.
15:54:29 <korvo> Put on the pile, thanks.
16:09:59 -!- DOS_User has quit (Remote host closed the connection).
16:35:39 <b_jonas> ais523: "C except that the only type is an int/pointer union" => isn't that the original IOCCC form of Bellard's self-hosting tiny C compiler?
16:37:31 <b_jonas> ais523: IIUC tcc has three different dereferencing operators: *(int *), *(char *), and *(int (*)())
16:37:39 <b_jonas> so it can read/write characters as a built-in
16:38:00 <b_jonas> whereas W just has some very small library functions to read or write characters
16:38:35 <b_jonas> it makes sense to have three separate dereferencing operators, because there's just one type, so the type can't encode what sort of pointer you want
16:39:38 <b_jonas> http://www.ioccc.org/2001/bellard/index.html
16:54:40 <esolangs> [[R + S]] M https://esolangs.org/w/index.php?diff=164629&oldid=163855 * C++DSUCKER * (+2)
16:55:12 <esolangs> [[R + S]] https://esolangs.org/w/index.php?diff=164630&oldid=164629 * C++DSUCKER * (+16)
17:01:54 <ais523> <b_jonas> it makes sense to have three separate dereferencing operators, because there's just one type, so the type can't encode what sort of pointer you want ← right
17:02:14 <ais523> but B avoids that problem because it has just one type, so any pointer must be a pointer to that type
17:02:46 <ais523> I think the language implicitly assumes function pointers and data pointers are the same size (and functions are always called via function pointer, which removes that ambiguity)
17:17:44 -!- efrain has joined.
17:26:40 <b_jonas> ais523: TCC only compiles for one architecture as target, x866_32, where int, data pointer, and function pointer are the same size
17:26:45 <b_jonas> sorry, I mean OTCC
17:26:56 <b_jonas> the full TCC might do more, this is about OTCC, the IOCCC entry
17:27:18 <b_jonas> (the full TCC supports different types, including pointers to different structures0
17:27:21 <b_jonas> )
17:29:43 <b_jonas> oh yeah, there's Forth. Forth also has just one type.
17:29:55 <b_jonas> (there's of course an IOCCC version of that too)
17:43:50 <ais523> I've written C for a DSP where basically all the types were the same
17:44:03 <ais523> it had 32 bit char, short, int and pointer, probably long too
17:44:13 <ais523> (and I'm not sure the compiler supported C99 so it may not have supported long long)
17:44:30 <ais523> the compiler was a modified gcc but possibly a very old one
17:48:59 <b_jonas> hmm, didn't the first C compiler port for Magic-1 do that?
17:49:08 <esolangs> [[User talk:PrySigneToFry]] https://esolangs.org/w/index.php?diff=164631&oldid=164455 * Rasa8877 * (+194)
17:49:45 <b_jonas> it was an existing compiler ported to a new system, since Magic-1 has a unique CPU (though now there are two hardware copies so it's not entirely unique)
17:53:38 -!- rheaplex has joined.
17:59:02 <esolangs> [[Special:Log/newusers]] create * EsotericLanguagesBituf * New user account
18:23:07 -!- rheaplex has quit (Ping timeout: 260 seconds).
18:27:45 <esolangs> [[User talk:Aadenboy]] https://esolangs.org/w/index.php?diff=164632&oldid=161188 * Aadenboy * (+127)
18:51:47 <esolangs> [[Special:Log/newusers]] create * Alwaqad * New user account
19:01:01 <APic> 10 PRINT "Good Night, World!"
19:10:43 <ais523> night
19:10:45 -!- ais523 has quit (Quit: quit).
19:15:37 -!- tromp has joined.
19:20:01 -!- Sgeo has joined.
19:29:46 <esolangs> [[User:]] https://esolangs.org/w/index.php?diff=164633&oldid=164428 * * (+51)
20:00:12 <esolangs> [[Special:Log/newusers]] create * Iloveunicorns * New user account
21:28:00 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=164634&oldid=164618 * Wasabi134 * (+188) /* Introductions */
21:37:26 <esolangs> [[R + S]] https://esolangs.org/w/index.php?diff=164635&oldid=164630 * C++DSUCKER * (+12)
21:41:12 <Sgeo> Would a tutorial on group theory from 1979 still be useful?
21:42:13 <Sgeo> I wonder what educational material from the 70s is still worthwhile.
21:46:45 <korvo> The basics haven't changed since then. It might be incommensurate with modern language, depending on whether it follows Bourbaki. (Or am I thinking of rings?)
21:50:58 <int-e> Some stuff might be out of date; for example, it might list the Classification of finite simple groups as an open problem.
21:51:13 <Sgeo> It's currently going over stuff like what cyclic subgroups are
21:51:17 <int-e> But the basics really haven't changed, at all.
21:51:34 <int-e> Not even didactically, I'd think.
21:54:19 <int-e> Maybe some students get to play with tools like GAP early these days, depending on the preferences of the lecturer.
21:54:35 <Sgeo> Its definition of isomorphism between groups is that there's a one-to-one correspondence, AB implies A'B', and A'B' implies AB. I guess.. for some reason I was thinking just one to one correspondence, but this makes sense
21:55:05 <int-e> That's the main thing that I think has changed... we have much better tools to work with concrete groups using computers.
21:56:19 <Sgeo> Hmm, it accepted a lowercase c for one question but rejected it in the next
21:58:40 <int-e> "implies" is the wrong word
21:59:18 <Sgeo> Hmm?
22:00:04 <int-e> "AB implies A'B'" makes no sense
22:00:14 <Sgeo> It defines a homomorphic groups as being a many-to-one. Does that mean homomorphism itself is directional?
22:00:35 <Sgeo> I assume it's the same as "If AB then A'B'"
22:01:50 <int-e> Given two groups G and H a homomorphism from G to H is usually defined as a function h: G -> H that satisfies h(xy) = h(x)h(y) for all x,y in G. You can write h(x) as x' and it becomes (AB)' = A'B'
22:01:52 <Sgeo> It's now talking about faithful and unfaithful matrix representations
22:02:13 <int-e> But those are group elements, not propositions, so "implies" makes no sense.
22:02:45 <int-e> Not also that xy is using G's group operation while h(x)h(y) is using that of H.
22:03:20 <Sgeo> Oops, I miswrote what the lesson said
22:03:26 <Sgeo> | write established between their elements such that
22:03:26 <Sgeo> |
22:03:26 <Sgeo> | AB = C implies that A'B' = C', and ALSO
22:03:26 <Sgeo> |
22:03:26 <Sgeo> | A'B'= C' implies that AB = C.
22:03:41 <int-e> Okay, that is fine.
22:04:54 <int-e> The differene between "AB = C implies A'B' = C'" and (AB)' = A'B' is that it's giving AB a name.
22:07:15 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=164636&oldid=164634 * Iloveunicorns * (+178)
22:08:20 * Sgeo might want to try 0ibmcur in a bit. Retrocomputing to learn retrocomputting
22:09:42 <Sgeo> Not allowed to inspect it (on Cyber1. I'm sure I could inspect it on a local CYBIS)
22:20:26 <Sgeo> There's also a BASIC simulator, and the help makes it seem like it's simulating a specific BASIC, but I can't figure out which one. There's a USING statement that runs one different line, but people keep getting confused with PRINT USING when I describe it
22:20:37 <Sgeo> https://github.com/Sgeo/0basim
22:22:45 <korvo> I think the biggest thing in group theory since the 70s is Abelian and additive categories; there's structure to group homomorphisms and exact sequences which was only known then for specific situations ((co)homology mostly) which gets its own treatment today.
22:23:50 <Sgeo> The lesson defines Abelian categories (as meaning that the operation is commutative)
22:23:54 <korvo> Last I checked, the classification of finite simple groups was still not complete. The folks involved all believe that the core lemmas are proven, but there's no rack of books that one can put on their shelf and say "and this shelf holds the complete classification." It's certainly not fully formalized in e.g. Lean yet.
22:23:59 <Sgeo> *Alebian groups
22:24:43 <korvo> Yeah. An Abelian category is a category like the category Ab of Abelian groups; it generalizes Abelian-group theory to other contexts.
22:24:46 -!- molson has joined.
22:26:37 <Sgeo> Oh hey, there's a Chess variant on this thing
22:26:38 <Sgeo> In this learning activity the student works with algebraic
22:26:38 <Sgeo> chess notation and with elementary checkmates. The student
22:26:38 <Sgeo> may also play a chess variant, "Alice in Wonderland Chess,"
22:26:38 <Sgeo> which has two boards.
22:30:51 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
22:31:20 <Sgeo> https://gist.github.com/Sgeo/db3d720455e651bb3323f4a22e58d368
23:02:58 -!- FreeFull has quit.
23:11:16 <korvo> Can't believe I have to wait four more hours before I can give feedback on this blog post. Maybe tamales will help.
23:15:09 <int-e> Sgeo: initially, will one of the boards be empty?
23:15:49 <Sgeo> int-e, yes, botttom board is empty
23:16:06 <int-e> the one fun thing is that a queen by itself can capture a king
23:16:33 <Sgeo> All I figured out is that a typical chess opening is probably a really bad idea. Leaves king or queen exposed
23:16:45 <int-e> hmm, or does this only work in one parity, hmm
23:17:18 <int-e> Eh I won't think about it much.
23:18:30 <int-e> if queen and king are on opposite planes then the queen can chase down the king and move on top of it, and capture it on the next move
23:18:55 <int-e> so that's kind of cute. also completely unlike chess
23:19:30 <int-e> (I'm looking at this on the queen's move)
23:20:36 <int-e> (I'm assuming that the usual rules about moving into check are not in effect and replaced by capturing the king)
23:39:00 <Sgeo> I can certainly try it out. Or read the source. I don't think this one supports remote multiplayer though
23:40:55 <Sgeo> Oops tried to check black but forgot my queen would fall
23:41:26 <Sgeo> It let me move the king into check
23:42:30 <Sgeo> Uh. I tried to capture with black king with the white queen. The black king survived, the white queen didn't. Unless I typoed
23:43:38 <Sgeo> It's not enforcing which player can move which pieces
23:44:33 <Sgeo> There's stuff in the help about some rules not being enforced
←2025-09-13 2025-09-14 2025-09-15→ ↑2025 ↑all