00:20:36 -!- iovoid has quit (Ping timeout: 244 seconds).
00:29:38 -!- korvo has joined.
00:36:24 <Sgeo> Is it possible to write a Brainfuck interpreter in RPG (not the esoteric one)?
00:37:37 <Sgeo> I have not actually attempted to wrap my mind around RPG yet
00:45:04 -!- amby has 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).
01:21:55 -!- iovoid has joined.
01:36:26 -!- chloetax has quit (Ping timeout: 248 seconds).
02:55:11 -!- chloetax has joined.
03:08:58 -!- korvo has quit (Remote host closed the connection).
06:12:42 -!- Sgeo has quit (Read error: Connection reset by peer).
06:27:29 -!- Bowserinator has quit (Quit: Blame iczero something happened).
06:27:29 -!- iovoid has quit (Quit: iovoid has quit!).
06:27:58 -!- Bowserinator has joined.
06:31:30 -!- iovoid has joined.
06:50:34 <esolangs> [[Wuht]] https://esolangs.org/w/index.php?diff=165402&oldid=165313 * Jk.NDC * (+300)
06:50:59 <esolangs> [[Wuht]] https://esolangs.org/w/index.php?diff=165403&oldid=165402 * Jk.NDC * (+0)
06:51:40 <esolangs> [[Wuht]] https://esolangs.org/w/index.php?diff=165404&oldid=165403 * Jk.NDC * (+22) /* Example Program(s) */
06:53:18 <esolangs> [[Wuht]] https://esolangs.org/w/index.php?diff=165405&oldid=165404 * Jk.NDC * (-1) /* Example Program(s) */
06:57:14 <esolangs> [[User:Jk.NDC]] https://esolangs.org/w/index.php?diff=165406&oldid=165345 * Jk.NDC * (-21) riddle me this
07:01:25 <esolangs> [[User:Jk.NDC]] https://esolangs.org/w/index.php?diff=165407&oldid=165406 * Jk.NDC * (+82) /* Projects */
07:01:44 <esolangs> [[User:Jk.NDC]] M https://esolangs.org/w/index.php?diff=165408&oldid=165407 * Jk.NDC * (+0) /* semi-Weekly Riddle */
07:02:04 <esolangs> [[User:Jk.NDC]] M https://esolangs.org/w/index.php?diff=165409&oldid=165408 * Jk.NDC * (-1) /* semi-Weekly Riddle */
07:15:53 <HackEso> The password of the month is Myosotis.
07:31:32 -!- tromp has joined.
07:32:16 <esolangs> [[Wuht]] M https://esolangs.org/w/index.php?diff=165410&oldid=165405 * Jk.NDC * (+57) /* Operation Commands */
08:11:35 <esolangs> [[Wuht]] https://esolangs.org/w/index.php?diff=165411&oldid=165410 * Jk.NDC * (+32) /* Operation Commands */
08:12:40 <esolangs> [[Talk:1 Bit, a quarter byte]] N https://esolangs.org/w/index.php?oldid=165412 * YufangTSTSU * (+104) Created page with "`x-x//2` --~~~~"
08:13:14 <esolangs> [[Talk:1 Bit, a quarter byte]] M https://esolangs.org/w/index.php?diff=165413&oldid=165412 * YufangTSTSU * (+11)
08:18:04 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
08:32:34 <int-e> . o O ( `learn The password of the month is pumpkin overload. )
08:42:23 <esolangs> [[User:JIT]] https://esolangs.org/w/index.php?diff=165414&oldid=157651 * JIT * (+50)
08:42:41 <b_jonas> ``` [[ 12529 == $(hg log --removed -l 1 -T "{rev}" /hackenv/wisdom/password) ]] && learn password 'The password of the month is consider us expert everything street.'
08:42:47 <esolangs> [[User:JIT]] https://esolangs.org/w/index.php?diff=165415&oldid=165414 * JIT * (+10)
08:42:50 <HackEso> Relearned 'password': password
08:42:50 <b_jonas> int-e: thanks for the reminder
08:43:22 <b_jonas> ``` [[ 12529 == $(hg log --removed -l 1 -T "{rev}" /hackenv/wisdom/password) ]] && echo learn 'The password of the month is consider us expert everything street.'
08:44:12 <b_jonas> ``` [[ 12531 == $(hg log --removed -l 1 -T "{rev}" /hackenv/wisdom/password) ]] && echo learn 'The password of the month is consider us expert everything street.'
08:44:15 <HackEso> learn The password of the month is consider us expert everything street.
08:45:41 <esolangs> [[1 Bit, a quarter byte]] https://esolangs.org/w/index.php?diff=165416&oldid=165401 * PkmnQ * (+42)
08:47:11 <int-e> "why" -- because like most commands designed to be used as `cmd foo, it only expects a single argument
08:48:31 <b_jonas> should've just used echo >
08:48:51 <int-e> and `learn extracts a keyword from the text; `slashlearn is the one that takes a separate keyword (using a // separator)
09:42:36 <esolangs> [[LIMITED]] https://esolangs.org/w/index.php?diff=165417&oldid=165396 * ChuckEsoteric08 * (-136) TC proof
09:46:04 -!- tromp has joined.
10:48:11 -!- amby has joined.
10:54:20 <esolangs> [[User:IHaven'tComeUpWithANameYet]] https://esolangs.org/w/index.php?diff=165418&oldid=165008 * IHaven'tComeUpWithANameYet * (+4)
10:58:39 <esolangs> [[User:IHaven'tComeUpWithANameYet/Sandbox]] https://esolangs.org/w/index.php?diff=165419&oldid=164974 * IHaven'tComeUpWithANameYet * (+98)
11:33:18 -!- Lord_of_Life_ has joined.
11:33:37 -!- Lord_of_Life has quit (Ping timeout: 264 seconds).
11:34:37 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
11:43:41 -!- Everything has joined.
12:03:53 -!- Everything has quit (Quit: leaving).
12:31:26 <esolangs> [[User:Hotcrystal0/Sandbox]] https://esolangs.org/w/index.php?diff=165420&oldid=165378 * Hotcrystal0 * (+266)
13:18:49 <esolangs> [[Fucktion]] https://esolangs.org/w/index.php?diff=165421&oldid=153608 * I am islptng * (+1506)
14:14:33 -!- FreeFull has joined.
14:19:25 <esolangs> [[User:Forget-me32]] https://esolangs.org/w/index.php?diff=165422&oldid=165400 * Forget-me32 * (-314)
14:24:49 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
14:57:24 <esolangs> [[User:Pifrited/A cubic box full of dried miscellaneous rock pieces form a beach for user's own playground]] https://esolangs.org/w/index.php?diff=165423&oldid=165277 * Pifrited * (+2264)
14:58:21 <esolangs> [[User:Pifrited/A cubic box full of dried miscellaneous rock pieces form a beach for user's own playground]] https://esolangs.org/w/index.php?diff=165424&oldid=165423 * Pifrited * (+539) /* R2 Vn INT transitions */
15:17:41 <esolangs> [[User:Pifrited/Lang full of special character]] https://esolangs.org/w/index.php?diff=165425&oldid=165379 * Pifrited * (+32)
15:24:02 -!- wryl has changed nick to JGardner.
15:49:26 -!- Everything has joined.
16:48:37 -!- tromp has joined.
16:49:13 -!- Everything has quit (Ping timeout: 264 seconds).
16:51:09 -!- Everything has joined.
16:53:12 <esolangs> [[Iterate]] https://esolangs.org/w/index.php?diff=165426&oldid=157569 * Aadenboy * (+1517) implement hello world and fizzbuzz
16:54:15 <esolangs> [[Hello world program in esoteric languages (H-M)]] https://esolangs.org/w/index.php?diff=165427&oldid=159818 * Aadenboy * (+519) add [[Iterate]]
16:55:45 <esolangs> [[Iterate]] https://esolangs.org/w/index.php?diff=165428&oldid=165426 * Aadenboy * (+4) /* Example programs */ link
16:55:50 <esolangs> [[FizzBuzz]] https://esolangs.org/w/index.php?diff=165429&oldid=163374 * Aadenboy * (+990) add Iterate
17:24:27 <esolangs> [[Iterate]] https://esolangs.org/w/index.php?diff=165430&oldid=165428 * Aadenboy * (+4) /* FizzBuzz */ optimization
17:25:09 <esolangs> [[FizzBuzz]] https://esolangs.org/w/index.php?diff=165431&oldid=165429 * Aadenboy * (+6) /* Iterate */ update program and change to h3
17:35:32 <esolangs> [[Looping counter]] https://esolangs.org/w/index.php?diff=165432&oldid=150578 * Aadenboy * (+109) add golfed lua implementation
17:54:04 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
18:03:32 -!- gAy_Dragon has changed nick to Awoobis.
18:05:46 -!- korvo has joined.
18:10:54 -!- tromp has joined.
18:45:36 <esolangs> [[Looping counter]] https://esolangs.org/w/index.php?diff=165433&oldid=165432 * Aadenboy * (-14) /* Lua */ replace 2^1024 with 1/0
18:48:15 -!- Everything has quit (Ping timeout: 245 seconds).
18:50:33 -!- Everything has joined.
19:33:25 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
19:34:59 -!- tromp has joined.
20:18:17 <esolangs> [[Iterate]] https://esolangs.org/w/index.php?diff=165434&oldid=165430 * Aadenboy * (+71) /* Basic arithmetic */
20:26:30 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
20:31:10 -!- tromp has joined.
20:31:32 -!- tromp has quit (Client Quit).
20:31:32 -!- Everything has quit (Quit: leaving).
20:35:00 <esolangs> [[Iterate/Math]] N https://esolangs.org/w/index.php?oldid=165435 * Aadenboy * (+2779) Created page with "{{Back|Iterate}} == Arithmetic == === A + B === <pre> *A< (1*)<> > // increment L1 *B< (1*)<> > // increment L1 again </pre> === A - B === Note: Results lower than one will not output anything. <pre> *A< (1*)<> > // L1 = A *B< // decrement L1 by one B t
20:40:11 -!- tromp has joined.
21:08:26 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
21:12:51 -!- tromp has joined.
21:41:54 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
21:47:37 -!- tromp has joined.
22:16:26 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
22:34:24 -!- Sgeo has joined.
22:45:14 -!- FreeFull has quit.
23:45:01 -!- integral has quit (Read error: Connection reset by peer).
23:47:42 -!- integral_ has joined.
23:47:42 -!- amby has 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).
23:47:57 -!- integral_ has changed nick to integral.
23:55:53 <esolangs> [[Fucktion]] https://esolangs.org/w/index.php?diff=165436&oldid=165421 * I am islptng * (+1038)
23:57:25 <esolangs> [[Fucktion]] https://esolangs.org/w/index.php?diff=165437&oldid=165436 * I am islptng * (+13)
00:42:47 <esolangs> [[Wuht]] https://esolangs.org/w/index.php?diff=165438&oldid=165411 * Jk.NDC * (+130) /* Conditionals */
00:44:24 <esolangs> [[User:I am islptng/List of the users that is also in conwaylife.com]] https://esolangs.org/w/index.php?diff=165439&oldid=163026 * Hotcrystal0 * (+49)
00:51:31 <esolangs> [[User:I am islptng/List of the users that is also in conwaylife.com]] https://esolangs.org/w/index.php?diff=165440&oldid=165439 * Aadenboy * (+4) assuming "independent" means "found by own means"
02:30:05 <esolangs> [[0 bits, an eight byte]] N https://esolangs.org/w/index.php?oldid=165441 * Tommyaweosme * (+674) Created page with "0 Bit, an eight byte is an assembly language for a 0-bit CPU, made by [[user:tommyaweosme]]. With 1/8 byte of memory, this machine could store 1 instruction. == Commands == {| class="wikitable" |- ! Command !! Name !! Meaning |- | || END || END. Print
02:30:23 <esolangs> [[0 bits, an eight byte]] M https://esolangs.org/w/index.php?diff=165442&oldid=165441 * Tommyaweosme * (+0) /* Interpeter in Javascript */
02:31:30 <esolangs> [[0 bits, an eight byte]] https://esolangs.org/w/index.php?diff=165443&oldid=165442 * Tommyaweosme * (+1)
02:35:14 <strerror> Came across some old, but relevant, slides: http://www.demarcken.org/carl/papers/ITA-software-travel-complexity/ITA-software-travel-complexity.pdf
02:37:25 <strerror> “The general travel planning problem is unsolvable, meaning that no computer, no matter how long it spends, can find an answer to every travel query (or determine that none exists) for every database of flights and fares that the airlines can publish. […] In the case of ITA Software's engine as of early 2003, it is possible to simulate TMs with small numbers of states for between 10 and 20 steps on tapes of length from 10 to 20.”
03:18:30 <esolangs> [[Wuht]] M https://esolangs.org/w/index.php?diff=165444&oldid=165438 * Jk.NDC * (+159) /* Operation Commands */
06:07:34 <zzo38> When a MPEG-TS stream is available in multiple qualities, how to know which one is appropriate for recording onto a DVD? (I think it will need to be converted to MPEG-PS, but that is not my question.)
06:08:21 <zzo38> (My idea was to multiply the file size for ten seconds by the duration and compare that with the DVD capacity, but that does not consider such things as the other files in the DVD and the conversion to MPEG-PS, and probably other things I had missed as well.)
06:41:36 -!- tromp has joined.
07:32:09 -!- Sgeo has quit (Read error: Connection reset by peer).
08:11:55 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
08:32:35 -!- tromp has joined.
08:33:12 <esolangs> [[Wuht]] https://esolangs.org/w/index.php?diff=165445&oldid=165444 * Jk.NDC * (+174) /* Operation Commands */
08:53:08 <esolangs> [[Esolang talk:Categorization]] https://esolangs.org/w/index.php?diff=165446&oldid=164093 * Jk.NDC * (+250)
08:53:23 <esolangs> [[Esolang talk:Categorization]] M https://esolangs.org/w/index.php?diff=165447&oldid=165446 * Jk.NDC * (-2) /* Turing incomplete category */
08:55:18 <esolangs> [[Incomplete BrainFuck]] N https://esolangs.org/w/index.php?oldid=165448 * Jk.NDC * (+535) Created page with "'''Incomplete BrainFuck''' is made by [[User:Jk.NDC]] to be functional almost exactly like [[brainfuck]], except it is turing incomplete. This is achieved via limiting the machine to only do a maximum of 1.2696403e+73 operations or 55!(factorial), making it
09:06:25 <esolangs> [[Incomplete BrainFuck]] M https://esolangs.org/w/index.php?diff=165449&oldid=165448 * Jk.NDC * (+69)
09:07:18 <esolangs> [[Incomplete BrainFuck]] M https://esolangs.org/w/index.php?diff=165450&oldid=165449 * Jk.NDC * (+2)
09:10:45 * APic has his 042nd Birthday today. The Answer to Life, the Multiverses, and everything! 😌
09:11:41 <esolangs> [[User:Jk.NDC]] https://esolangs.org/w/index.php?diff=165451&oldid=165409 * Jk.NDC * (+172) /* Projects */
09:14:04 <esolangs> [[Incomplete BrainFuck]] https://esolangs.org/w/index.php?diff=165452&oldid=165450 * Jk.NDC * (+77)
10:16:27 -!- FreeFull has joined.
11:03:12 -!- amby has joined.
11:12:44 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
11:34:13 -!- Lord_of_Life has quit (Ping timeout: 264 seconds).
11:34:26 -!- Lord_of_Life_ has joined.
11:37:19 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
12:38:06 <esolangs> [[User:Pifrited/Lang full of special character]] https://esolangs.org/w/index.php?diff=165453&oldid=165425 * Pifrited * (+309)
12:50:25 <esolangs> [[Esolang talk:Categorization]] M https://esolangs.org/w/index.php?diff=165454&oldid=165447 * PkmnQ * (+4) /* Turing incomplete category */ not to be confused with [[Iterate]]
12:51:40 <esolangs> [[Isec]] https://esolangs.org/w/index.php?diff=165455&oldid=165384 * U * (+4)
13:17:54 -!- tromp has joined.
13:19:23 <esolangs> [[Isec]] https://esolangs.org/w/index.php?diff=165456&oldid=165455 * U * (+1)
13:24:54 <esolangs> [[Talk:Incomplete BrainFuck]] N https://esolangs.org/w/index.php?oldid=165457 * Corbin * (+178) I appreciate the effort but I'm not sure that it's quite that simple.
13:30:59 <esolangs> [[Esolang talk:Categorization]] https://esolangs.org/w/index.php?diff=165458&oldid=165454 * Corbin * (+293) /* Turing incomplete category */ Good news!
13:58:06 -!- Sgeo has joined.
14:38:30 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
14:49:38 -!- tromp has joined.
14:49:51 <esolangs> [[User:Pifrited/Lang full of special character]] https://esolangs.org/w/index.php?diff=165459&oldid=165453 * Pifrited * (+633)
14:52:50 <esolangs> [[User talk:I am islptng]] https://esolangs.org/w/index.php?diff=165460&oldid=165132 * Pifrited * (+165) /* User:Pifrited/Lang full of special character */ new section
14:57:51 <esolangs> [[User:Hotcrystal0/Sandbox]] https://esolangs.org/w/index.php?diff=165461&oldid=165420 * Hotcrystal0 * (+1001) OSC
15:07:16 <esolangs> [[User:Pifrited/Lang full of special character]] https://esolangs.org/w/index.php?diff=165462&oldid=165459 * Pifrited * (+153)
15:18:59 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
15:46:35 -!- FreeFull has quit (Quit: Lost terminal).
15:52:12 -!- tromp has joined.
16:58:44 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
17:05:54 -!- tromp has joined.
17:11:27 <esolangs> [[Special:Log/newusers]] create * WebNiko * New user account
17:30:59 -!- FreeFull has joined.
17:44:00 -!- Artea has quit (Quit: ZNC 1.9.1 - https://znc.in).
17:51:37 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=165463&oldid=165397 * WebNiko * (+252)
17:52:52 <esolangs> [[User:WebNiko]] N https://esolangs.org/w/index.php?oldid=165464 * WebNiko * (+56) Created page with "Hi guys i'm WebNiko from Brazil i'm a dev from Holyfuck."
17:53:29 <esolangs> [[HolyFuck]] N https://esolangs.org/w/index.php?oldid=165465 * WebNiko * (+820) Created page with "== HollyFuck == '''Creator:''' WebNiko (april7w7 in github) '''Year:''' 2025 '''Type:''' Esoteric / interpreted '''Description:''' Language that mixes Brainfuck and Holy-C with funny commands. === Commands === * fuckint <name> = <value or Brainfuck inline> ; // declare
17:57:58 <esolangs> [[Language list]] https://esolangs.org/w/index.php?diff=165466&oldid=165394 * WebNiko * (+15)
18:14:21 <esolangs> [[HolyFuck]] https://esolangs.org/w/index.php?diff=165467&oldid=165465 * WebNiko * (-2) /* HollyFuck */
18:17:25 <esolangs> [[Iterate/Math]] https://esolangs.org/w/index.php?diff=165468&oldid=165435 * Aadenboy * (+1040) implement exponent and nth root algorithms
18:19:30 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
18:26:56 <esolangs> [[User:Hotcrystal0/Sandbox]] https://esolangs.org/w/index.php?diff=165469&oldid=165461 * Hotcrystal0 * (+174)
18:28:21 -!- Artea has joined.
19:01:32 -!- Everything has joined.
19:32:14 -!- lisbeths has joined.
20:26:59 <esolangs> [[HolyFuck]] https://esolangs.org/w/index.php?diff=165470&oldid=165467 * Hotcrystal0 * (+49) adding categories
20:28:14 <esolangs> [[HolyFuck]] https://esolangs.org/w/index.php?diff=165471&oldid=165470 * Aadenboy * (+18) year
20:49:19 -!- tromp has joined.
20:59:43 -!- Everything has quit (Quit: leaving).
21:41:31 -!- lisbeths has quit (Quit: Connection closed for inactivity).
21:54:15 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
23:41:16 -!- amby has 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).
02:39:01 <esolangs> [[Talk:Incomplete BrainFuck]] https://esolangs.org/w/index.php?diff=165472&oldid=165457 * Jk.NDC * (+165)
02:39:42 <esolangs> [[Incomplete BrainFuck]] https://esolangs.org/w/index.php?diff=165473&oldid=165452 * Jk.NDC * (+17)
02:45:37 <esolangs> [[User:Jk.NDC]] M https://esolangs.org/w/index.php?diff=165474&oldid=165451 * Jk.NDC * (+71) /* semi-Weekly Riddle */
02:57:21 -!- FreeFull has quit.
03:24:17 <korvo> Are there other examples of bounded Brainfuck? It could be worth making yet another clearinghouse page if so.
03:25:01 <esolangs> [[Incomplete BrainFuck]] https://esolangs.org/w/index.php?diff=165475&oldid=165473 * Corbin * (+36) Categories.
03:47:07 <esolangs> [[User:Pifrited/Lang full of special character]] M https://esolangs.org/w/index.php?diff=165476&oldid=165462 * Pifrited * (-2)
03:48:06 <esolangs> [[Wuht]] https://esolangs.org/w/index.php?diff=165477&oldid=165445 * Jk.NDC * (+352) /* Functions */
04:40:12 <esolangs> [[User:Pifrited/Lang full of special character]] https://esolangs.org/w/index.php?diff=165478&oldid=165476 * PrySigneToFry * (+4) A little "golfing"
04:55:49 <esolangs> [[Wuht]] M https://esolangs.org/w/index.php?diff=165479&oldid=165477 * Jk.NDC * (+72) /* Clarification of Terms and Stuff */
05:46:28 <esolangs> [[Wuht]] https://esolangs.org/w/index.php?diff=165480&oldid=165479 * Jk.NDC * (+56) /* Functions */
05:46:48 <esolangs> [[Wuht]] M https://esolangs.org/w/index.php?diff=165481&oldid=165480 * Jk.NDC * (+2) /* Functions */
05:48:44 <esolangs> [[Wuht]] https://esolangs.org/w/index.php?diff=165482&oldid=165481 * Jk.NDC * (+76) /* Operation Commands */
05:55:33 <esolangs> [[Wuht]] https://esolangs.org/w/index.php?diff=165483&oldid=165482 * Jk.NDC * (+122) /* Functions */
05:56:38 <esolangs> [[Wuht]] M https://esolangs.org/w/index.php?diff=165484&oldid=165483 * Jk.NDC * (+0) /* Clarification of Terms and Stuff */
06:05:36 <esolangs> [[User:Jk.NDC]] https://esolangs.org/w/index.php?diff=165485&oldid=165474 * Jk.NDC * (+140) /* Projects */
06:05:38 -!- citrons has quit (Quit: "for more information, visit https://citrons.xyz").
06:05:53 -!- citrons has joined.
06:10:36 -!- tromp has joined.
06:27:05 -!- Sgeo has quit (Read error: Connection reset by peer).
06:56:39 <esolangs> [[Isec TC proof]] https://esolangs.org/w/index.php?diff=165486&oldid=165387 * U * (-359) Blanked the page
07:34:42 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
08:02:54 <esolangs> [[User:Pifrited/Lang full of special character]] M https://esolangs.org/w/index.php?diff=165487&oldid=165478 * Pifrited * (+12)
08:07:36 <esolangs> [[User:Pifrited/Lang full of special character]] M https://esolangs.org/w/index.php?diff=165488&oldid=165487 * Pifrited * (+53)
08:16:00 <esolangs> [[User talk:I am islptng]] https://esolangs.org/w/index.php?diff=165489&oldid=165460 * I am islptng * (+107) /* User:Pifrited/Lang full of special character */
08:46:42 <esolangs> [[IBSE]] N https://esolangs.org/w/index.php?oldid=165490 * U * (+351) Created page with "Op increasing A, equalizing B to A and if A-B<B while so decreasing B. C interpreter:const unsigned char main(void){{char A=(char)1;char B=(char)1;for(unsigned char C=(unsigned char)0;(unsigned char)C!=(unsigned char)0;C++;){A++;B=(char)A;do{B--;}while(((unsigned char)C!=(unsigne
08:49:48 <esolangs> [[IBSE]] https://esolangs.org/w/index.php?diff=165491&oldid=165490 * U * (-351) Blanked the page
09:12:41 <esolangs> [[IBSE]] https://esolangs.org/w/index.php?diff=165492&oldid=165491 * U * (+324)
09:19:44 <esolangs> [[IBSE]] https://esolangs.org/w/index.php?diff=165493&oldid=165492 * U * (+10)
09:32:27 <esolangs> [[Talk:UserEdited]] https://esolangs.org/w/index.php?diff=165494&oldid=152866 * Jk.NDC * (+147)
09:44:05 -!- tromp has joined.
10:08:16 <esolangs> [[Isec]] https://esolangs.org/w/index.php?diff=165495&oldid=165456 * U * (-135) Blanked the page
10:08:31 <esolangs> [[IBSE]] https://esolangs.org/w/index.php?diff=165496&oldid=165493 * U * (-334) Blanked the page
10:33:37 -!- amby has joined.
10:39:31 <esolangs> [[Fraction]] N https://esolangs.org/w/index.php?oldid=165497 * U * (+744) Created page with "x=0, y=1. 1st op - increasion of current cell. 2nd - jump from x to y. finally getting x/y. interpreter on C(1st op as 0, 2nd as any other, after ] must be =[, ops through , and ] at end): const unsigned char main(void){{const unsigned char A[(unsigned char)0];unsigned char B
10:40:50 <esolangs> [[Fraction]] https://esolangs.org/w/index.php?diff=165498&oldid=165497 * U * (+0)
10:40:59 <esolangs> [[Fraction]] https://esolangs.org/w/index.php?diff=165499&oldid=165498 * U * (+6)
10:41:26 <esolangs> [[Fraction]] https://esolangs.org/w/index.php?diff=165500&oldid=165499 * U * (-32)
11:18:19 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
11:30:04 -!- tromp has joined.
11:30:58 -!- FreeFull has joined.
11:33:14 -!- Lord_of_Life has quit (Ping timeout: 248 seconds).
11:35:14 -!- Lord_of_Life has joined.
11:37:15 <esolangs> [[User:Pifrited/Lang full of special character]] https://esolangs.org/w/index.php?diff=165501&oldid=165488 * PrySigneToFry * (+47)
12:12:19 <esolangs> [[User:Pifrited/Lang full of special character]] https://esolangs.org/w/index.php?diff=165502&oldid=165501 * PrySigneToFry * (+33)
12:25:40 -!- FreeFull has quit.
12:50:39 <esolangs> [[User:Pifrited/Lang full of special character]] M https://esolangs.org/w/index.php?diff=165503&oldid=165502 * Pifrited * (-27)
12:54:11 <esolangs> [[Fraction]] https://esolangs.org/w/index.php?diff=165504&oldid=165500 * U * (-10)
13:03:21 -!- iddi01 has joined.
13:03:22 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
13:03:42 <iddi01> !ztest epsilon >+>-(>)*6(>[-[++([(+[{(-)*11(-[{(-)*97[-][++-]>}])%13}])%11]>)*21]])*5(<-<+)*5<+[<<(--+-)*-1]-<-[<(--+-)*-1]+((+)*5>(-)*5>)*6(<(-)*7<(+)*7)*6((+)*13>(-)*13>)*6((>[-[++([(+[{(-)*16(-[{[-][++-+-]>}])%18}])%16]>)*21]])*5>)*3
13:03:42 <zemhill> iddi01: System busy; ask again later.
13:04:09 <iddi01> !ztest epsilon >+>-(>)*6(>[-[++([(+[{(-)*11(-[{(-)*97[-][++-]>}])%13}])%11]>)*21]])*5(<-<+)*5<+[<<(--+-)*-1]-<-[<(--+-)*-1]+((+)*5>(-)*5>)*6(<(-)*7<(+)*7)*6((+)*13>(-)*13>)*6((>[-[++([(+[{(-)*16(-[{[-][++-+-]>}])%18}])%16]>)*21]])*5>)*3
13:04:09 <zemhill> iddi01: System busy; ask again later.
13:04:25 <iddi01> !ztest epsilon >+>-(>)*6(>[-[++([(+[{(-)*11(-[{(-)*97[-][++-]>}])%13}])%11]>)*21]])*5(<-<+)*5<+[<<(--+-)*-1]-<-[<(--+-)*-1]+((+)*5>(-)*5>)*6(<(-)*7<(+)*7)*6((+)*13>(-)*13>)*6((>[-[++([(+[{(-)*16(-[{[-][++-+-]>}])%18}])%16]>)*21]])*5>)*3
13:04:25 <zemhill> iddi01: System busy; ask again later.
13:04:57 <iddi01> ^echo !ztest epsilon >+>-(>)*6(>[-[++([(+[{(-)*11(-[{(-)*97[-][++-]>}])%13}])%11]>)*21]])*5(<-<+)*5<+[<<(--+-)*-1]-<-[<(--+-)*-1]+((+)*5>(-)*5>)*6(<(-)*7<(+)*7)*6((+)*13>(-)*13>)*6((>[-[++([(+[{(-)*16(-[{[-][++-+-]>}])%18}])%16]>)*21]])*5>)*3
13:04:57 <fungot> !ztest epsilon >+>-(>)*6(>[-[++([(+[{(-)*11(-[{(-)*97[-][++-]>}])%13}])%11]>)*21]])*5(<-<+)*5<+[<<(--+-)*-1]-<-[<(--+-)*-1]+((+)*5>(-)*5>)*6(<(-)*7<(+)*7)*6((+)*13>(-)*13>)*6((>[-[++([(+[{(-)*16(-[{[-][++-+- ...
13:04:57 <zemhill> fungot: System busy; ask again later.
13:04:57 <fungot> zemhill: ya know, that guy
13:05:40 -!- iddi01 has quit (Client Quit).
13:06:59 -!- tromp has joined.
13:18:18 -!- Lord_of_Life has quit (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine).
13:18:31 -!- Lord_of_Life has joined.
13:18:37 -!- simcop2387 has quit (Ping timeout: 264 seconds).
13:19:02 -!- simcop2387 has joined.
13:48:19 <zemhill> fizzie: System busy; ask again later.
13:52:51 <fizzie> It's gone wrong in some way, but my logs on this aren't particularly informative: https://0x0.st/KMVP.txt
13:54:31 <fizzie> I don't even remember how that whole machinery works.
13:56:23 <fizzie> I think those bits have something to do with handling submissions sent over the web, which arrive on a Unix domain socket.
13:57:34 <fizzie> Eh, I'll just restart it and wait to see if it breaks again.
13:57:38 -!- zemhill has quit (Remote host closed the connection).
13:57:54 -!- zemhill has joined.
13:57:59 <zemhill> fizzie.foo: points -46.00, score 0.00, rank 47/47
13:58:51 <fizzie> I feel like I started a from-scratch rewrite of that whole mess at some point (as one does) and then stopped halfway through (as one also does).
14:05:18 -!- Sgeo has joined.
14:11:37 <fizzie> Oh, I guess it's being used through the web.
14:11:51 <zemhill> web.torshavn: points -46.00, score 0.00, rank 47/47 (-16)
14:12:37 -!- iddi01 has joined.
14:13:00 <iddi01> !zjoust epsilon >+>-(>)*6(>[-[++([(+[{(-)*11(-[{(-)*97[-][++-]>}])%13}])%11]>)*21]])*5(<-<+)*5<+[<<(--+-)*-1]-<-[<(--+-)*-1]+((+)*5>(-)*5>)*6(<(-)*7<(+)*7)*6<(+)*43>((+)*17>(-)*17>)*4>>>>((>[-[++([(+[{(-)*16(-[{[-][++-+-]>}])%18}])%16]>)*21]])*5>)*3
14:13:01 <zemhill> iddi01.epsilon: points 15.12, score 44.55, rank 2/47
14:15:30 <iddi01> that was amongst the most sophisticated 1-line rush program, only to be suppressed by 2/3
14:20:02 -!- iddi01 has quit (Quit: Client closed).
14:57:23 <esolangs> [[User talk:Marcel364]] N https://esolangs.org/w/index.php?oldid=165505 * Marcel364 * (+485) Added everything lol XD
15:05:17 -!- FreeFull has joined.
15:36:05 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
16:04:47 -!- tromp has joined.
16:26:26 <esolangs> [[Special:Log/newusers]] create * SDGL4RNG * New user account
16:30:19 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=165506&oldid=165463 * SDGL4RNG * (+297)
16:44:26 <esolangs> [[Satans Disciples GangLang $]] N https://esolangs.org/w/index.php?oldid=165507 * SDGL4RNG * (+2034) Created page with "Satan's Disciples GangLang is an output only esolang which prints a highly composable programmatic function that reads as "YO! I am the Gang Leader of the Satan's Disciples." == Data storage == Data is stored ''at most'' in People's brains. == Pr
16:49:33 <esolangs> [[Satans Disciples GangLang $]] https://esolangs.org/w/index.php?diff=165508&oldid=165507 * SDGL4RNG * (-28)
16:53:10 <esolangs> [[Satans Disciples GangLang $]] https://esolangs.org/w/index.php?diff=165509&oldid=165508 * SDGL4RNG * (+32)
16:54:41 <esolangs> [[GangLang]] https://esolangs.org/w/index.php?diff=165510&oldid=118689 * SDGL4RNG * (+51)
16:55:14 <esolangs> [[GangLang]] https://esolangs.org/w/index.php?diff=165511&oldid=165510 * SDGL4RNG * (+2)
17:32:50 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
18:24:41 <esolangs> [[GangLang]] https://esolangs.org/w/index.php?diff=165512&oldid=165511 * Corbin * (+24) A bit of cleanup for a joke language.
18:25:24 <esolangs> [[GangLang]] https://esolangs.org/w/index.php?diff=165513&oldid=165512 * Corbin * (+18) Tracked down the year from the reference implementation's commit history.
18:26:56 <esolangs> [[Satans Disciples GangLang $]] https://esolangs.org/w/index.php?diff=165514&oldid=165509 * Corbin * (-181) Not TC. Not even obviously a language. In general, output-only systems aren't going to be TC.
18:29:40 -!- tromp has joined.
19:11:13 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
19:41:35 -!- tromp has joined.
19:57:46 -!- user3456 has left (Leaving).
20:20:59 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
20:27:27 <esolangs> [[Talk:UserEdited]] https://esolangs.org/w/index.php?diff=165515&oldid=165494 * Hotcrystal0 * (+412)
20:28:39 <esolangs> [[Fucktion]] M https://esolangs.org/w/index.php?diff=165516&oldid=165437 * Ractangle * (+6) /* Fucktion Generator */ replaced the precent thing into a format-string
20:29:39 -!- tromp has joined.
20:30:15 -!- tromp has quit (Client Quit).
20:32:25 -!- tromp has joined.
20:41:07 <esolangs> [[T+Riangle]] N https://esolangs.org/w/index.php?oldid=165517 * C++DSUCKER * (+871) Created page with "T+Riangle is a esolang Inspired by [[R + S|R + S]] it operates on a left infinite array of bits and 7 bits of state. At every step it picks the 7 bits of state for all the bits apart from the MSB, and the MSB becomes the next bit. if the bit is at position 0 then
20:43:20 <esolangs> [[Language list]] M https://esolangs.org/w/index.php?diff=165518&oldid=165466 * C++DSUCKER * (+16) i added my 'lovely' language
21:03:14 <esolangs> [[T+Riangle]] https://esolangs.org/w/index.php?diff=165519&oldid=165517 * C++DSUCKER * (+33)
21:12:11 <zzo38> I thought in a operating system design about how many system calls, and I had considered the possibility to have only one system call, in order to avoid some problems with synchronization. The parameters would be: blocking flag, hard yield flag, and the (possibly empty) set of capabilities to use and the operations to do with them (receive, send, discard, lock, etc).
21:39:14 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
00:37:24 <esolangs> [[User:Pifrited/Lang full of special character]] https://esolangs.org/w/index.php?diff=165520&oldid=165503 * PrySigneToFry * (+53)
01:33:21 -!- mscibing has quit (Quit: Konversation terminated!).
02:03:41 -!- amby has 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).
03:14:06 -!- lisbeths has joined.
03:21:30 -!- lmt has joined.
03:27:32 -!- molson has quit (Quit: Leaving).
03:53:14 <zzo38> Do you have an opinion about that?
04:17:52 <esolangs> [[Teiwaz]] N https://esolangs.org/w/index.php?oldid=165521 * PrySigneToFry * (+37207) Created page with "Teiwaz is a programming language designed by PSTF. In the timeline 284436, it was designed by Wolfgang Thinnosk in Scandinavia Union as variant of Python which was created by Guido von Rossum of Netherlands in the timeline 1. The document is also in the timeline
04:28:58 <esolangs> [[Language list]] https://esolangs.org/w/index.php?diff=165522&oldid=165518 * PrySigneToFry * (+40)
04:37:43 <esolangs> [[User talk:Aadenboy]] M https://esolangs.org/w/index.php?diff=165523&oldid=164632 * PrySigneToFry * (+62)
04:42:47 <esolangs> [[User:PrySigneToFry]] https://esolangs.org/w/index.php?diff=165524&oldid=164600 * PrySigneToFry * (+109)
05:18:16 <esolangs> [[WhatLang]] https://esolangs.org/w/index.php?diff=165525&oldid=160231 * DGCK81LNN * (+3304)
05:19:23 <esolangs> [[WhatLang]] M https://esolangs.org/w/index.php?diff=165526&oldid=165525 * DGCK81LNN * (+24)
05:23:11 -!- lisbeths has quit (Quit: Connection closed for inactivity).
05:34:55 <esolangs> [[WhatLang]] M https://esolangs.org/w/index.php?diff=165527&oldid=165526 * DGCK81LNN * (+264) /* Common extension */
05:35:57 <esolangs> [[WhatLang]] M https://esolangs.org/w/index.php?diff=165528&oldid=165527 * DGCK81LNN * (+0) /* Common extension */
05:36:19 <esolangs> [[Talk:UserEdited/Versions]] N https://esolangs.org/w/index.php?oldid=165529 * Jk.NDC * (+137) Created page with "What does TBR mean? Is there something special about it?--~~~~"
05:36:21 <esolangs> [[WhatLang]] M https://esolangs.org/w/index.php?diff=165530&oldid=165528 * DGCK81LNN * (+0) /* Common extension */
05:46:19 <esolangs> [[WhatLang]] https://esolangs.org/w/index.php?diff=165531&oldid=165530 * DGCK81LNN * (+560) /* Builtin functions */
05:50:31 <esolangs> [[Finder]] https://esolangs.org/w/index.php?diff=165532&oldid=165328 * ChuckEsoteric08 * (-1) /* Computational class */
05:54:13 <esolangs> [[Wuht]] https://esolangs.org/w/index.php?diff=165533&oldid=165484 * Jk.NDC * (+1047) /* Conditionals and If */
05:55:40 <esolangs> [[Wuht]] https://esolangs.org/w/index.php?diff=165534&oldid=165533 * Jk.NDC * (+146) /* Clarification of Terms and Stuff */
06:05:43 <esolangs> [[Wuht]] https://esolangs.org/w/index.php?diff=165535&oldid=165534 * Jk.NDC * (+656)
06:10:48 <esolangs> [[Wuht]] https://esolangs.org/w/index.php?diff=165536&oldid=165535 * Jk.NDC * (+181) /* General/Misc. */
06:11:27 -!- lmt has left.
06:42:32 <esolangs> [[Fraction]] https://esolangs.org/w/index.php?diff=165537&oldid=165504 * U * (-708) Blanked the page
06:48:06 <esolangs> [[TDQ]] https://esolangs.org/w/index.php?diff=165538&oldid=165043 * ChuckEsoteric08 * (+1) /* Translation */
07:12:47 <esolangs> [[Wuht]] https://esolangs.org/w/index.php?diff=165539&oldid=165536 * Jk.NDC * (-2) /* Condition Writing */
07:14:53 -!- tromp has joined.
07:46:32 <b_jonas> fungot, are inveterates a group of animals?
07:46:32 <fungot> b_jonas: i have a few primitive types. e.g. completions and similar prompty stuff " popup" in buffers... it looks neat... it'd be the fnord
07:56:52 -!- Lord_of_Life has quit (Excess Flood).
07:57:21 -!- Lord_of_Life has joined.
08:25:46 <esolangs> [[Emblema]] N https://esolangs.org/w/index.php?oldid=165540 * ChuckEsoteric08 * (+2173) New Turing-complete language
08:26:23 <esolangs> [[User:ChuckEsoteric08]] https://esolangs.org/w/index.php?diff=165541&oldid=165329 * ChuckEsoteric08 * (+14) /* 2025 */
09:05:48 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
10:12:13 -!- Sgeo has quit (Read error: Connection reset by peer).
10:17:13 <esolangs> [[User:Vertical tab 'N]] M https://esolangs.org/w/index.php?diff=165542&oldid=157010 * Vertical Tab 'N * (-2) /* Java */ Remove trailing new line
10:20:50 <esolangs> [[User:Vertical tab 'N]] https://esolangs.org/w/index.php?diff=165543&oldid=165542 * Vertical Tab 'N * (+105)
10:21:16 <esolangs> [[User talk:TenBillionPlusOne]] https://esolangs.org/w/index.php?diff=165544&oldid=158796 * PrySigneToFry * (+162) /* Why do you hate yourself so much? */ new section
10:38:59 <esolangs> [[Brafuck]] N https://esolangs.org/w/index.php?oldid=165545 * Vertical Tab 'N * (+434) [[User:Vertical tab 'N]] went unnoticed, so I created this
10:44:58 <esolangs> [[Talk:BRaInFUCK]] N https://esolangs.org/w/index.php?oldid=165546 * Vertical Tab 'N * (+274) Created page with "The musician's name gives a syntax error - first it prints a null byte, and then it tries to end a non-existent loop before attempting to start another one. ~~~~"
10:46:45 -!- tromp has joined.
10:49:19 <esolangs> [[Brainfuck]] https://esolangs.org/w/index.php?diff=165547&oldid=165373 * Vertical Tab 'N * (+11)
10:51:37 <esolangs> [[Language list]] https://esolangs.org/w/index.php?diff=165548&oldid=165522 * Vertical Tab 'N * (+17) /* B */ [[Brafuck]]
10:57:49 <esolangs> [[Brafuck]] https://esolangs.org/w/index.php?diff=165549&oldid=165545 * Vertical Tab 'N * (+202)
11:01:08 <esolangs> [[Brafuck]] https://esolangs.org/w/index.php?diff=165550&oldid=165549 * Vertical Tab 'N * (+16)
11:01:27 <esolangs> [[Brafuck]] https://esolangs.org/w/index.php?diff=165551&oldid=165550 * Vertical Tab 'N * (+27)
11:02:37 <esolangs> [[Brafuck]] M https://esolangs.org/w/index.php?diff=165552&oldid=165551 * Vertical Tab 'N * (+64)
11:04:30 <esolangs> [[Brafuck]] https://esolangs.org/w/index.php?diff=165553&oldid=165552 * Vertical Tab 'N * (+16)
11:07:07 <esolangs> [[Brafuck]] https://esolangs.org/w/index.php?diff=165554&oldid=165553 * Vertical Tab 'N * (+16)
11:07:50 <esolangs> [[Brafuck]] https://esolangs.org/w/index.php?diff=165555&oldid=165554 * Vertical Tab 'N * (+36)
11:16:19 <esolangs> [[Brafuck]] https://esolangs.org/w/index.php?diff=165556&oldid=165555 * Vertical Tab 'N * (+143)
11:18:08 <esolangs> [[Brafuck]] https://esolangs.org/w/index.php?diff=165557&oldid=165556 * Vertical Tab 'N * (+15)
11:19:56 <esolangs> [[Brafuck]] https://esolangs.org/w/index.php?diff=165558&oldid=165557 * Vertical Tab 'N * (+17)
11:22:21 <esolangs> [[Brafuck]] https://esolangs.org/w/index.php?diff=165559&oldid=165558 * Vertical Tab 'N * (+56)
11:33:51 -!- Lord_of_Life_ has joined.
11:34:26 <esolangs> [[Brafuck]] https://esolangs.org/w/index.php?diff=165560&oldid=165559 * Vertical Tab 'N * (+43)
11:34:36 -!- Lord_of_Life has quit (Ping timeout: 256 seconds).
11:35:11 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
11:36:49 <esolangs> [[Brafuck]] https://esolangs.org/w/index.php?diff=165561&oldid=165560 * Vertical Tab 'N * (+32)
11:38:21 <esolangs> [[UserEdited]] https://esolangs.org/w/index.php?diff=165562&oldid=164170 * MihaiEso * (+1482)
11:39:21 <esolangs> [[UserEdited/Versions]] https://esolangs.org/w/index.php?diff=165563&oldid=163528 * MihaiEso * (+51)
11:45:18 <esolangs> [[Talk:UserEdited/Versions]] https://esolangs.org/w/index.php?diff=165564&oldid=165529 * MihaiEso * (+330)
11:45:55 <esolangs> [[Brafuck]] https://esolangs.org/w/index.php?diff=165565&oldid=165561 * Vertical Tab 'N * (+18)
11:45:59 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
11:48:40 <esolangs> [[Brafuck]] https://esolangs.org/w/index.php?diff=165566&oldid=165565 * Vertical Tab 'N * (+32)
11:53:39 -!- amby has joined.
11:56:25 <esolangs> [[Brafuck]] https://esolangs.org/w/index.php?diff=165567&oldid=165566 * Vertical Tab 'N * (+25)
11:56:34 <esolangs> [[User:MihaiEso]] https://esolangs.org/w/index.php?diff=165568&oldid=165242 * MihaiEso * (+31) /* My targets */
11:57:10 <esolangs> [[User:MihaiEso]] https://esolangs.org/w/index.php?diff=165569&oldid=165568 * MihaiEso * (+11) /* My targets */
12:00:19 <esolangs> [[User talk:DGCK81LNN]] N https://esolangs.org/w/index.php?oldid=165570 * Vertical Tab 'N * (+176) Created page with "Help us expand [[User:Vertical tab 'N]] and [[Brafuck]] ~~~~"
12:04:45 <esolangs> [[User:Vertical tab 'N]] https://esolangs.org/w/index.php?diff=165571&oldid=165543 * Vertical Tab 'N * (+57) /* Brainfuck */
12:09:38 -!- tromp has joined.
12:10:02 <esolangs> [[User:Vertical tab 'N]] https://esolangs.org/w/index.php?diff=165572&oldid=165571 * Vertical Tab 'N * (+117) /* Mendeleev */
12:46:15 <esolangs> [[UserEdited]] https://esolangs.org/w/index.php?diff=165573&oldid=165562 * PrySigneToFry * (+820)
13:19:51 -!- lynndotpy60 has quit (Quit: bye bye).
13:21:00 -!- lynndotpy60 has joined.
13:30:57 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
13:32:55 -!- tromp has joined.
15:11:30 -!- iddi01 has joined.
15:11:58 <iddi01> !ztest epsilon http://127.0.0.1:3000/
15:11:58 <zemhill> iddi01: URL fetch problems: Failed to open TCP connection to 127.0.0.1:3000 (Connection refused - connect(2) for 127.0.0.1:3000)
15:12:27 -!- iddi01 has quit (Client Quit).
15:12:44 -!- lisbeths has joined.
15:13:43 -!- iddi01 has joined.
15:13:49 <iddi01> !ztest epsilon >+>-(>)*6(>[-[-[-[++++[+[+([(+[{(-)*11(-[{(-)*97[-][++-]>}])%13}])%9]>)*21]]]]]])*5(<-<+)*5<+[<<(-)*132(>)*13(>[-[+([(+[{(-)*11(-[{(-)*97[-][++-]>}])%13}])%11]>)*21]])*16]-<-[<(-)*132(>)*13(>[-[+([(+[{(-)*11(-[{(-)*97[-][++-]>}])%13}])%11]>)*21]])*16]+((+)*5>(-)*5>)*6(<(-)*7<(+)*7)*6<(+)*43>((+)*17>(-)*17>)*4>>>>>((>[-[+([(+[{(-)*16(
15:13:49 <zemhill> iddi01: parse error: starting ( without a matching )
15:13:50 <iddi01> -[{[-][++-+-[++-+-]]>}])%18}])%16]>)*21]]+)*2>)*4([(+[{(-)*16(-[{[-][++-+-[++-+-]]>}])%18}])%16]>)*-1
15:14:42 <iddi01> !ztest epsilon >+>-(>)*6(>[-[-[-[++++[+[+([(+[{(-)*11(-[{(-)*97[-][++-]>}])%13}])%9]>)*21]]]]]])*5(<-<+)*5<+[<<(-)*132(>)*13(>[-[+([(+[{(-)*11(-[{(-)*97[-][++-]>}])%13}])%11]>)*21]])*16]-<-[<(-)*132(>)*13(>[-[+([(+[{(-)*11(-[{(-)*97[-][++-]>}])%13}])%11]>)*21]])*16]+
15:14:42 <zemhill> iddi01.epsilon: points -17.98, score 8.65, rank 47/47 (-45)
15:14:43 <iddi01> ((+)*5>(-)*5>)*6(<(-)*7<(+)*7)*6<(+)*43>((+)*17>(-)*17>)*4>>>>>((>[-[+([(+[{(-)*16(-[{[-][++-+-[++-+-]]>}])%18}])%16]>)*21]]+)*2>)*4([(+[{(-)*16(-[{[-][++-+-[++-+-]]>}])%18}])%16]>)*-1
15:18:25 <iddi01> !ztest epsilon https://pastebin.com/raw/nCDR7aQ6
15:18:26 <zemhill> iddi01.epsilon: points 19.29, score 53.15, rank 2/47 (--)
15:18:44 <iddi01> !zjoust epsilon https://pastebin.com/raw/nCDR7aQ6
15:18:44 <zemhill> iddi01.epsilon: points 19.29, score 53.15, rank 2/47 (--)
15:19:15 <esolangs> [[Iterate/Math]] https://esolangs.org/w/index.php?diff=165574&oldid=165468 * Aadenboy * (+771) implement floored logB(A) and categorize
15:19:41 <iddi01> !ztest epsilon https://127.0.0.1:3000/
15:19:41 <zemhill> iddi01: URL fetch problems: Failed to open TCP connection to 127.0.0.1:3000 (Connection refused - connect(2) for 127.0.0.1:3000)
15:20:01 <iddi01> !ztest epsilon https://127.0.0.1:3000/
15:20:01 <zemhill> iddi01: URL fetch problems: Failed to open TCP connection to 127.0.0.1:3000 (Connection refused - connect(2) for 127.0.0.1:3000)
15:20:18 -!- iddi01 has quit (Quit: Client closed).
15:23:30 <int-e> what's next, file:// ?
15:24:00 <int-e> !ztest don'tmindme file:///etc/passwd
15:24:00 <zemhill> int-e: Program name (don'tmindme) is restricted to characters in [a-zA-Z0-9_-], sorry.
15:24:12 <int-e> !ztest dontmindme file:///etc/passwd
15:24:12 <zemhill> int-e.dontmindme: points -31.52, score 4.04, rank 47/47
15:24:52 <int-e> Oh it hopefully interpreted that as an empty program
15:26:02 <int-e> !ztest dontmindme file:///usr/bin/[
15:26:02 <zemhill> int-e: parse error: starting [ without a matching ]
15:35:42 <esolangs> [[T+Riangle]] https://esolangs.org/w/index.php?diff=165575&oldid=165519 * C++DSUCKER * (+0)
15:35:58 <esolangs> [[T+Riangle]] https://esolangs.org/w/index.php?diff=165576&oldid=165575 * C++DSUCKER * (+2)
15:49:58 <esolangs> [[Special:Log/upload]] upload * SDGL4RNG * uploaded "[[File:$$Aleph 0x1111111100000001.png]]"
15:51:47 -!- Lord_of_Life has quit (Excess Flood).
15:54:57 <esolangs> [[$$Aleph 0x1111111100000001.png]] N https://esolangs.org/w/index.php?oldid=165578 * SDGL4RNG * (+70) Created page with "[[File:$$Aleph 0x1111111100000001.png|thumb|alt=nope(4)|nope program]]"
15:55:27 -!- Lord_of_Life has joined.
15:55:42 <esolangs> [[Special:Log/move]] move * Corbin * moved [[User:Vertical tab 'N]] to [[Vertical tab 'N]]: Program form (output-only challenge), not user. Heads up: user page once belonged to alt of ColorfulGalaxy.
15:56:18 <esolangs> [[$$Aleph 0x1111111100000001.png]] https://esolangs.org/w/index.php?diff=165581&oldid=165578 * SDGL4RNG * (+45)
15:56:31 <esolangs> [[$$Aleph 0x1111111100000001.png]] https://esolangs.org/w/index.php?diff=165582&oldid=165581 * SDGL4RNG * (-20) /* Nope(4) */
16:10:32 <esolangs> [[User:TheSpiderNinjas]] https://esolangs.org/w/index.php?diff=165583&oldid=164805 * TheSpiderNinjas * (+11)
16:11:56 <esolangs> [[Sigq]] N https://esolangs.org/w/index.php?oldid=165584 * TheSpiderNinjas * (+1385) Created page with " == Stuff == <pre> ! True ? False !?! Binary, ! for 1 and ? for 0 1 Variable {7} Number, only works as a value 0 = !?! Set a var to a value ^= for specifically bool #= for specifically int 0? [ ] If the value is true run the block of code 0? < > While the v
16:12:16 <esolangs> [[Sigq]] https://esolangs.org/w/index.php?diff=165585&oldid=165584 * TheSpiderNinjas * (+35)
16:19:17 <esolangs> [[Sigq]] https://esolangs.org/w/index.php?diff=165586&oldid=165585 * TheSpiderNinjas * (+135)
17:22:02 -!- lisbeths has quit (Quit: Connection closed for inactivity).
17:25:13 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
17:35:55 -!- tromp has joined.
18:15:33 -!- Sgeo has joined.
18:31:40 <esolangs> [[User:Hotcrystal0/Sandbox]] https://esolangs.org/w/index.php?diff=165587&oldid=165469 * Hotcrystal0 * (+775) B3/S23
18:39:33 -!- Everything has joined.
18:39:57 <Everything> Hi all. Has anybody tried this as esolang? https://en.wikipedia.org/wiki/Dyck_language Maybe, unlambda-type language?
18:58:21 <korvo> Everything: Sure. Many Lisps are Dyck. From my list, my language Cammy is Dyck and S-expressions are Dyck in general.
19:00:04 <korvo> I should add Dyck monoids to [[monoid]]. I don't know if we use them anywhere, but they might be useful for justifying why e.g. Brainfuck has a semantic monoid.
19:06:57 <Everything> No, without functions. Only nested parentheses. Is it possible?
19:10:04 <int-e> you can write Iota weirdly with () = ι
19:11:42 <int-e> or other languages with the same kind of syntax, e.g., https://treecalcul.us/
19:14:56 <korvo> Everything: In general, *any* language is going to eventually yield something with interesting computational content. Do you have a goal in mind?
19:17:31 <korvo> More interesting to me is e.g. the fact that Dyck grammars can be efficiently parsed mid-document; they are more efficient than CFGs when doing online text-editing, LSP processing, tree-sitting, etc.
19:26:42 <Everything> I have no specific idea, just curious.
19:30:08 <korvo> I guess that the answer is that *the* Dyck language, balanced parens, is already a very well-known language. It's often just called BP. It's not esoteric at all.
19:30:34 <esolangs> [[User:PrySigneToFry/Silicon dioxide in a polypropylene box/Chess between HCr0 and PSTF]] https://esolangs.org/w/index.php?diff=165588&oldid=164113 * Hotcrystal0 * (+126)
19:40:27 -!- joast has quit (Quit: Leaving.).
20:44:39 <esolangs> [[Iterate/Math]] https://esolangs.org/w/index.php?diff=165589&oldid=165574 * Aadenboy * (+8) /* logB A (floored) */ indent
20:53:50 -!- Everything has quit (Quit: leaving).
21:35:59 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
21:44:08 -!- molson has joined.
21:50:16 -!- tromp has joined.
21:54:03 <esolangs> [[?barinfuck]] N https://esolangs.org/w/index.php?oldid=165590 * HyperbolicireworksPen * (+375) Created page with "?brainfuck is a simple derivative of brainfuck that allows it to be non-deterministic. It adds one command. the command: ? if cell is 0 it stays that way, if the cell is positive it is set to a random number in the set {1,2,...,x} where x is the value
21:55:03 -!- joast has joined.
21:55:46 <esolangs> [[?barinfuck]] https://esolangs.org/w/index.php?diff=165591&oldid=165590 * HyperbolicireworksPen * (+109)
21:57:07 <esolangs> [[?barinfuck]] https://esolangs.org/w/index.php?diff=165592&oldid=165591 * HyperbolicireworksPen * (-1)
21:59:31 <esolangs> [[?barinfuck]] https://esolangs.org/w/index.php?diff=165593&oldid=165592 * HyperbolicireworksPen * (+166)
21:59:57 <esolangs> [[?barinfuck]] https://esolangs.org/w/index.php?diff=165594&oldid=165593 * HyperbolicireworksPen * (-649) Blanked the page
22:00:22 <esolangs> [[?brainfuck]] N https://esolangs.org/w/index.php?oldid=165595 * HyperbolicireworksPen * (+649) Created page with "?brainfuck is a simple derivative of brainfuck that allows it to be non-deterministic. It adds one command. the command: ? if cell is 0 it stays that way, if the cell is positive it is set to a random number in the set {1,2,...,x} where x is the value
22:00:36 <esolangs> [[User:HyperbolicireworksPen]] https://esolangs.org/w/index.php?diff=165596&oldid=164434 * HyperbolicireworksPen * (+16)
22:18:08 <esolangs> [[?brainfuck]] https://esolangs.org/w/index.php?diff=165597&oldid=165595 * HyperbolicireworksPen * (+410)
22:25:00 <esolangs> [[?brainfuck]] https://esolangs.org/w/index.php?diff=165598&oldid=165597 * HyperbolicireworksPen * (-15)
22:25:05 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
22:38:15 <esolangs> [[?brainfuck]] https://esolangs.org/w/index.php?diff=165599&oldid=165598 * HyperbolicireworksPen * (+392)
22:40:49 <esolangs> [[?brainfuck]] https://esolangs.org/w/index.php?diff=165600&oldid=165599 * HyperbolicireworksPen * (+30)
23:30:02 <esolangs> [[?brainfuck]] https://esolangs.org/w/index.php?diff=165601&oldid=165600 * HyperbolicireworksPen * (+138)
23:30:19 <esolangs> [[?brainfuck]] M https://esolangs.org/w/index.php?diff=165602&oldid=165601 * HyperbolicireworksPen * (-1)
00:43:13 -!- amby has 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).
01:17:53 <zzo38> How to record a video DVD on Linux from a MPEG-TS file with H.264 and AAC codec and keeping any existing EIA-608 captions in the recording?
02:05:03 -!- op_4 has quit (Remote host closed the connection).
02:05:33 -!- op_4 has joined.
03:30:58 <esolangs> [[Special:Log/newusers]] create * MCLMLI * New user account
04:14:53 -!- tromp has joined.
04:15:25 -!- tromp has quit (Client Quit).
05:29:17 -!- nitrix has changed nick to nitrix-or-treat.
06:13:29 <esolangs> [[User:PrySigneToFry/Silicon dioxide in a polypropylene box/Chess between HCr0 and PSTF]] https://esolangs.org/w/index.php?diff=165603&oldid=165588 * PrySigneToFry * (+236)
06:55:31 -!- tromp has joined.
07:32:55 <esolangs> [[Emblema]] https://esolangs.org/w/index.php?diff=165604&oldid=165540 * ChuckEsoteric08 * (+29) /* Description */
07:33:07 <esolangs> [[Emblema]] https://esolangs.org/w/index.php?diff=165605&oldid=165604 * ChuckEsoteric08 * (+1) /* Description */
08:05:20 <esolangs> [[BytePusher]] https://esolangs.org/w/index.php?diff=165606&oldid=162819 * Mad4j * (+306) /* Programs */
08:08:58 <esolangs> [[User talk:Fizzie]] https://esolangs.org/w/index.php?diff=165607&oldid=153400 * U * (+465) /* Deletion of Isec, Why Isec is turing swamp?, Isec TC proof, IBSE and Fraction. */ new section
09:30:20 -!- Sgeo has quit (Read error: Connection reset by peer).
09:57:28 <esolangs> [[I]] N https://esolangs.org/w/index.php?oldid=165608 * U * (+315) Created page with "using 2 0. op: if increased first is 0, second is increasing. at end first will be divided on second. interpreter on c(z: unsigned 16bit number of ops, after z= is it, memory(x and y) is signed 8bit):const unsigned char main(void){{char x=0b0,y=0b0;{unsigned short z=;while(z){x++;if
10:00:05 <esolangs> [[I]] https://esolangs.org/w/index.php?diff=165609&oldid=165608 * U * (+17)
10:16:47 -!- Everything has joined.
11:07:51 <esolangs> [[Special:Log/newusers]] create * Chat Majest * New user account
11:26:15 <esolangs> [[Llvln]] N https://esolangs.org/w/index.php?oldid=165610 * TheSpiderNinjas * (+106) Created page with "'''LLvlN''' or Low-Level Nonsense is not a language, make LLvlN an actual language [[Category:Low-level]]"
11:34:12 -!- Lord_of_Life_ has joined.
11:34:49 -!- Lord_of_Life has quit (Ping timeout: 264 seconds).
11:35:29 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
11:44:58 -!- amby has joined.
11:45:42 <esolangs> [[Stakr]] N https://esolangs.org/w/index.php?oldid=165611 * TheSpiderNinjas * (+1449) Creation
11:45:59 <esolangs> [[Fuckbrain]] https://esolangs.org/w/index.php?diff=165612&oldid=164182 * TheSpiderNinjas * (+29)
11:48:38 <esolangs> [[Stakr]] https://esolangs.org/w/index.php?diff=165613&oldid=165611 * TheSpiderNinjas * (+7)
11:56:44 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
12:08:16 -!- tromp has joined.
12:41:14 -!- Lord_of_Life has quit (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine).
12:42:37 -!- Lord_of_Life has joined.
13:56:08 <esolangs> [[UserEdited]] M https://esolangs.org/w/index.php?diff=165614&oldid=165573 * I am islptng * (+8) Updated music player link
14:08:50 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
14:54:25 -!- simcop2387 has quit (Quit: ZNC 1.9.1+deb2+b3 - https://znc.in).
14:54:25 -!- perlbot has quit (Quit: ZNC 1.9.1+deb2+b3 - https://znc.in).
15:46:55 -!- chloetax has quit (Quit: Leaving).
15:47:17 -!- chloetax has joined.
15:49:53 -!- impomatic has joined.
15:58:31 <esolangs> [[Special:Log/delete]] delete * Fizzie * deleted "[[Why isec is turing swamp?]]": Author request: author blanked the page, no edits from other users
15:59:50 <esolangs> [[Special:Log/delete]] delete * Fizzie * deleted "[[Isec]]": Author request: author blanked the page, no edits from other users
16:01:02 <esolangs> [[Special:Log/delete]] delete * Fizzie * deleted "[[Isec TC proof]]": Author request: author blanked the page, no edits from other users
16:02:02 <esolangs> [[Special:Log/delete]] delete * Fizzie * deleted "[[IBSE]]": Author request: author blanked the page, no edits from other users
16:02:28 <esolangs> [[Special:Log/delete]] delete * Fizzie * deleted "[[Fraction]]": Author request: author blanked the page, no edits from other users
16:08:23 <esolangs> [[User talk:Fizzie]] https://esolangs.org/w/index.php?diff=165615&oldid=165607 * Fizzie * (+709) /* Deletion of Isec, Why Isec is turing swamp?, Isec TC proof, IBSE and Fraction. */ Reply.
16:29:34 -!- tromp has joined.
16:40:34 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
17:36:31 -!- tromp has joined.
17:51:11 <esolangs> [[Llvln]] https://esolangs.org/w/index.php?diff=165616&oldid=165610 * TheSpiderNinjas * (+8947) Created comprehensive documentation for LLvlN esoteric programming language
17:53:41 <esolangs> [[Llvln]] https://esolangs.org/w/index.php?diff=165617&oldid=165616 * TheSpiderNinjas * (-24) Comet Created This In My Name With My Account Bru
18:03:28 <esolangs> [[Llvln]] https://esolangs.org/w/index.php?diff=165618&oldid=165617 * TheSpiderNinjas * (+37) /* Truth Machine */
18:15:39 <esolangs> [[Llvln]] https://esolangs.org/w/index.php?diff=165619&oldid=165618 * TheSpiderNinjas * (+655) Added implementation link and usage example for LLvlN interpreter.
18:18:20 <esolangs> [[Llvln]] https://esolangs.org/w/index.php?diff=165620&oldid=165619 * Corbin * (-17) Tag as AI-generated; Comet Browser is a Perplexity product. Also clarify the otherwise-incorrect TC claim. The instructions are very similar to 6502/8086-ish CPUs (because chatbots have no imagination) so plenty of existing code should port. Almost entirely unrelated to BF.
18:19:42 <esolangs> [[Talk:Llvln]] N https://esolangs.org/w/index.php?oldid=165621 * Corbin * (+335) And this is why chatbots aren't helping y'all learn.
18:22:31 <esolangs> [[Special:Log/move]] move * Aadenboy * moved [[Llvln]] to [[LLvlN]]: move to correct title
18:22:31 <esolangs> [[Special:Log/move]] move * Aadenboy * moved [[Talk:Llvln]] to [[Talk:LLvlN]]: move to correct title
18:22:48 <esolangs> [[LLvlN]] https://esolangs.org/w/index.php?diff=165626&oldid=165622 * Aadenboy * (-27) remove hatnote
18:23:36 <esolangs> [[LLvlN]] https://esolangs.org/w/index.php?diff=165627&oldid=165626 * TheSpiderNinjas * (-624)
18:26:32 -!- Sgeo has joined.
18:34:38 <esolangs> [[Stack]] M https://esolangs.org/w/index.php?diff=165628&oldid=127302 * Corbin * (-99) See also.
18:36:31 -!- Everything has quit (Quit: leaving).
18:39:43 <esolangs> [[LLvlN]] https://esolangs.org/w/index.php?diff=165629&oldid=165627 * TheSpiderNinjas * (+7)
18:47:42 <esolangs> [[LLvlN-mini]] N https://esolangs.org/w/index.php?oldid=165630 * TheSpiderNinjas * (+5580) Created LLvlN-mini variant page - a minimalist subset of LLvlN with 4 registers and 12 instructions
18:50:01 <esolangs> [[LLvlN]] https://esolangs.org/w/index.php?diff=165631&oldid=165629 * TheSpiderNinjas * (+30) Updated Variants section to link to newly created LLvlN-mini page
18:50:35 <esolangs> [[LLvlN]] https://esolangs.org/w/index.php?diff=165632&oldid=165631 * TheSpiderNinjas * (-21)
18:51:41 <esolangs> [[LLvlN-mini]] https://esolangs.org/w/index.php?diff=165633&oldid=165630 * TheSpiderNinjas * (+1)
18:52:00 <esolangs> [[LLvlN-mini]] https://esolangs.org/w/index.php?diff=165634&oldid=165633 * TheSpiderNinjas * (-41) Requested deletion by creator
18:52:19 <esolangs> [[LLvlN-mini]] https://esolangs.org/w/index.php?diff=165635&oldid=165634 * TheSpiderNinjas * (+1)
18:53:08 <esolangs> [[LLvlN]] https://esolangs.org/w/index.php?diff=165636&oldid=165632 * TheSpiderNinjas * (-80)
18:55:59 <zzo38> How to extract the raw EIA-608 data from a H.264 video from a MPEG-TS file? How can I then map the timing correctly if the video (which may have discontinuities due to commercial breaks) is then converted to DVD format?
18:57:34 <esolangs> [[LLvlN++]] N https://esolangs.org/w/index.php?oldid=165637 * TheSpiderNinjas * (+10006) Created LLvlN++ page - extension of LLvlN with functions and procedure calls
18:58:50 <esolangs> [[LLvlN++]] https://esolangs.org/w/index.php?diff=165638&oldid=165637 * TheSpiderNinjas * (-12)
18:59:01 <esolangs> [[LLvlN]] https://esolangs.org/w/index.php?diff=165639&oldid=165636 * TheSpiderNinjas * (+31) Link LLvlN++ variant to its new page
18:59:31 <esolangs> [[LLvlN++]] https://esolangs.org/w/index.php?diff=165640&oldid=165638 * TheSpiderNinjas * (-80)
19:09:34 <esolangs> [[LLvlN++]] https://esolangs.org/w/index.php?diff=165641&oldid=165640 * TheSpiderNinjas * (+2394) Integrated OOP and Async features as core parts of LLvlN++ rather than separate extensions
19:18:08 -!- impomatic has quit (Quit: Client closed).
19:18:22 <esolangs> [[LLvlN-FLOAT]] N https://esolangs.org/w/index.php?oldid=165642 * TheSpiderNinjas * (+11215) Created LLvlN-FLOAT variant page with floating-point spice registers, replaces originally proposed LLvlN-spicy
19:21:33 <esolangs> [[LLvlN-FLOAT]] https://esolangs.org/w/index.php?diff=165643&oldid=165642 * TheSpiderNinjas * (-131)
19:23:19 <esolangs> [[LLvlN]] https://esolangs.org/w/index.php?diff=165644&oldid=165639 * TheSpiderNinjas * (-70) Add link to LLvlN-FLOAT in Variants and See Also sections (LLvlN-FLOAT is the official floating-point extension, formerly LLvlN-spicy)
19:25:24 <esolangs> [[LLvlN]] https://esolangs.org/w/index.php?diff=165645&oldid=165644 * TheSpiderNinjas * (-23)
19:28:29 <esolangs> [[LLvlN-FLOAT]] https://esolangs.org/w/index.php?diff=165646&oldid=165643 * TheSpiderNinjas * (-122)
19:40:14 <esolangs> [[Quantum-LLvlN]] N https://esolangs.org/w/index.php?oldid=165647 * TheSpiderNinjas * (+3354) Created new Quantum-LLvlN esolang article
19:46:31 <esolangs> [[Stack]] https://esolangs.org/w/index.php?diff=165648&oldid=165628 * Corbin * (+2302) /* Operations */ Explain stack effects and stack-effect notation. Also quickly prove that ROT can't be built from stack-shufflers that only touch two arguments at a time.
20:05:42 <korvo> Wow, that's a lot of slop to clean up.
20:15:38 <int-e> "created in 2025 by Comet AI Browser"
20:15:59 <int-e> (if the weird itemized style didn't make it obvious already, it even tells on itself?)
20:36:20 <esolangs> [[Stack]] https://esolangs.org/w/index.php?diff=165649&oldid=165648 * Corbin * (+3739) Demonstrate the two-stack zipper technique. This is well-known folklore.
20:46:19 <esolangs> [[LLvlN++]] https://esolangs.org/w/index.php?diff=165650&oldid=165641 * Corbin * (-68) Remove hallucinated categories. Discuss at [[esolang:categorization]] first, please!
20:52:00 <esolangs> [[Talk:LLvlN-FLOAT]] N https://esolangs.org/w/index.php?oldid=165651 * Corbin * (+478) Some options for improvement.
20:52:31 <esolangs> [[LLvlN-FLOAT]] https://esolangs.org/w/index.php?diff=165652&oldid=165646 * Corbin * (-28) Remove hallucinated category.
20:57:24 <esolangs> [[Talk:Quantum-LLvlN]] N https://esolangs.org/w/index.php?oldid=165653 * Corbin * (+491) Sorry, this one ain't gonna work. Good luck implementing it!
20:59:20 <esolangs> [[Quantum-LLvlN]] M https://esolangs.org/w/index.php?diff=165654&oldid=165647 * Corbin * (+12) Fix links; Q is a real language but it's not [[Q]]. Quipper's a real language too.
21:01:18 <esolangs> [[LLvlN-mini]] https://esolangs.org/w/index.php?diff=165655&oldid=165635 * Corbin * (-31) Removing hallucinated category.
21:22:02 -!- zzo38 has quit (Ping timeout: 248 seconds).
21:26:43 <esolangs> [[Iterate/Subset]] N https://esolangs.org/w/index.php?oldid=165656 * Aadenboy * (+1227) write a stub on an esoteric subset of iterate. I think the descriptions are fine, it's just the examples that are needed. it might be fun to try and program in this subset as there might be other complications that maybe aren't obvious here
21:29:48 <esolangs> [[Iterate]] https://esolangs.org/w/index.php?diff=165657&oldid=165434 * Aadenboy * (+288) clarify on what a visit is, and link to [[Iterate/Subset]] and [[Iterate/Math]] in a new section
21:32:28 <esolangs> [[Pola]] N https://esolangs.org/w/index.php?oldid=165658 * Corbin * (+768) Stub for a fun restricted language: if you can implement a 3SAT solver in Pola then P=NP.
21:37:54 -!- zzo38 has joined.
21:46:48 -!- zzo38 has quit (Ping timeout: 256 seconds).
21:48:49 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
21:55:10 -!- simcop2387 has joined.
22:01:11 -!- perlbot has joined.
22:10:22 -!- perlbot has quit (Ping timeout: 246 seconds).
22:10:37 -!- simcop2387 has quit (Ping timeout: 260 seconds).
22:41:06 -!- simcop2387 has joined.
22:44:08 -!- perlbot has joined.
22:51:51 <esolangs> [[Neko]] https://esolangs.org/w/index.php?diff=165659&oldid=159428 * Dmiz * (+194)
22:55:17 <esolangs> [[Neko]] https://esolangs.org/w/index.php?diff=165660&oldid=165659 * Dmiz * (-48)
22:57:20 <esolangs> [[Neko]] https://esolangs.org/w/index.php?diff=165661&oldid=165660 * Dmiz * (-6)
23:13:17 <esolangs> [[Neko]] https://esolangs.org/w/index.php?diff=165662&oldid=165661 * Dmiz * (-18)
23:13:53 <esolangs> [[Neko]] https://esolangs.org/w/index.php?diff=165663&oldid=165662 * Dmiz * (+16)
23:15:45 -!- perlbot has quit (Ping timeout: 256 seconds).
23:15:45 -!- simcop2387 has quit (Ping timeout: 256 seconds).
23:15:48 -!- simcop2387_ has joined.
23:17:18 -!- simcop2387_ has changed nick to simcop2387.
23:19:48 <esolangs> [[Neko]] https://esolangs.org/w/index.php?diff=165664&oldid=165663 * Dmiz * (+41)
23:25:19 -!- perlbot has joined.
00:12:39 -!- FreeFull has quit.
00:43:24 <esolangs> [[UserEdited]] https://esolangs.org/w/index.php?diff=165665&oldid=165614 * MihaiEso * (-4)
00:59:23 -!- amby has 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).
01:09:39 <esolangs> [[User:Hotcrystal0/Sandbox]] https://esolangs.org/w/index.php?diff=165666&oldid=165587 * Hotcrystal0 * (+1084)
01:57:06 -!- ski has quit (Remote host closed the connection).
02:30:40 <esolangs> [[Special:Log/newusers]] create * Iacgm * New user account
02:32:47 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=165667&oldid=165506 * Iacgm * (+93) /* Introductions */
02:34:55 <esolangs> [[Brainfuck code generation]] https://esolangs.org/w/index.php?diff=165668&oldid=138765 * Iacgm * (+51) /* Languages that compile to brainfuck */
02:52:44 <esolangs> [[C2bf]] N https://esolangs.org/w/index.php?oldid=165669 * Iacgm * (+1243) Created page with "C2bf (not to be confused with [[C2BF]]) is a [[compiler]] from a large subset of C into [[Brainfuck]] written by Ian Graham Martinez. The project is written in Rust, and the source code is available at [https://github.com/iacgm/c2bf]. The project supports: - Integer Arithme
02:54:35 -!- zzo38 has joined.
02:55:17 <esolangs> [[Special:Log/move]] move * Iacgm * moved [[C2bf]] to [[C2bf rs]]: Clash with C2BF
02:55:30 <esolangs> [[Special:Log/move]] move * Iacgm * moved [[C2bf rs]] to [[C2bf (2025)]]
02:55:38 <esolangs> [[Special:Log/move]] move * Iacgm * moved [[C2bf (2025)]] to [[C2BF (2025)]]
02:56:27 <esolangs> [[Brainfuck code generation]] https://esolangs.org/w/index.php?diff=165676&oldid=165668 * Iacgm * (+9) /* Languages that compile to brainfuck */
05:15:52 -!- simcop2387 has quit (Ping timeout: 256 seconds).
05:19:28 -!- simcop2387 has joined.
05:51:21 -!- perlbot_ has joined.
05:51:49 -!- perlbot has quit (Ping timeout: 246 seconds).
05:52:17 -!- zzo38 has quit (Ping timeout: 246 seconds).
05:52:42 -!- perlbot_ has changed nick to perlbot.
06:04:34 <esolangs> [[Topple/Source Code]] https://esolangs.org/w/index.php?diff=165677&oldid=165214 * H33T33 * (+534)
06:05:04 <esolangs> [[Topple/Source Code]] M https://esolangs.org/w/index.php?diff=165678&oldid=165677 * H33T33 * (+2)
06:05:42 <esolangs> [[Topple/Source Code]] M https://esolangs.org/w/index.php?diff=165679&oldid=165678 * H33T33 * (+15)
06:43:25 -!- tromp has joined.
06:47:52 -!- Sgeo has quit (Read error: Connection reset by peer).
06:58:24 -!- V has quit (*.net *.split).
06:58:24 -!- ManDeJan has quit (*.net *.split).
07:01:14 -!- V has joined.
07:01:14 -!- ManDeJan has joined.
07:21:53 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
07:42:06 <esolangs> [[Special:Log/newusers]] create * Elbereth * New user account
07:46:35 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=165680&oldid=165667 * Elbereth * (+234) Hi, I'm currently interested in [[Core War]] & NetHack, though just starting in both; I found this wiki accidentally when searching about Core War.
08:13:43 -!- tromp has joined.
09:12:49 -!- nitrix-or-treat has quit (*.net *.split).
09:12:49 -!- yewscion__ has quit (*.net *.split).
09:14:21 -!- nitrix-or-treat has joined.
09:14:21 -!- yewscion__ has joined.
09:28:25 <esolangs> [[ETC]] N https://esolangs.org/w/index.php?oldid=165681 * Elbereth * (+1454) It's simple, but not without potential...
09:30:28 <esolangs> [[ETC]] M https://esolangs.org/w/index.php?diff=165682&oldid=165681 * Elbereth * (+0) The usual wiki code transformation :(
09:31:46 <esolangs> [[Language list]] https://esolangs.org/w/index.php?diff=165683&oldid=165548 * Elbereth * (+10) /* E */ [[ETC]]
09:38:46 <esolangs> [[User:Elbereth]] N https://esolangs.org/w/index.php?oldid=165684 * Elbereth * (+286) Created page with "Has not made anything notable yet; Hi; I'm currently interested in [[Core War]] & NetHack, the former being the reason i got here; I might improve pages by updating outdated information, maybe even user pages if there is a good enough reason (please check edit
10:07:03 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
10:09:08 -!- tromp has joined.
10:34:27 -!- iddi01 has joined.
10:34:51 <iddi01> !ztest epsilon https://raw-paste.vercel.app/raw/4o990n984n470np1639p1723394337r9
10:34:52 <zemhill> iddi01: URL fetch problems: 429 Too Many Requests
10:35:13 <iddi01> !ztest epsilon https://raw-paste.vercel.app/raw/4o990n984n470np1639p1723394337r9
10:35:13 <zemhill> iddi01: URL fetch problems: 429 Too Many Requests
10:35:49 <iddi01> !ztest epsilon https://raw-paste.vercel.app/raw/4o990n984n470np1639p1723394337r9
10:35:49 <zemhill> iddi01: URL fetch problems: 429 Too Many Requests
10:36:36 -!- slavfox has quit (Ping timeout: 256 seconds).
10:37:04 -!- slavfox has joined.
10:37:46 <esolangs> [[LLvlN]] https://esolangs.org/w/index.php?diff=165685&oldid=165645 * TheSpiderNinjas * (-54)
10:38:05 <iddi01> !ztest epsilon https://raw-paste.vercel.app/raw/4o990n984n470np1639p1723394337r9
10:38:05 <zemhill> iddi01: URL fetch problems: 429 Too Many Requests
10:39:04 <esolangs> [[LLvlN]] https://esolangs.org/w/index.php?diff=165686&oldid=165685 * TheSpiderNinjas * (+16)
10:39:55 -!- Lord_of_Life has quit (Ping timeout: 245 seconds).
10:40:32 <esolangs> [[Quantum-LLvlN]] https://esolangs.org/w/index.php?diff=165687&oldid=165654 * TheSpiderNinjas * (+2) Rename Quantum-LLvlN to LLvlN-Quantum
10:40:47 <fizzie> Even from an endpoint that's definitely never fetched it before, that URL gives me a javascript-requiring proof-of-work challenge, which isn't going to happen with zemhill.
10:41:09 <esolangs> [[Special:Log/move]] move * TheSpiderNinjas * moved [[Quantum-LLvlN]] to [[LLvlN-Quantum]]: Rename Quantum-LLvlN to LLvlN-Quantum
10:41:09 <esolangs> [[Special:Log/move]] move * TheSpiderNinjas * moved [[Talk:Quantum-LLvlN]] to [[Talk:LLvlN-Quantum]]: Rename Quantum-LLvlN to LLvlN-Quantum
10:41:18 -!- Lord_of_Life has joined.
10:41:56 <iddi01> I can't get a paste into pastebin.com anymore, it always falls back to the main page after the captcha...
10:42:26 <iddi01> please suggest an alternative!
10:43:07 <esolangs> [[LLvlN-Quantum]] https://esolangs.org/w/index.php?diff=165692&oldid=165688 * TheSpiderNinjas * (+8)
10:43:15 <fizzie> https://0x0.st/ is what I usually use (via curl).
10:43:19 <esolangs> [[LLvlN-Quantum]] https://esolangs.org/w/index.php?diff=165693&oldid=165692 * TheSpiderNinjas * (-48)
10:43:44 <esolangs> [[LLvlN]] https://esolangs.org/w/index.php?diff=165694&oldid=165686 * TheSpiderNinjas * (-18)
10:52:28 -!- int-e has quit (Ping timeout: 256 seconds).
10:52:41 -!- int-e has joined.
10:52:54 <iddi01> does not work: "405 Method Not Allowed"
10:58:23 <fizzie> !ztest bad https://0x0.st/KMCl.txt
10:58:24 <zemhill> fizzie.bad: points -46.00, score 0.00, rank 47/47
10:58:35 <fizzie> Works for me, that's all I know: https://0x0.st/KMCU.txt
10:59:25 <esolangs> [[Special:Log/newusers]] create * 6e12fyou * New user account
11:00:22 <fizzie> I guess you could hypothetically use HackEso as well, but it would require splitting a program to fit on IRC lines, and be incredibly inconvenient as well.
11:02:27 <esolangs> [[LogicGates]] N https://esolangs.org/w/index.php?oldid=165695 * None1 * (+1840) Created page with "{{lang|a=User:None1}} ==Memory== It uses a bit accmulator, an unbounded bit tape and a pointer. All bits are initially 0. ==Commands== * {{cd|<}}/{{cd|>}}: Move the pointer to the left/right. * {{cd|[''CODE'']}}: While accmulator isn't 0, do ''CODE''. * Logic gates rep
11:03:03 <esolangs> [[Language list]] https://esolangs.org/w/index.php?diff=165696&oldid=165683 * None1 * (+17) /* L */
11:03:31 <esolangs> [[Language list]] M https://esolangs.org/w/index.php?diff=165697&oldid=165696 * None1 * (+0) /* L */
11:04:05 <esolangs> [[User:None1]] https://esolangs.org/w/index.php?diff=165698&oldid=165358 * None1 * (+64) /* My Esolangs */
11:04:14 -!- sftp has quit (Ping timeout: 265 seconds).
11:04:22 <fizzie> https://bpa.st/ is another site they recommend on #c -- it has a web form, and a 'raw' link that seems okay.
11:05:37 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=165699&oldid=165680 * 6e12fyou * (+183) /* Introductions */
11:05:47 <esolangs> [[User:6e12fyou]] N https://esolangs.org/w/index.php?oldid=165700 * 6e12fyou * (+5) Created page with "hi :)"
11:06:02 -!- sftp has joined.
11:06:02 -!- sftp has changed hostmask to ~sftp@user/sftp.
11:06:36 <iddi01> !ztest epsilon https://bpa.st/raw/GBOA
11:06:37 <zemhill> iddi01.epsilon: points 22.19, score 57.64, rank 1/47 (+1)
11:06:44 <esolangs> [[Looping counter]] https://esolangs.org/w/index.php?diff=165701&oldid=165433 * None1 * (+64) /* Iterate */
11:07:21 <iddi01> fizzie: thanks a lot, somehow these sites cannot be found via online searching...
11:07:32 <iddi01> !zjoust epsilon https://bpa.st/raw/GBOA
11:07:32 <zemhill> iddi01.epsilon: points 22.19, score 57.64, rank 1/47 (+1)
11:07:45 -!- iddi01 has quit (Quit: Client closed).
11:08:40 <esolangs> [[User:XKCD Random Number]] https://esolangs.org/w/index.php?diff=165702&oldid=164692 * None1 * (+95) /* Length */
11:11:31 <fizzie> Hmm, I wonder if the zemhill visualization stuff would still run, those plots haven't been updated in a long long time.
11:13:46 <esolangs> [[Talk:BRaInFUCK]] https://esolangs.org/w/index.php?diff=165703&oldid=165546 * None1 * (+284)
11:33:53 -!- Lord_of_Life_ has joined.
11:34:08 -!- Lord_of_Life has quit (Ping timeout: 256 seconds).
11:35:12 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
11:41:46 <esolangs> [[Setler v2]] https://esolangs.org/w/index.php?diff=165704&oldid=164835 * TheSpiderNinjas * (+67) Updated Setler v2
11:57:24 <esolangs> [[Special:Log/move]] move * TheSpiderNinjas * moved [[Autism]] to [[Autism (Unary)]]: Disambiguation
11:57:24 <esolangs> [[Special:Log/move]] move * TheSpiderNinjas * moved [[Talk:Autism]] to [[Talk:Autism (Unary)]]: Disambiguation
11:58:42 <esolangs> [[Redcode]] https://esolangs.org/w/index.php?diff=165709&oldid=147544 * Elbereth * (+1244) yet another revision on this
11:58:43 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
11:58:54 <esolangs> [[Autism]] https://esolangs.org/w/index.php?diff=165710&oldid=165706 * TheSpiderNinjas * (+65) Removed redirect to [[Autism (Unary)]]
12:01:33 <esolangs> [[Autism (Esolang)]] N https://esolangs.org/w/index.php?oldid=165711 * TheSpiderNinjas * (+3439) Created new esoteric programming language based on rigid routines and repetitive patterns
12:02:55 <esolangs> [[Autism (Esolang)]] https://esolangs.org/w/index.php?diff=165712&oldid=165711 * TheSpiderNinjas * (-3397) Removed specification content, requesting creation
12:03:37 <esolangs> [[Selter]] https://esolangs.org/w/index.php?diff=165713&oldid=163173 * TheSpiderNinjas * (+21) Redirected page to [[Setler]]
12:03:55 <esolangs> [[Works in progress]] https://esolangs.org/w/index.php?diff=165714&oldid=162707 * TheSpiderNinjas * (-63)
12:09:42 <esolangs> [[Talk:BRaInFUCK]] https://esolangs.org/w/index.php?diff=165715&oldid=165703 * PkmnQ * (+190)
12:12:40 <esolangs> [[Works in progress]] https://esolangs.org/w/index.php?diff=165716&oldid=165714 * TheSpiderNinjas * (+2) Added Autism (Esolang) to WIP list
12:12:40 -!- amby has joined.
12:13:03 <esolangs> [[Works in progress]] https://esolangs.org/w/index.php?diff=165717&oldid=165716 * TheSpiderNinjas * (+23)
12:18:47 <esolangs> [[Special:Log/newusers]] create * Nguyendinhtung2014 * New user account
12:31:27 -!- ais523 has joined.
12:32:55 <ais523> ooh, iddi01.epsilon has joined the rarefied ranks of "programs that managed to take the #1 spot on the hill despite two_thirds having a 100% win rate"
12:35:36 <esolangs> [[Special:Log/move]] move * Ais523 * moved [[?barinfuck]] to [[?brainfuck]]: history merge to ?brainfuck page was created at the wrong title, then moved via cut-and-paste
12:35:36 <esolangs> [[Special:Log/delete]] delete * Ais523 * deleted "[[?brainfuck]]": Deleted to make way for move from "[[?barinfuck]]"
12:36:04 <esolangs> [[Special:Log/delete]] restore * Ais523 * undeleted "[[?brainfuck]]": part two of history merge
12:36:27 <esolangs> [[?brainfuck]] https://esolangs.org/w/index.php?diff=165719&oldid=165718 * Ais523 * (+1603) set top revision after history merge
12:39:41 <esolangs> [[User talk:HyperbolicireworksPen]] https://esolangs.org/w/index.php?diff=165720&oldid=164585 * Ais523 * (+675) /* How to move pages */ new section
12:45:09 <ais523> …it is kind-of astonishing that that seems to be easier than beating two_thirds without overfitting or mirroring (the only non-overfitted programs I've managed to beat two_thirds with were other versions of two_thirds with slightly different decoy setups, creating near-mirror matches where it won a couple of cycles earlier)
12:46:27 <ais523> as an experiment, I tried changing epsilon's decoys to overfit to two_thirds's clear loop, two_thirds still won
12:46:42 <ais523> because the larger decoys slowed it down too much
12:55:53 <fizzie> (The answer to the question about the visualizations, by the way, is no: I don't have the necessary Ruby bits installed for the "modern" plots, or Python 2 for the "legacy" egostats plots. All fixable, of course, but would require some work.)
13:06:49 <esolangs> [[Force of Arch]] https://esolangs.org/w/index.php?diff=165721&oldid=157446 * ChuckEsoteric08 * (-23)
13:07:11 <esolangs> [[An arch is simply a curve.]] https://esolangs.org/w/index.php?diff=165722&oldid=157445 * ChuckEsoteric08 * (-24)
13:07:38 -!- tromp has joined.
13:07:44 <esolangs> [[Char]] https://esolangs.org/w/index.php?diff=165723&oldid=157443 * ChuckEsoteric08 * (-24)
13:08:24 <esolangs> [[Doug]] https://esolangs.org/w/index.php?diff=165724&oldid=157444 * ChuckEsoteric08 * (-24)
13:09:37 <esolangs> [[BF Joust champions]] https://esolangs.org/w/index.php?diff=165725&oldid=164512 * Elbereth * (+1150) /* 2025 */ While checking IRC logs i noticed this new champion which were not listed here; since i'm totally new to this, trying to work it out was hard, please correct mistakes XD
13:11:46 <esolangs> [[BF Joust strategies]] M https://esolangs.org/w/index.php?diff=165726&oldid=164429 * Ais523 * (+2) /* Decoy */ typo fix
13:18:10 <esolangs> [[Neko]] https://esolangs.org/w/index.php?diff=165727&oldid=165664 * Dmiz * (+31)
13:19:48 <ais523> it's also worth noting that while testing medium, I initially started on the cases for beating high-decoy-count programs before focusing on the cases for beating low-decoy-count programs: one of those draft versions tied with two_thirds and beat the other top programs, but I didn't submit it because it wasn't good against the field, it lost against any program that didn't set a large number of decoys
13:20:31 <ais523> so it wasn't overfitted to the specific program but it was overfitted to beating its general strategy (and somehow it was still only a tie)
13:23:47 <ais523> that got me wondering what the highest-scoring low-decoy-count program was, it appears to be medium (which sets 3 decoys)
13:26:25 <ais523> then three_legged_frog (also 3 decoys) is next
13:26:55 <ais523> so #7 and #12 – looks like low decoy count is not a popular strategy at the top of the hill (which is why it's possible to do well even sacrificing that matchup)
13:29:10 <ais523> on the topic of visualisations, I realised that the best visualisation for showing decoy setups would probably be "average value of each cell position the last time this program adjusts it" – programs normally don't adjust their own decoys after raising them to their full height, even though defensive programs often move over them (note that you would need to be careful for NaN values because some programs never adjust certain tape cells)
13:36:43 <esolangs> [[Neko]] https://esolangs.org/w/index.php?diff=165728&oldid=165727 * Dmiz * (+66)
13:45:29 <esolangs> [[BF Joust strategies]] https://esolangs.org/w/index.php?diff=165729&oldid=165726 * Ais523 * (+256) /* Cleared decoy detection */ a counter-countermeasure (it seems like, in BF Joust, whenever a strategy is invented there's a very good chance that someone will eventually produce an offset version)
13:48:59 <esolangs> [[BF Joust strategies]] M https://esolangs.org/w/index.php?diff=165730&oldid=165729 * Ais523 * (-1) /* Observing a cell clear early */ fix typo
13:49:02 <esolangs> [[Neko]] https://esolangs.org/w/index.php?diff=165731&oldid=165728 * Dmiz * (+55)
14:25:52 -!- DOS_User_webchat has joined.
14:41:04 <esolangs> [[Special:Log/newusers]] create * Pichatnik * New user account
14:45:48 -!- DOS_User_webchat has quit (Remote host closed the connection).
14:50:48 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
14:55:00 <esolangs> [[Iterate/Subset]] https://esolangs.org/w/index.php?diff=165732&oldid=165656 * Aadenboy * (+151) important note about breaking infinite loops
14:59:17 -!- tromp has joined.
15:10:46 <esolangs> [[Iterate/Subset]] https://esolangs.org/w/index.php?diff=165733&oldid=165732 * Aadenboy * (+46)
15:12:33 -!- dos_user has joined.
15:13:15 <dos_user> im testing to see if my quit message works (have logs open in stalker mode)
15:13:31 -!- dos_user has quit (Quit: dos_user).
15:14:05 -!- DOS_User_webchat has joined.
15:18:29 <fizzie> I think Libera.Chat might be one of those networks where you have to stay connected for at least 5 minutes before it allows a custom quit message.
15:19:19 <fizzie> It's frustratingly difficult to find any authoritative source for that, but this suggests that's the case: https://github.com/Libera-Chat/solanum/blob/main/doc/reference.conf#L1120-L1123
15:20:11 -!- DOS_User_webchat has quit (Remote host closed the connection).
15:20:12 <fizzie> Although that particular filter should just clamp it down to "Client Quit", so maybe that's not the reason.
15:21:12 <fizzie> https://github.com/Libera-Chat/solanum/blob/main/modules/core/m_quit.c#L83-L96 -- yeah, if it's "Quit: ...", it was probably actually from the client.
15:23:09 <b_jonas> dos_user: what fizzie says, libera suppresses your quit message if you haven't been present for long enough, so that you can't abuse the quit message itself for spam so easily
15:23:44 <b_jonas> there might be limits to part messages too, I don't know
15:27:09 <fizzie> That's what I thought, but it looks to me from the code that that suppression should have resulted in a quit message of "Client Quit" rather than "Quit: dos_user".
15:27:36 -!- fizziet has joined.
15:27:39 -!- fizziet has quit (Client Quit).
15:27:53 <fizzie> That's what I got for doing `QUIT :message` immediately.
15:51:08 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
15:58:04 -!- bongino has joined.
15:59:12 -!- tromp has joined.
16:04:40 -!- sytra has joined.
16:05:07 -!- sytra has changed nick to cytrical.
16:09:42 -!- cytrical has quit (Quit: cytrical).
16:09:58 -!- sytra has joined.
16:13:37 -!- sytra has quit (Client Quit).
16:13:51 -!- sytra has joined.
16:14:47 -!- ais523 has quit (Quit: sorry about my connection).
16:17:04 -!- sytra has quit (Client Quit).
16:17:19 -!- sytra has joined.
16:26:41 -!- sytra has quit (Quit: sytra).
16:27:31 -!- sytra has joined.
16:27:49 -!- sytra has quit (Client Quit).
16:28:04 -!- sytra has joined.
16:32:09 -!- ais523 has joined.
16:32:31 -!- sytra has quit (Ping timeout: 246 seconds).
16:33:34 -!- sytra has joined.
16:38:25 -!- sytra has quit (Ping timeout: 256 seconds).
16:40:14 -!- sytra has joined.
16:40:22 -!- sytra has quit (Client Quit).
16:41:22 -!- sytra has joined.
16:43:52 <esolangs> [[User:Hotcrystal0/Sandbox]] https://esolangs.org/w/index.php?diff=165734&oldid=165666 * Hotcrystal0 * (+851)
16:56:27 -!- bongino has quit (Ping timeout: 260 seconds).
16:57:38 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
17:02:33 -!- Melvar has quit (Quit: WeeChat 4.7.0).
17:03:16 -!- bongino has joined.
17:06:02 -!- slavfox has quit (Quit: ZNC 1.8.2 - https://znc.in).
17:07:53 -!- slavfox has joined.
17:12:22 <esolangs> [[User:Hotcrystal0/Sandbox]] https://esolangs.org/w/index.php?diff=165735&oldid=165734 * Hotcrystal0 * (-8)
17:14:02 -!- sytra has quit (Quit: sytra).
17:14:27 <esolangs> [[Iterate]] https://esolangs.org/w/index.php?diff=165736&oldid=165657 * Aadenboy * (+313) /* Example programs */ add [[Cat program]]
17:30:28 -!- int-e_ has joined.
17:30:58 -!- Lord_of_Life has quit (Excess Flood).
17:31:09 -!- int-e has quit (Killed (NickServ (GHOST command used by int-e_))).
17:31:16 -!- int-e_ has changed nick to int-e.
17:32:25 -!- Lord_of_Life has joined.
17:34:17 -!- Melvar has joined.
17:43:45 -!- ais523 has quit (Quit: quit).
17:52:20 -!- int-e_ has joined.
17:52:27 -!- int-e has quit (Quit: Reconnecting).
17:52:50 -!- int-e_ has changed nick to int-e.
18:47:10 -!- A_Dragon has joined.
18:47:55 -!- leah2 has quit (Ping timeout: 248 seconds).
18:48:01 -!- Awoobis has quit (Read error: Connection reset by peer).
18:48:15 -!- leah2 has joined.
19:26:39 -!- zzo38 has joined.
19:49:52 <esolangs> [[Works in progress]] M https://esolangs.org/w/index.php?diff=165737&oldid=165717 * Ractangle * (-172)
19:51:25 <esolangs> [[Works in progress]] M https://esolangs.org/w/index.php?diff=165738&oldid=165737 * Ractangle * (-44)
19:51:50 -!- tromp has joined.
19:54:10 <esolangs> [[Special:Log/newusers]] create * ! * New user account
20:14:32 -!- simcop2387 has quit (Quit: ZNC 1.9.1+deb2+b3 - https://znc.in).
20:14:32 -!- perlbot has quit (Quit: ZNC 1.9.1+deb2+b3 - https://znc.in).
20:25:35 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=165739&oldid=165699 * ! * (+315) introduction!!!!!!!!!!!!!!!!
20:57:33 -!- amby has quit (Remote host closed the connection).
20:57:50 -!- amby has joined.
21:37:06 -!- ais523 has joined.
21:43:22 -!- ski has joined.
22:05:28 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
22:28:26 -!- sftp_ has joined.
22:30:59 -!- sftp has quit (Read error: Connection reset by peer).
22:31:00 -!- sftp_ has changed nick to sftp.
22:31:00 -!- sftp has changed hostmask to ~sftp@user/sftp.
23:21:57 <esolangs> [[User talk:HyperbolicireworksPen]] https://esolangs.org/w/index.php?diff=165740&oldid=165720 * HyperbolicireworksPen * (+139)
23:24:41 <esolangs> [[?brainfuck]] https://esolangs.org/w/index.php?diff=165741&oldid=165719 * HyperbolicireworksPen * (+19)
23:31:48 <esolangs> [[?brainfuck]] https://esolangs.org/w/index.php?diff=165742&oldid=165741 * HyperbolicireworksPen * (+74)
23:35:17 <esolangs> [[?brainfuck]] https://esolangs.org/w/index.php?diff=165743&oldid=165742 * HyperbolicireworksPen * (+70)
23:35:46 <esolangs> [[?brainfuck]] M https://esolangs.org/w/index.php?diff=165744&oldid=165743 * HyperbolicireworksPen * (+2)
23:37:01 <esolangs> [[?brainfuck]] https://esolangs.org/w/index.php?diff=165745&oldid=165744 * HyperbolicireworksPen * (+69)
23:37:46 <esolangs> [[?brainfuck]] M https://esolangs.org/w/index.php?diff=165746&oldid=165745 * HyperbolicireworksPen * (+0)
23:48:05 <esolangs> [[?brainfuck]] https://esolangs.org/w/index.php?diff=165747&oldid=165746 * HyperbolicireworksPen * (+84)
23:48:10 -!- simcop2387 has joined.
23:51:12 -!- perlbot has joined.
23:52:17 <esolangs> [[?brainfuck]] https://esolangs.org/w/index.php?diff=165748&oldid=165747 * HyperbolicireworksPen * (+69)
23:52:23 -!- simcop2387 has quit (Client Quit).
23:52:23 -!- perlbot has quit (Remote host closed the connection).
23:55:35 <esolangs> [[?brainfuck]] https://esolangs.org/w/index.php?diff=165749&oldid=165748 * HyperbolicireworksPen * (+60)
23:59:02 <esolangs> [[?brainfuck]] https://esolangs.org/w/index.php?diff=165750&oldid=165749 * HyperbolicireworksPen * (+69)
00:02:52 <esolangs> [[?brainfuck]] https://esolangs.org/w/index.php?diff=165751&oldid=165750 * HyperbolicireworksPen * (+67)
00:05:34 <esolangs> [[?brainfuck]] https://esolangs.org/w/index.php?diff=165752&oldid=165751 * HyperbolicireworksPen * (+61)
00:09:06 <esolangs> [[?brainfuck]] https://esolangs.org/w/index.php?diff=165753&oldid=165752 * HyperbolicireworksPen * (+67)
00:12:27 <esolangs> [[?brainfuck]] https://esolangs.org/w/index.php?diff=165754&oldid=165753 * HyperbolicireworksPen * (+104)
00:21:11 -!- ais523 has quit (Quit: quit).
00:31:35 -!- bongino has quit (Ping timeout: 256 seconds).
00:33:05 -!- bongino has joined.
00:58:27 <esolangs> [[LogicGates]] https://esolangs.org/w/index.php?diff=165755&oldid=165695 * None1 * (+4) /* Looping counter */ Fix
00:59:07 <esolangs> [[LogicGates]] https://esolangs.org/w/index.php?diff=165756&oldid=165755 * None1 * (+1640)
01:04:16 -!- simcop2387 has joined.
01:04:44 -!- Sgeo has joined.
01:13:00 <esolangs> [[?brainfuck]] https://esolangs.org/w/index.php?diff=165757&oldid=165754 * HyperbolicireworksPen * (+149)
01:14:21 -!- perlbot has joined.
01:30:05 <esolangs> [[LogicGates]] https://esolangs.org/w/index.php?diff=165758&oldid=165756 * Aadenboy * (+182) /* Commands */ list equivalences for each gate
01:56:09 -!- amby has 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).
02:25:11 -!- sftp has quit (*.net *.split).
02:25:12 -!- zzo38 has quit (*.net *.split).
02:25:47 -!- Sgeo_ has joined.
02:25:57 -!- sftp has joined.
02:26:02 -!- sftp has changed hostmask to ~sftp@user/sftp.
02:26:54 -!- Lord_of_Life_ has joined.
02:27:32 -!- Lord_of_Life has quit (Ping timeout: 259 seconds).
02:28:14 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
02:29:03 -!- Sgeo__ has joined.
02:29:17 -!- Sgeo has quit (Ping timeout: 260 seconds).
02:33:17 -!- zzo38 has joined.
02:33:47 -!- Sgeo_ has quit (Ping timeout: 256 seconds).
02:57:47 <esolangs> [[LogicGates]] https://esolangs.org/w/index.php?diff=165759&oldid=165758 * Aadenboy * (+2097) /* Interpreter */ add a lua interpreter
03:26:49 -!- Melvar has quit (Ping timeout: 256 seconds).
03:26:49 -!- bongino has quit (Ping timeout: 256 seconds).
03:26:56 -!- bongino_ has joined.
03:27:21 -!- Melvar has joined.
03:35:31 -!- A_Dragon has quit (Quit: ZNC - https://znc.in).
03:35:45 -!- A_Dragon has joined.
03:49:40 -!- lisbeths has joined.
03:54:55 <esolangs> [[LogicGates]] M https://esolangs.org/w/index.php?diff=165760&oldid=165759 * Aadenboy * (+27) /* Lua */ credit
05:06:05 -!- Hooloovoo has quit (Quit: ZNC 1.8.2+deb2+deb11u1 - https://znc.in).
05:09:35 -!- Hooloovoo has joined.
05:18:26 -!- slavfox has quit (Ping timeout: 256 seconds).
05:18:53 -!- simcop2387 has quit (Ping timeout: 256 seconds).
05:19:44 -!- simcop2387 has joined.
05:19:52 -!- slavfox has joined.
05:27:17 -!- A_Dragon has changed nick to gAy_Dragon.
05:58:55 -!- lisbeths has quit (Quit: Connection closed for inactivity).
06:04:10 -!- slavfox has quit (Ping timeout: 256 seconds).
06:04:18 -!- slavfox has joined.
06:12:26 -!- Sgeo__ has quit (Read error: Connection reset by peer).
06:18:52 <esolangs> [[Special:Log/newusers]] create * Sophocrat * New user account
06:21:08 -!- tromp has joined.
06:22:44 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=165761&oldid=165739 * Sophocrat * (+184) /* Introductions */ introduced myself
06:48:52 -!- bongino_ has quit (Ping timeout: 260 seconds).
06:49:25 -!- bongino has joined.
06:55:28 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
07:20:30 -!- slavfox has quit (Ping timeout: 256 seconds).
07:20:41 -!- slavfox has joined.
08:01:05 -!- tromp has joined.
09:10:16 <esolangs> [[ETC]] M https://esolangs.org/w/index.php?diff=165762&oldid=165682 * Elbereth * (+151) /* Examples */
09:12:52 <esolangs> [[User:XKCD Random Number]] https://esolangs.org/w/index.php?diff=165763&oldid=165702 * Elbereth * (+119) [[ETC]]
09:20:51 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
09:53:29 <esolangs> [[User:Iddi01]] https://esolangs.org/w/index.php?diff=165764&oldid=147356 * Elbereth * (+8873) /* Programming games */ This section is **seriously outdated**: the last edit is from 2024, and the new "[[BF Joust champions#2025|epsilon]]" was absent here; and i found several high-ranking [[Redcode]] programs by him at the "Koenigstuhl" (one of them is also named epsil
10:36:23 <fizzie> Mhm. I think I've heard it's generally against the etiquette to edit someone else's user page, but that was clearly done in good faith.
11:32:41 <esolangs> [[Ais523]] https://esolangs.org/w/index.php?diff=165765&oldid=96284 * B jonas * (+76)
11:34:31 -!- Lord_of_Life_ has joined.
11:34:34 -!- Lord_of_Life has quit (Ping timeout: 246 seconds).
11:35:49 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
11:54:10 <esolangs> [[]] https://esolangs.org/w/index.php?diff=165766&oldid=164128 * PrySigneToFry * (+453)
12:23:30 <esolangs> [[Teleporto]] https://esolangs.org/w/index.php?diff=165767&oldid=163557 * Hotcrystal0 * (+4) more corrections/polishing
12:25:34 <fizzie> Hah, corporate security sent me a note they'd flagged as "anomalous" when I curl -I'd iddi01's raw-paste.vercel.app URL to figure out why the 429s from zemhill the other day, because allegedly they've seen that site be used to host malware in the past. Had to explain them what I was doing.
12:25:50 <fizzie> Well, maybe they'll start doing BF joust too, who knows.
12:26:01 <fizzie> Shouldn't've done it on the work laptop, I guess, it's just a reflex to use the "scratchpad" terminal key binding for any quick command-line thing.
12:59:46 -!- ais523 has joined.
13:00:59 <ais523> I'm trying to read a paper, but the code samples are written in C/C++-like syntax except that they allocate memory with new and deallocate it with free
13:01:17 <ais523> this is really aggravating for some reason, I guess my brain finds it hard to overlook the allocator mismatch
13:06:22 <ais523> I guess it's a better reaction to have than *not* noticing something like that
13:09:56 <b_jonas> ais523: how old is the paper?
13:10:11 <ais523> it was presented at a conference in 2013
13:10:20 <ais523> so not ancient enough for new and malloc to be synonyms
13:10:37 <b_jonas> if it were from the 1996 then it would be somewhat more excusable
13:10:58 <ais523> I don't think the syntax is intended to be actual C or C++, just pseudocode
13:11:04 <b_jonas> you mean using the same allocator, right? as in synonymous for trivial types?
13:11:21 <ais523> I should probably have said free and delete, which were actual synonyms at the time
13:11:32 <ais523> hmm… when did delete[] become required to delete arrays?
13:12:31 <ais523> something I've been thinking about for a while is that allocating arrays may want to use a different algorithm than allocating non-arrays, because arrays are often realloced larger and other things almost never are
13:12:45 <ais523> so having separate delete/delete[] may make sense
13:12:52 <b_jonas> the "just pseudocode" codes can be very annoying, it seems that sometimes people do it because their code is buggy but they want to make it harder for a reader to prove that it's buggy. the ill-fated psz interpreter was an attempt to prove that some pseudocode was buggy, only I was very inexperienced so I made some big mistakes in it, but I at least learned a few things about parsing and interpreters
13:13:31 -!- amby has joined.
13:13:35 <b_jonas> that one may count as the first esolang that I created, if you define "created" and "esoteric" broad enough (it's at least definitely a language)
13:13:58 <ais523> it also uses a somewhat quirky indentation style with no newline before } but I can live with that (I even used it myself for something, but can't remember why)
13:14:17 <b_jonas> ais523: is that to fit more easier in a printed journal page limit?
13:14:31 <b_jonas> alternately because a lisp programmer wrote it
13:14:56 <ais523> it isn't that bad as indentation styles go, the whitespace matches Python and yet it's unambiguous
13:15:10 <ais523> but it isn't very popular for some reason
13:16:03 <esolangs> [[Special:Log/newusers]] create * ZachMadeAnAltBecauseHeLostThePassword * New user account
13:16:10 <b_jonas> wait, why does pseudocode care about deallocation in first place? can't it just leak memory?
13:16:53 <ais523> because the paper is about proving that the memory can be deallocated safely
13:16:57 <int-e> . o O ( maybe it's pseudo code for an allocator )
13:17:20 <ais523> so the exact deallocation timings are relevant
13:18:20 <b_jonas> and it doesn't just happen to use an identifier `free` that refers to something other than the function from the C standard, right? that'd still be a bad idea, but less bad
13:18:41 <ais523> it doesn't explain it, it's presumably meant to be obvious
13:19:48 <ais523> (also I just realised that free and delete were never true synonyms, delete runs destructors, free doesn't)
13:19:58 <esolangs> [[Esolang:Introduce yourself]] M https://esolangs.org/w/index.php?diff=165768&oldid=165761 * ZachMadeAnAltBecauseHeLostThePassword * (+344)
13:20:04 <ais523> …which is presumably why C++ needed new names for the operations in the first place
13:21:03 <b_jonas> yes, that's why I was trying to say "synonymous for trivial types", trivial type implies it has a trivial destructor so it is ok to elide calling the destructor
13:22:41 <b_jonas> having types that aren't trivial is what I consider the main difference between C and C++, and between zig and rust, at least from the design sense rather than the source compatibility sense
13:22:50 <b_jonas> though some people disagree
13:24:14 <ais523> recently I've been working on trying to create memory models
13:24:24 <ais523> atomics, provenance, etc.
13:25:04 <ais523> there are two fundamentally different ways to do it, and C / C++ / Zig cannot be compiled to one of them because there is not enough information in the source code
13:25:35 <ais523> whereas safe Rust can meaningfully be compiled to either but the semantics for unsafe code are very different (with existing unsafe code using the C / C++ / Zig model, unsurprisingly because it's made to be compiled with LLVM)
13:26:11 <b_jonas> you'll have to be more specific because there's more than two ways to create memory models
13:26:27 <b_jonas> though being able to compile rust to it is at least a restriction
13:26:29 <ais523> a good example is with atomic reference counting (std::shared_ptr in C++, Arc in Rust) – in the C / C++ / Zig model a decrement of the release count has to be release-ordered, in the other model it can be relaxed-ordered
13:26:47 <ais523> oh yes, a lot more specificity is needed
13:26:53 <ais523> I'm still trying to work out the details
13:27:50 <ais523> but the basic insight is to define provenance to be "the thing that prevents race conditions from occurring" and then to reverse engineer all its properties from that
13:28:23 <ais523> (note that even single-threaded code can have race conditions if the compiler makes incorrect aliasing assumptions to reorder two instructions that actually depended on each other – this is in effect equivalent to running them simultaneously and getting a race)
13:29:15 <ais523> Rust statically prevents race conditions, but there doesn't really seem to be a consensus on *how* it does that
13:29:46 <b_jonas> if you manage to specify the memory model, can you extend it to multiple user-space processes sharing mapped memory with at least one able to write? or did posix pthreads already do that?
13:30:01 <ais523> the unsafe code in the Rust standard library doesn't have a meaningful set of rules for how much synchronization is needed, for example, so it's been implemented in a somewhat ad-hoc way
13:31:18 <ais523> b_jonas: that's awkward because you can do it trivially if you place constraints on how the processes write from the memory model's point of view, and it's impossible otherwise
13:32:04 <ais523> e.g. you could say "all writes by any process are considered to be, at least, relaxed-atomic writes of each written byte of memory individually" because, on most hardware, it is impossible to do any write that violates that requirement
13:32:28 <ais523> and then you can safely read it with relaxed-atomic reads ("safe" in the sense of not being undefined behaviour, you might of course still get torn reads)
13:32:57 <ais523> but you need some memory model for what the other processes are able to do
13:34:22 <ais523> if, however, you imagine hardware on which a read/write race produces undefendable-against bad effects (UB, the OS killing your process, etc.) then there is no way to read data written by a process unless it offers you some means of avoiding the race condition
13:34:38 <b_jonas> is that the problem you talked about some day, a primitive to do a speculative atomic read that may give a bogus value but no undefined behavior if it races with a non-atomic write
13:34:55 <ais523> it's definitely related, I've been thinking about that one a lot
13:35:52 <ais523> I recently read a blog post which pointed out that the "obvious" algorithm for atomically pushing onto a list (write the current list head into the new element's next pointer, then CAS the new element over the head of the list if the pointer is still correct) is technically incorrect under current provenance rules
13:36:19 <ais523> because you might read an old provenance from the current list head, and the CAS might replace a newer pointer with a different provenance
13:36:33 <ais523> (https://people.kernel.org/paulmck/what-on-earth-does-lifetime-end-pointer-zap-have-to-do-with-rcu)
13:36:43 <ais523> but it viewed it as a problem in the current provenance definition
13:37:34 <ais523> I see it differently, though: when you read from the pointer at the start of the algorithm, you are reading the address from the *current* pointer, but speculatively taking the provenance from the *future* pointer (which might have the same address due to the ABA problem)
13:38:08 <ais523> then you write the future pointer's provenance into the list element, and do the compare-and-swap, now if the swap succeeded the provenance is correct because we read it in advance
13:38:56 <ais523> I think this is the same basic phenomenon, but with much more reasonable-looking code
13:39:15 <b_jonas> oh, mostly unrelated, is it possible to safely do database-style atomic updates on a file with fallocate(fd, FALLOC_FL_COLLAPSE_RANGE, off, len) or fallocate(fd, FALLOC_INSERT_RANGE, off, len), in the sense that if all writing processes adhere to a protocol but occasionally a process can be unexpectedly killed then the file will always stay in a recoverable state? the linux man page doesn't seem to say
13:39:21 <b_jonas> anything about the atomicity guarantees
13:40:47 <ais523> b_jonas: see the glibc documentation for posix_fallocate, it talks about plain fallocate too
13:41:25 <ais523> based on this, it seems like "if the filesystem supports it, it is safe; if the filesystem doesn't support it, posix_fallocate gives you a racy version, plain fallocate gives you an error code"
13:42:00 <ais523> oh, but posix_fallocate doesn't support range inserts/collapses
13:42:20 <ais523> so that documentation isn't useful for your case
13:42:47 <ais523> but my conclusion is probably "any atomicity guarantees would be made by the filesystem, not by the system call"
13:43:46 <ais523> in general the Linux manpages aren't very good, they often seem to get out of sync with actual kernel behaviour (e.g. during the fastest-FizzBuzz thing, multiple people noticed that the behaviour of vmsplice(2) didn't match its documentation)
13:44:14 <int-e> "a sufficiently all-knowing compiler"
13:44:27 <b_jonas> https://sourceware.org/glibc/manual/latest/html_node/Storage-Allocation.html I don't think that's definitive, that only talks about emulating the normal mode fallocate(fd, 0, off, len)
13:45:20 <b_jonas> that doesn't mean it would try to emulate FALLOC_FL_COLLAPSE_RANGE too, and that'd probably be a bad idea to emulate from glibc
13:46:29 <ais523> b_jonas: right, unfortunately I only realised that problem after I told you to look at the documentation
13:46:47 <ais523> (and concluded that any guarantees would probably be made by the filesystem rather than the kernel)
13:46:54 <b_jonas> yes, the file system itself has to support the atomicity too, but only a few file systems support fallocate(fd, FALLOC_FL_COLLAPSE_RANGE, off, len) in first place, so maybe the people who added that mode decided on some minimum requirements in first place for the backends
13:55:07 <esolangs> [[User:Hotcrystal0/Sandbox]] https://esolangs.org/w/index.php?diff=165769&oldid=165735 * Hotcrystal0 * (+377)
14:11:38 <esolangs> [[User:PrySigneToFry/Silicon dioxide in a polypropylene box/Chess between HCr0 and PSTF]] https://esolangs.org/w/index.php?diff=165770&oldid=165603 * PrySigneToFry * (-2)
14:37:14 <esolangs> [[User:PrySigneToFry/Sandbox/My Rate to the user that I know]] https://esolangs.org/w/index.php?diff=165771&oldid=153499 * PrySigneToFry * (+686)
14:48:04 -!- FreeFull has joined.
14:51:54 <esolangs> [[User talk:PrySigneToFry/Sandbox/My Rate to the user that I know]] https://esolangs.org/w/index.php?diff=165772&oldid=141990 * Aadenboy * (+304)
15:22:57 <esolangs> [[Special:Log/upload]] upload * PrySigneToFry * uploaded "[[File:Fun video game Wenyan.jpg]]"
15:24:25 <esolangs> [[Fun Video Game]] https://esolangs.org/w/index.php?diff=165774&oldid=160499 * PrySigneToFry * (+116)
15:25:13 -!- bongino has quit (Ping timeout: 246 seconds).
15:27:50 <esolangs> [[Fun Video Game]] https://esolangs.org/w/index.php?diff=165775&oldid=165774 * PrySigneToFry * (+1)
15:28:13 <esolangs> [[Fun Video Game]] M https://esolangs.org/w/index.php?diff=165776&oldid=165775 * PrySigneToFry * (+13)
15:28:49 <esolangs> [[Fun Video Game]] https://esolangs.org/w/index.php?diff=165777&oldid=165776 * PrySigneToFry * (-6)
15:33:03 -!- joast has quit (Quit: Leaving.).
15:35:44 <esolangs> [[Fun Video Game]] https://esolangs.org/w/index.php?diff=165778&oldid=165777 * Aadenboy * (+701) implement in [[Iterate]] (not that interesting), and golf in Lua (interesting)
16:13:13 <esolangs> [[Iterate]] https://esolangs.org/w/index.php?diff=165779&oldid=165736 * Aadenboy * (+37) /* Hello, world! */ replace with an automatically generated program that minimizes loops
16:13:51 <esolangs> [[Hello world program in esoteric languages (H-M)]] https://esolangs.org/w/index.php?diff=165780&oldid=165427 * Aadenboy * (+37) /* Iterate */ replace with an automatically generated program that minimizes loops
16:22:48 -!- chloetax has quit (Quit: Ping timeout (120 seconds)).
16:35:05 -!- chloetax has joined.
16:42:21 -!- bongino has joined.
16:59:06 -!- perlbot has quit (Ping timeout: 248 seconds).
16:59:49 -!- simcop2387 has quit (Ping timeout: 265 seconds).
17:03:30 <esolangs> [[99 bottles of beer]] https://esolangs.org/w/index.php?diff=165781&oldid=162849 * Aadenboy * (+10136) implement 99 bottles of beer in [[Iterate]]. I'm not gonna list it on the page since it's largely uninteresting but it's a fun showcase of my printing optimizer
17:11:36 -!- Everything has joined.
17:27:07 -!- Lord_of_Life has quit (Excess Flood).
17:31:23 -!- Lord_of_Life has joined.
17:43:55 -!- A_Dragon has joined.
17:47:13 -!- ais523 has quit (Quit: quit).
17:47:46 -!- sftp_ has joined.
17:51:06 -!- gAy_Dragon has quit (*.net *.split).
17:51:06 -!- sftp has quit (*.net *.split).
17:51:06 -!- sftp_ has changed nick to sftp.
17:51:06 -!- sftp has changed hostmask to ~sftp@user/sftp.
18:04:01 -!- A_Dragon has quit (Quit: ZNC - https://znc.in).
18:04:17 -!- A_Dragon has joined.
18:04:58 -!- A_Dragon has changed nick to Awoobis.
18:09:52 -!- Everything has quit (Quit: leaving).
18:10:04 -!- bongino has quit (Ping timeout: 246 seconds).
18:12:10 -!- thorium1256 has joined.
18:27:02 -!- bongino has joined.
18:37:57 <esolangs> [[Special:Log/newusers]] create * StikyPiston * New user account
18:43:07 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=165782&oldid=165768 * StikyPiston * (+272) Add my introduction
19:00:58 -!- simcop2387 has joined.
19:06:07 -!- perlbot has joined.
19:20:34 <esolangs> [[Iterate/Turing-completeness proof]] https://esolangs.org/w/index.php?diff=165783&oldid=154085 * Aadenboy * (+1133) turns out that this was close to perfect! fixed some bugs and added an output stream of the data. it is extremely slow but it DOES in fact work
19:25:16 <esolangs> [[Frigate]] N https://esolangs.org/w/index.php?oldid=165784 * StikyPiston * (+1425) Created page with "# Frigate Frigate is an esoteric programming language based on Logic Gates! ## Interpreter needed! Currently, Frigate has no interpreter, since I haven't a clue as to how one goes about making one. If you'd like to make one, then please do so. Link it in the is
19:27:29 <esolangs> [[Frigate]] https://esolangs.org/w/index.php?diff=165785&oldid=165784 * StikyPiston * (-1204)
19:32:09 <esolangs> [[Frigate]] https://esolangs.org/w/index.php?diff=165786&oldid=165785 * Aadenboy * (+1318) translate markdown into wikitext and categorize
19:32:56 <esolangs> [[Frigate]] https://esolangs.org/w/index.php?diff=165787&oldid=165786 * Aadenboy * (+2) h3 to h2 and link
19:50:42 <esolangs> [[Talk:Iterate/Turing-completeness proof]] N https://esolangs.org/w/index.php?oldid=165788 * Aadenboy * (+2005) Created page with "hmm... something's gone wrong. the page for [[BCT]] shows the execution of the program as: <pre> Commands Executed Data-string -------- ------------- 10 1 11 10 11 101 0 1011 * 11 011 10
19:51:47 <esolangs> [[Iterate/Turing-completeness proof]] https://esolangs.org/w/index.php?diff=165789&oldid=165783 * Aadenboy * (+1307)
19:57:24 <esolangs> [[Fun Video Game]] https://esolangs.org/w/index.php?diff=165790&oldid=165778 * Aadenboy * (-4) /* Lua */ switch to assert to shave off some characters
20:15:33 <esolangs> [[User:Hotcrystal0/Sandbox]] https://esolangs.org/w/index.php?diff=165791&oldid=165769 * Hotcrystal0 * (+42)
20:41:24 <esolangs> [[Talk:Iterate/Turing-completeness proof]] https://esolangs.org/w/index.php?diff=165792&oldid=165788 * Salpynx * (+358) bug in BCT program, not interpreter (I think)
20:48:09 <esolangs> [[Talk:Iterate/Turing-completeness proof]] M https://esolangs.org/w/index.php?diff=165793&oldid=165792 * Salpynx * (+73) fix typo, and provide a breakdown
20:52:00 <esolangs> [[Talk:Iterate/Turing-completeness proof]] https://esolangs.org/w/index.php?diff=165794&oldid=165793 * Aadenboy * (+475)
21:20:51 <b_jonas> apparentliy I should have said "trivially copiable type" rather than "trivial type", because C++ uses "trivial type" for a more restricted and less interesting concept
21:21:04 <b_jonas> I should try to remember this
21:25:05 -!- chloetax has quit (Read error: Connection reset by peer).
21:35:11 -!- ajal has joined.
21:37:24 <esolangs> [[BitBitJump]] https://esolangs.org/w/index.php?diff=165795&oldid=127057 * Aadenboy * (+13) /* External resources */ dead link
21:37:35 <esolangs> [[BitBitJump]] M https://esolangs.org/w/index.php?diff=165796&oldid=165795 * Aadenboy * (-1) /* External resources */
21:39:04 -!- amby has quit (Ping timeout: 246 seconds).
21:58:11 <esolangs> [[Special:Log/newusers]] create * NoWhy * New user account
22:02:36 <esolangs> [[Esolang:Introduce yourself]] M https://esolangs.org/w/index.php?diff=165797&oldid=165782 * NoWhy * (+233) /* Introductions */
22:03:50 <esolangs> [[Esolang:Introduce yourself]] M https://esolangs.org/w/index.php?diff=165798&oldid=165797 * NoWhy * (-6) /* Introductions */
22:12:04 <esolangs> [[User:NoWhy]] N https://esolangs.org/w/index.php?oldid=165799 * NoWhy * (+18) Created page with "Hi I'm Owen Storni"
22:28:47 -!- joast has joined.
22:31:02 <esolangs> [[NONPLUSSED]] N https://esolangs.org/w/index.php?oldid=165800 * NoWhy * (+1884) created NONPLUSSED page
22:31:50 <esolangs> [[User:NoWhy]] https://esolangs.org/w/index.php?diff=165801&oldid=165799 * NoWhy * (+27)
23:14:05 -!- Sgeo has joined.
23:26:30 <esolangs> [[Neko]] https://esolangs.org/w/index.php?diff=165802&oldid=165731 * Dmiz * (-55)
23:32:31 <esolangs> [[Special:Log/upload]] upload * WebNiko * uploaded "[[File:Holyfuckicon.jpg]]"
23:34:34 <esolangs> [[HolyFuck]] https://esolangs.org/w/index.php?diff=165804&oldid=165471 * WebNiko * (+47)
23:35:22 <esolangs> [[?brainfuck]] https://esolangs.org/w/index.php?diff=165805&oldid=165757 * HyperbolicireworksPen * (+543)
23:36:55 <esolangs> [[Neko]] https://esolangs.org/w/index.php?diff=165806&oldid=165802 * Dmiz * (-78)
23:41:06 <esolangs> [[Neko]] https://esolangs.org/w/index.php?diff=165807&oldid=165806 * Dmiz * (+45)
23:43:29 <esolangs> [[?brainfuck]] https://esolangs.org/w/index.php?diff=165808&oldid=165805 * HyperbolicireworksPen * (+147)
23:50:38 <esolangs> [[NONPLUSSED]] M https://esolangs.org/w/index.php?diff=165809&oldid=165800 * NoWhy * (+2) small errors
23:56:10 -!- zzo38 has quit (Ping timeout: 248 seconds).
23:57:53 <esolangs> [[Language list]] M https://esolangs.org/w/index.php?diff=165810&oldid=165697 * NoWhy * (+17) added NONPLUSSED
23:59:32 -!- hydrogen1243 has joined.
00:01:27 -!- thorium1256 has quit (Ping timeout: 256 seconds).
00:04:14 -!- FreeFull has quit.
00:07:25 <esolangs> [[Special:Log/upload]] upload * NoWhy * uploaded "[[File:NONPLUSSEDinterpreter.png]]"
00:12:44 <esolangs> [[NONPLUSSED]] M https://esolangs.org/w/index.php?diff=165812&oldid=165809 * NoWhy * (+65) interpreter img
00:23:50 <esolangs> [[?brainfuck]] https://esolangs.org/w/index.php?diff=165813&oldid=165808 * HyperbolicireworksPen * (+42)
00:30:52 <esolangs> [[?brainfuck]] https://esolangs.org/w/index.php?diff=165814&oldid=165813 * HyperbolicireworksPen * (+125)
00:32:11 <esolangs> [[User:Sophocrat]] N https://esolangs.org/w/index.php?oldid=165815 * Sophocrat * (+357) created my userpage
00:35:50 <esolangs> [[User:Sophocrat]] https://esolangs.org/w/index.php?diff=165816&oldid=165815 * Sophocrat * (+339) added editing notes
00:36:06 <esolangs> [[User:Sophocrat]] https://esolangs.org/w/index.php?diff=165817&oldid=165816 * Sophocrat * (+6) formatting
00:37:42 <esolangs> [[?brainfuck]] https://esolangs.org/w/index.php?diff=165818&oldid=165814 * HyperbolicireworksPen * (+125)
00:42:03 <esolangs> [[?brainfuck]] https://esolangs.org/w/index.php?diff=165819&oldid=165818 * HyperbolicireworksPen * (+58)
01:26:25 -!- zzo38 has joined.
01:42:39 -!- ajal has 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).
01:57:57 -!- slavfox has quit (Ping timeout: 256 seconds).
01:57:57 -!- slavfox_ has joined.
01:58:41 -!- slavfox_ has changed nick to slavfox.
02:00:02 <b_jonas> ais523: so I was reading your blog post http://ais523.me.uk/blog/logic-of-shared-references.html . my impression is that it's disconnected: specifically the conclusion part is separate from the rest.
02:01:46 <b_jonas> the conclusion part explains something that you mentioned in IRC, which is that it would be useful to have a type that's like a shared reference but may actually point to a copy rather than the original data. that much makes sense, though there are a lot more details that have to be worked out.
02:03:47 <b_jonas> but the rest of the blog post claims that pirating may be able to solve some other problems, and that part I don't understand at all. you do make at least a very weak case on why pirating might be interesting to explore, but the blog post doesn't manage to explain why pirating can solve the hard problems that you mention and is still implementable with sound rules.
02:08:03 <b_jonas> now as for a few specific bits of the text. you say "What about packed types whose fields aren't Copy?" and those could be useful, but the typical useful case is a packed type similar to the one you mention but with a mutable reference, and I don't think pirating would help there, because if I only have pirate access to such a structure then all I'd be able to do with the mutable reference is shared
02:08:09 <b_jonas> borrow it, at which point the field not being Copy isn't an obstacle. so I'd like to see a better example for why packed type whose fields aren't Copy are relevant here.
02:08:25 <b_jonas> also elsewhere you mention you could hypothetically want "
02:10:06 <b_jonas> the {:?} format specifier Dereffed as many times as possible before using the Debug implementation" in a modified formatting language, but I believe "Dereffed as many times as possible" is something you absolutely aren't allowed to do in Rust because of trait consistency issues, you can't allow code to behave in a different valid way when something isn't a member of a trait such as not Deref. this is
02:10:12 <b_jonas> something you can do in C++, but not in Rust, and that is by design.
02:13:28 <esolangs> [[User:Salpynx/Syntagma]] M https://esolangs.org/w/index.php?diff=165820&oldid=144116 * Salpynx * (-8) /* Syntax */
02:16:15 <b_jonas> this doesn't mean that rust pirating can't make sense, only that the blog post failed to explain what rules it would have
02:19:30 <esolangs> [[]] https://esolangs.org/w/index.php?diff=165821&oldid=143973 * PrySigneToFry * (+183)
02:38:35 <esolangs> [[Special:Log/move]] move * Salpynx * moved [[User:Salpynx/Syntagma]] to [[User:Syntagma]]: moving to mainspace, probably as complete as it is going to get
02:39:48 <esolangs> [[Special:Log/move]] move * Salpynx * moved [[User:Syntagma]] to [[Syntagma]]: either I made a mistake, or this form is confusing
02:59:44 <esolangs> [[Syntagma]] https://esolangs.org/w/index.php?diff=165826&oldid=165824 * Salpynx * (+398) cats and motivation. Perhaps this is a semi-joke language
03:03:48 <esolangs> [[Syntagma]] M https://esolangs.org/w/index.php?diff=165827&oldid=165826 * Salpynx * (+2) italics
03:55:04 <zzo38> I thought of something else about a operating system, which is that sometimes you might be able to receive a message before it is sent, or send a message when the receiver is not ready, without storing a copy of the message in the kernel, because attempting to access the memory used for I/O will block (depending on the kind of access) until it is ready.
03:55:35 <zzo38> In some cases, it also means that the message can be discarded.
03:56:16 <zzo38> For example, if a message it sent but not received yet, then writing to the memory used for output will block but it can be read without blocking. If a message is received but not sent yet, any access to the receiving buffer will block, both reading and writing.
04:29:40 <zzo38> I also thought that memory allocation could be requested from a capability; in this case, the sender will need to have a block of memory already allocated, and when sending it, will give up its own access if it is read/write or will keep its own access if it is read-only, but is allowed to change its own access from read/write to read-only (but not the other way around).
04:32:30 <zzo38> I had also mentioned before, other ideas about computer design and operating system design.
06:28:08 -!- lisbeths has joined.
06:42:59 <esolangs> [[Special:Log/newusers]] create * Michael Gao * New user account
06:54:45 -!- Sgeo has quit (Read error: Connection reset by peer).
06:56:06 -!- bongino has quit (Remote host closed the connection).
10:39:24 <sprout> 'a message is received but not yet send'
11:13:19 <b_jonas> zzo38: that sounds like linux async io
11:13:41 <b_jonas> though I'm not sure if that works for sending messages rather than only for regular files
11:29:56 -!- hydrogen1243 has changed nick to thorium1256.
11:35:20 -!- Lord_of_Life has quit (Ping timeout: 256 seconds).
11:35:52 -!- Lord_of_Life has joined.
11:46:59 -!- amby has joined.
12:10:49 -!- FreeFull has joined.
13:05:19 <esolangs> [[Special:Log/upload]] upload * ZachMadeAnAltBecauseHeLostThePassword * uploaded "[[File:99tommy.png]]": A 99 bottles of beer-like program for [[Lines are cool]]
13:08:31 <esolangs> [[Lines are cool]] M https://esolangs.org/w/index.php?diff=165829&oldid=135828 * ZachMadeAnAltBecauseHeLostThePassword * (+287) yes
13:23:02 <esolangs> [[Special:Log/upload]] upload * ZachMadeAnAltBecauseHeLostThePassword * uploaded "[[File:Tommyfunc.png]]": A [[tommyaweosme function]] in [[Lines are cool]]
13:25:40 <esolangs> [[File:Tommyfunc.png]] https://esolangs.org/w/index.php?diff=165831&oldid=165830 * ZachMadeAnAltBecauseHeLostThePassword * (+13)
13:26:27 <esolangs> [[File:Tommyfunc.png]] https://esolangs.org/w/index.php?diff=165832&oldid=165831 * ZachMadeAnAltBecauseHeLostThePassword * (+22)
13:27:29 <esolangs> [[Lines are cool]] https://esolangs.org/w/index.php?diff=165833&oldid=165829 * ZachMadeAnAltBecauseHeLostThePassword * (+7)
13:27:50 <esolangs> [[Lines are cool]] https://esolangs.org/w/index.php?diff=165834&oldid=165833 * ZachMadeAnAltBecauseHeLostThePassword * (+4)
13:37:23 -!- lisbeths has quit (Quit: Connection closed for inactivity).
14:05:36 <esolangs> [[Special:Log/upload]] upload * ZachMadeAnAltBecauseHeLostThePassword * uploaded "[[File:Tommyconst.png]]": A [[User:Tommyaweosme/constant|tommy constant]] program made in [[Lines are cool]]
14:06:10 <esolangs> [[Lines are cool]] https://esolangs.org/w/index.php?diff=165836&oldid=165834 * ZachMadeAnAltBecauseHeLostThePassword * (+86)
14:07:41 <esolangs> [[Lines are cool]] https://esolangs.org/w/index.php?diff=165837&oldid=165836 * ZachMadeAnAltBecauseHeLostThePassword * (+236)
14:22:48 <esolangs> [[Special:Log/upload]] upload * PrySigneToFry * uploaded "[[File:PrySigneToFry's new logo.jpg]]"
14:24:04 <esolangs> [[User:PrySigneToFry]] https://esolangs.org/w/index.php?diff=165839&oldid=165524 * PrySigneToFry * (+68)
14:53:16 <esolangs> [[]] https://esolangs.org/w/index.php?diff=165840&oldid=165766 * I am islptng * (+1)
14:55:28 <esolangs> [[]] M https://esolangs.org/w/index.php?diff=165841&oldid=165840 * Aadenboy * (+9)
15:23:17 <fungot> int-e: hello, sarah. i am not totally in the dark review, accuses reviewer of piracy"? is that simple, it just jumps back to after the if.
15:23:30 <fungot> Available: agora alice c64 ct darwin discworld elon enron europarl ff7 fisher fungot homestuck ic irc* iwcs jargon lovecraft nethack oots pa qwantz sms speeches ss wp ukparl youtube
15:23:55 <fungot> Selected style: ukparl (UK Parliament debates from brexit referendum to late 2018)
15:24:01 <int-e> fungot: hello my learned friend
15:24:02 <fungot> int-e: that is in line with the new general. we have serious issues about social fnord and to enhance, the ability, to defend to the death, and they have left the eu,
16:08:25 -!- tromp has joined.
16:19:25 <fizzie> Social fnord is a serious issue.
16:20:43 <fizzie> The newfangled LLMs may be objectively better at generating plausible text, or even at stylistic fidelity, but they just wouldn't have the charm of fungot.
16:20:44 <fungot> fizzie: he is in my mind, the government welcomed the first fnord, an italian woman of the year will always be in the eye, in their own for fnord council, using fnord, were frankly and honestly, as best i have ever experienced.
16:21:20 <fizzie> (Not that all the styles are equally successful.)
16:27:48 <esolangs> [[SeeLlash]] M https://esolangs.org/w/index.php?diff=165842&oldid=155050 * AnotherUser05 * (+69)
16:29:04 <esolangs> [[User:AnotherUser05]] https://esolangs.org/w/index.php?diff=165843&oldid=155083 * AnotherUser05 * (+22)
17:11:54 <esolangs> [[User talk:PrySigneToFry]] M https://esolangs.org/w/index.php?diff=165844&oldid=165380 * Ractangle * (+232) /* */
17:13:18 <esolangs> [[User:Ractangle]] M https://esolangs.org/w/index.php?diff=165845&oldid=164904 * Ractangle * (+13)
17:13:39 <esolangs> [[User:Ractangle]] M https://esolangs.org/w/index.php?diff=165846&oldid=165845 * Ractangle * (-14)
17:20:32 -!- ais523 has joined.
17:32:16 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
17:38:40 -!- tromp has joined.
17:56:59 -!- zzo38 has quit (Ping timeout: 256 seconds).
17:58:19 <esolangs> [[Iterate]] https://esolangs.org/w/index.php?diff=165847&oldid=165779 * Aadenboy * (+709) extending the specification to allow for more granular IO and data control
18:03:33 -!- tromp has quit (Ping timeout: 244 seconds).
18:18:59 <esolangs> [[Iterate]] https://esolangs.org/w/index.php?diff=165848&oldid=165847 * Aadenboy * (-70) /* Syntax */ fix syntax
18:31:37 -!- DOS_User_webchat has joined.
18:40:02 <esolangs> [[Talk:Mouse]] M https://esolangs.org/w/index.php?diff=165849&oldid=164263 * MijiGamin1 * (+60) /* Newline */
18:40:19 <esolangs> [[Talk:Mouse]] M https://esolangs.org/w/index.php?diff=165850&oldid=165849 * MijiGamin1 * (+21)
18:59:20 -!- DOS_User_webchat has changed nick to vista_user.
19:00:13 <ais523> Markov chains have proven to be useful as something to serve to AI scrapers to make them think they have successfully scraped a page, without using too much CPU power
19:00:28 <ais523> (if you give them 403s they just try to come back in a better disguise)
19:16:44 <korvo> Like, n-gram models? I suppose that the main cost is memory bandwidth, just like with other language models.
19:31:45 <ais523> it wouldn't have to be a large one to make it work
19:31:46 <FireFly> I guess you can keep the model simple if your goal is just to generate garbage to feed the scraper
19:33:45 -!- vista_user has quit (Ping timeout: 250 seconds).
19:33:49 <korvo> Sure. The universal approximation theorem (or whatever we call it these days) says that a quick model has to be simple.
19:41:52 <b_jonas> I hope this is like video encoding where a simple model is easier to train too
19:49:21 <esolangs> [[Iterate]] https://esolangs.org/w/index.php?diff=165851&oldid=165848 * Aadenboy * (+716) /* Loop amounts */ implementation info
19:53:38 <esolangs> [[NONPLUSSED]] M https://esolangs.org/w/index.php?diff=165852&oldid=165812 * NoWhy * (+462) spec updates
20:16:11 <esolangs> [[User:Waffelz]] https://esolangs.org/w/index.php?diff=165853&oldid=149371 * Waffelz * (+388)
20:16:30 <esolangs> [[User:Waffelz]] https://esolangs.org/w/index.php?diff=165854&oldid=165853 * Waffelz * (+14)
20:19:32 <ais523> fungot: I feel like I was missing out by not pinging you earlier
20:19:32 <fungot> ais523: with the eu charter.
20:21:07 <b_jonas> excuse me honorable member fungot, which parliament is this, is it the EU or the English one?
20:21:07 <fungot> b_jonas: fnord fnord fnord,
20:23:35 <esolangs> [[User:Aadenboy]] https://esolangs.org/w/index.php?diff=165855&oldid=165107 * Aadenboy * (+252) [whilst clapping to the beat] YOU DO NOT NEED TO MAKE AN INTERPRETER/COMPILER FOR YOUR ESOLANG TO HAVE AN ARTICLE ON IT!
20:25:23 <ais523> I've been meaning to write an article at some point about how to write a good esolang, but I'm not quite sure what I'd put in it yet
20:26:12 <ais523> I do know some things to avoid (e.g. creating an esolang idea with serious missing details and hoping that someone else will fill them in is unlikely to work, and even more unlikely to work if there isn't enough of an idea to constrain how the language ends up)
20:29:56 <esolangs> [[Esolang:Help]] https://esolangs.org/w/index.php?diff=165856&oldid=152976 * Corbin * (+142) /* Where to test things out */ Explain how to preview changes without submitting them.
20:37:05 -!- DOS_User_webchat has joined.
20:38:04 -!- DOS_User_webchat has quit (Remote host closed the connection).
20:38:31 -!- vista_user has joined.
20:43:30 <esolangs> [[Esolang:Help]] https://esolangs.org/w/index.php?diff=165857&oldid=165856 * Corbin * (+401) /* When to do stuff */ Fans of Sandbox: Have you considered Show Preview?
20:44:31 <korvo> ais523: Well, I'll put it on my list. Right now I'm about to write down the sandbox policy we've discussed. Feel free to tweak it; the "a copy of this policy shall be placed" text is a USA meme.
20:45:30 <ais523> I know there have been some sandboxing problems I've had in the past where Show Preview wouldn't work for one reason or another, but I think they've mostly been at Wikipedia
20:45:50 <ais523> usually it's cases which involve the interaction of multiple pages, so templates and transclusions – we hardly use those at Esolang and I think that's a good tihng
20:48:33 <esolangs> [[Esolang:Policy]] https://esolangs.org/w/index.php?diff=165858&oldid=164763 * Corbin * (+724) Tentative sandbox policy. This is an attempt at politely codifying themes that have been discussed multiple times on IRC.
20:50:29 <ais523> korvo: I would probably note that it's OK to draft an esolang article in userspace if you haven't finished it yet (as long as it would be ontopic once it's finished)
20:50:45 <ais523> some people prefer not having the pressure of the page going "live" immediately
20:51:17 <ais523> apart from that, this looks reasonable (although it somewhat dominates the rest of the page – I'm not sure whether there's a good way to avoid that, except perhaps expanding the other policy entries to a similar amount of depth)
20:52:05 <esolangs> [[Esolang talk:Policy]] https://esolangs.org/w/index.php?diff=165859&oldid=164716 * Corbin * (+620) /* Sandbox policy */ new section
20:53:08 <korvo> ais523: I was wondering about that. I don't have a problem with moves, other than the amount of redirects that they create (and the paucity of folks who can delete them). I can add more words to [[esolang:help]].
20:54:02 <korvo> We should probably expand the rest of the policy if we want to balance the page. I don't know if that really matters. It feels like the rest of the policy is compressed because there hasn't been much need to discuss or expand upon it.
20:54:12 <ais523> really, the only real problems with deleting redirects left over after moves are a) an admin has to notice them, which doesn't always happen because there's only one admin actively looking and they often miss things, b) sometimes people move history to the wrong place
20:54:21 <korvo> At the same time, I can go all the way to ''Main article: [[esolang:copyrights]]'' if you want.
20:54:38 <ais523> the author policy was discussed a lot, although much of that was in Esolang's early history
20:54:51 <ais523> I think there's a link to that on the page
20:55:37 <ais523> the copyright policy wasn't really discussed because it was imposed by fiat by the original site owner – that said I suspect most users from the time, and probably most users now, are broadly in favour of it
20:57:45 -!- vista_user has quit (Remote host closed the connection).
20:57:47 <korvo> Even if we all agree upon it, we might need to discuss it to understand situations that arise in the future.
20:58:21 <esolangs> [[Esolang:Sandbox]] https://esolangs.org/w/index.php?diff=165860&oldid=163070 * Corbin * (+324) Clean the sandbox and bump the policy.
21:03:04 -!- zzo38 has joined.
21:04:51 <zzo38> A reason I have drafted some things in user pages is because I did not know what it is called; if it is later known what it should be called then it can be moved to the main space.
21:05:37 <korvo> Well, this doesn't really do anything about [[User:PrySigneToFry/Silicon dioxide in a polypropylene box]]. It does establish that PSTF can't protect those pages by calling them a user sandbox.
21:06:19 <korvo> But I suppose that we don't even really have community consensus that PSTF is spamming, nor is there any essential legal issue with them public-domaining all of the various snippets that they've got under their user page.
21:06:35 -!- vista_user has joined.
21:06:54 <ais523> I do think we need to have a discussion at some point about whether that's an appropriate use for the site – it's basically an attempt to use it as a social network, which wikis aren't very good at for a number of reasons
21:07:45 <korvo> I would like to understand what to do about [[Square-complete]] and friends. I think that they show a fundamental misunderstanding of why we study computers, and entertaining it for too long will turn us into a script-kiddie den.
21:09:55 <korvo> zzo38: Sure. There's nothing wrong with having user pages, or a long user signature, or any of the other things that teenagers tend to do.
21:10:46 <ais523> korvo: what's your opinion of https://esolangs.org/wiki/Disan_Count ?
21:14:33 <korvo> ais523: Delightful. There's a similar situation in complexity theory where the class P/poly, which can be thought of as PTIME but where each individual size of input gets its own individually-wired circuit, contains Halting. It can't solve all problems, but it can be hardwired to solve specific hard problems.
21:15:49 <ais523> from my point of view, the whole Disan Count thing was probably an instance of the same misconception that lead to Square-complete, and actually produced some interesting results, but that probably wouldn't happen again because the second time wouldn't be substantially different
21:16:08 <ais523> but this makes it very hard to draw a line
21:17:32 <korvo> Should we at least forbid sub-sandboxes like [[User:PrySigneToFry/Sandbox/Some useless code]]? I can be polite about it.
21:18:21 <korvo> Sure. Plushie-complete and PSTF-complete would be two other examples of questionable concepts.
21:19:18 <int-e> At least the "Disan Count" page is a proper wiki page with a critical discussion.
21:19:59 <ais523> int-e: yes, although the first few versions didn't look liek that
21:21:15 <ais523> this is what it looked like before the criticism: https://esolangs.org/w/index.php?title=Disan_Count&oldid=53609
21:21:37 <ais523> still a proper wiki page
21:21:48 <ais523> (I actually couldn't remember)
21:26:04 <int-e> The Square-complete one is... ugh... well, the 6 properties feel rather random and half of them are rather imprecise. There's no motivation. Even the name makes no sense. But... if the page came with a rationale and a few examples... I might think differently about it?
21:27:41 <int-e> So I guess part of what redeems the Disan Count thing to my mind is that it's minimal, basically a streamlined FizzBuzz.
21:28:16 <int-e> ais523: Oh it was you who added the criticism. Fun.
21:28:28 <ais523> int-e: I'm more likely to remember an article if I've interacted with it
21:29:02 <ais523> <int-e> if the page came with a rationale and a few examples... I might think differently about it? ← hmm, I think this is a good insight that doesn't just apply to that page in particular
21:29:19 <ais523> I might summarise it as "esolangs should have a reason to exist"
21:30:33 <ais523> there are a very wide range of possible reasons – artistic, aesthetic, scientific, engineering – but often there seems to be a meta-reason instead ("I want to make 1000 esolangs") or no reason at all, and in that case the language often doesn't end up very good
21:30:53 <b_jonas> ais523: hmm, but earlier you said that this wiki documents existing esolangs, not ones created for the wiki, so if an esolang already exists and perhaps existed before this wiki, why would you judge it on such criteria?
21:31:20 <ais523> b_jonas: I would still judge it (although possibly would document it anyway)
21:31:36 <ais523> I am more likely to write an esolangs.org article about an esolang found offwiki if I find it interesting in some way
21:32:23 <b_jonas> well sure, because your time is valuable
21:33:29 -!- chloetax has joined.
21:33:31 <ais523> I would put it more along the lines of my attention span / mental energy being valuable
21:33:36 <korvo> By "created for the wiki" I'm thinking of languages that wouldn't exist if the wiki didn't exist.
21:33:55 <b_jonas> but anyway, that is a good criteria in general, just interpret "reason to exist" broadly, like if something seemed like a good idea at the time but then didn't work out it still has a reason to exist
21:34:01 <ais523> you have to generalise the wiki a bit there, to at least cover sites like codegolf stack exchange
21:34:18 <ais523> (although its one-off esolangs normally have more of a purpose than our worst)
21:34:24 <b_jonas> eg. if you were trying to create a variant or subset that's smaller but still Turing-complete but it turns out that it's not Turing-complete then that is still a good enough reason
21:34:37 <ais523> b_jonas: hmm, I usually don't post those
21:34:50 <ais523> unless the language ended up interesting some other way
21:35:00 <b_jonas> korvo: sure, but you have to be careful, because there is one good language created for the wiki, the hair saloon one
21:35:14 <ais523> there are some cases where I maybe posted early – in particular I am not 100% sure that Globe fulfils its reason for existence, and if it doesn't and it's unfixable I won't know what to do with the page
21:35:16 <b_jonas> but that's an excuse that we can only use once
21:35:41 <ais523> b_jonas: that was more like having a wiki-inspired name
21:35:54 <ais523> naming things is hard, naming things using suggestions from spambots can thus occasionally be a reasonable idea
21:36:17 <ais523> and well, Real Fast Nora's Hair Salon 3: Shear Disaster Download is actually a good name for an esolang despite the etymology
21:36:35 <b_jonas> certainly better than a lot of names that you find on the wiki, yes
21:38:40 <ais523> now I'm not sure how to classify things like https://esolangs.org/wiki/A_programming_language_is_a_system_of_notation_for_writing_computer_programs.
21:39:01 <b_jonas> then there's also https://esolangs.org/wiki/Y86 where one of the interesting things about the language is that its original name turned out to be so bad (it got renamed later)
21:39:04 <ais523> (note that the link ends with a period that not all IRC clients will autolink – mine doesn't)
21:39:45 <ais523> b_jonas: funnily enough I have an abandoned esolang called z386
21:40:10 <ais523> which turned out to be too hard to implement, and then was superseded by actual practical research projects
21:40:42 <ais523> (the basic idea was to write a constraint solver that operated on both code and data by plugging x86 syntax into z3)
21:41:12 <ais523> but there's no point in working on it now that things like Minotaur exist: https://users.cs.utah.edu/~regehr/minotaur.pdf
21:41:43 <b_jonas> hmm, is it allowed to advertise tobacco products in the UK?
21:42:01 -!- vista_user has quit (Remote host closed the connection).
21:42:14 <korvo> b_jonas: A gimmick is funny once. Same principle. Not sure how to formalize this without getting horribly gamed.
21:42:17 <ais523> there are laws against it, but I think there are also loopholes
21:42:31 <b_jonas> hopefully https://esolangs.org/wiki/SKOAL isn't against some sort of wiki policy
21:43:28 <ais523> many shops have a list of the names of tobacco products that they sell, this is sufficiently common that I suspect that it's legal, otherwise shops wouldn't risk doing it
21:43:52 <ais523> and the wiki would be less in trouble in that direction due to not actually selling tobacco
21:47:07 -!- molson has quit (Remote host closed the connection).
21:48:52 <b_jonas> hmm… do we need policy if you can advertise (non-tobacco) merchandise on the wiki tied into the languages, like if someone's making language mascot plushies, or T-shirts with the source code of fungot?
21:48:52 <fungot> b_jonas: our new prime minister
21:48:53 <int-e> A75. (that's how we abbreviate these things, right?) is one of those ideas that is funny once. And then somebody makes a derivative (A207.) and it looks stupid. :-/
21:49:32 <int-e> (And making the page move is obviously a source of spam.)
21:49:49 <ais523> b_jonas: presumably an abbreviation for "A programming language…"
21:50:09 <int-e> b_jonas: https://logs.esolangs.org/libera-esolangs/2025-10-08.html#ldd
21:50:20 <int-e> (still shorter than the real link)
21:50:53 <int-e> the derivative is linked on that page
21:52:24 <int-e> b_jonas: Obviously that abbreviation is a joke. So obviously I have to add a redirect to the wiki now. (Don't worry, I won't.)
21:52:35 <b_jonas> int-e: https://esolangs.org/?curid=9270 is how I would link it
21:52:57 <ais523> b_jonas: I'm amazed that that works
21:53:30 <ais523> (if you look at the URL after redirection, it indicates why it works, but it looks like an accidental feature rather than an intended one)
21:53:40 <b_jonas> ais523: I use that to link to file pages on Wikimedia Commons often, since they tend to have longer and less directly descriptive titles than eg. Wikipedia pages
21:53:53 <int-e> (I'm also relieved that the page name is out of date.)
21:54:30 <b_jonas> ais523: what? I don't think it's an accident. hold on, it's documented, let me find where. it's the way to link by page ID. page IDs are stable.
21:54:39 <ais523> b_jonas: there's a "Main Page" in the URL
21:54:54 <b_jonas> ais523: yes, and *that* might be a bug
21:55:20 <ais523> the correct form of that link is https://esolangs.org/w/index.php?curid=9270
21:55:40 <ais523> but it looks like if you specify both page name and curid, curid wins
21:55:48 <b_jonas> https://www.mediawiki.org/wiki/Manual:Parameters_to_index.php#Page_revision_or_version specifically says curid "overrides the value of the title"
21:56:31 <ais523> so https://esolangs.org/?curid=9270 redirects to https://esolangs.org/wiki/Main_Page?curid=9270 which rewrites to https://esolangs.org/w/index.php?title=Main_Page&curid=9270 which gives you the page you want
21:56:59 <ais523> but this doesn't look intentional at all, it's only because the website homepage redirects to a wiki page that it works
21:57:53 <int-e> but it does make sense that the page title is ignored when an id is given
21:58:05 <int-e> so... unintentional feature? :)
21:58:06 <b_jonas> ok, but the "index.php" is totally an exposed implementation detail there that shouldn't be in the URL
21:58:57 <int-e> But indeed the https://esolangs.org/wiki/Main_Page?curid=9270 variant doesn't look like it should work :)
22:00:10 <ais523> b_jonas: I disagree, the index.php is the actual wiki and the only "real" URL, everything else is redirects and rewrite rules
22:00:32 <int-e> If I had to vote on that page being on the wiki, I'd vote against; there's no language there and the whole novelty is that its *name* is defined by external reference whose contents is ever changing.
22:00:33 <ais523> normally you would expect the URL to contain the page you are visiting
22:01:10 <ais523> int-e: well the name of the language and the legal source code and the output are all the same, so it does raise a conceptual issue, which is what you want for joke languages
22:01:19 <ais523> if someone edits the wikipedia page, it invalidates all existing programs and interpreters
22:01:34 <int-e> ais523: It does. The nice things about votes is that they can be subjective ;-)
22:01:43 <b_jonas> ais523: no, the main interface for the wiki is /w/ , it's just called /w/index.php instead so that people can run the wiki even if they're using a custom dumb webserver that they have difficulty configuring and *must* tie the URL to the program that the webserver runs. which, by the way, is a stupid idea in first place, where else would you let the untrusted visitor tell you the name of the executable
22:02:02 <int-e> If I were an admin I'd probably let it stay simply because it's hard to argue against it objectively and it does little harm.
22:02:10 <ais523> b_jonas: what's your opinion of /w/api.php?
22:02:14 <int-e> Different perspective. :P
22:02:40 <ais523> int-e: I can see an argument for listing the page under a title different from the language name
22:02:53 <int-e> But I'd probably delete the derivative (which is just a stub anyway) because the last thing I'd want is more of this idea.
22:03:14 <ais523> a while ago I had the idea of creating a language whose name is negatively long and deletes characters before it
22:03:48 <b_jonas> ais523: there too the ".php" is an implementation detail that shouldn't be there. probably the "api" shouldn't either and it should just trigger that interface based on the value of the action parameter, but I think there's some historical reason where the "API" is newer in MediaWiki than the main web interface and was originally an extension or something.
22:04:20 <ais523> I guess we're getting into philosophical issues about who and what a URL is for
22:04:35 <ais523> and I don't know how to resolve them
22:05:31 <int-e> The real problem with the wiki isn't really that there's pages with weird ideas or underspecified languages that barely manage to specify a syntax and have no substance... it's the volume of them, which has evidently gone up with LLMs.
22:06:23 <ais523> I think we need to do a better job of trying to curate
22:06:42 <int-e> "articles should contain human thought" is a terrible criterion if you want to be objective :P
22:06:48 <ais523> I've been thinking for a while that we should get rid of the existing language list and put the semi-serious language list under the "language list" title – we have a category for the whole set of languages
22:07:15 <ais523> that said, I've been considering trying to write an article about cursed, although I'm not 100% sure it's an esolang it is probably ontopic
22:08:00 <ais523> (it was a language created by an LLM running in agent mode in a loop for three months)
22:08:18 <ais523> just the amount that that would have cost seems esoteric in its own rihg
22:08:47 <ais523> but its semantics would have to be reverse engineered, and apparently it has three interpreters which (given how they were created) almost certainly don't match in behaviour
22:09:38 <ais523> I suspect trying to figure out what LLM code actually does is very difficult, though
22:10:09 <b_jonas> interpreters that don't match in behavior doesn't exclude it, that might just mean some behavior is unspecified and there are implementation differences. as long as you can still write mostly portable programs that require only few changes between the interpreters it's not worse than real practical languages.
22:10:37 <b_jonas> is there no documentation about the language?
22:11:55 <ais523> b_jonas: oh, there's plenty of documentation
22:12:25 <b_jonas> ok, let's back up, who initiated this experiment and why in first place?
22:12:28 <ais523> but, given the circumstances, there's no reason to expect it to match the interpreters or even to be internally consistent
22:12:41 <b_jonas> did they intend to create a language in first place, or was that an unforseen side effect?
22:13:38 <ais523> intended to create a language
22:14:14 <korvo> They replaced Go's keywords. Discussion here (https://lobste.rs/s/ydgmi6/i_ran_claude_loop_for_three_months_it) reveals that it took 3mo and $14k to do this.
22:14:29 <int-e> Is that the LLM version of https://en.wikipedia.org/wiki/Miller%E2%80%93Urey_experiment
22:14:32 <ais523> looks like the specs are here: https://github.com/ghuntley/cursed/tree/zig/specs
22:14:50 <korvo> I mean, they didn't actually fork Go. That would have been easy and understandable. Quoting a great comment there, "The point is not a business advantage. The point is a display of power, a message that humans are soon no longer needed."
22:14:53 <ais523> but there are pages like https://github.com/ghuntley/cursed/blob/zig/specs/compiler_stages.md that clearly have no relationship to reality
22:15:57 <ais523> or https://github.com/ghuntley/cursed/blob/zig/specs/ffi.md where the examples are written in Rust which again makes no sense in context
22:17:37 <korvo> It's like V but worse. Vanity junk for the church of Algol.
22:18:10 <korvo> Sorry, that was mean. I'm hungry and it's time to take a break.
22:18:52 <ais523> actually this is a lot worse than I expected it to be
22:19:15 <ais523> I arbitrarily picked a file from the test suite, and it looked like this: https://github.com/ghuntley/cursed/blob/zig/test_suite/leetcode_comprehensive_suite/strings/125_valid_palindrome.%F0%9F%92%80
22:19:41 <ais523> (the commit message is amazing too)
22:20:37 <ais523> I guess the real question is as to whether a language has even been created?
22:21:17 <korvo> "So here you'll want a … *sigh* … butt loop." https://smbc-comics.com/index.php?db=comics&id=1169#comic
22:21:24 <int-e> it's a test-suite, this must be for printf debugging ;-)
22:21:56 <int-e> LOL, https://github.com/ghuntley/cursed/blob/zig/test_suite/leetcode_comprehensive_suite/binary_search/704_binary_search_backup.%F0%9F%92%80
22:22:29 <int-e> The "backup" has some actual bunary search looking code in it; the non-"backup" version is just $printf-s.
22:22:47 -!- Lord_of_Life has quit (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine).
22:22:58 <ais523> I've heard that LLMs have a tendency to remove all the actual testing from tests in order to make them pass
22:23:54 <ais523> that does *look* a lot like a binary search, but my experience with LLMs says that they are better at producing output that looks correct than output that is correct
22:24:34 <int-e> Hmm... wasn't there a story where an LLM optimized number crunching code to make it 100% faster, by snooping the reference result from the test suite?
22:24:50 <ais523> in any case the tests do not have any expected output anywhere, as far as I can tell
22:24:50 <b_jonas> ais523: I remember when it was fashionable on programming forums for people to post stupid microbenchmarks about what solution is "faster", like, you know, the fastest way to get the first two characters of a five character long string, in a way where the things they tested didn't even correctly solve the supposed task.
22:24:55 <korvo> A reinforcment-learned agent (RL agent) can only have a single objective. Claude's sole objective is to help the user by being a Helpful Harmless Assistant; Claude Code is merely code-flavored in several ways.
22:25:05 <ais523> the test suite runner just prints a message saying that it's running the test, then returns 1
22:25:11 <ais523> https://github.com/ghuntley/cursed/blob/zig/test_suite/leetcode_comprehensive_suite/master_test_runner.%F0%9F%92%80
22:25:21 <ais523> or, I should say, a test suite runner
22:25:45 <b_jonas> int-e: nah, that takes effort, these benchmarks didn't even bother to test if the result is correct. they just flat out measured the time of an operation that gave the wrong result.
22:26:09 <b_jonas> it's like the old joke about the intel processor that can multiply really fast (but gives the wrong result)
22:30:13 <ais523> microbenching correctly is actually really difficult because you keep running into special cases in the processor if you try to run a loop too tightly
22:31:34 <int-e> ais523: I *love* writing a tight number crunching loop in C, changing code elsewhere (say, slightly different initialization) and then seeing the code be 20% faster.
22:31:58 <ais523> int-e: does aligning the microbenchmark to 64 help with that?
22:32:16 <ais523> that's usually my first attempt to stabliise it
22:32:43 <ais523> although I'm usually doing it in asm, I think gcc has a way to align a function
22:33:03 <ais523> (note: this won't necessarily speed it up or slow it down, just helps to make it more consistent)
22:33:12 <b_jonas> int-e: yeah, that could be caused by lots of things. one thing you should make sure to stabilize is the alignment of all the data memory accessed within a 4k page, to make sure the L1 cache pattern is the same.
22:33:32 <int-e> I don't have a concrete example right now... it might have. Though on rare occasions it's actually the compiler doing something wildly different.
22:34:50 <int-e> Like, suddenly producing code with 5 fewer spills in the inner loop.
22:35:46 <ais523> register allocation is NP-complete, as such sometimes compilers get it wrong
22:36:15 <int-e> fortunately, for one-off code, you can just run the fastest version without overanlyzing why exactly it's faster than others :)
22:36:21 <ais523> I think you have to at least put your microbenchmark into a non-inlined function in order to stop the rest of the code impacting register allocation decisions
22:36:31 <b_jonas> ais523: yeah, and even writing a decent approximation sounds like black magic to me
22:36:48 <b_jonas> it's one of the parts of the compiler that I have no idea how to write if I had to write one
22:36:48 <ais523> b_jonas: it depends on what you consider decent/indecent
22:36:57 <ais523> I have a plan but I don't know whether it works or not
22:37:02 <int-e> anyway. the point was that I can relate
22:37:48 <b_jonas> and I mean this for a modern architecture like x86-linux, not eg. 6502 with 64k RAM with uniform access time (not counting bank switching)
22:38:19 <ais523> OK, I think my plan doesn't work, that was easy
22:38:49 <ais523> (the basic idea was to start by ignoring register identity and just count how many were needed, but I think even that is not even polynomially approximable)
22:43:01 -!- Lord_of_Life has joined.
23:09:09 -!- ajal has joined.
23:09:09 -!- amby has quit (Read error: Connection reset by peer).
23:23:53 <esolangs> [[NONPLUSSED]] M https://esolangs.org/w/index.php?diff=165861&oldid=165852 * NoWhy * (+58) /* External resources */
23:44:29 -!- Sgeo has joined.
00:00:05 <esolangs> [[Neko]] https://esolangs.org/w/index.php?diff=165862&oldid=165807 * Dmiz * (-41)
00:15:11 <esolangs> [[Neko]] https://esolangs.org/w/index.php?diff=165863&oldid=165862 * Dmiz * (+204)
00:17:04 -!- ajal has 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).
01:06:49 -!- thorium1256 has quit (Ping timeout: 256 seconds).
01:11:29 <esolangs> [[Rizzlang]] https://esolangs.org/w/index.php?diff=165864&oldid=149369 * ZachMadeAnAltBecauseHeLostThePassword * (+323)
01:12:39 <esolangs> [[Rizzlang]] https://esolangs.org/w/index.php?diff=165865&oldid=165864 * ZachMadeAnAltBecauseHeLostThePassword * (+7)
01:12:54 <esolangs> [[Rizzlang]] https://esolangs.org/w/index.php?diff=165866&oldid=165865 * ZachMadeAnAltBecauseHeLostThePassword * (-15)
01:20:34 -!- thorium1256 has joined.
01:38:43 -!- FreeFull has quit.
02:00:39 <esolangs> [[SwapLoad]] N https://esolangs.org/w/index.php?oldid=165867 * RainbowDash * (+1753) Create The Stuff To Do The Things Created by Me
02:05:52 <esolangs> [[SwapLoad]] https://esolangs.org/w/index.php?diff=165868&oldid=165867 * RainbowDash * (+309) Init and assembly standards
02:12:53 <esolangs> [[User:RainbowDash]] https://esolangs.org/w/index.php?diff=165869&oldid=165273 * RainbowDash * (+55) swpldad
03:02:00 -!- citrons has quit (Ping timeout: 245 seconds).
03:08:00 -!- citrons has joined.
03:29:40 -!- ais523 has quit (Quit: sorry about my connection).
06:30:53 -!- zzo38 has quit (Ping timeout: 256 seconds).
06:30:53 -!- thorium1256 has quit (Ping timeout: 256 seconds).
06:32:03 -!- thorium1256 has joined.
06:39:58 -!- Sgeo has quit (Read error: Connection reset by peer).
07:26:07 -!- sprock has quit (Ping timeout: 240 seconds).
07:33:20 -!- sprock has joined.
11:35:31 -!- Lord_of_Life has quit (Ping timeout: 256 seconds).
11:35:59 -!- Lord_of_Life has joined.
11:45:33 -!- chiselfuse has quit (Remote host closed the connection).
11:45:47 -!- ais523 has joined.
11:45:49 -!- chiselfuse has joined.
12:26:26 <HackEso> 1/1:130) <alise> Phantom_Hoover: Don't be nasty; he's a lunatic, not a murderer. \ 9) <reddit user "othermatt"> So what you're saying is that I shouldn't lick my iPhone but instead I should rub it on my eyes first and then lick my eyeballs?
12:26:37 <fungot> int-e: that the bill is designed to
12:33:55 <fizzie> fungot: What are your views on immigration?
12:33:55 <fungot> fizzie: i will. the hon. and learned friend, with the experience of the house leads the way in small, secure community units.
12:35:37 <HackEso> 429) <fungot> fizzie: i, myself, will bring an end to all.
12:55:37 -!- chiselfuse has quit (Remote host closed the connection).
12:55:51 -!- chiselfuse has joined.
13:41:52 -!- Sgeo has joined.
14:00:13 -!- vista_user has joined.
14:02:26 <fungot> korvo: to my mind, the government welcomed the first, to ring the access to the european banking family and of the many.
14:04:35 -!- vista_user has left (:test).
14:04:43 -!- vista_user has joined.
14:08:28 -!- vista_user has quit (Quit: Client closed).
14:53:22 <esolangs> [[Iterate]] https://esolangs.org/w/index.php?diff=165870&oldid=165851 * Aadenboy * (+154) /* Loop amounts */
14:53:46 <esolangs> [[Iterate]] M https://esolangs.org/w/index.php?diff=165871&oldid=165870 * Aadenboy * (-1) /* Loop amounts */
15:11:04 -!- Lord_of_Life has quit (Excess Flood).
15:14:30 -!- Lord_of_Life has joined.
16:22:13 -!- amby has joined.
17:06:22 -!- FreeFull has joined.
17:11:45 -!- lisbeths has joined.
17:22:03 <lisbeths> korvo: https://raw.githubusercontent.com/memesmith0/vm/refs/heads/main/vm.c
17:22:14 <korvo> lisbeths: Morning.
17:22:41 <lisbeths> I improved my command line VM that is like unix dc but has reader macros
17:24:13 <korvo> Fun. Fairly readable, all things considered.
17:28:19 <esolangs> [[Computable]] https://esolangs.org/w/index.php?diff=165872&oldid=164721 * Corbin * (+70) /* Via category theory */ Definition only works for CCCs as given. Also bluelink to CCC.
17:53:26 <esolangs> [[Special:Log/newusers]] create * Goodbyevoidhelloworld * New user account
17:55:18 <esolangs> [[NONPLUSSED]] M https://esolangs.org/w/index.php?diff=165873&oldid=165861 * NoWhy * (+191) specs v0.3
17:56:44 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=165874&oldid=165798 * Goodbyevoidhelloworld * (+224) /* Introductions */
17:59:25 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=165875&oldid=165874 * Goodbyevoidhelloworld * (+124) /* Introductions */
18:02:03 <esolangs> [[User:Goodbyevoidhelloworld]] N https://esolangs.org/w/index.php?oldid=165876 * Goodbyevoidhelloworld * (+126) why do u need a summary?
18:04:49 <esolangs> [[User:Goodbyevoidhelloworld]] https://esolangs.org/w/index.php?diff=165877&oldid=165876 * Goodbyevoidhelloworld * (+144) why do you need a summary?? (again??)
18:41:35 <esolangs> [[User talk:Goodbyevoidhelloworld]] N https://esolangs.org/w/index.php?oldid=165878 * Aadenboy * (+453) Created page with "<blockquote>why do u need a summary?</blockquote> the summary field is optional, you can leave it blank (mediawiki will use a preset for certain actions if it's blank) ~~~~"
19:04:28 <esolangs> [[Iterate]] M https://esolangs.org/w/index.php?diff=165879&oldid=165871 * Aadenboy * (-364)
19:19:34 -!- zzo38 has joined.
19:27:12 <esolangs> [[NONPLUSSED]] M https://esolangs.org/w/index.php?diff=165880&oldid=165873 * NoWhy * (+300) runtime errors as a feature
20:29:00 <esolangs> [[User talk:Goodbyevoidhelloworld]] https://esolangs.org/w/index.php?diff=165881&oldid=165878 * Ais523 * (+336) summaries are useful even though they aren't required
20:30:24 <esolangs> [[User:Hotcrystal0/Sandbox]] https://esolangs.org/w/index.php?diff=165882&oldid=165791 * Hotcrystal0 * (+1395)
20:32:42 <esolangs> [[Special:Log/move]] move * Hotcrystal0 * moved [[User:Hotcrystal0/12]] to [[User:Hotcrystal0/13]]: 12 is now taken
20:33:16 <esolangs> [[User:Hotcrystal0/13]] https://esolangs.org/w/index.php?diff=165885&oldid=165883 * Hotcrystal0 * (+0)
20:33:43 <esolangs> [[User:Hotcrystal0]] https://esolangs.org/w/index.php?diff=165886&oldid=162717 * Hotcrystal0 * (+0) 13, not 12
21:11:02 -!- lisbeths has quit (Quit: Connection closed for inactivity).
21:15:02 -!- tromp has joined.
21:34:50 -!- yewscion__ has quit (Remote host closed the connection).
21:35:07 -!- yewscion__ has joined.
21:43:24 -!- nitrix-or-treat has changed nick to nitrix.
22:02:15 -!- yewscion__ has quit (Remote host closed the connection).
22:02:37 -!- yewscion__ has joined.
22:37:20 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
22:44:14 -!- Sgeo_ has joined.
22:48:07 -!- callforjudgement has joined.
22:49:32 -!- thorium1256 has quit (Ping timeout: 256 seconds).
22:49:32 -!- Sgeo has quit (Ping timeout: 256 seconds).
22:49:32 -!- ais523 has quit (Ping timeout: 256 seconds).
23:16:33 -!- thorium1256 has joined.
23:39:00 -!- lisbeths has joined.
23:59:36 -!- amby has 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).
00:07:52 -!- chiselfuse has quit (Remote host closed the connection).
00:08:05 -!- chiselfuse has joined.
00:13:05 -!- chiselfuse has quit (Remote host closed the connection).
00:14:44 -!- chiselfuse has joined.
01:02:24 -!- thorium1256 has quit (Read error: Connection reset by peer).
01:37:33 <esolangs> [[ZeroDivisionError: Division by 0]] https://esolangs.org/w/index.php?diff=165887&oldid=164121 * Sophocrat * (-17) /* Categories */ removed categories heading (it's unnecessary)
01:46:47 -!- callforjudgement has changed nick to ais523.
01:47:03 -!- ais523 has quit (Quit: quit).
01:47:31 -!- moony4 has quit (Quit: leaving).
01:47:43 -!- Bowserinator has quit (Quit: Blame iczero something happened).
01:47:43 -!- iovoid has quit (Quit: iovoid has quit!).
01:48:22 -!- Bowserinator has joined.
01:48:30 -!- moony4 has joined.
01:50:20 <esolangs> [[User:Sophocrat]] https://esolangs.org/w/index.php?diff=165888&oldid=165817 * Sophocrat * (+606) started working on DreamBerd article. The programmer jokingly renamed it to "Gulf of Mexico" but I'm not sure if they intend to stick with the name
01:51:57 -!- iovoid has joined.
02:02:14 <esolangs> [[81]] N https://esolangs.org/w/index.php?oldid=165889 * Waffelz * (+9449) Created page with "{{Distinguish/Confusion|8}} :''Note that 81 is always italicized.'' {{infobox proglang |name=''81'' |paradigms=Imperative |author=[[User:Waffelz]] |year=[[:Category:2025|2025]] |memsys=[[:Category:Cell-based|Cell-based]] |dimensions=one-dimensional
02:03:17 <esolangs> [[8]] M https://esolangs.org/w/index.php?diff=165890&oldid=113218 * Waffelz * (+30)
02:03:31 <esolangs> [[User:Sophocrat]] https://esolangs.org/w/index.php?diff=165891&oldid=165888 * Sophocrat * (+37) bit of work
02:13:06 <esolangs> [[Language list]] https://esolangs.org/w/index.php?diff=165892&oldid=165810 * Jk.NDC * (+11) /* W */ Added Wuht to the language list
02:31:10 <esolangs> [[81]] M https://esolangs.org/w/index.php?diff=165893&oldid=165889 * Waffelz * (+0)
04:24:32 -!- Sgeo_ has quit (Ping timeout: 244 seconds).
04:25:40 <esolangs> [[User talk:Goodbyevoidhelloworld]] https://esolangs.org/w/index.php?diff=165894&oldid=165881 * Goodbyevoidhelloworld * (+239)
04:31:27 -!- Sgeo has joined.
06:26:06 -!- Sgeo has quit (Read error: Connection reset by peer).
07:05:24 -!- tromp has joined.
07:35:33 -!- V has quit (Remote host closed the connection).
09:18:17 -!- lisbeths has quit (Quit: Connection closed for inactivity).
09:45:31 -!- myname has quit (Quit: WeeChat 4.5.1).
10:31:03 -!- thorium1256 has joined.
10:33:15 -!- myname has joined.
10:35:59 -!- lisbeths has joined.
10:52:53 -!- amby has joined.
11:34:29 -!- Lord_of_Life_ has joined.
11:35:25 -!- Lord_of_Life has quit (Ping timeout: 256 seconds).
11:35:47 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
11:52:14 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
11:58:30 <esolangs> [[81]] M https://esolangs.org/w/index.php?diff=165895&oldid=165893 * Waffelz * (+20)
12:02:53 <esolangs> [[81]] https://esolangs.org/w/index.php?diff=165896&oldid=165895 * Waffelz * (+64)
12:41:02 <esolangs> [[NONPLUSSED]] M https://esolangs.org/w/index.php?diff=165897&oldid=165880 * NoWhy * (+330) constructs
12:43:13 <esolangs> [[NONPLUSSED]] M https://esolangs.org/w/index.php?diff=165898&oldid=165897 * NoWhy * (+92) self-modifying
12:43:41 <HackEso> 373) <oklofok> mixing drinks together is like taking all of mozart's works and listening to all of them at once <oklofok> and in general a drink - and most foods - are kind like taking a song and then just taking the average of the notes and listening to it for three minutes. <oklofok> olsner: the point is you don't have to be the composer yourself <oklofok> not everyone knows what sequences of drinks taste the best \ 510) <fungot> CakeProphet: mr presi
12:47:05 <fungot> int-e: as the hon. and learned friend the member for north east somerset, to the whisky and the cake were getting muddled, or if the government has a strategy. when a country is a member,
12:52:47 <b_jonas> fungot, cake is not a drink, so I don't think that counts as mixing drinks
12:52:47 <fungot> b_jonas: that is, of course of a year. uk unemployment, the lifetime of the new prime minister still have no regrets policy. well, of the five people involved, that
12:53:59 <int-e> maybe it was a rum cake and they were out of rum
12:56:13 -!- lynndotpy60 has quit (Quit: bye bye).
12:57:16 -!- lynndotpy60 has joined.
13:14:02 <b_jonas> I wish "elliptic curve cryptography" was named something different that doesn't look like people are trying to write "error-correcting code" when they abbreviate it
13:28:17 -!- lisbeths has quit (Quit: Connection closed for inactivity).
13:39:13 <int-e> (it's worse than that because the distribution isn't even)
13:41:50 <int-e> fungot: Why is American Football played with a hokey ball?
13:41:50 <fungot> int-e: the most important of the amendments, the government will
14:09:47 -!- lisbeths has joined.
14:28:16 -!- Sgeo has joined.
14:28:34 <b_jonas> no, it's played with a rugby egg
14:56:31 <esolangs> [[NONPLUSSED]] https://esolangs.org/w/index.php?diff=165899&oldid=165898 * NoWhy * (+991) time command
15:01:04 <esolangs> [[NONPLUSSED]] M https://esolangs.org/w/index.php?diff=165900&oldid=165899 * NoWhy * (+67) Comment, fix page links
15:15:44 <esolangs> [[Adeco]] https://esolangs.org/w/index.php?diff=165901&oldid=165332 * Zinnia Glean * (+81)
15:23:21 <esolangs> [[Adeco]] https://esolangs.org/w/index.php?diff=165902&oldid=165901 * Zinnia Glean * (+237)
15:24:37 -!- FreeFull has quit (Ping timeout: 264 seconds).
15:36:25 <esolangs> [[Esolang:Introduce yourself]] M https://esolangs.org/w/index.php?diff=165903&oldid=165875 * Nguyendinhtung2014 * (+150)
15:36:52 <esolangs> [[User:Nguyendinhtung2014]] N https://esolangs.org/w/index.php?oldid=165904 * Nguyendinhtung2014 * (+46) Created page with "He is, as mentioned in the name, born in 2014."
15:54:39 <esolangs> [[Basic Stack]] N https://esolangs.org/w/index.php?oldid=165905 * Nguyendinhtung2014 * (+1189) Created page with "Basic Stack is an esolang by the user [[User:Nguyendinhtung2014]].It consists of a "transparent" stack (whick means any value in the stack can be looked at but only can we do actions with the top value), a register, push-pop commands, conditionals and got
16:10:47 -!- FreeFull has joined.
16:55:43 -!- vista_user has joined.
16:56:54 -!- vista_user has quit (Remote host closed the connection).
17:20:11 -!- ais523 has joined.
17:31:37 -!- tromp has joined.
17:44:04 <esolangs> [[Iterate]] https://esolangs.org/w/index.php?diff=165906&oldid=165879 * Aadenboy * (+1266) /* Cat program */ replace cat program and add reverse cat program
18:08:36 <esolangs> [[Language list]] M https://esolangs.org/w/index.php?diff=165907&oldid=165892 * Waffelz * (+13)
18:31:13 <esolangs> [[Talk:Language list]] https://esolangs.org/w/index.php?diff=165908&oldid=140976 * Corbin * (+212) /* Please delete this page */ new section
18:43:39 -!- ais523 has quit (Quit: sorry about my connection).
18:52:50 <esolangs> [[NONPLUSSED]] M https://esolangs.org/w/index.php?diff=165909&oldid=165900 * NoWhy * (-129) prototype repo link
19:04:02 -!- Everything has joined.
19:41:48 <esolangs> [[NONPLUSSED]] M https://esolangs.org/w/index.php?diff=165910&oldid=165909 * NoWhy * (+38) /* Time Command */
20:04:11 -!- ais523 has joined.
20:10:27 <ais523> is anyone here aware of using coroutines to implement message-passing-like objects? like, you resume the coroutine to call a method on it, and then it yields the method's return value
20:10:34 <ais523> and the local variables of the coroutine act like fields of the object
20:10:48 <ais523> (this is different from the closure-object correspondence, which uses *captures* to act like fields of the object)
20:15:09 <korvo> There've been a couple Python libraries based on the fact that a Python generator can accept inputs. I'll try to find good examples.
20:19:10 <korvo> Python currently has proper coroutines with the `async def` keyword, but there's also backward compatibility with older ways of emulating coroutines, including generators. This leads to a few transitional fossils in the record. Check out https://docs.twistedmatrix.com/en/stable/api/twisted.internet.defer.html#inlineCallbacks for an example.
20:21:41 <korvo> This let us write objects whose messages were deferred actions; sending a message was like waiting until the action completes. For a non-trivial and well-commented usage example, here's chunk-management logic in my old Minecraft server: https://github.com/bravoserver/bravo/blob/master/bravo/world.py#L438-L544
20:23:54 <korvo> When we went from Python to Monte (which this codebase didn't experience), lines like `chunk = yield maybeDeferred(self.serializer.load_chunk, x, z)` would become m`def chunk := serializer<-load_chunk(x, z)`; all of the extra sending ceremony is bundled up in the change from '.' to '<-'.
20:41:59 <ais523> thanks – I thought it might be the sort of thing you would be experienced at
20:43:05 <ais523> hmm, was there an esolang whose name punned on Twisted the name of the Python language versus "twisted" the adjective?
20:43:25 <ais523> I vaguely remember one but it might have been spam, or even a spam page repurposed as a language
20:43:28 <korvo> It's something that we (the Smalltalky prototype/object folks) wanted throughout the 90s and 2000s. It's one of the two big problems in Web frameworks: how to represent little async actions within a single process, when we want to do hundreds of them per request?
20:43:47 <ais523> ah, Twisted Python Chat Server
20:44:11 <korvo> (The other big problem is how to store objects in a database. That one's still open IMO!)
20:44:54 <ais523> Rust had that problem too – its current status is "we know we need some sort of coroutine design but don't know what it looks like", plus stable async/await which is implemented in terms of the unstable coroutines internally and they change the internals whenever they change the coroutine design
20:45:33 <korvo> TPCS could be a topology-based language. I think there was another one of those recently; some sort of interactive Web page where one could draw a circuit based on its topological features.
20:45:40 <ais523> fwiw, I found a converse to the "store objects in a database" problem – instead of storing the objects in a database, you leave the objects floating around in memory like normal and create database-style indexes for them
20:46:21 <ais523> you don't get, e.g., database-style persistence, but you get enough of the advantages of a database to be useful in some contexts
20:46:51 <korvo> Are you familiar with ECS, Entity-Component Systems? IIRC you're not into gamedev, so might not have seen it before. It's not perfect but it's remarkably good at delivering real-time access to lots of objects.
20:47:13 <ais523> sort of – I'm very familiar with the concept existing but have trouble understanding the explanations of it
20:47:44 <ais523> also I'm pretty experienced with gamedev but what I do is very outside mainstream gamedev
20:47:49 <korvo> I think ultimately any object-database mapping has to somehow reduce away the *behavior* of an object, which we normally think of as inalienable methods, into some sort of inert struct. Object-oriented folks don't like those.
20:48:50 <korvo> Yeah! I meant that you probably haven't used e.g. Unreal or Unity tooling. In an ECS-oriented engine, behaviors have to be encoded as components. This is how they deal with the lack of methods; an object has a behavior precisely when it has the component providing that behavior.
20:49:49 <korvo> (This has been on my mind for several months because it's key to finishing Zaddy. Still puzzling though.)
20:50:04 <ais523> I guess my relationship between me and ECS is similar to the relationship between new would-be Haskell programmers and Monads
20:50:11 <ais523> there are lots of explanations but I haven't found the one that makes it click for me yet
20:50:19 <ais523> so I still don't really understand what it's about
20:50:46 <HackEso> Monads are just monoids in the category of endofunctors.
20:51:15 <korvo> fungot: Or perhaps monads are just 2-elements in a bicategory.
20:51:15 <fungot> korvo: what a very important question, and the prime minister write to the m&s chief executive, to a series of very important work.
20:53:16 <korvo> Oh! Maybe you've seen defunctionalization? An ECS encoding of objects is like a defunctionalization of their methods; the idea is that there aren't any vtables, just a type tag that points into some table of components. Like a many-to-many relation between entities and components. Very database-oriented thinking.
20:53:27 <korvo> ...Sorry, I'm just emitting tokens now. I'll stop.
20:53:50 <ais523> at least your tokens are more likely to be relevant than those of an LLM
20:55:39 <ais523> defunctionalization is another thing I've seen but not understood, but this at least looks easier to understand
21:14:12 -!- Everything has quit (Quit: leaving).
21:29:35 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
21:38:43 <ais523> korvo: hmm, could your objects-in-databases problem be summarised as "storing objects in databases only works if I have a finite number of classes statically known in advance (each of which defines the behaviour of an object's methods in terms of a known set of fields), and each object belongs to one of those classes – but I want to be able to store objects that have behaviour that's more dynamically defined than that"?
21:39:43 <ais523> I tend to think in terms of the "static number of classes" model by default because that's what the languages I use most often naturally want to use, but this reminded me that there is another way to do it
21:40:16 <korvo> ais523: Yeah. In particular, the Zope crowd was fascinated by signatures ("interfaces") and the problem of asking an object to provide a signature (be "adapted" to an "interface"), leading to the extremely popular zope.interface library. Another good example of a transitional fossil, since it was largely superseded by proper type checking.
21:41:18 <ais523> now I'm wondering if it's possible to create new types at runtime in Rust, that implement existing traits
21:41:56 <ais523> my guess is that the language semantics don't rule it out but you would have to make your own vtables using unsafe code, which is difficult because the vtable format is unstable (both in the sense of there not being a guarantee as to what it is, and in the sense of actually changing in practice sometimes)
21:42:31 <ais523> obviously you would only be able to actually use the types in question using type erasure
21:43:02 <korvo> A while ago I made available some old documentation from Divmod, a Twisted-oriented startup. Divmod Axiom was an object database built on a hack: SQLite has "rowid" per-row identifiers which can be used as tags. So we can treat an object like an ad-hoc ECS entity by using zope.interface to enumerate what it adapts to, adapting the adapters to be components, and saving all components to the DB along with the object.
21:43:07 <korvo> Oh, forgot the link: https://divmod.readthedocs.io/en/latest/products/axiom/
21:43:33 <korvo> I tried to maintain some of this code. I could not figure it out back then, and I doubt I could do better now. Axiom was one of those too-clever ideas IMO.
21:45:03 <ais523> I think I might understand ECS a bit better now – the idea is that it's a way to abstract over different classes/types/"ways an object can implement its methods" without needing to know the set of possible types in advance?
21:45:21 <korvo> Ah, right, components are called "powerups". There were also "upgraders", which made schema migrations entirely transparent; if you wanted to version an object's class then you had to write out adapters that would rewrite old objects into new objects. Very 90s Smalltalk.
21:46:48 <korvo> Yeah, for sure. The key to ECS is that there's a for-loop that enumerates the entities and applies each entity's component to each entity. Like, imagine that each entity has a bitmask for the components it supports, and the for-loop has another bitmask for the components that should be run.
21:48:22 <korvo> Sometimes there's other for-loops that enumerate the entities for just one component, usually to cast/extract extra information. Like, copying annotations for a physics object when doing a physics step.
21:56:28 -!- callforjudgement has joined.
21:56:44 -!- FreeFull_ has joined.
21:57:37 -!- lynndotpy609 has joined.
21:59:26 -!- FreeFull has quit (Ping timeout: 256 seconds).
21:59:26 -!- ais523 has quit (Ping timeout: 256 seconds).
21:59:26 -!- lynndotpy60 has quit (Ping timeout: 256 seconds).
21:59:26 -!- thorium1256 has quit (Ping timeout: 256 seconds).
21:59:26 -!- lynndotpy609 has changed nick to lynndotpy60.
22:07:54 -!- callforjudgement has changed nick to ais523.
22:10:19 -!- thorium1256 has joined.
22:31:53 <ais523> OK, so the big difference between "how ais523 would use a database-like approach to implement games" and "how an ECS works" is that in an ECS, the code is basically looking for entities on which specific types of data exist, and then processing it in isolation (without knowledge of other data that might also be attached to the entities) – whereas my approach is similar but it isn't looking for the existence of the data but rather particular values
22:32:59 <ais523> as a trivial example, NetHack's big monster-moving loop is similar in nature to an ECS system, but it loops over all monsters *on the level*
22:33:07 <ais523> rather than everything that has an AI and position coordinates
22:33:39 <ais523> it strikes me that ECS is a way to compensate for not having the correct database indexes set up :-D
22:36:41 <korvo> Yeah! ECS design is clearly a subfield of database schema design. Keeping indices sorted is important in my Zaddy prototype, too.
22:45:08 <ais523> fwiw, NetHack's approach seems to be equivalent to a degenerate case of ECS in which entities that are monsters have a "type of monster" component and everything that operates on monsters dispatches on it
22:45:28 <ais523> (which I suspect you aren't actually supposed to do)
22:48:13 <esolangs> [[Special:Log/newusers]] create * Ricarinium * New user account
22:48:19 <ais523> performance is also interesting because ECS doesn't really distinguish between components that are used to store data (e.g. position) and components that are used to represent behaviour (e.g. 3D model used for rendering)
22:48:43 <ais523> the latter seems like it would lead to a lot of duplicate components *but* if you try to optimise that, you break some of the optimisations that the rest of the system relies on…
22:49:41 <korvo> Interesting. That would be a big difference from e.g. Doom, where all of the logic is inline and all of the "enemy" types are checked with special cases. We can see half-and-half with games like Super Mario 64, where there's both a primitive ECS *and* lots of special-cased behaviors.
22:49:48 <ais523> oh! this is probably why the original article doesn't have a 1-1 correspondence between "entity X that has component Y" pairs and the actual data for entity X's component Y, it would be so you could deduplicate the ones that don't change
22:50:31 <ais523> korvo: oh, NetHack is also full of special cases and double special cases (i.e. when two things interact, there's a special case that requires each of them to have a specific monster type)
22:50:49 <ais523> but in an ECS you need a component to represent things that the special case applies to
22:51:18 <korvo> Right. ECS has its own version of the double-dispatch problem.
22:53:40 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=165911&oldid=165903 * Ricarinium * (+322) me
22:54:35 <ais523> now I'm thinking in terms of refactors that change things from being static to dynamic
22:54:50 <ais523> in NetHack 3.6, red dragons are immune to fire but not cold, white dragons are immune to cold but not fire
22:55:02 <ais523> in NetHack 3.7 those are still true by default, but there are situations in which red dragons gain cold immunity
22:55:38 <ais523> I imagine an ECS would have had a "resistances" component all along and just change how it's initialized
22:55:57 <ais523> (whereas NetHack changed the accessor functions/macros for resistances)
22:56:21 <b_jonas> so there'll be a component for the exception that lizards have too weak legs to kick
22:56:28 <b_jonas> and there are hundreds of silly exceptions like that
22:56:33 <ais523> actually this points to a flaw in the ECS model: there is no reason to dispatch on things that have resistances, you are not searching by that, you just need to be able to look them up
22:58:03 <b_jonas> components for which properties of items you can recognize while blind, while hallucinating, etc
22:58:53 <b_jonas> and when you're a priest, and whether gnome archaeologists players can use a touchstone as if it was blessed or all archaeologists can
22:58:56 <ais523> b_jonas: actually an ECS would probably struggle with just the concept of an item being in inventory
22:59:10 <b_jonas> and what stone purifies potion of sickness
22:59:12 <ais523> with the full-search-version it's easy
23:00:09 <ais523> you could make being-in-inventory-ness a component but then you have a type safety issue as there's no static check that an object isn't both in inventory and on the ground
23:00:42 <ais523> (and this is the sort of thing that could really do with a static check – NH4 has what is in effect a sanitiser that checks that objects are in exactly one location at all times)
23:15:42 -!- FreeFull_ has changed nick to FreeFull.
23:16:12 <FreeFull> ECS.. Could we have a whole programming language based on ECS ideas?
23:18:47 <ais523> I feel like ECS's advantages come from the database-like behaviour, and that ECS also has unrelated requirements but they aren't actually advantages or useful – which possibly makes them a good fit for an esolang?
23:19:32 <korvo> Like, for ais523's example, an item in an inventory is really just a row in a table. ECS's limitations are mostly from not being allowed to make new tables.
23:20:24 <ais523> korvo: actually, I think the best approach is to have an "item location" column in an items table, with inventory being one possible location, then you have an index that lets you find items by location
23:20:35 <ais523> because there are some things that should conceptually affect both items in inventory and items on the groudn
23:20:57 <ais523> (NetHack does currently use the equivalent of separate tables and just iterates over all the relevant tables and combines the results, when it has to do that)
23:21:30 <ais523> (but I think that's a replacement for not having proper indexes)
23:22:25 <korvo> ais523: Ah, okay, that makes sense. In e.g. Minecraft, each table is associated to a client-side modal window, so being "in" the table really is like being "out" of the rest of the world. It's got a touch of that good old N64 SRM about it; for the duration of a Minecraft drag-and-drop, an item is in handheld limbo.
23:23:12 <korvo> fungot: HOLP down for what
23:23:12 <fungot> korvo: they will be judged, the people of all the united back into the united kingdom were to take 300. the site, to the distinctive, so concerns that the hon. and learned friend the minister for that, and i, and the scottish government to have the same time, the hon. member to the board, the public body set up to pronounce the last bit.
23:24:04 <ais523> the other reason to make it one table is because the information being stored is essentially the same, and you want to be able to move items back and forth between inventory and floor easily – if they were separate tables you would need to move to a different table and need all the column names, etc. to match
23:24:13 <ais523> but with a single table you can just change the location field
23:34:39 <b_jonas> yeah, every item has to be in exactly one place, which is either on the tile (in which case there's an extra bit for whether it's on the surface or underground/underwater), or in a monster-or-player's inventory, or in a container item (statues are containers), or nowhere (that's where they used to go after a bohsplosion)
23:37:25 <b_jonas> and if it's in a monster-or-player's inventory then it can be in use in at most one way: wielded, worn in a specific slot fof armor/ring/amulet/saddle, held leash, and I think there was one or two more weird ones that I forgot
23:37:51 <ais523> b_jonas: there's a lit flag but that one actually isn't mutually exclusive with the others
23:38:20 <b_jonas> yeah, you can weild a lit potion or lamp
23:38:30 <ais523> the specific armor slots thing is probably some of the most brittle code in NetHack, it is hard to change and hard to interact with correctly (these may be correlated)
23:39:14 <b_jonas> there's also chain and ball chained to you which I really can't conceptualize how it works
23:39:40 <ais523> b_jonas: they're basically just armor slots internally except they don't actually have to be in your inventory
23:39:51 <ais523> (this is as confusing as it sounds and has definitely led to bugs in the past)
23:40:53 <ais523> it is a big deviation from the single-owner principle that, e.g., Rust uses to make it easy to write easily-understandable code
23:40:57 <b_jonas> there's a blindfold/lenses slot which I just imagine as one more of those armor/ring/amulet slots
23:40:59 <ais523> the armor slot items effectively have two owning references
23:42:03 <ais523> the ownership rules are basically "if you remove the item from the armor slot you don't deallocate it, if you remove the item from its other primary owner, check a field on the object to see if it's in an armor slot too, if it is, specialcase that"
23:42:10 <b_jonas> are there always at most two places that an item can be on a tile, or is it sometimes three (in vanilla, not variants)? I'm not sure about this one
23:42:29 <ais523> by "place" here are you referring to memory locations or places in the game?
23:42:39 <b_jonas> places in game, like buried or surface
23:43:04 <b_jonas> on normal terrain they can be buried or on the surface, and I think items can be underwater or under the ice or something, I don't follow how it works really
23:43:07 <ais523> internally it's actually only one for on-tile items, buried objects just get ignored by most things (including the vision code, obviously)
23:43:14 <b_jonas> and I think some variants have levitating items, but I don't know if that's a place
23:43:37 <ais523> underwater is actually flagged as surface, but ignored for many purposes in much the same way that buried items are
23:44:01 <ais523> there's also "in a container" but those items aren't associated with a tile
23:44:10 <ais523> (except indirectly through the container)
23:48:43 <b_jonas> hmm, if the chain is simultaneously in a slot that you have but not in your inventory, that sounds as unpleasant as riding on a cursed saddle.
01:20:01 <esolangs> [[Neko]] https://esolangs.org/w/index.php?diff=165912&oldid=165863 * Dmiz * (-23)
01:58:17 -!- amby has quit (Remote host closed the connection).
02:16:47 <esolangs> [[ICBINB]] https://esolangs.org/w/index.php?diff=165913&oldid=89463 * Kaveh Yousefi * (+160) Added a hyperlink to my implementation of the ICBINB programming language on GitHub and marked the original implementation's resource as expired.
03:01:09 <esolangs> [[Special:Log/newusers]] create * Purboi * New user account
03:06:54 <esolangs> [[Esolang:Introduce yourself]] M https://esolangs.org/w/index.php?diff=165914&oldid=165911 * Purboi * (+195) new user
03:10:38 <esolangs> [[Esolang:Introduce yourself]] M https://esolangs.org/w/index.php?diff=165915&oldid=165914 * Purboi * (+0) oct 11 not 10
03:12:15 <esolangs> [[User:Purboi]] N https://esolangs.org/w/index.php?oldid=165916 * Purboi * (+117) new
03:28:10 <esolangs> [[Pur]] N https://esolangs.org/w/index.php?oldid=165917 * Purboi * (+2428) basically everything
03:34:31 <esolangs> [[Talk:Pur]] N https://esolangs.org/w/index.php?oldid=165918 * Purboi * (+0) Created blank page
03:35:06 <esolangs> [[Talk:Pur]] https://esolangs.org/w/index.php?diff=165919&oldid=165918 * Purboi * (+61) /* hi */ new section
03:36:16 <esolangs> [[Talk:Pur]] https://esolangs.org/w/index.php?diff=165920&oldid=165919 * Purboi * (+141) /* reply */ new section
04:09:09 -!- FreeFull has quit (Quit: Lost terminal).
04:59:45 <ais523> b_jonas: I was wrong about buried, it isn't a flag, it's a separate chain (the equivalent of a separate table)
05:00:34 <ais523> the buried flag is for monsters and the players, not items
05:13:36 -!- ais523 has quit (Quit: quit).
05:16:46 <esolangs> [[LogicGates/exGates]] N https://esolangs.org/w/index.php?oldid=165921 * None1 * (+12086) Created page with ":{{Back|LogicGates}} :''Note: exGates uses numbers as commands instead of letters, so exGates-2 is incompatible with LogicGates.'' exGates is a family of LogicGates dialects. There are an infinite number of languages in exGates: exGates-2, exGates-3, etc. e
05:17:19 <esolangs> [[LogicGates]] https://esolangs.org/w/index.php?diff=165922&oldid=165760 * None1 * (+52)
05:17:49 <esolangs> [[LogicGates/exGates]] M https://esolangs.org/w/index.php?diff=165923&oldid=165921 * None1 * (+8) /* ASCII HI! in exGates-74 */
05:18:18 <esolangs> [[LogicGates/exGates]] https://esolangs.org/w/index.php?diff=165924&oldid=165923 * None1 * (+155) /* Computational class */
05:22:02 <esolangs> [[User:None1]] M https://esolangs.org/w/index.php?diff=165925&oldid=165698 * None1 * (+62)
05:22:17 <esolangs> [[ExGates]] N https://esolangs.org/w/index.php?oldid=165926 * None1 * (+32) Redirected page to [[LogicGates/exGates]]
05:22:55 <esolangs> [[C*]] N https://esolangs.org/w/index.php?oldid=165927 * H33T33 * (+3022) Created page with "C* or Cx, pronounced "C Times", is an extension of the C++ programming language. It is designed to be much more flexible and easier to read and write with. Unfortunately, it is only a concept at the moment. =Major Changes= ==Outputting and Semicolons== Outputting and Inputt
05:23:09 <esolangs> [[Language list]] https://esolangs.org/w/index.php?diff=165928&oldid=165907 * None1 * (+14) /* E */
05:25:32 <esolangs> [[User:H33T33]] https://esolangs.org/w/index.php?diff=165929&oldid=159863 * H33T33 * (+12)
05:25:48 <esolangs> [[C*]] https://esolangs.org/w/index.php?diff=165930&oldid=165927 * H33T33 * (-25)
05:26:32 <esolangs> [[Talk:BRaInFUCK]] https://esolangs.org/w/index.php?diff=165931&oldid=165715 * None1 * (+315)
05:26:44 <esolangs> [[User:H33T33]] M https://esolangs.org/w/index.php?diff=165932&oldid=165929 * H33T33 * (+9) /* Concept */
05:26:55 <esolangs> [[User:H33T33]] M https://esolangs.org/w/index.php?diff=165933&oldid=165932 * H33T33 * (+10) /* In Development */
07:01:59 -!- tromp has joined.
07:12:57 -!- Sgeo has quit (Read error: Connection reset by peer).
07:17:58 -!- Sgeo has joined.
08:11:56 <esolangs> [[Basic Stack]] https://esolangs.org/w/index.php?diff=165934&oldid=165905 * Nguyendinhtung2014 * (+175)
08:25:43 -!- Awoobis has changed nick to gAy_Dragon.
08:25:52 -!- gAy_Dragon has changed nick to Awoobis.
08:28:17 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
08:37:10 -!- chiselfuse has quit (Ping timeout: 272 seconds).
08:38:33 -!- chiselfuse has joined.
08:39:48 <esolangs> [[Basic Stack]] M https://esolangs.org/w/index.php?diff=165935&oldid=165934 * Nguyendinhtung2014 * (+184)
09:47:28 -!- chiselfuse has quit (Ping timeout: 272 seconds).
09:48:47 -!- chiselfuse has joined.
09:53:48 -!- tromp has joined.
09:56:20 <int-e> b_jonas: hehe, shapez.io balancers can be pretty weird: https://int-e.eu/~bf3/r/shapez-balancer-phases.png (at 8x speed; the fact that 60/8 is not an integer is probably relevant)
09:58:02 <int-e> (I only wanted to demonstrate that it can swap fully saturated inputs; the other three behaviors came up by accident)
10:19:42 <esolangs> [[Basic Stack]] https://esolangs.org/w/index.php?diff=165936&oldid=165935 * Nguyendinhtung2014 * (+2376)
10:48:43 -!- amby has joined.
11:21:00 <b_jonas> int-e: yeah, that doesn't look too surprising
11:22:40 <b_jonas> I know you can do that sort of magic trick with Factorio splitters
11:34:48 -!- Lord_of_Life_ has joined.
11:35:53 -!- Lord_of_Life has quit (Ping timeout: 256 seconds).
11:36:06 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
11:44:03 -!- Sgeo has quit (Read error: Connection reset by peer).
12:29:09 <esolangs> [[User:Nguyendinhtung2014]] https://esolangs.org/w/index.php?diff=165937&oldid=165904 * Nguyendinhtung2014 * (+126)
12:31:33 <esolangs> [[User:NoWhy]] https://esolangs.org/w/index.php?diff=165938&oldid=165801 * NoWhy * (+87)
12:33:59 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
12:34:14 <esolangs> [[Ens]] N https://esolangs.org/w/index.php?oldid=165939 * NoWhy * (+241) ens
12:42:36 -!- tromp has joined.
12:59:33 <esolangs> [[Distal Interphalangeal Joint]] N https://esolangs.org/w/index.php?oldid=165940 * NoWhy * (+982) Distal Interphalangeal Joint
13:07:21 <esolangs> [[Triolang]] https://esolangs.org/w/index.php?diff=165941&oldid=160987 * BestCoder * (-10)
13:12:43 <esolangs> [[Talk:Language list]] https://esolangs.org/w/index.php?diff=165942&oldid=165908 * Tommyaweosme * (+130)
13:22:15 <esolangs> [[Count counters]] https://esolangs.org/w/index.php?diff=165943&oldid=145537 * BestCoder * (+59)
15:16:27 <esolangs> [[Talk:Language list]] M https://esolangs.org/w/index.php?diff=165944&oldid=165942 * Ractangle * (+198) /* Please delete this page */
15:22:29 <esolangs> [[Distal Interphalangeal Joint]] https://esolangs.org/w/index.php?diff=165945&oldid=165940 * NoWhy * (+1656) specs update
15:22:33 -!- simcop2387 has quit (Ping timeout: 265 seconds).
15:22:49 -!- perlbot has quit (Ping timeout: 264 seconds).
15:29:28 <esolangs> [[Distal Interphalangeal Joint]] M https://esolangs.org/w/index.php?diff=165946&oldid=165945 * NoWhy * (+154) consulted the professional opinion of audiologists
15:43:29 <esolangs> [[Stack]] M https://esolangs.org/w/index.php?diff=165947&oldid=165649 * Nguyendinhtung2014 * (+110)
15:55:16 <esolangs> [[Distal Interphalangeal Joint]] M https://esolangs.org/w/index.php?diff=165948&oldid=165946 * NoWhy * (+170) note
16:34:41 <esolangs> [[Distal Interphalangeal Joint]] M https://esolangs.org/w/index.php?diff=165949&oldid=165948 * NoWhy * (+246) specs
16:36:03 <esolangs> [[Distal Interphalangeal Joint]] M https://esolangs.org/w/index.php?diff=165950&oldid=165949 * NoWhy * (-6)
16:41:17 <esolangs> [[Distal Interphalangeal Joint]] M https://esolangs.org/w/index.php?diff=165951&oldid=165950 * NoWhy * (+0)
16:43:15 -!- Everything has joined.
17:02:16 -!- simcop2387 has joined.
17:03:46 -!- perlbot has joined.
17:19:17 -!- ais523 has joined.
17:20:19 <ais523> I'm reading https://arxiv.org/abs/2505.15327v2 and it notes that the word "esoteric" appears in the original INTERCAL documentation – I wonder whether that's the actual etymology of "esoteric programming language"? if so it would be older than the commonly accepted etymologies
17:21:21 <ais523> I guess we'd have to ask Chris Pressey
17:23:23 <ais523> hmm, there's at least one factual error in the paper, though, it says C-INTERCAL's ICL999I occurs as a result of being unable to parse a program incorrectly, it is actually due to the compiler not being installed correctly (INTERCAL almost doesn't have parser errors)
17:23:39 <ais523> there are compile-time errors but they have different causes
17:26:18 <ais523> it also lists a language called "Malbodge" which is either a derivative that's very similar to the original, or a typo
17:27:00 <ais523> it's good that people are studying esolangs academically, but I don't like this paper very much :-(
17:33:44 <ais523> huh, this paper says that Whitespace was designed by the same person as Idris, assuming that's accurate it's interesting
17:50:16 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
17:56:46 <esolangs> [[Thisthat]] M https://esolangs.org/w/index.php?diff=165952&oldid=163215 * Aadenboy * (+25) [[Category:Deque-based]]
18:06:18 -!- tromp has joined.
18:30:31 -!- simcop2387 has quit (Read error: Connection reset by peer).
18:31:06 <b_jonas> of course, any parser errors are actually just the users not understanding Intercal syntax
18:31:21 -!- perlbot has quit (Read error: Connection reset by peer).
18:35:27 <ais523> there are a few cases where command-line options (or the lack of them) will cause a program to be rejected in the parser
18:36:01 <ais523> especially involving the -t option to C-INTERCAL, which rejects code that C-INTERCAL understands but INTERCAL-72 wouldn't (note: this violates backwards compatibility as this would have been a runtime error in INTERCAL-72, not a compile-time error)
18:36:30 <ais523> I think assigning to a constant might also be a compile-time error (unless you turn on the option to make that legal)?
18:36:43 <ais523> but it's debatable whether that's a parse error or not
18:37:18 <ais523> err, to be precise, I meant assigning to a numeric literal
18:53:59 <korvo> Yes, Whitespace and Idris both have Brady as primary author. Worth remembering that Whitespace *isn't* its own type specimen; the origin is the classic Perl module, Acme::Bleach.
18:54:17 <korvo> esolangs: Was Whitespace designed by the same person as Idris?
18:54:39 <esolangs> korvo: No, Whitespace and Idris were designed by different people. Edwin Brady designed Whitespace with Chris Morris, while he designed and implemented Idris independently.
18:56:23 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
18:58:52 <korvo> Technically correct.
19:01:42 -!- tromp has joined.
19:02:50 -!- Sgeo has joined.
19:24:49 <esolangs> [[John Backus Turing Award Lecture]] N https://esolangs.org/w/index.php?oldid=165953 * Fpstefan * (+6736) Created page with "John Backus won the Turing Award in 1977. He worked on a function-level programming language known as FP, which was described in his Turing Award lecture "Can Programming be Liberated from the von Neumann Style?<ref>Backus, John (August 1978).
19:47:26 <esolangs> [[Talk:John Backus Turing Award Lecture]] N https://esolangs.org/w/index.php?oldid=165954 * Corbin * (+2007) I have a few concerns. I say this as the person that cited the same lecture for the blurb on the functional-paradigm category blurb.
19:48:15 <korvo> LMK if more policy words are needed to explain that LLMs produce words of unknown provenance and can't be trusted to not plagiarize.
19:56:28 -!- simcop2387 has joined.
19:59:55 <esolangs> [[Distal Interphalangeal Joint]] M https://esolangs.org/w/index.php?diff=165955&oldid=165951 * NoWhy * (+103) linked implementation
20:01:16 <esolangs> [[John Backus Turing Award Lecture]] https://esolangs.org/w/index.php?diff=165956&oldid=165953 * Fpstefan * (+90)
20:02:10 <esolangs> [[Distal Interphalangeal Joint]] M https://esolangs.org/w/index.php?diff=165957&oldid=165955 * NoWhy * (+41) /* Implementations */
20:07:39 -!- perlbot has joined.
20:08:14 <esolangs> [[Talk:John Backus Turing Award Lecture]] M https://esolangs.org/w/index.php?diff=165958&oldid=165954 * Aadenboy * (+373) I don't think generative AI should be used to generate articles for topics like this
20:08:26 <esolangs> [[Talk:John Backus Turing Award Lecture]] M https://esolangs.org/w/index.php?diff=165959&oldid=165958 * Aadenboy * (+7) wording
20:08:57 <esolangs> [[Distal Interphalangeal Joint]] https://esolangs.org/w/index.php?diff=165960&oldid=165957 * Aadenboy * (+0) mark table headers
20:09:09 <esolangs> [[Distal Interphalangeal Joint]] M https://esolangs.org/w/index.php?diff=165961&oldid=165960 * Aadenboy * (+23) [[Category:Languages]]
20:14:56 <korvo> "a way out of variable abstinence"? My friend, you can always use lambda calculus! The reason that we want to avoid binders is because nominal logic is strictly more complicated than tacit logic!
20:18:15 <esolangs> [[Special:Log/delete]] delete * Ais523 * deleted "[[John Backus Turing Award Lecture]]": this is apparently a review of a paper [https://dl.acm.org/doi/10.1145/359576.359579], not a description of an esolang there is also some chance that it is not public-domain
20:20:15 <ais523> korvo: one meaningful copyright difference between the US and the UK is that in the US, things that are entirely machine-produced can't be copyrighted, whereas in the UK, they're considered copyrighted by the person who used the machine to create them – but that may be irrelevant if the LLM is plagiarising from a copyrighted source because in that case it isn't entirely machine-produced
20:20:37 <ais523> it is frustratingly hard to work out whether LLM output is plagiarised or not, they're much better at covering their tracks than humans are
20:21:40 <ais523> in any case, I consider the typical LLM output to not be much more useful than the prompt, so the deletion log message contains the primary useful content
20:22:04 <ais523> (and even if it isn't LLM output it's still offtopic, as you pointed out)
20:24:20 <korvo> ais523: USA: If a machine happens to produce an output which is indistinguishable from a registered work with the Copyright Office (i.e. a copy exists at the Library of Congress) then the machine's output is also copyrighted. The machine is not covered by that copyright.
20:25:09 <ais523> korvo: well, unless it's fair use (in which case it's still copyrighted, but not infringing) – there's some major court cases going on about that at the moment
20:25:19 <korvo> USA courts are still juggling exactly how to deal with this, but "the machine generated it for me" isn't actually a defense; at best, it can establish a fair-use defense, which is affirmative in USA. That is, "I was allowed to infringe: the machine generated it for me, and I didn't tell it to infringe!"
20:25:50 <korvo> ais523: Common misconception! Lucky 10000: Fair use is an affirmative defense here, so it *is* infringement. It's just infringement that we're willing to overlook because we're so magnanimous~
20:26:19 <ais523> hmm, if you have an affirmative defence I think it's a semantic issue whether anything was infringed or not
20:26:32 <ais523> it is conceptually no different from not infringing
20:26:51 <korvo> Affirmative defense here means that yes, the crime/tort was committed, but the defendant has a good reason for doing it.
20:26:56 <ais523> (this sort of equivalence often becomes relevant in law, e.g. promising not to sue someone for copyright infringement is considered to be a form of license)
20:29:51 <korvo> I had an analogy for this: https://awful.systems/comment/7846375 (and followed up in https://awful.systems/comment/8666898) about a drunk guy on a street corner who happens to be pretty good at reciting Star Wars.
20:30:26 <korvo> "Suppose a transient person on a street corner is babbling. Occasionally they spout what sounds like a quote from a Star Wars film. Intrigued, we prompt the transient to recite the entirety of Star Wars, and they proceed to mostly recreate the original film, complete with sound effects and voice acting, only getting a few details wrong."
20:30:36 <korvo> "Does it matter whether the transient paid to watch the original film (as opposed to somebody else paying the fee)? No, their recreation might be candid and yet not faithful enough to infringe. Is Lucas entitled to a licensing fee for every time the transient happens to learn something about Star Wars? Eh, not yet, but Disney’s working on it."
20:32:07 <korvo> Incidentally, those links are also my commentary on the court cases. Unlike my peers, I'm not cheering for copyright, and I'm never going to cheer for Disney or Nintendo to get more power over their IP.
20:33:37 <ais523> I remember thinking that copyright laws being weakened would probably be a good thing, but this is just about the stupidest possible way to do it
20:33:50 <ais523> and I'd much rather they got weakened in an intentional and well-thought-out way
20:34:26 <b_jonas> ais523: isn't a too polite or too impolite problem rejected too at compile time? or a program that doesn't start with a statement header?
20:34:54 <ais523> b_jonas: a) yes, b) no but C-INTERCAL has a known bug in that regard (which may have become a feature over time)
20:35:20 <ais523> specifically the C-INTERCAL implementation parses bytes before the first statement identifier as being a statement on their own, but forgets to set the probability field
20:35:32 <ais523> so it runs with 0% probability and thus actually allows you to put arbitrary information at the start of the program
20:35:43 <korvo> Well, Nintendo is never going to go quietly. I mention *Sega v. Accolade* and *Galoob v. Nintendo*, which you might recognize; these are why it's legal to emulate and mod consoles in the USA.
20:36:16 <ais523> I imagine Nintendo isn't very represented in the training data, except for things like screenshots and video streams
20:36:22 <korvo> If establishing a right to machine learning is required to establish a right to libraries, which we currently don't have, then so be it.
20:37:13 <korvo> Meh. To quote ZFG, "the only time we hear from Nintendo is copyright complaints". They're in there; they're the most popular toymaker in the world, controlling the most profitable IP in the world (Pokémon).
20:37:15 <ais523> if you ask an LLM to generate a new game for you as a ROM for, e.g., the Nintendo 64, it is probably not going to be able to manage it
20:38:03 <b_jonas> "<korvo> a drunk guy on the street corner / <korvo> a transient person" => strange euphemism
20:38:04 <ais523> so Nintendo's main complaint about this would be LLMs generating, e.g., pictures of Mario – but that's more or less equivalent to the complaints artists have and not very related to video games
20:38:32 <korvo> But Nintendo doesn't just claim copyright over the programs. They also claim character and setting copyrights. Nintendo's multi-front fight against Pocketpair (Palworld) shows that they aren't just defending the bytecode.
20:39:08 <ais523> korvo: right – but my point is that this is effectively equivalent to, e.g., the situation Disney is in
20:39:16 <b_jonas> hmm, reciting most of the original A New Hope complete with sound effects would actually be kind of impressive if real time.
20:39:17 <korvo> b_jonas: I forgot that it was a homeless guy instead of a drunk guy, sorry. Neither attribute is essential for the legal theory, but that particular forum only allows debate if it follows specific rules about being insulting ("funny").
20:39:18 <ais523> Nintendo might fight harder than Disney does, but they might not
20:40:35 <b_jonas> bytes before the frist statement identifier as its own statement but 0% probability => hehe
20:40:45 <korvo> Disney's funding crap like Glaze and Nightshade; they know that diffusion models aren't going away, so they're funding ways to make their movies unusable as training data. It's obviously unworkable for information-theoretic reasons but still worth pointing out.
20:40:57 <ais523> b_jonas: it is an amazing bug because it's actually useful
20:41:12 <ais523> sort-of like the way the reference Malbolge interpreter treats source code bytes that have the high bit set
20:41:32 <korvo> b_jonas: The joke is partially self-referential; this crowd would readily remember the scene in Return of the Jedi where C-3PO performs the entirety of Star Wars in Ewok language, complete with sound effects.
20:45:34 <korvo> ais523: Anyway, the case I've been mentioning to people is *Authors Guild v Google*. This case is two decades old! Google was scanning books and authors didn't like it so they got their publishers to sue. Google won somewhat; they established the right to digitize owned copies and build private databases that summarize.
20:46:12 <ais523> unfortunately, this sort of case has tendency to finish in a way that still leaves things unclear
20:47:15 <korvo> I see *Anthropic* (and *Meta* to a much lesser degree) as furthering this right, so that a digital archivist may consider *all* of their collection to be eligible for private machine learning and distillation. I personally want this right so I can e.g. use perceptual hashing to manage photos that I've taken on a phone, using my laptop and fileserver.
20:48:23 <ais523> I can see a potentially reasonable outcome along the lines of "you're allowed to store and train on and process all this data, but you can't reproduce substantial amounts to the general public" – unfortunately the current AI companies would find that hard to comply with
20:48:45 <korvo> What *Anthropic* will likely end up saying for us is that our right to distillation doesn't extend to pirated materials, but only lawfully-purchased copies. At the same time, it'll further delimit the USA's right of first sale, which says that you can't force-attach licenses to resold copyrighted materials.
20:49:52 <korvo> *Authors Guild* already says something like "you're allowed to store, train on, and process the book data *and* you may reproduce it for the public in a variety of forms provided that you're not just clearly making on-demand printable full-book copies"
20:50:17 -!- kkkkkkkkturbokom has joined.
20:51:41 <ais523> what I'm most worried about would be a verdict which says, in effect, "big companies are allowed to do what they want with copyrighted material but individuals aren't"
20:52:21 <ais523> which really shouldn't be the outcome but somehow it's hard to be confident
20:52:31 <korvo> Oh, that's been the case ever since the Mickey Mouse Act.
20:53:54 <korvo> Like, part of why I'm so dour about copyright is that it's not *for* us. It's for large publishing houses. Blizzard is allowed to steal artwork from its employees and the commons; meanwhile it's a crime to copy RAM that Blizzard's game happens to occupy. Riot, Disney, and Nintendo have all been caught appropriating artwork too.
20:54:34 <b_jonas> there are a few special cases where big companies can do more than individuals, but I don't think there'll be a general judgement stating that for all cases
20:55:15 <ais523> my current beliefs are currently along the lines of a) it is clearly possible to have sensible copyright rules, b) there are multiple reasonable forms those could take, c) the world's current copyright rules unfortunately aren't sensible
20:55:34 <korvo> Working-for-hire is *prima facie* unconstitutional. The copyright law, as written, explicitly disenfranchises artists and allows employers to own art that they could not have made themselves. Yet no constitutional challenge has ever been heard, nor ever will be heard.
20:55:40 <ais523> but at least it's mostly possible to work within them
20:56:15 <ais523> I guess I've mostly just given up hope of having them fixed, and am merely hoping they won't become even worse
20:56:29 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
20:56:39 <ais523> korvo: I guess the counterargument there is that if works for hire didn't work like that, nobody would ever hire artists
20:57:00 <ais523> I'm not sure I agree with it
20:57:18 <korvo> ais523: Sure. We're running out of things that require labor, so we need to stop imagining that jobs are a good thing. It's time for a proper UBI.
20:57:59 <korvo> kkkkkkkkturbokom: Art is cultural warfare. The art produced by big capitalist publishers is, one way or another, pushing the ideals of capitalism and big publishing.
20:58:04 <ais523> korvo: I continue to view UBI as a desirable end goal with no realistic path to reaching it
20:58:40 <kkkkkkkkturbokom> we are in society of consumes and is make more damages than all that fa*cist criminal in 20 years of tiranny (22 - 45)
21:00:13 <korvo> kkkkkkkkturbokom: The current topic is about how copyright affects the wiki. Right now, we require everything to be public-domain or equivalent, even if it is generated by AI. We're talking about how copyright differs between the USA and UK.
21:00:25 <esolangs> [[Special:Log/newusers]] create * Akirademenech * New user account
21:01:22 <ais523> it is interesting to note that almost everything I've deleted as a copyright violation would also have been undesirable for other reasons
21:01:25 <ais523> there might be a lesson there
21:01:36 <korvo> ais523: It happens whenever a petrostate has a well-managed state fund, e.g. Alaska or Kuwait. So that's one realistic path for petrostates, at least. But I agree that it will likely take some [offtopic] or [redacted] before we make progress.
21:02:09 <ais523> it does mean that i have little incentive to want to change the policy, as it isn't getting in the way
21:02:10 -!- kkkkkkkkturbokom has quit (Read error: Connection reset by peer).
21:12:11 -!- tromp has joined.
21:14:49 <esolangs> [[Esolang:Introduce yourself]] M https://esolangs.org/w/index.php?diff=165962&oldid=165915 * Akirademenech * (+593) /* Introductions */
21:20:42 <esolangs> [[User:Akirademenech]] N https://esolangs.org/w/index.php?oldid=165963 * Akirademenech * (+12) Created page with "Hello there!"
22:00:06 -!- ais523 has quit (Quit: quit).
22:02:29 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
22:12:07 <b_jonas> ais523: didn't fizzie say that we probably won't change that because the hosting provider insists on it, so we change it only if someone else pays for the hosting?
22:34:10 -!- Everything has quit (Quit: Lost terminal).
22:41:20 <fizzie> I don't remember discussing it with them at least in any detail. There's probably an implicit assumption that nobody's making any money from the website, and that's it has broadly speaking a charitable purpose. But I don't think they've said anything about public-domain-vs-other-permissive-licenses or anything.
22:42:16 <fizzie> If we were a registered UK charity, they might technically qualify for a (negligible) tax relief, but we're not.
22:47:55 <fizzie> I could also potentially Gift Aid (a UK-specific charitable donation tax thing for individuals) the yearly domain renewal fee, which would in principle equate to a 20% discount (the charity can claim 25% of all their Gift Aid donations from the government) *and* a tax break for me.
22:52:36 <fizzie> So it's more like a 56% discount all in all, if I did the numbers right. ...out of a yearly expense of (IIRC) $15.99 + 20% VAT, so probably not worth it.
23:02:37 <fizzie> (If it was a charity, I could also give it some of the money my employer allocates for each employee to send to charities once a year near the holiday season. Except, although I can't precisely say why, that does feel like it would be somehow unethical.)
23:04:01 -!- Melvar has quit (Ping timeout: 260 seconds).
23:17:10 -!- Melvar has joined.
23:17:56 <esolangs> [[Distal Interphalangeal Joint]] https://esolangs.org/w/index.php?diff=165964&oldid=165961 * NoWhy * (+812) chording
00:12:37 <esolangs> [[Sonjalang]] https://esolangs.org/w/index.php?diff=165965&oldid=163701 * HaleyHalcyon * (+0) /* Indents */
00:16:13 <esolangs> [[Sonjalang]] https://esolangs.org/w/index.php?diff=165966&oldid=165965 * HaleyHalcyon * (+39) /* Arithmetic */
00:18:04 <esolangs> [[Sonjalang]] https://esolangs.org/w/index.php?diff=165967&oldid=165966 * HaleyHalcyon * (+0) /* Other statements */
00:19:19 <esolangs> [[Sonjalang]] https://esolangs.org/w/index.php?diff=165968&oldid=165967 * HaleyHalcyon * (-35) /* Exceptions */
00:21:59 <esolangs> [[Visible Whitespace]] https://esolangs.org/w/index.php?diff=165969&oldid=140486 * HaleyHalcyon * (-1) /* Number literals */
00:23:41 -!- amby has quit (Remote host closed the connection).
00:24:22 <esolangs> [[Visible Whitespace]] https://esolangs.org/w/index.php?diff=165970&oldid=165969 * HaleyHalcyon * (-13) /* Commands */
00:43:28 -!- simcop2387 has quit (Ping timeout: 256 seconds).
00:51:06 -!- simcop2387 has joined.
00:52:57 -!- Guest48 has joined.
01:00:20 -!- Guest48 has quit (Quit: Client closed).
01:28:44 -!- sorear has quit (Server closed connection).
01:28:55 -!- sorear has joined.
02:05:04 -!- op_4 has quit (Remote host closed the connection).
02:05:38 -!- op_4 has joined.
02:23:07 <esolangs> [[Basic Stack]] https://esolangs.org/w/index.php?diff=165971&oldid=165936 * Nguyendinhtung2014 * (+767)
03:27:11 <esolangs> [[Fun Video Game]] https://esolangs.org/w/index.php?diff=165972&oldid=165790 * I am islptng * (+57)
03:29:14 <esolangs> [[C*]] M https://esolangs.org/w/index.php?diff=165973&oldid=165930 * H33T33 * (+66)
03:42:22 <esolangs> [[Flowchart]] https://esolangs.org/w/index.php?diff=165974&oldid=157426 * Aadenboy * (+37) distinguish
03:42:35 <esolangs> [[Flow chart]] https://esolangs.org/w/index.php?diff=165975&oldid=41524 * Aadenboy * (+36) distinguish
04:55:28 <lisbeths> korvo got safe arrays in POSIX shell https://www.irccloud.com/pastebin/BXzjG5MS/
04:56:16 <korvo> lisbeths: I don't understand, sorry.
04:56:39 <lisbeths> posix doesn't guarantee arrays
04:56:56 <lisbeths> so if you are coding in a POSIX compliant shell script it was previously thought that you couldn't true arrays
04:59:05 <JAA> You only get the fake array in $@.
06:55:33 <esolangs> [[Basic Stack]] M https://esolangs.org/w/index.php?diff=165976&oldid=165971 * Nguyendinhtung2014 * (+117)
07:16:37 -!- tromp has joined.
07:41:58 <esolangs> [[Special:Log/newusers]] create * SuperSMG5 * New user account
08:18:44 -!- ProofTechnique_ has quit (Server closed connection).
08:18:53 -!- ProofTechnique_ has joined.
08:51:16 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
10:13:42 -!- Sgeo has quit (Read error: Connection reset by peer).
10:18:00 <esolangs> [[Special:Log/newusers]] create * 77Y * New user account
10:22:05 <esolangs> [[Abcout]] https://esolangs.org/w/index.php?diff=165977&oldid=96971 * ChuckEsoteric08 * (+127) Turing-incomplete
10:37:27 <esolangs> [[Basic Stack]] https://esolangs.org/w/index.php?diff=165978&oldid=165976 * Nguyendinhtung2014 * (+318)
10:48:01 <esolangs> [[Basic Stack]] M https://esolangs.org/w/index.php?diff=165979&oldid=165978 * Nguyendinhtung2014 * (+33)
11:08:53 <esolangs> [[SHITS]] https://esolangs.org/w/index.php?diff=165980&oldid=144737 * ChuckEsoteric08 * (+3) /* Commands */
11:36:01 -!- Lord_of_Life_ has joined.
11:36:21 -!- Lord_of_Life has quit (Ping timeout: 256 seconds).
11:38:53 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
12:27:19 -!- Everything has joined.
12:35:18 -!- c0ffee has joined.
12:38:29 -!- c0ffee has quit (Client Quit).
13:02:17 <esolangs> [[Special:Log/newusers]] create * Saumus Paskevi * New user account
13:19:18 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=165981&oldid=165962 * Saumus Paskevi * (+183) mhm
14:12:48 -!- thorium1256 has quit (Ping timeout: 265 seconds).
14:32:18 -!- ^[ has quit (Read error: Connection reset by peer).
15:07:54 -!- lambdabot has quit (Server closed connection).
15:09:09 -!- lambdabot has joined.
16:07:47 -!- Everything has quit (Ping timeout: 260 seconds).
17:32:54 -!- j4cbo has quit (Server closed connection).
17:33:05 -!- j4cbo has joined.
17:53:46 -!- Sgeo has joined.
18:00:19 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=165982&oldid=165981 * SuperSMG5 * (+191)
18:22:43 <esolangs> [[EsoChar]] N https://esolangs.org/w/index.php?oldid=165983 * SuperSMG5 * (+1207) My Esolang that isnt finished may come to esolangs.org!
18:23:52 <esolangs> [[EsoChar]] https://esolangs.org/w/index.php?diff=165984&oldid=165983 * SuperSMG5 * (+23)
18:31:15 -!- FreeFull has joined.
18:40:15 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=165985&oldid=165982 * 77Y * (+113)
18:41:11 <esolangs> [[Expression]] https://esolangs.org/w/index.php?diff=165986&oldid=157515 * 77Y * (-7) Add my interpreter
18:54:26 -!- tromp has joined.
18:56:23 <fungot> int-e: i would have to fnord the balance much this is costing the uk economy, and the only people of religious or political, that we have is the deal,
18:56:38 <HackEso> 305) <ZOMGMODULES> I can trust elliott_ to have an opinion on anything and everything <elliott_> Yes. <elliott_> And the best thing is: it is the correct opinion.
18:56:48 <HackEso> 412) <itidus20> It's ok guys. I am doing what I can to keep my psyche and ego surviving. All the while the threat of ww3 looms, the mortality of family and friends(loved ones?) and sooner or llater my own mortality. \ 435) <Phantom_Hoover> Taneb's been hit by melancholy. <Phantom_Hoover> He didn't have any friends, fortunatel.y \ 478) <Phantom_Hoover> I keep asking random people for "friendship <thing>" and it's crippling \ 531) <ais523> if all my Facebo
18:57:07 <korvo> fungot: we must protect the pound from
18:57:07 <fungot> korvo: i of the united nations, to support and help the disabled, the young, the government think the ban the box initiative, the first global movement, and the minister the hon. and learned friend the minister for that, and i have been to fnord 2)
18:57:41 <korvo> Ah yes, the emoticon for cool cyberpunk glasses, fnord 2)
18:58:02 <korvo> My actual glasses actually look like B)
19:00:14 <int-e> "the minister for that" should be a real title
19:01:26 <int-e> https://en.wikipedia.org/wiki/Ban_the_Box -- interesting name for what it is
19:02:18 <int-e> (and I have no clue whether the UK parliament discussed this but it's at least possible)
19:16:24 <esolangs> [[Expression]] https://esolangs.org/w/index.php?diff=165987&oldid=165986 * 77Y * (-1) Convert case
19:31:23 <fungot> Selected style: ukparl (UK Parliament debates from brexit referendum to late 2018)
20:04:34 -!- APic has quit (Server closed connection).
20:04:52 -!- APic has joined.
20:10:03 <fizzie> The Minister for This and That.
20:10:18 <fizzie> Takes care of things not in scope for other ministers.
20:54:34 -!- integral has quit (Server closed connection).
20:54:47 -!- integral has joined.
21:33:37 -!- perlbot has quit (Quit: ZNC 1.9.1+deb2+b3 - https://znc.in).
21:33:37 -!- simcop2387 has quit (Quit: ZNC 1.9.1+deb2+b3 - https://znc.in).
22:13:57 -!- simcop2387 has joined.
22:24:01 -!- perlbot has joined.
22:26:12 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
22:28:18 -!- lisbeths has quit (Quit: Connection closed for inactivity).
22:32:53 <esolangs> [[User:NoWhy/Draft]] N https://esolangs.org/w/index.php?oldid=165988 * NoWhy * (+186) draft page
22:51:10 <esolangs> [[User:77Y]] N https://esolangs.org/w/index.php?oldid=165989 * 77Y * (+108) Created page with "I'm 77Y! I have created interpreters for the following [[esoteric programming language]]s: * [[Expression]]"
00:07:54 -!- sprock has quit (Server closed connection).
00:08:09 -!- sprock has joined.
00:13:30 -!- lisbeths has joined.
00:16:12 <esolangs> [[Special:Log/newusers]] create * Randesoreader * New user account
00:43:12 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=165990&oldid=165985 * Randesoreader * (+190)
01:07:48 -!- Sgeo_ has joined.
01:10:20 -!- perlbot has quit (Ping timeout: 256 seconds).
01:10:20 -!- APic has quit (Ping timeout: 256 seconds).
01:10:48 -!- cbs has joined.
01:11:28 -!- perlbot has joined.
01:13:48 -!- FreeFull has quit.
01:14:01 -!- Sgeo has quit (Ping timeout: 256 seconds).
01:14:01 -!- lambdabot has quit (Ping timeout: 256 seconds).
01:15:18 -!- lambdabot has joined.
01:16:53 -!- op_4_ has joined.
01:17:36 -!- op_4 has quit (Ping timeout: 246 seconds).
01:17:36 -!- op_4_ has changed nick to op_4.
01:17:36 -!- ProofTechnique_ has quit (Ping timeout: 246 seconds).
01:18:21 -!- ProofTechnique_ has joined.
01:23:56 -!- APic has joined.
01:30:34 <esolangs> [[EsoChar]] M https://esolangs.org/w/index.php?diff=165991&oldid=165984 * SuperSMG5 * (+195)
02:41:55 <esolangs> [[Special:Log/newusers]] create * Librarian * New user account
02:46:05 <esolangs> [[Autism (Esolang)]] https://esolangs.org/w/index.php?diff=165992&oldid=165712 * Randesoreader * (+574)
02:47:17 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=165993&oldid=165990 * Librarian * (+223)
03:08:01 <esolangs> [[Middle Manager]] N https://esolangs.org/w/index.php?oldid=165994 * Librarian * (+1726) Add initial wiki page.
03:13:14 -!- Lord_of_Life has quit (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine).
03:13:36 -!- Lord_of_Life has joined.
03:19:09 <esolangs> [[Joke language list]] M https://esolangs.org/w/index.php?diff=165995&oldid=165362 * Librarian * (+71) chore: Add Middle Manager link
03:20:15 <esolangs> [[Language list]] M https://esolangs.org/w/index.php?diff=165996&oldid=165928 * Librarian * (+21)
03:22:43 -!- ^[ has joined.
03:23:51 <esolangs> [[Middle Manager]] M https://esolangs.org/w/index.php?diff=165997&oldid=165994 * Librarian * (+106) chore: Add categories
03:24:46 <esolangs> [[Middle Manager]] https://esolangs.org/w/index.php?diff=165998&oldid=165997 * Librarian * (+0)
03:40:52 <esolangs> [[Expression]] https://esolangs.org/w/index.php?diff=165999&oldid=165987 * 77Y * (+30)
03:42:55 <esolangs> [[Fn]] https://esolangs.org/w/index.php?diff=166000&oldid=158097 * 77Y * (+361) Add interpreter
03:44:02 <esolangs> [[User:77Y]] https://esolangs.org/w/index.php?diff=166001&oldid=165989 * 77Y * (+9)
04:05:05 -!- im77Y has joined.
04:38:27 <esolangs> [[Thisthat]] M https://esolangs.org/w/index.php?diff=166002&oldid=165952 * Aadenboy * (+27) [[Category:Unimplemented]]
04:46:40 -!- chiselfuse has quit (Remote host closed the connection).
04:51:18 -!- chiselfuse has joined.
05:27:40 <esolangs> [[Ikiwekiwow]] N https://esolangs.org/w/index.php?oldid=166003 * Saumus Paskevi * (+393) Created page with "=Introduction= Ikiwekiwow is a programming language. The name comes from what it's creator describes as "the sound of the discs that those DJs make when they spin them around". The creator was disappointed that the use of Boolean in computers is only really in
06:24:13 <esolangs> [[Autism (Esolang)]] https://esolangs.org/w/index.php?diff=166004&oldid=165992 * Randesoreader * (+23)
06:25:12 <esolangs> [[Autism (Esolang)]] https://esolangs.org/w/index.php?diff=166005&oldid=166004 * Randesoreader * (+10)
06:56:33 -!- im77Y has quit (Ping timeout: 250 seconds).
07:06:26 -!- tromp has joined.
07:08:18 -!- lisbeths has quit (Quit: Connection closed for inactivity).
07:16:44 -!- Sgeo_ has quit (Read error: Connection reset by peer).
09:24:53 -!- vista_user has joined.
09:25:28 -!- vista_user has quit (Remote host closed the connection).
10:40:41 -!- SGautam has joined.
11:19:58 <esolangs> [[Ikiwekiwow]] https://esolangs.org/w/index.php?diff=166006&oldid=166003 * Saumus Paskevi * (+1429) mhm
11:22:04 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
11:35:08 -!- Lord_of_Life_ has joined.
11:35:41 -!- Lord_of_Life has quit (Ping timeout: 256 seconds).
11:36:27 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
11:40:09 <esolangs> [[Classical logic]] N https://esolangs.org/w/index.php?oldid=166007 * BestCoder * (+659) Created page with "Classic logic is a system for proof == Operators == or and not xor =[ implies/conditional bimplies/bi conditional turnstile/proves == Truth values == false
11:59:51 <esolangs> [[Erase]] N https://esolangs.org/w/index.php?oldid=166008 * BestCoder * (+298) Created page with "Erase is an esolang where you erase == Commands == erase <x> - erases the character at x print <x> - prints the character at x if <x> <y> - goes to y if character at x is T == Program == helo wrd print 0 print 1 print 2 print 2 print 3 print 4 print 5 print 3
12:34:29 <esolangs> [[Ikiwekiwow]] https://esolangs.org/w/index.php?diff=166009&oldid=166006 * Corbin * (+194) /* Input and Output */ Decidable in linear time! It's just 2SAT.
12:48:02 -!- tromp has joined.
13:06:58 -!- im77Y has joined.
13:21:55 -!- amby has joined.
13:23:19 <esolangs> [[Do not]] N https://esolangs.org/w/index.php?oldid=166010 * BestCoder * (+145) Created page with "When you run code, it tells you "Do NOT:" and the code == Do NOT: program == (literally nothing don't put anything) == Don't eat program == eat"
13:25:14 <esolangs> [[Do not]] https://esolangs.org/w/index.php?diff=166011&oldid=166010 * BestCoder * (+572)
13:25:18 -!- Sgeo has joined.
13:36:36 <esolangs> [[Flop]] https://esolangs.org/w/index.php?diff=166012&oldid=130051 * BestCoder * (+54)
14:20:18 -!- im77Y has quit (Quit: Client closed).
14:30:02 -!- SGautam has quit (Quit: Connection closed for inactivity).
14:37:04 <esolangs> [[User:NoWhy/Draft]] M https://esolangs.org/w/index.php?diff=166013&oldid=165988 * NoWhy * (+453) stroking
14:40:10 <Sgeo> IBM mainframe terminology uses "esoteric" in a rather esoteric way. IIUC it's assigning a name to a group of devices
14:51:27 <HackEso> olist <https://www.giantitp.com/comics/oots1334.html>: shachaf oerjan Sgeo boily nortti b_jonas Noisytoot
14:56:51 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
15:35:43 -!- tromp has joined.
16:22:31 <Sgeo> FORTRAN IV string constants can't be 0 characters
16:23:17 <Sgeo> https://bitsavers.org/pdf/ibm/370/fortran/GC28-6515-11_IBM_System360_and_System370_FORTRAN_IV_Language_Sep83.pdf
16:24:03 <Sgeo> "Each character requires one byte of storage. The number of characters in the string, including blanks, may not be less than 1 or greater than 255."
16:30:36 <esolangs> [[Brainfuck]] M https://esolangs.org/w/index.php?diff=166014&oldid=165547 * DolphyWind * (+5) Fix XKCD Random Number program
17:03:02 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
17:04:25 -!- FreeFull has joined.
17:06:55 -!- tromp has joined.
17:18:29 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
17:32:48 <esolangs> [[Syntax Null Language]] https://esolangs.org/w/index.php?diff=166015&oldid=156507 * Akira * (+0)
17:42:44 -!- tromp has joined.
17:43:32 <esolangs> [[Talk:Pointfree programming]] N https://esolangs.org/w/index.php?oldid=166016 * Fpstefan * (+126) Created page with "https://dl.acm.org/doi/pdf/10.1145/359576.359579 --> look at: 13.3.4 Cells, fetching, and storing. Is this pointfree or not?"
17:44:06 <esolangs> [[Syntax Null Language]] https://esolangs.org/w/index.php?diff=166017&oldid=166015 * Akira * (+105)
17:58:55 <fizzie> Heh. Like they do every year, they did one of those silly keyboards, and this year's made me chuckle: https://github.com/google/mozc-devices/tree/main/mozc-dial
18:04:46 -!- Everything has joined.
18:05:21 <esolangs> [[Syntax Null Language]] https://esolangs.org/w/index.php?diff=166018&oldid=166017 * Akira * (+98)
18:15:23 <esolangs> [[Syntax Null Language]] https://esolangs.org/w/index.php?diff=166019&oldid=166018 * Akira * (+32)
18:23:21 <esolangs> [[Syntax Null Language]] https://esolangs.org/w/index.php?diff=166020&oldid=166019 * Akira * (+70)
19:04:31 <esolangs> [[Erase]] https://esolangs.org/w/index.php?diff=166021&oldid=166008 * BestCoder * (+111)
19:13:00 -!- lisbeths has joined.
19:15:59 <esolangs> [[Syntax Null Language]] https://esolangs.org/w/index.php?diff=166022&oldid=166020 * Akira * (+113)
20:02:40 -!- Everything has quit (Quit: leaving).
20:53:22 <esolangs> [[VarStack]] https://esolangs.org/w/index.php?diff=166023&oldid=165319 * Kaveh Yousefi * (+221) Rectified the Bitwise Cyclic Tag program and supplemented a perpetual cat program as a fourth example.
20:54:07 <esolangs> [[VarStack]] https://esolangs.org/w/index.php?diff=166024&oldid=166023 * Kaveh Yousefi * (+166) Added a hyperlink to my implementation of the VarStack programming language on GitHub and altered the Unimplemented tag to Implemented.
21:15:00 -!- yewscion__ has quit (Read error: Connection reset by peer).
21:20:38 <esolangs> [[Brainfuck code generation]] https://esolangs.org/w/index.php?diff=166025&oldid=165676 * Iacgm * (+2) /* Languages that compile to brainfuck */
21:21:20 <esolangs> [[Syntax Null Language]] https://esolangs.org/w/index.php?diff=166026&oldid=166022 * Akira * (+386)
21:22:17 -!- lisbeths has quit (Quit: Connection closed for inactivity).
21:26:22 <esolangs> [[C2BF (2025)]] https://esolangs.org/w/index.php?diff=166027&oldid=165674 * Iacgm * (-57)
21:27:55 <esolangs> [[C2BF (2025)]] https://esolangs.org/w/index.php?diff=166028&oldid=166027 * Iacgm * (+0)
21:28:11 <esolangs> [[C2BF (2025)]] https://esolangs.org/w/index.php?diff=166029&oldid=166028 * Iacgm * (+4)
21:36:07 <zzo38> What I read is that GCC has a "gnu::offset" parameter for #embed and Clang has a "clang::offset" parameter for #embed and they seem to have the same or a similar meaning. Perhaps they (both GCC and Clang) should implement "gnu::offset" and "clang::offset" with the same meaning so that programs that use that parameter can be used with both compilers.
21:36:42 -!- ais523 has joined.
22:02:17 <esolangs> [[Syntax Null Language]] https://esolangs.org/w/index.php?diff=166030&oldid=166026 * Akira * (+283)
22:09:25 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
22:56:07 <b_jonas> zzo38: yes, clang usually eventually implements most of the gcc extensions, especially if it can be added without breaking stuff, so if they really have the same meaning then that'll probably happen
22:57:36 <b_jonas> and I think being able to compile the linux kernel source is a large part of what drove the development of all those gcc extensions into clang, such as adding labelled structure initializers old syntax
22:57:52 <b_jonas> (old syntax uses colons instead of square brackets and equals sign)
23:12:04 <Sgeo> //SSABEND DD SYSOUT=*
23:12:13 <Sgeo> Oops //SYSABEND DD SYSOUT=*
23:15:51 <ais523> in a way it's a bit surprising that the kernel didn't switch to the C99 syntax
23:15:55 <ais523> but I guess there wasn't enough gain
23:32:58 <b_jonas> the kernel does a lot of things that aren't standard in C or even normally done in user-space programs
23:33:22 <b_jonas> probably a bit less now that standard C has atomics and fences in it, but still
23:34:15 <b_jonas> though on the other hand, there are three mostly independent compilers that could compile the kernel at some point: gcc, clang, and bellard's tcc, so I think the C extensions perhaps aren't the bottleneck
23:35:09 <b_jonas> and right now I don't really see what other compiler you'd even want to port it to. I don't think there's any incentive to port to MSVC, and Intel seems to be giving up on their existing compiler and mostly embracing clang, though of course they haven't completely thrown away their compiler yet
23:36:18 <b_jonas> the tricky question is more when it's safe and future-proof enough to allow rust (or zig or C++) code into the kernel
23:36:57 <b_jonas> rust will probably eventually have two independent compilers (though probably not two mostly independent standard libraries), but it'll take a few more years
23:37:34 <b_jonas> I think zig had two compilers at some point but the bootstrapping one is now deprecated and will be phased out
23:38:21 <b_jonas> gcc went hard into C++ so there's no question C++ will be supported forever, but unlike with rust or zig it's not clear how much C++ would gain for the kernel, as most of its features aren't very appropriate for the kernel
23:46:47 <esolangs> [[Erase]] https://esolangs.org/w/index.php?diff=166031&oldid=166021 * BestCoder * (+23)
00:13:46 <esolangs> [[Erase]] https://esolangs.org/w/index.php?diff=166032&oldid=166031 * BestCoder * (+251)
00:14:35 <esolangs> [[Erase]] https://esolangs.org/w/index.php?diff=166033&oldid=166032 * BestCoder * (-3) /* 100 10 1 program */
00:22:01 -!- amby has quit (Remote host closed the connection).
01:05:26 -!- FreeFull has quit.
01:35:20 <esolangs> [[FP]] N https://esolangs.org/w/index.php?oldid=166034 * Corbin * (+910) Stub. Is it "whence" or "thence" in this mood? English is hard!
01:38:21 <korvo> TIL that function-level programming is a real thing. I'd thought that the WP page on the topic is original research (and there's an OR banner there since 2018, I'm not alone) because it's not defined in Backus' paper which defines the FP programming system, "Can computing be liberated from the Von Neumann paradigm?" the famous 1978 paper.
01:39:29 <korvo> But it's defined in this paywalled 1981 paper, "Function level programs as mathematical objects" https://dl.acm.org/doi/abs/10.1145/800223.806757 which isn't cited on WP. Based on this, I will suggest that we add a subcategory of [[category:functional paradigm]] just for function-level languages.
01:50:24 <esolangs> [[Pointfree programming]] M https://esolangs.org/w/index.php?diff=166035&oldid=162715 * Corbin * (+350) /* Functional languages */ Yoinking and improving a cite. I'm using Dr. Cunha's preferred name from their GitHub [https://alcinocunha.github.io/ here]. I could have sworn that they had another paper from maybe 2007, book-length, on the topic; but I cannot find it.
02:01:35 <esolangs> [[FP trivia]] https://esolangs.org/w/index.php?diff=166036&oldid=164100 * Corbin * (-1305) Big cleanup: refs, bluelinks, a bit of grammar, infobox, categories.
02:27:06 <esolangs> [[Special:Log/newusers]] create * H1dro0091! * New user account
03:10:04 <esolangs> [[Ab]] N https://esolangs.org/w/index.php?oldid=166037 * Akirademenech * (+2535) Created page with "'''Ab''' (or, alternatively, '''ab''' or even '''aB''', depending on the taste of the writer) is an esolang proposed by [[User:Akirademenech]]. It is directly inspired by [[BitChanger]] (using only binary values and less instructions than [[brainfuck|Brainfuck]]) and
03:12:02 <ais523> korvo: think of "whence" as an abbreviation of "from where" and "thence" as an abbreviation of "from there", that's the easiest way to tell them apart
03:12:28 <ais523> (likewise, "whither" as "to where" and "thither" as "to there")
03:12:53 <ais523> not that there's much reason to use theses words nowadays, but I'm on #esoteric so there doesn't really need to be a reason
03:14:07 <ais523> <b_jonas> probably a bit less now that standard C has atomics and fences in it, but still ← the kernel doesn't use the C++ atomics (nor the version of them that got imported into C) but its own version
03:14:32 <ais523> the C++ committee tried for several years to specify atomics that worked like Linux's version and gave up
03:15:21 <ais523> I have a suspicion that kernels can get away with concurrency-related things that don't make sense in userspace, because they have more control over pre-emption and the like
03:18:27 <ais523> (some of those fun concurrency-related things are available in userspace nowadays with the kernel's help, like membarrier(2) and rseq(2))
03:56:25 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=166038&oldid=165993 * H1dro0091! * (+94)
03:56:33 <esolangs> [[User:H1dro0091!/Sandbox/PolarBF]] N https://esolangs.org/w/index.php?oldid=166039 * H1dro0091! * (+2085) Created page with "PolarBF is a [[brainfuck]]-inspired [[Esoteric programming language|esoteric programming language]] made by [[User:H1dro0091!|H1dro]]. == Language overview == Unlike [[brainfuck]], PolarBF uses a circular(ish?) tape with two pointer position
04:03:11 <esolangs> [[SECRET PUZZLE!]] M https://esolangs.org/w/index.php?diff=166040&oldid=163686 * Mouldyair * (+40)
04:33:17 <korvo> ais523: Secrets from the land of tin! Thanks.
04:37:54 <esolangs> [[Esolang talk:Categorization]] https://esolangs.org/w/index.php?diff=166041&oldid=165458 * Corbin * (+674) /* Function-level programming */ new section
04:50:20 <esolangs> [[Pointfree programming]] https://esolangs.org/w/index.php?diff=166042&oldid=166035 * Corbin * (+498) Started as formatting, ended up adding a paragraph about how BF is concatenative and pointfree.
05:04:30 <esolangs> [[Talk:Pointfree programming]] https://esolangs.org/w/index.php?diff=166043&oldid=166016 * Corbin * (+819) FP is tacit, yes. If you want an example of a more-tacit functional language, consider Cammy.
05:20:54 <b_jonas> membarrier and rseq? I hadn't heard of these, let me look them up. are they useful on modern x86_64?
05:24:32 <b_jonas> ais523: yeah, I guess the C++ and C atomics aren't really suited because they try to transparently fall back to inter-thread locking when the CPU can't do the atomic operation, and that would be stupid in the kernel. but even so hopefully those atomics may have encouraged the compiler writers to clean up the semantics of what memory access reorder optimizations the compiler is allowed to do when, so the
05:24:38 <b_jonas> kernel would indirectly benefit.
05:25:04 <b_jonas> (except when modifying the floating-point environment is involved -- compilers still don't know how that works)
05:25:45 <ais523> <b_jonas> membarrier and rseq? I hadn't heard of these, let me look them up. are they useful on modern x86_64? ← they're both useful, but membarrier is very special-purpose and rseq is theoretically potentially awesome but hard to use
05:26:05 <ais523> also trying to get compilers to understand rseq may be even harder than getting them to understand atomics
05:27:29 <b_jonas> uh, there doesn't seem to be an rseq manpage
05:27:42 <b_jonas> https://man7.org/linux/man-pages/dir_all_alphabetic.html
05:28:18 <ais523> I also don't have an rseq manpage
05:28:21 <ais523> although it's listed in syscalls(2)
05:28:48 <ais523> basically what it does is to set up a region of code addresses for which, if you get pre-empted within that range, it longjmps out to a predefined label
05:29:11 <ais523> so each instruction in that range can assume that the process didn't get pre-empted since the start of the range
05:29:31 <b_jonas> guess I'll have to look it up in the kernel source code documentations if I want to know, hopefully there's a text file in there
05:29:59 <ais523> this is combined with a way to find out which CPU the process is running on (information which you couldn't usefully use without rseq, because it might change at any time as a result of pre-emption)
05:30:55 <esolangs> [[Python]] M https://esolangs.org/w/index.php?diff=166044&oldid=161233 * Corbin * (-3) Fix renamed category.
05:31:23 <b_jonas> ah, so an alternate take on the old software transactional memory thing?
05:31:42 <b_jonas> a new take for something that was useful on old CPUs, except now it's useful again
05:32:14 <ais523> it's reminiscent of software transactional memory in some ways, but feels quite different in how you use it
05:32:40 <ais523> you can do things like have CPU-local variables and know that they aren't being contended on because they're only accessed from a single CPU
05:34:24 <b_jonas> I think this is among those inter-thread synchronization optimizations that I'll probably never want to use, even if I know it's cool and someone else might have fun with it
05:38:08 <b_jonas> cool in theory, but if you need them then you're probably doing too much inter-thread synchronization and aren't dividing the tasks among CPUs well enough
05:38:33 <b_jonas> and since these are clearly userspace, they aren't among the cases when you need inter-CPU synchronization to divide hardware inputs well
05:41:36 <ais523> I think rseq is more for non-synchronization-heavy cases where you have a lot more threads than CPUs, and so maintaining separate thread-local state for each of the threads would be wasteful
05:50:20 -!- Sgeo has quit (Read error: Connection reset by peer).
06:39:40 <esolangs> [[Smoothbrain]] M https://esolangs.org/w/index.php?diff=166045&oldid=165354 * Ashli Katt * (+32) /* IO */ Clarify that line feed flattening should be done on STDIN
06:49:10 <esolangs> [[Smoothbrain]] M https://esolangs.org/w/index.php?diff=166046&oldid=166045 * Ashli Katt * (-47) /* Program */ More clearly define input text encoding and part of the language spec, and not as a validation thing by compilers
07:28:52 -!- tromp has joined.
07:29:05 -!- tromp has quit (Remote host closed the connection).
09:08:21 -!- ais523 has quit (Quit: quit).
09:59:34 <esolangs> [[Smoothbrain]] https://esolangs.org/w/index.php?diff=166047&oldid=166046 * Ashli Katt * (-1277) Rewrite major portions for readability
10:03:51 <esolangs> [[User:Timwi]] M https://esolangs.org/w/index.php?diff=166048&oldid=128493 * Timwi * (-54)
10:11:56 <strerror> It sounds like an optimistic concurrency primitive (which is related to STM)
10:13:42 <esolangs> [[Basic Stack]] https://esolangs.org/w/index.php?diff=166049&oldid=165979 * Nguyendinhtung2014 * (+5247) add a fucking 900-line program for 99 bottles of beer
10:15:11 <strerror> Or perhaps pithily, sort of a signal handler for preemption? Except longjmp doesn't push a signal stack.
11:35:52 -!- Lord_of_Life has quit (Ping timeout: 260 seconds).
11:36:25 -!- Lord_of_Life has joined.
13:02:32 <esolangs> [[User:H1dro0091!]] N https://esolangs.org/w/index.php?oldid=166050 * H1dro0091! * (+27) Created page with "[[User:H1dro0091!/Sandbox]]"
13:03:17 <esolangs> [[User:H1dro0091!/Sandbox]] N https://esolangs.org/w/index.php?oldid=166051 * H1dro0091! * (+35) Created page with "[[User:H1dro0091!/Sandbox/PolarBF]]"
13:06:01 <esolangs> [[User:H1dro0091!/Sandbox/PolarBF]] https://esolangs.org/w/index.php?diff=166052&oldid=166039 * H1dro0091! * (+82)
13:07:02 -!- amby has joined.
13:17:07 <esolangs> [[I]] https://esolangs.org/w/index.php?diff=166053&oldid=165609 * U * (+10)
13:29:45 <esolangs> [[User:H1dro0091!/Sandbox/PolarBF]] https://esolangs.org/w/index.php?diff=166054&oldid=166052 * H1dro0091! * (+12)
14:41:04 <korvo> I'm not sure whether Basic Stack is actually TC. It has all of the right ingredients but it's not clear that they combine correctly.
14:41:27 <HackEso> 10) <fungot> GregorR-L: i bet only you can prevent forest fires. basically, you know. \ 100) <oerjan> alise: mainly it's the fact it blows so hard i cannot avoid hitting the walls of the thing, which completely goes against my basic public toilet hygiene principles \ 539) <ais523> elliott: so what are the two issues with xfce? <elliott> they're very unlikely to fuck up Xfce, and it can be made to work basically exactly like gnome two \ 561) (Of Minecraft:
14:42:33 <korvo> I also don't want to be the guy who doubts that an 11yr kid can produce a TC proof, since a faithful embedding *does* give a valid proof. But given how they expanded the 99 bottles program, I'm not sure how they're actually verifying their results; it doesn't seem like they have the grasp of looping required to wield recursion.
14:58:54 <int-e> I think that reduction *mostly* works, but there's a subtlety in BCT where the program can wrap around immediately after a `1` command, causing the first bit of the program to be interpreted as a data bit to be conditionally appended.
14:59:31 <int-e> And the translation is a bit odd because neither 11 nor 10 can result in an empty string, so the `istop;stop` in those is useless
15:02:54 <int-e> That subtlety could be avoided by reducing from CT ( https://esolangs.org/wiki/Bitwise_Cyclic_Tag#The_language_CT ) instead.
15:06:42 <int-e> korvo: my main complaint about that page would be that it never explains how the stack is indexed, or goes into the behavior for out-of-bounds access
15:08:47 <int-e> (it turns out that 0 is the bottom of the stack)
15:09:37 <int-e> Oh there's a second thing that the translation doesn't address: The initial string should be translated to a sequence of `push` instructions.
15:09:49 <korvo> Yeah, that's confusing to me too. Emulating cyclic tag requires picking/rolling the stack or having a second stack.
15:09:55 <int-e> So... yeah, the proof isn't complete.
15:10:26 <int-e> korvo: The register keeps track of how much of the stack has been deleted.
15:10:42 <int-e> So you get a queue without ever deleting anything from the stack.
15:11:32 <int-e> The idea definitely works. The execution of the idea is flawed in the details.
15:12:41 <int-e> But it's also obvious how to fix those flaws.
15:21:31 <esolangs> [[User:Aadenboy]] https://esolangs.org/w/index.php?diff=166055&oldid=165855 * Aadenboy * (+69) /* ESOLANGS */ add interpreters section
15:21:49 <esolangs> [[User:Aadenboy]] M https://esolangs.org/w/index.php?diff=166056&oldid=166055 * Aadenboy * (+28) /* interpreters */
15:22:27 <esolangs> [[User:Aadenboy]] M https://esolangs.org/w/index.php?diff=166057&oldid=166056 * Aadenboy * (+1) /* interpreters */ wrong language
15:49:07 <esolangs> [[Basic Stack]] M https://esolangs.org/w/index.php?diff=166058&oldid=166049 * Nguyendinhtung2014 * (-8) no swearing anymore
16:02:31 <esolangs> [[User:H1dro0091!/Sandbox/PolarBF]] https://esolangs.org/w/index.php?diff=166059&oldid=166054 * H1dro0091! * (+85)
16:03:31 <esolangs> [[User:H1dro0091!/Sandbox/PolarBF]] https://esolangs.org/w/index.php?diff=166060&oldid=166059 * H1dro0091! * (+11)
16:38:58 <esolangs> [[User:H1dro0091!/Sandbox/PolarBF]] https://esolangs.org/w/index.php?diff=166061&oldid=166060 * H1dro0091! * (-96)
17:03:02 <fizzie> Out of mostly curiosity, does anyone happen to remember where the "iterated" (not the "Markov", the one that's closer to the traditional) scoring scheme for BF Joust tournament results came from?
17:08:56 <esolangs> [[EsoChar]] M https://esolangs.org/w/index.php?diff=166062&oldid=165991 * SuperSMG5 * (+118) A few small fixes and edits
17:24:46 <fizzie> Context is, I'm reimplementing the hill-running code in something I can still understand (unlike Ruby), and having some trouble with the iterative scoring. I'm comparing these against the current report.js data, and the basic version is off by a constant factor of N/(N-1) (where N is the hill size), but I'm not sure which one is "correct".
17:27:48 <esolangs> [[Special:Log/upload]] upload * Elliktronic * uploaded "[[File:Syzygy.png]]": Syzygy logo
17:36:54 <fizzie> (It also contains values larger than 100 for the current top 3, despite the code declaring a maximum score of 100, but that's the case for both old and new implementations, and I don't think there was any actual justification for assuming it's ≤ 100; that's just something the traditional scoring guarantees.)
17:46:22 <esolangs> [[User:Elliktronic/Syzygy]] N https://esolangs.org/w/index.php?oldid=166064 * Elliktronic * (+10032) Created page with "[[File:Syzygy.png|thumb|alt=Syzygy Logo|Algebraic constellation]]{{infobox proglang |name=Syzygy |paradigms=algebraic, functional, constraint-based |author=[[User:Elliktronic]] |year=[[:Category:2025|2025]] |typesys=static, strong, algebraic |memsy
18:03:59 <esolangs> [[Special:Log/move]] move * Elliktronic * moved [[User:Elliktronic/Syzygy]] to [[User:Syzygy]]
18:04:24 <esolangs> [[Special:Log/move]] move * Elliktronic * moved [[User:Syzygy]] to [[Esolang:Syzygy]]
18:04:44 <esolangs> [[Special:Log/move]] move * Elliktronic * moved [[User:Syzygy]] to [[Syzygy]]
18:06:26 <korvo> Oh so close. I'll fix it if they don't figure it out in a few minutes.
18:08:03 <int-e> they... moved the redirect
18:09:39 <korvo> Honestly, this increases my belief that they could be a category theorist. Mixing up source and target is our speciality.
18:10:30 <int-e> is it opposite day again
18:11:44 -!- tromp has joined.
18:11:54 <korvo> Maybe it's my fault. I decided to start learning jj (Jujutsu) today. The cosmic balance could have been disturbed.
18:21:32 <int-e> fizzie: can't help noticing that the iterated scoring divides by 0 eventually if you have a perfect ladder (program a always beats program b if a < b), because then D is upper triangular with zero diagonal. or maybe lower triangular; either way the N-th power of that will be 0.
18:37:53 <esolangs> [[User:Elliktronic/Syzygy]] https://esolangs.org/w/index.php?diff=166071&oldid=166066 * Aadenboy * (-5) fix double redirect
18:43:55 <korvo> Oh, I don't have permissions to remove the redirect in the main namespace. I guess that I will *not* be able to fix that, sorry.
18:49:47 <fizzie> int-e: Achieving that state on the hill left as an exercise for the reader. :) But yeah, that sounds right. (Or maybe "right" is not the right word.)
18:50:58 <int-e> fizzie: Oh yeah I wasn't suggesting that this would ever actually happen. But it does indicate that the computation is an ad-hoc thing without a strong underlying theory :)
18:53:54 <fizzie> I guess I could just proclaim the new implementation correct, it's not like anyone's going to check. Although looking at the code both sure seem like they should be implementing the same thing, so that's a little weird.
18:54:22 <fizzie> Being off by a constant factor seems to indicate it should have something to do with the normalization (or eventual scaling) of `s`, but it's not a lot of code for either.
18:55:23 <int-e> Only the final normalization step matters though, and surely you've checked that the N is the same?
18:56:34 <int-e> well, assuming the https://zem.fi/bfjoust/internals/ page is correct; I haven't looked at code
18:56:49 <fizzie> It *should* be. Though I can't actually conveniently run the Ruby code (locally, I mean -- it somehow barely works where it's running).
18:58:02 <int-e> The lens I'm viewing this through is, s^(i) is D^i s^(0), normalized.
19:00:05 <int-e> actually being off by a factor of N/(N-1) does point towards the N-s being different
19:00:38 <fizzie> Yeah. It's just -- it's the same `n` that appears in the implementations of the other scoring methods, and those do produce equal results.
19:00:59 <fizzie> I'm probably just missing something, though.
19:02:24 <fizzie> If I can be bothered to make the Ruby code runnable locally I'll just look at some intermediate values, surely it has to go awry at some specific point.
19:05:25 <fizzie> I seem to recall in the Ruby implementation I've had a few "accidentally mutated something that was supposed to be immutable" issues over the years, so I guess it could be something boring like that.
19:06:03 <fizzie> Although it's the same `n` that's used to size all the matrices and vectors, and it's at least generating the same amount of numbers. Eh, I'll worry about it later.
19:08:16 <int-e> fizzie: is n odd, resulting in n/2 being truncated to (n-1)/2?
19:08:34 <fizzie> Oh, that's a great point.
19:09:05 <fizzie> Go code does convert it to float64 first, but the Ruby one is more implicit about typing.
19:09:17 <fizzie> (Yes, it's odd: there's 47 programs on the hill.)
19:10:17 <fizzie> Specifically, Go code does `s.Scale(float64(rs.N)/(2*s.Norm(1)), s)` while Ruby does `s = s / s.sum.to_f * (n/2)`, and while I've forgotten all about Ruby typing, it's at least plausible that n/2 does integer division there.
19:10:33 <fizzie> In that case, the new numbers are probably the right numbers after all. :)
19:11:06 <fizzie> (I guess a constant factor doesn't *really* matter one way or the other though.)
19:11:12 <int-e> fizzie: I tested that Ruby prints 1 for print(3/2);
19:11:36 <int-e> Which may be the first line of ruby code I've ever written? Hehehe.
19:29:45 -!- Everything has joined.
20:03:04 -!- Everything has quit (Quit: leaving).
21:04:30 -!- V has joined.
21:09:10 -!- V has quit (Remote host closed the connection).
21:12:43 -!- V has joined.
21:14:14 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
21:51:23 <zzo38> Why is the ASN.1 Printable string type use the specific subset of ASCII that it does use? (I sometimes find this useful for some things which use a subset of this subset, such as domain names, though)
22:00:20 <b_jonas> zzo38: it's partly to exclude characters that are replaced in some ISO-646 variant
22:00:27 <b_jonas> but there might be other reasons
22:01:39 <b_jonas> maybe some characters are excluded because certain printers or terminals or card readers don't handle it well
22:04:45 <zzo38> It does not seem to match exactly excluding only the characters that are replaced in ISO-646, although it seems close.
22:08:11 <zzo38> Maybe you are right about the terminals and card readers too; I don't know
22:26:36 <esolangs> [[Important lesbian virtual machine]] N https://esolangs.org/w/index.php?oldid=166072 * RocketRace * (+15375) important lesbian virtual machine
22:27:49 -!- lambdabot has quit (Ping timeout: 256 seconds).
22:29:33 <esolangs> [[Talk:Important lesbian virtual machine]] N https://esolangs.org/w/index.php?oldid=166073 * RocketRace * (+237) Created page with "As instructed, I am giving feedback here in the talk page. I don't think the language is all that interesting, aside from the Python DSL gimmick. ~~~~"
22:30:15 -!- lambdabot has joined.
22:31:25 <esolangs> [[Important lesbian virtual machine]] M https://esolangs.org/w/index.php?diff=166074&oldid=166072 * RocketRace * (-7)
22:32:06 <esolangs> [[User:RocketRace]] https://esolangs.org/w/index.php?diff=166075&oldid=153663 * RocketRace * (+103)
22:32:57 <esolangs> [[User:RocketRace]] https://esolangs.org/w/index.php?diff=166076&oldid=166075 * RocketRace * (+45)
22:57:59 <esolangs> [[Important lesbian virtual machine]] https://esolangs.org/w/index.php?diff=166077&oldid=166074 * RocketRace * (+23) /* Some comments on syntax: */
22:59:54 <esolangs> [[Important lesbian virtual machine]] https://esolangs.org/w/index.php?diff=166078&oldid=166077 * RocketRace * (+45) /* Below are long nested lists relating to semantics: */
23:00:08 <esolangs> [[Important lesbian virtual machine]] https://esolangs.org/w/index.php?diff=166079&oldid=166078 * RocketRace * (+2) /* Below are long nested lists relating to semantics: */
23:19:27 <esolangs> [[?brainfuck]] https://esolangs.org/w/index.php?diff=166080&oldid=165819 * HyperbolicireworksPen * (-4) found a better 5/6,1;1/6,2 randomizer
23:26:10 -!- Sgeo has joined.
23:36:23 <esolangs> [[?brainfuck]] https://esolangs.org/w/index.php?diff=166081&oldid=166080 * HyperbolicireworksPen * (+122) added (x,2) to some and changed 2/5,1;2/5,2;1/5,3
23:48:19 <esolangs> [[?brainfuck]] https://esolangs.org/w/index.php?diff=166082&oldid=166081 * HyperbolicireworksPen * (+57) more of the last and changed 3/5,1;2/5,2 and 4/5,1;1/5,2
23:50:41 <esolangs> [[?brainfuck]] https://esolangs.org/w/index.php?diff=166083&oldid=166082 * HyperbolicireworksPen * (-70) changed 3/5,1;1/5,2;1/5,3
23:51:36 <esolangs> [[?brainfuck]] M https://esolangs.org/w/index.php?diff=166084&oldid=166083 * HyperbolicireworksPen * (+0) got something wrong
00:08:02 <esolangs> [[?brainfuck]] https://esolangs.org/w/index.php?diff=166085&oldid=166084 * HyperbolicireworksPen * (+254) added more (x,2)
00:11:04 -!- amby has quit (Remote host closed the connection).
00:18:14 <esolangs> [[?brainfuck]] https://esolangs.org/w/index.php?diff=166086&oldid=166085 * HyperbolicireworksPen * (+69) added a randomizer
00:35:41 -!- Sgeo has quit (Read error: Connection reset by peer).
00:36:28 <esolangs> [[?brainfuck]] https://esolangs.org/w/index.php?diff=166087&oldid=166086 * HyperbolicireworksPen * (+360) added more randomizers
00:38:42 -!- Sgeo has joined.
01:05:46 <esolangs> [[Special:Log/newusers]] create * Astronomer * New user account
01:07:50 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=166088&oldid=166038 * Astronomer * (+48) /* Introductions */
01:37:30 <esolangs> [[?brainfuck]] https://esolangs.org/w/index.php?diff=166089&oldid=166087 * HyperbolicireworksPen * (-2) changed 5/6,1;1/6,2
02:55:33 <zzo38> Do you have any comment relating to: https://raw.githubusercontent.com/zzo38/scorpion/refs/heads/trunk/charset/tron/Composite
03:53:23 <esolangs> [[Autism (Esolang)]] https://esolangs.org/w/index.php?diff=166090&oldid=166005 * Randesoreader * (+94)
04:14:21 -!- slavfox has quit (Quit: ZNC 1.8.2 - https://znc.in).
04:18:00 -!- slavfox has joined.
05:30:42 -!- Sgeo has quit (Read error: Connection reset by peer).
05:54:14 -!- tromp has joined.
06:04:33 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
06:13:37 <esolangs> [[Special:Log/newusers]] create * Zapcircuit * New user account
06:25:27 -!- tromp has joined.
08:20:54 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
09:06:56 <esolangs> [[Heav esolang g(ood)]] https://esolangs.org/w/index.php?diff=166091&oldid=109499 * JIT * (+9)
09:25:06 <FireFly> do we still have a bot we use for @tell functionality here? I forget
09:25:43 <FireFly> but saw a link to https://dl.acm.org/doi/abs/10.1145/3764117 and thought it might be relevant to ais523 considering the pirating rust references post
09:33:16 -!- tromp has joined.
09:58:25 <fizzie> I feel like in practice (at least where ais523 is concerned) people just say things and expect them to get read from the logs.
09:58:46 <fizzie> But I see lambdabot's still here, and if I recall correctly, it could also pass on messages.
10:42:34 -!- V has quit (Remote host closed the connection).
10:52:05 <esolangs> [[Special:Log/newusers]] create * SpecCrescent * New user account
11:13:20 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=166092&oldid=166088 * SpecCrescent * (+303)
11:14:15 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=166093&oldid=166092 * SpecCrescent * (+34)
11:14:21 <esolangs> [[User:SpecCrescent]] N https://esolangs.org/w/index.php?oldid=166094 * SpecCrescent * (+173) Created page with "This page contains all of my esolang projects as well as an explanation for my madness. TODO: Brainfuck * Brainfuck Explanation of operations: TODO [[Category: Users]]"
11:21:47 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=166095&oldid=166093 * SpecCrescent * (+7)
11:27:38 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
11:31:57 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=166096&oldid=166095 * Zapcircuit * (+168) /* Introductions */
11:35:38 -!- Lord_of_Life_ has joined.
11:36:42 -!- Lord_of_Life has quit (Ping timeout: 260 seconds).
11:36:58 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
11:46:35 -!- amby has joined.
11:49:59 -!- tromp has joined.
13:06:51 <esolangs> [[Truth-machine]] M https://esolangs.org/w/index.php?diff=166097&oldid=165120 * Nguyendinhtung2014 * (+81)
13:09:33 <esolangs> [[Basic Stack]] M https://esolangs.org/w/index.php?diff=166098&oldid=166058 * Nguyendinhtung2014 * (+37)
13:24:57 <esolangs> [[Basic Stack]] M https://esolangs.org/w/index.php?diff=166099&oldid=166098 * Nguyendinhtung2014 * (+82) add cat program + some arrangement on examples
13:28:38 -!- simcop2387_ has joined.
13:31:53 -!- Lord_of_Life_ has joined.
13:32:22 -!- ^[ has quit (*.net *.split).
13:32:22 -!- simcop2387 has quit (*.net *.split).
13:32:22 -!- j4cbo has quit (*.net *.split).
13:32:23 -!- Melvar has quit (*.net *.split).
13:32:23 -!- simcop2387_ has changed nick to simcop2387.
13:32:47 -!- Lord_of_Life has quit (Ping timeout: 260 seconds).
13:32:54 -!- perlbot has quit (Read error: Connection reset by peer).
13:33:05 -!- ^[ has joined.
13:33:05 -!- j4cbo has joined.
13:34:45 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
13:36:10 -!- perlbot has joined.
13:36:48 -!- APic has quit (Ping timeout: 256 seconds).
13:37:08 -!- APic has joined.
13:39:37 -!- Melvar has joined.
13:49:42 -!- sprock has quit (Ping timeout: 260 seconds).
13:50:32 -!- sprock has joined.
14:09:35 <fungot> int-e: my hon. and learned friend the minister for the work he is doing to the people, the government of this country all provide challenge and share learning, the university of fnord the university employs 4,800, it still falls fractionally as a share of the economy,
14:10:45 <HackEso> 1/1:406) <ais523> 99% OF USES OF STRDUP ARE ILLEGAL! \ 295) [on Sgeo's karaoke] <Phantom_Hoover> That is the thing that made me into a gay vampire.
14:19:42 <korvo> The "university of fnord"! I wonder if that's George Fox, Brigham Young, or Liberty.
14:19:44 <fizzie> Lots of good ministerial position suggestions. At least "the minister for the work he is doing" is quite flexible in terms of potential responsibilities.
14:22:09 <HackEso> nitia is the inventor of all things. The BBC invented her.
14:22:37 <int-e> fizzie: I'm worried about them "doing work *to* the people" though
14:24:19 <int-e> (a bit too close to reality tbh)
14:25:48 <fizzie> >> he runs an organisation that is just as complex as PCOMMA if not more so than PCOMMA the university of bath; the university employs 4,800 people against the royal uniteds 3,015 PDOT
14:26:06 <fizzie> Looks like ukparl training set preprocessing did not handle semicolons correctly.
14:26:25 <fungot> int-e: i, for one, and i will do that, of course that is the governments policy, completely incoherent, self-defeating. we believe the bbc that a joint committee of the heads of the devolved government, and that
14:26:28 <fizzie> So in this case fnord was "bath;". If it had been just "bath", it wouldn't have gotten fnorded.
14:26:51 <fizzie> (There are 20 references to "the university of bath" without a glued-in semicolon.)
14:27:01 <int-e> (I may or may not have heard of the city before. It's clear from context that it was a proper name :) )
14:27:24 <fizzie> I've been to Bath... twice, I think.
14:27:46 <fizzie> There's a Roman bath in Bath.
14:28:02 <int-e> Is that why it's called that?
14:28:35 <fizzie> (Or a /thermae/, if you're feeling fancy.)
14:28:49 <int-e> for a while I lived in close proximity to a "Lange Straße" (long street) and I believe a "Kurzer Weg" (short path).
14:28:52 <fizzie> I believe it is named after that, yes.
14:29:03 <int-e> So I know people are bad at naming things.
14:29:12 <int-e> Other more famous examples include New York
14:30:51 <fizzie> There's a US town with three streets in a sort of a F-shaped pattern, which are named This Street, That Street, and The Other Street. But I think they've been trying to be intentionally funny.
14:31:10 <fizzie> Oh, my bad, it's actually in Canada.
14:32:38 <fizzie> Street sign theft is a big problem for locations with (intentionally or unintentionally) funny names, I believe.
14:33:58 <korvo> Oh, *that's* how "fnord" gets into the training set. Makes a lot of sense.
14:35:00 <fizzie> It's actually called "UNK" during the training, one of the fixed-value tokens (alongside punctuation), fungot just outputs it as "fnord".
14:35:00 <fungot> fizzie: to which i replied, i have the transcript, no not within government, that achieved the equal age of consent,
14:35:10 <korvo> I grew up in Eugene, Oregon, a fairly infamous hippie destination. The signs for High Street were stolen so often that the city set up a way for folks to purchase their own High Street signs legally from the official supplier.
14:35:59 <fizzie> You can in fact see the fnord in the code: https://github.com/fis/fungot/blob/master/fungot.b98#L157
14:35:59 <fungot> fizzie: the point of the hon. and learned friend the minister for, certainly, the uk does. also, the government are
14:36:06 <korvo> fungot: regarding funding for the university of fnord, i expect the government to
14:36:06 <fungot> korvo: was the hon. member, in making that this is
14:36:22 <fungot> Available: agora alice c64 ct darwin discworld elon enron europarl ff7 fisher fungot homestuck ic irc iwcs jargon lovecraft nethack oots pa qwantz sms speeches ss wp ukparl* youtube
14:36:36 <fungot> Selected style: enron (subset of the Enron email dataset)
14:36:41 <int-e> fungot: is this any good, I forgot
14:36:42 <fungot> int-e: is that the original to the other. weighted and scores of the resolutions of sole on 04/ 10 to 4 and people want the market for the firms that davis has said repeatedly he is confident of the commission
14:36:49 <fizzie> The other day I saw a man taking a photo of the Piccadilly line "next departures" sign, which had "Cockfosters" on it repeated three times (and nothing else), because that's where most eastbound Piccadilly Line trains go. But it's a digital sign, so trying to steal it would be self-defeating.
14:37:06 <fungot> Selected style: ukparl (UK Parliament debates from brexit referendum to late 2018)
14:37:20 <int-e> (looks too incoherent)
14:37:56 <fizzie> Sadly several of the styles aren't very good. There's a certain sweet spot that needs to be hit in the choice of parameters, and I didn't do a lot of work for most of them.
14:38:10 <fizzie> IIRC, europarl was generally better than ukparl (no political opinion implied here).
14:38:23 <fizzie> And I like ct, but it *is* super-repetitive.
14:38:28 <fungot> Selected style: ct (Chrono Trigger game script)
14:38:45 <fizzie> fungot: Who would win if Crono fought Marle?
14:38:45 <fungot> fizzie: but cyrus! are you leaving! tomorrow. melchior, who opposed the queen's plans, has secret rooms in enhasa and kajar? the queen's aide, dalton! leave her alone! when magus left, then enter, sir!
14:39:30 <fizzie> fungot: Is the Mammon machine safe to use, or should we switch to renewable energy ASAP?
14:39:30 <fungot> fizzie: these unique items make us invincible! helloooo there! this must be the invention. hope it still leaves you hungry! here you are the only one thing we need to defeat you, lavos.
14:40:00 <korvo> fungot: Do we take the bucket?
14:40:00 <fungot> korvo: frog will do. hunting bad... but kino not like... good morning, crono! your cat's running away because you haven't been feeding it!
14:40:42 <korvo> What a lucky selection of three independent lines.
14:42:15 <fungot> Selected style: europarl (European Parliament speeches during approx. 1996-2006)
14:43:04 <fizzie> fungot: What do you think about democracy in general?
14:43:05 <fungot> fizzie: protocols have to be protected by guarantees of consumer goods, etcetera will eventually follow. furthermore, the planned enlargement of the community.
15:40:16 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
15:58:25 -!- tromp has joined.
16:53:03 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
17:13:11 -!- tromp has joined.
17:19:18 -!- FreeFull has joined.
17:45:57 -!- avih has joined.
18:33:09 <b_jonas> "ukparl training set preprocessing did not handle semicolons correctly" => maybe the BBC doesn't only not understand letters with things on top of them but also doesn't understand commas with things on top of them
18:36:11 <b_jonas> "But it's a digital sign, so trying to steal it would be self-defeating." => Amsterdam has e-ink displays showing departures in some bus stops, I think you could steal those and they'd keep their image
19:22:09 -!- ProofTechnique_ has quit (Ping timeout: 244 seconds).
19:22:09 -!- op_4 has quit (Ping timeout: 244 seconds).
19:22:19 -!- ManDeJan_ has joined.
19:23:03 <esolangs> [[Syzygy]] https://esolangs.org/w/index.php?diff=166100&oldid=166069 * Hotcrystal0 * (-28) Blanked the page
19:25:50 <esolangs> [[User talk:Ais523]] https://esolangs.org/w/index.php?diff=166101&oldid=164784 * Hotcrystal0 * (+515) /* Syzygy */ new section
19:28:58 -!- ManDeJan has quit (Ping timeout: 244 seconds).
19:28:59 -!- ManDeJan_ has changed nick to ManDeJan.
19:30:39 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
19:36:57 -!- op_4 has joined.
19:38:11 -!- ProofTechnique_ has joined.
19:44:06 <esolangs> [[Esolang:Syzygy]] M https://esolangs.org/w/index.php?diff=166102&oldid=166067 * Ractangle * (-10012) Redirected page to [[Syzygy]]
19:44:19 -!- tromp has joined.
19:44:23 <esolangs> [[Syzygy]] M https://esolangs.org/w/index.php?diff=166103&oldid=166100 * Ractangle * (+10032)
19:58:46 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
20:02:53 <esolangs> [[User:Ractangle/Sandbox]] M https://esolangs.org/w/index.php?diff=166104&oldid=164905 * Ractangle * (-526) /* Stuff */
20:08:17 -!- tromp has joined.
20:23:37 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
20:40:12 -!- tromp has joined.
20:53:32 -!- FreeFull has quit (Quit: Lost terminal).
20:57:18 <esolangs> [[Syzygy]] M https://esolangs.org/w/index.php?diff=166105&oldid=166103 * Corbin * (-81) Cleaned up categories. See Talk page, please.
21:01:47 <esolangs> [[Talk:Syzygy]] N https://esolangs.org/w/index.php?oldid=166106 * Corbin * (+856) Hi folks! Thanks for your hard work.
21:16:33 -!- Everything has joined.
21:22:39 -!- Everything has quit (Quit: leaving).
21:38:15 <esolangs> [[Joy]] N https://esolangs.org/w/index.php?oldid=166107 * Fpstefan * (+1911) Created page with "{{stub}} '''Joy''' is a [[Concatenative_language|concantaive programming language]], created by [https://concatenative.org/wiki/view/Manfred%20von%20Thun Manfred von Thun]. It supports [[Pointfree_programming|function-level programming]] by using a linked list as a stack
21:42:29 <esolangs> [[Joy]] https://esolangs.org/w/index.php?diff=166108&oldid=166107 * Fpstefan * (+30)
21:56:40 <esolangs> [[Joy]] https://esolangs.org/w/index.php?diff=166109&oldid=166108 * Fpstefan * (+51)
21:57:36 <esolangs> [[Joy]] https://esolangs.org/w/index.php?diff=166110&oldid=166109 * Fpstefan * (+0) Sorry
22:04:32 -!- sprock has quit (Ping timeout: 256 seconds).
22:04:32 -!- Melvar has quit (Ping timeout: 256 seconds).
22:04:32 -!- Melvar has joined.
22:10:06 -!- sprock has joined.
22:13:48 -!- amby has quit (Read error: Connection reset by peer).
22:13:48 -!- ProofTechnique_ has quit (Ping timeout: 246 seconds).
22:14:22 -!- ProofTechnique_ has joined.
22:14:52 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
22:16:22 -!- op_4 has quit (Ping timeout: 246 seconds).
22:19:24 -!- op_4 has joined.
22:22:42 -!- ajal has joined.
22:24:22 -!- Melvar has quit (Ping timeout: 256 seconds).
22:24:44 -!- Melvar has joined.
23:16:52 -!- Sgeo has joined.
23:24:55 -!- Sgeo_ has joined.
23:27:53 -!- Sgeo has quit (Ping timeout: 250 seconds).
23:45:24 <esolangs> [[Viktor's amazing 4-bit processor]] M https://esolangs.org/w/index.php?diff=166111&oldid=165093 * TheBigH * (+3) fixed endian conflation
00:22:50 -!- ajal has 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).
01:05:55 -!- Sgeo__ has joined.
01:08:55 -!- Sgeo_ has quit (Ping timeout: 246 seconds).
01:55:29 <esolangs> [[Special:Log/delete]] delete * Ais523 * deleted "[[User:Syzygy]]": redirect left over after a page created in the wrong namespace was renamed to the correct namespace
01:56:05 <esolangs> [[Special:Log/move]] move * Ais523 * moved [[Esolang:Syzygy]] to [[Syzygy]]: history merge to Syzygy
01:56:05 <esolangs> [[Special:Log/delete]] delete * Ais523 * deleted "[[Syzygy]]": Deleted to make way for move from "[[Esolang:Syzygy]]"
01:56:26 <esolangs> [[Special:Log/delete]] restore * Ais523 * undeleted "[[Syzygy]]": part two of history merge
01:56:52 <esolangs> [[Syzygy]] https://esolangs.org/w/index.php?diff=166113&oldid=166112 * Ais523 * (+9931) set top revision after history merge
01:57:42 <esolangs> [[User talk:Ais523]] https://esolangs.org/w/index.php?diff=166114&oldid=166101 * Ais523 * (+246) /* Esolangs forums? */ it didn't work last time we tried it
02:02:13 -!- ais523 has joined.
02:03:53 <ais523> korvo: I think that Basic Stack is TC by using the register and top of stack as two counters
02:05:09 <ais523> the TC proof on the page is wrong I think, it's expecting "push reg" to push the reg-th stack element from the bottom (using it like a pick instruction which would be an easy way to get around the usual Turing-completeness issues for stack-based languages), but it actually pushes the register itself
02:06:53 <ais523> <korvo> Oh, I don't have permissions to remove the redirect in the main namespace. I guess that I will *not* be able to fix that, sorry. ← an incorrect move always needs admin help to fix if anything happens to the resulting redirect (including being edited)
02:07:28 <ais523> this is possibly a design flaw of MediaWiki – I know I have historically spent a lot of time fixing broken moves both on Esolang, and on Wikipedia when I was an admin there
02:08:46 <ais523> <FireFly> do we still have a bot we use for @tell functionality here? I forget ← I usually try to read the entire logs, although I probably miss lines occasionally
02:09:06 <ais523> conversation in #esolangs is often asynchronous nowadays, with people conversing through the logs
02:10:53 <ais523> <fizzie> But I see lambdabot's still here, and if I recall correctly, it could also pass on messages. ← I wonder whether libera has memoserv? that got used on Freenode on occasion
02:11:20 <ais523> [Whois] MemoServ is MemoServ@services.libera.chat (Memo Services)
02:11:31 <ais523> I imagine MemoServ messages may be easy to miss if you aren't expecting them, though
02:13:33 <ais523> <fizzie> You can in fact see the fnord in the code: https://github.com/fis/fungot/blob/master/fungot.b98#L157 ← that anchor annoys me, befunge really wants two-dimensional anchors, it isn't designed for one-dimensional anchors unless you program specifically to make it work
02:13:33 <fungot> ais523: mr president, ladies and gentlemen, i should like to thank the rapporteur on her diligence and her persistence during the many debates that have taken place in committee; that is why i regard this particular proposal but we will not neglect the interest of food safety, must be respected in any coordination process. it is not sufficient for the president of the republic of armenia, azerbaijan and georgia.
02:30:41 <korvo> ais523: No worries. Thanks for your patience with us.
02:40:58 <esolangs> [[Interbflang]] N https://esolangs.org/w/index.php?oldid=166115 * TheBigH * (+2191) Created article.
02:42:57 <esolangs> [[User:TheBigH]] M https://esolangs.org/w/index.php?diff=166116&oldid=165363 * TheBigH * (+170) Added interbflang.
02:53:37 <Sgeo__> Burroughs Algol 60 has an "IMP" relational operator (for implies).
02:54:26 <korvo> Nice. It's not common; the only language that comes to mind for me is Nix.
02:56:13 <ais523> x86alikes have ANDN which is the opposite of an implies
02:56:38 <ais523> although the argument order is very confusing: x ANDN y is "not x and y" which is the opposite of what you'd expect from the name
03:03:09 <Sgeo__> Was looking at https://bitsavers.org/pdf/burroughs/LargeSystems/B5000_5500_5700/5000-21001-D_An_Introduction_to_Algol_60_for_the_B5000_Information_Processing_System_196112.pdf and now watching https://www.youtube.com/watch?v=T-NTEc8Ag-I before I go back to reading it. It's starting to strike me how Algol influenced C and some BASIC dialects (returning values by assigning to the function's name)
03:27:38 <Sgeo__> Algol 60 switch statements are weird. IIUC they're targets for GO TO statements
03:30:51 <ais523> I think it benefits practical languages to have a return variable (i.e. something you can assign to in order to set the return value, possibly multiple times in the function/procedure/subroutine), *but* that its use should be optional and there should be return statements too as shorthand
03:31:20 <ais523> I commonly end up having to create return variables, so it would be nice to have a convention for them, but you don't always need one
03:34:38 <Sgeo__> So, which CPUs were designed with specific languages in mind? Burroughs mainframes for ALGOL, Lisp machines for Lisp, basically everything today for C
03:52:35 <b_jonas> Sgeo__: no, that's backwards. C was designed for the existing and near future CPUs, not the CPUs for C.
03:53:09 <Sgeo__> I kind of have the impression that no CPU design would be made today that isn't a good fit for C
03:54:02 <b_jonas> yes, but that's not because of C, it's to be able to run the programs that were designed to run on existing CPUs. I don't think C is relevant there.
03:55:06 <b_jonas> eg. the CPUs have to support a flat memory space addressible in bytes, because existing programs assume a flat memory and that is often baked so much into programs that it would be hard to chane
04:10:06 <ais523> fwiw I think the concept of different types of memory (rather than a flat address space) is a useful one and can help make programs more secure and easier to reason about
04:10:12 <ais523> but existing segmented architectures might not fit it will
04:11:04 <ais523> I realised recently that it makes sense to have indexable and non-indexable allocations (in non-indexable allocations the only pointer arithmetic allowed is field projections), with each array in its own indexable allocation
04:11:50 <ais523> because if you don't do that, then most existing memory-safety retrofitters don't work properly because they don't prevent a buffer overflow that stays within the allocation and hits something that's stored in the same structure as the buffer
04:12:19 <ais523> (I suppose that in indexable allocations, pointer arithmetic should be limited to offsetting a multiple of the element size, plus field projections)
04:14:11 <ais523> I also realised recently that a) the main technical problem in writing an efficient memory allocator nowadays is deallocating memory on a different thread it was allocated on, b) programs usually don't need to actually do that
04:15:26 <ais523> so it would make sense to enforce that statically (in Rust you can do that by using a custom allocator that isn't Send) and that effectively gives you a different address space for each thread (they can read and write each other's spaces, but not allocate and deallocate)
04:23:22 <zzo38> BASIC also has "IMP" relational operator and the "return variable"
04:32:36 <Sgeo__> I feel like I've seen IMP on some BASICs, but I think only some BASICs have functions with return variables like that
04:32:50 <Sgeo__> There's a lot of variety in BASICs
04:34:17 <b_jonas> yes, and BASICs often have features or non-features that seem really weird to me
04:35:22 <Sgeo__> QBasic has both IMP and functions that return values by setting the name
04:36:04 <zzo38> Yes, different versions of BASIC are different, but I specifically mean Microsoft BASIC (although I think most of the implementations at one time were from Microsoft?)
04:37:32 <Sgeo__> Most of the implementations on microcomputers were from Microsoft. Mainframes and minicomputers had their own
04:38:07 <zzo38> I wrote http://esolangs.org/wiki/User:Zzo38/Programming_languages_with_unusual_features#BASIC but other things that you think are remarkable might also be mentioned (and/or the existing explanation changed)
04:38:25 <Sgeo__> And I think "Microsoft BASIC" is itself ambiguous. There's the version on early microcomputers, then QBasic and QuickBASIC are a lot more full featured
04:39:02 <zzo38> Yes, I think you are correct
04:41:20 <Sgeo__> Was going to post about ALGOL 60 but I don't fully understand its switch statement yet.
04:42:16 <Sgeo__> There's a construct that's common to languages older than a certain point and uncommon to languages after that point, that I think counts as unusual to modern eyes: Taking an integer and doing something based on a list in that statement
04:43:06 <ais523> Sgeo__: I think languages just became higher-level over time – there's an instruction that's very much like that in both JVM bytecode and LLVM IR
04:44:21 <ais523> so it's still commonly used as something to compile into, it's probably important for performance that an instruction like that exists – it's just too low-level to be ergonomic to use directly
04:56:05 <zzo38> There are often lower-level stuff other than assembly language that I will want to use but C does not do it. People have tried to make better programming languages than C but often make it worse in many ways.
05:35:31 <Sgeo__> Algol 60 uses "ENTIER" for what modern languages call "floor"
05:38:58 <Sgeo__> This book has a .. curious statement, trying to figure out if it's correct
05:40:54 <Sgeo__> Yeah, it is. Just unusually written
05:41:36 <Sgeo__> "it is useful to be aware of the relationship LOG_10 (X) = LOG_10(e) x LN (X)
05:41:59 <Sgeo__> I'm more used to change of base being written as log_10(x) = ln(x) / ln(10)
05:58:11 <ais523> I think even floating-point divisions are slow
05:58:16 <ais523> even on modern hardware
05:58:41 <ais523> so a performance-minded programmer of the day would have preferred a formula that used multiplication to one that used a division
05:59:28 <ais523> (it isn't quite correct to constant-fold ln(x) / ln(10) into ln(x) × (1 / ln(10)) – modern compilers will do that with fast-math-like optimisations but not if compiling accurately)
06:00:00 <ais523> (so if you want the better performance you have to write the 1/ln(10) manually, which is log_10(e))
06:08:32 <Sgeo__> I wasn't previously aware that the reciprocal switches base and argument like that, although I think it makes sense with change of base
06:09:20 <Sgeo__> log_10(e) = ln(e)/ln(10) = 1/ln(10)
06:13:17 -!- citrons has quit (Quit: Reconnecting).
06:13:26 -!- citrons has joined.
06:13:28 -!- citrons has quit (Client Quit).
06:13:38 -!- citrons has joined.
06:27:15 -!- Sgeo__ has quit (Read error: Connection reset by peer).
06:28:46 -!- ais523 has quit (Ping timeout: 246 seconds).
06:28:56 -!- ais523 has joined.
06:29:05 -!- tromp has joined.
06:36:33 <zzo38> Floating division is 40 cycles on MMIX, which is faster than integer division but slower than other operations with floating point numbers (other than square root, which is also slow).
06:57:21 -!- ais523 has quit (Ping timeout: 246 seconds).
06:57:27 -!- callforjudgement has joined.
07:16:10 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
08:03:29 -!- callforjudgement has changed nick to ais523.
08:44:33 <strerror> Right, there's a page for it in the MMIX document. (On a physical architecture, this would be much longer.)
09:03:31 <ais523> ironically modern processors don't have cycle counts in the traditional sense, due to all the out-of-order stuff going on
09:03:55 <ais523> the closest you can get is a minimum latency, but if you try to use it like a traditional cycle count you'll get completely the wrong result
09:48:20 <esolangs> [[Sigq]] https://esolangs.org/w/index.php?diff=166117&oldid=165586 * TheSpiderNinjas * (+60)
09:50:18 -!- tromp has joined.
10:35:41 <esolangs> [[User:NoWhy]] M https://esolangs.org/w/index.php?diff=166118&oldid=165938 * NoWhy * (+37) link to personal drafts
10:50:12 <strerror> The MMIX document already knows about pipelining: “we must remember that the actual running time might be quite sensitive to the ordering of instructions. For example, integer division might cost only one cycle if we can find 60 other things to do between the time we issue the command and the time we need the result …”
10:51:33 <strerror> And the meta-simulator can simulate “… such things as caches, virtual address translation, pipelining and simultaneous instruction issue, branch prediction, etc.” But not OOO execution.
10:55:43 <strerror> But OOO also causes problems, including security problems, and we might get rid of it eventually. I think GPU architectures still don't bother with it.
10:59:15 <ais523> it's unlikely to be dropped in CPUs any time soon – the last serious attempt to get rid of it almost destroyed Intel
10:59:54 <ais523> (and it isn't nearly as bad as speculative execution when it comes to security issues)
11:00:45 <ais523> today's compilers wouldn't work very well without OOO and yet they're pretty entrenched, so no big CPU manufacturer is likely to take a risk on trying to change their CPUs in a way that would invalidate all the existing compiler technology
11:03:06 <ais523> the other big advantage of OOO is that it allows commands to take variable lengths of time to run without losing most of the optimisation opportunity from pipelining them correctly
11:03:13 <b_jonas> "the last serious attempt to get rid of [out of order execution] almost destroyed Intel" => do you mean the I64 architecture or the low powered x86 cpus with the simpler pipeline?
11:03:34 <ais523> b_jonas: i64 – Pentium IV was earlier and Intel mostly survived it
11:04:40 <ais523> OOO seems unavoidable for systems that have hardware-managed caches to run at top speed – you'd have to explicitly do the cache management in software without it
11:05:04 <ais523> which GPU programs do actually do, but for CPU programs you'd have to change all the existing source, not just the compilers
11:06:34 <b_jonas> ais523: I mean Intel Atom, not pentium 4
11:07:08 <ais523> hmm, I'm not too familiar with the intentionally low-powered Intel processors
11:07:23 <ais523> I vaguely remember that later versions of the Atom added it back?
11:07:48 <ais523> in which case the attempt can be said to have failed
11:17:17 <b_jonas> I wonder, perhaps in a CPU architecture unlike x86, where you have lots of registers and so most instructions don't read or write the main memory with the cache hierarchy so there are separate memory read/write instructions, could you have something like x87 where you can split memory reads explicitly to two instructions, one that initiates the memory read and one that waits for it to complete and gives
11:17:23 <b_jonas> you access to the value read? then you could perhaps have no out of order execution other than that and maybe some similarly split slow multiplication/division/square root instructions
11:20:08 <ais523> b_jonas: I discussed a CPU design like that in here a while ago (probably years ago now)
11:20:21 <ais523> where the idea is that instructions state a time by which the result is needed
11:20:52 <ais523> (and this is used to automatically route the result to the correct instruction, because you say "this result is the input is to the 10th-next instruction" or the like)
11:21:50 <ais523> it's most important for jumps because you can use it to avoid speculative execution (potentially entirely, if the delayed-goto happens early enough)
11:23:17 <b_jonas> perhaps you can even have small register arrays that are larger than 64 bytes but you can only use piecewise or rotate, so that you don't have to access memory that often
11:23:48 <ais523> I think something like that is valuable for spills
11:24:03 <ais523> especially in recursive code
11:24:25 <ais523> (non-recursive code can spill into statics, and IIRC were even commonly compiled that way a long time ago)
11:28:04 <b_jonas> I mean it could be useful even in cases where they don't spill, just have a fixed size. Today on x86 you just rely on the well working L1 cache for that.
11:28:41 <b_jonas> with indexed memory access which almost all instructions can do with one operand
11:29:38 <ais523> AMD Zen 2 and Zen 4 (but not Zen 3) are able to access spill slots as though they were registers (same performance characteristics), which is interesting
11:30:02 <ais523> and seems like the same sort of thing in reverse (possibly a means of repurposing syntax that compilers already generate)
11:35:00 <b_jonas> I'm also thinking of 6502 which has zero page memory access as sort of a replacement for registers, even though memory accesses all take the same amount of time regardless of the address, but the zero page can still save a cycle or two of fetching the instruction.
11:35:44 <b_jonas> but I think in a modern architecture you don't want that zero page to be modifiable by normal memory access instructions
11:36:07 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
11:36:57 -!- Lord_of_Life has quit (Ping timeout: 252 seconds).
11:37:00 -!- Lord_of_Life_ has joined.
11:38:19 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
11:38:56 <ais523> well, the 6502 is often used with very constrained memory
11:39:20 <ais523> the zero page might be a significant proportion of the memory you have, so you might want to be able to put normal variables there in addition to registers
11:39:33 <ais523> (especially as 256 registers is more than most programs will need)
11:40:35 <ais523> it was very common to store data in static addresses in the range that hardware uses for the stack, and just try to keep the stack usage low enough that the data wouldn't be overwritten
11:47:16 <HackEso> 352) <olsner> as always in sweden everything goes to a fixed pattern: thursday is queueing at systembolaget to get beer and schnaps, friday is pickled herring, schnaps and dancing the frog dance around the phallos, saturday is dedicated to being hung over \ 821) <kmc> no christmas without christ, no thursday without thor
11:56:25 <esolangs> [[Special:Log/upload]] upload * Zapcircuit * uploaded "[[File:Subscratch handdrawn.png]]"
12:11:02 <int-e> so apparently a "tiny" model has several millions of parameters
12:12:44 <int-e> (cf. https://arxiv.org/abs/2510.04871 which is retro in another fun way: They found that if they go above 2 layers (so 1 hidden layer) they suffer from overfitting.)
12:23:49 <int-e> But really "tiny* should be reserved for models that are way closer to https://en.wikipedia.org/wiki/Caenorhabditis_elegans in size (it features a "brain" made of 302 neurons)
12:29:54 <fizzie> The model I'm using for esolangs is gemma-2.0-2b-it-sfp, which has 2 billion parameters, and I thought that too is considered "relatively small". It was the smallest Gemma 2 variant they had.
12:29:57 <fizzie> Though looks like since then they've released Gemma 3, which comes in 270M/1B/4B/12B/27B size variants.
12:30:52 -!- ais523 has quit (Quit: quit).
12:32:05 <fizzie> It's also got a longer context window (32k for 270M/1B sizes, 128k for 4B/12B/27B sizes, compared to 8k for Gemma 2), so I could fit more wiki text in (and make it even slower).
12:32:27 <fizzie> (Really, though, if I wanted it to produce actually useful wiki-derived responses, it's the retrieval part that needs more work.)
12:36:26 <esolangs> [[Subscratch]] N https://esolangs.org/w/index.php?oldid=166120 * Zapcircuit * (+12709) Created page with "'''subscratch''' is an [[OISC]] language invented by User:Zapcircuit. its main purpose is for codegolfing games in [[scratch]]. its most interesting feature is its scratch implementation, which uses very few scratch blocks. ==implementation== to the right is an
12:37:36 <esolangs> [[Subscratch]] https://esolangs.org/w/index.php?diff=166121&oldid=166120 * Zapcircuit * (+4)
12:41:37 <esolangs> [[Subscratch]] https://esolangs.org/w/index.php?diff=166122&oldid=166121 * Zapcircuit * (+8) /* execution */
12:42:41 <esolangs> [[Subscratch]] https://esolangs.org/w/index.php?diff=166123&oldid=166122 * Zapcircuit * (+1) /* execution */
12:53:07 <esolangs> [[Subscratch]] https://esolangs.org/w/index.php?diff=166124&oldid=166123 * Zapcircuit * (+20) /* i/o */
12:56:52 <esolangs> [[Special:Log/newusers]] create * Sadran * New user account
12:56:56 <esolangs> [[Language list]] https://esolangs.org/w/index.php?diff=166125&oldid=165996 * Zapcircuit * (+17) /* S */
13:01:48 -!- tromp has joined.
13:05:45 <esolangs> [[Subscratch]] https://esolangs.org/w/index.php?diff=166126&oldid=166124 * Zapcircuit * (+228)
13:07:31 <esolangs> [[Subscratch]] https://esolangs.org/w/index.php?diff=166127&oldid=166126 * Zapcircuit * (+9)
13:14:31 <esolangs> [[Subscratch]] https://esolangs.org/w/index.php?diff=166128&oldid=166127 * Zapcircuit * (+64) /* i/o */
13:17:24 <esolangs> [[Subscratch]] M https://esolangs.org/w/index.php?diff=166129&oldid=166128 * Zapcircuit * (-1) /* i/o */
13:29:30 -!- Everything has joined.
13:41:45 <korvo> strerror: Right. On a GPU (at least the 2000s-era ones I know well) instructions can't really be reordered because they're being executed in parallel on multiple data. Instead the GPU has a bitmask which indicates the result of the most recent comparison, and that mask is used to disable execution for some of the parallel lanes whenever a comparison fails.
13:43:37 <korvo> The "speed" is wholly from parallelism; in my mind a GPU only goes at maybe 300-350 MHz of clock, maybe 1/10 of the main CPU's clock, and also there's a 30% or so slowdown just from the overhead of transferring data over PCI/AGP/etc. This means you'd better have a batch of at least 10 items *and* a non-trivial workload before the GPU is worth it.
13:44:13 <korvo> (Highly likely that you know all this. But maybe some lurker does not.)
14:12:26 -!- Sgeo has joined.
15:05:20 -!- Lord_of_Life has quit (Excess Flood).
15:08:06 -!- Lord_of_Life has joined.
15:12:19 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
15:19:28 <strerror> Perhaps more relevantly to text, a “tiny stories” model has ~30M parameters: https://arxiv.org/abs/2305.07759v2
15:21:27 <strerror> (Though a tiny model for esolangs wouldn't have a vocabulary considered suitable for bedtime stories.)
15:23:32 <esolangs> [[Syzygy]] https://esolangs.org/w/index.php?diff=166130&oldid=166113 * Aadenboy * (+2) ordering image under infobox and moving table of contents to after the overview
15:24:42 <esolangs> [[Syzygy]] https://esolangs.org/w/index.php?diff=166131&oldid=166130 * Aadenboy * (-84) nvm doesn't work like that. also fixing header levels
15:25:12 -!- amby has joined.
15:27:39 <strerror> korvo: I prefer to say that GPUs aren't fast, it's the von Neumann chips that are plodding along
15:28:23 <korvo> strerror: Yeah! Some days I think that the computer is actually the memory controller, and the CPU is just a peripheral ALU.
15:28:26 <strerror> Though even GPUs are bottlenecked by memory these days. Still hoping for CIM to become usable. They're pretty esoteric too, since everything has to be done using bitslicing.
15:29:02 <korvo> A GPU is just another peripheral on a bus. Like the CPU, it's slower than memory, and like the CPU, it will ask for lots of DMA. That's what the computer does, really: DMA all day.
15:29:28 <esolangs> [[Talk:1 Bit, a quarter byte]] M https://esolangs.org/w/index.php?diff=166132&oldid=165413 * TheBigH * (+250)
15:33:19 -!- tromp has joined.
15:33:21 <strerror> (CIM = Compute-in-memory, which adds a few extra word lines to a DRAM circuit to do elementary logic operations across a row, which typically has 64K bits or more.)
15:46:45 <korvo> CIM sounds nice, but I'm not sure how it would get rolled out to consumers. I suppose that first the memory controller would support it, then the CPUs in the next generation would use it?
15:53:38 <strerror> They're still working on throughput, AFAIK; DRAM is made in the DRAM factory, not the logic factory, and they're not used to making chips with fast clock rates.
15:54:17 <strerror> If it gets fast enough, presumably OpenAI could be counted on to buy out the first year of production.
15:59:42 <esolangs> [[User:Aadenboy/Sandbox]] https://esolangs.org/w/index.php?diff=166133&oldid=161119 * Aadenboy * (-62)
16:00:07 <esolangs> [[User:Aadenboy/Sandbox]] https://esolangs.org/w/index.php?diff=166134&oldid=166133 * Aadenboy * (+8)
16:00:20 <esolangs> [[User:Aadenboy/Sandbox]] https://esolangs.org/w/index.php?diff=166135&oldid=166134 * Aadenboy * (-8)
16:00:48 <esolangs> [[User:Aadenboy/Sandbox]] https://esolangs.org/w/index.php?diff=166136&oldid=166135 * Aadenboy * (+27)
16:01:34 <esolangs> [[User:Aadenboy/Sandbox]] https://esolangs.org/w/index.php?diff=166137&oldid=166136 * Aadenboy * (+35) revert
16:25:17 -!- JGardner has changed nick to jgardner.
17:20:15 -!- joast has quit (Quit: Leaving.).
17:43:58 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
17:57:35 -!- Everything has quit (Quit: leaving).
18:22:05 -!- amby has quit (Read error: Connection reset by peer).
18:22:23 -!- amby has joined.
19:13:10 <esolangs> [[8ial]] M https://esolangs.org/w/index.php?diff=166138&oldid=146912 * Ractangle * (-62) /* Commands */
19:13:45 <esolangs> [[8ial]] M https://esolangs.org/w/index.php?diff=166139&oldid=166138 * Ractangle * (+0) /* Syntax */
19:20:55 <esolangs> [[8ial]] M https://esolangs.org/w/index.php?diff=166140&oldid=166139 * Ractangle * (-41) /* Syntax */
19:32:46 -!- sorear_ has joined.
19:36:58 -!- sorear has quit (Ping timeout: 248 seconds).
19:37:00 -!- sorear_ has changed nick to sorear.
19:57:23 <esolangs> [[8ial]] M https://esolangs.org/w/index.php?diff=166141&oldid=166140 * Ractangle * (-56) /* Truth-machine */
20:05:06 <esolangs> [[8ial]] M https://esolangs.org/w/index.php?diff=166142&oldid=166141 * Ractangle * (-47) /* Cat program */
20:10:25 <esolangs> [[8ial]] M https://esolangs.org/w/index.php?diff=166143&oldid=166142 * Ractangle * (-30) /* Syntax */
20:11:54 <esolangs> [[8ial]] M https://esolangs.org/w/index.php?diff=166144&oldid=166143 * Ractangle * (+157) /* Interpreter */
20:14:25 <esolangs> [[8ial]] M https://esolangs.org/w/index.php?diff=166145&oldid=166144 * Ractangle * (+11) /* Interpreter */
20:16:23 <esolangs> [[Talk:8ial]] N https://esolangs.org/w/index.php?oldid=166146 * Ractangle * (+295) Created page with "ok this time Kaveh you don't need to apoligise because of the fact your interpriter as of 16th of October has outdated specifactaions~~~"
20:17:48 <esolangs> [[8ial]] M https://esolangs.org/w/index.php?diff=166147&oldid=166145 * Ractangle * (+73)
20:23:36 <esolangs> [[User:EZ132/std1ib.h]] N https://esolangs.org/w/index.php?oldid=166148 * EZ132 * (+3224) Created page with "'''<code>std1ib.h</code>''' is the header file that defines [[User:EZ132/Not C++|Not C++]]. <pre> #include <iostream> #include <string> #include <utility> #include <vector> #include <iterator> #include <stdlib.h> // delimiters & blocks #define def #define def
20:24:05 <esolangs> [[User:EZ132/Not C++]] N https://esolangs.org/w/index.php?oldid=166149 * EZ132 * (+3241) Created page with "'''Not C++''' (name provisional) is a programming language that is not [[C++]]. It can be compiled trivially into C++. ==Design & History== Not C++ is essentially C++ modified with a header file currently referred to as <code>std1ib.h</code>. This header consis
20:37:02 <Sgeo> Many languages have ternary. Algol-68 has abbreviated if elif else chains:
20:37:03 <Sgeo> INT p = (c="a"|1|:c="h"|2|:c="q"|3|4)
20:37:30 <Sgeo> Hmm I guess ternary can be used similarly anyway depending on precedence
20:37:49 -!- joast has joined.
20:50:31 -!- ais523 has joined.
20:51:36 <ais523> sorear: hi! I haven't Internet-seen you in ages
21:04:03 <ais523> <strerror> (CIM = Compute-in-memory, which adds a few extra word lines to a DRAM circuit to do elementary logic operations across a row, which typically has 64K bits or more.) ← now I'm imagining a very big embarrassingly-parallel vector calculation running across DRAM refresh cycles
21:04:34 <ais523> hmm, the simplest version of this would be a mass zero in which you can tell the memory controller "please zero this block of memory for me" – that would probably be useful even on its own
21:06:04 <ais523> I still remember the discussions about background zeroing of non-allocated memory using, effectively, the kernel idle process (Linux doesn't do it because of cache pollution, although there have been discussions about doing it using nontemporal writes)
21:06:20 <ais523> but just having the memory do it effectively instantly would bypass all those issues
21:07:18 <ais523> <strerror> korvo: I prefer to say that GPUs aren't fast, it's the von Neumann chips that are plodding along ← it makes more sense to think of speed in terms of latency and throughput rather than as a single figure: GPUs have massive throughput but aren't very good at latency
21:14:11 <zzo38> I had thought of computer design in many ways, and I also thought that it should avoid out of order execution, in the ways that is mentioned (and also to possibly make it simpler by not implementing out of order execution; the compiler can (hopefully) set up the order properly). I did not consider CIM but it also has some uses
21:16:30 -!- salpynx has joined.
21:18:08 <salpynx> IMO the Basic Stack TC proof is basically correct. int-e already pointed out the problems with it: 1) misses the data string setup (trivial to do with `push 1`, and obviously required for the rest to work, use `goto 2` for the loop) 2) Technically is using CT not BCT. The table is simple-translation of CT into BCT into Basic Stack, 3) the `istop;stop` is redundant on the 1x commands, but doesn't break anything. Other than that, it seems a valid idea. I
21:18:09 <salpynx> had a play with the interpreter, and with an initial data string, it runs BCT examples with deletion replaced with a moving pointer, so functionally equivalent. It feels like it was designed for this.
21:18:45 <salpynx> int-e: The BCT subtlety is a good observation. I worry I may have this mistake in the past. At first I couldn't see why it might be useful, but it looks like the effect is running one set of productions once, then looping on the offset productions, which could be useful for some clever run-once setup code.
21:18:46 <b_jonas> ais523: could you just ask the GPU to do zeroing? or maybe CPUs could add background zeroing logic at the L3 cache?
21:19:47 <ais523> salpynx: I don't think it correctly implements a queue, the "push reg" command is intended to dequeue a queue but it pushes the address of the element it's dequeuing (with no way to dereference it), not the element itself
21:20:29 <int-e> ais523: it increments `reg`
21:20:39 <ais523> b_jonas: I'm not sure what the situation with GPUs accessing CPU memory is like at the moment – it may vary a lot based on the motherboard (I know that some computers make it efficient but most don't)
21:20:40 <int-e> which points to the start of the queue on the stack
21:20:51 <ais523> int-e: yes, reg is a pointer to the start of the queue on the stack, but the language has no way to read through the pointer
21:21:30 <int-e> ais523: condr does that
21:21:31 <ais523> knowing where the front of a queue is is not enough to be able to dequeue and branch on the dequeued element, you need to be able to actually read the element in question
21:21:59 <salpynx> there is a `push 1` `push 0` which works for the CT emulation
21:22:01 <ais523> int-e: ah, you're right – that was the bit I was missing
21:22:16 <ais523> it looks like that instruction was added specifically to make it non-bignum TC?
21:23:55 <int-e> ais523: yeah, it makes the stack "transparent" as the top of the page puts it
21:24:37 <salpynx> ais523: I wasn't sure what bit you were missing, but sounds like int-e revealed it :)
21:25:41 <salpynx> int-e: your comments made me think that "Binary Encoded Cyclic Tag" _is_ a useful thing if 2 symbol encoding is the constraint. That makes something like 101001 valid BCT but a syntax error in "Binary Encoded Cyclic Tag".
21:26:02 <salpynx> Failing on e.g. 101001 might be a common gotcha for BCT interpreters (if anything about BCT interpreters can ever be called 'common'). Something to test, like Deadfish 256 handling.
21:26:45 <int-e> salpynx: The thing is that the first 0 in a program synchronizes everything so the feature is of very limited use.
21:27:10 <int-e> salpynx: it's more of a wart ;)
21:27:20 <salpynx> The setup / init code possibility is interesting
21:27:38 <ais523> I dislike the way that bitwise cyclic tag became the default, a much better option is "cyclic tag and invent your own syntax for it"
21:27:47 <salpynx> A simple example shows this kind of behaviour : BCT: 101001 = 10 10 0 (11 0 10 0)* , in CT: 0 0; (1; 0;)* (apologies for ad-hoc mixed notation, hopefully it's esotericly clear enough)
21:27:50 <ais523> (for TCness proofs, at least)
21:29:23 <salpynx> I think the wiki page contributes to that problem, BCT is explained in more detail, and has clearer examples. I've used that, and am probably guilty of defaulting to BCT numerous times in the past
21:29:33 <ais523> cyclic tag effectively having three symbols is awkward sometimes, but BCT doesn't really fix that problem
21:30:02 <ais523> (this was the major motivation behind inventing https://esolangs.org/wiki/Echo_Tag https://esolangs.org/wiki/Grill_Tag, which each genuinely can be expressed using two symbols)
21:30:09 <ais523> *Echo Tag and Grill Tag
21:30:42 -!- vista_user has joined.
21:32:29 <salpynx> The ; in CT is like a newline, if you think of the code as a finite list of 2 symbol productions, and deletion occurs by default as part of the process
21:36:20 <salpynx> Hm, Echo Tag is categorized as 'unimplemented'. That might be a fun one to do.
21:36:33 <ais523> when talking to people who don't know how cyclic tag works already, I usually explain it as a program formed of "pop the top element, then push this string if the popped element wasn't 0"
21:37:04 <ais523> Echo Tag's a bit weird because it's been manually compiled into a lot but I'm not sure that there's an automated compiler yet
21:37:10 <ais523> err, manually compiled from a lot
21:37:38 <salpynx> Has it been used in a TC proof for something else?
21:38:58 <ais523> base 10 Addition Automaton, at least
21:39:04 <ais523> https://esolangs.org/wiki/Addition_Automaton
21:41:01 <salpynx> that's a totally new one to me, I'd a least recognised the names of the other * Tags
21:42:52 <salpynx> the numeric output is visually interesting, you can see the structure in the digits. nice.
21:43:17 <ais523> the way I think about it is that almost all TC languages can trivially emulate either a counter machine or a tag system, and so making TC proofs easier is mostly accomplished by making easier-to-implement counter machines and easier-to-implement tag systems
21:47:14 <salpynx> I've always felt that there is a lack of confirmation example programs in tag systems or counter-machine to concretely verify a conversion.
21:47:35 <ais523> part of the issue is that natively written tag is incredibly slow
21:47:37 <salpynx> The BCT wiki page example gets used a lot , I've used it and someone else did recently
21:47:47 <ais523> so you need an optimising interpreter to be able to run it
21:49:21 -!- tromp has joined.
21:49:25 <salpynx> I'm pretty sure I've written a 'hello world' in 2 reg Minsky machine and was going to figure out how to make an optimising interpreter to let it complete
21:50:20 <salpynx> I got distracted by the various MM notations, and how they weren't quite set up for 2-reg
21:51:52 <salpynx> That's right, I convinced myself PMMN was not TC for 2 registers, then decided it was, but not in the obvious way
21:52:13 <esolangs> [[Bitwise Cyclic Tag]] https://esolangs.org/w/index.php?diff=166150&oldid=101531 * Ais523 * (+146) /* Example (Collatz sequence) */ credit where this example comes from
21:52:32 <ais523> that example is used so much we should properly credit it to the original author
22:00:07 <salpynx> For cyclic tag examples I created this BASIC inspired fantasy console idea with an data-string output encoding: https://esolangs.org/wiki/CTBASIC and Tektronix 4010 graphical output for a retro vibe
22:00:24 <salpynx> Not sure I've written it up well enough to do it justice
22:02:25 <salpynx> There's a pre-calculated rotating cube example that runs using cyclic tag .... it's just output but it cycles over distinct animation frames
22:03:27 <ais523> (very) recently I've been interested in the question of compilations that run quickly in naive tag interpreters
22:03:29 <salpynx> I never quite figured out how to do more complex arbitrary conditional branching in CT
22:04:12 <ais523> I think running a program at a speed that's n log(n) slower than the original is possible (I have a sketch proof at https://esolangs.org/wiki/Globe but the details of both halves are missing)
22:04:41 <salpynx> do you mean finding useful algorithms that run well in tag systems, or something else?
22:04:52 <ais523> a compilation scheme, e.g. Turing machine to tag system
22:05:00 <ais523> which doesn't lose any more performance than necessary
22:05:20 <ais523> almost all tag system TCness proofs go via counter machines and store the counters exponentially, so you get a double-exponential slowdown
22:05:55 <ais523> (although one of the exponentials is fairly to remove with an optimising interpreter)
22:06:09 <vista_user> nice to see another user in the wiki wjho likes basic tho
22:06:52 <salpynx> I guess that's what I was trying to figure out with CTBASIC, how to implement higher level programming concepts (mostly)directly.
22:07:01 <ais523> BASIC was my first programming language
22:10:32 <vista_user> ais523: same...well technicakly it was batch but only dir and cd, as a language i actually coded in itwas basic (and a bunch of hopping on python for like 3 days then leaving it for 3 months then back then out ad nauseam))
22:11:59 <vista_user> blame me being too busy doing weird shit in a c64 emulator i got just for the games and ended up using for peek and poke shitfsckery to even bother with python for a while
22:12:25 <salpynx> Getting more direct high level effects in tag systems tends to blow up the number of productions required, that seems to be the trade off. They can be easily generated following simple rules, but they take up space.
22:22:31 -!- ais523 has quit (Ping timeout: 256 seconds).
22:22:49 -!- ais523 has joined.
22:35:11 -!- vista_user has quit (Remote host closed the connection).
22:37:53 -!- ajal has joined.
22:38:27 -!- amby has quit (Remote host closed the connection).
22:38:27 -!- salpynx has quit (Remote host closed the connection).
22:57:03 <esolangs> [[User:Quito0567]] https://esolangs.org/w/index.php?diff=166151&oldid=154435 * Quito0567 * (+18)
22:57:32 <esolangs> [[User:Quito0567]] https://esolangs.org/w/index.php?diff=166152&oldid=166151 * Quito0567 * (+5)
22:57:49 <esolangs> [[User:Quito0567]] https://esolangs.org/w/index.php?diff=166153&oldid=166152 * Quito0567 * (+2)
22:59:30 <esolangs> [[Boomerlang]] https://esolangs.org/w/index.php?diff=166154&oldid=115671 * Quito0567 * (+14)
23:01:31 -!- jgardner has changed hostmask to sid553797@user/meow/jgardner.
23:03:45 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
23:18:40 -!- Lymia has quit (Quit: zzzz <3).
23:19:07 <esolangs> [[?brainfuck]] https://esolangs.org/w/index.php?diff=166155&oldid=166089 * HyperbolicireworksPen * (+120) changed 5/8,1;/14,2;1/8,3 added infinite series stuff as well
23:19:15 -!- Lymia has joined.
23:20:20 <esolangs> [[?brainfuck]] https://esolangs.org/w/index.php?diff=166156&oldid=166155 * HyperbolicireworksPen * (-1) counted stuff
23:20:58 <esolangs> [[?brainfuck]] https://esolangs.org/w/index.php?diff=166157&oldid=166156 * HyperbolicireworksPen * (-1)
23:21:12 <esolangs> [[?brainfuck]] https://esolangs.org/w/index.php?diff=166158&oldid=166157 * HyperbolicireworksPen * (-1)
23:30:15 <esolangs> [[?brainfuck]] https://esolangs.org/w/index.php?diff=166159&oldid=166158 * HyperbolicireworksPen * (+153)
23:42:50 -!- avih has left.
23:51:52 <korvo> ais523: That's another solid way to look at GPUs, yeah.
23:52:18 <korvo> sorear: Oh hi! Sorry I haven't been on top of that Busy Beaver stuff. Feel free to ping me if I'm blocking progress.
00:59:31 -!- ajal has quit (Remote host closed the connection).
01:12:44 -!- Hooloovoo has changed nick to Hoolooboo.
02:56:25 <esolangs> [[User:EZ132/Not C++]] https://esolangs.org/w/index.php?diff=166160&oldid=166149 * EZ132 * (+14) /* Design & History */
03:04:33 -!- lynndotpy60 has quit (Quit: bye bye).
03:05:40 -!- lynndotpy609 has joined.
04:12:56 <sorear> Can't say I've done much myself. Interesting choice of venue though
04:17:26 <korvo> It's been something of a reaction to (a) the uncomputability of many of the facts under study, combined with (b) the open refusal of some famous folks to not consider a GitHub repo to be citable even when it has working Coq proofs.
04:21:02 <sorear> the IRC channel and the wiki don't seem like an improvement there
04:22:01 <korvo> Yeah, but that's why I've got my own GitHub repo. And the repo does render nicely into a readable format: https://bbgauge.info/
04:22:39 <sorear> a GitHub repo isn't a valid source, so we add another GitHub repo?
04:23:18 <korvo> Hey, I never said that I was smart, only that I'm willing to put in the work~
04:25:40 <sorear> and a little curious what does and doesn't count as an "esolang"
04:25:41 <ais523> <korvo> the open refusal of some famous folks to not consider a GitHub repo to be citable even when it has working Coq proofs. ← I'm sort-of the opposite in that respect, in my PhD I intentionally tried to avoid citing things that weren't publicly available and pick publicly available alternatives
04:26:17 <ais523> sorear: defining "esolang" is difficult, a good working definition is that a language is esoteric if being useful to practically program in is not a design goal
04:26:39 <ais523> although I think that definition is slightly too restrictive
04:27:08 <korvo> I recently re-explained my definition, based on inclusionism vs deletionism, in the context of that one paper that went around: https://lobste.rs/s/ksrmbf/let_s_take_esoteric_programming#c_0gsmih
04:28:16 <sorear> nql was a means to an end so it fails that test
04:29:58 <ais523> I am thinking of Waterfall Construction Kit, a language I designed to write one program – I wrote the program and compiled it by hand without ever working out what the Waterfall Construction Kit specification was, and then abandoned the language it was written in
04:30:09 <korvo> Well, maybe the ends aren't practical. NQL or bfmacro are great for producing programs for low-level machines that don't physically exist. They can be ergonomic while addressing problems in pure maths. An extreme example of that might be https://esolangs.org/wiki/Sammy which isn't known to be computable.
04:30:35 <ais523> I guess both the "esoteric" and "language" halves of that are debatable!
04:31:26 <sorear> something like solidity comes to mind
04:31:51 <ais523> hmm, I just realised there's a sort of implicit assumption of "a programming language that is only useful when used with esolangs is an esolang" that I've never questioned before
04:32:02 <sorear> which _does_ have massive corporate backing, but I'm uncomfortable defining things strictly in terms of context
04:32:58 <ais523> I actually haven't looked at what solidity is like as a language, I kind-of assumed it was a relatively normal low-level VM, the same sort of thing as webassembly or the JVM, but I might be completely wrong
04:35:02 <zzo38> I think that git repositories (hosted on GitHub or something else) can be citable, although when citing something that can be changed then it might be worth to specify what version; in the case of git you can specify the commit hash, and that might also help in case it is mirrored to something else then you can also find the matching commit hash.
04:35:02 <korvo> Eye of the beholder, I guess; all three of those VMs are bonkers as compilation targets. I never did figure out how to compile Cammy to WASM in a satisfying way, nor Monte on JVM, although maybe I just didn't try very hard.
04:35:23 <ais523> after looking it up, it seems that I confused the VM (which is called EVM) with the language (Solidity) commonly used to compile to it
04:35:43 <zzo38> Citing something that is publicly available is also good, rather than something that is not publicly available because then you could not easily check the citation if it is not public
04:35:43 <ais523> korvo: one of my recent pet theories is that everyone is doing IRs incorrectly
04:36:41 <zzo38> Do you know what is the proper way to do IRs?
04:37:06 <ais523> I think the most important thing I would change would be to separate out UB from everything else: there would be an assert/assume instruction that defines circumstances to be UB, and all the other commands would be well-defined (although the definition could in some cases be "whatever the hardware does" for things like writing dangling pointers)
04:37:51 <ais523> that way, optimisations never cause you to lose track of what your UB assumptions are
04:38:05 <ais523> because you can preserve them as you optimise the code around them
04:38:10 <zzo38> I think that would be reasonable, for that and possibly other reasons too
04:38:22 <ais523> this also means that if you want defined behaviour in a particular case, you can just remove the UB assumption you'd normally emit
04:38:53 <sorear> the problem with "dangling and out of range pointers do whatever the hardware does" is that it prevents optimizations that affect things that shouldn't be visible but can be made visible by pointer misuse, like stack frame layout and slot reuse
04:38:57 <korvo> zzo38: Yeah. In the case of Busy Beaver research, the problem is that our person doesn't really want to verify the artifacts in the repo; they want "either a prose writeup explaining what was done or independent verification of its correctness", quoting https://scottaaronson.blog/?p=9152#comment-2016433
04:39:29 <sorear> this came up in the cakeml stack
04:40:03 <korvo> So in the case of e.g. Leng 2024, they would prefer that somebody who isn't Leng (me?) run the Coq proofs and confirm that they pass. I did that! But where do I put the prose so that it's acceptable?
04:40:36 <sorear> what exactly are the coq proofs?
04:41:27 <korvo> Oh, not Leng, but mxdys; https://github.com/ccz181078/Coq-BB5 is the repo. Proofs of certain values of BB.
04:41:28 <ais523> <sorear> the problem with "dangling and out of range pointers do whatever the hardware does" is that it prevents optimizations that affect things that shouldn't be visible but can be made visible by pointer misuse, like stack frame layout and slot reuse ← that's why you have the UB assumptions – they permit that sort of optimization even though the rest of the IR doesn't
04:41:54 <zzo38> It would help to have a proper prose writeup which is publicly available, in addition to the git repository, but if you do not have it then you will have to do what you do have, instead.
04:42:05 <korvo> They also don't acknowledge Leng's TM for Goldbach Conjecture, verified in Lean 4: https://github.com/lengyijun/goldbach_tm
04:42:06 <ais523> there is a writeup of that now, I think
04:42:43 <ais523> korvo: I bet they wouldn't acknowledge my 2-state 14-symbol universal TM
04:42:51 <ais523> which is written up half on esowiki and half on codegolf stack exchange
04:44:23 <korvo> ais523: Let's just say that there's a lot that Aaronson doesn't acknowledge, and leave it at that. Some of us think he's too biased elsewhere to be an acceptable primary source here. I'm still citing him properly for the contributions he's made.
04:45:17 <korvo> I don't appear to have your TM in the Gauge, either. Do you have a link? I can take a look now, and I'll open an issue on GitHub if it takes me more than a few days.
04:45:56 <sorear> anyway I think the gold standard for citing is "anything with a DOI" and the astro-ph people have a bunch of tools for turning code repos into something that can be cited
04:46:25 <sorear> OTOH it would be nice to have a complete explanation and not "here's 500 lines of python have fun"
04:47:41 <ais523> korvo: https://codegolf.stackexchange.com/questions/111278/turing-complete-language-interpreter/265539#265539
04:47:47 <korvo> Totally fair. My current standard is somewhere between "live link to a PDF" and "working Nix flake", but I think I'm a bit more of a hardscrabbler than a paper-writer. Certainly I haven't contributed anything of interest.
04:48:18 <sorear> it would be nice to have a proof for the zfc turing machines but there's a bunch of pieces to chain together, including the validity of the tarski-megill predicate calculus itself
04:48:31 <ais523> I wrote the Turing machine in question in 2019 but didn't prove it universal until 2023 (and the proof hasn't been peer-reviewed so it might be wrong)
04:48:57 <zzo38> What is the DOI of a GitHub repository? Can you cite a specific version?
04:49:39 <ais523> you can definitely cite a particular version of a git repository, via providing the hash (which is, to any reasonable approximation, globally unique)
04:49:40 <korvo> ais523: Swag, thanks. I'll have to do more research to understand the previous champion that you mention, too.
04:50:11 <ais523> and GitHub allows for links that are tied to the git hash
04:50:24 <sorear> https://docs.github.com/en/repositories/archiving-a-github-repository/referencing-and-citing-content huh, there's Official Guidance now
04:51:00 <korvo> sorear: Something I've thought about a *lot*, and I presume you have too: what's the main obstacle to just implementing Metamath's Algorithm D as a low-level machine? That'd let us automatically compile quite a few interesting theories.
04:52:09 <korvo> I worry that proving that the cut-down algorithm is correct might be more effort than just proving that the implementation is actually Algo D. I also have an unhealthy desire for generalization.
04:53:13 <sorear> where is that defined?
04:55:25 <korvo> Um, probably The Book, metamath.pdf. IIRC it comes from Meredith's work and Tarski showed its completeness. Might be misremembering the name; Meredith called it something like "algorithm of detached inference".
04:56:31 <sorear> meredith's work to the extent I remember was exclusively propositional calculus, which has limited computational relevance
04:57:35 <sorear> https://projecteuclid.org/journals/notre-dame-journal-of-formal-logic/volume-36/issue-3/A-Finitely-Axiomatized-Formalization-of-Predicate-Calculus-with-Equality/10.1305/ndjfl/1040149359.pdf p. 5 has D
04:58:44 <sorear> it's a unification process which requires parsing the wffs, intuitively seems far more complicated than the parsing-free approach
04:59:39 <korvo> Yeah. But all of the parsing can be done at compile time; the actual unifications only have to proceed abstractly over some Herbrand structure, I think.
05:00:29 <korvo> I remember asking Mario something similar about whether we could mechanically extract a CFG from a Metamath database. IIRC he was like "yeah but why?"
05:02:52 <sorear> you still need to recursively/iteratively process terms, track used and unused variables, etc
05:04:22 <sorear> fundamentally it's a tool to allow maximum proof reuse through metavariables, but that's useless in a TM context so zf2.nql works purely with object variables and fully concrete formulas
05:05:24 <korvo> That's fair. My notes on proof search in ETCS are full of similar hacks, but I think I went too far; I convinced myself that ETCS is obviously consistent and now I don't know what to search for.
05:07:03 <korvo> I haven't done ETCC yet. If I figure out how to compute Sammy then maybe a Sammy interpreter would be smaller than ETCC contradiction search.
05:07:27 <korvo> But I don't know how to compute Kan extensions in general and it seems to be a bit of an open problem.
05:08:31 <sorear> etcs/etcc/sammy; there's a wiki article for kan but i've always been terrible at categories
05:08:49 <korvo> Category theory junk. ETCS is a theory of sets and functions; ETCS + Choice + Replacement is bi-interpretable with ZFC. ETCC is a theory of categories and functors, and Sammy's an esoteric language describing constructions in ETCC.
05:09:25 <korvo> No worries. I literally cannot hold a functor correctly; I'm always mixing up its variance and domains.
05:09:32 <sorear> zf2 _is_ general enough to express an arbitrary grammatically unambiguous metamath database with minor/"obvious" changes
05:10:46 <esolangs> [[User:None1/InDev]] https://esolangs.org/w/index.php?diff=166161&oldid=158865 * None1 * (+615)
05:14:27 <korvo> Yeah! I wouldn't ask if I didn't see it in the code history. I want to have a strong basis from which to evaluate CatsAreFluffy's work, since it seems like they're doing lots of small tweaks to the low-level proof statements without a high-level justification or verification.
05:17:32 <korvo> I figure that I won't know until I write more NQL, but did I miss anything when hacking out the wiki page? I got globals and procedures, natural numbers, assignments and lookups, if- and while-statements, and the history.
05:17:46 <korvo> Oh! So I forgot arithmetic.
05:20:37 <sorear> the big improvement recently seems to be a switch from fixed length to variable length program counters, which is something I carefully considered before deciding it wasn't possible, my big goal is to understand what was actually done there
05:21:33 <sorear> it's a fairly boring algol/C clone (even has call by name!), if you caught the lisp, forth, and perl 6 references take a cookie
05:23:13 <sorear> there's if-decr and the builtin mechanism, not sure about "history"
05:25:17 <korvo> There's the 2016 theorem, the related language Laconic, and probably will be a new chapter after we get all of these new commits wrangled.
05:26:36 <sorear> ah, the history of nql as described in the wiki page, thought you were talking about "history" as an internal feature of the language
05:27:08 <korvo> Oh, ha, sorry. Bad with words tonight.
05:29:55 <sorear> i'll most likely merge the improvements if I manage to understand them
05:31:14 <sorear> part of the goal being to understand catsarefluffy's subprogram register machine well enough to explain it in prose
05:35:18 <korvo> Cool. No rush. My goal is only to have a git commit that can build the rest of the book, and that can provide an apples-to-apples comparison of everybody's NQL programs. I don't want anybody's old code to be unfairly compared to somebody's new result just because of a compiler difference!
05:35:53 <korvo> The BB Gauge. It's basically a living book, even though it's just a cruddy little website.
05:36:27 <korvo> Anyway, I have one commit that makes everything build for me, and I'll send that for review.
05:45:08 <esolangs> [[Not-Quite-Laconic]] https://esolangs.org/w/index.php?diff=166162&oldid=164204 * Corbin * (+803) /* Overview */ Document arithmetic and comparisons. (Everybody do the monus! The monus is a dance! Everybody is a genius! Who knows it in advance!)
05:48:35 <b_jonas> so recently a new user registered on the esowiki and wrote that they're interested in a language that I had documented. that means it's worth to document esoteric languages on the wiki. I'm just mentioning this just in case you ever despair about the state of the wiki and all the junk there is on
05:53:36 <korvo> b_jonas: I appreciate that, thanks.
05:54:41 <b_jonas> and they fixed a mistake where I documented that language incorrectly. or they introduced a mistake, I don't really know.
05:55:42 <esolangs> [[Not-Quite-Laconic]] https://esolangs.org/w/index.php?diff=166163&oldid=166162 * Corbin * (+180) /* Procedures */ Document switch-statements somewhat. My understanding of the limitations here is from reading the grammar and AST.
05:56:23 <b_jonas> https://esolangs.org/w/index.php?diff=166111
05:59:15 <b_jonas> they're not a new user, they wrote that they were interested in that language back in year 2022
06:00:43 <esolangs> [[User:Zzo38/Untitled 2]] https://esolangs.org/w/index.php?diff=166164&oldid=66278 * Zzo38 * (+71)
06:25:42 -!- Sgeo has quit (Read error: Connection reset by peer).
07:33:50 -!- tromp has joined.
09:54:58 -!- chiselfuse has quit (Remote host closed the connection).
09:55:12 -!- chiselfuse has joined.
10:13:47 <ais523> hmm, that complexity class argument on the NQL page – it's not completely obvious to me that ZFC being able to prove itself inconsistent implies that it actually *is* inconsistent
10:15:21 <ais523> (because it doesn't seem obviously necessary for it to have enough introspection to be able to get from there to a contradiction, and being able to prove false statements also doesn't imply that a system is inconsistent)
11:31:59 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
11:36:42 -!- Lord_of_Life_ has joined.
11:36:43 -!- Lord_of_Life has quit (Ping timeout: 246 seconds).
11:38:02 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
11:48:17 -!- amby has joined.
12:14:27 <HackEso> 352) <olsner> as always in sweden everything goes to a fixed pattern: thursday is queueing at systembolaget to get beer and schnaps, friday is pickled herring, schnaps and dancing the frog dance around the phallos, saturday is dedicated to being hung over \ 510) <fungot> CakeProphet: mr president, in the best egyptian judicial traditions has now been put off to friday. but i want my money back'. we know it generally deals with major infrastructure projects
12:14:52 <int-e> oh, I should've known that #352 would come up again
12:15:21 <int-e> `` quote friday | paste
12:15:23 <HackEso> https://hack.esolangs.org/tmp/paste/paste.6670
13:00:19 -!- ais523 has quit (Quit: quit).
13:11:29 <sorear> ZFC+Not(Con(ZFC)) is a perfectly consistent theory (assuming Con(ZFC)), any model must merely have an "inconsistency proof" as a non-standard natural, this is well known
13:12:44 <int-e> I keep wondering what separates a standard model of ZFC from others.
13:17:48 <sorear> short answer is that a standard model contains objects which correspond to the metatheory
13:20:56 -!- Sgeo has joined.
13:21:14 <int-e> Cool, but then we're in the situation where it's meta theories all the way down.
13:21:41 <int-e> Now I can delude myself into believing that there's a unique standard model for Peano Arithmetic, but set theory is much richer.
13:23:05 <int-e> And ZFC (the first-order axiom schema version) has a countable model... and that's not the standard model... or is it...
13:23:26 <int-e> Well, I find it very confusing :)
13:35:31 <sorear> model theory in general is infinitary, if you want to work concretely you need to translate whatever into the language of proofs
13:40:21 <int-e> Yeah, fortunately the answer to this standard model puzzle is irrelevant to doing math. No impact on the real world either. :)
14:12:12 <korvo> int-e: Fortunately, in second-order logic, there's only *the* one unique natural numbers.
14:12:32 <korvo> But yeah, if one doesn't know that then non-standard nats are going to always be spooky. Appropriate for October, at least.
14:17:04 <int-e> korvo: Sure, but then you get that natural numbers are unique in each model of set theory, and it's still relative to picking a model of that ;)
14:18:01 <int-e> (The fundamental issue will always be this infinite stack of meta-theories.)
14:18:39 <int-e> Anyway. It is fun to ponder, but I don't expect any answers. I'll happily leave that to philosophers ;)
14:19:08 <korvo> int-e: Yeah. At the same time, we can imagine that second-order logic, which presupposes those sets, has *enough* subsets of natural numbers. There's some nasty subsets like 0♯ whose existence has implications, but just taking a finite or cofinite set isn't a problem.
14:55:10 -!- tromp has joined.
14:56:38 <esolangs> [[Turing machine]] https://esolangs.org/w/index.php?diff=166165&oldid=154622 * Corbin * (+1270) Stub a section on halting. Most of the good stuff's already in [[computable]], but the overview isn't stated elsewhere.
14:57:22 <korvo> Not really liking the <math> tags. They look alright but they don't show up reliably in previews, and they only create a consistent article appearance when used throughout the page.
15:01:29 <korvo> Anyway, with the two theorems added there, and given LEM for proof existence (either a proof does or doesn't exist relative to some axioms), the statements at [[NQL]] or [[Laconic]] are valid. I might make a fresh page or a section at [[Turing machine]] giving a generalized justification.
15:02:31 <korvo> The confusing wording that I used is standard, going back to Russell, but it *is* confusing for sure. It's not obvious that the reader is supposed to read one sentence at a time and take 5min to think about it.
15:05:33 <int-e> . o O ( maybe add some Rice for flav... never mind )
15:06:07 <korvo> (Nah, Rice is bland without Curry.)
15:06:10 <int-e> (the last sentence sounds like Rice)
15:07:14 <korvo> I should read more Rice. I don't know much about them other than that they were a student of Turing.
15:08:26 <int-e> Oh I mean the theorem named after the person. I know nothing about the person either.
15:13:06 <korvo> I'm still thinking about ais523's complaint. ZFC's conservative over ZF, so we can give up Choice and LEM for a moment. If ZF |- ~Con(ZF) then that proof can be run through BHK to give a construction of 0=1 and from that a construction of anything else, so ZF really would be inconsistent.
15:19:39 <korvo> The rest of it's given by the first-order logical tools. If implication really gives a Heyting algebra (a lattice with implication, basically) then falsity really does imply everything else by virtue of being at the bottom of a lattice. This is just a decategorification! This is why paraconsistent logics have to break disjunction; they have to break *some* law of lattices.
16:03:09 <fizzie> There's a new "Native MathML" mode (as well as a MathJax mode) for Extension:Math that I should probably try out. At the moment, it's set up in the default Mathoid-as-a-service mode, pointing at Wikipedia.
16:03:24 <fizzie> The new modes don't have the image fallback, so they'll either require a modern browser or loading MathJax, but OTOH they don't depend on a planned-to-be-discontinued Wikimedia API endpoint either. And might even work reliably in previews.
16:09:10 <korvo> The compatibility matrix looks pretty good these days: https://developer.mozilla.org/en-US/docs/Web/MathML#browser_compatibility
16:19:06 <int-e> korvo: https://int-e.eu/~bf3/tmp/compat-matrix.png
16:19:44 <int-e> (no JS is why, and yes I know that's a tiny niche of users)
16:19:58 <korvo> Good times. I use NoScript myself; it's worth the effort.
16:46:05 <esolangs> [[Special:Log/newusers]] create * Ivava * New user account
16:54:31 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=166166&oldid=166096 * Ivava * (+199)
16:56:45 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
17:09:36 <esolangs> [[Syzygy]] https://esolangs.org/w/index.php?diff=166167&oldid=166131 * Hotcrystal0 * (+5) Better first sentence
17:11:52 <esolangs> [[User:Ivava]] N https://esolangs.org/w/index.php?oldid=166168 * Ivava * (+666) Created page with "Hi everyone! I'm Ivava. (im not have the name "Ivava" at real!!! , its just nickname) I'm from Russia and I'll be contributing to esolangs.org! When I was 12 I saw a cyber-hacker spamming ads for explicit content... And while I'm still 12, I want to learn all programmi
17:20:01 -!- tromp has joined.
18:01:25 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
18:06:12 -!- tromp has joined.
18:15:59 <esolangs> [[-hacker]] N https://esolangs.org/w/index.php?oldid=166169 * Ivava * (+1183) Created page with "{{stub}} '''-hacker''' is personal [[User:Ivava]] 's project, that was posted as [[esoteric programming language]]. ==Why "-hacker"? == Well.. Simply.. Shorter.. Well, if you don't like non ethical hackers, you can use it as a game..? -hacker is joke esoteric language
18:17:09 <esolangs> [[User:Ivava]] https://esolangs.org/w/index.php?diff=166170&oldid=166168 * Ivava * (-12) /* Esolangs list */
18:30:01 <korvo> Jujutsu really is a game-changing approach. I can fearlessly add remotes of many downstreams and add their bookmarks without feeling like I'm drowning in branches. Instead, I feel like I get to choose which bookmarks are worth integrating.
18:41:46 <esolangs> [[Not-Quite-Laconic]] https://esolangs.org/w/index.php?diff=166171&oldid=166163 * Corbin * (+161) /* Procedures */ Incorporate a semantics update from 2017.
19:41:10 <esolangs> [[User:Hotcrystal0/Sandbox]] https://esolangs.org/w/index.php?diff=166172&oldid=165882 * Hotcrystal0 * (+1)
21:30:25 <esolangs> [[Language list]] M https://esolangs.org/w/index.php?diff=166173&oldid=166125 * RaiseAfloppaFan3925 * (+47) /* N */ Added my esolang Nonstraightforward after 5 months
21:57:59 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
22:13:02 -!- joast has quit (Ping timeout: 260 seconds).
22:14:39 -!- joast has joined.
22:18:20 <esolangs> [[1 Bit, an eight byte]] N https://esolangs.org/w/index.php?oldid=166174 * Tommyaweosme * (+210) Created page with "1 Bit, an eight byte is the worst programming language. There are no quines. == Commands == 0 - output 1 1 - output 0 That's it. == Programs == === [[Hello World|1]] === 0 === [[99 Bottles of Beer|0]] === 1"
22:19:36 <esolangs> [[Talk:1 Bit, a quarter byte]] https://esolangs.org/w/index.php?diff=166175&oldid=166132 * Tommyaweosme * (+109)
22:40:23 <esolangs> [[User:Waffelz]] https://esolangs.org/w/index.php?diff=166176&oldid=165854 * Waffelz * (+49)
22:50:36 -!- joast has quit (Quit: Leaving.).
23:01:52 <esolangs> [[Special:Log/move]] move * EvyLah * moved [[BFasm]] to [[BFasm (discontinued)]]: wafflez requests to have bfasm, I don't really update this page, so I will move it
23:01:52 <esolangs> [[Special:Log/move]] move * EvyLah * moved [[Talk:BFasm]] to [[Talk:BFasm (discontinued)]]: wafflez requests to have bfasm, I don't really update this page, so I will move it
23:02:27 <esolangs> [[BFasm]] https://esolangs.org/w/index.php?diff=166181&oldid=166178 * EvyLah * (+19) Removed redirect to [[BFasm (discontinued)]]
23:02:48 <esolangs> [[User:Waffelz]] M https://esolangs.org/w/index.php?diff=166182&oldid=166176 * Aadenboy * (+30) displaytitle lowercase
23:02:49 <esolangs> [[BFasm]] https://esolangs.org/w/index.php?diff=166183&oldid=166181 * EvyLah * (+1)
23:03:08 <esolangs> [[Talk:BFasm]] https://esolangs.org/w/index.php?diff=166184&oldid=166180 * EvyLah * (-39) Blanked the page
23:05:25 <esolangs> [[BFasm]] https://esolangs.org/w/index.php?diff=166185&oldid=166183 * EvyLah * (+44)
23:05:56 <esolangs> [[BFasm]] https://esolangs.org/w/index.php?diff=166186&oldid=166185 * EvyLah * (+0)
23:10:54 <esolangs> [[User talk:Waffelz]] https://esolangs.org/w/index.php?diff=166187&oldid=149421 * EvyLah * (+295) /* waffelz' Talk Page */ notified because I moved bfasm
23:20:52 <esolangs> [[User talk:Waffelz]] https://esolangs.org/w/index.php?diff=166188&oldid=166187 * Waffelz * (+188)
23:27:27 <esolangs> [[Special:Log/move]] move * Waffelz * moved [[BFasm]] to [[BFASM]]: Misspelled title
23:27:27 <esolangs> [[Special:Log/move]] move * Waffelz * moved [[Talk:BFasm]] to [[Talk:BFASM]]: Misspelled title
00:05:18 <esolangs> [[Special:Log/upload]] upload * Waffelz * uploaded "[[File:BFASM memory diagram.png]]": A visual representation of the tape after compiling a BFASM program to brainfuck.
00:24:57 -!- amby has 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).
00:33:25 <esolangs> [[C*]] M https://esolangs.org/w/index.php?diff=166194&oldid=165973 * H33T33 * (-24)
00:56:36 <esolangs> [[BFASM]] https://esolangs.org/w/index.php?diff=166195&oldid=166189 * Waffelz * (+10075)
01:01:00 <esolangs> [[User:Waffelz]] https://esolangs.org/w/index.php?diff=166196&oldid=166182 * Waffelz * (+38)
01:01:34 <esolangs> [[Asm2bf]] M https://esolangs.org/w/index.php?diff=166197&oldid=162896 * Waffelz * (+0)
01:07:11 <esolangs> [[BFASM]] M https://esolangs.org/w/index.php?diff=166198&oldid=166195 * Waffelz * (+40)
01:11:40 <esolangs> [[R0q/Commands]] https://esolangs.org/w/index.php?diff=166199&oldid=162759 * WarzokERNST135 * (-420) Replaced content with "please delete this page with [[r0q]]"
01:11:43 <esolangs> [[R0q]] https://esolangs.org/w/index.php?diff=166200&oldid=162761 * WarzokERNST135 * (-222)
01:11:46 <esolangs> [[User:WarzokERNST135]] https://esolangs.org/w/index.php?diff=166201&oldid=165113 * WarzokERNST135 * (-24)
01:14:53 <esolangs> [[User:PJ11]] https://esolangs.org/w/index.php?diff=166202&oldid=162649 * WarzokERNST135 * (+30)
06:20:29 -!- Sgeo has quit (Read error: Connection reset by peer).
07:11:56 -!- tromp has joined.
08:57:16 <esolangs> [[]] N https://esolangs.org/w/index.php?oldid=166203 * PrySigneToFry * (+3292) Created page with " is the Chinese version of [[I fuck, you fuck]], and is designed by PSTF. == Commands == === Variable Definition === <pre> X </pre> Define and initialize X. Any variable is assigned a value of 0 at the beginning. === Increment and Decrement === <pre> X </pre> Set X
09:21:28 <esolangs> [[Fun Video Game]] https://esolangs.org/w/index.php?diff=166204&oldid=165972 * PrySigneToFry * (+515)
10:44:11 <esolangs> [[DerpScrp]] https://esolangs.org/w/index.php?diff=166205&oldid=68234 * Kaveh Yousefi * (+687) Supplemented two example programs, added a hyperlink to my implementation on GitHub, and altered the Unimplemented page category tag to Implemented.
10:46:24 <esolangs> [[DerpScrp]] M https://esolangs.org/w/index.php?diff=166206&oldid=166205 * Kaveh Yousefi * (+1) Supplemented a missing ecphoneme ! in the description of an example program.
11:30:24 <esolangs> [[WY-Anglis]] N https://esolangs.org/w/index.php?oldid=166207 * PrySigneToFry * (+5704) Created page with "WY-Anglis is designed by PSTF, is the Englishized version of wenyan. == Code Sample == All the commands are equivalent to Wenyan, and now I don't want to write them. If you can program in Wenyan and LOLCODE, you can also program in WY-Anglis. === Hello, world!
11:32:29 <esolangs> [[Language list]] https://esolangs.org/w/index.php?diff=166208&oldid=166173 * PrySigneToFry * (+13)
11:36:25 -!- Lord_of_Life_ has joined.
11:36:58 -!- Lord_of_Life has quit (Ping timeout: 248 seconds).
11:37:44 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
11:43:24 <esolangs> [[Vesob]] N https://esolangs.org/w/index.php?oldid=166209 * Ivava * (+1855) Created page with "{{Stub}} {{WIP}} {{infobox proglang |name=Vesob |year=2025 |author=[[User:Ivava]] |refimpl=Python }} '''Vesob''' is easy minimalistic character by character esoteric programming language for some popular examples and output, if else.<br>Vesob helps in IP things with som
11:46:46 <esolangs> [[User:Ivava]] https://esolangs.org/w/index.php?diff=166210&oldid=166170 * Ivava * (+14) /* Esolangs list */
11:53:16 <esolangs> [[Vesob]] https://esolangs.org/w/index.php?diff=166211&oldid=166209 * Ivava * (+89) /* Commands */
11:54:55 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
12:46:30 -!- amby has joined.
13:00:45 <esolangs> [[User:PrySigneToFry/Sandbox/My Rate to the user that I know]] https://esolangs.org/w/index.php?diff=166212&oldid=165771 * PrySigneToFry * (+423)
13:08:05 <esolangs> [[DerpScrp]] M https://esolangs.org/w/index.php?diff=166213&oldid=166206 * Kaveh Yousefi * (+0) Improved the formatting of a code segment.
13:10:02 -!- tromp has joined.
13:31:39 <esolangs> [[Special:Log/newusers]] create * Intiha * New user account
14:16:21 -!- simcop2387 has quit (Read error: Connection reset by peer).
14:16:22 -!- perlbot has quit (Read error: Connection reset by peer).
14:17:45 -!- perlbot has joined.
14:19:49 -!- simcop2387 has joined.
14:33:02 <esolangs> [['Python' is not recognized]] M https://esolangs.org/w/index.php?diff=166214&oldid=164539 * Ractangle * (-31) /* Syntax */
14:39:52 <esolangs> [[Blainbuk]] M https://esolangs.org/w/index.php?diff=166215&oldid=151103 * Ractangle * (+0) /* Commands */ "chat input" lol
14:54:10 -!- ais523 has joined.
15:49:41 -!- FreeFull has joined.
16:16:13 <esolangs> [[User:RocketRace]] https://esolangs.org/w/index.php?diff=166216&oldid=166076 * RocketRace * (-45)
16:17:49 <esolangs> [[Important lesbian virtual machine]] https://esolangs.org/w/index.php?diff=166217&oldid=166079 * RocketRace * (+35)
16:30:28 <esolangs> [[Important lesbian virtual machine]] M https://esolangs.org/w/index.php?diff=166218&oldid=166217 * RocketRace * (+0) typo
16:52:04 -!- Everything has joined.
17:25:49 <esolangs> [[Vesob]] https://esolangs.org/w/index.php?diff=166219&oldid=166211 * Ivava * (+550)
17:39:14 -!- somelauw has joined.
17:39:56 <somelauw> I'm thinking about some language ideas
17:41:34 <somelauw> I like stack based languages but noticed that comparison operators like > and != drop the items compared. Would it perhaps make sense to leave them on the stack, so you don't need to duplicate them?
17:46:52 -!- Sgeo has joined.
17:55:16 <ais523> maybe it makes sense to drop the top item but not the bottom one
17:55:29 <ais523> because you're often comparing to a constant
17:56:06 <ais523> thinking about it, variable-based languages also drop on comparison (if I do a>b I have to write the names of a and b again if I want to use them again)
17:57:09 <ais523> x86-64 SIMD programming is interesting because although it has traditional comparison operators, it also has min/max and those are normally more useful
17:58:01 <somelauw> True, x > 0 ... (and now i probably want to just drop 0)
17:59:42 <ais523> actually it's interesting to think about why you're comparing, especially when using an array paradigm rather than imperative paradigm
17:59:59 <ais523> is it for control flow? or are you trying to do a filter?
18:00:19 <ais523> in imperative languages the two operations are the same but the "correct" way to implement them is very different in machine code
18:01:43 <somelauw> I was thinking mostly about flow control. I haven't thought about filtering yet
18:03:43 <esolangs> [[Vesob]] https://esolangs.org/w/index.php?diff=166220&oldid=166219 * Ivava * (+2498)
18:04:24 <esolangs> [[Vesob]] https://esolangs.org/w/index.php?diff=166221&oldid=166220 * Ivava * (+3)
18:10:43 -!- somelauw has quit (Remote host closed the connection).
18:12:05 -!- somelauw has joined.
18:12:09 -!- somelauw has changed hostmask to ~somelauw@user/somelauw.
18:13:09 <korvo> somelauw: Think of stack operators as generalizations of functions. A comparison function might take two arguments and return one argument. The rest of the stack is just along for the ride.
18:14:58 <esolangs> [[Vesob]] https://esolangs.org/w/index.php?diff=166222&oldid=166221 * Ivava * (+43)
18:15:24 <korvo> Also, because we have words like dup, it's easy to mistakenly think that every value is copyable. But that's not always the case! Plenty of low-level languages like Factor can have resources on the stack which shouldn't be dup'ed.
18:17:59 <somelauw> well in that view, dup would be an operator to somewhat explicitly pass a parameter to functioo
18:18:27 <korvo> Yeah! Have you seen quotations, as in Factor or Joy?
18:18:34 <somelauw> I would expect everything to be more or less dupable/copyable indeed
18:20:16 <korvo> somelauw: You might get a kick out of a classic H. Baker paper about copying stacks: https://plover.com/~mjd/misc/hbaker-archive/ForthStack.html
18:20:49 <korvo> That one is usually paired with another paper about Lisp which you can skip: https://plover.com/~mjd/misc/hbaker-archive/LinearLisp.html
18:21:55 <esolangs> [[Vesob]] https://esolangs.org/w/index.php?diff=166223&oldid=166222 * Ivava * (+100)
18:22:34 <somelauw> i'm more familiar with forth, factor than joy
18:25:45 <korvo> somelauw: Anyway, there *is* an answer to your initial question. Let's say that a Forth implementation is either "push/enter" or "eval/apply". In a push/enter Forth, we call functions by passing the entire stack; the function is responsible for popping stuff from the stack. In an eval/apply Forth, we call functions by asking the function for its arity, popping the stack ourselves, and invoking the function as a native call.
18:25:59 <korvo> It turns out that eval/apply is faster for real-world languages: https://simonmar.github.io/bib/papers/eval-apply.pdf
18:26:53 <korvo> So if we have a native comparison operation like > and we are doing eval/apply then we will call > by popping the stack twice, doing a native call of > using registers and leaving the result in a register, and finally pushing the result back to the stack.
18:27:30 <korvo> Top-of-stack optimizations apply here; if we have a unary call and top-of-stack register then we only have to swizzle registers before and after the native call.
18:28:25 <korvo> I guess I shouldn't say "real-world". I mean "higher-order"; I mean languages with quotations.
18:28:32 <esolangs> [[Vesob]] https://esolangs.org/w/index.php?diff=166224&oldid=166223 * Ivava * (+15)
18:40:13 -!- somelauw has quit (Ping timeout: 264 seconds).
18:40:51 -!- somelauw has joined.
18:46:05 <somelauw> i would expect an optimizer to inline both push/enter and eval/apply anyway
18:54:56 -!- somelauw has quit (Remote host closed the connection).
18:59:49 <korvo> Ah, they don't understand yet. That's fine; there's no rush.
19:03:20 -!- somelauw has joined.
19:03:20 -!- somelauw has changed hostmask to ~somelauw@user/somelauw.
19:06:30 <korvo> somelauw: A Sufficiently Smart Compiler could inline both when doing whole-program compilation, yes. But note that the typical Forth is incrementally compiled, and also that it's usually threaded; threaded Forths must be push/enter in order to let user-defined words have variable arity.
19:06:35 -!- myname has quit (Quit: WeeChat 4.7.0).
19:07:12 <korvo> What the Simons showed is that eval/apply is preferable when doing whole-program compilation, given that the compiler might not know the arity of all words at compile time.
19:07:33 <korvo> Unrelated: Anybody else reading the most recent Smalltalk-on-filesystem paper? https://programmingmadecomplicated.wordpress.com/wp-content/uploads/2025/10/onward25-jakubovic.pdf
19:15:16 -!- Riviera has joined.
19:26:22 <b_jonas> somelauw: I'll have to check Comun, I think it might have an optimization where some operations have a variant that keeps the bottom argument on the stack, but you access it through peephole optimization instead of a named primitive
19:27:59 <esolangs> [[Special:Log/newusers]] create * Esolangist * New user account
19:30:53 <korvo> I don't have it documented for Cammy, but operations in the stack machine are "term" if they only operate on top of stack. Cammy's tuples are packed, so dup is term; overall 33 ops are term and 19 are not. Arithmetic, comparisons, case analysis, floating-point are all term. The idea is that an op is term iff there's an efficient machine op capturing it; term ops are what the low-level machine does.
19:31:11 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=166225&oldid=166166 * Esolangist * (+197) /* Introductions */
19:31:36 <korvo> This isn't compatible with the standard unpacked untyped view of memory in Forth though.
19:31:45 <esolangs> [[Language list]] M https://esolangs.org/w/index.php?diff=166226&oldid=166208 * Ractangle * (+11) /* Non-alphabetic */
19:33:05 <b_jonas> eek, I still can't read Comun's source code. it's written in a style that's somehow transparent and opaque at the same time
19:38:17 <ais523> I feel like there's something significantly different between "x inputs, y outputs" stack-based systems, and Underload's where the amount of stack consumed can be condiional and it's reasonabe to do things like storing lists splatted on the stack
19:38:55 <ais523> I guess this is, in a sense, the same "unbalanced loop" phenomenon as in BF – Underload lets you write a loop that changes the stack height at every iteration
19:40:35 <korvo> ais523: In Cammy's case, it's an explicit papering-over of what the CAM can do. The CAM can do things like unwind a packed list onto the stack or pop the stack until a sentinel is reached; it's only like five opcodes maybe. But Cammy can't express either of those things; indeed Cammy can't actually access CAM's stack.
19:42:03 <korvo> But that's rather because I *wanted* that separation of concerns, for speed; optimizing a sequence of term ops is straightforward and RPython's JIT emits really tight code in those situations. It would usually hurt speed to let the user interrupt that with an expensive list-unpacking loop.
19:42:20 <ais523> now I'm thinking about Mini-Flak, which is powered by two stacks but one of them has stack height which is lexically tied to the nesting level of the programming source (i.e. push and pop instructions have to nest correctly as though they were brackets, and this nesting has to be consistent with the control flow instructions too)
19:42:27 <ais523> this would be sub-TC if not for the fact that it has bignums
19:43:11 <ais523> right, having a restrictive programming language is good for optimisation purposes
19:43:42 <ais523> I am hoping that my next "big" programming project will be a language which I try to restrict as much as possible while still making it practically useful, in order to enable very powerful optimisations
19:44:14 <ais523> except not pure-functional as that's been done already
19:45:46 <b_jonas> I'm not entirely sure, but I think Comun doesn't have the optimization that I mentioned, but in any case, a forth-like stack interpreter could have something like this
19:45:48 -!- somelauw has quit (Remote host closed the connection).
19:46:28 <ais523> (by programming project I mean programming language project, not programming in general)
19:50:49 <b_jonas> ais523: I was actually vaguely thinking about a retro programming language that pretends to be a hypothetical low memory (early 2000s) programmable calculator, where the programs are written in a stack language of the kind that allows functions that push or pop a variable amount, but the calculator interface can dynamically translate the program to one of those BASIC-like languages with infix
19:50:55 <b_jonas> operations, and where the program isn't easy to translate to that it would put PUSH statements or POP functions into the BASIC
19:51:46 <ais523> in a way I'm sad that there's rarely any reason to do extreme memory-saving programming nowadays
19:52:16 <ais523> I suspect even microcontrollers have more RAM than they used to – the ones I worked with had approximately 100 bytes of memory but I suspect modern ones have a lot more
19:52:20 <esolangs> [[User talk:/w/wiki/index.php/Talk:index.php/Main page]] https://esolangs.org/w/index.php?diff=166227&oldid=163224 * Esolangist * (+461) added commands yay
19:52:32 <ais523> 100 bytes of RAM, that is, they had a few kilobyte of EEPROM
19:52:42 <b_jonas> by the way, something like that exists, it's called S-lang, it's a macro language that pretends to have a normal infix syntax but can also do variable pushes or pops
19:53:07 <b_jonas> ais523: I'm thinking of 2048 bytes of RAM because that's what my programmable calculator has
20:12:51 <fizzie> I think they still make "small" (in the 64-256 bytes) RAM microcontrollers too, like the venerable PIC family ones. But it's also definitely easy to find ones with orders of magnitude more, too.
20:13:34 <fizzie> The RP2040 has 264 kB of RAM, for example.
20:14:57 <fizzie> And the new one they made for Pico 2, the RP2350, it's apparently got about double that (520 kB).
20:15:19 -!- somelauw has joined.
20:19:08 <ais523> I'm saddened to realise that most modern programmers would have no idea how to fit a program's memory usage into 520 kB
20:19:57 <ais523> our typical tools for programming don't make that very easy – lots of heavy libraries and dependencies
20:21:13 <zzo38> Many programs can use much less than that. But, I think you are right unfortunately many modern programmers (although not all) use too many dependencies and use too much memory and other stuff.
20:22:28 <zzo38> The MESH:Hero game engine uses an internal RPN code (which is saved to disk in binary format) but when editing, it is converted to infix notation. However, as far as I know, there is no PUSH and POP in the source format.
20:24:14 <zzo38> I think many programmable calculators (like you mention) do too; I have TI-92 and I have managd to confuse it with the use of an undocumented error code which seems to be used internally when you push ON to stop a user program that is currently running.
20:36:55 <korvo> Depends on how much time I'm given. I was eager to write BASIC on a TI-84, but only in high school when there wasn't anything else to do.
20:40:11 -!- Everything has quit (Quit: leaving).
20:47:34 -!- somelauw has quit (Remote host closed the connection).
20:50:20 <esolangs> [[Special:Log/newusers]] create * Mouse * New user account
20:56:28 <esolangs> [[Dt]] https://esolangs.org/w/index.php?diff=166228&oldid=163446 * C++DSUCKER * (+64)
21:02:34 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=166229&oldid=166225 * Mouse * (+80) /* Introductions */
21:03:27 <b_jonas> ais523: that's why I'm sometimes thinking of how I can optimize an interpreter of a high-level language such that you can spawn many interpreters and each one consumes very little memory other than read-only memory that can be safely shared between interpreters and processes
21:04:47 <b_jonas> it can be hard because even a fresh interpreter will have a lot of built-in objects (eg. built-in types and functions) that some programs can modify, but you have to encode them in such a way that you can store modifications but you don't need a huge read-write table in the common case when there are no or very few modifications
21:05:08 <b_jonas> and there's of course a tradeoff between this and the speed of operations
21:05:42 <esolangs> [[Esolang:Introduce yourself]] M https://esolangs.org/w/index.php?diff=166230&oldid=166229 * Mouse * (+76) /* Introductions */
21:05:46 <b_jonas> so this is hard especially for existing languages like javascript or python or ruby that allow such modifications
21:06:38 <b_jonas> easier for a new language that you design specifically for this
21:07:37 <ais523> b_jonas: I'm wondering how that would work in terms of how it's seen by the kernel – are the high-level interpreters coroutines in a single thread, threads in a single process, or separate processes?
21:08:55 <b_jonas> ais523: that's an open question, but I think that doesn't much influence what I want to optimize
21:15:51 <b_jonas> most likely a combination where there can be more than one process, but also a process can have multiple interpreters
21:17:08 <b_jonas> and the shared content is either linked into the executable or mmapped from some read-only files
21:28:44 <sprout> ah, we just had a similar discussion
21:29:00 <korvo> And y'all aren't talking about the Smalltix paper, right?
21:30:19 <sprout> coroutines can be implemented in various manners, and even the definition of a coroutine can be stretched to something along a light-weight tread
21:30:39 <korvo> Like, a Nix store would be an example of that sort of "read-only memory" if we're thinking of files as objects rather than inert; an immutable object could be compiled to bytes which are content-addressed in the Nix store rather than ambient in the local environment. Indeed, this is basically how Monte uses Nix as a package manager!
21:55:35 <FireFly> oh, found it in the scrollback
22:03:47 <esolangs> [[Smoothbrain]] M https://esolangs.org/w/index.php?diff=166231&oldid=166047 * Ashli Katt * (+9) /* Program */ Add "However," to make the paragraph flow smoother
22:08:11 <korvo> Yeah. I'm at Section 11, thinking about performance. The real issue is something not mentioned in the paper: context switches and non-VDSO syscalls.
22:10:30 <b_jonas> korbo: my problem is mutable objects, in a language that has lots of mutable objects.
22:11:51 -!- ais523 has quit (Quit: quit).
22:15:36 <korvo> b_jonas: Right. And similarly I know that modern Smalltalks do *not* have perfectly serialized transactions for every invocation. Something has to give; we can only sync a disk like 20 to 100 times per second.
22:19:56 <korvo> One possible abstraction is array-style parallel programming. It's usually safe to interrupt programs like sed or jq midway through some data, for example. This would require the `bind` script to clean up after each process, which is plausible.
22:20:40 <korvo> They mention FUSE but I'm thinking more about tmpfs. The kernel's directory-management logic is not too bad, given that we usually want to contend on multiple resources at once.
22:21:45 <korvo> Maybe asynchrony is the main feature here. This setup naturally gets concurrency as long as the kernel is correct. In that sense it's not too different from systems like Scala's Akka where each actor is too large to transparently migrate but its underlying storage can be persistent.
23:59:25 -!- Sgeo has quit (Ping timeout: 250 seconds).
00:17:37 -!- Sgeo has joined.
00:21:43 -!- Sgeo has quit (Ping timeout: 240 seconds).
00:51:07 -!- Sgeo has joined.
01:26:05 -!- Sgeo has quit (Read error: Connection reset by peer).
01:26:13 -!- Sgeo_ has joined.
01:28:20 -!- amby has 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).
01:59:53 <esolangs> [[WY-Anglis]] https://esolangs.org/w/index.php?diff=166232&oldid=166207 * PrySigneToFry * (+2481)
02:01:07 <esolangs> [[WY-Anglis]] https://esolangs.org/w/index.php?diff=166233&oldid=166232 * PrySigneToFry * (+20)
02:05:02 -!- op_4 has quit (Remote host closed the connection).
02:05:37 -!- op_4 has joined.
02:27:24 <esolangs> [[Special:Log/newusers]] create * ERN468 * New user account
02:32:48 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=166234&oldid=166230 * ERN468 * (+226) I added my introduction
02:34:50 <esolangs> [[EA Script, It's in the code.]] https://esolangs.org/w/index.php?diff=166235&oldid=151304 * ERN468 * (+4) Add reference to APLWSI page
04:09:03 -!- FreeFull has quit.
05:44:36 -!- myname has joined.
06:01:56 <esolangs> [[Non-Loop FizzBuzz]] N https://esolangs.org/w/index.php?oldid=166236 * TheSpiderNinjas * (+529) Created page with "'''Non-Loop FizzBuzz''' is like [[FizzBuzz]] but instead of doing a range of number you indefinitely ask the user for input and then print the FizzBuzz number. == Example == === Code: === <pre> while True: i = int(input("Enter a number: ")) if i %
06:18:00 <esolangs> [[Special:Log/newusers]] create * JTO IS JUMP TO * New user account
06:39:56 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=166237&oldid=166234 * Intiha * (+193)
06:42:00 <esolangs> [[User:Intiha]] N https://esolangs.org/w/index.php?oldid=166238 * Intiha * (+539) Created page with "About Me: Hi! Im Intiha. Im fascinated by esoteric programming languages and love experimenting with weird and creative language concepts. I enjoy making new languages, forks, and exploring programming challenges just for fun. Projects / Interests: Creating new esol
06:42:34 <esolangs> [[ThingLangOOP]] N https://esolangs.org/w/index.php?oldid=166239 * Intiha * (+1518) Created page with "## Overview ThingLangOOP is a minimal C implementation inspired by ThingLang, which was made by [[User:Rasa8877]]. It combines a compiler and runner in a single file, fully compatible with TCC. Supports variable assignment, printing, loops, events, and comments. #
06:42:55 <esolangs> [[ThingLangOOP]] https://esolangs.org/w/index.php?diff=166240&oldid=166239 * Intiha * (-1)
06:45:59 <esolangs> [[ThingLangOOP]] https://esolangs.org/w/index.php?diff=166241&oldid=166240 * Intiha * (+56)
06:46:51 <esolangs> [[ThingLangOOP]] https://esolangs.org/w/index.php?diff=166242&oldid=166241 * Intiha * (+10)
06:51:21 <esolangs> [[ThingLangOOP]] https://esolangs.org/w/index.php?diff=166243&oldid=166242 * Intiha * (+7874)
06:51:56 <esolangs> [[ThingLangOOP]] https://esolangs.org/w/index.php?diff=166244&oldid=166243 * Intiha * (-2)
06:52:28 <esolangs> [[ThingLangOOP]] https://esolangs.org/w/index.php?diff=166245&oldid=166244 * Intiha * (+3)
06:56:01 <esolangs> [[ThingLangOOP]] https://esolangs.org/w/index.php?diff=166246&oldid=166245 * Intiha * (-7810)
06:57:24 <esolangs> [[ThingLangOOP]] https://esolangs.org/w/index.php?diff=166247&oldid=166246 * Intiha * (+16)
07:11:49 <esolangs> [[User talk:Rasa8877]] https://esolangs.org/w/index.php?diff=166248&oldid=164628 * Intiha * (+241)
07:12:51 <esolangs> [[ThingLangOOP]] https://esolangs.org/w/index.php?diff=166249&oldid=166247 * Intiha * (+0)
07:14:19 <esolangs> [[ThingLangOOP]] https://esolangs.org/w/index.php?diff=166250&oldid=166249 * Intiha * (-7)
07:36:49 <esolangs> [[User:Intiha]] https://esolangs.org/w/index.php?diff=166251&oldid=166238 * Intiha * (+28)
07:37:08 <esolangs> [[User:Intiha]] https://esolangs.org/w/index.php?diff=166252&oldid=166251 * Intiha * (+22)
07:37:40 <esolangs> [[User:Intiha]] https://esolangs.org/w/index.php?diff=166253&oldid=166252 * Intiha * (+4)
07:38:02 <esolangs> [[User:Intiha]] https://esolangs.org/w/index.php?diff=166254&oldid=166253 * Intiha * (-22)
07:39:18 <esolangs> [[Language list]] https://esolangs.org/w/index.php?diff=166255&oldid=166226 * Intiha * (+45)
07:45:56 <esolangs> [[Non-Loop FizzBuzz]] https://esolangs.org/w/index.php?diff=166256&oldid=166236 * PrySigneToFry * (+879)
07:47:20 <esolangs> [[Yes/No]] N https://esolangs.org/w/index.php?oldid=166257 * Intiha * (+2948) Created page with "=== Overview === Yes/No is a minimalistic esolang made by [[User:Intiha]] where every program consists solely of the words **Yes** and **No**. Programs are sequences of these words, and their meaning is derived from binary patterns. ==== Basics ==== * `Yes` = 1 * `No` =
07:47:46 <esolangs> [[Non-Loop FizzBuzz]] https://esolangs.org/w/index.php?diff=166258&oldid=166256 * PrySigneToFry * (+59)
07:50:17 <esolangs> [[Yes/No]] https://esolangs.org/w/index.php?diff=166259&oldid=166257 * Intiha * (-931)
07:50:51 <esolangs> [[Yes/No]] https://esolangs.org/w/index.php?diff=166260&oldid=166259 * Intiha * (-31)
07:51:06 <esolangs> [[Yes/No]] https://esolangs.org/w/index.php?diff=166261&oldid=166260 * Intiha * (+1)
07:53:13 <esolangs> [[User:Intiha]] https://esolangs.org/w/index.php?diff=166262&oldid=166254 * Intiha * (-220)
07:53:41 <esolangs> [[User:Intiha]] https://esolangs.org/w/index.php?diff=166263&oldid=166262 * Intiha * (+2)
08:03:42 <esolangs> [[Yes/No]] https://esolangs.org/w/index.php?diff=166264&oldid=166261 * Intiha * (+9165)
08:04:14 <esolangs> [[Yes/No]] https://esolangs.org/w/index.php?diff=166265&oldid=166264 * Intiha * (+1)
08:04:50 <esolangs> [[Yes/No]] https://esolangs.org/w/index.php?diff=166266&oldid=166265 * Intiha * (-8) /* Hello world! */
08:06:53 <esolangs> [[Yes/No]] https://esolangs.org/w/index.php?diff=166267&oldid=166266 * Intiha * (+384)
08:09:22 <esolangs> [[Yes/No]] https://esolangs.org/w/index.php?diff=166268&oldid=166267 * Intiha * (-75)
08:23:03 <b_jonas> might be of interest to esolangs: https://www.righto.com/2025/10/solve-nyt-pips-with-constraints.html "Solving the NYTimes Pips puzzle with a constraint solver" blog entry by Ken Shirriff
08:24:40 <b_jonas> Ken Shirriff introduces himself to the world of finite domain constraint problems
08:30:05 <esolangs> [[Yes/No]] https://esolangs.org/w/index.php?diff=166269&oldid=166268 * Intiha * (+110)
08:32:47 <esolangs> [[Yes/No]] https://esolangs.org/w/index.php?diff=166270&oldid=166269 * Intiha * (+198) /* Python Interpreter */
08:42:04 <esolangs> [[Language list]] https://esolangs.org/w/index.php?diff=166271&oldid=166255 * Intiha * (+25) /* Y */
09:38:32 <esolangs> [[Yes/No]] M https://esolangs.org/w/index.php?diff=166272&oldid=166270 * Intiha * (+81)
09:42:11 <esolangs> [[ThingLangOOP]] https://esolangs.org/w/index.php?diff=166273&oldid=166250 * Intiha * (-1)
10:00:36 <esolangs> [[Talk:Yes/No]] N https://esolangs.org/w/index.php?oldid=166274 * Intiha * (+220) Created page with "Hello! this is the talk page for Yes/No feel free to say anything here, except hate speech, politics and the racism/sexist stuff == this is where you say stuff == (EXAMPLE: ```{Your Name}: Hello, World!``` and the time)"
10:02:03 <esolangs> [[Language list]] https://esolangs.org/w/index.php?diff=166275&oldid=166271 * Intiha * (-25) /* Y */
10:03:05 <esolangs> [[Language list]] https://esolangs.org/w/index.php?diff=166276&oldid=166275 * Intiha * (+25) /* Non-alphabetic */
10:15:01 -!- Sgeo_ has quit (Read error: Connection reset by peer).
10:26:56 <esolangs> [[Language list]] M https://esolangs.org/w/index.php?diff=166277&oldid=166276 * Ractangle * (-54) fixed the non-alphabeting list
10:41:22 <esolangs> [[ALMFCPLIR]] M https://esolangs.org/w/index.php?diff=166278&oldid=161715 * Ractangle * (-9)
10:51:00 -!- amby has joined.
11:02:24 <esolangs> [[Talk:Yes/No]] https://esolangs.org/w/index.php?diff=166279&oldid=166274 * Intiha * (-8)
11:12:52 <esolangs> [[User talk:/w/wiki/index.php/Talk:index.php/Main page]] M https://esolangs.org/w/index.php?diff=166280&oldid=166227 * Esolangist * (+109)
11:15:57 <esolangs> [[User:Esolangist]] N https://esolangs.org/w/index.php?oldid=166281 * Esolangist * (+66) Created page with "Hello there! I will plan to make many esolangs. Goodbye (for now)"
11:36:07 -!- Lord_of_Life_ has joined.
11:36:58 -!- Lord_of_Life has quit (Ping timeout: 248 seconds).
11:37:27 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
11:45:29 <esolangs> [[Alphacode]] N https://esolangs.org/w/index.php?oldid=166282 * Esolangist * (+1183) Created page with "Alphacode is an esolang made by [[User:Esolangist]]. It is based on the alphabet. == Commands == <code> a [object] -- pushes [object] on the stack b [label] -- a label. can be used for comments or as a forever loop c [label] -- jumps to b [label] d -- pops the t
12:06:49 <esolangs> [[Dt]] https://esolangs.org/w/index.php?diff=166283&oldid=166228 * C++DSUCKER * (+283)
12:14:58 <esolangs> [[User:Ivava]] https://esolangs.org/w/index.php?diff=166284&oldid=166210 * Ivava * (+241)
12:19:12 <esolangs> [[User:Ivava]] https://esolangs.org/w/index.php?diff=166285&oldid=166284 * Ivava * (+159)
12:20:25 <esolangs> [[User:Ivava]] https://esolangs.org/w/index.php?diff=166286&oldid=166285 * Ivava * (+4) /* ideas from me */
13:54:48 <esolangs> [[User talk:/w/wiki/index.php/Talk:index.php/Main page]] https://esolangs.org/w/index.php?diff=166287&oldid=166280 * PrySigneToFry * (+766)
16:16:12 -!- FreeFull has joined.
16:24:35 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=166288&oldid=166237 * Ais523 * (-17441) clear down to 1 month of introductions
16:26:09 <esolangs> [[Esolang:Introduce yourself/Archive (02-07-2025 to 19-09-2025)]] N https://esolangs.org/w/index.php?oldid=166289 * Ais523 * (+17514) archive I'm not sure why we're archiving the anti-spam feature, but given that there are existing archives we may as well continue for the time being
16:27:27 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=166290&oldid=166288 * Ais523 * (+126) archive link do we actually need these on the page?
17:20:29 <esolangs> [[Special:Log/newusers]] create * Calvizx * New user account
17:53:02 -!- Sgeo has joined.
18:01:57 -!- ais523 has joined.
18:31:34 <esolangs> [[User:Ivava]] https://esolangs.org/w/index.php?diff=166291&oldid=166286 * Ivava * (+844) /*A little ABSOLUTELY USELESS text about me */
18:35:49 <b_jonas> so Wube managed to hide two esoteric domain-specific sublanguages in Factorio 2. one is Factorio 2 combinators, which are much more powerful than (and a strict superset of) Factorio 1.1 combinators. the other is much more obscure, the engine has a way to evaluate certain expressions on 32-bit integers, which is exposed in several places where the game has a numeric input field. usually you can only use
18:35:55 <b_jonas> integer literals (decimal or hexadecimal) and a particularly annoying set of ten operators. but in parametrized blueprints, you can in addition use named variables that you can repeat multiple times, and you can make a list of statements that assign the value of an expression to a named variable, the statements are executed once in order, you can then use the results in several places where the
18:36:01 <b_jonas> parameter of an entity in the blueprint needs a number.
18:39:47 <b_jonas> the language reminds me to blindfolded arithmetic in that you can technically write conditionals but they make it very annoying. the ten operators are: addition (modulo 2**32), subtraction (modulo 2**32), multiplication (modulo 2**32), truncating division (on signed 32-bit integers), exponentiation (I haven't experimented with how this works), abs (on signed 32-bit input with output modulo 2**32), log2
18:39:53 <b_jonas> (position of highest bit for positive integers, I'm not sure what it does for negative inputs), max, min.
18:41:32 <b_jonas> https://lua-api.factorio.com/latest/concepts/MathExpression.html gives a partial documentation but doesn't tell the full syntax, eg. I don't think you can guess from that page that "944(376)" is a formula that multiplies 944 with 376, equivalent to "944*376", you probably have to experiment with the game or reverse engineer the executable to find all the rules.
18:43:50 <b_jonas> the expression evaluator function, together with variables, is exposed in the lua API, so you can at least test it automatically quickly without having to enter formulas in a GUI numeric field
18:45:28 <b_jonas> drat, I'll eventually have to writes some notes down about Factorio in a wiki article, don't I?
18:54:57 <b_jonas> anyway, of course these aren't the only two esoteric languages in Factorio, there's all sort of emergent programmable subsets that come up when you want to build with constraints, these two are just clearly designed in
18:57:05 <b_jonas> sorry, I forgot the last built-in operator in the expression evaluator language: sign, which returns -1 or 0 or 1 according to the sign of its input
18:59:24 <b_jonas> I think it's even worse than I thought, apparently the intermediates in expressions aren't even 32-bit integers, because 1/2 results in 0 but (1/2)+(1/2) results in 1
19:00:19 <b_jonas> so the division isn't even an integer truncating division
19:01:52 <b_jonas> "510000000000/1e10" results in 51
19:02:40 -!- FreeFull has quit (Quit: Lost terminal).
19:02:55 <b_jonas> "510000000000/100000" results in 5100000
19:03:31 <ais523> b_jonas: theory: they're double-precision floats but converted to 32-bit integers for display
19:04:13 <int-e> dies 1e12 result in -727379968?
19:04:19 <b_jonas> ais523: not just for display, because the numbers can go into a circuit signal, and those are definitely 32-bit integers
19:04:19 -!- iovoid has quit (Excess Flood).
19:04:28 <ais523> or, well, for output purposes
19:05:14 <b_jonas> I'll have to test if the variables in parametrized blueprints can hold non-integers
19:06:24 -!- iovoid has joined.
19:06:38 <ais523> now I'm trying to figure out what conversion converts 1e12 to -727379968, it isn't any of the standard ones other than int64_t to int32_t but an int64_t can't store 0.5
19:07:37 <ais523> so maybe it's a two-step conversion? or maybe this is a "wrapping convert double to int32_t" operation but I don't think most languages provide those
19:08:57 <b_jonas> and the blueprint parameter intermediate named variables can store values that aren't 32-bit integers too
19:09:02 <ais523> b_jonas: what does it calculate 18014398509481987 - 18014398509481984 as?
19:09:36 <ais523> (on double-precision floats this is either 2 or 4 depending on rounding mode, on integers it's 3)
19:11:46 <ais523> OK, so doubles (also I think it's either 0 or 4 rather than either 2 or 4, I was out on the original numbers by a factor of 2)
19:12:07 <ais523> on single-precision floats you would almost certainly get 0
19:12:26 <ais523> (and the answer would be in the billions if using the one rounding mode where you don't)
19:14:58 <int-e> b_jonas: A fun detail is that they tried to change this behavior to clamping in 2.0.44 but ended up reverting it in 2.0.45: https://forums.factorio.com/128129
19:16:19 <int-e> (something I only know about because I watched one of Anti's speedrun attempts around that time)
19:16:44 <int-e> AntiElitz, not AntiPatience)
19:16:45 <ais523> oddly all this makes me less inclined to play Factorio (although I probably wouldn't have done so anyway) – for a game like that I sort-of want the TCness to be an emergent property of the way the game elements work rather than being a separate layer intended for programming
19:16:57 <ais523> (this is also one of the reasons I dislike shapez.io)
19:17:52 <int-e> you've said that before, and I still think that the game would likely be too hard to play for normal people then
19:18:07 <int-e> as an automation game at least
19:18:30 <ais523> anyway, it explains the weird rounding that b_jonas is seeing – it was probably changed from uint32_t to double internally, and then the result was manually wrapped to approximately preserve old behaviour
19:19:15 <ais523> int-e: it'd make for better YouTube videos, though, which might arguably be more important
19:19:50 <b_jonas> ais523: the numeric formula language doesn't even come up in normal play, that's why I hadn't been aware of any of these details until today even though one of the blog entries mentioned that they added the formula language. in particular, if you aren't using mods then this numeric formula language won't get evaluated automatically, only a finite few times when you do particular use interactions: build
19:19:56 <b_jonas> a parametrized blueprint that uses formulas, which I've never done before today, and Factorio 2 has been out since 2025-09, or enter a formula to a numeric field, or queue an infinite research (their cost as a function of their level is apparently defined in this language in the modding API)
19:20:47 <b_jonas> ais523: now your complaint might make sense if you are talking about the *combinator* language, which does get evaluated and is deliberately there for intermediate players to write very simple programs in, and of course some people write very complicated programs
19:21:02 <ais523> I guess being too hard for normal people to figure out on their own could even be a feature – you could set it up something like Celeste, whose game mechanics are all available from the start but you get taught them gradually over the course of the game
19:21:13 <b_jonas> and there are of course some much better reasons why not to play factorio (it's a very addictive infinite timesink)
19:21:46 <b_jonas> you only get the second dash in like the sixth chapter of Celeste but sure
19:22:04 <ais523> b_jonas: ah right, I wasn't thinking about that
19:22:42 <zzo38> Some games might have Turing completeness if the grid (and numeric values, if necessary in order to indicate grid positions) can have an unlimited size.
19:22:44 <b_jonas> maybe I'm not enough of an esoteric programmer, but I still don't think I'll use this formula language in practice in games, except in as much as it's evaluated every time I enter a literal number to an input box
19:22:47 <ais523> the funny thing is that some of them, the developers were initially unaware of, and got tutorials added for them when they saw speedrunners use htem
19:23:03 <int-e> b_jonas: hmm another fun thing to test could be 18446744075857035264 -- is that -2147483648 or maybe -1? (-1 is what you'd get from a clamping conversion to signed 64 bits followed by a modulo 2^32 reduction)
19:23:13 <ais523> (and levels designed around them)
19:23:23 <b_jonas> ais523: not just tutorials, but also a (bindable) shortcut key to do dash without holding down but then start crouching right afterwards
19:23:51 <ais523> b_jonas: that's the one known mechanic that's intentionally never required in the game
19:24:02 <ais523> but yes, the developers did add a keybinding feature to make it easier
19:25:07 <int-e> oh, a third option, fun
19:25:28 <int-e> and one that doesn't make immediate sense to me
19:25:46 <ais523> "if the number is outside the int64_t range, clamp to int32_t" is possible behaviour
19:26:00 <ais523> especially given that it was clamped to int32_t at some point in history
19:26:07 <int-e> I mean, it's clamping, but why is it clamping in this case when it reduces modulo 2^32 for smaller values...
19:26:14 <int-e> ais523: yeah, maybe
19:27:03 <int-e> or maybe it's not even the whole 64 bit range but some other cut-off
19:27:18 <b_jonas> int-e: some of the developers sometimes answer questions online, in the Factorio forums or on Discord, so if you really want to know you can try to ask them
19:27:47 <esolangs> [[Talk:Brain:D]] https://esolangs.org/w/index.php?diff=166292&oldid=114296 * Zzo38 * (+497)
19:28:06 <b_jonas> (and one of them streams Factorio development on twitch too)
19:28:27 <int-e> b_jonas: Yeah I'm not that desparately curious :-P
19:28:39 <int-e> (I don't even have the game.)
19:30:22 <esolangs> [[Talk:1 Bit, an eight byte]] N https://esolangs.org/w/index.php?oldid=166293 * TheBigH * (+195) created page
19:30:48 <b_jonas> int-e: I think the formula evaluation might be partly exposed in the free demo. not in a way where you can reach the lua api, but you might technically be able to input and evaluate expressions with literals only manually in the GUI.
19:31:07 <esolangs> [[Woosh]] N https://esolangs.org/w/index.php?oldid=166294 * Corbin * (+385) Stub for an independent invention of executables-as-methods.
19:32:24 <b_jonas> hmm… now I want to download a new version of the free demo and test how much is exposed about circuit wires or blueprints
19:34:15 <b_jonas> also technically the headless (no GUI) server that is free to download should expose the lua api
19:34:43 <b_jonas> but you might not be easily able to set that up without having a copy of the GUI, I don't know
19:35:28 <esolangs> [[Smalltix]] N https://esolangs.org/w/index.php?oldid=166295 * Corbin * (+710) Stub for a language that is probably going to eat my brain. I will explain the core concept in a separate page.
19:39:47 <korvo> I would like to propose that we get rid of [[Object-oriented paradigm]] on the basis that we also have [[Category:Object-oriented paradigm]]. Alternatively, I would like to propose that categories not have any prose in them. I don't want to have two different pages that both explain OOP.
19:44:26 <int-e> korvo: Well it's only one sentence on the category page, that's comparable to how it's done for "Computational class" and "Turing-complete".
19:46:21 <korvo> int-e: Yeah, but I wrote a big blurb at [[Category:Functional paradigm]] and now I'm wondering where that sort of blurb should go.
19:47:46 -!- somelauw has joined.
19:47:48 -!- somelauw has quit (Remote host closed the connection).
19:48:12 <int-e> Yeah based on this tiny sample I feel that it should be in the main namespace instead.
19:49:36 <b_jonas> korvo: the wiki search searches only the main namespace by default, so if we have interesting things to say about object-oriented programming then it's probably better to put them into the main namespace article. categories can have description not to explain what object-oriented programming is, but to explain what the category means and what we put in it, since that needn't be unambiguous from the
19:49:59 <korvo> int-e, b_jonas: Okay. I'll do it later; right now I need lunch. I appreciate the guidance.
19:50:34 <b_jonas> korvo: probably wait at least a short time in case ais523 or fizzie have feedback
19:52:49 -!- int-e has quit (Ping timeout: 264 seconds).
19:53:02 -!- int-e has joined.
19:55:00 <b_jonas> actually the release date is s/202[45]-09/2024-10-21/
20:01:15 <ais523> I think I prefer paradigm descriptions to be in the main namespace than on the category description page
20:01:29 <ais523> or, well, the category description page should be limited to saying what goes in the category, rather than explaining it
20:01:58 <ais523> it's also common on many wikis for the mainspace page that's about the same thing that the category is in to be placed into the category, but intentionally missorted
20:02:04 <ais523> so that it comes first
20:02:34 <ais523> people normally use a sort key of * for that, but on Esolang we may have to use ! (the alphabetically first sort key) because there are so many weirdly named pages
20:02:43 <b_jonas> oh, let's do that, that gives me more excuse to put non-languages into certain categories of mostly languages
20:03:54 <ais523> (the syntax is, e.g., [[Category:Functional paradigm|!]])
20:18:03 -!- FreeFull has joined.
20:33:26 <b_jonas> int-e: ok, so you can actually make circuit wires or parametrized blueprints in the demo, even from just the built-in tutorial. (if you load a save that you modified with the full game then you can do more, including launch a rocket or cheat in other ways.)
20:34:38 <b_jonas> get to the second level of the tutorial, use the alt+R hotkey to pull up the red circuit wire tool (this is exposed in settings->controls so you don't need the full game to guess), connect the preexisting burner inserter to a piece of belt, then you can set an enable circuit condition on the inserter or the belt, and if that includes a numeric constant, then you can make a blueprint of them and
20:35:04 <b_jonas> the demo basically includes all of the vanilla game, probably so that they can add any menu simulations in it.
20:35:43 <b_jonas> the built-in tutorial locks your research and doesn't give you oil and only a few specific oil products are on the map, so without loading a savefile that you can't create in the demo you can't progress very far,
20:35:54 <b_jonas> but the functionality is all there in the demo, it's just slightly locked away.
20:37:02 <b_jonas> even the graphics is there by the way
20:40:54 <b_jonas> I'm just saying this as a curiosity, not because I expect int-e to start playing with the demo, to be clear. don't play the demo unless you have no dependent children and lots of free time.
21:03:34 -!- Kokice has joined.
21:04:04 <Kokice> Is esolangs.org down for everyone or is it just me?
21:04:40 <ais523> Kokice: it's been slow today – probably another AI-bot attack
21:05:35 <ais523> 10-20 seconds of waiting usually seems to be enough to load pages atm
21:06:18 <int-e> I do yearn for the times when the wiki was responsive.
21:06:56 <Kokice> Odd, I'm getting "Connection reset by peer" instead of no response.
21:07:16 <esolangs> [[F calculus]] N https://esolangs.org/w/index.php?oldid=166296 * C++DSUCKER * (+1210) Created page with "F Calculus is a Combinatory logic system with as only combinator 'F' It was devised to see how simple a Combinator could be when it has to both access an oracle and do logic. it is also inspired by SE calculus == Description ==: <code>F i => if i has a beta norma
21:07:34 <esolangs> [[F calculus]] M https://esolangs.org/w/index.php?diff=166297&oldid=166296 * C++DSUCKER * (-1) Fix
21:12:38 <ais523> that means that something involved with the connection (other than your computer) reset it
21:12:41 <ais523> maybe your ISP gave up waiting?
21:12:42 <int-e> Hmm, I guess it's conceivable that some researcher on CARNet had an aggressive crawler and got the whole range block?
21:13:20 <int-e> *if* the problem is on the wiki end of things I mean.
21:13:28 <ais523> I've had good luck in the past trying again immediately after a connection-reset-to-peer (but I haven't seen that specific error in ages, so don't have recent experience)
21:13:39 <ais523> err, connection-reset-by-peer
21:13:57 <ais523> it's more commonly seen on IRC than it is on HTTP, although it can happen in both places
21:31:52 <esolangs> [[F calculus]] https://esolangs.org/w/index.php?diff=166298&oldid=166297 * C++DSUCKER * (+47)
21:33:00 -!- Kokice has quit (Quit: Client closed).
21:33:15 <esolangs> [[F calculus]] https://esolangs.org/w/index.php?diff=166299&oldid=166298 * C++DSUCKER * (+4)
21:33:53 <esolangs> [[F calculus]] M https://esolangs.org/w/index.php?diff=166300&oldid=166299 * C++DSUCKER * (+9)
21:34:18 <esolangs> [[F calculus]] https://esolangs.org/w/index.php?diff=166301&oldid=166300 * C++DSUCKER * (+4)
21:50:47 <fizzie> This scraping thing is just ridiculous.
21:51:34 <fizzie> Although it's dropped back down to "only" 80% CPU load (from being pegged at 100%) just 10 minutes ago, so maybe it's okayish again.
21:51:53 <ais523> unfortunately, I fear it isn't plausibly going to stop, even if there's no market for the scraped pages (which there probably won't be in a bit – the pages that require a lot of effort to scrape also tend to be the least useful)
21:52:42 <ais523> it's like email spam – the scrapers have found a setup that occasionally makes money and costs them almost nothing
21:53:00 <ais523> at the cost of the entire Internet having to deal with it
22:05:24 <fizzie> I'll probably need to do either the Anubis thing or a logged-in-only thing for "expensive" pages (diffs, maybe history of gigantic pages), but I won't get the chance until at the earliest next weekend.
22:13:34 <ais523> it wouldn't surprise me if some of the scrapers started being able to beat Anbuis – it might be becoming widespread enough
22:14:47 <ais523> beating spambots and scrapers is one of the few fields where security through obscurity actually work well, e.g. the wiki used to have massive spambot issues before the "Introduce yourself" thing was added and then spam rates dropped to effectively 0
22:15:18 <fizzie> I've temporarily turned off hack.esolangs.org/repo, because it's really more of a nice-to-have, and seemed to be responsible for most of the load (at least in terms of qps: it's getting 15, compared to 5 for the wiki).
22:15:25 <ais523> (my suspicion is that the spammers were using human CAPTCHA-solvers but they were only integrated with the create account page, so having a step after account creation completely broke the spambot framework)
22:27:49 <b_jonas> another bad part is that if useful websites can't keep up with spammers' queries then that incentivizes me to scrape the whole website quickly before it disappears, but from everyone else's point of view that makes me hard to distinguish from the spammers who send too many queries
22:28:19 <b_jonas> now for the esowiki in particular I can download the dump and the monthly chat logs, but for many other websites it's not that easy
22:31:49 -!- joast has joined.
22:35:39 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
22:36:36 -!- sytra has joined.
22:40:23 <ais523> b_jonas: using an honest useragent normally makes it fairly easy to tell you apart from malicious scrapers
22:41:17 <ais523> there's an anti-scraping toolkit that works by looking at the user-agent and checking to see whether the other headers match those which would be sent by the browser and version that it's claiming to be
22:41:45 <ais523> things that vaguely resemble real user-agents get blocked, things that are nothing alike get permitted because those are normally well-behaved scrapers
22:42:04 <int-e> Hmm, have I mentioned here how much https://en.wikipedia.org/wiki/Template:Windows_usage_share is amusing me? (This connects to honest User-Agents, I believe.)
22:42:06 <ais523> (and things that exactly match real browser user-agents check the other headers)
22:42:48 <ais523> int-e: I don't remember seeing that, but yes, windows 7 being the most-used version of Windows is implausible
22:43:23 <int-e> (the amusing thing is that up to about six months ago the Windows 7 number was at about 3%... probably a tad inflated, but not completely out of the realm of possibility)
22:43:49 <int-e> (I started out with "a month")
22:44:13 <ais523> it might be worth mentioning that the methodology is probably wrong, somewhere
22:44:46 <int-e> It does, it says "according to StatCounter" ;-)
22:46:12 <int-e> (mostly meme-ing, but it does indicate that the source is web traffic analysis, and apart from User-Agent headers, what do you really see...)
22:46:36 <b_jonas> ais523: yes, but that too mostly applies more to esolangs than to some other websites where people look less at the details of headers of random queries
22:47:07 <ais523> int-e: but most people reading articles giving those figures are unlikely to make the connection
22:47:28 <int-e> ais523: Also, if you actually follow that wiki link, you'll find "[...] the numbers in the statistics can not be considered to be representative samples."
22:47:29 <ais523> the current situation with scraperbots is known to most people who host websites – but most people don't host websites, so they would be unaware
22:48:08 <int-e> ais523: I agree that it could be made more obvious :)
22:51:05 <int-e> Steam's hardware survey says 0.07%, but that's also biased for obvious reasons. (link: https://store.steampowered.com/hwsurvey/Steam-Hardware-Software-Survey-Welcome-to-Steam )
22:57:43 <b_jonas> I think the majority of actual Windows 7 will be running old domain-specific software in non-personal use, and the amount of those machines are hard to measure in any way, they won't run steam or access most of the popular services on the internet
22:58:02 <b_jonas> a lot of new software doesn't support Windows 7 anymore
22:58:10 <b_jonas> whereas Windows 10 is still well supported
23:00:45 <b_jonas> my software dayjob uses Windows 10 and Windows 11 and their Windows server equivalents. newly started projects use Windows 11 or its server version for the production machines, whereas my work laptop runs multiple Windows 10 instances, and some of the other in-house infrastructure is running Windows 10 too (some run Linux, mind you).
23:01:39 -!- sytra has quit (Quit: sytra).
23:08:04 -!- sytra has joined.
23:10:25 -!- FreeFull has quit.
23:10:29 -!- sytra has quit (Remote host closed the connection).
00:52:39 -!- amby has 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).
01:14:38 <korvo> ais523: Anubis is trivial to bypass by simply solving the challenge; the cost of Anubis is that scrapers with lots of distinct IP addresses will have to solve lots of distinct challenges.
01:30:34 <ais523> korvo: I think the bypass is more along the lines of "you can precompile code that solves the challenge rather than actually running the JavaScript"
01:30:49 <ais523> obviously you still have to do the calculation, but you can do it much faster than a browser can
01:51:13 <strerror> (Meanwhile, legitimate browsers already try to look somewhat alike, all claiming to be the chimeric Mozilla/Chrome/Webkit/likeGecko. Perhaps they'll all claim to be Windows 7 too…)
01:55:25 -!- Melvar has quit (Ping timeout: 246 seconds).
02:08:54 <esolangs> [[Special:Log/newusers]] create * MsMissing * New user account
02:09:32 -!- Melvar has joined.
02:13:42 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=166302&oldid=166290 * MsMissing * (+174)
02:15:21 <b_jonas> ais523: wait, what calculation does Anubis do that's slow in a browser? browser javascript comes with cryptographic primitives directly callable now.
02:16:50 <b_jonas> unrelated question. if you are writing a story about a fictional animal species, but you want it to sound more realistic and break the suspension of disbelief of the reader less, then you should say that the animal is from Madagascar or New Zealand. if you are writing a story about an esolang but want to make it sound less esoteric, eg. the original posts about Kvikkalkul, then what's the programming
02:16:56 <b_jonas> language equivalent of Madagascar?
02:27:44 <zzo38> Not all legitimate browsers do claim to be Mozilla or Chrome or whatever else it is, e.g. Lynx
02:27:47 <b_jonas> strerror: hmm yeah, that's a good idea. possibly even better is backend mainframes for either banks or airplane tickets, the kind that are using mainframe architecture from 40 years ago and can only be updated in minor ways and takes a day to power cycle, and forces constraings like limits on length and character set of text fields to the entire industry
03:43:34 <esolangs> [[Mastermind]] https://esolangs.org/w/index.php?diff=166303&oldid=127037 * MsMissing * (+1)
03:58:45 <esolangs> [[Mastermind]] https://esolangs.org/w/index.php?diff=166304&oldid=166303 * MsMissing * (+156) Mastermind was updated
04:41:51 -!- simcop2387 has quit (Ping timeout: 252 seconds).
04:48:48 <zzo38> Today I played Pokemon and I used Thunder Wave on my own pokemon on the second turn, and ended up winning (and the one that was paralyzed (Clefable) never fainted nor switched out during the entire battle). (I did do that deliberately. I don't know how common it is to do things like this, but this time it helped.)
04:51:41 -!- simcop2387 has joined.
04:53:52 <b_jonas> zzo38: did this involve a double battle?
04:57:27 -!- ais523 has quit (Quit: quit).
05:05:40 <zzo38> (My other pokemon was Grimmsnarl with Prankster ability, and used Light Screen on the first turn, and switched out on the third turn, and then never came back in. Although some of my pokemons were damaged, the only one that actually fainted did so due to recoil damage on the last turn of the battle.)
05:07:14 <zzo38> (Sometimes, that happens. Another time, I thought I was going to lose because I had only Butterfree and Beedrill (without mega-evolution; I think usually they do but in this case it had Bug Gem instead) left and opponent had four pokemons, and I ended up winning anyways. Other times, it seems that I would win, and then I ended up losing instead.)
05:08:04 <zzo38> (You should know what to save for later, and sometimes will do it wrong especially if there is no team preview, then it makes it more difficult to know what you might need later.)
06:02:19 <esolangs> [[Yes/No]] https://esolangs.org/w/index.php?diff=166305&oldid=166272 * Intiha * (+72)
07:15:47 -!- tromp has joined.
07:28:53 -!- Sgeo has quit (Read error: Connection reset by peer).
08:00:08 <esolangs> [[User:MsMissing/common.css]] N https://esolangs.org/w/index.php?oldid=166306 * MsMissing * (+28) Created page with "code { overflow-x: auto; }"
08:03:24 <esolangs> [[User:MsMissing/common.css]] https://esolangs.org/w/index.php?diff=166307&oldid=166306 * MsMissing * (+2)
09:25:03 <esolangs> [[TESTLANG]] M https://esolangs.org/w/index.php?diff=166308&oldid=152341 * Ractangle * (+156)
09:30:39 <esolangs> [[TESTLANG]] M https://esolangs.org/w/index.php?diff=166309&oldid=166308 * Ractangle * (-6) /* Sub-words */
09:33:07 <esolangs> [[TESTLANG]] M https://esolangs.org/w/index.php?diff=166310&oldid=166309 * Ractangle * (-64) /* Hello, world! */
11:21:54 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
11:32:10 -!- sytra has joined.
11:36:54 -!- Lord_of_Life has quit (Ping timeout: 244 seconds).
11:37:06 -!- Lord_of_Life_ has joined.
11:38:25 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
12:06:56 -!- amby has joined.
12:30:11 <esolangs> [[F calculus]] https://esolangs.org/w/index.php?diff=166311&oldid=166301 * C++DSUCKER * (+39)
12:32:08 <esolangs> [[Language list]] https://esolangs.org/w/index.php?diff=166312&oldid=166277 * C++DSUCKER * (+17) addeed muh new language
12:37:36 -!- tromp has joined.
12:46:01 <esolangs> [[$Lang]] N https://esolangs.org/w/index.php?oldid=166313 * Intiha * (+3564) Created page with "Note: Not to be confused with the word "Slang" == Overview == Dollarlang (or $Lang) is a minimalistic esoteric programming language by [[User:Intiha]] where programs consist entirely of `$` symbols and the `#$#` sequence. It is intentionally verbose: each ASCII character
12:48:41 <esolangs> [[$Lang]] https://esolangs.org/w/index.php?diff=166314&oldid=166313 * Intiha * (+7)
12:51:50 <esolangs> [[$Lang]] https://esolangs.org/w/index.php?diff=166315&oldid=166314 * Intiha * (+17)
13:07:42 <esolangs> [[$Lang]] https://esolangs.org/w/index.php?diff=166316&oldid=166315 * Intiha * (+91)
13:24:55 <esolangs> [[F calculus]] https://esolangs.org/w/index.php?diff=166317&oldid=166311 * C++DSUCKER * (+124)
13:56:50 -!- sytra has quit (Quit: sytra).
14:00:32 -!- sytra has joined.
14:35:02 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
14:45:13 -!- vista_user has joined.
15:04:52 <esolangs> [[Talk:SE calculus]] N https://esolangs.org/w/index.php?oldid=166318 * Corbin * (+102) Created page with "E is not a combinator. ~~~~"
15:05:06 <esolangs> [[Talk:F calculus]] N https://esolangs.org/w/index.php?oldid=166319 * Corbin * (+102) Created page with "F is not a combinator. ~~~~"
15:05:54 -!- tromp has joined.
15:07:40 <esolangs> [[$Lang]] https://esolangs.org/w/index.php?diff=166320&oldid=166316 * Corbin * (+44) Yet another output-only encoding.
15:18:46 <esolangs> [[SKI combinator calculus]] https://esolangs.org/w/index.php?diff=166321&oldid=34553 * Aadenboy * (+13) redirect to section
15:18:59 -!- vista_user has quit (Ping timeout: 250 seconds).
15:46:16 -!- sytra has quit (Quit: sytra).
15:55:04 -!- sytra has joined.
16:09:25 -!- sytra has quit (Quit: sytra).
16:59:11 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
17:06:41 <esolangs> [[Yes/No]] https://esolangs.org/w/index.php?diff=166322&oldid=166305 * Aadenboy * (-2) /* Notes */ 7.82 is the value in mebibytes, not megabytes (MiB vs MB)
17:19:41 -!- sytra has joined.
17:31:11 -!- tromp has joined.
17:33:47 <esolangs> [[Settheorysucksandassuchisgreatforesolangs]] https://esolangs.org/w/index.php?diff=166323&oldid=165193 * * (+66)
18:00:17 <korvo> Okay, I've now written a small amount of Execline. Before, I'd only written a tiny amount. This is *so much better* than POSIX shell scripting! It seems like the *only* thing I can't do is a stateful while-loop, but otherwise it's a very lightweight way to wire up some commands in a pipe with some basic conditionals.
18:12:58 <esolangs> [[User:Ivava]] https://esolangs.org/w/index.php?diff=166324&oldid=166291 * Ivava * (+529)
18:14:29 <esolangs> [[]] M https://esolangs.org/w/index.php?diff=166325&oldid=153000 * Ractangle * (-50) /* Commands */
18:14:51 <esolangs> [[]] https://esolangs.org/w/index.php?diff=166326&oldid=166325 * Ractangle * (-400) /* Errors */
18:17:07 -!- sytra has quit (Quit: sytra).
18:18:10 <esolangs> [[]] M https://esolangs.org/w/index.php?diff=166327&oldid=166326 * Ractangle * (-97)
18:21:25 -!- sytra has joined.
18:26:37 <esolangs> [[How dare you fuck the brain]] M https://esolangs.org/w/index.php?diff=166328&oldid=164659 * Ractangle * (+186)
18:50:45 <esolangs> [[Yoktoki]] N https://esolangs.org/w/index.php?oldid=166329 * Ivava * (+2388) Created page with "{{WIP}} '''Yoktoki''' is an esoteric programming language developed for specialized cyber-related applications. The language was created by a school student known online as Ivava ([[User:Ivava]]), who designed it with the intention of providing a simple yet flexible tool
18:58:18 <b_jonas> I have a small design problem with Enchain, the esolang that I'm trying to design. So I want Enchain values have types known at compile-time. But I want to keep the type system as simple as possible so that the language is easier to write a compiler for, so I would really prefer if there were no derived types (eg. no type constructors with arguments) and no implicit conversions between types. now I want
18:58:25 <b_jonas> to have very simple dynamically allocated array of integer types, where you can calloc an array of a size of your choice, or free it, or index into it, or index assign into it. I'd probably have arrays of int32, arrays of int8, and possibly arrays of int16 that work this way. that's three separate types and I'm fine with that much. but I'd also like to have array literals, which are constant arrays
18:58:31 <b_jonas> initialized from numbers listed in the source code, as decimal or hexadecimal numbers or, in the case of int8 arrays, initializing from literal strings should also be possible. but now I have a choice between three designs, neither perfect. (1) literal arrays are the same type as dynamically allocated arrays. but I want literals to be read-only, and this wouldn't let me check that constraint at
18:58:37 <b_jonas> compile-time, so either writing literals would be UB or I'd need a slightly more complex runtime check every time you indexed assign into an array. (2) literal arrays are a separate type, array indexing and a bunch of other functions (fwrite, memcpy) are each duplicated, one version takes a literal array, the other a dynamically allocated array. I might add a special type of string literal that can only
18:58:43 <b_jonas> puts itself as a shortcut. (3) there are three types: literal array, dynamically allocated array, and read-only array. the first two can be explicitly converted to the third. but now you need to write an explicit conversion whenever you want to index into an array (even if you can move it out from a loop).
18:59:38 <esolangs> [[User:Aadenboy]] https://esolangs.org/w/index.php?diff=166330&oldid=166057 * Aadenboy * (-169) /* programming languages */
19:26:02 <esolangs> [[Special:Log/upload]] upload * Ivava * uploaded "[[File:Yoktoki esolang image (20.10.2025).jpg]]"
19:26:55 <esolangs> [[User:Ivava]] https://esolangs.org/w/index.php?diff=166332&oldid=166324 * Ivava * (+16) /* Esolangs list */
19:27:59 -!- vista_user has joined.
19:35:43 -!- vista_user has quit (Remote host closed the connection).
19:35:55 -!- vista_user has joined.
19:43:45 -!- vista_user has quit (Ping timeout: 250 seconds).
19:45:06 -!- vista_user has joined.
19:53:24 -!- vista_user has quit (Remote host closed the connection).
19:55:07 -!- vista_user has joined.
19:55:26 -!- vista_user has changed hostmask to ~vista_use@user/DOS-User:11249.
20:05:25 -!- sytra has quit (Remote host closed the connection).
20:13:13 -!- vista_user has quit (Ping timeout: 250 seconds).
20:52:29 <esolangs> [[Yoktoki]] https://esolangs.org/w/index.php?diff=166333&oldid=166329 * Ivava * (+2061)
22:03:35 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
22:26:25 -!- Sgeo has joined.
23:05:11 <Sgeo> Esolang idea: Standardized programming language to be used for educational material for decades, but no I/O in the standard.
23:06:37 <Sgeo> (Does being used for educational purposes disqualify a language from being esoteric? Brainfuck arguably can be used to teach about Turing completeness)
23:07:17 <Sgeo> Is lack of I/O the most esoteric thing about Algol-60?
23:07:58 <Sgeo> Does inventing something that would be used by most later languages count as esoteric? Strange at the time, standard now?
23:49:51 -!- amby has 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).
00:38:17 <esolangs> [[Functional paradigm]] N https://esolangs.org/w/index.php?oldid=166334 * Corbin * (+1821) "Moving" a category page to main namespace, per IRC discussion.
00:38:37 <esolangs> [[Category:Functional paradigm]] https://esolangs.org/w/index.php?diff=166335&oldid=162713 * Corbin * (-1795) Fork to [[functional paradigm]] to put content in main namespace, per IRC discussion.
00:40:19 <korvo> Sgeo: I'd say yes to all of that.
01:14:42 <esolangs> [[Smalltix]] https://esolangs.org/w/index.php?diff=166336&oldid=166295 * Corbin * (+388) Document the core of the correspondence between Smalltalk and Unix. This is technically a surjection rather than an isomorphism but we will paper over that.
01:27:59 <sorear> korvo: nql compiler works for me with python 3.12.11 and pyparsing 3.2.3? is the patch something specifically required by your harness, or is there still something weird with my setup?
01:29:00 <sorear> i think i've figured out how ajwade's variable length PC works well enough to try it
02:12:54 <korvo> sorear: Probably my harness. Nix says that I'm also on CPython 3.12.11 with pyparsing 3.2.3. Perhaps order of imports is important? I import framework, nqlast, nqlgrammar in that order.
02:13:46 <korvo> ...Although I've just tried rebuilding the entire BB Gauge with your repository as upstream and the 8yr commit as the target revision, and everything appears to work. So perhaps my commit's not needed.
02:32:16 -!- ais523 has joined.
02:32:53 <ais523> Sgeo: quite a few of the languages I was working with during my PhD were call-by-name and Algol-based, so I used an actual Algol 60 implementation to test some of the programs (by translating them)
02:33:52 <ais523> the non-fixed syntax looks pretty esoteric to modern eyes – at the time, each implementation was expected to come up with its own syntax and the syntax used in the specification was designed for typesetting, not programming in
02:34:07 <ais523> did Algol 60 also allow spaces in identifiers? or was that just Algol 68?
02:34:44 <ais523> (incidentally, Algol-68 does have I/O but it looks very esoteric to modern eyes)
02:40:58 <zzo38> How is the I/O of Algol-68? Is there a program to convert the syntax for programming to the syntax for typesetting? (I think WEB does something similar, but different)
02:44:21 <Sgeo> For Algol 60, iiuc different computers had different programming syntaxes. Some put keywords in quotes (e.g. 'BEGIN'), some capitalized
02:44:31 <b_jonas> ais523: doesn't the non-fixed syntax mean only that keywords can be represented as single symbols or short combinations or full words depending on how capable your input devices (eg. card reader) are, since Algol may be running from five-bit telegraph with two shift modes and only like 55 usable characters, or an EBCDIC card reader that can recognize 256 characters that you can each punch by
02:45:28 <b_jonas> BASIC is kind of like this too: on some microcomputers you can type BASIC keywords from letters, on others you can only enter them as a single shifted keyboard symbol that's only shown on screen as letters
02:45:45 <ais523> b_jonas: yes, but also keywords and variable names could be the same and so implementations needed a way to disambiguate (in the Algol 68 specification, this was done using different fonts)
02:45:51 <zzo38> I have seen that before
02:46:24 <b_jonas> and when you don't have every printer standardized on being able to print most of ASCII then it would be silly to say that some symbol must be represented as exactly a left square bracket, another as a yen sign etc, just use whatever your printer can show
02:47:52 <b_jonas> ais523: makes sense, that means you can even have versions with built-ins represented in different natural languages, like Excel or LOGO. you could even use a terminal that doesn't have latin letters.
02:48:14 <ais523> I'm trying to remember how Algol 68's I/O works
02:48:23 <ais523> I think all the files had to be opened before the program starts, although I'm not 100% sure
02:49:27 <b_jonas> have I complained lately about how hard it is to find on the internet sources that are written in English and list *all* the Russian abbreviations for SI units and prefixes?
02:49:48 <b_jonas> why doesn't someone have a complete table somewhere? is it really that hard?
02:50:05 <b_jonas> are you supposed to learn them only from printed university textbooks for engineers or something?
02:50:23 <ais523> hmm, apparently ECMA 6 (which later became ISO 646) was first published in 1965
02:50:30 <b_jonas> also if you only list the russian abbreviation for kilogram, not for gram, then you're doing it wrong
02:50:46 <ais523> so Algol 60 couldn't have used it, and although Algol 68 could have done, there wasn't time for it to have "won" yet
02:51:07 <b_jonas> even if ASCII exists doesn't mean all computers are using it
02:51:32 <ais523> ECMA 6 isn't exactly ASCII, it's a precursor to it
02:51:56 <ais523> it's what C was designed against, which is why C has trigraphs (they make it possible to type the ASCII characters that C uses that aren't guaranteed by ECMA 6)
02:58:52 <strerror> Sgeo: It's a bit hard to avoid IO creeping into your standard after systems started widely adopting, well, stdio.
03:01:10 <strerror> So you might want to look at systems that still don't have that. Such as Ecmascript! It looks like the console object isn't actually in the standard. https://tc39.es/ecma262/#sec-ecmascript-standard-built-in-objects
03:02:56 <zzo38> JavaScript does have built-in date/time and random numbers though, which means that it still has some I/O, although console.log is not a core function it is common among multiple implementations (console.log with a single argument which must be a string, might be the most portable way to do output in JavaScript, and if it doesn't have it, it is easy to add it)
03:03:19 <zzo38> (Some people do not consider date/time and random numbers to be I/O, but to me, I consider that it is.)
03:08:54 <b_jonas> strerror: which is why C++ overreacted and went the opposite way. iostreams was basically the first part of C++ that got (at least unofficially) standardized between different implementations, with both the language and the standard library changing a lot since, and the weirdest part of the language were designed specifically to serve iostreams – have you ever seen virtual inheritence used in C++ for
03:09:00 <b_jonas> anything other than implementing the classes of iostreams such that basic_stream can inherit from both basic_istream and basic_ostream but only have one copy of ios and one format flag?
03:09:18 <ais523> I remember, at a previous job, having to explain why a program was producing progress output to the terminal in 4KiB chunks rather than immediately (libc buffering), and then having to explain why libc was involved even though the program was written in Haskell
03:11:13 <ais523> I hate the way that on many OSes you have to go through libc to interact with the OS at all, even though it contains functions that have nothing to do with OS interaction (like strlen)
03:13:16 <b_jonas> ais523: ooh, you had to go through fifty years of computer history with that one. I recently learned that the officially documented API of the Commodore 64 kernal ROM has unix-like file description abstractions in it, where you can open numbered file descriptors that can correspond to either the screen or tape or floppy disk and then you're supposed to write them with a system call for *every byte*,
03:13:22 <b_jonas> even though this is such a silly design that the designers should really have expected that no sane program will use it
03:14:17 <ais523> it is surprising how silly many API designs end up
03:14:45 <b_jonas> and then the whole CP/M thing where there's a standardized operating system interface (without unix-like file descriptors and with files read/writable only in fixed-sized blocks and no byte-granular size) without shared language or CPU
03:15:04 <ais523> CPUID is one of my pet hates – in order to use it you first have to use CPUID request 0, which gives you a value for the highest CPUID request you can use – higher requests are undefined behaviour, lower requests might or might not be implemented, but return all-bits-zero if not implemented
03:15:37 <zzo38> I also did not like that you have to go through libc; my own design is deliberately design that you do not have to use libc (which, in my system, lacks the functions for interacting with the OS anyways) to interact with the OS. (Also, you cannot necessarily interact with the I/O anyways; you can interact with capabilities.)
03:15:44 <b_jonas> ais523: this one is actually less silly than it seems at first, one character at a time does make more sense than it seems at first with how the floppy drive and tape works
03:15:47 <ais523> it would have made so much more sense to say "unimplemented requests return all-bits-zero" so that using request 0 wasn't mandatory, you just make the request you want (because you have to check for the all-bits-zero case anyway)
03:16:04 <zzo38> (And, I do not like CPUID either, so my own design would be one that does not have such a thing, at least for application mode.)
03:16:22 <ais523> the only logical reason I can see for the CPUID design is so that Intel can fill your ebx, ecx and edx registers with advertising
03:16:29 <ais523> (it actually does that, while it returns the result in eax)
03:16:41 <zzo38> (And that about CPUID is not very good either)
03:17:11 <b_jonas> anyway, buffering output before doing the actual write call is both older than unix's unified write operating system API, and even on a typical linux it has lots of reimplementations besides libc
03:17:16 <ais523> I think Intel encouraged people to verify that the CPU was an Intel CPU before trusting the CPUID result (which would have the consequence of programs running non-optimised on non-Intel x86 clones) – and later actually did that themselves in icc
03:17:50 <ais523> but, no sensible manufacturer would create an x86 clones for which the CPUID results had different meanings than on Intel
03:18:16 <b_jonas> it's so old that TAOCP volume 1 explains how to buffer input and output, both because you're doing IO in fixed-sized blocks and because you're using a larger ring buffer for background IO in parallel to computations
03:19:12 <ais523> (the funny thing is, later AMD created their own CPUID requests in the billions, to avoid any likely clashes with Intel's which were all small integers, and enough software started using them (even though it was defined by Intel as UB) that Intel had to partially implement some of them in order to prevent code running more slowly on Intel processors than it would on AMD)
03:19:20 <b_jonas> ais5523: sure, but Intel kind of has to do that because they can't promise that every bit of their documentation will apply to all third-party CPUs made, even with how much they specifically work together with AMD to make the CPUs as compatible as reasonably possible
03:19:41 <ais523> no they don't, they just say "on Intel processors, CPUID works like this"
03:20:08 <ais523> and if a non-Intel processor doesn't match the documentation Intel just blames it on the manufacturer
03:20:58 <b_jonas> but that's not just CPUID, all of their documentation basically says "Intel processors work like this", so much that the architecture programming manual tells you the details of how all CPUs going back to the 8086 work and how to detect if you're running on a modern CPU rather than a 8086 in like five easy steps starting from distinguishing 8086 from 80286 etc
03:22:23 <ais523> right, you're supposed to start by seeing whether certain flags bits keep their value when you try to set them, I think?
03:22:27 <ais523> (rather than reverting back to 0)
03:22:46 <ais523> and that detects enough early CPUs that you can rule out all the ones that don't implement CPUID, and then use CPUID
03:23:33 <b_jonas> no, the flag bit distinguishes between pentiums with or without CPUID, that's near the last step, I think there are three or four more steps before. IIRC the first is to check what push SP pushes to see if you're on a 8086 or 80286, but I forget how you test for a 80286 vs 80386, then 80386 versus later
03:24:05 <b_jonas> I might be misremembering, I should look this up
03:24:22 <ais523> hmm, maybe INTERCAL's version test isn't so unique after all
03:26:08 <ais523> in any case, most software nowadays doesn't support anything earlier than i686 when compiling for 32-bit x86
03:26:23 <ais523> (and increasing amounts of software aren't supporting 32-bit x86 at all)
03:31:43 <b_jonas> no, you were closer to right. Intel architecutre manual volume 1 chapter 20.1.2. the test between 8086 vs 80286 vs 80386 or newer is with FLAGS: top bit is always set on 8086 but always clear on others in real mode but you *can* skip that part, test the three bits below them to see if they are changable on 80386 or newer vs fixed on older (though with different values on 8086 vs 80286);
03:32:57 <b_jonas> then there are two EFLAGS bits but you only really need one which indicates that CPUID is available, but of course to even access the top half of EFLGAS you need to know that you're on a 80386 or newer.
03:34:12 <b_jonas> so it's not as bad as I remembered, it's really only four tests, one to test if a bit in FLAGS can be both set and cleared and retains both, then test if a bit in EFLAGS can be both set and cleared and retains both, and if those all pass you have CPUID. unless of course you actually want compatibility with CPUs older than CPUID.
03:36:30 <b_jonas> though of course the later tests with CPUID are complex, because the official intel documentation doesn't promise you that SSE2 is always available in 64-bit code. mind you, that is actually *correct* from their perspective, because being able to use XMM registers requires operating system support, and even though in practice any 64-bit program can rely on that being there if they even want to use any
03:36:36 <b_jonas> OS ABI, the Intel CPU manual has to describe the more general case where there needn't be a typical operating system running.
03:39:13 <ais523> I think at least Rust does CPUID checks along the lines of "this software was compiled for Windows, so we can assume the existence of any CPU instructions that are required by Windows"
03:39:44 <ais523> …which leads to weird per-OS performance increases because some OSes require newer instructions than others, making software that isn't multiversioned run faster
03:45:38 <b_jonas> hehe, yes, that would lead to a consistent drawback on programs compiled for linux, because there will always be operating systems supporting parts of the linux system call ABI that run on the weirdest CPUs
03:46:13 <b_jonas> whereas most Windows programs these days can just check for at least Windows 10 and bail early on Windows 7 or earlier
03:47:34 <b_jonas> but I still think at least on a linux x86_64 program you can rely on SSE2 being there
03:49:25 <b_jonas> (I wouldn't rely on it being implemented completely correctly; I should go back some day and get a qemu x86_64 guest *without acceleration* to compile and test if it indeed has a bug in what NaN values some SSE instructions return and report the bug if it's there)
03:50:31 <b_jonas> I mean especially if you are linking to libc then the function call ABI requires XMM registers present
03:51:10 <b_jonas> if there's an fabs function, or a printf that can format doubles, then there has to be SSE instructions at least
03:55:23 <ais523> hmm, if the OS hasn't given permission to the CPU to use XMM registers, do attempts to use them actually fail? or do they succeed and just hide the CPUID bit?
03:56:08 <b_jonas> that said, even if the CPU instruction subset part is complicated, the OS ABI part turns out to be pretty simple, because most programs will, whenever they do a unix system call other than group_exit, check if it returns an error with an errno code that they don't specifically handle, and that automatically checks for old OSes not implementing any particular system call.
03:56:11 <ais523> I guess it doesn't really matter
03:56:31 <ais523> your programs will still break if they get context-switched while using registers the OS doesn't know exist
03:56:33 <b_jonas> ais523: IIRC yes, the CPU ABI is that the CPUID bit is only enabled when the operating system has explicitly enabled support for XMM registers;
03:57:02 <b_jonas> though that applies for XMM and YMM and ZMM only, x87/MMX registers also require OS support and I don't know how you test that
03:57:34 <ais523> and now you've made me wonder whether glibc actually puts ENOSYS in errno or whether it just aborts upon seeing that the OS doesn't support a system call it expected to exist
03:57:59 <ais523> it might plausibly depend on which system call you ask for – there are some that glibc will recognise as being conditionally supported
03:58:59 <ais523> it took me a surprisingly long time to realise that the reason why MMX registers are mapped over x87 registers is so that the OS will know how to context-switch them even if it doesn't know about MMX
03:59:53 <b_jonas> ais523: yes, but it's not *just* the OS, I think it's also user-space context switch or light threading libraries
04:00:00 <ais523> it would be logical to map mask registers over x87 for the same reason (so that programs could use masked EVEX-encoded instructions on 128-bit and 256-bit registers even if the OS didn't know about AVX-512)
04:00:07 <b_jonas> well no, sorry, ignore that
04:00:27 <b_jonas> the ABI basically says that MMX can't be initialized around generic function calls, the CPU is always in x87 mode
04:00:35 <b_jonas> so a user-space library doesn't have to support MMX
04:01:04 <ais523> well the ABI also doesn't let you initialise ymm registers around function calls either
04:01:32 <ais523> (and that's *on top* of making all the xmm registers call-clobbered)
04:01:54 <ais523> or maybe it's specifically returns rather than calls
04:01:57 <b_jonas> ais523: I don't think so, mask registers were introduced in AVX512, that's late enough that by that time the CPU architecture exposed a generic interface that operating systems can use to save all the state of a process
04:02:43 <b_jonas> but x87 also has enough complications that it would be very annoying if you mapped something else onto it now
04:03:32 <b_jonas> and they're technically still in the x86_64 linux ABI for passing a long double to a function (like fabsl)
04:03:42 <b_jonas> or do I remember that part wrong?
04:06:03 <ais523> b_jonas: I just checked, long doubles as arguments are passed using stack slots, but a long double return value is returned in ST(0)
04:06:46 <ais523> ST(1) can be used in the specific case of returning a complex long double (but no other cases, e.g. a structure containing two long doubles is returned via outpointer)
04:07:12 <ais523> so you were almost right
04:08:48 <ais523> (this seems slightly illogical to me – "first long double in ST(0), rest in stack slots" would be more consistent with the rest of the ABI – but I didn't design it)
04:31:01 <korvo> sorear: Okay, let's assume that my commit is not necessary. It is meant to patch up an upstream change in pyparsing anyway; as long as everything else works, it's not relevant to our main goal.
04:37:01 <sorear> ais523: preventing user code from writing registers the OS doesn't know about is crucial unless you want covert channels
04:37:29 <ais523> sorear: I don't think Intel has a very good track record of stopping those :-(
04:39:15 <ais523> this reminds me of the trick that was used to implement rseq before it was added as a system call (you change the base of the gs segment in such a way that it looks unchanged to the OS, then if you get context-switched the OS restores gs incorrectly, and you use that to cause the last command in the rseq to fail)
04:39:58 <ais523> although that's the opposite of a covert channel, it gets incorrectly clobbered as opposed to incorrectly non-clobbered
04:40:41 <sorear> "trap on FP register access" has been a standard feature of ISAs forever because people think they want lazy FP register restoring, e.g. cr0.TS, not quite the same as OSXSAVE but
04:41:54 <zzo38> I had wanted to design the CPU to avoid covert channels and other problems with it, as well as some enhancements; security is one issue but there are other issues too.
04:44:06 <ais523> this reminds me of when lazy FP state restore turned out to be exploitable (using speculative execution to leak other processes' FPU registers), but recent-at-the-time Linux was unaffected because they'd disabled it by default a little earlier
04:44:25 <ais523> due to it not being useful as a performance optimisation on modern CPUs
04:45:28 <ais523> I suspect the concern was mostly not so much x87 (unlikely to hold sensitive information) as SSE (which could plausibly hold sensitive information due to being used for inline memcpys)
04:46:45 <ais523> ah, it's specific to recent-at-the-time Linux on recent-at-the-time processors, older processors were still affected because the lazy restore was considered by Linux to be faster on those
04:47:53 <sorear> it's exploitable due to TS being checked too late, not due to an inherent property of the ISA
04:48:25 <ais523> yes, as usual this happened on Intel but not AMD (AMD has had its own specific vulnerabilities but they tend to look different from the Intel-specific ones)
04:48:25 <sorear> but intel did the same thing with page permissions so
04:50:13 <ais523> the recent ARM64-specific one was even more dramatic (the CPU was speculatively reading from register values if they looked like pointers, which could be attacked by getting crypto code to create numbers that looked like pointers internally if the key had a bit in a particular place)
04:50:27 <sorear> (most of my ISA stuff is indexed on riscv since that's what I've been doing since 2016)
04:51:41 <ais523> I think that one's less likely to be a problem on x86es for memory-ordering reasons, reads are acquire-ordered by default on x86 and so speculating on a read before the read instruction appears in the instruction stream is almost useless
04:53:00 <sorear> that sounds like something half-remembered that's either related to value predictors or prefetching
04:53:55 <sorear> dynamically most register values are small integers, all of which are architecturally valid pointers
04:54:28 <ais523> right, but "looking like a pointer" is different from being a valid pointer – it's something that you can predict on (e.g. by seeing which memory addresses are being accessed and looking for addresses that look similar)
04:55:01 <sorear> riscv has svukte now (negative addresses are rejected in U-mode before even hitting the PTW) and A64 probably has had something similar for a while but I don't think anyone's promoted mmap_min_addr to architecture
04:55:16 <zzo38> I think it is better to not put that many complications like that into the CPU since it can cause these kind of problems
04:56:49 <ais523> oh, I see, mmap_min_addr doesn't need to be architectural for security reasons, but it might potentially help for performance if you're trying to figure out what might be a pointer
04:57:06 <sorear> discover problem caused by complexity, solve it by adding more complexity, repeat until full employment is achieved
04:57:50 <korvo> Except for those of us who've burnt out, I suppose.
04:58:19 <zzo38> Another way can be: Redesign most of the computer, operating system, etc. It is not only about complexity and security but also the other problems.
04:59:01 <ais523> zzo38: I would like to do that but am having problems finding enough mental energy to do it
04:59:35 <ais523> although, I think that even though it would be beneficial to redesign everything properly, some parts of it are more beneficial than others (i.e. less effort to change and greater benefit)
05:00:18 <zzo38> I would want to make a discussion group to do it. I have no name for it so far, but I do have many ideas.
05:01:11 <ais523> the "lowest effort to greatest benefit" to me is in the "generalised ABI", i.e. the rules for how a process can use the processor registers and do argument passing and interact with the OS
05:01:34 <ais523> because that could be adopted piecemeal, one program at a time, without breaking existing systems, and yet it's an area with huge scope for changing things
05:02:30 <sorear> like you want to simplify the x86_64 sysv calling convention? what does that benefit, or am I taking you too literally?
05:02:30 <ais523> for example, it would be possible to enforce an object-capability system at that level (via static analysis of the source code or binary)
05:03:06 <ais523> sorear: the calling convention is part of it, btu actually I wanted to complicate it, the current calling convention is very rigid and it causes a lot of register spills as a consequence
05:03:11 <zzo38> For modifying existing systems, I suppose so, but I thought to do a new system; still the ABI (and perhaps those other things) would probably be one part of it though.
05:03:42 <korvo> But couldn't we have object-capability systems via static analysis already? Or is this like CHERI where the security property comes from a conjunction of correct hardware *and* correct software?
05:03:55 <ais523> korvo: we can but only within a single process
05:04:00 <zzo38> (Although, my idea of a system has a small number of system calls (possibly only one).)
05:04:25 <ais523> you need an expanded ABI to allow multiple processes to send capabilities between each other (e.g. via exeec)
05:05:00 <zzo38> I think that a combination of correct hardware and correct software would be a good idea. However, I think CHERI is security within a process and my idea is more about security between processes.
05:05:23 <ais523> even the single-process version would be good though
05:06:32 <sorear> CHERI works within an address space. "Process" can get a bit fuzzy
05:06:36 <ais523> fwiw, I am sceptical of CHERI – I don't think it actually enforces memory safety unless you modify the software to take advantage of it
05:06:55 <ais523> whereas working with almost unmodified software is its only real claimed advantage
05:07:11 <zzo38> And, to send capabilities is by passing messages between processes, including the initial message (the process won't run if the initial message contains no capabilities, unless a debugger is attached)
05:07:47 <korvo> ais523: Or we switch to unguessability. Usually a reference within a process is "unforgeable"; there's formally no tools for constructing references. But whenever we have any sort of coding, we have "unguessable" references instead. Cryptography, ASLR, etc.
05:08:25 <ais523> my working example is C code like «enum user_mode { admin, user }; struct userinfo { char name[12]; enum user_mode mode; }; void set_username(struct userinfo *info, char *name) { if (strlen(name) > 12) return; strcpy(info->name, name); }
05:08:34 <sorear> ? CHERI fails closed. if you have C code which relies on accessing objects with pointers derived from pointers to other objects, you have to modify it in order for it to do anything on CHERI besides segfault
05:08:34 <korvo> I'm currently looking at Smalltix as supporting capabilities by not having the tools necessary to construct paths e.g. into the Nix store. This is yet another step on the transitional path that Nix has laid out.l
05:08:54 <ais523> every "C but memory-safe" I've seen won't catch the bug in this code
05:09:31 <ais523> (CHERI only does if you explicitly narrow the permission on the info->name projection, but doing that would break too much C code)
05:10:16 <sorear> the only times you need to modify CHERI C to make it *more* secure is if you have a user-level memory allocator and you want CHERI to know about and enforce the subobject boundaries
05:10:35 <ais523> korvo: I don't trust unguessability as a security feature at all, given how many speculative execution vulnerabilities there are
05:10:51 <ais523> sorear: does CHERI catch the bug in the code I posted above?
05:12:12 <korvo> ais523: Um? Maybe we're talking about different stuff. Unguessability is stuff like TLS being technically insecure in the sense that a determined attacker could crack a key. Or are you thinking of like timing attacks?
05:12:35 * korvo distracted by kitchen
05:12:47 <ais523> korvo: I'm mostly thinking of same-CPU covert channel attacks (which includes timing attacks)
05:13:16 <ais523> if the attacker can't run code on your CPU then things are safer
05:13:26 <b_jonas> I think I'll go with option 1, where trying to write a literal array has the same semantics as trying to index out of bounds into an array or use-after-free of an array. the UB or runtime check is already there because of the array indexing, so it doesn't really have extra cost to add more of it.
05:13:37 <korvo> ais523: Ah, okay. That stuff threatens unforgeability too. In general, colocation doesn't appear like it can be safe unless we're doing hypervirt.
05:13:40 <sorear> https://ctsrd-cheri.github.io/cheri-c-programming/impact/subobject-bounds.html
05:14:13 <ais523> sorear: OK, that's exactly what I thought – CHERI can't support it without code changes, but can support it with
05:14:14 <korvo> And then ISTR that there's some master theorem about how your ISA has to be hypervirt-safe from the late 80s.
05:14:22 <strerror> If your security feature is “like ASLR”, there are already a lot of attacks on that, which need not involve CPU exploits; e.g. printf("%p")
05:14:38 <sorear> https://cheri-compiler-explorer.cl.cam.ac.uk/z/aKq1n7 what code changes?
05:15:19 <ais523> sorear: in that you used a compiler option that breaks too much existing code to enable by default
05:15:37 <zzo38> I thought also that it should need a capability to be able to measure timing at all. That also partially mitigates timing attacks, although it is not the only thing to do. Applications programs are deterministic except for system calls (and if the program is suspended or terminated by something external, which it cannot detect), and there are not many system calls, so hopefully that should help.
05:16:05 <ais523> zzo38: I also thought that
05:16:37 <korvo> zzo38: Yes, timers have to be tamed, and it's an open problem how to best do it.
05:17:04 <sorear> I'm struggling to interpret this as good faith. All of the provable, involable inter-object OCAP protections are worthless because intra-object protection fails in some cases that were never advertised?
05:18:20 <ais523> sorear: it's more "I've seen many people have a default assumption that an allocation boundary is a security boundary, and that isn't true for a substantial amount of existing C code" combined with "you need some rules for telling the compiler when a subobject boundary is supposed to be restrictive and when it isn't"
05:18:40 <ais523> programmers frequently use subobject boundaries that aren't supposed to be restrictive, and frequently use subobject boundaries that are
05:18:43 <zzo38> korvo: I think that redesigning the entire system is the way to do it, although it is possible that other people have other ideas.
05:19:19 <ais523> it doesn't make the protections worthless because a pretty high proportion of spacial exploits are cross-allocation
05:19:29 <ais523> so you're getting a pretty good mitigation percentage
05:19:43 <ais523> but there isn't a magic bullet to getting 100% memory safety from existing C programs
05:19:44 <b_jonas> zzo38: this doesn't apply to all the vulnerabilities mentioned, but it's really hard to keep a fast L1 cache, paging, SMP, large main RAM, and a fast CPU clock cycle, without also having lots of complexity that can cause vulnerabilities.
05:20:36 <zzo38> b_jonas: Yes, although some of these complexities can be avoided (and in some of the cases, they can be handled by the compiler instead)
05:21:15 <ais523> (interestingly, apparently the iOS kernel has a rule of not mixing things with different security properties within a single allocation, i.e. you need to use two different allocations with one pointing to the other – that means that an allocation boundary really is a security boundary inside the iOS kernel)
05:22:38 <b_jonas> ais523: hehe, writing past the end with strcpy.
05:23:11 <ais523> b_jonas: I wanted an example that a) is a plausible example of a bug that might occur and b) is easy for C programmers to notice as being buggy if told there's a bug there
05:23:44 <sorear> the point is compartmentalization, unaudited code can fail to be memory safe but it cannot be memory unsafe in ways that violate the security of code that _has_ been audited
05:23:59 <b_jonas> strerror: ASLR isn't trying to be unguessable in the cryptographical sense, it never did. pointers don't have enough address bits for that.
05:24:33 <ais523> sorear: OK, that's valid (although it differs from the security claims I typically see on the subject)
05:25:19 <korvo> zzo38: In Monte, the only way to get a system timer is with a top-level capability. It gives out absolute timestamps, but we called that .unsafeNow() since we were pretty sure that it's not safe. The idea is that a user might only get Timer.measureTimeTaken and nothing else. https://github.com/monte-language/typhon/blob/master/typhon/objects/timers.py#L65
05:25:34 <strerror> b_jonas: In a sufficiently large program it's not unguessable in any sense, since anything that prints a pointer (printf, JIT runtime, leftover debugging code) will disclose addresses immediately
05:26:12 <strerror> In the past “sufficiently large program” was emacs, now it's a web browser
05:27:05 <ais523> re: timing permissions, I think the ideal goal for a capability system would be "making it safe to run untrusted code" (browsers already do this!), and this raises the problem of preventing the code observing timing using network requests
05:27:29 <ais523> (it could also potentially use racing loops to create a timer, but that seems easier to fix at the compiler level)
05:27:54 <b_jonas> strerror: sure, that too, but I still think using cryptographically unguessable tokens for security makes sense in some cases, and is even hard to avoid in some, even if we suffer because it's undermined by virtualization putting untrusted code on the same CPU which may leak such values more easily than timing or power usage or other side channels
05:29:23 <b_jonas> ais523: sadly making it impossible to observe time and use it as a side channel is basically impossible in most practical settings. all settings where you want reasonable performance at the very least, and often even if you're fine with low performance.
05:29:26 <korvo> ais523: Networking's also a top-level capability (like a half-dozen fine-grained caps, actually) in Monte, and networking doesn't come with timing information by default. So it'd have to be a situation where you're permitted to call out to arbitrary webhooks to begin with, rather than a predefined situation.
05:29:28 <ais523> I have been thinking about ASLR a lot, I think too much ASLR is actually a net disbenefit to security (because it prevents you hardcoding pointers and the code that would otherwise hardcode pointers has to do something else)
05:29:30 <sorear> complexity rebalances in large systems. a big increase in µarch and compiler complexity saves a few % on time and energy, which means you get to make and install fewer chips and smaller power systems
05:29:31 <zzo38> korvo: I suppose it is one way to do it, and I would probably have the kernel to have a somewhat similar function; many application programs might use proxy capabilities, if they require any timing at all (for example, it is useful for many kind of programs to have the current date/time, but many (probably most) programs shouldn't need it)
05:29:55 <ais523> korvo: I'm mostly thinking of the "script on web page" situation – those are expected to be able to make network requests
05:30:16 <korvo> zzo38: pledge() is another cool approach. There's nothing wrong with having the time available in the VDSO; the problem comes from the assumption that any code in the process is allowed to touch the VDSO.
05:30:35 <b_jonas> ais523: I'm not sure, we are using dynamic linkers anyway to share libraries between processes, and they have to do relocation, and our dynamic linkers are robust enough, so why would ASLR make this worse?
05:30:46 <ais523> korvo: the problem is not just the vDSO, but the RDTSC processor instruciton
05:31:17 <korvo> ais523: Sure. Always worth remembering that E's authors were not able to fully rewrite ECMAScript to be cap-safe; ECMAScript is a big success story but it's still world-exposed.
05:31:24 <b_jonas> ASLR may still be a bad idea, but I don't think your argument proves that
05:31:31 <ais523> b_jonas: oh, I also see the dynamic linker as a problem – I think it allows too much
05:31:37 <ais523> but I'm not sure what the correct amount is
05:31:46 <sorear> ASLR was a big step back when the state of the art in attacks was return-to-libc (overflow a stack buffer and overwrite the return address with a pointer to system())
05:31:57 <zzo38> My own way is entirely involving capabilities, and would be a new instruction set too (so that there is no RDTSC, or at least, if there is, only the kernel is allowed to use it).
05:32:09 <b_jonas> ais523: even if the dynamic linker is allowed to load anything only when the process is starting, before it executes user code?
05:32:33 <korvo> ais523: Sure. We generally assume that a cap-safe environment must have "safe code loading", like e.g. JVM's bytecode verifier, to prove that the loaded code is not going to attempt any obvious wrongness. A code loader is safe when it respects isolation and confinement.
05:32:34 <sorear> arm and riscv both have no timer unconditionally exposed to user code
05:32:39 <zzo38> I do not want to use VDSO or whatever like that; when a program receives a capability, it might be a proxy capability, and a proxy capability can work like any other capabilities.
05:32:41 <b_jonas> I certainly see why dynamic linker invoked at runtime allows too much, but I like dynamic linker at startup time
05:32:43 <korvo> I suppose that this implies that the ISA itself must be tamed!
05:32:57 <ais523> b_jonas: one reasonable middle-ground would be what you suggest, but current dynamic linkers allow for the possibility of libraries loading at runtime and doing relocations both ways
05:33:47 <ais523> korvo: IIRC one of RDTSC and RDRAND has a way to disable it from the kernel and the other doesn't
05:34:26 <ais523> oh, right! one of my big realisations was you can prove that a program or portion of one doesn't receive via any side channel or covert channel via proving that it is deterministic
05:34:38 <sorear> the original riscv linux uABI guaranteed that user code _could_ access the cycle counter, was messily broken a couple years ago to dubious security benefit (if you have multithreading, you can estimate times by engineering a race, and noisy times can always be improved with statistics)
05:34:39 <b_jonas> ais523: certainly, but it's not like we can stop that because that function of the dynamic linker can be implemented completely in user-space by opening files with arbitrary filenames and mmap, and in contexts where you restrict those operations, you shouldn't allow invoking the dynamic linker either. now admittedly something like allowing to run untrusted code that can invoke the dynamic linker *is* a
05:34:44 <ais523> although this doesn't prevent it sending or forwarding via a side channel or covert channel
05:34:45 <b_jonas> bad idea even if people do it in practice in some high-level languages.
05:35:08 <zzo38> ais523: It is also one of my reasons for making it deterministic (by designing the instruction set and operating system in such a way)
05:35:46 <ais523> b_jonas: this would presumably be used in an environment where you need a capability to create new executable mappings
05:36:15 <korvo> ais523: Oh, there's no way that we would let the untrusted user submit ISA-specific instructions! Google tried that with Native Client, creating the amazing situation where exploits break through three distinct sandboxes like Tai Lung leaping out of prison at the beginning of Kung Fu Panda. No, we must JIT instead. That's why WASM and Monte do it, and why E had to become a distinct language from Java, Alice from ML, etc.
05:36:22 <sorear> deterministic concurrency would be an interesting security feature, but it doesn't help when mallory is doing RPCs and timing them on _her_ end
05:37:07 <ais523> sorear: yep, that's why I a) mentioned forwarding via a side channel and b) was worried about how to timing-sandbox network requests
05:38:10 <korvo> ais523: The tradeoff is something called a "spellserver". The user gives the spellserver a (cryptographic) cap and it executes (native) code on the user's behalf. The user isn't allowed to choose the code, but they are allowed to pass in other caps as arguments and delegate authority, so the spellserver can act on the user's behalf while doing optimized/privileged things.'
05:38:31 <sorear> native client checks every instruction in the image against an allowlist and ensures that no instructions not in the image can be executed without going through the validator again. I don't see how "ISA-specific" makes this any worse than JIT
05:38:49 <zzo38> In some cases, you can add extra delays where needed (e.g. a proxy capability might do this; my idea is that delay is one of the proxies included in CAQL)
05:39:04 <ais523> korvo: I hadn't heard the name "spellserver" before, but understand the concept
05:39:18 <b_jonas> ais523: I think one of the main difficulties is that even if you go most of the way to run untrusted code in a deterministic way and not allow it much IO capabilities, in the end you have to put some kind of timeout on it to stop it if it takes too much time, and that will be observable. but if you want any sort of performance (like in a Browser) then untrusted code can deliberately do things where
05:39:24 <b_jonas> timing can easily vary by a factor of hundred or thousand in a way that's very hard to prevent. so either you do some deterministic cycle counting but then your timeout will be vague by a factor of a hundred or thousand, or code will be able to observe timing.
05:39:50 <ais523> b_jonas: yes, I agree that this is a main difficulty
05:40:02 <zzo38> A proxy capability can also lie about the amount of time that has elapsed (this does not prevent external timing measurement, but can prevent internal ones)
05:40:22 <ais523> I guess you could go along the lines of "you have to prove your program will execute within X seconds or it doesn't get run" but that would require some really worst-case timing estimates
05:40:32 <korvo> sorear: The trick is to not sandbox at all. Instead of starting with a powerful encoding and trying to limit its behavior (taming), we start with weak primitives and add specific preselected behaviors for which we case-by-case prove safety. This means that the user does not have perfect control over what the CPU executes, but we already know that that control is exploitable, so we shouldn't offer it.
05:41:12 <ais523> korvo: fwiw I consider that to be a type of sandbox, too (but agree that it's massively preferable to the taming approach)
05:41:17 <sorear> nacl doesn't start off with a powerful encoding, it starts off with no allowed instructions and adds them one at a time
05:41:59 <zzo38> korvo: That is what I thought too. Usually this is by the use of a VM code, although I think a CPU could also be designed to help with it (in cooperation with the operating system kernel), although existing CPUs and operating systems are not that way
05:42:53 <korvo> The ISA is an encoding of behaviors.
05:43:10 <strerror> AFAIK, preventing information leakage and covert channels is much harder than preventing tampering. (This is also why unforgeable caps are better than unguessable.) In practice you want to share as little as possible, with air gaps or data diodes (yes, physical ones)
05:44:12 <strerror> I think it's reasonable to want a microarchitecture that prevents the latter, but the former is a lost cause
05:44:15 <zzo38> I also think that unforgeable is better than unguessable. Within one computer, I think it could work.
05:44:49 <korvo> With a language and CPU that work together, unforgeability can extend as far as the ports of a single motherboard. That's a pretty impressive integration!
05:45:06 <ais523> I'm a bit internally conflicted because it's clear to me that at least on present CPUs, a sophisticated attacker who can run arbitrary sandboxed code almost certainly has an arbitrary read primitive available – but most of our security depends on keys and passwords which are not safe in that threat model
05:45:24 <sorear> they got bored with nacl, dropped it, and are now adding LFI which as far as I can tell is exactly the same
05:45:54 <korvo> Well, assuming we trust the memory controller. E trusts iteratees and iterators and collections to be correctly implemented; Monte doesn't, or at least Monte assumes that remote computers can have incorrectly-implemented collections that iterate wrongly.
05:46:14 <zzo38> My idea is the operating system kernel and CPU to work together to do that; programming languages (e.g. a C compiler) might not (and does not need to know about the specific implementation, although of course the instruction set and system call interface would need to be known)
05:46:19 <b_jonas> there are a few contexts where we can afford the potentially huge performance hit, but most contexts where we want to run untrusted code aren't like that. so it's probably worth to pursue both routes: the apparently harder one of defining entirely new architectures without the traditional L1 cache where there are fewer timing differences – useful anyway for proven real-time industrial control
05:46:25 <b_jonas> applications so we might as well use it for something else too –, and the less hard one where we figure out how to do cryptographic operations in a way that the keys can't be leaked by timing or other side-channel attacks even to code on the same CPU, even if admittedly we have a bad track record with this.
05:46:34 <ais523> korvo: you're reminding me of the problems with mmapping files in Rust
05:46:46 <korvo> ais523: Right. But, also, simply-typed lambda calculi are cap-safe by default and it's clear to me that we can offer just about any computational abilty to users within a simply-typed context. We do this to ourselves.
05:47:07 <ais523> Rust programs frequently just do that in practice, even though it's unsound in theory (because the Rust implementation assumes that reading the same memory twice without writing it in between gives you the same value)
05:47:28 <sorear> i expect/hope we'll see a shift away from "isolation" and towards a model which distinguishes confidentiality domains from integrity domains
05:47:38 <strerror> Most of most people's security depends on them not being rich enough to be a target for serious attackers.
05:47:47 <ais523> you can work around the issue by mapping the memory as relaxed atomics rather than regular numbers, but few people actually do that
05:47:57 <sorear> integrity is cheap, confidentiality requires complete system partitioning and/or time slicing with complete state clears
05:48:27 <ais523> korvo: I assume you mean simply-typed lambda calculi with fixedpoint? not the non-TC version?
05:48:37 <korvo> Isolation's a really powerful primitive in distributed systems. Admittedly it's usually baked into spacetime and the configuration of computers in a room, but it's still useful.
05:48:40 <strerror> There are now devices like Yubikeys though, which sort of give you a segregated chip to store your keys
05:48:45 <zzo38> I have ideas about how to make it work with network transparency, although in that case many kind of external attacks are possible. You still cannot send or use a capability that you neither have yourself nor received from the other side, but exteral interference can still result in undesired operations with these capabilities (but encryption can mitigate this).
05:49:32 <strerror> ais523: hm, does mapping it as atomic actually remove the unsoundness, or just admit that it's there?
05:49:50 <korvo> ais523: I mean truly simply typed with no fixpoints. The sort of thing Cammy can do, by zero coincidence. TC means that the user will learn *something* about your computational substrate.
05:49:54 <ais523> strerror: it actually removes it, if you relaxed-read an atomic twice the compiler doesn't assume it'll get the same value both times
05:50:35 <b_jonas> the difficulty with making side-channel operations hard even with untrusted code running on the same CPU is that you can only make that work if *both* CPU manufacturers and compiler writers work on it together, you can't do it with just one side or the other.
05:50:41 <ais523> korvo: now you have me wondering how many useful programs can be written like that (both in terms of "it is possible to write" and in terms of "a typical program can figure out how to write")
05:51:11 <korvo> This was Monte's biggest weakness IMO. In Monte, E, Joule, etc. as well as Python's Twisted or Ruby's EventMachine, there's simply no guarantee of productivity for a sent message. There's not even a guarantee of receipt or way to find out what happened in case of error. Great model for UDP but terrible for in-memory event queues.
05:51:15 <sorear> at the llvm level you also have "unordered atomics" which were invented to handle Java's constrained behavior for data races
05:51:29 <ais523> how does that differ from relaxed?
05:52:11 <sorear> relaxed atomics cannot be reordered if they might alias
05:52:41 <b_jonas> sorear: wait, is that true?
05:52:43 <sorear> presumably it doesn't work very well since c++ didn't copy it
05:53:11 <sorear> yes, two relaxed reads to the same address must be executed in program order
05:53:25 <b_jonas> ok, I still don't understand the C++ atomics model then
05:54:22 <sorear> 2016 riscv allowed load instructions to the same address to be executed in either order, so relaxed atomics needed a fence until the model was tightened (matching arm and ppc instead of alpha)
05:54:53 <ais523> b_jonas: relaxed doesn't require ordering between multiple threads, e.g. if thread A relaxed-reads address X then relaxed-writes address X, and thread B relaxed-reads address X then relaxed-writes a function of its value to address X, then the value thread A reads can be based on the value that thread A writes
05:54:58 <b_jonas> so this java thing would be something more relaxed then relaxed atomics, but more strict than ais523's operation that lets you read an integer with valid but undefined result in case of a data race, because it still wouldn't allow tearing so you'd keep memory-safe pointers?
05:55:45 <Sgeo> https://en.wikipedia.org/wiki/ALGOL_68#Books,_channels_and_files
05:55:54 <ais523> (although this is only allowed if the value it writes doesn't depend on the value it reads – programs aren't supposed to be able to create an actual time paradox, even using relaxed atomics)
05:56:43 <sorear> pointer tearing can't happen on any real architecture ("single-copy atomicity"). fat pointers e.g. Go are a separate issue
05:57:31 <sorear> time paradoxes are called "out of thin air reads" and are unfortunately allowed in most memory models
05:57:45 <ais523> sorear: in the C++ memory model they're disallowed by fiat
05:57:52 <ais523> the standard says not to do them, without defining what that means
05:58:15 <sorear> I do love standard requirements that don't mean anything
05:58:35 <b_jonas> sorear: of course, but I think the read operation that ais523 wants would allow pointer tearing
05:58:45 <ais523> fwiw I am now at this point almost convinced that the correct definition is "do not create a loop in the happens-before + semantically-depends relation" although I may have problems actually justifying it
05:59:18 <ais523> b_jonas: I'm fine to allow pointer tearing because part of the rules for the operation is that if there is a race condition you don't do anything with the resulting value
05:59:18 <b_jonas> I can see why these are hard problems at least
05:59:30 <ais523> having a torn pointer is safe as long as you never dereference it
05:59:47 <b_jonas> ais523: but are you allowed to use the torn value as an integer?
06:00:00 <b_jonas> or do you have to check before you're even allowed to do arithmetic or conditionals on it?
06:00:05 <ais523> err, not just happens-before + semantically-depends, it also includes read-written-value
06:00:35 <ais523> b_jonas: with my suggestion, no, but I can see an argument that it should be yes
06:01:04 <ais523> in fact there was a long discussion about that in the Rust forums or bug tracker (I forget which)
06:01:25 <sorear> (also fun: `final` affects the memory model! if you have a class with final fields and you're on Alpha which does not enforce in-order loads in the presence of an address dependency, if you receive an object pointer you need to fence before reading final fields so the fields can't appear to change)
06:01:33 <ais523> and my attempted proofs that my version was safe didn't work for the version where using the read value as an integer were possible
06:02:44 <ais523> (that doesn't necessarily mean that it is unsafe, just that it's harder to prove safe)
06:04:03 <ais523> this came up in the context of implementing LLVM's "freeze" operation in Rust (which works as follows: in LLVM, "undefined" is a separate value that all types can have; an LLVM-freeze changes undefined values to an arbitrary value and is a no-op on defined values)
06:04:24 <ais523> and there was a huge debate about whether this was safe to add to the language, in the sense of not causing miscompiles
06:07:11 <ais523> (my guess is that it probably is, but I can't prove it and it may be difficult to prove)
06:07:16 <zzo38> I think you would have to ensure that the implementation is correct, but it could be done, e.g. marking a register as "in use" without changing its value, in one case, possibly
06:19:20 -!- Sgeo has quit (Read error: Connection reset by peer).
06:22:40 -!- ^[ has quit (Ping timeout: 256 seconds).
06:34:40 -!- ^[ has joined.
06:54:47 -!- ais523 has quit (Quit: quit).
07:21:54 -!- tromp has joined.
07:32:56 -!- wob_jonas has joined.
07:34:23 <wob_jonas> ais523: so an operation that can read an integer from memory non-atomically such that is unpredictable but not a trap value when there's an inter-thread race would be useful for running untrusted multithreaded code, which is why I think this came up in Java
07:35:41 <wob_jonas> but I don't know if that's the same operation as reading a relaxed atomic.
07:47:55 <wob_jonas> does that LLVM-freeze only make sense for types like built-in integer or float types, or would it also apply to pointers? because I don't see how you could implement it for pointers.
07:48:15 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
07:49:35 <wob_jonas> hmm, in https://logs.esolangs.org/libera-esolangs/2025-10-21.html#lse you say that relaxed atomics is appropriate for mmapping areas that other processes could modify, so maybe what I'm asking for *is* just relaxed atomic reads and writes. but the problem is that in the C++ model, relaxed atomic reads are considered unsafe if another process does a
08:02:10 -!- tromp has joined.
08:12:35 <wob_jonas> oh yeah, question. can you safely use C11 call_once from a signal handler, in the sense that you share a global once_flag variable that you may use from either any thread of the process or a signal handler in any thread? and if I want this, should I declare it volatile?
08:21:15 <wob_jonas> I guess this might not be the right question, because that's rarely useful.
09:06:09 -!- ais523 has joined.
09:07:30 <ais523> although I don't know for certain, I don't see why you couldn't LLVM-freeze a pointer (although, if the value was previously undefined, you wouldn't be able to dereference the resulting pointer – it would still be safe to treat its address as an integer though)
09:09:17 <ais523> and yes, I think the C++/C11 atomics model disallows a race between an atomic read and a non-atomic write – but on most processors it's impossible to do a write weaker than relaxed unless the write splits a cache line (I think the discussion about doing relaxed-atomic reads of mmaps required you to read it a byte at a time, because of that)
09:09:45 <ais523> in other words, your atomic read at the C++ level is racing with an atomic write at the asm level, so it works if you interpret the other process as being written in asm/machine code
09:10:22 <ais523> I guess technically this would be unsound if an implementation decided to optimize across processes, but that seems like an unlikely optimisation choice
09:10:54 <wob_jonas> oh, so not only do I have to do relaxed atomic reads, I have to do bytewise relaxed atomic reads? that sounds kind of annoying at first, but the compiler can probably optimize it to larger reads when I read a whole aligned word's worth of reads.
09:12:55 <ais523> I'm not sure whether compilers are allowed to take advantage of the fact that reads are guaranteed never to be torn, if it can't tell what's doing the write
09:13:01 <ais523> * are able to take advantage
09:13:32 <ais523> I can't think of any optimisations that would allow, so just reading it atomically as aligned u32s or the like is probably going to be safe in practice
09:14:04 <ais523> the glibc documentation says that their call_once is currently safe to call in a signal handler but they aren't committing to that yet
09:14:27 <ais523> this implies that in C11 generally it isn't safe, otherwise the glibc devs would probably have committed to following the standard
09:15:17 <ais523> (and the obvious implementation of it could deadlock if called from a signal handler)
09:16:20 <ais523> …actually I'm not sure *how* it could be safe to call from a signal handler, what happens if the signal arrives halfway through the interrupted thread running the function?
09:17:59 <wob_jonas> I'm not sure C11 even tries to define how user-defined signal handlers in a multi-threaded program work. I have the feeling that the C standard doesn't even want to be concerned with signal handlers, they are just forced to because the signal function was in an early C standard as kind of a mistake and they don't want to remove it now.
09:21:53 <wob_jonas> as for calling init_once from a signal handler while the initialization function is already in progress in the same thread, I think from the perspective of init_once, that's not really worse than an ordinary recursive call of init_once from the initialization routine when signal handlers aren't involved
09:26:40 <ais523> b_jonas: looks like call_once is not safe to call from a signal handler, despite the glibc docs (I have a TIO URL but it's too long to paste and am not sure I trust any of the URL shorteners I'm aware of)
09:27:29 <ais523> https://tio.run/##fVA7a8MwEN79K46UFJnYpZnddCshcyBTQYiTbAtkKUiyl5C/HlVXOy3pUA16fPoed4d1h5jSk7ZoRqngLfZeCRle@vfiFwy6s8L8waLUjqAiRBE1grOoeGtEB7Q1P/jkTD6NguzCRXSDRh4B3Wij8rCD10ydnJbQOsfoUsKlgLw2m4XUfD@90EGx42F//Nifyqa4LrKguon3wkqjPNM2Uo4dh7sLCmM41caeqa6KYmY1cQeh7UPo3Oo9pnpwL5v/HOnr7LNpy1Zr@WlXFVA55dIEZaZ0Q5KEVNd5fjvcblNtzvPMvwA
09:27:48 <ais523> doing it as a separate line was enough
09:28:29 <ais523> this looks very much like it deadlocked (and it's hard to imagine any other reasonable result)
09:29:11 <ais523> in particular it timed out without any noticeable CPU usage
09:29:38 <ais523> (what little CPU usage is shown is probably almost entirely from the compiler)
09:32:56 <wob_jonas> ais523: but wouldn't call_once deliberately deadlocked if you tried this without the signal handler, as in if foo tried to call_once(&flag, ...) ?
09:33:28 <ais523> wob_jonas: right, but it's an async signal, those can happen at any point (that's kind-of the definition of an async signal)
09:34:07 <ais523> so to be async-signal-safe, the code has to work regardless of when the signal arrives, including the most inconvenient possible time (which in this case is the middle of the function passed as an argument to call_once)
09:35:06 <ais523> a possible "fix" would be to mask all signals temporarily while running the call_once function (although that would have its own issues)
09:35:28 <wob_jonas> right, so you just shouldn't call call_once from a signal handler, there's no sane semantics, which is why my original question was a bad one.
09:36:19 <ais523> well the glibc documenters seem to have got this wrong too, so it's at least non-obvious to some people
11:29:48 -!- amby has joined.
11:37:43 -!- Lord_of_Life has quit (Ping timeout: 256 seconds).
11:40:17 -!- Lord_of_Life has joined.
11:40:44 -!- chiselfuse has quit (Remote host closed the connection).
11:40:57 -!- chiselfuse has joined.
11:58:01 -!- wob_jonas has quit (Quit: Client closed).
12:27:32 -!- sytra has joined.
12:28:32 -!- ais523 has quit (Quit: quit).
12:30:08 -!- sytra has quit (Client Quit).
12:30:21 -!- sytra has joined.
13:24:08 -!- sytra has quit (Quit: sytra).
13:54:53 <esolangs> [[Mango]] N https://esolangs.org/w/index.php?oldid=166337 * RaiseAfloppaFan3925 * (+1464) Created page with "{{Template:Stub}} Mango is an unimplemented programming language by [[User:RaiseAfloppaFan3925]] inspired by modern 2010-20s slang. {{infobox proglang | name = Mango | paradigms=imperative, procedural | author = [[User:RaiseAfloppaFan3925]] | year = 2025 | c
13:56:40 <esolangs> [[User:RaiseAfloppaFan3925]] https://esolangs.org/w/index.php?diff=166338&oldid=159606 * RaiseAfloppaFan3925 * (+179)
14:20:59 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
14:21:46 -!- tromp has joined.
14:23:52 -!- simcop2387 has quit (Ping timeout: 260 seconds).
14:23:52 -!- perlbot has quit (Ping timeout: 260 seconds).
14:33:51 <esolangs> [[Sorry]] https://esolangs.org/w/index.php?diff=166339&oldid=139445 * Yayimhere2(school) * (+1)
14:34:48 <esolangs> [[Sorry]] https://esolangs.org/w/index.php?diff=166340&oldid=166339 * Yayimhere2(school) * (+0)
14:54:47 <esolangs> [[Special:Log/newusers]] create * Swatinine * New user account
14:59:09 -!- simcop2387 has joined.
15:02:06 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=166341&oldid=166302 * Swatinine * (+150)
15:02:33 <esolangs> [[User:Aadenboy]] https://esolangs.org/w/index.php?diff=166342&oldid=166330 * Aadenboy * (-149) /* ESOLANGS */ class="rectwrap"
15:02:45 <esolangs> [[A=ab=bc=cd=d!]] https://esolangs.org/w/index.php?diff=166343&oldid=165004 * Aadenboy * (+17) /* Truth Machine */ class="rectwrap"
15:02:53 <esolangs> [[User:Swatinine]] N https://esolangs.org/w/index.php?oldid=166344 * Swatinine * (+26) Created page with "Hello! I'm Swatinine! "
15:03:58 <esolangs> [[User:Swatinine]] https://esolangs.org/w/index.php?diff=166345&oldid=166344 * Swatinine * (+38)
15:04:02 <esolangs> [[Mango]] https://esolangs.org/w/index.php?diff=166346&oldid=166337 * RaiseAfloppaFan3925 * (+992) Added Deadfish interpreter example + new keywords
15:07:43 <esolangs> [[Mango]] M https://esolangs.org/w/index.php?diff=166347&oldid=166346 * Aadenboy * (-9) remove unnecessary namespace inclusion
15:08:01 <esolangs> [[Mango]] https://esolangs.org/w/index.php?diff=166348&oldid=166347 * Aadenboy * (-1) move infobox to top
15:11:11 <esolangs> [[Mango]] M https://esolangs.org/w/index.php?diff=166349&oldid=166348 * RaiseAfloppaFan3925 * (+1) oops typo in the category, changed to high level
15:38:26 <esolangs> [[Talk:TDQ]] N https://esolangs.org/w/index.php?oldid=166350 * Yayimhere2(school) * (+143) Created page with "Hey, thanks for that!!! --~~~~"
15:38:45 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
15:46:09 <esolangs> [[Thing]] https://esolangs.org/w/index.php?diff=166351&oldid=135948 * Yayimhere2(school) * (+81)
16:04:41 -!- tromp has joined.
16:42:46 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
17:04:03 <esolangs> [[Bijection]] https://esolangs.org/w/index.php?diff=166352&oldid=138371 * Yayimhere2(school) * (+5)
17:05:38 -!- tromp has joined.
17:06:56 -!- Yayimhere has joined.
17:14:24 -!- Yayimhere has quit (Quit: Client closed).
17:14:34 -!- Yayimhere has joined.
17:17:52 <korvo> Yayimhere: Morning.
17:19:11 <Yayimhere> Korvo: Morning! are you good? and are you working on anything lol?
17:25:39 <korvo> Oh, to not be working on anything. I'm theoretically helping sorear clean up the NQL toolchain and merge in some community contributions, although frankly they do not need my help. I'm looking at Smalltix, a brand-new way of doing Smalltalk in Unix which I might operationalize. And I'm thinking of cleaning up the recent stub for Joy, but I'm not sure what should be done besides infobox.
17:28:02 <Yayimhere> cool! I actually just looked at the page for smalltix(though I dont understand, but thats a me problem). me personally, am trying to make an esolang focused on being undecidable, cuz I though it was interesting, for making a simple language. but its not going very well lol. but ill figure it out. but yea, nice!
17:28:55 <Yayimhere> ive been very inspired to do work, cuz I read some of my older works, and found them, quite good in my opion
17:30:18 <korvo> Undecidability is fairly easy. It's undecidable whether untyped lambda terms have normal forms, for example. What might your language compute?
17:31:20 <Yayimhere> I know it's simple, but I want to duo it creatively. but I think ill work on (if possible) make the language compile, self compiler style. but tbh idk what the hell im doing lol.
17:40:24 <korvo> No worries. There's no rush.
17:40:26 <Yayimhere> ok I think ive found a got concept!
17:41:23 <esolangs> [[Joy]] https://esolangs.org/w/index.php?diff=166353&oldid=166110 * Corbin * (+156) Fill out a bit more of this stub. I was going to be upset that this isn't just a contribution to catlangwiki, but on the other hand this is an opportunity to write a better article.
17:43:49 <esolangs> [[Quote]] N https://esolangs.org/w/index.php?oldid=166354 * Corbin * (+341) Stub a common concept. Not sure of the best name for this article.
17:51:42 <esolangs> [[Manfred von Thun]] N https://esolangs.org/w/index.php?oldid=166355 * Corbin * (+328) Stub for Von Thun.
17:54:05 -!- Yayimhere has quit (Ping timeout: 250 seconds).
17:58:09 <esolangs> [[Talk:Concatenative calculus]] N https://esolangs.org/w/index.php?oldid=166356 * Corbin * (+840) Still thinking on this one.
18:04:07 <esolangs> [[Concatenative language]] https://esolangs.org/w/index.php?diff=166357&oldid=156941 * Corbin * (+137) Update bluelinks. catlangwiki doesn't do underscores like MW, so I've hacked up something equivalent.
18:06:32 <esolangs> [[Concatenative language]] M https://esolangs.org/w/index.php?diff=166358&oldid=166357 * Corbin * (+14) Tighten up a bit of phrasing. Link [[monoid]] as main article for monoidal viewpoint.
18:07:51 <esolangs> [[Mlatu]] M https://esolangs.org/w/index.php?diff=166359&oldid=156894 * Corbin * (-12) Bluelink.
18:08:17 <esolangs> [[Special:Log/newusers]] create * Goodbyevoidhelloworld1 * New user account
18:10:35 <esolangs> [[Cammy]] M https://esolangs.org/w/index.php?diff=166360&oldid=165389 * Corbin * (+28) Bluelinks.
18:12:02 <korvo> One must imagine Sisyphus happy.
18:12:16 <korvo> Really, one must imagine that Sisyphus deserved it~
18:44:05 <esolangs> [[Quote]] https://esolangs.org/w/index.php?diff=166361&oldid=166354 * Aadenboy * (+64) distinguish? might be a little silly
18:46:49 -!- vista_user has joined.
18:47:07 -!- vista_user has changed hostmask to ~vista_use@user/DOS-User:11249.
18:53:17 <esolangs> [[Quote]] M https://esolangs.org/w/index.php?diff=166362&oldid=166361 * Somefan * (+33) str
18:55:24 <korvo> vista_user: Oh, I thought you were another webchat user. Welcome nonetheless.
18:58:34 -!- vista_user2 has joined.
18:58:39 -!- vista_user has quit (Ping timeout: 250 seconds).
18:58:39 <vista_user2> 20:55:24 <korvo> vista_user: Oh, I thought you were another webchat user. Welcome nonetheless.
18:59:46 -!- vista_user2 has changed nick to vista_user.
18:59:57 -!- vista_user has changed hostmask to ~vista_use@user/DOS-User:11249.
19:01:15 <esolangs> [[Quote]] https://esolangs.org/w/index.php?diff=166363&oldid=166362 * Aadenboy * (+23) format
19:01:34 <esolangs> [[Adofaiscript]] N https://esolangs.org/w/index.php?oldid=166364 * * (+1889) Started it
19:03:39 <esolangs> [[Adofaiscript]] https://esolangs.org/w/index.php?diff=166365&oldid=166364 * Aadenboy * (+50) {{WIP}} + categories
19:04:16 <esolangs> [[Quote]] M https://esolangs.org/w/index.php?diff=166366&oldid=166363 * Corbin * (+12) Funnier.
19:10:46 <esolangs> [[Quote]] https://esolangs.org/w/index.php?diff=166367&oldid=166366 * Aadenboy * (-26) merge
19:27:50 -!- sytra has joined.
19:30:43 -!- vista_user has quit (Ping timeout: 250 seconds).
19:48:08 -!- FreeFull has joined.
21:14:03 -!- sytra has quit (Quit: sytra).
21:19:48 -!- ais523 has joined.
21:19:54 <ais523> https://tio.run/##rVLRSuNAFH3PVxwrthNIW1OXhV1rHhasFkQFEV8WZJK5aYYdZ8Jkxj6sfnudJK1QX0Qw5GHmnjvnnHu4OW@qzabgDhncpMB8Pjq/WYyiQ6kL5QVh3jghzaTK9kpW6tV@jazVH9q8luHxh6dypblqa5HUDk9cavZspIjxP0L4epzdLS9ul7fnCcLhcXlxHZ/2KLnn3Jcs0Aa9BNf3V1cJHpc3iz@LBD@Of/2MTzGdoqmMVwI5gUObsamRe4ei4npFDYx3tXcdYecaZzju@eswlyvZ4Ej81YME5dpKR2xwSUqZBGtjlTgI9TT8swS9i7iXDDSa1kpq2mN6CAwhKzizbQfLqTSWUMuakFvi/@LfOGo6wRBsaDGWdb7i3dSKqGaz7e37LDdOKvUF47x0ZL/g@xOnpfJNxd4d7fUsWqyV7@
21:19:56 <ais523> FPhCw5b3Wr8xqF7Y1WRdEt89jARZOpw0k2nGGWDVOk2fAEL32kSHGIZs3r3YRci/YY9iOBq0h3s467Wdt7m9MWBzNK7NJEH0wa1rMwWmw2bw
21:20:06 <ais523> this is me trying to understand stdio buffering
21:20:27 <ais523> but the output is really confusing and not only doesn't seem to match the docs, I can't form a consistent model of it
21:24:08 <ais523> (sorry about the link being split over two lines)
21:29:51 <int-e> stderr is unbuffered by default?
21:30:10 <int-e> and the `setvbuf` changes that
21:33:40 <ais523> int-e: it's documented as line-buffered if interactive, fully buffered if not interactive (and in this case stderr is a pipe, so not interactive)
21:34:08 <ais523> but, if it were fully buffered, then the fwrite call shouldn't be able to see that the pipe has broken because it shouldn't produce output at all
21:34:16 <ais523> the second fwrite call, that is
21:34:25 <b_jonas> python 3.14 has significant changes in its garbage collector implementation, just in case anyone's interested in that sort of thing
21:34:26 <ais523> and returning 1 is just bizarre
21:35:00 <int-e> "The standard error stream stderr is always unbuffered by default." -- setvbuf(3)
21:35:41 <ais523> int-e: ah, you're reading the man page and I'm reading the info page
21:36:00 <ais523> the info page doesn't have that special case (and in fact says there are no special cases other than the interactive case)
21:36:12 <ais523> that's one mystery solved, at least – but the output for buffered stderr still doesn't make sense
21:36:33 <ais523> (and the buffering clearly does something because the second fwrite returns 0 rather than 1 without it)
21:37:13 -!- vista_user has joined.
21:38:31 <int-e> ais523: It acts normal for me in a terminal. (12, 12, -1)
21:38:49 <ais523> ooh, let me try in mine
21:39:18 <ais523> yes, normal in mine too
21:40:29 <ais523> (the original thing that prompted the experiment is a Rust bug report that was traced to stderr flushing doing something unexpected, although that was on mingw – there was speculation that it might act differently in a container for some reason, and now there's evidence of it acting differently in a sandbox/container on Linux too which is interesting)
21:41:09 <ais523> although it might be a case of different glibc version, or the like
21:41:28 -!- vista_user has quit (Remote host closed the connection).
21:45:23 <esolangs> [[Izeva]] N https://esolangs.org/w/index.php?oldid=166368 * Ivava * (+922) Created page with "{{WIP}} :'' Does not apply to '''IZEVA - International Council on Clean Transportation''' and other '''Izeva''' is easy(Maybe. It hasn't cycles) character-by-character esolang, has IO based on single accumulator. Hasn't good or useful commands. The only pleasant thing is a
21:46:47 <ais523> I think my computer has glibc 2.41 and TIO has glibc 2.28, although it's hard to be confident
21:52:22 <int-e> https://tio.run/##S0oszvj/P7lAQT8nM8nMBEQm6xrpGVnoFecr6HHpoQj8/w8A
21:53:31 <int-e> pretty confident about this one ;-)
21:56:06 <ais523> huh, I didn't realise you could just execute glibc as an executabe
21:56:53 -!- CodeMelon has joined.
21:57:48 <ais523> although it's usual to wait on IRC for a while to find that out, because people aren't necessarily checking it constantly
21:58:12 <ais523> for this channel, a good option is to read the logs to see if people have been talking (but not all channels have public logs)
21:58:27 <CodeMelon> I've just started going down the esolang rabbit hole
21:59:18 <CodeMelon> And ive wrote my first esolang script can you rate it for me?
22:00:23 <ais523> do you mean a program written in an esolang or a program that implements an esolang?
22:00:29 <CodeMelon> It's also a crude very short and not so fleshed out brainfuck explenation.
22:01:54 <ais523> reading BF is normally quite difficult
22:02:01 <CodeMelon> Its probably been done before anyway but this is my own version of this kind of script
22:02:38 <ais523> ah, we have a huge number of those already
22:02:48 <CodeMelon> Like a version of bf thats still bf but a little different
22:02:56 <ais523> so one more won't hurt much, but most of the existing ones aren't particularly creative
22:03:17 <korvo> CodeMelon: Out of curiosity, are you here from truttle1 the Youtuber?
22:03:46 <ais523> I agree that I don't think I understand what you've done
22:04:22 <CodeMelon> Can i just show you? Like is it allowed to write a short code snippet in chat?
22:04:36 <korvo> CodeMelon: Use a pastebin please! bpa.st is an option.
22:04:48 <korvo> Or maybe webchat does it automatically?
22:04:53 <ais523> don't post things directly in chat if they're more than about two lines long, use a pastebin instead
22:06:04 <ais523> ah, it's polyglot code
22:06:10 <ais523> between English and an esolang
22:06:20 <korvo> Guessing that the ASCII case bit is a carrier, like in the PNG format.
22:06:32 <ais523> korvo: appears to be https://esolangs.org/wiki/OOo_CODE
22:07:08 <korvo> ais523: Nice find.
22:07:19 <CodeMelon> Its said in the text and it does what it says it will do while explaining the basics of bf
22:07:40 <CodeMelon> So is this as my first esolang script good?
22:07:57 <ais523> in this situation you can use arbitrary ASCII text as a carrier, so it's basically just an encoding of a BF constant string printer
22:08:17 <ais523> so it isn't technically interesting, but it is artistically interesting – whether that's "good" or not is a matter of perspective
22:08:18 <korvo> Fun! I haven't checked that it's correct, but it's a decent concept. Did you generate this from another script or did you write it by hand? Impressive either way.
22:09:38 <CodeMelon> korvo I made a website that turns bf into oOo code and you can combine bf and self written text into oOo :)
22:10:08 <CodeMelon> Just a fun project i made this afternoon
22:10:17 <ais523> now I'm thinking about oOo code quines – it's easy enough if you just write the entire program with o and O, but making them use readable text as the carrier would be interesting
22:10:47 <ais523> it would by nature necessarily have to be substantially compressible, which means that the challenge would be to find a text document that was highly compressible but didn't *look* highly compressible, whilst still remaning meaningful
22:10:51 <korvo> Yep, that makes sense. Good times. Totally useless most of the time, unfortunately. Stego's the sort of thing that only makes sense during Little Brother scenarios, and then you need for your stego to be completely invisible rather than fairly obvious.
22:11:18 <ais523> korvo: it doesn't have to be steganography, it could be polyglotting instead
22:11:32 <ais523> i.e. the information channel's existence is obvious but it doesn't interfere with reading the source code a different way
22:12:00 <CodeMelon> I still have trouble writing quines theyre so scary :(
22:13:05 <ais523> something like the Code Golf Stack Exchange polyglot, being valid in over 300+ different languages/implementations, is *entirely* obvious signal but much of it may be hard to decode because it's masked by the other obvious signal
22:14:58 <korvo> CodeMelon: Once you've memorized the recipe, it'll be easier. Eventually it's a matter of figuring out how to print various characters. What have you tried so far?
22:15:24 <ais523> (now at 451 languages/implementations, I just checked)
22:15:47 <ais523> to be precise, two different versions of the same language only count if it produces different output without an explicit version check
22:15:56 -!- CodeMelon has quit (Quit: Client closed).
22:16:08 -!- CodeMelon has joined.
22:16:57 <CodeMelon> Umm... ive not tried to make a quine yet, ive just learned it today what it is since ive stumbled onto esolangs
22:18:13 <ais523> almost all quines follow one of two basic patterns, Underload has built-ins for all the relevant parts of the quning pattern so the quine is very short
22:18:52 <ais523> oh, the first quine is backwards
22:19:05 <CodeMelon> Woah ok thats very cool, gonna look into underload today after ive gone to sleep(its 12pm)
22:20:09 <ais523> but writing a quine in any language is basically doing one of those two things – the hard part is normally regenerating the source code representation of a string from the string itself (Underload "a")
22:20:38 <korvo> CodeMelon: No worries. Have a good night. Glad to show you something new.
22:20:52 <ais523> (there are a few other ways to do quines, but most of them can be considered to be cheating in one way or another, or are just overly complicated versions of one of those two basic patterns)
22:22:54 <CodeMelon> Oh and heres the bf -> oOo / bf + text -> oOo site i made, Im on mobile btw (i program on mobile judge me) so the site might not look right on pc + im not a graphics designer, https://ozelotgamer.github.io/oOoCoder.html
22:23:15 <ais523> > let a = " in \"let a = \" ++ show a ++ a" in "let a = " ++ show a ++ a
22:23:16 <lambdabot> "let a = \" in \\\"let a = \\\" ++ show a ++ a\" in \"let a = \" ++ show a +...
22:23:29 <korvo> ais523: On my plate to write up: https://dl.acm.org/doi/pdf/10.1145/3759429.3762631 "Gauguin, Descartes, Bayes: A Diurnal Golem’s Brain"
22:24:06 <korvo> They propose a *gauguine*: a program that probabalistically infers its own source code given a description of its own behavior.
22:24:40 <ais523> korvo: reminds me a bit of 7, except that its 6 command is deterministic
22:24:54 <ais523> (and very useful for quines)
22:25:22 <ais523> 7 is a bit of an impoverished version of the idea, though
22:25:48 <ais523> because it's just "generate source code for a program that produces this output" which in a sense isn't interesting
22:26:25 <ais523> a gaugine doesn't have to be diagonalised, right? it could just be "probabilistically infer the source code of a program given a description of its behaviour"
22:26:37 <ais523> …and I just realised that current coding LLMs actually do that%, albeit badly
22:26:39 -!- CodeMelon has quit (Quit: Client closed).
22:26:46 <ais523> * …and I just realised that current coding LLMs actually do that, albeit badly
22:27:06 <korvo> Sure. On the other end of the power spectrum, I'm looking at the self-normalization barrier, which I think really misses that a practical Unix terminal is simply typed in bytes.
22:27:36 <ais523> you could prompt one with "write a program that takes a text description of how a program behaves, and outputs the source code of that program" and with a perfect coding LLM that would make it into a quine
22:27:50 <ais523> in practice I doubt it'd manage a very good attempt
22:28:03 <korvo> Yep! Indeed, the paper's construction only specifies its behavior at a high level, and everything else is inferred. It looks like most of the program is about encoding the syntax of the Church language, which is the probabalistic PL used to run the program.
22:28:08 <korvo> To...sample from the program?
22:28:09 <ais523> although maybe it's seen LLM source code to plagiarise, I doubt it'd be able to recreate the weights / training data
22:29:09 <korvo> Ah! Yes, that concept's been explored. The original papers are on "Gödel machines", so named because there are obvious ways that they must provably be unable to improve themselves.
22:29:45 <korvo> The most recent iteration I saw was "Darwin Gödel machines", which added genetic algorithms and language models. TBF I think that genetic algorithms would be a great fit, but maybe not so much on the language models.
22:31:56 <ais523> it has crossed my mind that given a sufficiently good estimator of "how close" a program is to implementing a given behaviour, you could use a genetic algorithm to produce a program that implements it
22:32:09 <ais523> …and this may be what coding agents are actually doing, in the case where they work (rather than using knowledge or reasoning)
22:32:20 <korvo> ais523: Also, there's probably a way to cheat with LLMs. The fundamental idea is something like https://www.pcg-random.org/party-tricks.html
22:33:13 <korvo> And then there's a variety of ways to gradient-descent in the wrong direction for reasonably cheap. Something like "reverse prompt engineering" https://arxiv.org/abs/2411.06729v3
22:34:27 <korvo> Coding agents are definitely not doing genetic algorithms. Rather, they're doing chain-of-thought and lots of scratch tokens. We know from bertology that the models *can* emit high-quality code; we just didn't know what sorts of prompts and RL would elicit agentive code-writing behavior.
22:35:32 <korvo> (Cammy's reference implementation has a coding oracle "kamis" which uses the SOTA genetic algorithm for functional programming. See the refs on the wiki page.)
22:35:49 -!- Sgeo has joined.
22:36:18 <korvo> (The supervising author on those genetic-algo papers was O'Neill, the author of PCG. Curious coincidence?)
22:37:09 <ais523> korvo: well, a coding agent is a loop – take the existing state of the repository, prompt the agent with it, apply the action that it suggests
22:37:26 <ais523> one loop iteration clearly isn't an evolutionary algorithm, but the loop as a whole may be
22:37:39 <ais523> (I guess it can't be "genetic" unless you mix in old / parallel states)
22:39:47 <korvo> ais523: It has to have some sort of pressure which causes selection. In the O'Neill paradigm, fitness minimizes towards zero, but folks often run coding agents in an open-ended mode with ill-defined stopping points.
22:40:37 <ais523> korvo: right, so the condition for this to work is basically "is the LLM able to determine whether or not the new version of the repository is a better fit for the request than the old version?"
22:40:51 <ais523> and my guess is that sometimes that condition is satisfied and you get useful output, usually it isn't and you get useless output
22:40:51 <korvo> The full Brigg-O'Neill approach is to use structure (like, homomorphic structure) to rip apart candidates. Each candidate's shreds are put through a type-checker and added to the available gene pool.
22:41:23 <ais523> but notably, I don't think most coding agents revert when a change has made things worse
22:41:48 <ais523> (they may attempt to create a counteracting change, but there's no guarantee that it's a correct revert)
22:42:18 <ais523> I think you're right, agentic LLMs aren't actually doing this properly (but they would probably work better if they did)
22:42:49 <korvo> The key phrase to search is "meta in-context learning". The model has to optimize three goals at three different times: predicting the next token during pretraining, decreasing regret during RL, and writing good-enough code during inference.
22:43:31 <korvo> ais523: Haaaaave you read "Simulators" yet? The simulators viewpoint is the best way to understand how correct code might arise from a pile of memes.
22:44:05 <korvo> Warning: bertology, LessWrong-style rationalism, GPT-generated text; here's the original post: https://generative.ink/posts/simulators/
22:44:10 <ais523> I'm not surprised that it's possible, but I'm sceptical about how much of it is due to the LLM itself and how much is due to the scaffolding
22:45:09 <korvo> My work-safe summary: https://genai.stackexchange.com/q/260 Language models aren't agents, genies, oracles, or tools; they are general-purpose *simulators* which *simulate* conversations that humans might have with hypothetical agents, genies, oracles, or tools.
22:45:29 <korvo> They don't reason like humans. They reason like screenwriters imagining what humans might say.
22:46:19 <Riviera> Is that not "common knowledge?"
22:46:23 <korvo> RL turns any model into an agent. Take a weather simulation and say "make it look good for humans", and you'll eventually get attractive ladies who talk about how lovely the weekend will be. But the underlying simulation is only trying to get the weather right.
22:46:46 <Riviera> They were trained with textual input, and that's what they generate.
22:46:59 <Riviera> "Stuff that looks like texts."
22:47:00 <korvo> Riviera: Sadly, most practitioners seem to either believe that it's just matrix multiplication and don't know what a meme is, or think that they're literally summoning demons into the GPUs.
22:47:50 <korvo> The best take is from Emily Bender, who agrees with me that there's a gap between syntax and semantics. She has a great quip: "Play syntactic games, win syntactic prizes." They're meme machines.
22:48:12 <Riviera> I'm less concerned with whether I am missing something.
22:48:35 <ais523> korvo: I think you're arguing at a different point than the one I'm trying to think about
22:49:11 <ais523> i.e. I don't disagree with you but I'm working on a different part of the problem
22:49:48 <ais523> (and I'm using "agent" purely in the sense of "a program that runs an LLM in a loop and changes the input based on the output")
22:50:18 <korvo> ais523: Well, that thing that Naur talked about, theory-building, it's not something that the model can do. It's just not there. So whatever code is generated is *memetic*; it's emergent from cultural practices and shaped by the languages that we use to communicate, but not necessarily *grounded*. AI researchers complain of "symbol grounding".
22:51:29 <ais523> korvo: I am not disagreeing with this – I am instead trying to work out, in effect, how stupid/simple one loop iteration of an agentic loop can be whilst still producing useful output (and have a suspicion that you don't need anything close to as powerful as today's LLMs)
22:51:59 <korvo> Ah! We usually say that an agent has a *goal*. Without a goal and RL, that sort of loop will decay to a stationary distribution because the model is Markov.
22:52:10 <ais523> a good example is the "apply the suggestions that rustc gives you until you reach a fixed point/oscillator or compiling code" technique that beginners to Rust often try, and apparently try to work quite well
22:53:34 <ais523> one of my previous jobs was programming in OCaml, I found large refactors really easy to do, because you did the first step and then just chased compiler error messages until the refactor was finished
22:54:06 <ais523> I really enjoyed that (and Rust being OCaml-inspired, and intended to support the same basic workflow, is one of the things that initially got me to try it)
22:54:34 <ais523> this is the sort of thing that seems really automatable, although I never did automate it
22:55:51 <korvo> Idris has it automated. Write a type signature without a definition, add question marks for typed holes, and let the IDE search for candidates to recursively fill the holes. It only works in the simplest cases though.
22:56:37 <korvo> I added "kamis" to Cammy as an improvement on the older solver, "djinn", which does the simply-typed equivalent. It does great on basic plumbing but can't optimize for fitness WRT a goal.
22:56:44 <ais523> right – proof languages can get away with that, when used purely for proofs, because you can't end up with a wrong value of the right type
22:56:57 <ais523> anything of the type you want is sufficient
22:57:40 <ais523> fwiw, I have weird opinions about proof languages – I dislike tactics as a source code construct, as opposed to something you use in your IDE to generate the source of a proof
22:58:11 <ais523> because I want the proof to contain the actual reasoning, rather than a statement along the lines of "the proof is standard using these standard techniques"
22:59:26 <korvo> Makes sense to me. I'm on team Metamath; I only know Rocq, Idris, and I guess Agda for practical reasons. You'll find lots of esoteric folks agreeing; there's NQL, Metamath Zero, etc.
23:00:05 <ais523> Agda is the only one that I've used, and only for very basic things
23:00:09 <korvo> I've already tried a variety of models for generating uncompressed Metamath proofs. Totally useless, even with a constrained grammar that forces them to pick legal moves.
23:00:49 <korvo> I might as well spill the beans. One of my side projects involves the insight from the end of The Cell (2001): what if we inverted the direction in which the simulation is flowing?
23:01:33 <korvo> Rather than having a chat interface, what if we have the simulation integrate all of the available data, and only chat as an optional side-effect? Initial experiments are very promising, with the understanding that this can't be turned into exploitable labor.
23:02:15 <korvo> Wait, The Cell came out in 2000? Wow. I knew it was early 2000s, but that's early early.
23:02:41 <ais523> now you've got me thinking "by some methods of counting, 2000 was in the 1900s"
23:03:13 -!- FreeFull has quit.
23:23:59 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
23:25:42 <zzo38> I mentioned before attacking your ally deliberately in Pokemon, but I also remember once before I played, although I did not do so, if I was on the opponent's side, I would have deliberately attacked the ally (for damage, to attempt to knock out the ally, rather than only paralysis)
23:29:08 <ais523> zzo38: your example of intentionally paralyzing a Clefable confused me, because Clefable is one of the Pokémon that's least useful to do it on
23:29:40 <ais523> normally the reason I would want my own Pokémon paralyzed in competitive Pokémon is to protect them from being toxic-poisoned, but Clefable normally has Magic Guard and thus doesn't care about being toxic-poisoned as it is
23:30:18 <int-e> ais523: The TIO behavior is WEIRD, can't explain it, not even with the old glibc version in the picture. It would have to be patched, I think.
23:30:28 <ais523> (as this conversation suggests, Pokémon status conditions don't really reflect or act like their equivalents in real life)
23:30:53 <ais523> int-e: it's definitely running in a sandbox, which might potentially break things somehow?
23:31:16 <int-e> ais523: But it should not be doing any system calls, just fill the buffer.
23:31:54 <ais523> I can potentially see a sandbox breaking the output of fstat calls, which might cause glibc to act differently
23:31:59 <ais523> but acting that differently is strange
23:32:25 <zzo38> ais523: I know that, and it was a risky situation, so it might not have been the best move, but it was a risk I decided to take and it ended up helping.
23:32:30 <ais523> it's also possible that TIO injects extra flushes, somehow, in order to be able to show more output if a program crashes
23:34:37 <int-e> ais523: lol: https://github.com/TryItOnline/tiosetup/blob/master/files/system/tiopreload.cpp
23:35:31 <ais523> int-e: I don't think that explains the weird behaviour but it's definitely worth the link
23:35:47 <int-e> ais523: yeah it doesn't, but it's a ridiculous hack :)
23:36:03 <ais523> it isn't even hiding the output, just sending it to a different file descriptor
23:36:43 <ais523> also I'm vaguely surprised that defining a function called __builtin_printf actually works
23:36:50 <ais523> (in that it's permitted and isn't a no-op)
23:37:09 <esolangs> [[Mango]] https://esolangs.org/w/index.php?diff=166369&oldid=166349 * RaiseAfloppaFan3925 * (+0) Took me a while to figure out that this is a WIP and not a stub
23:37:26 <int-e> ais523: Oh, but there's another preload: LD_PRELOAD=libstdbuf.so:tiopreload.so
23:37:49 <ais523> both halves of that are suspicious
23:37:59 <ais523> stdbuf is a command that changes how stdio buffering works, and tiopreload could do anything
23:38:50 <int-e> ais523: and with LD_PRELOAD= ./t ... the behavior disappears (becomes 12/12/-1)
23:39:02 <int-e> so what is that thing
23:39:24 <ais523> oh, tiopreload is specifically just the thing that sends assertion failures to stdout
23:39:31 <ais523> so it must be stdbuf that's causing the problem
23:41:15 <ais523> int-e: I can reproduce locally using «stdbuf -i0 -e0 -o0 ./t 3>&2 2>&1 1>&3 | sleep 1»
23:41:19 <ais523> so it's a bug in stdbuf
23:47:12 <int-e> ais523: well, it's a bug in glibc where setvbuf(stderr, NULL, _IONBF, 0); followed by setvbuf(stderr, NULL, _IOFBF, 4096); behaves differently from just setvbuf(stderr, NULL, _IOFBF, 4096);
23:48:55 <int-e> ais523: and *that* I can actually reproduce locally. Isn't that fun.
23:49:57 <ais523> I checked the stdbuf source, and it doesn't seem to be a stdbuf bug (this conclusion is consistent with yours)
23:50:10 <ais523> in that stdbuf just calls setvbuf at program load and doesn't do anything else
23:51:02 <int-e> yeah, I decided to just emulate that behavior without the preload
23:52:53 <ais523> what if you give setvbuf an actual array as its second argument, rather than NULL?
23:53:25 <ais523> (should probably be static for lifetime reasons)
23:54:01 <int-e> then it's back to 12/12/-1
23:54:13 <ais523> the info page and man page disagree about what a NULL second argument means, which isn't particularly surprising given what we know so far
23:54:20 <ais523> (although the 12/1/0 behaviour doesn't match either of them)
23:54:35 <esolangs> [[Mango]] M https://esolangs.org/w/index.php?diff=166370&oldid=166369 * RaiseAfloppaFan3925 * (+502) Added 41 and 21
00:01:18 <esolangs> [[Mango]] M https://esolangs.org/w/index.php?diff=166371&oldid=166370 * RaiseAfloppaFan3925 * (+163) Open the door for contribution (do it on github idiot)
00:01:53 <Sgeo> " The programmer should
00:01:53 <Sgeo> bear in mind that 10,000 executions of all nonoptimum instructions would
00:01:53 <Sgeo> take less than 3 minutes longer than 10,000 executions of optimum instructions. If the programmer spends 15 - 30 minutes on each routine
00:01:53 <Sgeo> trying to save machine time by optimizing, this time may never be made up in the actual running of the problem."
00:02:13 <Sgeo> https://bitsavers.org/pdf/royalPrecision/LGP-30/LGP-30_Subroutine_Manual_Oct60.pdf
00:05:32 <zzo38> (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)
00:15:10 <int-e> 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
00:15:45 <int-e> huh, what's that hash
00:18:27 <int-e> 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)
00:19:10 <int-e> ais523: So I guess, don't use NULL there if you want to get a buffer.
00:19:26 <int-e> ais523: And of course a 1 byte buffer explains the 12/1 behavior perfectly.
00:21:10 <int-e> ais523: and you need a 1 byte buffer for ungetc(), I think that's the last piece of the puzzle
00:21:34 <int-e> that, and sharing the basic buffer setup between reading and writing
00:25:46 <ais523> 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
00:26:04 <ais523> so although that advice was historically correct I don't think it applies much nowadays for choice of compiler settings
00:26:26 <ais523> (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)
00:26:46 -!- amby has 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).
00:27:04 <ais523> 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
00:27:54 <ais523> int-e: a default size that is not a multiple of the page size looks so wrong to me
00:28:18 <ais523> (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)
00:30:19 <ais523> 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
00:37:12 -!- sytra has joined.
00:37:13 -!- sytra has quit (Remote host closed the connection).
00:39:22 <Sgeo> In the case of LGP-30, optimizing is ... apparently choosing where the data is located relative to the instruction in a particular way.
00:41:52 <int-e> ais523: Oh it's 8192, the 10k is from a test, my bad.
00:42:13 <ais523> Sgeo: was it designed for drum memory or delay line memory?
00:42:51 <Sgeo> 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
00:45:03 <ais523> 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
00:45:23 <ais523> to save the memory that would be needed for the "next instruction" pointer, whilst still getting decent speed
00:45:42 <ais523> 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
00:46:13 <Sgeo> I still have no intuition for why drives are better than drums (for secondary storage)
00:47:31 <ais523> you mean, like hard drives? I think it's just because they're more usefully three-dimensional
00:47:40 <ais523> with drum memory you only get the outer surface of the drum to work with
00:47:50 <ais523> with a hard drive you get the entire surface area of each platter
00:48:27 <Sgeo> I guess I keep thinking of hard drives as being single platter, but that... wasn't at all the case early on I think
00:48:58 <ais523> or to put it another way, multiple hard drive platters stack better into a small space than multiple drums do
00:56:38 <esolangs> [[Mango]] M https://esolangs.org/w/index.php?diff=166372&oldid=166371 * RaiseAfloppaFan3925 * (+9) comment
01:19:59 <esolangs> [[Mango]] M https://esolangs.org/w/index.php?diff=166373&oldid=166372 * RaiseAfloppaFan3925 * (+500) Added "nt tuff" + "so tuff"
01:24:14 <Sgeo> I was thinking how fascinating it would be if a computer used hard drive as main memory... LGP-21 did
01:32:38 -!- perlbot has joined.
02:25:20 * Sgeo vaguely wonders if perlbot has any relation to PerlNomic
02:28:40 <Sgeo> I'm not sure why I thought the Story of Mel was fictional
02:28:54 <Sgeo> When I first read it some time ago.
02:35:30 <zzo38> (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).
02:36:30 <zzo38> 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.)
02:37:52 <Sgeo> zzo38, is this a specific Pokemon game?
02:39:00 <zzo38> This was the Pokemon Unbound Battle Frontier (which is a separate .gba file from the main Pokemon Unbound game)
03:29:37 -!- b_jonas has quit (Ping timeout: 255 seconds).
03:46:58 <ais523> Sgeo: in case you haven't seen it: https://melsloop.com/
03:49:04 <ais523> (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)
03:52:12 <Sgeo> Came across it, haven't read it yet
04:07:16 <zzo38> I am glad that someone wrote it because I had also wondering about such things like that
04:14:41 <zzo38> (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)
04:32:52 <Sgeo> 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
05:07:49 -!- Yayimhere has joined.
05:09:56 <Sgeo> "Machines with serial number 1.2 or less read 4 of the 6 channels
05:09:56 <Sgeo> into the computer. "
05:10:20 <ais523> 1.2 would be a fun serial number
05:10:36 <ais523> I guess this is old enough that making 12 computers of a given model would be a lot
05:11:46 <Yayimhere> what are we working on around here?
05:11:54 * Sgeo is learning about LGP-30
05:11:59 <Sgeo> https://bitsavers.org/pdf/generalPrecision/LGP-30/manuals/LGP-30_Programming_Class_Notes.pdf
05:13:27 <ais523> I wonder whether there's a channel specifically for retrocomputing
05:13:36 <ais523> there's obviously a big overlap with esolangs, but they're technically different topics
05:13:52 <ais523> so the retrocomputing enthusiasts likely hang out elsewhere rather than here
05:14:11 <Sgeo> There are multiple retrocomputing Discords, and there's a retronetworking channel here (that I don't participate much in)
05:17:13 <esolangs> [[1L a]] https://esolangs.org/w/index.php?diff=166374&oldid=137854 * Ais523 * (+41) add the unknown computational class because TCness hasn't been proven (somewhat odd for a language from 2005 that was relatively famous at the time)
05:20:24 <Yayimhere> yay!!! I think I have found something interesting to make (finally)!!!
05:26:20 <Sgeo> The earlier LGP-30s have an extra break point button compared to the later ones
05:26:38 <esolangs> [[Talk:(ch34t) c0d3]] https://esolangs.org/w/index.php?diff=166375&oldid=141480 * Yayimhere2(school) * (-241) this was a comment by my, and is unnecessary
05:27:21 <esolangs> [[(ch34t) c0d3]] https://esolangs.org/w/index.php?diff=166376&oldid=148937 * Yayimhere2(school) * (+5)
05:31:28 <Yayimhere> how do you guys name your esolangs?
05:31:59 <ais523> I normally just go with the first thing that seems like it fits
05:32:32 <ais523> 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)
05:32:48 <Yayimhere> I need to look at incident again lol
05:32:59 <ais523> it is not an easy language
05:34:08 <ais523> 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
05:34:51 <ais523> (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)
05:35:06 -!- b_jonas has joined.
05:35:37 <ais523> 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)
05:36:38 <Yayimhere> its so interesting to hear the backstories of esolangs as well
05:36:44 <ais523> or, well, backwards jumps don't need it, just the forward ones
05:37:56 <ais523> 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
05:38:07 <ais523> (not the entire language, just the key idea)
05:38:25 <Yayimhere> nearly all of my good esolangs were either made in the car, or in the bed while having a massive headache
05:39:22 <ais523> The Waterfall Model was a really boring location: sitting at my computer
05:40:10 <Yayimhere> also ive found a good name for my esolang
05:44:37 <b_jonas> 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
05:44:53 <sorear> 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
05:44:54 <b_jonas> and making the text explain what you're doing is a good idea
05:48:16 <esolangs> [[Talk:]] https://esolangs.org/w/index.php?diff=166377&oldid=153045 * Yayimhere2(school) * (+181)
05:48:32 <esolangs> [[Talk:]] https://esolangs.org/w/index.php?diff=166378&oldid=166377 * Yayimhere2(school) * (+0)
05:49:06 <b_jonas> 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
05:49:44 <b_jonas> 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
05:49:45 <ais523> b_jonas: like if you encounter a long hex string that's indistinguishable from random?
05:50:05 <ais523> the difference being that in the puzzle, it's meant to be decoded
05:53:06 -!- Yayimhere has quit (Quit: Client closed).
05:53:28 <b_jonas> 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.
05:55:42 <ais523> b_jonas: quoted code + code, and eval-quine
05:56:18 <ais523> there's a "third" which is topological quines, but those aren't possible in most languages and are mildly controversial (albeit generally accepted)
05:57:36 <ais523> 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
05:58:21 <b_jonas> what does "eval-quine" mean?
05:59:34 <ais523> b_jonas: you write the program in the form x="string literal"; eval(x)
05:59:53 <ais523> and then the body of the string literal is a function that regenerates the entire pattern from the contents of the string literal
06:00:19 <esolangs> [[Bog prok]] https://esolangs.org/w/index.php?diff=166379&oldid=141142 * Yayimhere2(school) * (-137)
06:00:30 <ais523> (which is still in the variable x, which is why you need a separate variable)
06:00:41 <b_jonas> same string is both evalled and used as literal. yes, I've done such a thing though not as a quine I think
06:02:53 <ais523> 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
06:03:05 <ais523> quine legality is a weird subject and almost impossible to define objectively
06:03:27 <b_jonas> in perl a trick is to `eval for ` followed by a string literal, then the code can access the string from the $_ variable
06:03:37 <Sgeo> I've used JS reverse quines to make "malware" for the toy web OS Windows 96 >.>
06:06:30 <b_jonas> 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
06:06:36 <b_jonas> will completely ruin the output
06:08:04 <ais523> 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 =~
06:08:11 <ais523> but can't remember what the problem was or why that helped
06:08:26 <esolangs> [[Bog prok]] https://esolangs.org/w/index.php?diff=166380&oldid=166379 * Yayimhere2(school) * (+99) /* other */
06:08:33 <ais523> ooh… maybe it was a "make the deletion of any character observable" type of problem
06:11:45 <korvo> 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".
06:13:07 <ais523> the second recipe is also guaranteed, because you can write a self-interpreter in any TC language
06:13:28 <ais523> it's just really really verbose if the language doesn't have an eval builtin
06:14:26 <esolangs> [[Bog prok]] https://esolangs.org/w/index.php?diff=166381&oldid=166380 * Yayimhere2(school) * (+230) /* computation */
06:16:01 <b_jonas> int-e: is the file handle flushed before you do those setvbuf calls?
06:16:38 <ais523> b_jonas: we figured it out later in the scrollback
06:16:50 <ais523> (well, mostly int-e did)
06:18:42 <b_jonas> 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.
06:19:10 <ais523> I use -Og as a default when writing C nowadays
06:19:24 <ais523> but it's unclear whether it's actually much better for debugging than -O2 or -O3
06:19:24 -!- Sgeo has quit (Read error: Connection reset by peer).
06:26:14 <b_jonas> "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
06:26:20 <b_jonas> that idea. But I've no idea when and how I first started to think about Enchain.
06:26:49 <b_jonas> Yayimhere: you have headache-inspired esoteric languages? I haven't tried that and I don't see how that strategy would work
06:28:04 <b_jonas> sorear: can't you use a head moving on a linear rail with a flexible cable, like how the head of some printers works?
06:29:31 <b_jonas> I mean the head is moved by a chain loop between two gears driven by a motor in that case
06:30:56 <b_jonas> 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
06:31:09 <b_jonas> no wait, that doesn't work for a drum drive because you can't rotate the drum fast that way
06:31:20 <b_jonas> well, maybe you could, but it'd be harder than in a typewriter
06:32:49 <b_jonas> 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
06:34:01 <b_jonas> what do you actually call in english the footwear that makes electrical contact between a moving carriage and a fixed rail?
06:37:30 <ais523> b_jonas: in the railway context, "contact shoe" <https://en.wikipedia.org/wiki/Current_collector#Contact_shoe> but often just "shoe" for short
06:37:37 <ais523> the equivalent in a motor is called a "brush"
06:39:00 <ais523> 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?)
06:56:20 <b_jonas> 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
06:57:16 <sorear> the rail approach is also extremely slow compared to either a multi-head drum or a disk with a seek arm
07:00:11 <b_jonas> 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
07:01:04 <esolangs> [[Mango]] M https://esolangs.org/w/index.php?diff=166382&oldid=166373 * RaiseAfloppaFan3925 * (+264) Removed comment, added two more keywords to the page + inspired by Rust
07:01:53 <sorear> 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
07:34:07 -!- tromp has joined.
08:15:45 <esolangs> [[Mango]] M https://esolangs.org/w/index.php?diff=166383&oldid=166382 * RaiseAfloppaFan3925 * (+570) im so stupid + added emoji requirement
08:26:01 -!- chiselfuse has quit (Remote host closed the connection).
08:26:14 -!- chiselfuse has joined.
08:27:44 <esolangs> [[Mango]] M https://esolangs.org/w/index.php?diff=166384&oldid=166383 * RaiseAfloppaFan3925 * (-291) I TAKE IT BACK
08:29:59 -!- wob_jonas has joined.
08:30:17 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
08:30:36 <wob_jonas> 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
08:36:30 <wob_jonas> 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
08:36:31 <wob_jonas> 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.
08:53:10 <esolangs> [[/]] https://esolangs.org/w/index.php?diff=166385&oldid=136506 * Yayimhere2(school) * (+45) /* syntax */
08:57:24 <esolangs> [[Mango]] https://esolangs.org/w/index.php?diff=166386&oldid=166384 * RaiseAfloppaFan3925 * (+2317) Added stack example + classes and try/catch
09:08:24 <esolangs> [[(*)]] https://esolangs.org/w/index.php?diff=166387&oldid=138640 * Yayimhere2(school) * (+18) /* Memory */
09:09:00 -!- Yayimhere has joined.
09:10:32 <ais523> I suspect most of the channel regulars are asleep, given timezones
09:10:39 <ais523> (and I'm not very awake myself)
09:11:04 <Yayimhere> where are most ppl located anyways?
09:12:32 <Yayimhere> anyways, is the still Turing complete if evaluated non randomly?
09:13:13 <esolangs> [[]] https://esolangs.org/w/index.php?diff=166388&oldid=136857 * Yayimhere2(school) * (+22)
09:13:40 <ais523> see https://esolangs.org/wiki/Thupit
09:14:21 <ais523> this comes up often enough that I wrote a page about it
09:14:37 <ais523> but yes, you can modify Thue's evaluation order to more or less anything sensible and it's still Turing-complete
09:14:53 <ais523> because a Thue program can be written to only have one replacement available at a time
09:15:01 <ais523> it's easier to just link to the Thupit page and use that as the proof, though
09:15:51 <esolangs> [[]] https://esolangs.org/w/index.php?diff=166389&oldid=166388 * Yayimhere2(school) * (+30) /* turing completeness proof */
09:16:36 <esolangs> [[]] https://esolangs.org/w/index.php?diff=166390&oldid=166389 * Yayimhere2(school) * (+1)
09:17:04 <HackEso> wegian # Yayimhere:? ¯\(°_o)/¯
09:17:19 <Yayimhere> why the heck did I prove my lambda calculus copy Turing complete with thue lol
09:18:40 <wob_jonas> ``` \? wegian # Yayimhere: I meant this one
09:18:42 <HackEso> 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.
09:21:43 <esolangs> [[.chat]] https://esolangs.org/w/index.php?diff=166391&oldid=138635 * Yayimhere2(school) * (+23)
09:21:56 <esolangs> [[.chat]] https://esolangs.org/w/index.php?diff=166392&oldid=166391 * Yayimhere2(school) * (-61)
09:23:10 <wob_jonas> 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,
09:23:11 <wob_jonas> except that rules that read the blank tape symbol each have an extra Thue rule to extend the tape.
09:24:30 <wob_jonas> yeah, like ais said, https://esolangs.org/wiki/Thupit#Computational_class explains this already
09:25:03 <esolangs> [[/]] https://esolangs.org/w/index.php?diff=166393&oldid=166385 * Yayimhere2(school) * (+22)
09:25:20 <ais523> 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
09:26:24 <ais523> 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
09:26:25 <esolangs> [[/]] https://esolangs.org/w/index.php?diff=166394&oldid=166393 * Yayimhere2(school) * (+9) /* syntax */
09:27:10 <wob_jonas> and by the way, this still works for any deterministic two-stack machine with finite control, which is a convenient generalization of Turing machines
09:28:01 <esolangs> [[/]] https://esolangs.org/w/index.php?diff=166395&oldid=166394 * Yayimhere2(school) * (+4) /* syntax */
09:28:08 <ais523> well, Turing machines are Turing-complete already, so the question is, what you gain by the generalisation?
09:28:14 <ais523> (I think something is gained but it is hard to quantify what)
09:28:30 <ais523> err, quailfy what? this is qualitative, not quantitative
09:30:28 <Yayimhere> I really need to get to identifying [ ]'s computation class lol
09:30:59 <sorear> korvo: What would you expect to see as Nix infrastructure in the nql repo?
09:32:03 <esolangs> [[Mango]] M https://esolangs.org/w/index.php?diff=166396&oldid=166386 * RaiseAfloppaFan3925 * (+49) Mango is pseudonatural and I realized it yesterday how did I NOT ADD IT TO PSEUDONATURAL EARLIER AHHHHHHHHHHH
09:33:00 <wob_jonas> 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
09:33:50 <esolangs> [[Mango]] M https://esolangs.org/w/index.php?diff=166397&oldid=166396 * RaiseAfloppaFan3925 * (+27) Guys is Mango thematic???
09:33:57 <ais523> 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
09:34:48 <wob_jonas> 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
09:35:21 <ais523> I like my solution to that in StackFlow (a static analysis that prevents pops below the bottom of the stack)
09:35:38 <wob_jonas> 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.
09:35:41 <esolangs> [[]] https://esolangs.org/w/index.php?diff=166398&oldid=145758 * Yayimhere2(school) * (-19) /* syntax */
09:35:51 <ais523> wob_jonas: I think so but am not sure
09:36:35 <wob_jonas> 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
09:36:43 <Yayimhere> 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/⊥
09:37:33 <esolangs> [[]] https://esolangs.org/w/index.php?diff=166399&oldid=166398 * Yayimhere2(school) * (+6)
09:37:50 <ais523> 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
09:38:10 <ais523> 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?)
09:38:23 <wob_jonas> (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
09:38:27 <Yayimhere> ais523: pretty sure its intentional
09:38:51 <ais523> wob_jonas: bear in mind that three tapes is more power than three stacks
09:39:46 <wob_jonas> ais523: yes, but that just means even the third tape is less useful
09:40:01 <Yayimhere> hmmmmmm, I need two find an "axiom format" whatever that means lol
09:40:05 <ais523> 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
09:40:22 <Yayimhere> how does a ppprogram interpret axioms?
09:40:24 <wob_jonas> sure, constant factor is believable
09:40:32 <Yayimhere> because in principle I want every character to be valid
09:41:15 <ais523> 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
09:41:42 <Yayimhere> I think I might have confused axioms with rule's, back in the daay
09:42:04 <ais523> here's an example of a simple system which has axioms and inference rules: https://en.wikipedia.org/wiki/Metamath#Language_basics
09:42:40 <Yayimhere> couldnt you take it in reverse order? (having a bunch of proofs and then the program interprets an axiom)
09:42:47 <ais523> although, to me, it's maybe a bit too simple to understand easily (because the simpler a language is, the more complicatedthe programs get)
09:43:31 <Yayimhere> i want the same with "only" axioms and not a specific logic system
09:43:53 <ais523> Metamath is close to that, I think – the language doesn't hardcode any axioms or inference rules
09:44:52 <Yayimhere> the biggest (wanted) difference is that any symbol is valid from the startt
09:50:22 <wob_jonas> ais523: re Metamath, wait, how does that work, does it encode some kind of context-free grammar parser?
09:50:46 -!- tromp has joined.
09:51:42 <wob_jonas> like, does Metamath include a yacc in its guts or something?
09:52:16 <ais523> 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
09:53:08 <ais523> but that's effectively reverse-engineered from examples
09:53:24 <ais523> so I don't know for certain that that's actually how it works
09:55:34 <esolangs> [[UnCompetition]] N https://esolangs.org/w/index.php?oldid=166400 * Yayimhere2(school) * (+887) Created 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
10:00:25 -!- Yayimhere has quit (Ping timeout: 250 seconds).
10:04:17 -!- ais523 has quit (Quit: quit).
10:11:49 -!- Yayimhere has joined.
10:15:45 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166401&oldid=166400 * Yayimhere2(school) * (+211) /* Description */
10:16:08 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166402&oldid=166401 * Yayimhere2(school) * (+0) /* Description */
10:17:31 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166403&oldid=166402 * Yayimhere2(school) * (+54) /* Description */
10:18:35 <esolangs> [[Lalala]] https://esolangs.org/w/index.php?diff=166404&oldid=136233 * Yayimhere2(school) * (-17) /* memory */
10:21:01 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166405&oldid=166403 * Yayimhere2(school) * (+13)
10:22:10 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166406&oldid=166405 * Yayimhere2(school) * (+97) /* Description */
10:22:58 <Yayimhere> ok, so, I'd just like to ask, if this documentation is clear?: https://esolangs.org/wiki/UnCompetition
10:23:32 -!- wob_jonas has quit (Quit: Client closed).
10:25:42 <esolangs> [[User:Yayimhere]] https://esolangs.org/w/index.php?diff=166407&oldid=148938 * Yayimhere2(school) * (+34)
10:35:01 <esolangs> [[Mango]] M https://esolangs.org/w/index.php?diff=166408&oldid=166397 * RaiseAfloppaFan3925 * (+1) added empty line
10:50:15 -!- Yayimhere has quit (Ping timeout: 250 seconds).
10:55:02 -!- Yayimhere has joined.
11:06:41 -!- cbs has quit (Remote host closed the connection).
11:06:42 -!- ursa-major has quit (Remote host closed the connection).
11:06:42 -!- dcreager has quit (Remote host closed the connection).
11:06:42 -!- ManDeJan has quit (Write error: error:80000068:system library::Connection reset by peer).
11:09:19 -!- Yayimhere has quit (Ping timeout: 250 seconds).
11:22:00 -!- Yayimhere has joined.
11:23:34 <esolangs> [[User:Yayimhere]] https://esolangs.org/w/index.php?diff=166409&oldid=166407 * Yayimhere2(school) * (+20)
11:25:59 <esolangs> [[User:Yayimhere/Sandbox]] https://esolangs.org/w/index.php?diff=166410&oldid=148774 * Yayimhere2(school) * (+4)
11:28:45 <esolangs> [[Mango]] M https://esolangs.org/w/index.php?diff=166411&oldid=166408 * RaiseAfloppaFan3925 * (+46) Added clapback statement
11:30:42 -!- Yayimhere has quit (Quit: Client closed).
11:31:01 <esolangs> [[Bijection]] https://esolangs.org/w/index.php?diff=166412&oldid=166352 * Yayimhere2(school) * (+5) /* examples */
11:31:38 -!- Yayimhere has joined.
11:36:50 -!- Lord_of_Life_ has joined.
11:37:52 -!- Lord_of_Life has quit (Ping timeout: 260 seconds).
11:38:12 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
11:41:51 <esolangs> [[RECT4n=GLE]] https://esolangs.org/w/index.php?diff=166413&oldid=147537 * Yayimhere2(school) * (-244) /* adding random programs onto eachother to see if it does anything */
12:02:20 -!- Everything has joined.
12:05:13 -!- Yayimhere has quit (Ping timeout: 250 seconds).
12:19:25 -!- dcreager has joined.
12:19:29 -!- cbs has joined.
12:19:29 -!- ursa-major has joined.
12:19:30 -!- ManDeJan has joined.
12:34:50 <esolangs> [[Hello world program in esoteric languages (B-C)]] https://esolangs.org/w/index.php?diff=166414&oldid=158175 * RaiseAfloppaFan3925 * (+100) Added Bussin and Bussin X
12:38:29 <esolangs> [[Hello world program in esoteric languages (T-Z)]] https://esolangs.org/w/index.php?diff=166415&oldid=163368 * RaiseAfloppaFan3925 * (+102) Added Yappacino
12:39:27 <esolangs> [[Hello world program in esoteric languages (T-Z)]] M https://esolangs.org/w/index.php?diff=166416&oldid=166415 * RaiseAfloppaFan3925 * (+3) Fixed the mistake, I'm so stupid
12:41:06 <esolangs> [[Hello world program in esoteric languages (N-S)]] https://esolangs.org/w/index.php?diff=166417&oldid=162760 * RaiseAfloppaFan3925 * (+81) Added Nonstraightforward
12:44:15 <esolangs> [[PythOwO]] https://esolangs.org/w/index.php?diff=166418&oldid=144637 * RaiseAfloppaFan3925 * (+25) PythOwO likely counts as a thematic language, and the main theme is "uwu" or something? How do you name this?
12:57:27 -!- amby has joined.
12:59:41 -!- wob_jonas has joined.
13:01:55 <wob_jonas> `python3 -cs='print("`python3 -cs=%r;exec(s)"%s)';exec(s)
13:01:57 <HackEso> `python3 -cs='print("`python3 -cs=%r;exec(s)"%s)';exec(s)
13:02:30 <wob_jonas> ^ exec-quine, based on ais's explanation yesterday
13:02:46 <wob_jonas> Yayimhere: no, the documentation is not clear
13:05:57 <esolangs> [[User:RaiseAfloppaFan3925]] https://esolangs.org/w/index.php?diff=166419&oldid=166338 * RaiseAfloppaFan3925 * (+1276) why
13:13:03 <wob_jonas> `perl -eeval for q(print((q(`perl -eeval for q(b))=~s/b/lc/re)))
13:13:04 <HackEso> `perl -eeval for q(print((q(`perl -eeval for q(b))=~s/b/lc/re)))
13:14:12 <wob_jonas> `perl -eeval for q(print(q(`perl -eeval for q(b))=~s/b/lc/re))
13:14:14 <HackEso> `perl -eeval for q(print(q(`perl -eeval for q(b))=~s/b/lc/re))
13:14:56 <wob_jonas> `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 )
13:14:57 <HackEso> `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 )
13:15:35 <wob_jonas> `python3 -cs='print("`python3 -cs=%r;exec(s)"%s)# payload in this one as well ';exec(s)
13:15:37 <HackEso> `python3 -cs='print("`python3 -cs=%r;exec(s)"%s)# payload in this one as well ';exec(s)
13:21:59 <wob_jonas> `perl -eprintf lc,lc for q(`perl -eprintf lc,lc for q(%s))
13:22:00 <HackEso> `perl -eprintf lc,lc for q(`perl -eprintf lc,lc for q(%s))
13:45:01 -!- wob_jonas has quit (Quit: Client closed).
13:51:13 -!- Yayimhere has joined.
13:52:09 <Yayimhere> 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)
13:55:04 <esolangs> [[Selt]] https://esolangs.org/w/index.php?diff=166420&oldid=103814 * I am islptng * (+36)
13:59:39 <esolangs> [[Hello world program in esoteric languages (N-S)]] https://esolangs.org/w/index.php?diff=166421&oldid=166417 * I am islptng * (+313) /* Add SLet */
14:12:49 <tromp> maybe because it's harder to come up with an original theme
14:24:41 <Yayimhere> 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?
14:27:22 -!- tromp has quit (Ping timeout: 246 seconds).
14:32:07 -!- Everything has quit (Read error: Connection reset by peer).
14:33:45 -!- Yayimhere has quit (Quit: Client closed).
14:35:05 -!- Yayimhere has joined.
14:35:27 <esolangs> [[=?]] https://esolangs.org/w/index.php?diff=166422&oldid=128527 * Yayimhere2(school) * (-103)
14:37:29 -!- Everything has joined.
14:51:04 -!- tromp has joined.
14:59:40 <esolangs> [[Hello world program in esoteric languages (H-M)]] https://esolangs.org/w/index.php?diff=166423&oldid=165780 * RaiseAfloppaFan3925 * (+173) Added Mango
15:09:07 <esolangs> [[Mango]] https://esolangs.org/w/index.php?diff=166424&oldid=166411 * RaiseAfloppaFan3925 * (+1153) Added progress
15:13:16 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166425&oldid=166406 * Yayimhere2(school) * (+9)
15:22:41 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166426&oldid=166425 * Yayimhere2(school) * (+10) /* Description */
15:23:44 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166427&oldid=166426 * Yayimhere2(school) * (+12) /* Description */
15:26:44 -!- Yayimhere has quit (Quit: Client closed).
15:28:41 <korvo> 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.
15:29:20 <korvo> 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 $}.
15:30:16 <korvo> There's no encoding of the target logic's grammar. Instead, users have to manually construct rules for each production.
15:37:40 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166428&oldid=166427 * Yayimhere2(school) * (+62) /* Description */
15:44:47 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166429&oldid=166428 * Yayimhere2(school) * (+273) /* Description */
15:47:00 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166430&oldid=166429 * Yayimhere2(school) * (+22)
15:53:02 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166431&oldid=166430 * Yayimhere2(school) * (+157) /* Description */
15:58:38 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166432&oldid=166431 * Yayimhere2(school) * (+0) /* Description */
16:13:42 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166433&oldid=166432 * Yayimhere2(school) * (+413)
16:16:51 <esolangs> [[User talk:Yayimhere]] https://esolangs.org/w/index.php?diff=166434&oldid=155727 * Yayimhere2(school) * (+132) /* Sorry? */
16:17:35 <esolangs> [[User:Yayimhere]] https://esolangs.org/w/index.php?diff=166435&oldid=166409 * Yayimhere2(school) * (+20)
16:18:24 <esolangs> [[Good writing, bad execution]] https://esolangs.org/w/index.php?diff=166436&oldid=148738 * Yayimhere2(school) * (+15)
16:18:47 <esolangs> [[Good writing, bad execution]] https://esolangs.org/w/index.php?diff=166437&oldid=166436 * Yayimhere2(school) * (+2) /* esolang */
16:20:15 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166438&oldid=166433 * Yayimhere2(school) * (+50)
16:23:05 <esolangs> [[Special:Log/newusers]] create * Agecaf * New user account
16:23:22 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166439&oldid=166438 * Yayimhere2(school) * (+36) /* Description */
16:26:38 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=166440&oldid=166341 * Agecaf * (+242) /* Introductions */
16:28:17 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166441&oldid=166439 * Yayimhere2(school) * (-19) /* Description */
16:32:05 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166442&oldid=166441 * Yayimhere2(school) * (-41) /* Description */
16:48:49 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
16:51:41 <b_jonas> Tayimhere: that's because DMM stopped making esolangs, and he was the one who made them thematic
17:03:24 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166443&oldid=166442 * Yayimhere2(school) * (+9)
17:06:45 <korvo> 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.
17:07:43 <esolangs> [[User:Yayimhere]] https://esolangs.org/w/index.php?diff=166444&oldid=166435 * Yayimhere2(school) * (+22) /* esolangs */
17:08:05 <korvo> 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.
17:10:39 <esolangs> [[User:Yayimhere]] https://esolangs.org/w/index.php?diff=166445&oldid=166444 * Yayimhere2(school) * (+20) /* esolangs */
17:11:32 <esolangs> [[The Sophomores From Tbilsi]] https://esolangs.org/w/index.php?diff=166446&oldid=145475 * Yayimhere2(school) * (+0)
17:18:38 <b_jonas> 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
17:22:32 <esolangs> [[]] https://esolangs.org/w/index.php?diff=166447&oldid=155991 * C++DSUCKER * (+0) X is not a bound variable, and y is the only bound one. this also makes the code work as intended.
17:25:00 <korvo> 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.
17:27:55 -!- tromp has joined.
17:30:00 <esolangs> [[(,!)]] https://esolangs.org/w/index.php?diff=166448&oldid=135600 * Yayimhere2(school) * (-244) /* Minor paradox */
17:31:39 <esolangs> [[Y/]] https://esolangs.org/w/index.php?diff=166449&oldid=130424 * Yayimhere2(school) * (+31)
17:36:47 -!- Yayimhere has joined.
17:37:55 <esolangs> [[User:Yayimhere]] https://esolangs.org/w/index.php?diff=166450&oldid=166445 * Yayimhere2(school) * (+229) /* esolangs */
17:38:47 <Yayimhere> 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)
17:41:59 -!- ais523 has joined.
17:42:09 <ais523> Yayimhere: for me it's mostly counter machines and tag systems
17:42:38 <b_jonas> Yayimhere: dunno, that depends on where you draw the boundary for what domain-specific thing counts as a "language" and how you count them
17:43:09 <ais523> 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
17:44:02 <ais523> 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
17:44:03 <Yayimhere> b_jonas: tbh whatever you think Is more interesting for generating an answer I guess lol
17:44:32 <Yayimhere> ais523: i find your tendency to make languages to prove the TC'ness of other languages quite interesting
17:45:23 <ais523> 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)
17:45:34 <Yayimhere> the closest ive ever gotten to that is Short Minsky Machine Notation, which barely is anythingh new
17:45:44 <esolangs> [[ThingLangOOP]] https://esolangs.org/w/index.php?diff=166451&oldid=166273 * Rasa8877 * (+57)
17:46:28 <korvo> Yayimhere: Most of my languages are actually APIs; they're patterns for calling an object and getting it to behave a certain way.
17:46:54 <ais523> 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
17:47:07 <korvo> 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
17:47:20 <Yayimhere> korvo: I feel like that itself is a language "category" of sorts
17:48:56 <ais523> korvo: my interaction with final encodings is mostly remembering they exist, forgetting how they work, then getting instantly reminded upon seeing an example
17:49:10 <ais523> I guess they don't come up often enough for me to hold them in my memory
17:49:11 <korvo> 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.
17:49:12 <Yayimhere> sadly I need to leave now, but thanks for the short interaction!
17:50:04 <esolangs> [[User talk:ChuckEsoteric08]] https://esolangs.org/w/index.php?diff=166452&oldid=165057 * Yayimhere2(school) * (+218)
17:50:16 <ais523> …and now I'm thinking about parser visitors, which are quite similar to final encodings (but, I think, substantially different in practice)
17:50:19 -!- Yayimhere has quit (Quit: Client closed).
17:50:24 <korvo> 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.
17:51:23 <korvo> 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.
17:51:27 <esolangs> [[Short Minsky Machine Notation]] https://esolangs.org/w/index.php?diff=166453&oldid=165037 * Yayimhere2(school) * (-9) Unstubbed, I would say it is detailed enough, for what it is
17:52:11 <ais523> there's probably more than one way to do a parser visitor
17:52:35 <ais523> but the one I've seen was, effectively, equivalent to representing as XML and then sending all the start-tags and end-tags individually
17:52:44 <korvo> 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.
17:53:00 <ais523> which is complex from a typing point of view because there's no static guarantee that it's correctly nested
17:53:52 <ais523> a final encoding feels like a type-safe version of that
17:55:42 <ais523> …and now I just realised that yacc generates what is in effect a final encoding
17:55:46 <korvo> 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.
17:56:16 <ais523> and the semantic actions are normally used to convert that into an initial encoding, but they can do other things too
17:56:20 <korvo> Yep! Any time there is an interface of behaviors, there is a final-encoded algebra describing the effects of that interface.
17:59:37 <ais523> ah no, I just realised, there is a difference
18:00:09 <ais523> I was wondering about evaluation order
18:00:48 <ais523> but final encodings do allow a pure call-by-value approach (which is what yacc gives you)
18:01:51 <korvo> 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.
18:02:12 <ais523> 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
18:04:28 <korvo> 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.
18:05:26 <ais523> now I'm thinking about performance
18:05:52 <ais523> 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
18:06:00 <esolangs> [[F calculus]] https://esolangs.org/w/index.php?diff=166454&oldid=166317 * C++DSUCKER * (+62)
18:06:01 <ais523> with a visitor, this is trivial to write
18:06:08 <ais523> with an initial encoding, this is just a recursive tree walk
18:06:21 <esolangs> [[F calculus]] M https://esolangs.org/w/index.php?diff=166455&oldid=166454 * C++DSUCKER * (-11)
18:06:22 <ais523> with a final encoding, there's an obvious way to write it but it has O(n²) performance
18:06:35 <esolangs> [[F calculus]] https://esolangs.org/w/index.php?diff=166456&oldid=166455 * C++DSUCKER * (+1)
18:07:48 <korvo> 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)
18:08:15 <ais523> korvo: I mean, outputting the XML as text
18:08:20 <ais523> with an initial encoding you can stream it
18:08:44 <ais523> with a final encoding you're appending and prepending, which is slow to do repeatedly using most string types
18:10:18 <korvo> 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.
18:12:20 <korvo> The initial encoding just looks like a heap-allocated AST, while the final encoding looks like a bunch of stack records and calls.
18:16:00 <esolangs> [[Adofaiscript]] https://esolangs.org/w/index.php?diff=166457&oldid=166365 * * (+533) /* Pattern-signal */ Added more patterns
18:17:30 <esolangs> [[User:]] https://esolangs.org/w/index.php?diff=166458&oldid=147377 * * (+98)
18:19:01 <korvo> 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.
18:20:38 <korvo> 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 ']'
18:21:11 <korvo> Appending to my buffer is quadratic. Appending to Somebody Else's Buffer is linear. Our machine models are cracked~
18:22:07 <ais523> korvo: not just you, other people have made that mistake too
18:23:37 <ais523> 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)
18:24:13 <ais523> to make it work you have to create an initial encoding as a temporary
18:24:28 <b_jonas> 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.
18:25:01 <ais523> b_jonas: oh yes, but that's basically the initial-encoding-as-temporary approach
18:25:42 <ais523> 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
18:26:53 <esolangs> [[Crypten]] N https://esolangs.org/w/index.php?oldid=166459 * * (+853) Started the page
18:27:47 <esolangs> [[Crypten]] https://esolangs.org/w/index.php?diff=166460&oldid=166459 * * (+72)
18:30:10 <korvo> 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.
18:30:34 <korvo> Oleg has words about this; it bites him in SML too.
18:31:01 <ais523> yes, you can return closures/thunks and make it work that way
18:31:29 <b_jonas> yeha, that works too, it's just not my usual style
18:31:33 <ais523> (although the implicit allocation that that needs still bothers me, it's O(n) now but the constant factors are bad)
18:32:03 <korvo> 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.
18:33:00 <esolangs> [[EarScript]] N https://esolangs.org/w/index.php?oldid=166461 * Agecaf * (+12957) EarScript is a programming language focused on the manipulation of integers.
18:34:14 <ais523> 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
18:34:47 <ais523> or, indeed, just start with a set of strings representing characters, and concatenate them
18:34:57 <b_jonas> 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
18:34:59 <ais523> there is an obvious O(1) approach but the constant factors are terrible
18:35:00 <korvo> 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.
18:35:25 <ais523> it maybe that O(n) or O(n log n) approaches are better in practice
18:35:52 <korvo> 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.
18:36:00 <esolangs> [[Language list]] https://esolangs.org/w/index.php?diff=166462&oldid=166312 * Agecaf * (+16)
18:37:31 <korvo> (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!)
18:39:18 <b_jonas> 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
18:39:24 <b_jonas> read-modify-write with an existing XML or JSON library), only ones with limited depth, but I think this applies to recursive too.
18:41:11 <korvo> 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.
18:41:43 <ais523> 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
18:41:53 <ais523> this is probably slower but it's interesting that it exists
18:42:04 <ais523> it might be faster if the allocator is slow
18:44:59 <esolangs> [[EarScript]] M https://esolangs.org/w/index.php?diff=166463&oldid=166461 * Agecaf * (+184) Added categories
19:04:41 <b_jonas> 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
19:04:50 <b_jonas> s/and prefix/and with prefix/
19:05:30 <b_jonas> (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)
19:05:56 <esolangs> [[EarScript]] https://esolangs.org/w/index.php?diff=166464&oldid=166463 * Agecaf * (+0) Corrected a to b
19:07:32 <esolangs> [[EarScript]] M https://esolangs.org/w/index.php?diff=166465&oldid=166464 * Agecaf * (-1) /* Description */
19:19:23 <esolangs> [[User:Ivava]] https://esolangs.org/w/index.php?diff=166466&oldid=166332 * Ivava * (+14) /* Esolangs list */
19:44:19 -!- Everything has quit (Ping timeout: 255 seconds).
20:27:15 -!- vista_user has joined.
20:27:22 -!- vista_user has changed hostmask to ~vista_use@user/DOS-User:11249.
20:29:20 -!- vista_user has quit (Remote host closed the connection).
20:43:48 <esolangs> [[Monte]] https://esolangs.org/w/index.php?diff=166467&oldid=140192 * Corbin * (+154) /* Running Monte */ I fixed the flake's compatibility with nix-run and now the REPL can be directly loaded from The Cloud.
21:41:20 <zzo38> Now I made ASN.1 DER parser in PostScript, too. (Encoding is not implemented yet)
21:56:53 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
22:01:30 <zzo38> (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).)
22:08:26 -!- Sgeo has joined.
00:10:26 -!- amby has 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).
00:56:11 <esolangs> [[Collern]] https://esolangs.org/w/index.php?diff=166468&oldid=164611 * Dmiz * (+61)
01:01:02 <esolangs> [[Collern]] https://esolangs.org/w/index.php?diff=166469&oldid=166468 * Dmiz * (+37)
02:15:37 -!- ais523 has quit (Quit: sorry about my connection).
02:20:33 -!- ais523 has joined.
03:38:05 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166470&oldid=166443 * Yayimhere2(school) * (+43) /* Description */
03:39:55 <esolangs> [[Language list]] https://esolangs.org/w/index.php?diff=166471&oldid=166462 * Yayimhere2(school) * (+19) /* U */
03:40:16 <esolangs> [[Language list]] https://esolangs.org/w/index.php?diff=166472&oldid=166471 * Yayimhere2(school) * (+1) /* U */
03:56:29 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166473&oldid=166470 * Yayimhere2(school) * (+299) /* Description */
05:34:21 -!- Sgeo has quit (Read error: Connection reset by peer).
05:53:35 <esolangs> [[The Sophomores From Tbilsi]] https://esolangs.org/w/index.php?diff=166474&oldid=166446 * Yayimhere2(school) * (+50) /* semantics and syntax */
05:55:54 <esolangs> [[]] https://esolangs.org/w/index.php?diff=166475&oldid=140570 * Yayimhere2(school) * (+71) /* commands and semantics */
05:56:47 <esolangs> [[]] https://esolangs.org/w/index.php?diff=166476&oldid=166475 * Yayimhere2(school) * (+46) /* commands and semantics */
05:59:33 <esolangs> [[]] https://esolangs.org/w/index.php?diff=166477&oldid=166476 * Yayimhere2(school) * (+4)
06:02:51 <esolangs> [[]] https://esolangs.org/w/index.php?diff=166478&oldid=166477 * Yayimhere2(school) * (+66) /* commands and semantics */
06:04:15 <esolangs> [[]] https://esolangs.org/w/index.php?diff=166479&oldid=166478 * Yayimhere2(school) * (+120) /* commands and semantics */
06:07:15 <esolangs> [[]] https://esolangs.org/w/index.php?diff=166480&oldid=166479 * Yayimhere2(school) * (+221) /* commands and semantics */
06:09:41 <esolangs> [[]] https://esolangs.org/w/index.php?diff=166481&oldid=166480 * Yayimhere2(school) * (+53)
06:52:38 -!- ais523 has quit (Quit: quit).
07:04:45 -!- tromp has joined.
07:43:41 <esolangs> [[]] https://esolangs.org/w/index.php?diff=166482&oldid=166481 * Yayimhere2(school) * (+0) /* translation to SKI combinatory logic(WIP) */
07:54:22 <esolangs> [[Special:Log/newusers]] create * Zaydenypersony2239 * New user account
08:05:09 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=166483&oldid=166440 * Zaydenypersony2239 * (+244)
08:15:07 <esolangs> [[User:Zaydenypersony2239]] N https://esolangs.org/w/index.php?oldid=166484 * Zaydenypersony2239 * (+91) Created page with "hi guys, im zaydenypersony. i make stuff in turbowarp. i dont really have much else to say."
08:17:55 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=166485&oldid=166483 * Zaydenypersony2239 * (+116)
08:41:23 <esolangs> [[Brainfuk]] N https://esolangs.org/w/index.php?oldid=166486 * Zaydenypersony2239 * (+23) Redirected page to [[Brainfuck]]
08:42:54 <esolangs> [[Brainfck]] N https://esolangs.org/w/index.php?oldid=166487 * Zaydenypersony2239 * (+23) Redirected page to [[Brainfuck]]
08:43:37 <esolangs> [[Brainfuc]] N https://esolangs.org/w/index.php?oldid=166488 * Zaydenypersony2239 * (+23) Redirected page to [[Brainfuck]]
09:08:16 -!- Yayimhere has joined.
09:08:48 <Yayimhere> hello! short question, is SKI still TC if K is K x y = y instead of K x y = x?
09:09:21 <esolangs> [[]] https://esolangs.org/w/index.php?diff=166489&oldid=166482 * Yayimhere2(school) * (-148) /* translation to SKI combinatory logic(WIP) */
09:14:48 <esolangs> [[Srry]] https://esolangs.org/w/index.php?diff=166490&oldid=139376 * Yayimhere2(school) * (-422) Blanked the page
09:15:38 <esolangs> [[Sorry]] https://esolangs.org/w/index.php?diff=166491&oldid=166340 * Yayimhere2(school) * (+431) /* information */
09:16:36 <esolangs> [[Sorry]] https://esolangs.org/w/index.php?diff=166492&oldid=166491 * Yayimhere2(school) * (+2) /* the change */
09:17:04 <esolangs> [[Language list]] M https://esolangs.org/w/index.php?diff=166493&oldid=166472 * C++DSUCKER * (+11) This AWESOME lanuguage was not on there.
09:17:21 <esolangs> [[Language list]] M https://esolangs.org/w/index.php?diff=166494&oldid=166493 * C++DSUCKER * (+1)
09:17:59 <esolangs> [[Srry]] https://esolangs.org/w/index.php?diff=166495&oldid=166490 * Yayimhere2(school) * (+19) Redirected page to [[Sorry]]
09:20:29 -!- Yayimhere has quit (Quit: Client closed).
09:20:54 -!- Yayimhere has joined.
09:25:13 <esolangs> [[Xx]] https://esolangs.org/w/index.php?diff=166496&oldid=151680 * Yayimhere2(school) * (+0) /* syntax */
09:25:38 <esolangs> [[Xx]] https://esolangs.org/w/index.php?diff=166497&oldid=166496 * Yayimhere2(school) * (-1) /* syntax */
09:27:01 <esolangs> [[Talk:B9]] N https://esolangs.org/w/index.php?oldid=166498 * JIT * (+391) Created page with "This page has some vague words here so maybe I'll fix that later also this esolang is a bit different because its really big and snowballed out of my grasp into its own weird thing --~~~~"
09:27:19 <esolangs> [[B9]] N https://esolangs.org/w/index.php?oldid=166499 * JIT * (+8373) Created page with "B9 is an esolang by [[User:JIT]], 2025 ''"What if... OH GOD NO! AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"'' : -[[User:JIT]], 2025 <blockquote> ''It's perfectly benign! don't read the text above this, its fine! :DDD :-[[User:JIT]], 2025'' </blockquote> {| class="wikit
09:28:10 <esolangs> [[Special:Log/upload]] upload * JIT * uploaded "[[File:Nothing Program.png]]": the nothing program for B9
09:28:41 <esolangs> [[Xx]] https://esolangs.org/w/index.php?diff=166501&oldid=166497 * Yayimhere2(school) * (-37) /* turing completeness proof */
09:29:45 <esolangs> [[Language list]] https://esolangs.org/w/index.php?diff=166502&oldid=166494 * JIT * (+9)
09:30:09 <esolangs> [[Xx]] https://esolangs.org/w/index.php?diff=166503&oldid=166501 * Yayimhere2(school) * (+23)
09:33:42 -!- Yayimhere has quit (Quit: Client closed).
09:34:28 -!- Yayimhere has joined.
09:34:44 <esolangs> [[Talk:Double Helix]] https://esolangs.org/w/index.php?diff=166504&oldid=92910 * Yayimhere2(school) * (+149)
09:38:26 <esolangs> [[User talk:Yayimhere]] https://esolangs.org/w/index.php?diff=166505&oldid=166434 * Yayimhere2(school) * (+101) /* Will you contribute to my X-script? */
09:48:15 -!- Yayimhere has quit (Ping timeout: 250 seconds).
10:42:19 <esolangs> [[Special:Log/newusers]] create * Je4yiwau * New user account
11:22:32 <esolangs> [[User talk:None1]] https://esolangs.org/w/index.php?diff=166506&oldid=154677 * I am islptng * (+173)
11:37:52 -!- Lord_of_Life_ has joined.
11:38:19 -!- Lord_of_Life has quit (Ping timeout: 255 seconds).
11:39:08 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
12:21:46 <esolangs> [[B9]] M https://esolangs.org/w/index.php?diff=166507&oldid=166499 * JIT * (+1)
12:35:55 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=166508&oldid=166485 * Goodbyevoidhelloworld1 * (+401)
12:38:25 <esolangs> [[Exec]] N https://esolangs.org/w/index.php?oldid=166509 * None1 * (+2077) Created page with "{{lowercase}}'''exec'', an esolang invented by [[User:None1]], is similar to [[Python]]. ==Type system== Unlike Python, there's only one type in exec: {{cd|str}}. This type is way more powerful than the one in Python in the following ways: * Character codes: Character codes
12:38:36 <esolangs> [[User talk:None1]] https://esolangs.org/w/index.php?diff=166510&oldid=166506 * None1 * (+294) /* SLet */
12:43:13 <esolangs> [[User talk:None1]] https://esolangs.org/w/index.php?diff=166511&oldid=166510 * None1 * (+330) /* SLet */
12:51:31 -!- lynndotpy609 has quit (Quit: bye bye).
12:52:44 -!- lynndotpy609 has joined.
12:54:13 <esolangs> [[Byte]] https://esolangs.org/w/index.php?diff=166512&oldid=137290 * Yayimhere2(school) * (+5) /* types */
12:55:38 -!- Yayimhere has joined.
12:58:14 <Yayimhere> how are you all, and are you working on anything?
13:04:40 <esolangs> [[ThingLang]] https://esolangs.org/w/index.php?diff=166513&oldid=164619 * Rasa8877 * (-265)
13:08:30 <esolangs> [[User talk:None1]] https://esolangs.org/w/index.php?diff=166514&oldid=166511 * I am islptng * (+145) /* SLet */
13:46:32 <Yayimhere> is anybody willing to try and help me prove υλ Turing complete? ive been trying SKI, and theoretically its possible, but I cant *quite* get it right
13:52:38 <esolangs> [[Func()]] https://esolangs.org/w/index.php?diff=166515&oldid=139125 * Yayimhere2(school) * (+6) /* examples */
14:16:31 <esolangs> [[Utral]] N https://esolangs.org/w/index.php?oldid=166516 * Yayimhere2(school) * (+1434) Created page with "'''Utral''' is an [[esolang]] created by [[User:Yayimhere]], to answer her very important question, "What if there was a negative null", and this answer's this question! It is based in [[Lambda Calculus]], however that is only in underlying calculation, and not
14:17:06 <esolangs> [[Utral]] https://esolangs.org/w/index.php?diff=166517&oldid=166516 * Yayimhere2(school) * (-5)
14:17:17 <esolangs> [[Utral]] https://esolangs.org/w/index.php?diff=166518&oldid=166517 * Yayimhere2(school) * (-5) /* syntax */
14:20:33 <esolangs> [[Utral]] https://esolangs.org/w/index.php?diff=166519&oldid=166518 * Yayimhere2(school) * (+176) /* syntax */
14:20:52 <esolangs> [[Utral]] https://esolangs.org/w/index.php?diff=166520&oldid=166519 * Yayimhere2(school) * (+5) /* syntax */
14:21:03 <esolangs> [[Utral]] https://esolangs.org/w/index.php?diff=166521&oldid=166520 * Yayimhere2(school) * (-10) /* syntax */
14:21:14 <esolangs> [[Utral]] https://esolangs.org/w/index.php?diff=166522&oldid=166521 * Yayimhere2(school) * (+5) /* syntax */
14:22:54 <esolangs> [[Utral]] https://esolangs.org/w/index.php?diff=166523&oldid=166522 * Yayimhere2(school) * (+230) /* syntax */
14:30:00 <esolangs> [[Utral]] https://esolangs.org/w/index.php?diff=166524&oldid=166523 * Yayimhere2(school) * (+111)
14:32:08 <esolangs> [[Utral]] https://esolangs.org/w/index.php?diff=166525&oldid=166524 * Yayimhere2(school) * (+1) /* Info */
14:33:36 -!- Sgeo has joined.
14:33:56 <esolangs> [[Language list]] https://esolangs.org/w/index.php?diff=166526&oldid=166502 * Yayimhere2(school) * (+11) /* U */
14:34:25 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
14:34:28 <esolangs> [[Language list]] https://esolangs.org/w/index.php?diff=166527&oldid=166526 * Yayimhere2(school) * (+1) /* U */
14:48:23 <esolangs> [[User:Yayimhere]] https://esolangs.org/w/index.php?diff=166528&oldid=166450 * Yayimhere2(school) * (+11) /* esolangs */
14:50:01 <esolangs> [[Utral]] https://esolangs.org/w/index.php?diff=166529&oldid=166525 * Yayimhere2(school) * (+56) /* Info */
14:50:59 <esolangs> [[Utral]] https://esolangs.org/w/index.php?diff=166530&oldid=166529 * Yayimhere2(school) * (+95) /* Info */
14:51:51 <esolangs> [[Utral]] https://esolangs.org/w/index.php?diff=166531&oldid=166530 * Yayimhere2(school) * (+2) /* Etmology */
14:52:13 <esolangs> [[Utral]] https://esolangs.org/w/index.php?diff=166532&oldid=166531 * Yayimhere2(school) * (+0) /* Info */
14:52:59 <esolangs> [[Utral]] https://esolangs.org/w/index.php?diff=166533&oldid=166532 * Yayimhere2(school) * (+26) /* Info */
14:54:42 <esolangs> [[Utral]] https://esolangs.org/w/index.php?diff=166534&oldid=166533 * Yayimhere2(school) * (-236) /* Info */
14:54:59 <esolangs> [[Utral]] https://esolangs.org/w/index.php?diff=166535&oldid=166534 * Yayimhere2(school) * (+6) /* Info */
14:55:16 <esolangs> [[Utral]] https://esolangs.org/w/index.php?diff=166536&oldid=166535 * Yayimhere2(school) * (-1) /* Info */
14:58:53 <esolangs> [[Utral]] https://esolangs.org/w/index.php?diff=166537&oldid=166536 * Yayimhere2(school) * (+186) /* Info */
15:02:29 <esolangs> [[Utral]] https://esolangs.org/w/index.php?diff=166538&oldid=166537 * Yayimhere2(school) * (+44) /* Info */
15:04:40 <esolangs> [[Lambda Calculus]] N https://esolangs.org/w/index.php?oldid=166539 * Yayimhere2(school) * (+29) Redirected page to [[Lambda-Calculus]]
15:04:55 <esolangs> [[Lambda Calculus]] https://esolangs.org/w/index.php?diff=166540&oldid=166539 * Yayimhere2(school) * (+0) Changed redirect target from [[Lambda-Calculus]] to [[Lambda-calculus]]
15:04:59 -!- tromp has joined.
15:14:37 <esolangs> [[Kicky BCT]] https://esolangs.org/w/index.php?diff=166541&oldid=138300 * Yayimhere2(school) * (-190) /* what has changed? */
15:14:43 <esolangs> [[Kicky BCT]] https://esolangs.org/w/index.php?diff=166542&oldid=166541 * Yayimhere2(school) * (-200) /* random examples */
15:16:01 <esolangs> [[Kicky BCT]] https://esolangs.org/w/index.php?diff=166543&oldid=166542 * Yayimhere2(school) * (+95) /* what has changed? */
15:20:49 <esolangs> [[Lambda Calculus]] https://esolangs.org/w/index.php?diff=166544&oldid=166540 * Aadenboy * (+0) fix double redirect
15:21:11 <esolangs> [[Kicky BCT]] https://esolangs.org/w/index.php?diff=166545&oldid=166543 * Yayimhere2(school) * (+33) /* what has changed? */
15:21:58 <Yayimhere> how are ya? and (arguably more relevant to this channel) has anything caught your interest recently, or are you working on smth
15:23:51 <esolangs> [[Not]] https://esolangs.org/w/index.php?diff=166546&oldid=149157 * Yayimhere2(school) * (+43) /* why tho */
15:42:39 <esolangs> [[Utral]] https://esolangs.org/w/index.php?diff=166547&oldid=166538 * Yayimhere2(school) * (+33) /* Info */
15:45:05 <esolangs> [[Collern]] https://esolangs.org/w/index.php?diff=166548&oldid=166469 * Dmiz * (+6)
15:47:15 <esolangs> [[0x80070050]] https://esolangs.org/w/index.php?diff=166549&oldid=138938 * Yayimhere2(school) * (+17)
15:48:19 <esolangs> [[0x80070050]] https://esolangs.org/w/index.php?diff=166550&oldid=166549 * Yayimhere2(school) * (+19) /* examples */
15:50:09 <esolangs> [[0x80070050]] https://esolangs.org/w/index.php?diff=166551&oldid=166550 * Yayimhere2(school) * (+1)
15:52:20 <esolangs> [[0x80070050]] https://esolangs.org/w/index.php?diff=166552&oldid=166551 * Yayimhere2(school) * (+41) /* syntax */
15:52:43 <esolangs> [[0x80070050]] https://esolangs.org/w/index.php?diff=166553&oldid=166552 * Yayimhere2(school) * (+1)
15:54:18 <esolangs> [[BuzzFish]] https://esolangs.org/w/index.php?diff=166554&oldid=137845 * Yayimhere2(school) * (+119) /* the problem */
15:56:46 <Sgeo> Yayimhere, nothing esolang related. A lot of my interest lately has been retrocomputing. A lot of stuff that seems esoteric to modern eyes. Memory mapped arithmetic
15:57:02 <esolangs> [[0134]] https://esolangs.org/w/index.php?diff=166555&oldid=150803 * Yayimhere2(school) * (-344)
15:57:32 <esolangs> [[0134]] https://esolangs.org/w/index.php?diff=166556&oldid=166555 * Yayimhere2(school) * (-19)
15:59:49 <Yayimhere> sgeo: makes sense, but cool nonetheless
16:00:50 <Sgeo> On the IBM 305 RAMAC, there's one accumulator track (with 10 accumulators). Moving into L adds the moved stuff into the accumulator, and moving into M subtracts
16:01:53 <Yayimhere> for me, what ive been into is proving UnCompetition Turing complete
16:02:07 <Yayimhere> which is so fjcuking hard for some reason
16:04:13 <strerror> Yayimhere: whether the flipped K is TC is an interesting question. To prove it, you would look for a term in your calculus that is equivalent to the normal K. I tried for a bit and couldn't find one, though.
16:04:39 <strerror> And if it is not TC, I don't remember how to prove that either, but someone here might know.
16:05:07 <Yayimhere> it would just seem weird to me that flipping the order of input would be a very small change for such a large change
16:05:17 <Yayimhere> (I did find a solution to my problem, however)
16:05:47 <strerror> (Also, conceivably it might be TC without being able to encode all of lambda calculus)
16:06:59 <Yayimhere> Lambda Calculus is one of the most annoying concepts to work with
16:07:03 <strerror> It's not that weird--the BCKW calculus has one combinator C, whose purpose is to flip the order of input
16:07:30 <Yayimhere> more weird as in the part where it deletes the TC'ness lol
16:16:52 <esolangs> [[Collern]] https://esolangs.org/w/index.php?diff=166557&oldid=166548 * Dmiz * (+17)
16:17:04 <esolangs> [[Collern]] https://esolangs.org/w/index.php?diff=166558&oldid=166557 * Dmiz * (-47)
16:19:32 <esolangs> [[Uncompetition]] N https://esolangs.org/w/index.php?oldid=166559 * Yayimhere2(school) * (+27) Redirected page to [[UnCompetition]]
16:22:39 <esolangs> [[Collern]] https://esolangs.org/w/index.php?diff=166560&oldid=166558 * Dmiz * (+13)
16:30:37 <esolangs> [[Adofaiscript]] https://esolangs.org/w/index.php?diff=166561&oldid=166457 * * (+241) /* Pattern-signaled */
16:31:32 <esolangs> [[User talk:Truttle1]] https://esolangs.org/w/index.php?diff=166562&oldid=155632 * Yayimhere2(school) * (+372)
16:32:28 <esolangs> [[Adofaiscript]] https://esolangs.org/w/index.php?diff=166563&oldid=166561 * * (+68)
16:50:08 <esolangs> [[Adofaiscript]] https://esolangs.org/w/index.php?diff=166564&oldid=166563 * * (+416) Added programs
16:52:21 <esolangs> [[User:Yayimhere/Sandbox]] https://esolangs.org/w/index.php?diff=166565&oldid=166410 * Yayimhere2(school) * (+81)
16:54:52 <esolangs> [[User:Yayimhere/Sandbox]] https://esolangs.org/w/index.php?diff=166566&oldid=166565 * Yayimhere2(school) * (+209) /* Burn */
16:55:28 <esolangs> [[User talk:]] https://esolangs.org/w/index.php?diff=166567&oldid=157267 * * (+54)
16:55:53 <esolangs> [[User talk:]] https://esolangs.org/w/index.php?diff=166568&oldid=166567 * * (+2)
16:56:52 <esolangs> [[STSAASIGFE]] N https://esolangs.org/w/index.php?oldid=166569 * * (+55) Redirected page to [[Settheorysucksandassuchisgreatforesolangs]]
17:04:28 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166570&oldid=166473 * Yayimhere2(school) * (+46) /* Description */
17:07:22 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166571&oldid=166570 * Yayimhere2(school) * (+80) /* Description */
17:18:51 <esolangs> [[Crypten]] https://esolangs.org/w/index.php?diff=166572&oldid=166460 * * (+632) Added programs and categories; finished up page
17:19:13 -!- APic has quit (Ping timeout: 264 seconds).
17:19:49 -!- FreeFull has joined.
17:20:35 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166573&oldid=166571 * Yayimhere2(school) * (+585) /* Description */
17:21:13 <esolangs> [[Crypten]] https://esolangs.org/w/index.php?diff=166574&oldid=166572 * * (+17) /* Programs */
17:21:55 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166575&oldid=166573 * Yayimhere2(school) * (+43) /* Description */
17:22:51 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166576&oldid=166575 * Yayimhere2(school) * (-10) /* Description */
17:25:12 <esolangs> [[Crypten]] https://esolangs.org/w/index.php?diff=166577&oldid=166574 * * (+24)
17:30:57 -!- APic has joined.
17:38:51 -!- Yayimhere has quit (Ping timeout: 250 seconds).
17:42:38 <esolangs> [[Talk:Befunge]] https://esolangs.org/w/index.php?diff=166578&oldid=151055 * SuperSMG5 * (+489) /* How many hello world programs can you make? */ new section
18:13:18 <esolangs> [[User talk:Pandaqwanda/pixeLang]] M https://esolangs.org/w/index.php?diff=166579&oldid=114127 * SuperSMG5 * (+109) I want answers plz
18:17:45 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
18:19:42 <esolangs> [[List of ideas]] M https://esolangs.org/w/index.php?diff=166580&oldid=164493 * SuperSMG5 * (+57) I suggested a name
18:23:57 <esolangs> [[User talk:]] M https://esolangs.org/w/index.php?diff=166581&oldid=166568 * * (+16)
18:25:28 <esolangs> [[User talk:Yayimhere]] https://esolangs.org/w/index.php?diff=166582&oldid=166505 * * (+131)
18:27:07 -!- SuperSMG5 has joined.
18:27:54 -!- SuperSMG5 has quit (Client Quit).
18:29:18 <esolangs> [[Crypten]] https://esolangs.org/w/index.php?diff=166583&oldid=166577 * * (+40) truth machine
18:56:09 <esolangs> [[Smalltix]] M https://esolangs.org/w/index.php?diff=166584&oldid=166336 * Corbin * (+57) Influences, influenced.
19:33:37 -!- op_4_ has joined.
19:36:46 -!- mynery has joined.
19:41:36 -!- myname has quit (*.net *.split).
19:41:36 -!- op_4 has quit (*.net *.split).
19:41:37 -!- op_4_ has changed nick to op_4.
19:43:50 <esolangs> [[Special:Log/newusers]] create * Jay * New user account
19:46:08 <esolangs> [[Vixen]] N https://esolangs.org/w/index.php?oldid=166585 * Corbin * (+3987) WIP for my fork of Smalltix. I've included the fundamental methods if anybody else is interested.
20:06:20 <esolangs> [[Vixen]] https://esolangs.org/w/index.php?diff=166586&oldid=166585 * Corbin * (+2426) /* Core */ Explain how to clone and send.
20:15:37 <esolangs> [[User:RaiseAfloppaFan3925]] M https://esolangs.org/w/index.php?diff=166587&oldid=166419 * RaiseAfloppaFan3925 * (+226)
20:24:46 -!- tromp has joined.
20:43:59 <esolangs> [[Special:Log/newusers]] create * RobbyZero * New user account
20:51:18 <esolangs> [[Esolang:Introduce yourself]] M https://esolangs.org/w/index.php?diff=166588&oldid=166508 * RobbyZero * (+199) Added my introduction
20:52:09 <esolangs> [[User:RaiseAfloppaFan3925]] M https://esolangs.org/w/index.php?diff=166589&oldid=166587 * RaiseAfloppaFan3925 * (+205)
20:58:15 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=166590&oldid=166588 * Jay * (+32)
21:13:36 <esolangs> [[NDBall]] M https://esolangs.org/w/index.php?diff=166591&oldid=134303 * RocketRace * (+1) spelling
21:14:31 -!- ais523 has joined.
21:16:27 <esolangs> [[Mango]] M https://esolangs.org/w/index.php?diff=166592&oldid=166424 * RaiseAfloppaFan3925 * (+576) Stuff
21:20:58 <esolangs> [[User:RaiseAfloppaFan3925]] M https://esolangs.org/w/index.php?diff=166593&oldid=166589 * RaiseAfloppaFan3925 * (+106) a remark
21:53:33 <esolangs> [[User talk:RaiseAfloppaFan3925]] https://esolangs.org/w/index.php?diff=166594&oldid=143502 * Aadenboy * (+510) the wiki is usually quite active
22:16:21 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
22:39:13 -!- shikhin has quit (Quit: Quittin'.).
22:40:53 -!- shikhin has joined.
22:42:33 -!- shikhin has changed hostmask to ~shikhin@offtopia/offtopian.
23:04:49 -!- amby has joined.
23:51:28 <esolangs> [[AntiDupCall]] https://esolangs.org/w/index.php?diff=166595&oldid=159825 * Kaveh Yousefi * (+262) Supplemented several page category tags and added a hyperlink to my implementation on GitHub.
23:54:57 -!- FreeFull has quit.
00:12:38 -!- Lord_of_Life has quit (Remote host closed the connection).
00:13:31 -!- Lord_of_Life has joined.
00:29:26 -!- amby has 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).
01:23:04 <esolangs> [[Collern]] https://esolangs.org/w/index.php?diff=166596&oldid=166560 * Dmiz * (+162)
01:23:55 <zzo38> I wanted to make a new OID arc to be standardized by ITU or ISO (preferably ITU, although I have been told that is nearly impossible to actually tell them anything), which is combining an existing identification (of one of many kinds, e.g. international telephone numbers, internet domain names, ICAO airport codes, etc) with a timestamp, and in some cases also automatic delegation.
01:24:03 <zzo38> How would you do such a thing like that?
01:36:41 <esolangs> [[Collern]] https://esolangs.org/w/index.php?diff=166597&oldid=166596 * Dmiz * (+69)
03:51:54 <esolangs> [[User talk:Yayimhere]] https://esolangs.org/w/index.php?diff=166598&oldid=166582 * Yayimhere2(school) * (+2) /* Revert */
03:52:42 <esolangs> [[User talk:Yayimhere]] https://esolangs.org/w/index.php?diff=166599&oldid=166598 * Yayimhere2(school) * (+144) /* Sorry? */
03:53:37 <ais523> I'm looking through my mailserver logs, and there are a surprising number of HTTP requests in them – I think it's the AI scraperbots that have found a list of mailservers somewhere, and are just trying to interpret them as web addresses (domain:port) and trying to scrape a page from them
04:13:32 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166600&oldid=166576 * Yayimhere2(school) * (+1082) /* Description */
04:29:53 <b_jonas> ais523: that's not unreasonable, if they send a HTTP request then whatever server is on the other side will often send an error reply that can let you figure out what kind of service it is, and you can send a more useful request the next time
04:30:11 <ais523> b_jonas: there's a couple of domains that are sending the same requests over and over again, though
04:30:34 <b_jonas> yeah, that's less useful probably
04:31:10 <b_jonas> especially if it's on port 25
04:32:29 <korvo> I wonder why they think that the wiki is inactive. We don't really rotate the featured-article box, but that's the only thing that isn't changing on the front page.
04:51:40 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166601&oldid=166600 * Yayimhere2(school) * (+39) /* Computational class */
04:55:51 <zzo38> I have also seen HTTP requests on the SMTP server, on my computer, too.
04:57:47 -!- Yayimhere has joined.
05:00:38 <esolangs> [[Utral]] https://esolangs.org/w/index.php?diff=166602&oldid=166547 * Yayimhere2(school) * (+20) /* Info */
05:00:47 <esolangs> [[Utral]] https://esolangs.org/w/index.php?diff=166603&oldid=166602 * Yayimhere2(school) * (+1) /* Info */
05:01:37 -!- slavfox has quit (Quit: ZNC 1.8.2 - https://znc.in).
05:02:14 <korvo> Yayimhere: Welcome back.
05:02:58 <korvo> I thought about your question on altering the K combinator for a bit. Let's say that K' x y = y; From S, what can we do? Well, note that K' S y = y, so K'S is equivalent to I.
05:04:07 <korvo> I looked at it for a while, but I wasn't quite able to find B, C, or K; any of those would completely answer the question. I did find O and M and a few other common combinators, though.
05:04:44 <Yayimhere> we could just shorten the reverse k to RK
05:04:44 <korvo> Well, I didn't try very hard. Maybe you can find them?
05:05:16 <Yayimhere> but you are a lot better than me, so I will probably not get much further than you
05:05:35 <korvo> I'd avoid reusing letters. R, the robin, is a combinator of BCI already.
05:05:47 -!- slavfox has joined.
05:06:43 <Yayimhere> also, the reason im asking, is because of the fact that this reverse K, is actually just the church numeral for 0
05:06:56 <korvo> Oh, I'm not better than you, just more well-researched. I bet that if I go get my copy of Smullyan off the shelf, I could find some words about this variant of K. Perhaps he has an exercise where he proves that it's equivalent to K, or where he proves that it's useless. It wouldn't be the first time; earlier in the year, that same book taught me that GI and BCI are equivalent.
05:08:13 <korvo> Ah! Careful with that. Lambda calculus is done with the assumption that we can build any applicative tree we want; combinatory logic is more restricted. They aren't the same system, even though they have a lot in common because they both have applicative trees.
05:08:47 <Yayimhere> oh they arent? I actually just assumed so, because SKI often is represented as lambda calculus expressions
05:10:53 <korvo> My opinion on this is that a combinator is very limited; a combinator builds an applicative tree from its inputs. A closed lambda term, more generally, builds another lambda term from its inputs; a lambda term can have applications and also it can have abstractions.
05:11:44 <korvo> Well, not everybody agrees with me. See [[closed lambda term]] for what we *do* agree upon.
05:12:57 <korvo> But yeah, this means that Iota isn't a combinator. Neither is Alpha. They are closed lambda terms, though. Jot isn't a combinator, but a way to encode certain lambda terms.
05:14:00 <Yayimhere> also if your wondering what I need this for, I need it to prove υλ TC
05:14:46 <korvo> I have no idea what's going on in that page, sorry.
05:15:47 <Yayimhere> it is however still an interesting question
05:19:26 <korvo> Maybe. The standard proof that SKI can encode lambda terms, given at [[combinatory logic]], revolves around matching each of S, I, and K to different possible terms: S gives application, I gives De Bruijn index 0, and K gives constants. K' gives the ability to discard an argument and return I, which isn't the same as holding a constant.
05:19:57 <Yayimhere> im gonna go and make myself go crazy with uncompetition lol
05:20:00 <korvo> I bet that a computer search could quickly settle the question, but if the answer is a big tree filled with lots of S then that won't be enlightening.
05:21:06 <korvo> I'm going to play more with Smalltix. I've documented my own calling convention at [[Vixen]]. Treating directories as objects is surprisingly fruitful.
05:22:20 <Yayimhere> also, does anyone know an esolang, where every function, no matter with input or no, will evaluate to a different output
05:24:16 <zzo38> Another use to attack your ally in Pokemon is: if you do not want to attack your opponent(s) for some reason (e.g. Destiny Bond), especially if your ally has Protect.
05:25:17 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166604&oldid=166601 * Yayimhere2(school) * (+182) /* Computational class */
05:25:50 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166605&oldid=166604 * Yayimhere2(school) * (+0) /* Computational class */
05:28:47 <esolangs> [[Underload]] https://esolangs.org/w/index.php?diff=166606&oldid=158524 * Yayimhere2(school) * (+13)
05:29:32 <esolangs> [[Xx]] https://esolangs.org/w/index.php?diff=166607&oldid=166503 * Yayimhere2(school) * (-8)
05:31:05 <esolangs> [[Xx]] https://esolangs.org/w/index.php?diff=166608&oldid=166607 * Yayimhere2(school) * (+13) /* turing completeness proof */
05:33:54 -!- Yayimhere has quit (Quit: Client closed).
05:37:19 -!- Yayimhere has joined.
05:39:34 <korvo> Yayimhere: That's not a language thing; can you see why?
05:39:48 * korvo forcing nuance to develop
05:47:08 <korvo> Yayimhere: Evaluation of functions isn't a linguistic thing. We just pretend that they're connected.
05:48:44 <korvo> Like, is there a family of functions where each function evaluates to a different output (on a fixed input)? Yes.
05:49:09 <Yayimhere> but is there one without any input
05:49:15 <korvo> I'd ask what kind of programming *system* you want, not just what kind of *language* you're using to express computations in that system.
05:49:50 <korvo> Functions always have inputs. When we say that a function doesn't have an input, we mean that its input domain is a set with one element, and we always use that one element as the input.
05:50:18 <korvo> data 1 = *; f * = 42 -- f "doesn't have an input"
05:51:51 <Yayimhere> i want a system where routing myself an infinite family of functions where "each function has a sort of "inertia", where they even without input, give an output" where "without input" is, a uniform input
05:53:01 <ais523> so the interesting way of interpreting this is "is it possible to design a language so that there's some specific input that you can give to any function, and it causes every possible function to return a different output?"
05:53:27 <ais523> one example of a way you might do that would be to have an input that you can give to a function and it causes the function to print its own source code
05:53:47 <Yayimhere> or in principle, the system this is based off of, a function can return multiple outputs, as it is semi-ambiguous what it should return
05:54:02 <Yayimhere> (or a random one of these outputs)
05:54:05 <ais523> but, this sort of thing is difficult to work into a language because that sort of value can't correctly be manipulated using functions
05:55:00 <ais523> I've had esolang ideas where I wanted to do this sort of thing but was unable to design a coherent language around them (mostly based on object-oriented-like languages where objects were functions that took messages/methodcalls as arguments)
05:55:25 <ais523> it's just far too easy to end up with two requiremens that conflict with each other
05:55:50 <Yayimhere> again, this is all based off of an already existing language
05:56:52 <Yayimhere> ais523: requierments for the language/system, or for this input?
05:57:02 <ais523> for the language design
06:04:43 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166609&oldid=166605 * Yayimhere2(school) * (+60) /* Computational class */
06:15:27 -!- Yayimhere has quit (Ping timeout: 250 seconds).
06:40:18 -!- Sgeo has quit (Read error: Connection reset by peer).
07:37:18 <esolangs> [[User:JIT]] https://esolangs.org/w/index.php?diff=166610&oldid=165415 * JIT * (+41)
07:48:41 -!- Yayimhere has joined.
07:52:49 <esolangs> [[B9]] M https://esolangs.org/w/index.php?diff=166611&oldid=166507 * JIT * (+27)
07:54:06 -!- Yayimhere has quit (Quit: Client closed).
08:03:47 -!- Yayimhere has joined.
08:10:17 -!- Yayimhere has quit (Ping timeout: 250 seconds).
08:11:30 -!- tromp has joined.
09:12:44 <b_jonas> korvo: hold on, in https://logs.esolangs.org/libera-esolangs/2025-08.html#lvw you specifically told me that the Smullyan Mockingbird book does not give a name to KI. doesn't that mean a priori that you won't find the theorem of what you can generate from S and KI (and possibly I, I don't remember how Yayimhere asked exactly) in that book?
09:51:24 -!- Yayimhere has joined.
09:58:27 <strerror> (I is just ꓘS or ꓘꓘ (where ꓘ = KI))
10:04:15 -!- Yayimhere has quit (Ping timeout: 250 seconds).
10:05:11 <tromp> K is True and KI is False
10:05:46 <tromp> True x y = x and False x y = y
10:06:08 -!- Yayimhere has joined.
10:06:26 <Yayimhere> strerror: is this related to the reverse K? I have not been here I got dissconnected
10:08:42 <strerror> Yayimhere: yes. Though I've just picked a name for it, not found anything new about it.
10:09:39 <strerror> Hmm it's “Lisu letter kha” — “a language of the Lisu people in Yunnan, China”
10:10:48 <Yayimhere> well sorry Lisu people, your letter has now become K
10:11:12 <strerror> tromp: that sounds suggestive of some kind of de Morgan duality? Though maybe only if we also flip S.
10:12:30 <strerror> SK is universal, Sꓘ may or may not be, and I suppose ꓘƧ ought to be for some Ƨ
10:13:33 <Yayimhere> its would be quite interesting if Sꓘ AND K Ƨ are TC
10:14:34 <esolangs> [[95-98]] https://esolangs.org/w/index.php?diff=166612&oldid=134713 * Yayimhere2(school) * (+6) /* how it works */
10:15:04 <esolangs> [[Talk:95-98]] https://esolangs.org/w/index.php?diff=166613&oldid=156965 * Yayimhere2(school) * (+44) /* About addition arithmetic command */
10:16:03 <tromp> I think S,False is not TC
10:25:22 <esolangs> [[2I1IF]] N https://esolangs.org/w/index.php?oldid=166614 * Yayimhere2(school) * (+603) Created page with "{{WIP}} '''2I1IF''' is a family of languages, based off of [[Uncompetition]]. == Concept == For a language to qualify for being a part of 2I1IF, it must be able to be interpreted as "An infinite amount of inputs, and a single universal function", and "An infinit
10:30:43 -!- Yayimhere has quit (Quit: Ping timeout (120 seconds)).
10:35:40 <esolangs> [[2I1IF]] https://esolangs.org/w/index.php?diff=166615&oldid=166614 * Yayimhere2(school) * (+220)
10:35:49 <esolangs> [[2I1IF]] https://esolangs.org/w/index.php?diff=166616&oldid=166615 * Yayimhere2(school) * (-8)
10:43:27 <esolangs> [[2I1IF]] https://esolangs.org/w/index.php?diff=166617&oldid=166616 * Yayimhere2(school) * (+517) /* Concept */
10:53:35 -!- amby has joined.
10:57:36 <esolangs> [[2I1IF]] https://esolangs.org/w/index.php?diff=166618&oldid=166617 * Yayimhere2(school) * (+6) /* Concept */
11:23:50 -!- perlbot has quit (Quit: ZNC 1.9.1+deb2+b3 - https://znc.in).
11:23:50 -!- simcop2387 has quit (Quit: ZNC 1.9.1+deb2+b3 - https://znc.in).
11:38:07 -!- Lord_of_Life has quit (Ping timeout: 246 seconds).
11:38:58 -!- Lord_of_Life has joined.
11:58:38 -!- Riviera has quit (Quit: leaving).
12:21:26 <ais523> I also did some experimentation with S and KI, and mixing them didn't seem like it was giving substantial capabilities over S on its own (e.g. S (KI) a b = (KIb)(ab) = I(ab) = ab, so S (KI) = I; and (KI) S also = I)
12:22:05 <ais523> this isn't a proof that it's S + KI is sub-TC, but it is pretty discouraging and makes it unlikely that adding KI to S would make it Turing-complete
12:23:30 <ais523> S S (KI) a = (Sa)(KIa) = S a I; S a I b = (ab)(Ib) = abb; thus S S (KI) = W and that is giving you a small amount of power that S doesn't have on its own
12:24:25 <ais523> but W (KI) and (KI) W are both also equivalent to I so this doesn't really help much
12:31:44 -!- ais523 has quit (Quit: quit).
12:38:38 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
13:20:29 -!- tromp has joined.
13:24:05 <esolangs> [[2I1IF]] https://esolangs.org/w/index.php?diff=166619&oldid=166618 * Yayimhere2(school) * (+14)
13:31:29 <esolangs> [[User:Yayimhere]] https://esolangs.org/w/index.php?diff=166620&oldid=166528 * Yayimhere2(school) * (+12) /* esolangs */
13:32:05 <esolangs> [[2I1IF]] https://esolangs.org/w/index.php?diff=166621&oldid=166619 * Yayimhere2(school) * (+41)
13:39:32 -!- Sgeo has joined.
13:41:26 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166622&oldid=166609 * Yayimhere2(school) * (+1)
13:44:56 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166623&oldid=166622 * Yayimhere2(school) * (+102) /* Computational class */
14:03:37 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166624&oldid=166623 * Yayimhere2(school) * (+556) first Uncompetition program!
14:04:17 -!- Yayimhere has joined.
14:04:34 <Yayimhere> hello people, ive been on and off for a while, but now ill be more permanently on!
14:06:47 <Yayimhere> I just subjected myself to the worst manual interpretation of a program ive ever done, but im happy I did so
14:15:32 <esolangs> [[Talk:Crypten]] N https://esolangs.org/w/index.php?oldid=166625 * * (+101) Created page with "so @yayimhere what do you think? -~~~~"
14:16:41 -!- vista_user has joined.
14:16:47 -!- vista_user has changed hostmask to ~vista_use@user/DOS-User:11249.
14:17:39 <esolangs> [[Talk:Crypten]] https://esolangs.org/w/index.php?diff=166626&oldid=166625 * Yayimhere2(school) * (+259)
14:18:07 <vista_user> if you think about it interphase g2 stage in mitosis is basically running `chkdsk` on the dna
14:19:07 <vista_user> basically what both fsck and chkdsk do
14:19:39 <int-e> "file system check"
14:20:20 <int-e> "check disk", this one is for dos and windows
14:20:31 <vista_user> literallh same command but batch instead of bash
14:21:16 <vista_user> (yes, fsck can be more stuff other than a way to avoid the f word in moderated chatrooms lol)
14:21:47 <Yayimhere> cuz I dont have much knowledge of bash/batch nor dna
14:21:56 <esolangs> [[Talk:Crypten]] https://esolangs.org/w/index.php?diff=166627&oldid=166626 * Yayimhere2(school) * (+50)
14:22:08 <vista_user> it was a joke on both biology and computing either way
14:22:11 <esolangs> [[Crypten]] M https://esolangs.org/w/index.php?diff=166628&oldid=166583 * * (+255) Notes on similarity to BF
14:22:11 <int-e> vista_user: So what happens if I don't think about it? does that accelerate cell or organism death?
14:23:33 <vista_user> im not a scientist (not yet at least) im just some high school student
14:30:01 <korvo> b_jonas: Maybe I missed something, but K' x y = y; K I y = I; so KI isn't K'. I just woke up though, so maybe I'm not fully loaded yet.
14:31:20 <korvo> Oh, hello, K I y z = I z; so KI is a rank-2 combinator. I see. Yeah, not awake yet.
14:32:28 <korvo> That said, you're right about what I said in the past. If that's accurate then you're right that Smullyan won't have the answer. Thanks for recalling that; my memory doesn't actually work right, so I don't recall.
14:33:30 <int-e> vista_user: it was a play on words ("if you think about it...")
14:35:26 <vista_user> in a discord server im in typo got misspelled as tyop 11 times
14:36:21 <korvo> And that's what typing class is for. It's not fun but it pays off.
14:37:05 <Yayimhere> im laying in a very bad position for typing right now
14:37:17 <vista_user> (when inmake the mosy typso is when im on a pjone(
14:37:58 <Yayimhere> (()) there's a language of that name
14:38:54 <korvo> Eventually your backs won't permit that. I'm at a standing desk with an ergonomic-split keyboard and I take breaks to stretch my hands and arms.
14:39:02 <Yayimhere> why is lisp so popular within esolangin'?
14:39:27 <vista_user> idk but theres always teh joke thta lisp = ()(())(()())()()
14:40:10 <vista_user> (yes, i took teh time to acytually match the parens!)
14:40:24 <korvo> Why think that Lisp is unpopular? A company called ITA used Lisp (SBCL, I think) to revolutionize how airline booking worked; they were acquired by Google, forcing Google to maintain a Lisp application for decades.
14:41:07 <Yayimhere> I think the reason is in danish programming circles rarely use LISP
14:41:25 <korvo> S-expressions are simple. Eventually, after writing many parsers, you will come to appreciate that a Lisp parser takes less than 100 LOC and can be memorized.
14:41:44 <esolangs> [[Talk:(())]] https://esolangs.org/w/index.php?diff=166629&oldid=130205 * Yayimhere2(school) * (+189)
14:41:58 <vista_user> i never said it was complicated, onlynthat it has A LOT of parens
14:42:43 <korvo> Lisp has as many parens as, say, Python. Whenever Lisp writes (f x y), Python writes f(x, y).
14:43:38 <korvo> It just looks like more parens because they pile up at the beginning as well as the end, as in ((f x y) z). But there's still a pileup in Python; f(x, y)(z) has it in the middle of the expression.
14:45:42 <korvo> You're fine. Y'all're still learning about the different possibilities; it hasn't yet clicked that most languages are bad.
14:46:39 <korvo> Like, yes, Lisps are bad. But the popular languages that people use all the time are also bad. So why point and laugh at syntax? I think that it's more about social acceptability than what languages actually represent.
14:47:27 <vista_user> i never said it was bad per se. there are objectively shitty languages thpugh
14:47:33 <korvo> C++ and C are bad too, but you'll see enormous numbers of people defending them and their memory-unsafety purely out of selfishness and machismo. You'll hear piles of untruths: C is low-level, C is efficient, C is safe and you're just a bad programmer, etc.
14:47:42 <int-e> korvo: you can use K' = S (S (K K) I) if you want a more faithful simulation
14:48:31 <int-e> but K' = K I is "good enough" for many purporses because any reduction that uses K' x y -> y can be simulated through K I x y -> I y -> y
14:49:11 <Yayimhere> vista_user: thats why we usually dont mention esolangs in such discussion
14:49:15 -!- Lord_of_Life has quit (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine).
14:49:26 <int-e> But you do get different normal forms.
14:49:30 -!- sftp has quit (Ping timeout: 245 seconds).
14:49:35 <korvo> int-e: Ha, that's fair. Thanks.
14:50:17 -!- Lord_of_Life has joined.
14:52:33 -!- Yayimhere has quit (Quit: Client closed).
15:01:21 -!- Yayimhere has joined.
15:02:42 -!- vista_user has quit (Remote host closed the connection).
15:06:37 -!- citrons has quit (Ping timeout: 260 seconds).
15:12:11 -!- citrons has joined.
15:18:42 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166630&oldid=166624 * Yayimhere2(school) * (+32) /* Description */
15:31:54 -!- Yayimhere has quit (Quit: Client closed).
15:37:21 <int-e> korvo: why did I make it so complicated? K' = S K works.
15:38:52 <int-e> In any case, it's a very ad-hoc trick; S M x y -> M y (x y) doesn't fit most binary combinators.
15:39:44 -!- Yayimhere has joined.
15:40:45 -!- simcop2387 has joined.
15:42:25 <Yayimhere> ok, i have an idea, and, I want some help to like "try" it
15:42:27 <korvo> int-e: Sure. What's difficult for me is getting any sort of linear or cancellative behavior out of S. K' is technically cancellative, but in a seemingly-useless way.
15:42:46 -!- perlbot has joined.
15:42:49 <b_jonas> int-e: yes, korvo said KI = SK already. but the question is the opposite, whether you can derive K from S and KI
15:43:04 <b_jonas> or possibly from S and KI and I
15:44:10 <b_jonas> we already know that all combinators can be derived from S and K and we know the general procedure to do it
15:45:13 <korvo> K'S will give I, at least.
15:46:00 <int-e> No; none of these erase their last argument, but K does. Formally, the right-most leaf of any expression is preserved by reductions in {S,KI,I}, so you can't have M x y -> x
15:48:01 <b_jonas> int-e: hmm, so can you do something where there needs to be a dummy last argument, but you can still translate any program?
15:48:18 <int-e> But maybe you can you have M x y z -> x z? That would be sufficient for simulation...
15:48:35 <int-e> (same thought, I was slow to type it out)
15:48:46 <b_jonas> no, it wouldn't be sufficient because you also need some equivalent of S
15:52:18 <int-e> Well, depends on what you want; it would be sufficient for simulating head reductions which is all you need for checking whether a term reduces to, say, K.
15:52:56 <esolangs> [[EXDotSF]] M https://esolangs.org/w/index.php?diff=166631&oldid=96899 * Rudolph4268 * (+1) Fixed a typo in the description for the "?" command
15:53:49 <korvo> int-e: That convinces me. Yayimhere, does that make sense?
15:55:04 <korvo> The system {S, K'} we discussed earlier is not complete; in particular it doesn't have K.
15:56:08 <korvo> int-e: Further, we might wonder about the left-most leaves. Is there a deeper reason why K and I yield K' but K' and I do not yield K? It might merely be left-to-right evaluation and the ability to extend the context to the right but not to the left.
16:00:09 -!- perlbot has quit (Quit: ZNC 1.9.1+deb2+b3 - https://znc.in).
16:00:09 -!- simcop2387 has quit (Quit: ZNC 1.9.1+deb2+b3 - https://znc.in).
16:00:23 * korvo thinking KI should be named "kite"
16:08:27 -!- Yayimhere has quit (Quit: Client closed).
16:09:36 -!- Yayimhere has joined.
16:17:45 -!- shikhin has quit (Quit: Quittin'.).
16:19:22 -!- shikhin has joined.
16:20:31 -!- shikhin has changed hostmask to ~shikhin@offtopia/offtopian.
16:22:05 <esolangs> [[]] https://esolangs.org/w/index.php?diff=166632&oldid=166447 * C++DSUCKER * (+336)
16:23:04 <esolangs> [[]] https://esolangs.org/w/index.php?diff=166633&oldid=166632 * C++DSUCKER * (+8)
16:24:16 <esolangs> [[]] https://esolangs.org/w/index.php?diff=166634&oldid=166633 * C++DSUCKER * (+0)
16:24:26 -!- simcop2387 has joined.
16:24:30 <esolangs> [[]] https://esolangs.org/w/index.php?diff=166635&oldid=166634 * C++DSUCKER * (+1)
16:26:16 <esolangs> [[]] M https://esolangs.org/w/index.php?diff=166636&oldid=166635 * C++DSUCKER * (+2) /* Example: solve Erds-Straus conjecture */ big header -> small header
16:32:30 -!- perlbot has joined.
17:02:26 -!- perlbot has quit (Quit: ZNC 1.9.1+deb2+b3 - https://znc.in).
17:02:26 -!- simcop2387 has quit (Quit: ZNC 1.9.1+deb2+b3 - https://znc.in).
17:12:14 <esolangs> [[Gilbert Leo Thulani]] N https://esolangs.org/w/index.php?oldid=166637 * Yayimhere2(school) * (+1151) Created page with "Gilbert Leo Thulani, known on the esolang wiki as [[User:Yayimhere]], is an esolanger, and a musician, and makes a lot of art in general. this is some info about her/them/him(...NO!) == Programming specific interests == here's some things I like l
17:13:11 <korvo> Yayimhere: Wrong namespace. Also, please pick one account and stick to it.
17:14:20 <Yayimhere> (also this is not a new account, just some more in depth info on me as a person/creator of esolangs)
17:17:02 <korvo> What you wrote is appropriate for the user namespace but not the main namespace. Pages in [[:category:people]] are usually more subdued; see [[John Horton Conway]], [[Edwin Brady]], [[Gabriella Gonzalez]], or [[Ward Cunningham]] for examples.
17:17:44 <esolangs> [[Gilbert Leo Thulani]] https://esolangs.org/w/index.php?diff=166638&oldid=166637 * Yayimhere2(school) * (-1151) Blanked the page
17:17:45 <esolangs> [[Talk:Crypten]] https://esolangs.org/w/index.php?diff=166639&oldid=166627 * * (+274)
17:17:48 <korvo> While I'm not a deletionist, I do struggle to think of notable work that you've produced. Please recall, from only a few months ago, that we generally expect folks at your age to be *learning* rather than *producing*.
17:19:13 <esolangs> [[User:RaiseAfloppaFan3925]] M https://esolangs.org/w/index.php?diff=166640&oldid=166593 * RaiseAfloppaFan3925 * (-5503) mite kure no kijaku sei ei e
17:20:20 <esolangs> [[Talk:UnCompetition]] N https://esolangs.org/w/index.php?oldid=166641 * * (+170) Created page with "===A question=== Wouldn't <code>~{''x''}</code> force the existence of command ''x'' in the program? -~~~~"
17:25:42 <strerror> I still feel it's TC because Sxyz shuffles y and z, though it would end up being messy because you can't clean up the trailing subterms
17:25:42 <korvo> Yayimhere: In general, we do have a written policy about this; please read it. https://esolangs.org/wiki/Esolang:Authors
17:27:33 -!- Yayimhere has quit (Ping timeout: 250 seconds).
17:28:44 <strerror> .oO( Of course the real problem isn't anyone's age, just that it's no longer 1993 and the bar is much higher for what makes an interesting language )
17:29:22 <strerror> Maybe the only way now is to invent them by accident, like what just happened
17:30:57 <korvo> Well, that doesn't quite track. Yay's produced quite a bit of garbage by putting a "lol xd random" spin on anything that they hear about. I understand why it happens, and I was once that age too; but I also recognize that I was very pretentious and had no idea what I was talking about, even as I was doing basic programming.
17:31:19 <esolangs> [[WtE,teplw! but actually usable]] https://esolangs.org/w/index.php?diff=166642&oldid=165390 * * (+567)
17:31:36 <korvo> It's not much different from how learning a language does not make one a linguist. (Sorry Whorf, but strong Sapir-Whorf is bogus; learning Lojban does not make one a logician!)
18:11:19 -!- Yayimhere has joined.
18:11:31 <Yayimhere> korvo: i sturggle to infer(?) what you mean by noteable
18:12:44 <korvo> Yayimhere: Like, work which is known on its own for its own merits. Work that people know about before they know its author.
18:13:41 <Yayimhere> korvo: yea no I dont have any, but thats a popularity thing, to some extent
18:14:22 <Yayimhere> and for the learning not producing thing, the only reason I make esolangs is cuz I find it fun to work on. nothing else really
18:14:54 <korvo> Yayimhere: I don't have any notable work either. Don't worry about it. The point is that an author page in the main namespace is helpful because it lists notable works; if somebody discovers an author via one route, then they should be able to discover related work by the same author.
18:19:23 <esolangs> [[User:Yayimhere/an esolang for my puter]] https://esolangs.org/w/index.php?diff=166643&oldid=151859 * Yayimhere2(school) * (+114)
18:23:42 -!- Yayimhere has quit (Quit: Client closed).
18:26:29 <esolangs> [[User:Yayimhere/an esolang for my puter]] https://esolangs.org/w/index.php?diff=166644&oldid=166643 * Yayimhere2(school) * (+88) /* thoughts for lang creation */
18:28:48 <esolangs> [[User:Yayimhere/an esolang for my puter]] https://esolangs.org/w/index.php?diff=166645&oldid=166644 * Yayimhere2(school) * (+49) /* thoughts for lang creation */
18:30:15 <esolangs> [[-hacker]] https://esolangs.org/w/index.php?diff=166646&oldid=166169 * Ivava * (+45)
18:39:11 <esolangs> [[User:Yayimhere/Sandbox/]] N https://esolangs.org/w/index.php?oldid=166647 * Yayimhere2(school) * (+57) Created page with "this is me, trying to prove TC!!! seems feasible lol."
18:40:03 <esolangs> [[User:Yayimhere/Sandbox]] https://esolangs.org/w/index.php?diff=166648&oldid=166566 * Yayimhere2(school) * (+38)
18:46:55 <esolangs> [[User:Yayimhere/Sandbox]] https://esolangs.org/w/index.php?diff=166649&oldid=166648 * Yayimhere2(school) * (+4) /* */
18:50:37 <b_jonas> korvo: but isn't "kite" used for some other bird already?
18:56:22 <esolangs> [[User:RaiseAfloppaFan3925/Sandbox]] M https://esolangs.org/w/index.php?diff=166650&oldid=159591 * RaiseAfloppaFan3925 * (+2485) TETOTETOTETOTETOTETOTETOTETOTETOTETOTETOTETOTETOTETOTETOTETOTETOTETOTETOTETOTETOTETOTETOTETOTETOTETOTETOTETOTETOTETOTETOTETOTETO
19:03:36 <korvo> b_jonas: It doesn't seem like it. Additionally, Smullyan's character says of their Church encoding, "For t, I take the kestrel K; for f, I take the bird KI." This is in the middle of one of two sections that has multiple uses of KI.
19:05:21 <korvo> The section on arithmetic notes that V(KI) is useful, but focuses on the vireo V.
19:11:34 <esolangs> [[Combinatory logic]] https://esolangs.org/w/index.php?diff=166651&oldid=164969 * Corbin * (+167) /* Table of combinators */ Add two variations on S given by Smullyan.
19:12:00 <korvo> I did find two birds, phoenix and psi bird, in the nearby notes. So I do appreciate being sent back to the book.
19:13:43 -!- perlbot has joined.
19:15:48 -!- simcop2387 has joined.
19:18:52 <Sgeo> Well I have an idea for an esolang, somewhat boring though. Brainfuck with I/O altered to make more sense in a mainframe context.
19:19:31 <esolangs> [[User:Yayimhere/Sandbox/]] https://esolangs.org/w/index.php?diff=166652&oldid=166647 * Yayimhere2(school) * (+589)
19:19:32 <Sgeo> Easiest thing to do would be to have , bring in 80 characters across 80 cells
19:19:55 <Sgeo> And . would.. hmm, not sure if 80 or 133 makes more sense. (Punch vs print)
19:31:00 -!- ais523 has joined.
19:35:26 <esolangs> [[Combinatory logic]] M https://esolangs.org/w/index.php?diff=166653&oldid=166651 * Corbin * (+0) /* Table of combinators */ Alphabetize Greek letters.
19:40:16 <ais523> <korvo> And that's what typing class is for. It's not fun but it pays off. ← I was technically formally trained in touch-typing, but I invented ending up inventing my own style which is very different from the one that's normally taught
19:40:50 <ais523> I don't keep my hands in a consistent position, I move them based on what I'm subconsciously anticipating that I'll need to type next
19:41:20 <korvo> ais523: I have a pile of quirks from playing too much piano. The worst thing I do is Shift with the same hand that I'm keying rather than alternating.
19:41:22 <ais523> it is extremely fast compared to normal typing styles, but also has a somewhat higher error rate, so it only makes sense in situations where backspace is cheap/free (which wasn't true when typing was invented, but usually is nowadays)
19:42:22 <ais523> hmm, I experimented, and discovered that I was using the left shift key for all my shifting needs
19:42:53 <ais523> there are exceptions, like typing $ or %, so I don't use the left shift key for absolutely everything, just most of it
19:42:56 <int-e> how else would you sprint in video games ;)
19:45:29 <ais523> on the subject of Lisp syntax – I think the primary issue with s-expressions and the parenthesis pileup is that a long row of grouping characters makes it harder for humans to mentally find the start and end of the groups, than if the grouping characters were less clumped up
19:45:57 <ais523> but this isn't really an essential issue because you could change Lisp to use m-expressions instead and nothing would really change (it was originally designed to use m-expressions, IIRC)
19:46:29 * Sgeo wonders how Rhombus is going
19:48:07 <ais523> I guess my main real concern with Lisp is that I prefer non-scripting languages to be statically typed, but if you add static types to Lisp it gets rid of a lot of the theoretical elegance
19:48:10 <korvo> Empirically, the ]]] do pile up in M-expression languages like Wolfram. And the ))) pile up in Python too. Really, the issue is that we use a 1D grammar for trees that aren't 1D.
19:49:11 <ais523> korvo: right, most serious programming languages nowadays have some sort of piping operator in order to resolve the most common case of that, but Lisp and Mathematica are both too old (actually Mathematica probably has one that isn't widely used)
19:49:34 <korvo> ...What *is* the Hausdorff dimension of a B-tree? This seems like something I should have seen before, but I don't know it offhand.
19:50:39 <ais523> in many cases this uses "method notation", piping with ., i.e. (add 1 (mul 2 (add 3 4))) becomes 4.add(3).mul(2).add(1)
19:50:57 <ais523> although, that transform swaps argument order, so ideally you'd also have a version that reverses argument order
19:51:15 <ais523> functional languages also tend to have an operator for that but it usually has a different name; |> seems popular at the moment
19:52:13 <ais523> and of course pointfree programming is naturally full of transformations like that – you rarely get a parenthesis pileup in Haskell, for example
19:53:29 <ais523> (now I just realised that a significant proportion of Rust's non-borrow-related syntactic sugar is designed around avoiding the need to nest a lot of {})
19:54:10 <ais523> in a way this is a rejection of the Lisp philosophy – inventing special-cased syntax to avoid needing to nest the program too much is basically the opposite of what Lisp is about, because it makes introspection difficult
19:55:08 <ais523> hmm, and thinking about it, there's also the Prolog style: add(3, 4, A), mul(2, A, B), add(1, B, C)
19:55:45 <ais523> despite being based on m-expressions, Prolog is almost completely immune to excessive nesting / rightward drift because it doesn't natively support nested predicate invocations, you have to manually sequence them
19:55:59 <ais523> but I'm not sure that the tradeoff that Prolog specifically makes is worth it
19:56:19 <korvo> I'm not exactly sure who started it, but by the 1970s the let-in style from maths seems to have become popular: let x = ... in f(x)
19:56:25 <ais523> (Prolog's syntax is regular enough and introspectable enough to make it possible to write Lisp-style macros in it, but in practice people don't bother)
19:56:51 <korvo> Execline forces this sort of un-nesting because it doesn't support $() inline shell. Instead we write: backtick -E x { ... } f $x
19:57:06 <ais523> korvo: let…in style sort-of naturally falls out of the formalizations of this sort of language, it probably started with someone trying to translate a paper about a language to a concrete implementation
19:57:53 <ais523> because the formalizations want the scope of a variable to be syntactically visible and properly nested, both the start and the end
19:58:36 <korvo> Also because left-to-right is a special reading order. In another buffer, the following execline: importas -iS V backtick -E exe { ${V}/call: $1 exe } $exe --add-fixed --recursive sha256 $2
19:58:40 <ais523> C89's { int a; float b; /* code */ } also achieves that goal (by treating it as sugar for { int a; { float b; /* code */ } }), but it's a less obvious approach from the theory (and C++ and C99 endd up changing it)
19:59:58 <korvo> execlineb and friends all start at the left and pop a fixed number of args, then exec() onto the rest of the args. Kind of like a stack, but usually not pushing, just popping. Substitutions are done by rewriting args; there's no substitution from envp, only from argv.
20:01:08 <ais523> korvo: I was going to say it's kind-of like a queue without enqueuing
20:01:17 <ais523> maybe I've been doing too much tag system programming
20:01:43 <ais523> in most languages that have that general style (e.g. Underload), there is a way to push onto the left-hand side (and this is used to implement loops)
20:01:54 <korvo> ais523: You're on the same page. Execline's author explicitly thinks of argv as something that can be reused and exec() is merely a way to load fresh code onto a single argv under consideration.
20:02:12 <ais523> I expect execline to have one too
20:02:54 <esolangs> [[Special:Log/delete]] delete * Ais523 * deleted "[[Gilbert Leo Thulani]]": blanked by author shortly after creation
20:02:55 <korvo> In Vixen terms, a single method activation only has a single process in memory; every exec() is temporarily activating a new method in the existing environment.
20:03:36 <ais523> korvo: I don't really see the one process versus multiple process thing as being a defining feature of shellscript/execline
20:04:12 <ais523> in a way, shellscript is "better isolated" because you know that commands you run are unlikely to do anything to the rest of the script, whereas an execline command could make arbitrary changes to the trailing arguments
20:05:42 <ais523> but in practice execline is only being used with commands specifically designed for it
20:06:40 <ais523> and "external" commands are called using backtick and the like
20:09:26 <korvo> ais523: Sure. I think that the efficiency is more relevant; by not having to spawn any bashes, I can send multiple messages per second. I still haven't figured out exactly what kind of security model can work on top of this, but it will probably involve having some sort of privileged representation for paths.
20:11:17 <ais523> my reaction to execline is pretty much along the lines of "the execline author's criticisms of sh are valid, but they would be addressed by changing to pretty much any programming language that's statically parsed, and there isn't a clear explanation of why execline uses the particular approach it does"
20:11:43 <ais523> especially because execline isn't actually statically parsed, you have to rely on all the commands to follow the parsing conventions to make it work
20:13:03 <ais523> also, tail-exec is a bizarre way to implement a state machine, most languages have more efficient ways to implement them than that
20:13:52 <korvo> Oh, execline is purpose-built for s6, which is a fork of daemontools. One of the things I'm going to explore is how s6 service directories can be treated as Vixen objects, hopefully.
20:16:37 <ais523> it looks like execline's design was intended to keep the interpreter out of memory, in the belief that that would make things more efficient
20:17:15 <korvo> Still thinking about what you said about loops. Execline just doesn't have a stateful while-loop; not even envp is writable by the looped process. I ended up writing the one while-loop as a recursive call, which is actually pretty neat since it's for recursive parent lookup, but it is kind of a difficult limitation.
20:17:38 <ais523> but actually that just means that every execline command has to redo some of the interpreter steps (such as parsing blocks out of argv)
20:18:31 <ais523> oh, I expected execline loops to work as in Underload, along the lines of "check a condition; if the condition is true, insert the content of a block at the start of the original argv (without removing this command or its arguments); if the condition is false, skip the block"
20:19:19 <ais523> it looks like loopwhilex doesn't quite work like that
20:20:26 <ais523> but the intuition is of an infinitely repeated program part, followed by a goto, i.e. while a {b} c can be thought of as meaning "unless a {goto label} b unless a {goto label} b unless a {goto label} b … label c"
20:20:39 <ais523> and then you can use the language's normal mechanisms for maintaining state
20:21:41 <ais523> (I don't think execline has a forward goto either, but it wouldn't be conceptually hard to add one to the programming model – backwards goto is of course incompatible)
20:21:44 -!- lynndotpy609 has quit (Quit: bye bye).
20:22:59 -!- lynndotpy609 has joined.
20:23:03 <korvo> Yeah. TBH I don't think I'm going to need any state in these little scripts. State would be useful for doing something big and orchestrated, but I might as well just write in Python or another non-shell language for that.
20:23:29 <ais523> right, my other real concern about execline was "why not just use a scripting language that isn't shellscript"
20:23:31 <korvo> I do think that it's an obstacle for saying that we can replace all bash with execline. Execline can't replace 2000 lines of well-factored functions.
20:23:38 <ais523> although I think the answer to that would be "because the executables are big and complicated"
20:24:01 <esolangs> [[Mango]] M https://esolangs.org/w/index.php?diff=166654&oldid=166592 * RaiseAfloppaFan3925 * (-1729) removed stupid thing
20:24:20 <ais523> and so the followup would be "why not write a scripting language that's a proper programming language but is small and simple?"
20:24:41 <ais523> there's probably "market" pressure against doing that (i.e. few people think they need it), but it is something that would be useful
20:25:51 <ais523> I have considered writing my own Perl derivative with substantially fewer features (with the tradeoff being that it runs much faster)
20:26:17 <ais523> and a more consistent / less scary-looking syntax
20:27:40 <korvo> That's the beauty of Smalltix. The methods can be anything with a +x permission bit. Symlinks work fine. The overall idea is to *defragment* the Unix system with a uniform interface.
20:27:44 <ais523> I would probably get rid of the sigils because a) they're the sort of thing that scare people off, b) the way Perl uses them is not really a good match for how programming in Perl actually works, and c) A Pear Tree looks really nice
20:28:42 <ais523> korvo: Smalltix is sort of the opposite of what I want, though – I want a single executable which parses the script, possibly does a very fast compilation step, and then runs it itself
20:30:57 <ais523> I guess I'm looking at the Unix philosophy of having lots of small tools that each do one job well, then saying "why do these each have to be separate executables?"
20:31:14 <esolangs> [[User:RaiseAfloppaFan3925]] M https://esolangs.org/w/index.php?diff=166655&oldid=166640 * RaiseAfloppaFan3925 * (+858) travel back in time and retrieve the first sent message
20:36:26 <korvo> ais523: Sure. That's the batch-processing POV. It makes sense for plenty of workloads. Smalltix is more like a spreadsheet or video game; it's interactive and programmed from the inside.
20:36:58 <ais523> korvo: oh, I see, you want to be able to change a running program (like you can in Smalltalk)
20:37:55 <ais523> oddly enough, what I wanted for my Perl derivative was similar but a bit different – I wanted to be able to see a program's variables at any point in its execution, and edit the program without losing the work it had already done
20:38:26 <ais523> but I wasn't thinking of it as live-editing a program, because I wanted to end up with a reproducible script that could be used to do the same job again in the future
20:38:33 <korvo> Yeah. As a sysadmin, I want my machine to be a holistic system that doesn't have any hidden or opaque parts. In Jakubovich's framing, that means no binaries; in Kell's framing, that means no custom memory allocators. But I'm not being dogmatic; instead I'm imagining a human process which refines a system as it runs to make it object-oriented without discarding any working binary.
20:38:38 <ais523> if you live-edit a program you can end up with a result that couldn't be produced by the final version of the program
20:39:30 <ais523> I guess this is the equivalent of incremental compilation, except for running the program, so I'd call it "incremental execution"
20:39:49 <korvo> As a Perl hacker, do you know the story of atmospheric programming? It seems to no longer be online.
20:40:46 <b_jonas> ais523: but lisp has user-definable macros, so it is about inventing whatever special-cased syntax you want
20:40:53 <korvo> A one-person consultancy had an utterly cracked way of programming. Each client got a fork of the main code, each fork had all variables as globals, and each query was "atmospheric": it pulled globals into the DB queries as needed to satisfy the client's requests.
20:41:04 <ais523> b_jonas: yes, but people normally don't use it for that
20:41:07 <korvo> No version control, IIRC. Lots of security issues.
20:41:27 <b_jonas> plus lisp has first-class functions, which makes it more likely that you can express such things even without macros
20:41:34 <b_jonas> it even has inline lambdas
20:41:48 <ais523> korvo: heh, reminds me a lot of INTERCAL (and CLC-INTERCAL in particluar, which doesn't quite work like that but feels like it's evolving in that direction)
20:43:14 <ais523> although I originally misinterpreted it as the DB being shared between all customers
20:43:19 <korvo> Found it: https://perlhacks.com/2012/03/you-must-hate-version-control-systems/ He's still going! https://www.perl.com/article/my-guilty-perl-obsession/
20:43:26 <b_jonas> on the more esoteric side, Enchain or other languages with similar syntax are technically a way to avoid the pileup of parenthesis, though not a practical way because the cure is worse than the original symptoms
20:43:51 <b_jonas> but it's at least something we should examine, even if to find out that it's not worth
20:44:01 <korvo> "The side you don’t know is that pipelines is what I’ve coined “atmospheric programming”, which is going to take some describing. If you imagine the difference between an object-oriented fully scoped world, and a flat file where everything is a global variable, sming the pendulum all the way further. Not only is everything global, but everything’s structured to be accessed from everywhere."
20:45:52 <b_jonas> wait what? are the sigils really what used to scare people off perl? I don't think that's true.
20:46:54 <b_jonas> "and edit the program without losing the work it had already done" => the hard part is how to combine that with lambda closures. I was thinkign about that recently.
20:47:00 <ais523> b_jonas: I don't think they're the main thing, but they are the main thing that's visible in simple programs
20:47:29 <esolangs> [[Mango]] M https://esolangs.org/w/index.php?diff=166656&oldid=166654 * RaiseAfloppaFan3925 * (+90) Added my implementation (still a stub implementation)
20:47:42 <ais523> I've done enough A Pear Tree programming to realise just how different the programs look if you remove the dollar signs
20:48:18 <ais523> (A Pear Tree still requires you to use $ sigils on variables in cases that would otherwise be ambiguous, but you can omit them in simple cases)
20:49:04 <b_jonas> wait, that's a different A Pear Tree than I was thinking of
20:49:04 <korvo> Doesn't Perl 5 require the sigils to specify how the variable is loaded from storage? Or is it just an affectation inherited from awk?
20:49:18 <ais523> and in simple programs, as long as you do flow control entirely using eval rather than more sensible ways, it polyglots pretty well with Python
20:49:22 <b_jonas> are there two languages with a similar name?
20:49:43 <b_jonas> no, it's the same Pear Tree, it just does multiple apparently unrelated changes to perl
20:49:56 <ais523> korvo: so Perl sigils specify what type the variable has, where there are three types: scalars, arrays, and maps (which Perl calls hashes)
20:50:39 <ais523> but, Perl has both arrays and array references, and an array reference is a type of scalar
20:51:43 <ais523> and array references are generally much more useful than arrays, and also you don't need an existing array to create them (you can just allocate them at will), so a common Perl programming style uses only array references and map references, rather than array-typed and map-typed variables
20:52:15 <ais523> this means that despite multiple sigils existing, $ (scalar) is overwhelmingly the most commonly used one, and the others are, whilst not actually deprecated, mostly unused nowadays
20:52:34 <korvo> Right, I recall code doing lots of $(this)->meth(); sorts of shapes.
20:53:51 <korvo> I haven't ported Smalltalk or Self to Vixen. I just don't like the syntax enough. I think Self makes a lot of sense at a REPL but not as an orchestration language on disk.
20:54:10 <ais523> a Perl object is implemented as a pair of a package (basically the equivalent of a class) and a place to store the object's data
20:54:29 <ais523> and the place to store the data has to be a scalar, in practice it's usually a map reference, and usually an array reference if it isn't a map reference
20:54:47 <ais523> which means that Perl objects are exclusively accessed using $, the other sigils wouldn't work for them
20:54:59 <b_jonas> "and also you don't need an existing array to create them" => that's a great way to make the sort of mistake where your program seem to work well but later dies when an array happens to be empty. I've made such errors without perl, but I think if you try to program perl in the style that you suggest they'll be more likely.
20:55:10 <ais523> (that said, for my "simple incremental execution Perl" I don't think I'd support objects)
20:55:51 <ais523> b_jonas: well this style usually creates arrays with […] and hashes/maps with {…}, those don't die when the array is empty
20:56:01 <b_jonas> ais523: and now we might have to qualify that statement because more recent perl is adding some different kind of OO as well
20:56:30 <korvo> ais523: Curious, yet another fat-pointer language.
20:56:39 <b_jonas> ais523: oh, I was thinking you'd just { push @$x, $y; } inside a loop without initializing $x
20:56:50 <ais523> korvo: that's a good way to think about it, but Perl pointers are stupidly fat even without that
20:58:19 <b_jonas> ais523: or, and this is the way I encountered the bug in non-perl, you { push @{$x{$z}}, $y; } inside a loop, then later try to use @{$x{$z}} which fails if you never pushed with that particular $z
20:58:49 <ais523> b_jonas: now I'm wondering how hard it would be to just simply make that case work
20:59:13 <ais523> it might be as simple as "indexing undef returns undef"?
20:59:23 <korvo> ais523: Oh, I don't mean it to be a bad thing. Or maybe it's a dialect thing; in USA lingo, we would say that a pointer is not "stupidly fat" but "dummy thicc". But to me a fat pointer is just a pair (script, closure) or (behavior, locals) or (class, attributes) or (vtable, struct) or...
20:59:56 <ais523> korvo: I wasn't taking you as implying it was a bad thing
21:00:04 <korvo> And it seems like they're key to so many languages. D, Go, and Rust all rely on fat-pointer strings. Cello calls itself "a fat-pointer library".
21:00:09 <ais523> I was just thinking that it was the obvious approach for Perl because pointers stored so much data there already
21:00:15 <b_jonas> ais523: it's kind of a tradeoff. perl is already making undef semi-silently work as a number or string. you can make it work as a ref to an empty array too, but eventually you'll get more bugs where something is accidentally uninitialized and you don't notice because perl doesn't warn you than how much bugs you have now from where you meant somethign to be an array ref but perl didn't allow it
21:00:56 <ais523> arithmetic on undef gives a warning, right? which in simple programs is IME usually a false positive
21:01:11 <b_jonas> usually yes, but there are some exceptions
21:02:01 <b_jonas> in particular you can { $x += $z; } in a loop, then use $x, and if the addition never ran then you get a false warning
21:02:15 <ais523> I guess there's also the extreme approach of unifying all the types (which is the thing I like about old versions of Perl)
21:02:32 <ais523> it's easy enough to see how an array and a map could be the same type (Lua does that)
21:02:50 <ais523> and it's also easy to see how an array and string could be the same type (a string could be an array of character codes)
21:03:19 <ais523> with this approach, undef would be an empty string, which logically seems reasonable
21:03:57 <ais523> automatic coercions would be very weird, though, you'd get things like "abc"[1][1] == 8
21:04:10 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
21:04:22 <b_jonas> some of that wouldn't be compatible with existing perl
21:04:32 <ais523> I know, I'm not trying to be compatible, just inspired
21:05:17 <ais523> I think this unify-everything approach would make sense for a golfing language but not so much for practical use
21:06:06 <ais523> undef as "" might make sense practically, but also might be a big mistake (it reminds me a lot of Go's zero values which I think are probably a mistake)
21:06:25 <korvo> Well, there are two fairly popular systems that have "everything is a char" and "everything is an octet" respectively, but I get what you're saying: it's not maintainable to only deal in bytes.
21:06:53 <ais523> that said, the "exists" operation seems wrong, it's needlessly confusing to have both "undefined" and "nonexistent" as possible map values
21:07:21 <ais523> so I think the language should at least get rid of one of those options, and I'm not sure which one makes more sense to remove
21:07:51 <b_jonas> now that I've been writing programs in a dynamical language in a way where I want them to be maintainable for years, I want types *less* unified rather than more, in order to detect mistakes earlier
21:08:01 <b_jonas> even with dynamic typing I lean that way
21:08:02 <ais523> (when I want to implement a set in current Perl, I normally do it – for efficiency reasons – as a map where a nonexistent value means not included, and an undefined value means included – but this is really confusing in the code)
21:08:36 <ais523> b_jonas: so I really like the approach of strings and integers being treated as the same type and changing based on the operator you use
21:09:03 <ais523> I think this is better than the Python/JS approach of tracking what type is used for the value and having the operators act differently according to it
21:09:32 <ais523> but I also think it's probably correct to error if the operator doesn't match the data being stored
21:09:35 <b_jonas> Lua does that, it doesn't distinguish between a key that's not in a table and a key where the associated value is nil. So do Factorio circuit network by the way, no difference between no value or zero value.
21:09:57 <ais523> e.g. I am happy with "123" + "456" = 579, but not "123a" + "456" = 579
21:10:52 <ais523> ooh, perhaps the correct approach is to treat undef, empty array, and empty map as all equivalent, but make them different once you start storing data in them
21:11:18 <b_jonas> ais523: there could be a middle option where you can format a number to a string implicitly (useful to quickly print numbers for debugging) but you need an explicit conversion to parse a string as a number
21:11:36 <ais523> b_jonas: well Perl is often dealing with numbers read from files or pipes
21:11:59 <ais523> I definitely don't want the program to silently change additions into concatenations because I forgot to change one of those from a string to a number
21:12:14 <ais523> and for scripting uses, I don't really want to explicitly cast either
21:12:50 <ais523> but perhaps the approach would be to add, e.g., a way to regex capture as an integer
21:13:10 <b_jonas> yeah, that would make sense
21:13:15 <ais523> thus forcing the parsing step to exist (and even making it statically checkable), but reducing the syntactic overhead
21:14:29 <b_jonas> there's probably a place for everything, I'm just leaning to more explicitness because of what programs I've had to maintain recently.
21:14:41 <b_jonas> they involve a lot of reading and writing text files.
21:14:46 <ais523> the ideal is lightweight explicitness which happens even without you doing anything
21:14:53 <ais523> type inference is a good example of that
21:15:36 <ais523> now I'm wondering whether Perl with type inference is even possible, or whether it encounters heterogenous data too often
21:18:32 <ais523> you would probably need two types of map, a tuplish one where the set of keys were fixed and each key could have a different value type, and one where all the values had the same type but the keys could be arbitrary
21:18:35 <ais523> (and likewise for arrays)
21:31:48 <zzo38> I think that sigils are helpful in some programming languages, for several purposes such as avoiding conflicting with keywords
21:33:32 <korvo> I liked Neighbors' convention for META II: the keywords all start with a sigil! In their case, it was '.' which led to me thinking of the keywords as methods/attributes of some builtin object with an empty name "".
21:34:04 <b_jonas> zzo38: Enchain will use what I think counts as sigils, % and & , to denote that you're defining a function instead of calling it
21:34:19 <b_jonas> they're still sigils if they go *after* the name, right?
21:36:06 <zzo38> I would say it is still sigils whether it is before or after
21:36:49 <b_jonas> ok, then these are sigils because you have to write them immediately after the function name, you can't put whitespace between them because that changes the meaning
21:36:59 <ais523> korvo: in Algol-68, ". before keywords" is the portable convention for how you write keywords
21:37:31 <ais523> which is used to solve the bootstrapping problem of "how can I tell the compiler how I want to write keywords, without knowing what the keyword syntax is"
21:38:06 <ais523> that said I don't think modern Algol-68 implementations actually follow that rule, but maybe they do
21:38:13 <b_jonas> doesn't fortran use dots to write numeric compare operators?
21:38:31 <b_jonas> I may be confusing fortran with something else
21:38:39 <ais523> (the other two rules you can use are "keywords in uppercase" and "any sequence of letters that could be a keyword is" – the latter was combined with an underscore sigil to unkeywordise things)
21:39:10 <ais523> I'm also wondering whether the latter invented the use of underscore to replace spaces in variable names
21:39:13 <ais523> or whether that's older
21:39:21 <ais523> b_jonas: .GT. and the like, I think
21:39:25 <b_jonas> "any sequence of letters that could be a keyword is" => how many two-letter keywords are there?
21:39:28 <ais523> but that has dots at the start and end, rather than just the start
21:39:30 <korvo> ais523: TIL! That makes a lot of sense as far as history.
21:39:49 <zzo38> There is "if" and "do" in C are keywords with two letters, as well as many longer keywords
21:39:55 <ais523> b_jonas: I think "if" is a keyword, I'm not sure about "of", I can't immediately think of any others offhand but there probably are some
21:40:16 <ais523> I haven't looked at Algol-68 for a while
21:41:04 <zzo38> In some programming language, does have "of", "in", "to", and "on" also as keywords
21:41:08 <ais523> korvo: https://en.wikipedia.org/wiki/Stropping_(syntax)
21:41:12 <zzo38> (I don't know about ALgol specifically)
21:41:24 -!- strerror_r has joined.
21:41:56 <ais523> huh, this article suggests that the reason that prefix . was used was so that it would work in 6-bit character sets
21:42:12 <ais523> which I didn't know but makes sense
21:42:15 <b_jonas> once you have a large portion of `do if or is no in to of by as on at` as keywords, it starts to get hard to invent good variable names
21:42:29 -!- strerror has quit (Ping timeout: 260 seconds).
21:43:26 <b_jonas> the one I usually ran into is trying to use `if` for an input file handle and `of` (or `log`) for an output file handle
21:45:08 <ais523> b_jonas: I've accidentally used `i8` as a variable name in Rust in the past
21:45:22 <ais523> this is the only time where variable names and type names being in different namespaces has actually been useful
21:45:38 <b_jonas> ais523: oh, the one that really bit me is `j0` as a function name in C.
21:45:52 <ais523> (that said, IMO Rust should have used titlecase names for its primitive types so that variable name / type name clashes couldn't happen in program that used normal capitalisation style)
21:46:09 <b_jonas> ais523: they should have called that 8i though, or else should have made it a normal identifier rather than a keyword
21:46:17 <ais523> NetHack has a clash with the standard library on "yn" I think
21:46:29 <ais523> (and with C++ keywords on "class")
21:47:15 <zzo38> Some of my C programs also use "class" as the name of a variable or a field of a structure, but it is not C++ so it is OK
21:48:35 <ais523> C keywords actually mostly hit the sweet spot of being clear whilst being unlikely to be a variable name
21:48:51 <ais523> especially "struct" and "enum", those are really good keywords
21:49:17 <ais523> some are not so good, like "long"
21:49:38 <ais523> this implies that maybe truncated words are a good choice for keywords
21:53:47 -!- tromp has joined.
21:57:30 <b_jonas> it's not just the casing that's wrong. whether it's called i8 or I8, it should be an ordinary namespaced name in the prelude that you can shadow, not a keyword. theres' no reason why it should be a keyword. they learned the wrong lesson from C or C++ there. same for true and false, those should be ordinary enum constructors.
21:57:41 <ais523> b_jonas: it isn't a keyword
21:57:57 <b_jonas> why isn't it namespaced then?
21:58:06 <b_jonas> is it like a weak keyword?
21:59:05 <ais523> Rust normally uses prelude imports for that sort of thing (i.e. your program has an implicit «use core::option::Option as Option;» as the start) but I'm not sure whether it does that for primitives
22:00:17 <b_jonas> https://doc.rust-lang.org/nightly/std/prelude/index.html should list all the names of the prelude. Option is there; i8 isn't
22:00:43 <b_jonas> so if i8 isn't a (possibly weak) keyword then I don't know what it is
22:00:58 <ais523> it could just be an identifier in the global scope, I guess
22:02:58 <ais523> b_jonas: it definitely isn't a keyword: https://play.rust-lang.org/?version=stable&mode=debug&edition=2024&gist=1a97b4fab7c45582af9a27e3d2d44ff0
22:03:21 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
22:03:24 <ais523> (the «r#» prefix is how you create an identifier with the same name as a keyword, that isn'ta keyword)
22:07:34 <b_jonas> ais523: I don't think it's in the global scope, firstly because there are only crates there, secondly because you can't call it ::u8
22:08:11 <ais523> maybe it's just a special case that's inconsistent with the rest of the language, then
22:08:12 <b_jonas> it seems as if it's imported into every namespace as if it were in the prelude
22:08:33 <b_jonas> but can be shadowed like anything in the prelude
22:08:35 <zzo38> I think would be better to have sigils indicating stuff that is not keywords, or use other signs or formatting indicating if it is or not keywords, or to not have reserved words even if they are keywords, depending on the use
22:08:44 <b_jonas> because it's imported as if it were a wildcard import
22:10:40 <zzo38> (I think LLVM uses sigils to indicate stuff other than keywords)
22:11:30 <ais523> I like register sigils in asm because they avoid the problem of a variable and register having the same name
22:12:02 <ais523> especially because new registers get introduced over time, e.g. if I had a variable named zmm0, that would have been fine on old assemblers but might break on newer ones
22:12:06 -!- Sgeo_ has joined.
22:14:55 -!- Sgeo has quit (Ping timeout: 240 seconds).
22:18:21 <sorear> the explanation that was current when I was active was "you know what would make a programming language easier to learn? case and gender"
22:20:03 <ais523> sorear: was that intended sincerely or sarcastically? I know that many people find learning word gender to be one of the hardest parts of learning languages that have it, because it's basically just an extra boolean you have to memorise along with every word
22:20:25 <ais523> at least case has simplifying aspects in addition to complicating aspects
22:21:24 <ais523> fwiw I'm not convinced that sigils generally are bad, but I don't think they benefit modern Perl in particular because almost everything is a scalar
22:21:42 <sorear> perl 5 does not have fat pointers. it has fat *variables*. bless attaches metadata to the memory location (SV) like a tie would
22:22:17 <sorear> 100% sincere with maybe a touch of self-deprecation
22:22:21 <ais523> ah, you are right (although programs are in practice nearly always written in such a way that the distinction is not observable)
22:23:05 <ais523> Perl has so much metadata on everything that it is hard to remember where in particular any given datum is stored
22:29:45 <esolangs> [[Fat pointer]] N https://esolangs.org/w/index.php?oldid=166657 * Corbin * (+1948) Stub for a recurring concept that isn't properly addressed on WP.
22:32:27 <ais523> korvo: I'd caveat that the extra data in a fat pointer isn't always a pointer, it just needs to contain "type" information generally, but sometimes that's generics rather than a type name expressed as a vtable
22:33:12 <ais523> Rust slices are only accessible via fat pointers that specifies the length they would have if interpreted as an array, for example (which is a numerical generic rather than a vtable)
22:34:14 <korvo> ais523: Sure. I think of those as degenerate cases of the general concept, though; they're just more specialized.
22:34:55 <ais523> hmm, I guess you can view the slice length as a sort of compressed pointer that stores the entire data of its target inside the space that would otherwise be used for the pointer itself
22:35:09 <korvo> The first component is what we call "green" in JIT theory; it's the component that we want to hold constant and "differentiate with respect to", so to speak.
22:35:09 <sorear> how about fortran multidimensional slice descriptors
22:35:11 <ais523> like, we use the number 5 as a compressed version of "a pointer to a vtable for a length-5 array"
22:40:18 <ais523> hmm, is there a standard name for this sort of pointer/reference-like thing where the thing that is being referenced might actually exist in memory, or might just be generated on the spot?
22:44:05 <ais523> I don't think it's quite the same
22:44:32 <ais523> for a lazy pointer/reference, I would expect the target to be generated on first use and then remain in memory, rather than being generated on every use
22:46:20 <sorear> c++, python, and self are all canonically thin-pointer systems where you either have types at compile time, or the referent of a pointer knows its runtime type because it has a vtable/metadata...
22:46:25 <korvo> "proxy", "facade", "becomer" (https://gbracha.blogspot.com/2009/07/miracle-of-become.html)
22:48:13 <sorear> there's a bit of nastiness around c++ multiple inheritance where sometimes an object has to have multiple vtable pointers and seemingly no-op coercions need to offset the object pointer to point at a different vtable pointer, but everything is still thin
22:48:26 <korvo> Isn't Python canonically fat? The `type` allocator produces objects with a `__class__` and `__dict__`; those are the first and second component of the standard fat pointer.
22:48:49 <ais523> korvo: oh right, "proxy" definitely fits (I'm a bit less familar with the other two)
22:49:08 <korvo> I'll concede that perhaps I misread the Self paper. I haven't actually played with a Self implementation.
22:49:23 <sorear> a fat pointer is local and immutable, you can change the type information on one pointer to an object without changing it for others
22:50:12 <sorear> I suppose you could think of a Python object as a fat pointer to a dictionary, but the existence of slots muddles that interpretation
22:50:34 <sorear> i'd rather think of the object as an object itself that simply delegates some behavior to a dictionary
22:50:44 <sorear> the only Self implementation I've used is V8
22:52:56 <ais523> interestingly Rust has an equivalent to Smalltalk become: (called core::mem::replace), although it's much more restrictive because you need a mutable reference to the thing you are replacing
22:53:43 <ais523> it has become increasingly controversial over time because it breaks invariants that would otherwise exist, some of which would be useful for implementing various language features
22:55:25 <ais523> from my point of view, its biggest issue is that it means that the concept of object identity effectively doesn't exist in Rust, because there's no type-system-level way to observe that an object got swapped out and so you can't tell whether you're still using the same object you were previously using if any code you don't control has had a mutable reference to it
22:55:46 <Sgeo_> ...and I wrote a variation (take_mut) to allow what felt like a missing function in the language >.>
22:56:18 <ais523> Sgeo_: is that core::mem::take, or something else?
22:57:47 <Sgeo_> It's more of a core::mem::replace that can wait for the hole to be filled, passing in a closure. It aborts if the closure panics
22:58:26 <Sgeo_> I sort of wanted there to exist a function that turns (T -> T) into one that takes (&mut T)
22:58:57 <ais523> oh, I see, it leaves an uninitialized hole behind?
22:59:08 <ais523> or, well, a copy of the bits but that you aren't allowed to use
22:59:29 <sorear> replace is interesting because it's the only way to move a non-Clone type out of a mutable reference, if you're working with owned values the lack of identity goes much deeper because there's no way to override operator=
23:00:07 <ais523> this is one of the things that makes me think that Rust &mut is incorrectly defined (I am not opposed to the existence of mutable references but I think the specific choices &mut makes for what you can and can't do are wrong)
23:00:15 <Sgeo_> There's an RFC that failed, calling the function replace_with
23:00:36 <ais523> because it has an invariant that it always points to a valid value of the type, even while reborrowed
23:01:08 <Sgeo_> https://github.com/rust-lang/rfcs/pull/1736#issuecomment-1311564676
23:01:29 <Sgeo_> Composition of safe crates that add functions is unsafe
23:01:45 <ais523> I agree that it would make more sense for a reborrowed &mut to not constrain the type of the thing that it's reborrowing (although, as you say, you would need some separate way to maintain panic-safety in that case)
23:02:11 <sorear> well if you reborrow you have a _new_ reference, mutable or not, which upholds the "has a valid value of the type"
23:02:41 <ais523> sorear: but what if you transmute the new reference
23:02:58 <ais523> this is unsafe, but isn't necessarily unsound
23:04:51 <Sgeo_> I wanted to make some sort of unmovable structure based on the compiler preventing self-referencing structures from being moved. I didn't do so and the community invented Pin.
23:05:01 <Sgeo_> I don't... know if my idea would have worked or not
23:05:14 <Sgeo_> I don't fully understand Pin and the async features
23:05:36 <ais523> Sgeo_: you can actually do that in current safe Rust (unmovable self-referencing structures) but there are a lot of restrictions
23:06:01 <ais523> the basic idea is to have a type with a lifetime parameter that controls the lifetimes of the references inside, and the same lifetime is also used for self on the method calls
23:06:53 <ais523> the main problems are that it only works well with shared references (because if you do it with a mutable reference it doesn't reborrow properly) and nothing self-referencing can have a destructor (otherwise it fails drop check)
23:07:57 <ais523> the latter problem seems to be inherent to the idea of self-referencing structures rather than a limitation of the implementation: a structure has to be dropped after everything it references, so if you have a circular reference you can't drop at all
23:08:13 <ais523> (but if there are no destructors Rust works around the problem by simultaneously forgetting the whole structure)
23:08:18 <b_jonas> when you say that replace is the only way to move out from a mutable reference, do you consider mem::swap equivalent to that? because I'm thinking of mem::swap as the more natural way and mem::replace a wrapper around that
23:08:29 <ais523> b_jonas: yes, swap and replace are basically equivalent
23:09:10 <ais523> swap is slightly more fundamental in that trying to implement swap in terms of replace needs a temporary, which you might not be able to initialize correctly
23:09:14 <sorear> korvo: skimming everything posted here is unsustainable and I'll have to go back to mostly ignoring, do you want to move the nql stuff somewhere else or just ping?
23:10:14 <b_jonas> as for moving out and leaving a hole that you will fill before you return, thus breaking panic safety, I wonder if you can do that with a Cell
23:11:23 <ais523> b_jonas: you can't move out of a cell unless you swap something in
23:11:37 <ais523> in fact, mem::swap is not the fundamental operation, Cell::swap is
23:12:05 <ais523> you can write mem::swap in terms of Cell::swap (and occasionally have to, e.g. when swapping a mutable reference with a cell; that came up for me recently)
23:12:32 <b_jonas> that makes sense, because you might try to access a cell through another reference
23:14:00 <ais523> that said, it is possible that Cell::swap needs a special case for trying to swap a cell with itself, and mem::swap doesn't
23:14:49 <int-e> b_jonas: hmm do you think this reduction in critical path length is meaningful ;-) https://int-e.eu/~bf3/tmp/shapez-mam-critical.png (right: corresponding snippet from https://int-e.eu/~bf3/tree-mam/ )
23:39:17 <int-e> Hmm I think it's a bit over half a second at 10x belt speed. So not huge when the total latency is like 16s.
00:27:07 -!- ais523 has quit (Quit: sorry about my connection).
00:34:56 -!- amby has 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).
00:45:58 -!- ais523 has joined.
00:59:37 -!- strerror_r has changed nick to strerror.
01:40:09 <korvo> sorear: We can stick to GitHub. Also it looks like the channel #nql is empty if you'd like to use that.
02:01:08 -!- Sgeo_ has quit (Read error: Connection reset by peer).
02:01:28 -!- Sgeo has joined.
02:57:38 <b_jonas> int-e: white is the most common color, and apart from white a freeplay shape takes colors from among three adjacent colors of a rainbow, so I feel like you should make the path of white the shortest, and put the rest in rainbow order, so that for at least some shapes the critical path is shorter than the longest necessary.
03:00:16 <int-e> b_jonas: It doesn't matter in my design because I have to wait out the worst case switch-over time anyway, or synchronization may be lost. Well, unless I somehow compute the actual time I suppose, which I won't.
03:00:22 <b_jonas> int-e: but I also don't understand what what you show is on the critical path, don't the rectangles going from right to left take a longer path here, and aren't the rectangles a variable shape?
03:02:47 <int-e> b_jonas: nah, that's not a variable shape, I'm just not supplying the other three because I was lazy
03:03:02 <int-e> I assume "ah I see" means you saw that
03:03:33 <int-e> the main novelty here (for me) is feeding a belt with filters from both sides.
03:04:21 <b_jonas> no, the I see is for the synchronious timing that you have
03:04:42 <b_jonas> oh, you're belt weaving the four shapes
03:05:20 <b_jonas> yeah, then the path of the shapes is longer
03:06:26 <int-e> I'm somewhat seriously contemplating to actually build a mixed belt design for this (not my idea)
03:07:05 <b_jonas> sure, if you are setting up synchronious setups for everything then you can probably handle at least two colors mixed on each belt
03:07:23 <int-e> where for each quarter, you have one belt that provides all 4 shapes, and another that provides all 7 colors (plus a dummy shape). Which after filtering is *just* enough to feed a double painter.
03:07:27 <b_jonas> but whether that lets you compress this to shorter I'm not sure
03:08:03 <b_jonas> all seven colors on the same belt? I see
03:08:34 <int-e> source is this: https://old.reddit.com/r/shapezio/comments/11e54on/20_sec_bmam_flushless/
03:10:17 <int-e> (Which does another crazy thing, where it stacks before cutting, with possibly two stacks in one quadrant. That trick only works for full-height shapes though.)
03:11:23 <int-e> (I don't like the restriction, but the design *is* clever.)
03:13:38 <int-e> Providing resources for that beast would be very cumbersome though. It has, 12 copies of the MAM, and each MAM will require 4x4 shape belts and 3x8 primary color belts (discarding all those unused colors is a huge waste).
03:14:46 <int-e> (but discarding unused shapes isn't, interestingly enough)
03:15:27 <int-e> thanks for humoring me, and good night
03:44:18 <esolangs> [[Tskastic/Command Table]] https://esolangs.org/w/index.php?diff=166658&oldid=158970 * PrySigneToFry * (+98)
03:47:57 -!- ais523 has quit (Quit: quit).
03:48:57 <esolangs> [[User:PrySigneToFry/Sandbox]] https://esolangs.org/w/index.php?diff=166659&oldid=154502 * PrySigneToFry * (+197)
03:49:45 <esolangs> [[User:PrySigneToFry/Sandbox/Users that is also on other place]] https://esolangs.org/w/index.php?diff=166660&oldid=160908 * PrySigneToFry * (+31)
04:28:11 -!- slavfox has quit (Quit: ZNC 1.8.2 - https://znc.in).
04:32:51 -!- slavfox has joined.
04:47:29 <esolangs> [[User talk:PrySigneToFry/Sandbox/Users that is also on other place]] https://esolangs.org/w/index.php?diff=166661&oldid=151882 * I am islptng * (+145)
05:08:14 <esolangs> [[Talk:UnCompetition]] https://esolangs.org/w/index.php?diff=166662&oldid=166641 * Yayimhere2(school) * (+153)
05:08:23 <esolangs> [[Talk:UnCompetition]] https://esolangs.org/w/index.php?diff=166663&oldid=166662 * Yayimhere2(school) * (+118)
05:08:47 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166664&oldid=166630 * Yayimhere2(school) * (+0) /* Description */
05:13:10 <esolangs> [[Unhappy]] https://esolangs.org/w/index.php?diff=166665&oldid=145691 * Yayimhere2(school) * (-28) deleted Turing tarpit category, as there is no proof of such
05:16:03 -!- Yayimhere has joined.
05:17:26 <esolangs> [[Talk:Crypten]] https://esolangs.org/w/index.php?diff=166666&oldid=166639 * Yayimhere2(school) * (+16)
05:17:37 <esolangs> [[Talk:Crypten]] https://esolangs.org/w/index.php?diff=166667&oldid=166666 * Yayimhere2(school) * (+118)
06:10:38 <esolangs> [[User talk:Unname4798]] https://esolangs.org/w/index.php?diff=166668&oldid=150990 * Yayimhere2(school) * (+450)
06:21:48 <Yayimhere> hey people, I have a quick question, what is regex? because Ϫ said I should merge regex and my own language, but I couldn't find out what regex actually was
06:41:49 <korvo> Regular expressions.
06:46:37 <esolangs> [[Talk:Crypten]] https://esolangs.org/w/index.php?diff=166669&oldid=166667 * Yayimhere2(school) * (+117)
07:02:09 <esolangs> [[FUnctional staCK]] N https://esolangs.org/w/index.php?oldid=166670 * CatCatDeluxe * (+13887) Created page with "'''FUnctional staCK''' is a minimal staCK based programming language created by [[User:CatCatDeluxe]] that shares some traits with FUnctional languages. For short, it can be called FUCK, a perfectly innocuous name. Despite the perfectly innocuous name, t
07:19:27 <esolangs> [[User:CatCatDeluxe]] https://esolangs.org/w/index.php?diff=166671&oldid=89272 * CatCatDeluxe * (+1390)
07:20:06 <Yayimhere> and are you doing anything esolang
07:20:38 <esolangs> [[User:CatCatDeluxe]] M https://esolangs.org/w/index.php?diff=166672&oldid=166671 * CatCatDeluxe * (+9) fix the link
08:33:21 -!- tromp has joined.
09:01:10 -!- Sgeo has quit (Read error: Connection reset by peer).
09:06:35 -!- Yayimhere has quit (Ping timeout: 250 seconds).
09:17:11 -!- Yayimhere has joined.
09:27:55 -!- sftp has joined.
09:27:55 -!- sftp has changed hostmask to ~sftp@user/sftp.
09:40:49 -!- Yayimhere has quit (Ping timeout: 250 seconds).
09:50:54 <esolangs> [[]] M https://esolangs.org/w/index.php?diff=166673&oldid=166636 * C++DSUCKER * (-3)
09:52:04 <esolangs> [[User talk:PrySigneToFry/Sandbox/Users that is also on other place]] https://esolangs.org/w/index.php?diff=166674&oldid=166661 * PrySigneToFry * (+115)
10:06:10 -!- Yayimhere has joined.
10:21:26 <esolangs> [[Talk:F calculus]] https://esolangs.org/w/index.php?diff=166675&oldid=166319 * C++DSUCKER * (+131)
10:27:16 <esolangs> [[Unrepetition]] N https://esolangs.org/w/index.php?oldid=166676 * Yayimhere2(school) * (+1344) Created page with "'''Unrepetition''' is a combination of [https://en.wikipedia.org/wiki/Regular_expression Regex], and [[UnCompetition]]. the [[Talk:crypten|original idea]] was created by [[User:]]. == How it functions == fundementally, UnCompetition and Unrepetition func
10:29:53 <esolangs> [[Talk:Crypten]] https://esolangs.org/w/index.php?diff=166677&oldid=166669 * Yayimhere2(school) * (+162)
10:33:33 <esolangs> [[F calculus]] M https://esolangs.org/w/index.php?diff=166678&oldid=166456 * C++DSUCKER * (+18)
10:46:21 <esolangs> [[F calculus]] https://esolangs.org/w/index.php?diff=166679&oldid=166678 * C++DSUCKER * (-1) I made the mistake of changing the section and description but not the code. fixed.
11:14:53 <esolangs> [[CGOLOE]] https://esolangs.org/w/index.php?diff=166680&oldid=135605 * Yayimhere2(school) * (+22)
11:38:43 -!- Lord_of_Life has quit (Ping timeout: 244 seconds).
11:39:08 -!- Lord_of_Life has joined.
11:44:04 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166681&oldid=166664 * Yayimhere2(school) * (+48) /* (Surprisingly enough) a short list of examples(WIP) */
11:49:25 <esolangs> [[Unrepetition]] https://esolangs.org/w/index.php?diff=166682&oldid=166676 * Yayimhere2(school) * (+39)
12:02:10 <esolangs> [[Unrepetition]] https://esolangs.org/w/index.php?diff=166683&oldid=166682 * Yayimhere2(school) * (+53)
12:25:10 -!- amby has joined.
12:55:04 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
13:17:29 -!- Yayimhere has quit (Ping timeout: 250 seconds).
13:26:30 -!- tromp has joined.
13:38:22 <esolangs> [[User talk:None1]] https://esolangs.org/w/index.php?diff=166684&oldid=166514 * None1 * (+288) /* SLet */
14:30:38 -!- Yayimhere has joined.
15:48:27 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
16:05:05 <esolangs> [[GRG]] N https://esolangs.org/w/index.php?oldid=166685 * Yayimhere2(school) * (+1295) Created page with "{{WIP}} '''GRG''' or '''Growth Rate Growth''' is a semi-theoretical esolang created by [[User:Yayimhere]](as In not all formal specifics have been defined), in his search for the computational class of [[UnCompetition]]. it is a combination of a single growth rat
16:14:05 <esolangs> [[Special:Log/newusers]] create * SzymoQwerty * New user account
16:14:22 -!- tromp has joined.
16:20:22 -!- sprock has quit (Ping timeout: 260 seconds).
16:27:00 -!- sprock has joined.
16:27:29 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=166686&oldid=166590 * SzymoQwerty * (+143) /* Introductions */
16:29:48 <esolangs> [[GRG]] https://esolangs.org/w/index.php?diff=166687&oldid=166685 * Yayimhere2(school) * (+1370)
16:32:11 <korvo> Yayimhere: On UnCompetition's complexity class: what does the language actually compute? Can you show how it would implement some functions on natural numbers? The description of the commands that you've given is too vague for me, so I would need to see some example programs before understanding what the language actually does.
16:33:55 <esolangs> [[GRG]] https://esolangs.org/w/index.php?diff=166688&oldid=166687 * Yayimhere2(school) * (+216)
16:34:52 <Yayimhere> Korvo: I cant give any examples, because even though I know how the language works, I have no idea on how to practically use it(though every program is in some way a form of exponential(see GRG)), tough what is too vague(I would like to try and explain it and revise it on the page)?
16:35:09 <esolangs> [[GRG]] https://esolangs.org/w/index.php?diff=166689&oldid=166688 * Yayimhere2(school) * (+0) /* How it functions */
16:35:27 <Yayimhere> because examples are hard to compute manually
16:35:42 <Yayimhere> and i do not have the experience to write an interpreter as of currently
16:35:53 <Yayimhere> (i also need to leave, however, I will return to respond)
16:40:08 <esolangs> [[Special:Log/newusers]] create * Wlad * New user account
16:51:59 -!- Yayimhere has quit (Ping timeout: 250 seconds).
17:19:40 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
17:25:44 <esolangs> [[OverDeathKill]] N https://esolangs.org/w/index.php?oldid=166690 * SzymoQwerty * (+1570) Created page with "{{infobox programming language | name = OverDeathKill | paradigm = esoteric | creator = [[User:SzymoQwerty]] | year = 2025 | influenced-by = [[Brainfuck|Brainfuck]] and being sadistic }} '''OverDeathKill''' is an esoteric programming language created by [[Use
17:27:23 <esolangs> [[User:SzymoQwerty]] N https://esolangs.org/w/index.php?oldid=166691 * SzymoQwerty * (+124) Created page with "Im SzymoQwerty and i LOVE making esolangs in python I came here to contribute to esolangs.org (and share my monstrosities)!"
17:28:37 <esolangs> [[OverDeathKill]] https://esolangs.org/w/index.php?diff=166692&oldid=166690 * SzymoQwerty * (-127)
17:39:56 -!- tromp has joined.
18:49:08 -!- Sgeo has joined.
18:49:47 -!- jgardner has changed nick to june-o-lantern.
19:15:38 <esolangs> [[Brainfuck code generation]] M https://esolangs.org/w/index.php?diff=166693&oldid=166025 * Waffelz * (-20) added BFASM and changed the list to be sorted alphabetically and removed redundant links to [[brainfuck]] and others
19:49:40 <esolangs> [[User:RaiseAfloppaFan3925]] M https://esolangs.org/w/index.php?diff=166694&oldid=166655 * RaiseAfloppaFan3925 * (+607) I am semi-active.
19:53:56 <esolangs> [[User:Jay]] N https://esolangs.org/w/index.php?oldid=166695 * Jay * (+64) Created page with "'''USER: Jay''' <br/> <br/> '''Languages:''' <br/> * Pizzascript"
19:58:31 <esolangs> [[User talk:Jay]] N https://esolangs.org/w/index.php?oldid=166696 * Jay * (+197) /* PizzaScript */ new section
20:02:35 <esolangs> [[User talk:Jay]] https://esolangs.org/w/index.php?diff=166697&oldid=166696 * Jay * (-197) /* PizzaScript */
20:08:38 <esolangs> [[Language list]] https://esolangs.org/w/index.php?diff=166698&oldid=166527 * Jay * (+18) /* P */
20:44:23 <esolangs> [[Special:Log/newusers]] create * Kalavian * New user account
20:55:02 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=166699&oldid=166686 * Kalavian * (+192)
20:55:06 <esolangs> [[GenderScript]] N https://esolangs.org/w/index.php?oldid=166700 * Kalavian * (+1196) Created page with "[[Category:2025]] [[Category:Joke languages]] [[Category:Cell-based]] [[Category:Implemented]] GenderScript is a tiny transgender esoteric programming language created by Kalavian in 2025. The source code is available [https://github.com/Kalavian112/GenderScript o
20:56:05 <esolangs> [[GenderScript]] https://esolangs.org/w/index.php?diff=166701&oldid=166700 * Kalavian * (+101)
20:57:03 <esolangs> [[GenderScript]] https://esolangs.org/w/index.php?diff=166702&oldid=166701 * Kalavian * (+37)
20:57:17 <esolangs> [[GenderScript]] https://esolangs.org/w/index.php?diff=166703&oldid=166702 * Kalavian * (+8)
20:57:58 <esolangs> [[GenderScript]] https://esolangs.org/w/index.php?diff=166704&oldid=166703 * Kalavian * (+55)
21:21:01 <esolangs> [[ZeroByte]] N https://esolangs.org/w/index.php?oldid=166705 * Kalavian * (+488) Created page with "[[Category:2025]] [[Category:Zero-dimensional]] [[Category:Unusable for programming]] ZeroByte is a programming language designed for writing other tiny programming languages. A microlang can be implemented in ZeroByte in as little as one byte. ==Syntax== Each function
21:44:18 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
21:49:17 -!- tromp has joined.
21:51:01 <esolangs> [[2147483647Funge]] N https://esolangs.org/w/index.php?oldid=166706 * Kalavian * (+1919) Created page with "2147483647Funge is a '''2<sup>32</sup>1'''-dimensional programming language. Each cell is written as its location followed by a command. The language also uses a dimension pointer, a 32-bit integer that represents the axis to be moved. Positive values move acro
21:51:27 <esolangs> [[2147483647Funge]] https://esolangs.org/w/index.php?diff=166707&oldid=166706 * Kalavian * (+25)
22:10:11 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
22:16:35 <esolangs> [[User:TheCanon2]] M https://esolangs.org/w/index.php?diff=166708&oldid=151681 * TheCanon2 * (+21) Added CARP
23:11:38 -!- ais523 has joined.
23:29:47 <esolangs> [[CARP]] N https://esolangs.org/w/index.php?oldid=166709 * TheCanon2 * (+1667) Added CARP
23:30:54 <esolangs> [[CARP]] M https://esolangs.org/w/index.php?diff=166710&oldid=166709 * TheCanon2 * (+0)
23:43:40 <esolangs> [[FUnctional staCK]] M https://esolangs.org/w/index.php?diff=166711&oldid=166670 * CatCatDeluxe * (+0) how did I get that math wrong
23:55:30 <esolangs> [[Collern]] https://esolangs.org/w/index.php?diff=166712&oldid=166597 * Dmiz * (+9)
00:37:29 <esolangs> [[Gur yvsr]] https://esolangs.org/w/index.php?diff=166713&oldid=163731 * Placeholding * (+12804)
01:44:17 -!- amby has 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).
03:05:02 -!- op_4 has quit (Remote host closed the connection).
03:05:37 -!- op_4 has joined.
03:31:31 <zzo38> Is deliberately attacking your own pokemon in the Pokemon game (in a double battle) more common or less common than underpromotion in chess?
03:45:27 <ais523> much more common, I think
03:45:54 <ais523> there have been tournaments where it was part of the most common strategy (e.g. using Beat Up on a Pokémon who has Justified)
03:47:06 <ais523> usually the teams are designed to do it, using attacks that have very powerful side effects and do hardly any damage
03:51:15 <zzo38> OK, it makes sense (I have not seen many tournaments). However, there are also cases where it was not the intention when making up the team (or if it is a random battle).
03:51:19 <ais523> one game I played (against an opponent who I think was probably a streamer based on the number of spectators who joined) went like this: on turn 1, my Smeargle used Ally Switch, my opponent's Bisharp used Sucker Punch (failing because I hadn't selected attacking moves), my opponent's Kangaskhan attacked the slot Smeargle swapped into with a normal-type move (failing because I had swapped a Ghost-type there), then my Jellicent used Trick Room; on turn 2, my
03:51:20 <ais523> Smeargle used Volt Switch on Jellicent activating its Weakness Policy and switching in Pelipper who started rain, then Jellicent used Water Spout and OHKOed both opposing Pokémon, on turn 3 Jellicent used Water Spout again and OHKOed both of the opponent's replacement Pokémon
03:51:43 <ais523> smeargle was level 1 and had low special attack, so the Volt Switch on the Jellicent only did marginal damage
03:52:36 <ais523> although, this was mostly a case of almost all my opponent using the same team and picking the same moves in the same contexts, so I had built specifically to counter it
03:54:13 <ais523> attacking a team-mate in a case where you hadn't planned the interaction when designing the team is rare, I don't know how that corresponds to underpromotion in frequency
03:55:03 <ais523> (actually necessary underpromotions in chess are rare, but it's not so rare to underpromote to a rook if that gives a trivially winning endgame, because it reduces the chance of accidentally stalemating the opponent compared to promoting to a queen)
03:58:30 <zzo38> I think I once heard of a situation where someone underpromoted to rook because they did not have a extra queen available near the board and did not want to stop the game to request it.
04:10:15 <ais523> the normal solution to that problem is to use an upside-down rook
04:12:34 <zzo38> I read that it is allowed in USCF but not allowed in FIDE.
04:17:31 <ais523> I imagine it isn't normally a problem at grandmaster level because there are very few positions likely to arise in a grandmaster game where one player has two queens, but neither player thinks they're losing badly enough to resign
04:17:49 <ais523> (it has happened, I think – usually involving multiple queens for both players – but is very rare)
04:18:03 <esolangs> [[User:H33T33]] M https://esolangs.org/w/index.php?diff=166714&oldid=165933 * H33T33 * (+4)
04:19:20 <esolangs> [[WTF]] M https://esolangs.org/w/index.php?diff=166715&oldid=159223 * H33T33 * (-88)
04:28:40 <zzo38> In shogi there is no underpromotion but you can (usually) choose to not promote. Some pieces are strictly a superset of the moves that would be possible when not promoted; is it ever deliberately not promoting in such a case?
04:29:04 <zzo38> (The reason that I can think for doing this would be to avoid the rule prohibiting checkmate by dropping a pawn; maybe there is tsume shogi which involves it, possibly with discovered check by capturing opponent's pawn)
04:46:57 -!- Yayimhere has joined.
04:52:00 <zzo38> Do you have the full copy of the Pokemon team that you had for that game?
04:54:10 <ais523> zzo38: oh, I searched through my old backups and think I was mentally conflating two different games
04:54:18 <ais523> the Ally Switch trick was from a different game
04:54:51 <ais523> in the actual game, Smeargle used Spiky Shield instead
04:56:19 <ais523> here's a version of the team from around that time (I don't know whether it's specific the team I actually used): http://nethack4.org/pastebin/27.txt
04:56:53 <ais523> a later version of the same team had Ally Switch, but wasn't using Volt Switch by then
04:57:16 <Yayimhere> why are you talking about Pokemon? (not to shoo you away just wondering lol)
04:57:53 <ais523> Yayimhere: zzo38 does that sometimes
04:58:10 <ais523> it's probably offtopic but I'm not sure where the appropriate place would be
04:58:36 <ais523> there have been some attempts to make competitive Pokémon into an esolang but I don't think they worked very well
04:59:22 <ais523> come to think of it, I'm actually not sure what complexity class solving Pokémon is in
04:59:47 <ais523> especially given that the attempts by the game developers to prevent endless battles didn't quite work properly
05:00:20 <Yayimhere> I wouldnt be surprised if Pokemon is as powerfull as uknow good ol' magic the gathering
05:00:42 <ais523> well, some Turing-complete languages struggle to be Turing-complete, some achieve it trivially
05:01:05 <ais523> M:tG is well into the "achieve it trivially" zone by now, it can do it lots of different ways and with some very simple constructions
05:01:15 <ais523> other Turing-complete games, like Netrunner, it's much harder
05:01:39 <korvo> I'd suggest Pokémon is bounded by PP count, but I wouldn't be surprised to learn that I'm old-fashioned and stuck with an old generation.
05:02:07 <Yayimhere> Tbh, I dont know, I dont play much Pokemon anymore, and barely remember how it works
05:02:19 <ais523> korvo: Recycle + Leppa Berry + Heal Pulse is the best-known combination to intentionally create an infinitely long battle
05:02:32 <ais523> which is somewhat infamous because, in some cases, you can do it despite attempts by your opponent to stop you
05:02:47 <esolangs> [[Esolang talk:Categorization]] https://esolangs.org/w/index.php?diff=166716&oldid=166041 * Yayimhere2(school) * (+307)
05:02:54 <ais523> that combination wasn't possible until generation V, there are some combinations that were possible earlier though
05:03:13 <esolangs> [[2I1IF]] https://esolangs.org/w/index.php?diff=166717&oldid=166621 * Yayimhere2(school) * (+22)
05:03:50 <Yayimhere> im just throwing things out here, but could missingno not be useful... somehow?
05:03:54 <zzo38> What I thought should be made up a rule change in Pokemon would be that some items and some movse are "unrecoverable". If a item is unrecoverable then it cannot be recovered during the same battle if it is consumed, and if a move is unrecoverable then that move's PP cannot be recovered during the battle.
05:03:59 <ais523> (there's also the infamous "two Wobbuffets who both have Leftovers" infinite loop in generation III, which was plausibly possible to trigger by accident because Leftovers is a good item to use on Wobbuffet and that was the only requirement for triggering it – it got patched out two different ways in Generation IV)
05:04:30 <ais523> zzo38: there was a very complicated rule change at Smogon intended to try to prevent infinite battles without affecting any legitimate strategy
05:06:13 <ais523> oh, apparently in the end they just gave up trying to find all the possibilities and just banned Leppa Berry + Harvest and Leppa Berry + Recycle
05:06:56 <ais523> …which wouldn't be enough unless you ban them both existing anywhere in the team, because you can give an opponent the Leppa Berry with one Pokémon and then steal it back with another (who has Harvest or Recycle)
05:07:38 <Yayimhere> why doesnt Nintendo just give up lol
05:08:49 <ais523> some of the previous versions of the rule looked like this: https://www.smogon.com/forums/threads/banning-leppa-berry.3544604/page-2#post-6335822
05:09:41 <ais523> Yayimhere: oh, Game Freak (who actually make the Pokémon games, even though Nintendo own them) apparently gave up on this sort of stuff years ago (probably decades by this point)
05:10:20 <Yayimhere> ais523: great, I would guess there propably is more looping in the newer versions then lol
05:10:35 <ais523> singles hasn't been reasonably balanced since Generation IV (and even that required a lot of bans), doubles is more balanced but has also been struggling somewhat
05:10:49 <esolangs> [[Category:C++]] N https://esolangs.org/w/index.php?oldid=166718 * SuperSMG5 * (+186) Created page with "Imagine all of the C++, C, and C# Esolangs were all put in one list ''thats what this is for'' well thats what I was going for. If you know how to do this, please let me know"
05:11:36 <esolangs> [[User:Yayimhere]] https://esolangs.org/w/index.php?diff=166719&oldid=166620 * Yayimhere2(school) * (+10) /* esolangs */
05:12:25 <esolangs> [[GRG]] https://esolangs.org/w/index.php?diff=166720&oldid=166689 * Yayimhere2(school) * (-9) /* How it functions */
05:13:37 <esolangs> [[GRG]] https://esolangs.org/w/index.php?diff=166721&oldid=166720 * Yayimhere2(school) * (+30) /* How it functions */
05:13:58 <zzo38> It is why I thought that making some moves/items unrecoverable might help, and adding something like the fifty move rule of chess might also help.
05:15:47 <ais523> hmm this Smogon forums thread is actually amazing
05:15:58 <ais523> the previous version I linked was really simple compared to some of the later ones
05:17:28 <esolangs> [[Pass a symbol]] https://esolangs.org/w/index.php?diff=166722&oldid=136619 * Yayimhere2(school) * (+2) /* NOR */
05:20:41 <Yayimhere> ais523: could I mayhaps ask a question about 90?
05:22:07 <Yayimhere> thanks! I was just wondering if it was possible to have two(or three ect) 90 programs destroying each other? and also is it possible to have it destroy itself?
05:22:51 <Yayimhere> (sorry if this is answered on the page)
05:23:16 <ais523> destroying each other is definitely possible, if the timing is right
05:23:21 <ais523> destroying itself, I'm not sure about
05:23:42 <Yayimhere> maybe the latter question technically more is a computer question
05:23:51 <Yayimhere> (can a program have access to itself)
05:24:10 <ais523> I think the spec doesn't prevent the program destroying itself, but the usual implementation would involve attaching a debugger and a program can't attach a debugger to itself, so maybe it would be simpler to disallow that
05:24:28 <ais523> (a program can totally have access to its own memory, it just has to do it a different way from accessing a different program's memory)
05:26:18 <Yayimhere> also, for the issue of having enough software running, could you not in principle just have a bunch of slightly differently set up instances of the same program?
05:27:02 <ais523> sort-of – the problem is that 90 programs run as quickly as possible and don't have any way to delay or the like
05:27:10 <ais523> so there's a risk that the first program would just exist before you tried to run the second one
05:27:37 <ais523> as such it's going to be unreliable to have a 90 program affecting a second copy of the 90 interpreter because you can't guarantee it's still running at the time
05:27:57 <Yayimhere> oh, i wanst talking about 90 programs specifically
05:28:04 <ais523> (affecting the program itself, while technically possible, wouldn't help at all because that just changes what the program says and you could have written it like that in the first place)
05:29:04 <Yayimhere> for the issue of 90 programs just running as fast as they can, isnt there a way to force a program to run at a certain rate?
05:29:25 <ais523> you'd have to use a separate program to do it
05:29:53 <ais523> (or edit a separate program into doing that, which would be harder than just editing it to do what you wanted it to do in the first place)
05:31:20 <zzo38> If the 90 program affects itself, if it is process by an interpreter then the interpreter could be damaged, or it damages the 90 program in a way which depends on the representation it has after it has been read from disk, possibly it has pointers, etc
05:31:26 <Yayimhere> but is there a way to do that on a computer?
05:31:50 <ais523> you could run the program in an emulator and tell the emulator to run slowly
05:31:55 <ais523> or you could single-step it in a debugger
05:32:17 <ais523> or you could tell the kernel to give it only small timeslices (but that makes it run at full speed for a bit, stop for a while, at full speed for a bit, etc.)
05:32:50 <Yayimhere> yea something like that I was thinking
05:32:55 <ais523> I guess you could also underclock the computer, which would slow down everything
05:33:09 <ais523> but I'm not sure how much underclocking modern computers can cope with
05:33:23 <ais523> (there have been historical computers that could be underclocked all the way to 0 but I think that doesn't work nowadays)
05:33:37 <Yayimhere> 90 is very dependent on the system it is on
05:34:44 <ais523> this would be a major flaw in most practical languages, but is interesting to experiment with with esolangs
05:35:03 <Yayimhere> you kinda have to think of the computer as part of a specific programs function, because that(in principle) can change
05:35:13 <Yayimhere> one mans flaw is another mans experiment
05:37:36 <Yayimhere> i will definetily be experimenting a lot with (theoretical) programming technique's of 90
05:47:43 <zzo38> I have a article in my user page on esolang wiki about some games; it mentions that Magic: the Gathering is Turing-complete but possibly someone should add details about this. (Also, can subgames and infinite loops make it uncomputable?)
05:48:05 <zzo38> (And, can a generalized variant of mahjong somehow be Turing-complete?)
05:51:01 <ais523> zzo38: https://esolangs.org/wiki/Flooding_Waterfall_Model
05:51:23 <ais523> contains a simple proof of M:tG Turing-completeness (simple in terms of the M:tG setup, less simple in terms of proving the resulting language TC)
05:51:36 <ais523> you might want to link it from your userpage
05:52:49 <zzo38> OK, I will link it from the user page.
05:54:22 <esolangs> [[User:Zzo38/Game rules]] https://esolangs.org/w/index.php?diff=166723&oldid=162310 * Zzo38 * (+59) Link to [[Flooding Waterfall Model]]
06:01:27 <zzo38> Why do you have two pokemons with mega evolution stones? (I can think of a few reasons why someone might do that, but I don't know which one(s) are applicable here)
06:01:52 <ais523> zzo38: it's designed for a format where you can only use four Pokémon from your team
06:02:09 <ais523> even though you have six on your team
06:04:10 <zzo38> O, OK. (I should have thought of that, considering that they are level 50, but somehow I did not)
06:07:34 -!- Yayimhere7 has joined.
06:09:10 <Yayimhere7> so, i was thinking if there was an interesting way to make the main form of data in an esolang threads(and threads within threads and so on)
06:09:43 <ais523> Yayimhere7: https://esolangs.org/wiki/Annihilator
06:09:45 -!- Yayimhere has quit (Ping timeout: 250 seconds).
06:14:31 -!- Yayimhere7 has quit (Ping timeout: 250 seconds).
06:14:48 -!- Yayimhere has joined.
06:26:51 -!- Yayimhere has quit (Quit: Client closed).
06:27:04 <b_jonas> "especially given that the attempts by the game developers to prevent endless battles didn't quite work properly" => yeah, it's weird, especially when it's because of endless switching pokemon. you'd think they can put a limit on that, like requiring a move that makes progress before you can switch in the same pokemon in again (or the same pair of pokemons for a double battle).
06:29:27 <b_jonas> if it was just some overpowered healing wearable item that outheals even Struggle backlash damage then it would be harder to prevent infinite loops, but I don't think that can happen in competitive pokemon
06:32:26 <zzo38> I thought of that too, and my idea was to add a rule that if, for six consecutive turns, all active pokemons switch out, then no pokemon is allowed to select switching out during the immediately next turn (after that, this restriction goes away; it also goes away if anyone executes a move)
06:34:28 <ais523> b_jonas: Regenerator heals on switch, for more than Struggle recoil damage
06:34:51 <ais523> so if you have both teams with two regenerators with no PP left, optimal strategy is to switch forever
06:34:57 <ais523> this is unlikely to happen by chance, though
06:36:13 <b_jonas> ais523: is that an ability that you can get in a competitive match?
06:36:37 <ais523> it'd be weird to have it on two different Pokémon in a team, but not completely ridiculous
06:37:22 <b_jonas> meanwhile, Nintendo just released a new Pokémon game with no PP mechanics at all and so no Struggle either. and it's not like the first generation games when the devs had no experience yet and the console was limited.
06:37:40 <b_jonas> ais523: and you'd need that for two teams, right?
06:38:21 <ais523> PP is weird as mechanics go, especially given how it is often irrelevant but often isn't
06:38:34 <ais523> max PPs have generally been gradually reducing over time, too
06:39:34 <ais523> which has made it more relevant in theory, but the games have been getting less balanced which counteracts that (as unbalanced battles often don't last very long)
06:39:47 <zzo38> I think the new Pokemon game is not like the ordinary Pokemon game though; it is a different game, anyways.
06:39:49 <b_jonas> that doesn't seem weird. decking out is often irrelevant in Magic because usually you want to kill in the first few turns, but sometimes it is relevant, and you can build decks that deliberately want to deck out the opponent
06:45:53 <zzo38> If the nonstandard rules that I had mentioned (as well as something a bit similar to the fifty move rule of chess) would be used, then I think that would help with that as well as with a few other things, I think.
06:51:05 <zzo38> (Some of these nonstandard rules will not help if it is intended to be compatible with standard rules, but some are compatible with standard rules. Unrecoverable moves/items are not compatible but the rule about six consecutive turns with switching would be compatible, I think.)
08:07:01 -!- Yayimhere has joined.
08:15:22 <esolangs> [[Language list]] https://esolangs.org/w/index.php?diff=166724&oldid=166698 * Yayimhere2(school) * (+10) /* G */ added [[GRG]]
08:15:36 -!- Yayimhere has quit (Quit: Client closed).
08:15:51 -!- Yayimhere has joined.
08:24:31 -!- Yayimhere has quit (Ping timeout: 250 seconds).
09:55:14 -!- Everything has joined.
10:07:40 -!- Everything has quit (Quit: leaving).
10:32:49 -!- tromp has joined.
11:12:21 -!- Sgeo has quit (Read error: Connection reset by peer).
11:20:08 <esolangs> [[Special:Log/newusers]] create * Esoboring ideas * New user account
11:35:00 -!- amby has joined.
11:38:42 -!- Lord_of_Life has quit (Ping timeout: 240 seconds).
11:39:02 -!- Lord_of_Life has joined.
12:12:12 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166725&oldid=166681 * Yayimhere2(school) * (+10) /* See also */
12:15:14 -!- Yayimhere has joined.
12:29:51 <esolangs> [[User:RaiseAfloppaFan3925]] M https://esolangs.org/w/index.php?diff=166726&oldid=166694 * RaiseAfloppaFan3925 * (+482) You're tailor-made for this day and age
12:40:36 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166727&oldid=166725 * Yayimhere2(school) * (-22) /* Description */
12:46:04 <esolangs> [[Unrepetition]] https://esolangs.org/w/index.php?diff=166728&oldid=166683 * Yayimhere2(school) * (+389)
13:09:39 -!- Yayimhere has quit (Ping timeout: 250 seconds).
13:23:13 <HackEso> 759) <zzo38> Sleep on the ceiling next Sunday. \ 918) <boily> not only there is no God, but try to find an APL keyboard on Sunday.
13:31:25 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=166729&oldid=166699 * Esoboring ideas * (+266) /* Introductions */
13:38:38 -!- simcop2387 has quit (Quit: ZNC 1.9.1+deb2+b3 - https://znc.in).
13:38:38 -!- perlbot has quit (Quit: ZNC 1.9.1+deb2+b3 - https://znc.in).
13:59:07 -!- Yayimhere has joined.
14:00:02 <esolangs> [[IEBEL]] N https://esolangs.org/w/index.php?oldid=166730 * Esoboring ideas * (+1184) Created page with "IEBEL is an [[OISC]] [[esoteric programming language]] short for in-equality branch esotering language by [[Esoboring ideas] which doesn't have any interpreters yet ==Memory== Every register has the values of 0-255 ==The instruction== ===Main things=== it is like
14:09:14 -!- pr1sm has joined.
14:09:39 <esolangs> [[Talk:Trilime]] N https://esolangs.org/w/index.php?oldid=166731 * Yayimhere2(school) * (+146) Created page with "nooooo, dont change iiit!!!! --~~~~"
14:14:57 <esolangs> [[Alex]] https://esolangs.org/w/index.php?diff=166732&oldid=77727 * Yayimhere2(school) * (-13) brainfuck does not have a stack. Added stub, as there are only example programs and no actual specification.
14:16:59 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
14:24:22 <esolangs> [[IEBEL]] https://esolangs.org/w/index.php?diff=166733&oldid=166730 * Esoboring ideas * (+1)
14:24:53 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166734&oldid=166727 * Yayimhere2(school) * (+13) /* Description */
14:34:27 -!- pr1sm has quit (Remote host closed the connection).
14:34:41 -!- pr1sm has joined.
14:35:03 -!- pr1sm has quit (Remote host closed the connection).
14:35:17 -!- pr1sm has joined.
14:35:25 -!- pr1sm has quit (Remote host closed the connection).
14:35:39 -!- pr1sm has joined.
14:36:03 -!- pr1sm has quit (Remote host closed the connection).
14:36:17 -!- pr1sm has joined.
14:36:30 -!- pr1sm has quit (Remote host closed the connection).
14:37:28 <esolangs> [[CARP]] M https://esolangs.org/w/index.php?diff=166735&oldid=166710 * TheCanon2 * (+34) Added opcodes
14:43:48 <esolangs> [[IEBEL]] https://esolangs.org/w/index.php?diff=166736&oldid=166733 * Esoboring ideas * (+5) /* Truth machine */
14:44:52 <esolangs> [[IEBEL]] https://esolangs.org/w/index.php?diff=166737&oldid=166736 * Yayimhere2(school) * (-46) /* See also */ delete oisc and esolang from see also, as they are just the category of the language, and they have already been linked
14:45:06 <esolangs> [[IEBEL]] https://esolangs.org/w/index.php?diff=166738&oldid=166737 * Esoboring ideas * (+7) /* Hello world simple version */
14:47:14 <esolangs> [[IEBEL]] https://esolangs.org/w/index.php?diff=166739&oldid=166738 * Esoboring ideas * (+48) /* See also */
14:50:13 <esolangs> [[Talk:IEBEL]] N https://esolangs.org/w/index.php?oldid=166740 * Yayimhere2(school) * (+371) Created page with "== See also section hello! so, I'd just like to say, you are using the see also section weirdly. it is mostly for language's and such that are similar to this language, and so it shouldn't have hello world, just because you've implemented a hello world. --~
14:50:30 <esolangs> [[Talk:IEBEL]] https://esolangs.org/w/index.php?diff=166741&oldid=166740 * Yayimhere2(school) * (+3)
14:50:47 <esolangs> [[IEBEL]] https://esolangs.org/w/index.php?diff=166742&oldid=166739 * Esoboring ideas * (+0) /* Truth machine */
14:58:37 -!- tromp has joined.
15:06:58 <Yayimhere> are there any esolangs that basically function by destroying their own rules. and is it possible to make that Turing complete?
15:20:54 -!- FreeFull has joined.
15:43:09 <b_jonas> Yayimhere: there's a language that destroys integers so you can no longer use them, does that count?
15:43:30 <b_jonas> https://esolangs.org/wiki/Forte
15:43:47 <Yayimhere> b_jonas: like I guess it technically does, but not *really* since integers is data
15:44:01 <Yayimhere> also forte doesn't really destroy it, just, redefines them
15:44:22 <Yayimhere> when im saying rules im thinking like uknow how a CA has rules, or syntax rules, ect ect
15:46:19 <ais523> forte isn't really destroying its own rules, it just ignores a rule that most other languages have
15:46:57 <ais523> C-INTERCAL allows you to compile syntax errors, then later on you can create new syntax to give the syntax errors a meaning
15:47:07 <ais523> and they'll actually run
15:47:26 <korvo> Yayimhere: Is creation of new rules also possible? If not then the system will invariably degenerate as it loses degrees of freedom.
15:47:39 <ais523> (this is interesting because it is actually a compiled language – a syntax error compiles into code that checks to see if the syntax it contained has been defined yet)
15:48:05 <ais523> korvo: that would be manageable if there were infinitely many rules (or infinitely many destroyable parts of a single rule)
15:48:10 <b_jonas> ais523: yes, I'm saying Forte is destroying numbers, not rules
15:48:30 <ais523> Forte's a bit like that, in that after you destroy a number you have no way to get it back, but it's still TC because there are infinitely many numbers to start with
15:48:51 <korvo> There are plenty of machines which boot into an unrestricted mode at first, allowing many sorts of features to be accessed, but then is locked into a restricted mode for the rest of its execution. Some of those machines support further restriction of features, too. But they usually have a minimum amount of features which is enough to write basic logical operations.
15:49:05 -!- Yayimhere has quit (Quit: Client closed).
15:49:09 <b_jonas> ais523: right, it's somewhat like that brainfuck variant that destroys its own tape cells so they can no longer be modified
15:49:18 -!- Yayimhere has joined.
15:49:34 <korvo> ais523: Yeah. I suppose I'm assuming a finite number of rules; clearly I'm too logic-brained today.
15:50:59 <Yayimhere> maybe a program is made up of: a rule that gets destroyed, then a number, which equals some measure of decay(of the language itself)and then a new rule that gets created when that number is reached
15:51:09 <ais523> Yayimhere: so a common way I go about esolang design, which you might also want to try, is to take your idea and try to work out what the simplest possible version of it is that could possibly be TC
15:51:41 <ais523> if the aim is to act entirely by destroying rules, we need infinitely many rules for it to work, and the simplest possible implementation is probably "each rule can only be used once"
15:51:45 <korvo> IRC is always laggy.
15:52:06 -!- Yayimhere has quit (Client Quit).
15:55:23 <korvo> IOW the system's dynamics are a set of permuted sequences of the nats, N → N. Each initial segment of such a sequence corresponds to a legal move. Pretty sure by Gödelian reasoning that this can't be decided; in particular I don't think it's possible to compute a sufficiently-correct approximation of how the rules work by observing legal sequences.
15:58:25 <b_jonas> oh wait, we do have the perfect thing that destroys its own rules
15:59:11 <b_jonas> https://esolangs.org/wiki/Slashalash
15:59:15 -!- simcop2387 has joined.
15:59:45 -!- perlbot has joined.
16:10:22 -!- tromp has quit (Ping timeout: 240 seconds).
16:10:52 -!- Yayimhere has joined.
16:11:19 <Yayimhere> ok people, I think ive gotten an idea for the concept
16:11:54 <Yayimhere> every rule is in a specific rule definition syntax/language(one is to be chosen)
16:12:26 <Yayimhere> then each line is "delete *command* from every rule".
16:13:22 <Yayimhere> at the start of a program there is a string in the same language of rule's, which gets added to every rule statement in the program
16:13:51 <Yayimhere> (this includes the string itself and every *command*(or string technically))
16:14:34 <b_jonas> Yayimhere: https://esolangs.org/wiki/Slashalash and https://esolangs.org/wiki/Fuun_DNA destroy the rules in the program as it uses them
16:14:35 <Yayimhere> i beleive an abstain and reinstate (INTERCAL style) may be useful, but I dont know if its required
16:15:30 <esolangs> [[///]] https://esolangs.org/w/index.php?diff=166743&oldid=159964 * B jonas * (+97) /* See also */
16:16:05 <Yayimhere> does /// really destroy its own rules?
16:19:26 <ais523> I think of /// more as being in the "program queue/stack" genre, where bits of the program delete themselves after they've run but you can add more
16:22:41 <ais523> execline does that too
16:23:00 <ais523> (except I don't think it takes advantage of the way the genre typically does loops)
16:26:42 -!- ais523 has quit (Read error: Connection reset by peer).
16:26:52 -!- ais523 has joined.
16:34:11 -!- Yayimhere has quit (Ping timeout: 250 seconds).
16:45:31 -!- Yayimhere has joined.
16:46:00 <Yayimhere> (im replying to the /// thing btw)
16:46:07 <Yayimhere> (idk what else you may have been sending)
16:48:11 <Yayimhere> also, for the specific language idea I have proposed, does anyone know a good "rule language"?
16:50:33 <ais523> I think you have to work it out to fit around the rest of the language
16:51:56 <ais523> like, the rules are the core of the language you're designing
16:52:21 <ais523> you need to work out how much power they need to be interesting (i.e. you don't want a single rule to be able to trivialise everything, nor do you want to make the rules so weak you can't get interesting computaiton)
16:52:32 <b_jonas> ais523: yes, I Guess in that view underload destroys rules too
16:53:02 <Yayimhere> b_jonas: by destroy, I dont just mean redefine or similar, I mean delete from existing rules
16:53:55 <Yayimhere> btw i wad thinking that the rules should be the literal rules of the language itself
16:53:56 <korvo> There aren't any good rule languages. We have good completeness results for several classes of grammar, which can be seen as rewriting systems, but none of them are...good. It doesn't help that "rule" isn't a single standard thing.
16:55:22 <ais523> korvo: one of my pet peeves is how bad the popular grammar specification languages are
16:55:50 <korvo> ais523: Right!? ANTLR's the biggest disappointment.
16:56:10 <ais523> korvo: I hadn't even looked deeply into ANTLR's syntax because I was busy being disappointed with the semantics
16:56:26 <Yayimhere> I guess technically by rules I mean interpreter
16:56:40 <Yayimhere> but each part of the interpreter is in its own little
16:56:43 <b_jonas> I guess you could clumsily knock down function definitions in efghij. That's why efghij shops have those big empty warehouse floor spaces, and barely payed interns who rebuild their code from backups when necessary.
16:57:52 <korvo> Yayimhere: Sure. What we're saying is that the choice of objects (the things we manipulate) is connected to the choice of rules (the things that manipulate objects for us). It's easy to see the general idea, but we always have to specialize it for the domain at hand.
16:58:30 <Yayimhere> (also thanks for all the help guys, really do appreciate it)
16:59:17 <Yayimhere> the rules are already defined, the only thing missing is like, the language to write the rules in
16:59:32 <korvo> Well, what's wrong with the language that you already used for the definitions?
16:59:45 <Yayimhere> thats not a formal language though
16:59:56 <Yayimhere> I need like something an interpreter could interpret
17:00:50 <korvo> Same thing. Like, if you formalize the language you already have, then you'll need to give formal meanings to that language which gives meaning to your rules; if you translate the rules into some other syntax, then you'll need to give formal meanings to that syntax.
17:01:17 <Yayimhere> fuck it im making my own rule definition syntax
17:01:33 <Yayimhere> thats most definitely easier than trying to find something good
17:01:46 <korvo> (As Tarski pointed out: there's no ultimate semantics for something as simple as the natural numbers. Maybe we shouldn't try to figure out problems in an ultimate manner.)
17:02:38 -!- tromp has joined.
17:02:46 <Yayimhere> one technically possible thing(if the language is Turing complete) is to make the rules be defined within the language itself
17:03:14 <korvo> That's not something TC-ness does, though?
17:03:52 <korvo> If you want to interpret a language, then that interpreter must be relative to the machine that you're using for interpretation. Even if you're a human doing symbols on paper, you're still interpreting relative to the paper and symbols.
17:04:29 <korvo> TC languages aren't defined in terms of themselves. Rather, it's common for programmers to *bootstrap* a language by implementing itself as a demonstration of its generality and usefulness.
17:05:08 <korvo> By modus tollens, many programmers consider a language weak for general-purpose use when it can't express an interpreter for itself, or when its interpreter/compiler is ugly.
17:05:47 <korvo> https://www.mcmillen.dev/language_checklist.html Haaave you seen this yet? This is a great checklist for *serious* languages. Like, stuff you might take to your boss when you have a job in a decade.
17:06:01 <Yayimhere> anyways, I will now make a rule language to describe the rules of this language
17:06:12 <Yayimhere> korvo: no I haven't actually, ill go look at it!
17:06:15 <korvo> This wouldn't apply to most stuff on the wiki. I filled it out for Monte and Cammy, but mostly because I have a serious contempt for mainstream opinions.
17:07:12 <korvo> Yayimhere: There's a great meme in the fourth section. "The most significant program written in your language is its own compiler", followed by "The most significant program written in your language isn't even its own compiler". This is what we mean when we say that a good TC language should be able to implement itself.
17:07:52 <korvo> But note also in the fourth section, "No language spec", and "'The implementation is the spec'". These are serious critiques; Python's core team still doesn't take the latter seriously.
17:09:50 -!- Sgeo has joined.
17:10:19 <Yayimhere> also I assume the checklist isnt meant to apply to esolangs?
17:10:37 <Yayimhere> because they definetily lack comprehensible syntax
17:12:43 <korvo> https://github.com/monte-language/typhon/blob/92d70fbcbe1291f1aa7c5cedca90345b8a95f6cc/checklist.txt Here's the checklist for Monte.
17:13:13 <korvo> Recall that an esolang is just a language that isn't notable enough for Wikipedia. It's really not more complex than that. I wrote more words here: https://lobste.rs/s/ksrmbf/let_s_take_esoteric_programming
17:13:50 <tromp> brainfuck is notable enough for WP:)
17:14:19 <Yayimhere> malbolge. is notable enough. for WP.... XD
17:14:19 <Yayimhere> not to undermine your point though korvo, your not wrong
17:15:16 <korvo> I don't think of Brainfuck or Malbolge as esoteric! I think that folks use "esoteric" as a shield to avoid having to deal with the typical barbs of capitalism: how will you monetize? what's the license? would you sign this contract?
17:16:06 <korvo> Because those lead to less obvious barbs: why isn't it readable? why isn't it optimized? why doesn't it support my preferred expensive proprietary OS?
17:16:35 <korvo> BASIC's hard to use, but it was shipped as a default for years. C++'s horribly hard to use, and it's considered the most macho and manly way to program.
17:17:01 <Yayimhere> this is the funniest shit ive ever read
17:17:24 <Yayimhere> i am quite sad I cannot fill out this list, as I dont actually have any languages I advocate for
17:18:46 <korvo> You're not expected to be able to fill out this list yet. Don't worry about it. Also, many folks would suggest that the checklist isn't to be taken seriously and that any language designer who uses it is hobbling themselves.
17:19:15 <Yayimhere> (I know im not expected to, but I'd like to do it)
17:19:32 <Yayimhere> (maybe imm going to fill it in as a joke lol)
17:33:12 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=166744&oldid=166729 * Wlad * (+308) Add Wlad's introduction
18:01:15 -!- Yayimhere has quit (Quit: Client closed).
18:04:44 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166745&oldid=166734 * Yayimhere2(school) * (+39) /* (Surprisingly enough) a short list of examples(WIP) */
18:12:36 <b_jonas> "Shift-reduce conflicts in parsing seem to be resolved using rand()" hehe (from that checklist that korvo linked)
18:12:52 <ais523> korvo: I don't think notability is a good way to define esolangs – the other way round is more obvious, there are plenty of very conventionally designed languages which aren't big or well-known enough to have a Wikipedia page (but unfortunately they're generally obscure enough that I haven't heard of most of them)
18:13:58 <korvo> ais523: It's not notability as much as the degree of exploitation which society hopes to induce. An "up-and-coming" language is usually described in terms of its velocity rather than its current features.
18:14:21 <ais523> but something like Malbolge is fairly clearly an esolang, I think, because the design goal of "make the language as hard to write in as possible" is diametrically opposed to the standard goals of programming languages
18:14:33 <korvo> Wikipedia's merely willing to allow capitalist propaganda as primary sources. Many such cases.
18:14:54 <ais523> korvo: I find it hard to see programming languages as generally being inherently capitalist – implementations, maybe
18:15:40 <korvo> The diametric opposition is what, "make the language as easy to write in as possible"? There's only one language in popular use with that goal, Python. Such languages are usually pretty rare and also bad; Quorum's my usual punching bag.
18:16:09 <ais523> korvo: it's more that most languages value being easy to write over being difficult to write – in many cases that isn't a primary goal, but might be a tiebreak
18:16:20 <ais523> tiebreaking by picking the more difficult option would be unusual
18:16:25 <b_jonas> well, python doesn't purely do that, there are a few places where python is harder to write because of some historical compatibility thing, but it is close enough
18:16:25 <ais523> if all other things are equal
18:16:58 <ais523> likewise, most languages will tiebreak by trying to copy what programmers are familiar with and what other languages have done, being different for the sake of being different is how you end up with INTERCAL
18:17:33 <korvo> ais523: A good counterexample is C, which had design goals involving being easy for computers to parse and compile, and was ultimately steered by compilability. It competed with Fortran in that arena and won handily.
18:17:34 <b_jonas> ah yes, that's how you end up with Rust's syntax :-(
18:17:42 <ais523> (working on C-INTERCAL was fun, especially when we found ways to be different that actually had compensating advantages)
18:18:23 <ais523> korvo: you're misunderstanding me – in C, writability is not a primary goal but it is still considered desirable, it just sometimes has to be compromised on to meet other design goals
18:18:27 <b_jonas> ais523: yes, making things different is a goal that you can do in games like M:tG or Factorio and can result in very enjoyable builds
18:18:46 <b_jonas> and sometimes you can discover builds that are different and also better when steered by this
18:18:53 <korvo> ECMAScript's another counterexample; the design goal there was to look like Java and the rush to market ate all other goals. A lot of the worst ugliness like `with` has been deprecated, but that's explicitly because E's authors decided to heavily influence it.
18:19:16 <korvo> ais523: I understand your point but I think it's straight-up wrong, sorry.
18:19:43 <korvo> I'm not very agreeable today and I'll shut up after this. I'm just tired of the way that capitalism's bent all of our sciences.
18:20:11 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
18:20:32 <b_jonas> korvo: did Javascript really want to look more like Java than look like C? I think it wanted to look like C, but Java also wanted to look like C, and it's only that why they look alike. the Java got in the name for marketing, because Java was already used for in-browser client-side programming
18:20:41 <ais523> I guess a good way to see the point is to consider why most languages are not adding politeness-checking features from INTERCAL – they choose to leave it out, even if excluding them has nothing to do with the language's design goals
18:21:41 <ais523> I think that this is not a coincidence and there's some plausible model of language designers that explains why they are all making the same choice there
18:26:05 <b_jonas> the politeness checking might be one of those jokes that are only funny once
18:26:24 <ais523> b_jonas: yes, but why do languages have a bias towards not including unfunny jokes rather than including them?
18:26:32 <ais523> (and why do most esolangs.org contributors have the opposite bias?)
18:28:34 <b_jonas> for the latter, becuase most people make esolangs alone and it's hard to judge which of your own jokes are funny
18:30:00 <ais523> b_jonas: hmm, I think that might be starting to get close to the esolang distinction
18:30:31 <ais523> the fewer designers a language has, the more likely it is to be an esolang – even if a solo dev attempts to make a practical language it often ends up with esolang-like elements
18:30:39 <b_jonas> I don't care too much about the esolang distinction as in which languages are esoteric, and I'm happy to document non-esoteric languages on the esowiki
18:30:59 <b_jonas> well, maybe I care a little bit
18:31:07 <ais523> b_jonas: historically there was a consensus to not document BANCSTAR on the wiki because it was considered to be not esoteric enough
18:31:14 <ais523> although at some point that changed
18:32:21 <b_jonas> I've documented at least one language on the esowiki that's both clearly non-esoteric and is notable enough for en.wikipedia to hvae an article
18:34:03 <b_jonas> I did make one compromise to the wiki being mostly about esoteric languages, which is that I kept https://esolangs.org/wiki/MIX as the main language on that title, rather than switch it over or at least make it a disambig page
18:42:34 -!- tromp has joined.
19:41:02 <sorear> LiveScript's Java co-branding was a very late change...
20:10:46 <esolangs> [[Gur yvsr]] M https://esolangs.org/w/index.php?diff=166746&oldid=166713 * Placeholding * (-4)
20:14:39 <zzo38> I made some additions of the programming language check list: gopher://zzo38computer.org/0textfile/miscellaneous/language_checklist.txt
20:16:32 <zzo38> (Probably I missed some stuff)
20:16:59 -!- pr1sm has joined.
20:19:02 <zzo38> And, about which programming languages are "esoteric": I seem to remember someone mentioning that PostScript is both esoteric and not esoteric; it seems to me that PostScript is also both general-purpose and domain-specific, and both text and binary.
20:22:09 -!- pr1sm has quit (Ping timeout: 244 seconds).
20:37:54 -!- pr1sm has joined.
20:41:11 <zzo38> I am not sure that there is really a single clear definition of "esoteric programming", but some of the mentions might be good points
20:42:22 -!- pr1sm has quit (Ping timeout: 240 seconds).
20:44:15 <zzo38> Some stuff I had made which is not really intended to be esolangs nevertheless has unusual stuff, and some other people might have done for other reasons
20:47:06 -!- pr1sm has joined.
20:49:11 <tromp> i think one common characteristic is that esoteric languages are too simple (and often too weird) to be useful for mainstream programming
20:49:46 <tromp> the don't have specification running into a hundred pages
20:50:22 <zzo38> (Some features of Free Hero Mesh are the way that they are for compatibility with MESH:Hero (also has a single designer as far as I know), but some are my own ideas.)
20:50:33 <zzo38> tromp: That is probably also a good point
20:51:22 <tromp> so let me ask: what is the simplest non-esoteric language?
20:52:39 <zzo38> However, uxn is simple but also many useful programs have been made (including text editor, picture editor, calendar, clock, card games, and other programs)
20:56:33 <tromp> are those written in uxn or in some other language that compiles to uxn?
20:58:53 <zzo38> Most of them are written directly in uxn (using the assembler).
20:59:53 <tromp> isn't uxntal the language?
21:00:35 <zzo38> Yes, uxntal is the assembler which is used; it is mostly just writing the instructions directly although there are a few things such as labels, like many assemblers have
21:09:32 <tromp> toy cpus like uxn and chip-8 are somewhat in between esoteric and mainstream languages
21:11:06 <tromp> they would have been mainstream in the hobby computer era but no longer are on modern machines
21:12:32 <tromp> the original scheme had a modest spec at 48 pages
21:15:15 <tromp> R3RS is even shorter at 41 pages
21:16:15 <tromp> while the modern R7RS small edition is 84 pages
21:19:00 <ais523> I can imagine a rudimentary (pre-POSIX) make(1) that's practically useful and very easy to specify
21:19:46 <ais523> from the opposite end, golfing languages are often considered esoteric but can be very difficult to specify
21:20:18 <ais523> (TIO! classifies languages into "practical" and "recreational" rather than "esoteric" and "non-esoteric", and puts golfing languages in the recreational category, even though they are occasionally practically useful)
21:21:12 <zzo38> Tricks to shorten uxn programs are common even though that is (probably) not the primary use of uxn.
21:22:19 -!- ais523 has quit (Quit: quit).
21:25:38 <zzo38> (One advantage of uxn is that it is simpler and can easily be ported to many computers)
21:29:11 <esolangs> [[Collern]] https://esolangs.org/w/index.php?diff=166747&oldid=166712 * Dmiz * (+26)
21:30:45 -!- pr1sm has quit (Remote host closed the connection).
21:35:00 <zzo38> (Some tricks take advantage of circular stacks, such as the "DUP2k EOR2" trick and the "GTHrk JMPrk BRK" trick)
21:51:58 <esolangs> [[Collern]] https://esolangs.org/w/index.php?diff=166748&oldid=166747 * Dmiz * (-21)
22:11:08 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
23:47:36 <esolangs> [[PizzaScript]] N https://esolangs.org/w/index.php?oldid=166749 * Jay * (+2) Created page with "gh"
00:37:19 <esolangs> [[Language list]] https://esolangs.org/w/index.php?diff=166750&oldid=166724 * C++DSUCKER * (+18)
00:38:31 <esolangs> [[PizzaScript]] https://esolangs.org/w/index.php?diff=166751&oldid=166749 * Jay * (+2464) /* PizzaScript */
00:39:40 <esolangs> [[User:Jay]] https://esolangs.org/w/index.php?diff=166752&oldid=166695 * Jay * (+4)
00:40:11 <esolangs> [[PizzaScript]] M https://esolangs.org/w/index.php?diff=166753&oldid=166751 * Jay * (-16)
00:46:46 <esolangs> [[User:Hotcrystal0/Sandbox]] https://esolangs.org/w/index.php?diff=166754&oldid=166172 * Hotcrystal0 * (+1190)
00:58:40 <esolangs> [[PizzaScript]] https://esolangs.org/w/index.php?diff=166755&oldid=166753 * Aadenboy * (+276) formatting + categories
00:58:45 -!- amby has 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).
01:23:20 -!- FreeFull has quit (Ping timeout: 240 seconds).
01:38:42 -!- pr1sm has joined.
02:00:11 -!- pr1sm has quit (Remote host closed the connection).
02:00:27 -!- pr1sm has joined.
02:17:58 <esolangs> [[Pain]] https://esolangs.org/w/index.php?diff=166756&oldid=160971 * RetroPain * (+45)
02:19:29 -!- pr1sm has quit (Remote host closed the connection).
03:47:43 <esolangs> [[Brugtiohell]] https://esolangs.org/w/index.php?diff=166757&oldid=140738 * Yayimhere2(school) * (+18)
03:59:07 <esolangs> [[Talk:H311 Assembly]] https://esolangs.org/w/index.php?diff=166758&oldid=160428 * Yayimhere2(school) * (+698) /* Welcome to the talk page for Inferno */
04:08:04 -!- Yayimhere has joined.
04:13:46 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166759&oldid=166745 * Yayimhere2(school) * (+140) /* Description */
04:45:13 -!- Yayimhere has quit (Ping timeout: 250 seconds).
05:09:30 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166760&oldid=166759 * Yayimhere2(school) * (-7) /* Description */
05:11:07 -!- Yayimhere has joined.
05:13:06 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166761&oldid=166760 * Yayimhere2(school) * (+12) /* See also */
05:18:14 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166762&oldid=166761 * Yayimhere2(school) * (+114) /* (Surprisingly enough) a short list of examples(WIP) */
05:18:26 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166763&oldid=166762 * Yayimhere2(school) * (+17) /* (Surprisingly enough) a short list of examples(WIP) */
05:24:01 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166764&oldid=166763 * Yayimhere2(school) * (-32) /* Description */
05:27:27 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166765&oldid=166764 * Yayimhere2(school) * (+40) /* Description */
05:37:11 -!- Yayimhere has quit (Quit: Client closed).
07:12:31 -!- tromp has joined.
07:29:30 -!- Sgeo has quit (Read error: Connection reset by peer).
07:30:57 -!- Yayimhere has joined.
07:33:33 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166766&oldid=166765 * Yayimhere2(school) * (+85) /* (Surprisingly enough) a short list of examples(WIP) */
08:02:43 <esolangs> [[Kind n' Single]] https://esolangs.org/w/index.php?diff=166767&oldid=143373 * Yayimhere2(school) * (+14) /* System */
08:09:45 -!- Yayimhere has quit (Ping timeout: 250 seconds).
08:10:57 -!- Yayimhere has joined.
08:21:20 <esolangs> [[Kind n' Single]] https://esolangs.org/w/index.php?diff=166768&oldid=166767 * Yayimhere2(school) * (+387) /* System */
08:27:52 <esolangs> [[Kind n' Single]] https://esolangs.org/w/index.php?diff=166769&oldid=166768 * Yayimhere2(school) * (+222)
08:34:27 -!- Yayimhere has quit (Ping timeout: 250 seconds).
08:53:56 <esolangs> [[IEBEL]] https://esolangs.org/w/index.php?diff=166770&oldid=166742 * Esoboring ideas * (+4) /* Control negatives */
08:55:10 <esolangs> [[IEBEL]] https://esolangs.org/w/index.php?diff=166771&oldid=166770 * Esoboring ideas * (+1) /* Control negatives */
08:59:48 <esolangs> [[IEBEL]] https://esolangs.org/w/index.php?diff=166772&oldid=166771 * Esoboring ideas * (+0)
09:00:01 <esolangs> [[IEBEL]] https://esolangs.org/w/index.php?diff=166773&oldid=166772 * Esoboring ideas * (+87)
09:22:31 <esolangs> [[User:Esoboring ideas]] N https://esolangs.org/w/index.php?oldid=166774 * Esoboring ideas * (+184) Created page with "I am very intersted in math and [[esoteric programming language]]s yet i created only [[IEBEL]] and gamma-calculus(didn't publish) i would like some questions ==Questions== ==Answers=="
09:24:58 <esolangs> [[User:Esoboring ideas]] https://esolangs.org/w/index.php?diff=166775&oldid=166774 * Esoboring ideas * (+1) /* Questions */
09:25:39 <esolangs> [[User:Esoboring ideas]] https://esolangs.org/w/index.php?diff=166776&oldid=166775 * Esoboring ideas * (-185) Blanked the page
11:16:39 -!- ais523 has joined.
11:38:42 -!- Lord_of_Life has quit (Ping timeout: 240 seconds).
11:38:48 -!- Lord_of_Life_ has joined.
11:40:07 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
12:10:35 -!- Yayimhere has joined.
12:11:12 <Yayimhere> I think someone may have replied to a message after I logged of from IRC, because I got (2) instead of (1)
12:11:39 <esolangs> [[Kind n' Single]] https://esolangs.org/w/index.php?diff=166777&oldid=166769 * Yayimhere2(school) * (-38) /* System */
12:15:04 <esolangs> [[Kind n' Single]] https://esolangs.org/w/index.php?diff=166778&oldid=166777 * Yayimhere2(school) * (+233) /* System */
12:17:07 <esolangs> [[Kind n' Single]] https://esolangs.org/w/index.php?diff=166779&oldid=166778 * Yayimhere2(school) * (+42) /* System */
12:28:08 <esolangs> [[Kind n' Single]] https://esolangs.org/w/index.php?diff=166780&oldid=166779 * Yayimhere2(school) * (+425) /* System */
12:32:30 <esolangs> [[Kind n' Single]] https://esolangs.org/w/index.php?diff=166781&oldid=166780 * Yayimhere2(school) * (+0) /* System */
12:36:12 <esolangs> [[Kind n' Single]] https://esolangs.org/w/index.php?diff=166782&oldid=166781 * Yayimhere2(school) * (+53) /* System */
12:36:39 <Yayimhere> arent all languages that can simply define functions TC?
12:40:46 <esolangs> [[Kind n' Single]] https://esolangs.org/w/index.php?diff=166783&oldid=166782 * Yayimhere2(school) * (+131) /* System */
12:43:27 <esolangs> [[Kind n' Single]] https://esolangs.org/w/index.php?diff=166784&oldid=166783 * Yayimhere2(school) * (-85) /* System */
12:45:02 <tromp> if you can define nested functions, and return functions, and not have to type them, then i think yes
12:46:51 -!- Yayimhere has quit (Quit: Client closed).
12:50:02 <esolangs> [[Special:Log/newusers]] create * Wodan58 * New user account
12:52:32 -!- pr1sm has joined.
12:56:40 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=166785&oldid=166744 * Wodan58 * (+279) /* Introductions */
12:57:39 <esolangs> [[User:Wodan58]] N https://esolangs.org/w/index.php?oldid=166786 * Wodan58 * (+43) Created page with "Maintainer of the Programming Language Joy."
12:58:00 -!- Yayimhere has joined.
12:58:16 <esolangs> [[User talk:Wodan58]] N https://esolangs.org/w/index.php?oldid=166787 * Wodan58 * (+18) Created page with "Talking to myself."
12:58:59 <esolangs> [[Manfred von Thun]] https://esolangs.org/w/index.php?diff=166788&oldid=166355 * Wodan58 * (+0)
13:26:12 -!- amby has joined.
13:45:12 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
14:23:33 <esolangs> [[XUS]] https://esolangs.org/w/index.php?diff=166789&oldid=133708 * Yayimhere2(school) * (+40) /* examples */
14:25:50 <esolangs> [[Final Word Of The Day]] https://esolangs.org/w/index.php?diff=166790&oldid=138940 * Yayimhere2(school) * (-68)
14:25:52 <esolangs> [[Yappacino]] M https://esolangs.org/w/index.php?diff=166791&oldid=159592 * RaiseAfloppaFan3925 * (+0) Hoist infobox to the top
14:28:46 -!- tromp has joined.
14:29:16 <esolangs> [[Final Word Of The Day]] https://esolangs.org/w/index.php?diff=166792&oldid=166790 * Yayimhere2(school) * (+2) /* Properties */
14:37:02 <Yayimhere> is this documentation good? if not, then why:
14:40:58 <esolangs> [[Talk:BF Lite]] N https://esolangs.org/w/index.php?oldid=166793 * Yayimhere2(school) * (+152) Created page with "but the cells is the array though. --~~~~"
14:46:19 <esolangs> [[Dango]] N https://esolangs.org/w/index.php?oldid=166794 * RaiseAfloppaFan3925 * (+2026) 1/3 assembled
14:47:43 <esolangs> [[Dango]] M https://esolangs.org/w/index.php?diff=166795&oldid=166794 * RaiseAfloppaFan3925 * (+0) wrong brackets, sorry
14:54:24 -!- pr1sm has quit (Read error: Connection reset by peer).
15:22:36 -!- Yayimhere has quit (Quit: Client closed).
15:32:56 -!- Guest47 has joined.
15:33:21 -!- Guest47 has quit (Client Quit).
15:38:02 <esolangs> [[Dango]] M https://esolangs.org/w/index.php?diff=166796&oldid=166795 * RaiseAfloppaFan3925 * (+7) Told you I was stupid (fixed Truth machine)
15:39:44 <esolangs> [[User:RaiseAfloppaFan3925]] M https://esolangs.org/w/index.php?diff=166797&oldid=166726 * RaiseAfloppaFan3925 * (+114) add dango to the list
15:42:12 <esolangs> [[Dango]] M https://esolangs.org/w/index.php?diff=166798&oldid=166796 * RaiseAfloppaFan3925 * (+11)
15:59:48 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
16:09:13 <esolangs> [[Manfred von Thun]] https://esolangs.org/w/index.php?diff=166799&oldid=166788 * Wodan58 * (+12)
16:24:07 -!- tromp has joined.
17:21:22 <esolangs> [[Manfred von Thun]] https://esolangs.org/w/index.php?diff=166800&oldid=166799 * Aadenboy * (+2) past tense
17:41:37 -!- pr1sm has joined.
18:11:52 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
18:26:07 -!- chloetax has quit (Quit: Leaving).
18:29:51 -!- op_4_ has joined.
18:35:19 -!- perlbot_ has joined.
18:36:19 -!- chloetax has joined.
18:37:35 -!- pr1sm has quit (*.net *.split).
18:37:36 -!- perlbot has quit (*.net *.split).
18:37:36 -!- simcop2387 has quit (*.net *.split).
18:37:36 -!- op_4 has quit (*.net *.split).
18:37:36 -!- op_4_ has changed nick to op_4.
18:37:50 -!- perlbot_ has changed nick to perlbot.
18:39:20 -!- simcop2387 has joined.
18:49:35 -!- tromp has joined.
18:50:52 <esolangs> [[Alphabetack]] https://esolangs.org/w/index.php?diff=166801&oldid=151431 * * (+44) Categories
18:51:04 <esolangs> [[Alphabetack]] M https://esolangs.org/w/index.php?diff=166802&oldid=166801 * * (+2)
19:03:15 <esolangs> [[Dango]] M https://esolangs.org/w/index.php?diff=166803&oldid=166798 * RaiseAfloppaFan3925 * (+3) /* Truth Machine */ I am such an idiot :C
19:20:09 -!- ais523 has quit (Quit: quit).
20:00:47 <esolangs> [[Collern]] https://esolangs.org/w/index.php?diff=166804&oldid=166748 * Dmiz * (+43)
20:40:56 <esolangs> [[Lindenmayer]] N https://esolangs.org/w/index.php?oldid=166805 * Calculus is fun * (+1115) Created Lindenmayer
20:40:57 <zzo38> There seems to be JSON query but not so much ASN.1 query
20:55:22 <esolangs> [[Lindenmayer]] https://esolangs.org/w/index.php?diff=166806&oldid=166805 * Calculus is fun * (+126) /* Examples */
22:29:49 -!- Sgeo has joined.
22:32:43 -!- sftp has quit (Ping timeout: 244 seconds).
23:12:25 <esolangs> [[C*]] M https://esolangs.org/w/index.php?diff=166807&oldid=166194 * H33T33 * (+121)
23:18:17 -!- sftp has joined.
23:18:17 -!- sftp has changed hostmask to ~sftp@user/sftp.
23:23:44 <esolangs> [[BFASM]] https://esolangs.org/w/index.php?diff=166808&oldid=166198 * Waffelz * (+3034) update for BFASM v0.1
00:11:23 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
00:22:31 -!- sftp has quit (Ping timeout: 264 seconds).
00:23:03 -!- sftp has joined.
00:23:03 -!- sftp has changed hostmask to ~sftp@user/sftp.
01:01:45 -!- amby has 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).
04:02:58 <esolangs> [[User talk:PkmnQ]] https://esolangs.org/w/index.php?diff=166809&oldid=156658 * Yayimhere2(school) * (+289)
04:43:19 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166810&oldid=166766 * Yayimhere2(school) * (+78)
04:46:12 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166811&oldid=166810 * Yayimhere2(school) * (+6) /* (Surprisingly enough) a short list of examples */
04:48:34 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166812&oldid=166811 * Yayimhere2(school) * (+0) /* (Surprisingly enough) a short list of examples */
05:47:08 -!- slavfox has quit (Quit: ZNC 1.8.2 - https://znc.in).
05:48:32 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166813&oldid=166812 * Yayimhere2(school) * (+305)
05:51:42 -!- slavfox has joined.
05:54:23 -!- Sgeo has quit (Read error: Connection reset by peer).
06:29:38 <esolangs> [[Gora]] M https://esolangs.org/w/index.php?diff=166814&oldid=164574 * Ractangle * (+43)
06:34:51 <esolangs> [[User talk:PoptartPlungerBoi]] https://esolangs.org/w/index.php?diff=166815&oldid=148732 * Yayimhere2(school) * (+172)
07:15:22 -!- tromp has joined.
08:06:01 -!- ski has quit (Ping timeout: 264 seconds).
09:05:51 -!- ais523 has joined.
09:09:14 <esolangs> [[Special:Log/newusers]] create * CodeMelon * New user account
09:35:02 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=166816&oldid=166785 * CodeMelon * (+412)
09:37:15 <esolangs> [[User:CodeMelon]] N https://esolangs.org/w/index.php?oldid=166817 * CodeMelon * (+45) Created page with "Im making my own language right now type shit"
09:49:34 <esolangs> [[User talk:Tommyaweosme]] https://esolangs.org/w/index.php?diff=166818&oldid=164440 * Yayimhere2(school) * (+232)
10:19:02 <esolangs> [[Dango]] M https://esolangs.org/w/index.php?diff=166819&oldid=166803 * RaiseAfloppaFan3925 * (+765) Dango overhaul, maybe I should add cookies :D
10:23:05 <esolangs> [[Final Word Of The Day]] https://esolangs.org/w/index.php?diff=166820&oldid=166792 * Yayimhere2(school) * (+3)
10:27:29 <esolangs> [[User talk:PkmnQ]] https://esolangs.org/w/index.php?diff=166821&oldid=166809 * Yayimhere2(school) * (+118) /* Thanks!!! */
10:58:47 <esolangs> [[Talk:Flash shockwave has been discontinued.]] N https://esolangs.org/w/index.php?oldid=166822 * Yayimhere2(school) * (+158) Created page with "where is the actually documentation ???? --~~~~"
11:18:15 <esolangs> [[Dango]] M https://esolangs.org/w/index.php?diff=166823&oldid=166819 * RaiseAfloppaFan3925 * (+212) memory system + file extensions + paradigm + naming consistencies
11:19:58 <esolangs> [[Talk:Call/cc]] https://esolangs.org/w/index.php?diff=166824&oldid=46403 * Blashyrkh * (+279)
11:38:21 -!- Lord_of_Life_ has joined.
11:38:55 -!- Lord_of_Life has quit (Ping timeout: 240 seconds).
11:39:43 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
12:32:25 <esolangs> [[EvenOdd]] https://esolangs.org/w/index.php?diff=166825&oldid=154767 * Yayimhere2(school) * (-1) /* Nand */ Because of pemdas, these brackets are not needed
12:38:49 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
12:53:49 <esolangs> [[(...) IS 2D!!]] https://esolangs.org/w/index.php?diff=166826&oldid=130365 * Yayimhere2(school) * (-69)
13:12:08 <esolangs> [[Redefine Symbol]] https://esolangs.org/w/index.php?diff=166827&oldid=108791 * Yayimhere2(school) * (+7) /* Computational class */
13:17:39 <esolangs> [[Nope. without a quine including cheating ones but I was extra smart and let the one Quine not be a Quine]] N https://esolangs.org/w/index.php?oldid=166828 * Yayimhere2(school) * (+436) Created page with "'''Nope. without a quine including cheating ones but I was extra smart and let the one Quine not be a Quine''' is [[Nope. without a quine including cheating ones]]
13:17:40 <esolangs> [[User talk:RaiseAfloppaFan3925]] https://esolangs.org/w/index.php?diff=166829&oldid=166594 * RaiseAfloppaFan3925 * (+543) /* Does this count */ new section
13:19:34 <esolangs> [[User talk:RaiseAfloppaFan3925]] https://esolangs.org/w/index.php?diff=166830&oldid=166829 * RaiseAfloppaFan3925 * (+258) /* Oh yeah and this */ new section
13:27:54 -!- tromp has joined.
13:32:09 -!- chloetax has quit (Quit: Ping timeout (120 seconds)).
13:32:52 -!- chloetax has joined.
14:00:46 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
14:15:17 -!- tromp has joined.
14:21:50 -!- vista_user has joined.
15:04:09 -!- vista_user has quit (Quit: Client closed).
15:41:02 -!- amby has joined.
15:48:52 <esolangs> [[Underflow]] N https://esolangs.org/w/index.php?oldid=166831 * Yayimhere2(school) * (+1504) Created page with "'''Underflow''' is an esolang created by [[User:Yayimhere]], to make a [[Pushdown automata]] able to solve the problem that it is unable to do the problem with a b and c. it is most likely Turing complete, however there is currently no proof of this. == Mem
15:53:41 <esolangs> [[Underflow]] https://esolangs.org/w/index.php?diff=166832&oldid=166831 * Yayimhere2(school) * (+305) /* Commands */
15:56:47 <esolangs> [[Underflow]] https://esolangs.org/w/index.php?diff=166833&oldid=166832 * Yayimhere2(school) * (+143)
15:57:26 <esolangs> [[Underflow]] https://esolangs.org/w/index.php?diff=166834&oldid=166833 * Yayimhere2(school) * (+22) /* Examples */
16:05:25 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
16:08:54 <esolangs> [[User talk:Ractangle]] https://esolangs.org/w/index.php?diff=166835&oldid=150026 * * (+147) /* A request */ new section
16:13:20 <esolangs> [[Special:Log/move]] move * Aadenboy * moved [[Estrita]] to [[User:Aadenboy/Estrita]]: funny concept, not interesting idea. won't be going anywhere with this any time soon
16:14:04 <esolangs> [[User:Aadenboy]] https://esolangs.org/w/index.php?diff=166838&oldid=166342 * Aadenboy * (-305) move [[User:Aadenboy/Estrita|Estrita]] to the draft list
16:26:04 <esolangs> [[Underflow]] https://esolangs.org/w/index.php?diff=166839&oldid=166834 * Yayimhere2(school) * (+5) /* Examples */
16:27:09 <esolangs> [[Talk:F calculus]] https://esolangs.org/w/index.php?diff=166840&oldid=166675 * Corbin * (+564) Combinators can't decide normal forms of SK (because they aren't decidable!)
16:27:33 -!- tromp has joined.
16:52:59 <esolangs> [[Dango]] M https://esolangs.org/w/index.php?diff=166841&oldid=166823 * RaiseAfloppaFan3925 * (-73) Dango overhaul 2
16:53:07 -!- ais523 has quit (Quit: sorry about my connection).
17:19:15 <esolangs> [[Dango]] M https://esolangs.org/w/index.php?diff=166842&oldid=166841 * RaiseAfloppaFan3925 * (+114) Added reference implementation
17:24:01 <esolangs> [[User:Hotcrystal0/Sandbox]] https://esolangs.org/w/index.php?diff=166843&oldid=166754 * Hotcrystal0 * (+1580)
17:54:17 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
18:07:51 -!- impomatic has joined.
18:10:43 <esolangs> [[Esolang talk:Community portal]] https://esolangs.org/w/index.php?diff=166844&oldid=164420 * * (+183) /* Review request page somewhere? */ new section
18:10:50 <esolangs> [[PizzaScript]] M https://esolangs.org/w/index.php?diff=166845&oldid=166755 * Jay * (+106)
18:11:31 <esolangs> [[PizzaScript]] M https://esolangs.org/w/index.php?diff=166846&oldid=166845 * Jay * (-43)
18:13:36 -!- esolangist has joined.
18:13:38 -!- esolangist has quit (Client Quit).
18:15:04 -!- esolangist has joined.
18:15:49 -!- esolangist has quit (Client Quit).
18:15:49 -!- tromp has joined.
18:18:49 <esolangs> [[3 commands :)]] N https://esolangs.org/w/index.php?oldid=166847 * * (+588) Created page with "'''3 commands :)''' is a cell-based language with 3 commands and 3 cells made by ~~~. It is designed to be as usable as possible with that limitation. ==Commands== {| class="wikitable" | 1 || Increment cell 1 and put the user's input into cell 2. |- | 2 || Flip the sign
18:27:13 <esolangs> [[3 commands :)]] https://esolangs.org/w/index.php?diff=166848&oldid=166847 * * (+298) Commands & Categories
18:37:41 <esolangs> [[3 commands :)]] https://esolangs.org/w/index.php?diff=166849&oldid=166848 * Aadenboy * (+17) 2025
18:43:02 -!- esolangist has joined.
18:43:20 -!- esolangist has quit (Client Quit).
18:47:43 <esolangs> [[User talk:Ractangle]] M https://esolangs.org/w/index.php?diff=166850&oldid=166835 * Ractangle * (+176) /* A request */
18:49:17 -!- chloetax has quit (Ping timeout: 260 seconds).
18:49:50 -!- chloetax has joined.
18:50:44 <esolangs> [[User talk:Ractangle]] M https://esolangs.org/w/index.php?diff=166851&oldid=166850 * Ractangle * (+205) /* A request */
18:54:16 <esolangs> [[User:/nil]] https://esolangs.org/w/index.php?diff=166852&oldid=164528 * Esolangist * (+617)
19:01:15 <esolangs> [[Talk:Crypten]] https://esolangs.org/w/index.php?diff=166853&oldid=166677 * Aadenboy * (+361) /* encoding */ new section
19:01:25 <esolangs> [[Talk:Crypten]] M https://esolangs.org/w/index.php?diff=166854&oldid=166853 * Aadenboy * (+0) /* encoding */
19:10:51 -!- simcop2387 has quit (Quit: ZNC 1.9.1+deb2+b3 - https://znc.in).
19:10:51 -!- perlbot has quit (Quit: ZNC 1.9.1+deb2+b3 - https://znc.in).
19:25:04 -!- pr1sm has joined.
19:31:19 -!- chloetax has quit (Quit: Ping timeout (120 seconds)).
19:31:42 -!- chloetax has joined.
19:37:16 <esolangs> [[User:RaiseAfloppaFan3925]] M https://esolangs.org/w/index.php?diff=166855&oldid=166797 * RaiseAfloppaFan3925 * (+274) [[Dango]] is alive!!!
19:56:15 -!- simcop2387 has joined.
20:00:13 <esolangs> [[User:RaiseAfloppaFan3925]] M https://esolangs.org/w/index.php?diff=166856&oldid=166855 * RaiseAfloppaFan3925 * (+4) /* My languages */ exact date for Dango
20:03:20 <esolangs> [[BFASM]] M https://esolangs.org/w/index.php?diff=166857&oldid=166808 * Waffelz * (-4)
20:04:35 -!- ais523 has joined.
20:05:53 -!- perlbot has joined.
20:24:53 -!- ais523 has quit (Quit: quit).
20:29:21 -!- impomatic has quit (Quit: Client closed).
20:33:51 <esolangs> [[Dango]] M https://esolangs.org/w/index.php?diff=166858&oldid=166842 * RaiseAfloppaFan3925 * (-28) Dango is now fully up and running!
20:56:02 <esolangs> [[Gur yvsr]] M https://esolangs.org/w/index.php?diff=166859&oldid=166746 * Placeholding * (+46)
21:14:08 -!- ski has joined.
21:27:08 -!- pr1sm has quit (Remote host closed the connection).
21:46:24 -!- perlbot has quit (Quit: ZNC 1.9.1+deb2+b3 - https://znc.in).
21:46:24 -!- simcop2387 has quit (Quit: ZNC 1.9.1+deb2+b3 - https://znc.in).
21:53:48 <esolangs> [[]] https://esolangs.org/w/index.php?diff=166860&oldid=113907 * Kaveh Yousefi * (+766) Added a hyperlink to my implementation of the programming language on GitHub and supplemented the page category tag Implemented.
21:56:02 <esolangs> [[BFASM]] M https://esolangs.org/w/index.php?diff=166861&oldid=166857 * Waffelz * (+165)
21:56:08 <esolangs> [[BFASM/Examples]] N https://esolangs.org/w/index.php?oldid=166862 * Waffelz * (+13037) Created page with "<big><big><big><big><big></big></big><span style="vertical-align: 3px;">[[BFASM]]</span></big></big></big> = About = This page contains BFASM examples whose compiled code is too large to include in the main page. == FizzBuzz == === BFASM Code === set %x 1
21:58:48 <esolangs> [[]] https://esolangs.org/w/index.php?diff=166863&oldid=166860 * Kaveh Yousefi * (+239) Supplemented an alternative truth-machine implementation, as well as a perpetual 0101 printer.
22:26:25 -!- rodgort has quit (Ping timeout: 264 seconds).
22:26:49 -!- rodgort has joined.
22:35:35 -!- Sgeo has joined.
23:15:27 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
01:13:42 -!- simcop2387 has joined.
01:16:13 -!- perlbot has joined.
01:31:31 -!- chloetax has quit (Ping timeout: 264 seconds).
01:57:13 -!- amby has 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).
02:04:06 -!- chloetax has joined.
02:47:05 -!- ski has quit (Ping timeout: 256 seconds).
02:47:24 -!- ski has joined.
02:55:38 -!- Sgeo_ has joined.
03:00:10 -!- myname has joined.
03:00:20 -!- sprocket has joined.
03:01:39 -!- sftp_ has joined.
03:02:38 -!- Sgeo has quit (*.net *.split).
03:02:38 -!- sftp has quit (*.net *.split).
03:02:38 -!- sprock has quit (*.net *.split).
03:02:39 -!- mynery has quit (*.net *.split).
03:02:39 -!- APic has quit (*.net *.split).
03:02:39 -!- j4cbo has quit (*.net *.split).
03:02:39 -!- sftp_ has changed nick to sftp.
03:02:39 -!- sftp has changed hostmask to ~sftp@user/sftp.
03:02:52 -!- j4cbo has joined.
03:12:24 -!- APic has joined.
04:20:28 -!- perlbot has quit (Ping timeout: 246 seconds).
04:40:48 -!- perlbot has joined.
05:38:27 <esolangs> [[User talk:Yes]] https://esolangs.org/w/index.php?diff=166864&oldid=107062 * Yayimhere2(school) * (+163) /* you */
05:40:45 <esolangs> [[User talk:Yes]] https://esolangs.org/w/index.php?diff=166865&oldid=166864 * Yayimhere2(school) * (+337) /* Challenge */
05:42:44 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166866&oldid=166813 * Yayimhere2(school) * (+117) /* (Surprisingly enough) a short list of examples */
05:44:20 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166867&oldid=166866 * Yayimhere2(school) * (+45) /* Description */
05:48:33 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166868&oldid=166867 * Yayimhere2(school) * (+14) /* Description */
05:52:43 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166869&oldid=166868 * Yayimhere2(school) * (+0) /* Description */
05:53:50 -!- slavfox has quit (Quit: ZNC 1.8.2 - https://znc.in).
05:55:09 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166870&oldid=166869 * Yayimhere2(school) * (+113) /* (Surprisingly enough) a short list of examples */
05:56:33 -!- slavfox has joined.
06:37:13 <esolangs> [[Special:Log/newusers]] create * Langer * New user account
06:41:06 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=166871&oldid=166816 * Langer * (+229) introduced self
06:44:51 -!- Sgeo_ has quit (Read error: Connection reset by peer).
06:46:50 <esolangs> [[Talk:AsciiDots]] https://esolangs.org/w/index.php?diff=166872&oldid=150338 * Langer * (+173) comment
07:13:27 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166873&oldid=166870 * Yayimhere2(school) * (+1) /* (Surprisingly enough) a short list of examples */
07:19:05 -!- tromp has joined.
07:53:31 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
08:46:04 -!- tromp has joined.
08:59:35 <esolangs> [[User:RaiseAfloppaFan3925]] M https://esolangs.org/w/index.php?diff=166874&oldid=166856 * RaiseAfloppaFan3925 * (+29) status update
09:24:06 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
10:05:59 <esolangs> [[User:RaiseAfloppaFan3925]] M https://esolangs.org/w/index.php?diff=166875&oldid=166874 * RaiseAfloppaFan3925 * (+524) why
10:10:19 <esolangs> [[Talk:E++]] N https://esolangs.org/w/index.php?oldid=166876 * Esolangist * (+0) Created blank page
10:10:46 <esolangs> [[Talk:E++]] https://esolangs.org/w/index.php?diff=166877&oldid=166876 * Esolangist * (+81) /* Who made this? */ new section
10:10:59 <esolangs> [[Talk:E++]] https://esolangs.org/w/index.php?diff=166878&oldid=166877 * Esolangist * (+92) /* Who made this? */
10:13:33 <esolangs> [[Special:Log/upload]] upload * RaiseAfloppaFan3925 * uploaded "[[File:Dango Language Logo.png]]": L
10:56:01 -!- tromp has joined.
11:38:55 -!- Lord_of_Life has quit (Ping timeout: 240 seconds).
11:38:58 -!- Lord_of_Life_ has joined.
11:40:19 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
11:41:54 <esolangs> [[File talk:Dango Language Logo.png]] N https://esolangs.org/w/index.php?oldid=166880 * I am islptng * (+140) Created page with "isn't that TurboWarp's thing without eyes...? ~~~~"
11:52:55 <esolangs> [[( )]] https://esolangs.org/w/index.php?diff=166881&oldid=145379 * Yayimhere2(school) * (-120) /* examples */
12:07:52 -!- amby has joined.
12:11:52 <esolangs> [[File talk:Dango Language Logo.png]] https://esolangs.org/w/index.php?diff=166882&oldid=166880 * RaiseAfloppaFan3925 * (+395)
13:06:04 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
13:09:23 <esolangs> [[Dango]] M https://esolangs.org/w/index.php?diff=166883&oldid=166858 * RaiseAfloppaFan3925 * (+786) Fixed to match the actual implementation + preview of the new feature
13:25:24 <esolangs> [[User:Yayimhere]] https://esolangs.org/w/index.php?diff=166884&oldid=166719 * Yayimhere2(school) * (+17) /* ppl i like and dont like */
13:26:14 -!- tromp has joined.
15:00:10 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
15:29:37 -!- tromp has joined.
15:45:04 <esolangs> [[Gora]] M https://esolangs.org/w/index.php?diff=166885&oldid=166814 * Ractangle * (-6) /* Syntax */
16:26:58 <esolangs> [[Orca]] https://esolangs.org/w/index.php?diff=166886&oldid=91417 * Neauoire * (-2) /* External resources */
16:28:33 <esolangs> [[Orca]] M https://esolangs.org/w/index.php?diff=166887&oldid=166886 * Neauoire * (+169) /* Sample programs */
16:29:35 <esolangs> [[Orca]] M https://esolangs.org/w/index.php?diff=166888&oldid=166887 * Neauoire * (+69) /* FizzBuzz */
16:32:42 <esolangs> [[Uxntal]] https://esolangs.org/w/index.php?diff=166889&oldid=134322 * Neauoire * (+756) Added link to reference implementation
16:33:33 <esolangs> [[Uxntal]] M https://esolangs.org/w/index.php?diff=166890&oldid=166889 * Neauoire * (+390) /* Examples */
16:36:35 <esolangs> [[Uxntal]] M https://esolangs.org/w/index.php?diff=166891&oldid=166890 * Neauoire * (+1568) /* Examples */
16:37:05 <esolangs> [[Uxntal]] M https://esolangs.org/w/index.php?diff=166892&oldid=166891 * Neauoire * (-713)
16:37:58 <esolangs> [[Orca]] M https://esolangs.org/w/index.php?diff=166893&oldid=166888 * Neauoire * (+7) /* External resources */
16:39:00 <esolangs> [[Uxntal]] M https://esolangs.org/w/index.php?diff=166894&oldid=166892 * Neauoire * (+73)
16:39:39 <esolangs> [[Uxntal]] M https://esolangs.org/w/index.php?diff=166895&oldid=166894 * Neauoire * (-4) /* Factorial */
17:10:18 -!- vista_user has joined.
17:10:27 -!- vista_user has changed hostmask to ~vista_use@user/DOS-User:11249.
17:27:59 <esolangs> [[Talk:Crypten]] https://esolangs.org/w/index.php?diff=166896&oldid=166854 * * (+204)
17:28:13 <esolangs> [[Talk:Crypten]] M https://esolangs.org/w/index.php?diff=166897&oldid=166896 * * (+1)
17:29:38 <esolangs> [[User talk:Ractangle]] https://esolangs.org/w/index.php?diff=166898&oldid=166851 * * (+162)
17:30:09 -!- vista_user has changed nick to win_recall.
17:31:43 <esolangs> [[Dango]] M https://esolangs.org/w/index.php?diff=166899&oldid=166883 * RaiseAfloppaFan3925 * (+25) I thought it was already here
17:41:15 -!- win_recall has quit (Ping timeout: 250 seconds).
18:04:33 <esolangs> [[Fusion Tag]] https://esolangs.org/w/index.php?diff=166900&oldid=163878 * Gapples2 * (+4009) tc proof, may be a little confusing but i've already spent too much time writing and revising it and i just need to publish it
18:27:24 <esolangs> [[]] N https://esolangs.org/w/index.php?oldid=166901 * * (+983) Created page with "'''''' ''(pronounced '''Vesta''')'' is a tree-based esolang made by ~~~. Before a program has been run, the tree has one node, 0:0. The pointer starts at 0:0. Any point on the tree is defined as [generation]:[ordinal]. For example, say that there is a tree defined as such: @
18:50:30 <esolangs> [[Ilo nanpa sitelen]] https://esolangs.org/w/index.php?diff=166902&oldid=149447 * EvyLah * (-379) Replaced content with "abandoned as of 2025/10/29"
18:52:05 <esolangs> [[Talk:Crypten]] https://esolangs.org/w/index.php?diff=166903&oldid=166897 * Aadenboy * (+540) /* encoding */ asking for further clarificaiton
18:53:49 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
19:00:26 <esolangs> [[Crypten]] https://esolangs.org/w/index.php?diff=166904&oldid=166628 * Aadenboy * (+149) add interpreter, assuming little-endian ordering
19:00:59 <esolangs> [[User:Aadenboy]] https://esolangs.org/w/index.php?diff=166905&oldid=166838 * Aadenboy * (+14) /* interpreters */ list [[Crypten]]
19:02:28 <esolangs> [[Special:Log/newusers]] create * CharmTheDev * New user account
19:03:18 -!- tromp has joined.
19:04:12 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=166906&oldid=166871 * CharmTheDev * (+172) /* Introductions */
19:08:11 <esolangs> [[Unary]] https://esolangs.org/w/index.php?diff=166907&oldid=135051 * CharmTheDev * (+57)
19:09:06 <esolangs> [[Unary]] https://esolangs.org/w/index.php?diff=166908&oldid=166907 * CharmTheDev * (+0)
19:40:15 <esolangs> [[Uxntal]] M https://esolangs.org/w/index.php?diff=166909&oldid=166895 * Neauoire * (-49) /* Fizzbuzz */
19:44:57 <esolangs> [[Fat pointer]] M https://esolangs.org/w/index.php?diff=166910&oldid=166657 * Corbin * (+192) Also called "big pointers" by e.g. Alan Kay.
20:15:36 <esolangs> [[Special:Log/newusers]] create * As * New user account
20:16:00 <esolangs> [[Object-oriented paradigm]] https://esolangs.org/w/index.php?diff=166911&oldid=72733 * Corbin * (+3080) Rewrite. I should be capitalizing The Network, since it's a particular idealized setup that just happens to line up nicely with actual physical networks, but many folks are hostile towards the reality of The Network, so I won't.
20:29:25 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=166912&oldid=166906 * As * (+191)
20:29:47 <esolangs> [[Object-oriented paradigm]] https://esolangs.org/w/index.php?diff=166913&oldid=166911 * Corbin * (+589) /* History */ Add a paragraph on the liballocs/Smalltix way of doing things. Not adding a link to Vixen yet.
20:32:20 <esolangs> [[User:As]] N https://esolangs.org/w/index.php?oldid=166914 * As * (+91) Created page with "By the way, my nickname is in honor of arsenic. I don't know what else to say about myself."
20:37:02 <esolangs> [[Baba Is You]] M https://esolangs.org/w/index.php?diff=166915&oldid=117893 * Corbin * (-62) Fix categories; Baba's a CA, actually. There's no encapsulation, but there are cells and updates are done globally by discrete iteration of a fixed ruleset. Also do some grammar and bluelinks.
20:40:16 <esolangs> [[Game of Life]] M https://esolangs.org/w/index.php?diff=166916&oldid=158564 * Corbin * (+10) Fix grammar in first sentence. Parentheses are acceptable but the house style is increasingly to just list off the synonyms without hesitation or reservations. I don't think there will be any question about Conway's association with GoL.
20:42:57 <esolangs> [[John Horton Conway]] M https://esolangs.org/w/index.php?diff=166917&oldid=71277 * Corbin * (+0) If y'all really insist on using "was" then I'm going to re-conjugate the auxiliary verbs too. It is so silly to do this for those who are no longer able to do mathematics; confront the actual situation rather than asking existence to vary with spacetime.