00:16:27 <int-e> `learn The password of the month is a red herring.
00:16:32 <HackEso> Relearned 'password': The password of the month is a red herring.
00:23:26 <int-e> (I was tempted to go with "OH SNAP" but it doesn't feel funny, certainly won't be funny if it's still relevant at the end of the month.)
00:25:38 <Sgeo_> When using the IBM 305 RAMAC with the general purpose process control panel and constants on track Z, the follow instruction jumps to 187: Z38-99017
00:27:06 <Sgeo_> It's explain as jumping to htu being Z(h+2)t -99 01 u
00:27:12 <int-e> Sgeo_: That seems to be incredibly useful information, but I don't know for whom.
00:28:08 <Sgeo_> People writing software to run on a currently non-existent 305 RAMAC emulator?
00:28:09 <int-e> (and to be clear, that's not a complaint)
00:28:44 <Sgeo_> https://archive.org/details/the-ibm-305-ramac-general-purpose-process-control-panel
00:28:57 <Sgeo_> I need to reread the main documentation about selectors
00:32:29 <Sgeo_> I... don't remember track addresses having second or third digits being letters
00:39:15 -!- simcop2387_ has joined.
00:40:15 -!- perlbot_ has joined.
00:44:47 -!- perlbot has quit (*.net *.split).
00:44:47 -!- simcop2387 has quit (*.net *.split).
00:44:47 -!- Everything has quit (*.net *.split).
00:44:47 -!- sftp has quit (*.net *.split).
00:44:48 -!- perlbot_ has changed nick to perlbot.
00:44:48 -!- simcop2387_ has changed nick to simcop2387.
00:50:42 <esolangs> [[Special:Log/newusers]] create * KlausEverWalkingDev * New user account
00:50:59 -!- sftp has joined.
00:50:59 -!- Everything has joined.
00:51:05 -!- sftp has changed hostmask to ~sftp@user/sftp.
00:52:36 -!- mynery has joined.
00:53:31 -!- lynndotpy6093 has joined.
00:56:49 -!- myname has quit (Ping timeout: 256 seconds).
00:56:49 -!- lynndotpy609 has quit (Ping timeout: 256 seconds).
00:56:51 -!- lynndotpy6093 has changed nick to lynndotpy609.
01:05:23 <b_jonas> fizzie: %#e woudl hvae been a possibility if they wanted flags
01:23:02 -!- ais523 has joined.
01:38:12 * Sgeo_ was a bit confused by this: Instruction number is not address. The instructions are all 10 characters, and it's pretty easy to go back and forth between drum (memory) address and instruction number, but they're not the same. Was confused why it was possible to jump to a non-0 ones digit
01:40:56 <esolangs> [[Synonyms for smelly]] N https://esolangs.org/w/index.php?oldid=167028 * RainbowDash * (+1580) this is a joke page, with intentionally bad writing
01:42:45 <esolangs> [[User:RainbowDash]] M https://esolangs.org/w/index.php?diff=167029&oldid=165869 * RainbowDash * (+66)
02:00:10 -!- sprock has quit (Ping timeout: 246 seconds).
02:27:52 -!- Everything has quit (Remote host closed the connection).
02:50:48 -!- lisbeths has joined.
03:33:00 <esolangs> [[You make the esolang]] https://esolangs.org/w/index.php?diff=167030&oldid=167012 * PrySigneToFry * (-2)
03:35:57 <esolangs> [[You make the esolang]] https://esolangs.org/w/index.php?diff=167031&oldid=167030 * PrySigneToFry * (+382) As I'm the first contributor to the commands, I wish I can having a bigger character limit.
03:40:03 <esolangs> [[2024]] https://esolangs.org/w/index.php?diff=167032&oldid=149148 * PrySigneToFry * (-51)
03:44:22 -!- pool has quit (Read error: Connection reset by peer).
03:45:01 <esolangs> [[Talk:0 bytes XD]] https://esolangs.org/w/index.php?diff=167033&oldid=137883 * PrySigneToFry * (+82)
03:46:28 -!- pool has joined.
03:48:00 <esolangs> [[Non-Plushie-complete]] https://esolangs.org/w/index.php?diff=167034&oldid=154849 * PrySigneToFry * (+3)
04:09:36 <esolangs> [[User:Tommyaweosme]] https://esolangs.org/w/index.php?diff=167035&oldid=166980 * Tommyaweosme * (+86)
04:10:46 <esolangs> [[User:Tommyaweosme]] https://esolangs.org/w/index.php?diff=167036&oldid=167035 * Tommyaweosme * (+29)
04:19:12 -!- Lord_of_Life has quit (Ping timeout: 252 seconds).
04:21:38 -!- Lord_of_Life has joined.
04:37:44 <esolangs> [[FUnctional staCK]] M https://esolangs.org/w/index.php?diff=167037&oldid=166711 * CatCatDeluxe * (-6) My 'reversing the stack' code was just completely wrong!! oops anyways the actual code is more complicated so just changed it to clearing the stack instead
04:56:36 <esolangs> [[User:Yayimhere2(school)/common.css]] N https://esolangs.org/w/index.php?oldid=167038 * Yayimhere2(school) * (+94) Created page with "* {background-color:black !important; color:whitesmoke !important;} a {color:lime !important;}"
04:57:32 <esolangs> [[User:Yayimhere]] https://esolangs.org/w/index.php?diff=167039&oldid=166884 * Yayimhere2(school) * (+58) /* things about me */
05:16:22 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=167040&oldid=166930 * Yayimhere2(school) * (+78)
05:18:37 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=167041&oldid=167040 * Yayimhere2(school) * (+39) /* (Surprisingly enough) a short list of examples */
05:28:49 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=167042&oldid=167041 * Yayimhere2(school) * (+514)
05:29:34 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=167043&oldid=167042 * Yayimhere2(school) * (+13) /* One token per line */
05:29:34 -!- slavfox has quit (Quit: ZNC 1.8.2 - https://znc.in).
05:32:43 -!- slavfox has joined.
05:44:55 <esolangs> [[Underflow]] https://esolangs.org/w/index.php?diff=167044&oldid=166839 * Yayimhere2(school) * (+138) /* Commands */
05:45:53 <esolangs> [[Underflow]] https://esolangs.org/w/index.php?diff=167045&oldid=167044 * Yayimhere2(school) * (+137) /* Commands */
05:53:14 <esolangs> [[Talk:Underload]] https://esolangs.org/w/index.php?diff=167046&oldid=156932 * Yayimhere2(school) * (+311)
05:53:45 <esolangs> [[User:Yayimhere2(school)/common.css]] https://esolangs.org/w/index.php?diff=167047&oldid=167038 * Yayimhere2(school) * (-94) Blanked the page
05:58:22 <esolangs> [[Underflow]] https://esolangs.org/w/index.php?diff=167048&oldid=167045 * Yayimhere2(school) * (+149) /* Commands */
05:59:16 <esolangs> [[Underflow]] https://esolangs.org/w/index.php?diff=167049&oldid=167048 * Yayimhere2(school) * (+0) /* Commands */
06:02:14 <esolangs> [[Underflow]] https://esolangs.org/w/index.php?diff=167050&oldid=167049 * Yayimhere2(school) * (+75) /* Commands */
06:02:30 <esolangs> [[Underflow]] https://esolangs.org/w/index.php?diff=167051&oldid=167050 * Yayimhere2(school) * (+35) /* Commands */
06:09:37 <esolangs> [[Underflow]] https://esolangs.org/w/index.php?diff=167052&oldid=167051 * Yayimhere2(school) * (+162) /* Commands */
06:11:50 <esolangs> [[Underflow]] https://esolangs.org/w/index.php?diff=167053&oldid=167052 * Yayimhere2(school) * (-42) /* Commands */
06:15:25 -!- Hooloovoo has changed nick to Hoolooboo.
06:23:21 <esolangs> [[Underflow]] https://esolangs.org/w/index.php?diff=167054&oldid=167053 * Yayimhere2(school) * (+665)
06:28:00 <esolangs> [[User:RaiseAfloppaFan3925]] M https://esolangs.org/w/index.php?diff=167055&oldid=166989 * RaiseAfloppaFan3925 * (+120)
06:36:12 <esolangs> [[Talk:Underload]] https://esolangs.org/w/index.php?diff=167056&oldid=167046 * Ais523 * (+639) /* Etymology? */ the etymology
06:37:50 <esolangs> [[Talk:Mlatu]] M https://esolangs.org/w/index.php?diff=167057&oldid=157216 * Ais523 * (+17) the double square brackets in the table aren't supposed to be a link
06:39:08 <esolangs> [[Underflow]] https://esolangs.org/w/index.php?diff=167058&oldid=167054 * Yayimhere2(school) * (-52)
06:44:39 -!- Sgeo_ has quit (Read error: Connection reset by peer).
06:45:21 <esolangs> [[Underflow]] https://esolangs.org/w/index.php?diff=167059&oldid=167058 * Yayimhere2(school) * (+200) /* Underload to Underflow */
06:46:29 -!- Sgeo has joined.
06:51:05 <esolangs> [[Underflow]] https://esolangs.org/w/index.php?diff=167060&oldid=167059 * Yayimhere2(school) * (+24) /* Commands */
06:58:06 <esolangs> [[User:RaiseAfloppaFan3925/common.css]] N https://esolangs.org/w/index.php?oldid=167061 * RaiseAfloppaFan3925 * (+255) Created page with "/* gruvbox to CSS */ * { background-color: #3c3836 !important; color: #ebdbb2 !important; } a { color: #b8bb26 !important; } pre, textarea { background-color: #282828 !important; } .mw-body { background-colo
06:58:18 <esolangs> [[Underflow]] https://esolangs.org/w/index.php?diff=167062&oldid=167060 * Yayimhere2(school) * (+0) /* Commands */
06:58:29 <esolangs> [[Underflow]] https://esolangs.org/w/index.php?diff=167063&oldid=167062 * Yayimhere2(school) * (+1) /* Examples */
06:59:09 <esolangs> [[Unlambda to Underflow]] N https://esolangs.org/w/index.php?oldid=167064 * Yayimhere2(school) * (+1514) Created page with "'''Unlambda to Underflow''' is a fun little experiment, translating [[Unlambda]] into Underflow(using the [[Underload]] translation table) == Translation == All the same properties of the Underload translation(both from Unlambda to underload and
07:01:04 <esolangs> [[Unlambda to Underflow]] https://esolangs.org/w/index.php?diff=167065&oldid=167064 * Yayimhere2(school) * (+243) /* Translation */
07:05:55 <esolangs> [[Pteryx]] N https://esolangs.org/w/index.php?oldid=167066 * PrySigneToFry * (+6991) Created page with "Pteryx is designed by PSTF. In some language (in my memory, it was Ancient Greek), "Pteryx" means wings. The reason it was named '''''Pteryx''''' is because I hoped it could be as powerful as a lion(or tiger, as I'm Chinese) with wings. Although it is still in th
07:06:42 <esolangs> [[Underflow]] https://esolangs.org/w/index.php?diff=167067&oldid=167063 * Yayimhere2(school) * (+202) /* Underload to Underflow */
07:14:12 -!- Lord_of_Life has quit (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine).
07:15:59 <esolangs> [[Language list]] https://esolangs.org/w/index.php?diff=167068&oldid=166983 * PrySigneToFry * (+13)
07:16:36 <esolangs> [[User:RaiseAfloppaFan3925/common.css]] https://esolangs.org/w/index.php?diff=167069&oldid=167061 * RaiseAfloppaFan3925 * (-9) fixed weird inconsistencies/errors
07:16:54 <esolangs> [[Underflow]] https://esolangs.org/w/index.php?diff=167070&oldid=167067 * Yayimhere2(school) * (+63) /* Underload to Underflow */
07:21:30 <esolangs> [[Underflow]] https://esolangs.org/w/index.php?diff=167071&oldid=167070 * Yayimhere2(school) * (+180) /* Underload to Underflow */
07:23:17 -!- sprock has joined.
07:26:16 <esolangs> [[Underflow]] https://esolangs.org/w/index.php?diff=167072&oldid=167071 * Yayimhere2(school) * (+92) /* Commands */
07:30:40 <esolangs> [[Underflow]] https://esolangs.org/w/index.php?diff=167073&oldid=167072 * Yayimhere2(school) * (-180)
07:33:50 -!- Lord_of_Life has joined.
07:33:55 <esolangs> [[Lalala]] https://esolangs.org/w/index.php?diff=167074&oldid=166404 * Yayimhere2(school) * (+10) /* syntax */
07:36:12 <esolangs> [[Lalala]] https://esolangs.org/w/index.php?diff=167075&oldid=167074 * Yayimhere2(school) * (+0) /* computational class */
07:40:25 <esolangs> [[0134]] https://esolangs.org/w/index.php?diff=167076&oldid=166556 * Yayimhere2(school) * (+21) /* computational class */
07:57:25 -!- tromp has joined.
08:09:55 <esolangs> [[Underflow]] https://esolangs.org/w/index.php?diff=167077&oldid=167073 * Yayimhere2(school) * (+74)
08:10:10 <esolangs> [[Underflow]] https://esolangs.org/w/index.php?diff=167078&oldid=167077 * Yayimhere2(school) * (+0) /* See also */
08:18:05 <esolangs> [[BUT]] https://esolangs.org/w/index.php?diff=167079&oldid=165036 * Yayimhere2(school) * (-5)
08:18:57 <esolangs> [[BUT]] https://esolangs.org/w/index.php?diff=167080&oldid=167079 * Yayimhere2(school) * (+6) /* commands */
08:19:35 <esolangs> [[BUT]] https://esolangs.org/w/index.php?diff=167081&oldid=167080 * Yayimhere2(school) * (+6) /* commands */
08:20:26 <esolangs> [[BUT]] https://esolangs.org/w/index.php?diff=167082&oldid=167081 * Yayimhere2(school) * (+11) /* commands */
08:24:23 <esolangs> [[BUT]] https://esolangs.org/w/index.php?diff=167083&oldid=167082 * Yayimhere2(school) * (+169) /* commands */
08:40:35 <esolangs> [[;;;]] https://esolangs.org/w/index.php?diff=167084&oldid=156887 * Yayimhere2(school) * (+33) /* syntax */
08:45:31 <b_jonas> I had a bad dream where an old BASIC interpreter had integer types that couldn't take all values from -32768..32767 inclusive, but only had a range of something like -30720..30719 inclusive and raised an overflow error outside that
08:46:25 <esolangs> [[BUT]] https://esolangs.org/w/index.php?diff=167085&oldid=167083 * Yayimhere2(school) * (-304) /* commands */
08:46:37 <b_jonas> not that it matters because the answer is the same as with a full range: if you want a large range you use floating-point variables.
09:20:04 -!- lisbeths has quit (Quit: Connection closed for inactivity).
09:27:32 -!- lisbeths has joined.
09:35:48 <lisbeths> korvo: another better implementation of reader macros in posix shell so you can change the syntax of the shell
09:35:50 <lisbeths> awk_macro_vm(){ awk -v ci="$1" 'BEGIN{r[0]=0;r[1]=1;r[x]=1;ic=1;while(r[x]){x=substr(ci,ic,1);y=substr(ci,ic+1,1);z=substr(ci,ic+2,1);if(z == "-"){r[x]-=r[y]}; else if(z == "<"){r[x]=r[x]<r[y]}; else if(z == "m"){r[y]=r[x]}; else if(z == "$"){r[x]=system(r[y])}; else if(z == "r"){r[x]=r[r[y]]}; else if(z == "w"){r[r[y]] = r[x]}; else if(z == "i"){getline r[x]}; else if(z == "o"){printf "%s", r[x]}; else if(z == "+"){r[x]=r[x]
09:35:50 <lisbeths> r[y]}; else if(z == "c"){r[x] = sprintf("%c", r[y])}; else if(z == "#"){r[x] = ord(r[y])}; else if(z == "s"){r[x]=substr(r[x],r[y],1)};else if(z == "x"){ic=-2;ci=r[x]}; ic+=3};};';};
09:36:35 -!- Sgeo has quit (Read error: Connection reset by peer).
09:42:59 -!- lisbeths has quit.
10:50:34 <esolangs> [[Rock paper scissors]] https://esolangs.org/w/index.php?diff=167086&oldid=135685 * Yayimhere2(school) * (+0) /* other */
10:51:25 <esolangs> [[95-98]] https://esolangs.org/w/index.php?diff=167087&oldid=166612 * Yayimhere2(school) * (+24) dumb joke
10:53:33 <esolangs> [[95-98]] https://esolangs.org/w/index.php?diff=167088&oldid=167087 * Yayimhere2(school) * (+13)
10:54:33 <esolangs> [[Talk:95-98]] https://esolangs.org/w/index.php?diff=167089&oldid=166613 * Yayimhere2(school) * (+156)
10:58:19 <esolangs> [[(*U]] https://esolangs.org/w/index.php?diff=167090&oldid=145677 * Yayimhere2(school) * (-9984) /* examples */
10:59:20 <esolangs> [[,(*+)]] https://esolangs.org/w/index.php?diff=167091&oldid=147271 * Yayimhere2(school) * (-18) /* Underload */
11:00:24 <esolangs> [[,(*+)]] https://esolangs.org/w/index.php?diff=167092&oldid=167091 * Yayimhere2(school) * (-539)
11:00:59 -!- Yayimhere has joined.
11:01:27 <ais523> Yayimhere: I answered your question about Underload's name
11:02:07 <Yayimhere> is it still tc if (x) pushes (x) not just x
11:03:00 <ais523> Yayimhere: so writing (x)^^^^^^ would be equivalent to just writing (x)?
11:03:11 <ais523> how does * work in this version?
11:03:48 <Yayimhere> here it would be the underload subset ()^:
11:04:44 <Yayimhere> since you can never run what is within ()
11:05:32 <ais523> right, if * doesn't interact with () you have no way to ever see the inside of a ()
11:05:42 <Yayimhere> if (x) pushes (x) but also runs x immeaditly
11:06:38 <ais523> OK I can't immediately figure that one out
11:07:10 <Yayimhere> thats actually quite the interesting puzzle lol
11:07:25 <ais523> it's quite similar to "(x) pushes x but also runs x immediately" because ! exists
11:07:34 <ais523> although, I haven't come up with a direct correspondence yet
11:09:24 <esolangs> [[RusLang]] N https://esolangs.org/w/index.php?oldid=167093 * Esoboring ideas * (+3034) Created page with "RusLang is an [[esoteric programming language]] for having no latin letters the letters are cylirric (functions are an exception) it was created by me for my sister (i am ~~~~) ==Description== ===Original=== RusLang 4-! 3 :, . ,..."
11:09:33 <esolangs> [[Talk:Underload]] https://esolangs.org/w/index.php?diff=167094&oldid=167056 * Yayimhere2(school) * (+21) /* Etymology? */
11:09:39 <esolangs> [[Talk:Underload]] https://esolangs.org/w/index.php?diff=167095&oldid=167094 * Yayimhere2(school) * (+118) /* Etymology? */
11:10:34 <Yayimhere> in the esolang ive made, and am trying to prove tc, always does ^, unless its a copy command
11:13:29 <esolangs> [[RusLang]] https://esolangs.org/w/index.php?diff=167096&oldid=167093 * Esoboring ideas * (+206)
11:20:00 <esolangs> [[,(*+)]] https://esolangs.org/w/index.php?diff=167097&oldid=167092 * Yayimhere2(school) * (+138)
11:20:40 <esolangs> [[,(*+)]] https://esolangs.org/w/index.php?diff=167098&oldid=167097 * Yayimhere2(school) * (-2)
11:20:59 <esolangs> [[,(*+)]] https://esolangs.org/w/index.php?diff=167099&oldid=167098 * Yayimhere2(school) * (+21)
11:23:42 <esolangs> [[RusLang]] https://esolangs.org/w/index.php?diff=167100&oldid=167096 * Ais523 * (-81) do not hide the User: on links to userspace
11:38:04 <Yayimhere> is there a way to push a single ( to the stack in underlay?
11:44:55 -!- pool has quit (Read error: Connection reset by peer).
11:46:57 -!- pool has joined.
11:47:22 <esolangs> [[,(*+)]] https://esolangs.org/w/index.php?diff=167101&oldid=167099 * Yayimhere2(school) * (-208)
11:51:34 <esolangs> [[,(*+)]] https://esolangs.org/w/index.php?diff=167102&oldid=167101 * Yayimhere2(school) * (+26)
11:54:14 <esolangs> [[,(*+)]] https://esolangs.org/w/index.php?diff=167103&oldid=167102 * Yayimhere2(school) * (-5)
11:56:43 <esolangs> [[RusLang]] https://esolangs.org/w/index.php?diff=167104&oldid=167100 * Esoboring ideas * (+881)
12:00:45 <esolangs> [[,(*+)]] https://esolangs.org/w/index.php?diff=167105&oldid=167103 * Yayimhere2(school) * (+147)
12:10:31 <esolangs> [[,(*+)]] https://esolangs.org/w/index.php?diff=167106&oldid=167105 * Yayimhere2(school) * (-10)
12:11:29 <esolangs> [[,(*+)]] https://esolangs.org/w/index.php?diff=167107&oldid=167106 * Yayimhere2(school) * (+104)
12:11:52 <esolangs> [[,(*+)]] https://esolangs.org/w/index.php?diff=167108&oldid=167107 * Yayimhere2(school) * (-11)
12:14:07 <esolangs> [[,(*+)]] https://esolangs.org/w/index.php?diff=167109&oldid=167108 * Yayimhere2(school) * (+34)
12:20:55 -!- Yayimhere has quit (Ping timeout: 250 seconds).
12:42:57 <esolangs> [[Pythonable RusLang]] N https://esolangs.org/w/index.php?oldid=167110 * Esoboring ideas * (+771) Created page with "Pythonable RusLang is a version of [[RusLang]] that can be easily turned in a python code ==warning== It is only the junior-medium dialect ==the syntax== ===The important rule=== The right side of an equal sign can have as many functions as someone wan
12:43:23 -!- Yayimhere has joined.
12:45:05 -!- pool has quit (Read error: Connection reset by peer).
12:45:33 <esolangs> [[RusLang]] https://esolangs.org/w/index.php?diff=167111&oldid=167104 * Esoboring ideas * (+22)
12:47:12 -!- pool has joined.
12:49:59 <esolangs> [[,(*+)]] https://esolangs.org/w/index.php?diff=167112&oldid=167109 * Yayimhere2(school) * (-33)
12:53:10 <Yayimhere> hey ais523, I was just wondering how the rewriting system was created? because im trying to make one myself, and im a little unsure on how to do it lol.
12:53:21 <ais523> which rewriting system?
12:54:10 <ais523> you mean the interpreter?
12:54:51 <Yayimhere> like the `(x)(y)~ -> (y)(x)` for example
12:55:15 <ais523> oh, that's fairly easy to do by hand
12:55:23 <ais523> for each command, you start by working out how much stack it uses
12:55:42 <ais523> write commands that generate that much stack using clearly different values
12:55:48 <ais523> write the command you're trying to demonstrate
12:55:59 <ais523> then interpret it in your head until you end up with a stack that doesn't execute any more
12:56:14 <ais523> for most concatenative languages this is very easy
12:56:25 <ais523> (you can construct languages where it's difficult but people normally don't)
12:56:30 <Yayimhere> i assume you can just use a stack pushing command to represent thee stack
12:58:36 <esolangs> [[,(*+)]] https://esolangs.org/w/index.php?diff=167113&oldid=167112 * Yayimhere2(school) * (-1)
12:58:39 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
12:59:31 <esolangs> [[Its random]] N https://esolangs.org/w/index.php?oldid=167114 * Esolangist * (+445) Created page with "Its random is a language by [[User:Esolangist]]. ==Commands== <pre>& - Does whatever it wants to.</pre> ==Examples== Quick note that all of these might not always work. ===[[Hello world]]=== <pre>&</pre> ===[[Cat program]]=== <pre>&</pre> ===[[Truth-machine]]=== <p
13:01:01 <Yayimhere> is it possible to do for a queue btw+
13:01:19 <esolangs> [[RusLang]] https://esolangs.org/w/index.php?diff=167115&oldid=167111 * Esoboring ideas * (+442)
13:01:41 <ais523> I guess you could maybe expand the notation for a queue? but it would look quite different
13:01:48 <esolangs> [[RusLang]] https://esolangs.org/w/index.php?diff=167116&oldid=167115 * Esoboring ideas * (+0)
13:02:09 <ais523> the way to think about it is that in stack-based languages, you can do things that run locally without the rest of the program mattering
13:02:25 <ais523> so you can say, in Underload, that (x)(y)~ is always equivalent to (y)(x)
13:02:35 <ais523> in queue-based languages, the contents of the queue always matter
13:02:56 <ais523> so local reasoning doesn't really work, except in trivial cases where you don't use the queue
13:03:33 <ais523> (in particular, commands that enqueue won't provide data to the command that comes after them unless the queue is empty)
13:03:49 <Yayimhere> * Yayimhere internally screaming for making her esolang queue based
13:04:06 <Yayimhere> I might actually just change it, cuz it makes the language so much harder use
13:08:57 -!- tromp has joined.
13:09:37 <esolangs> [[Dango]] https://esolangs.org/w/index.php?diff=167117&oldid=166899 * RaiseAfloppaFan3925 * (+1471) Dango 0.10.0 updates
13:13:17 <esolangs> [[You make the esolang]] M https://esolangs.org/w/index.php?diff=167118&oldid=167031 * Esolangist * (+1108)
13:15:34 <esolangs> [[User:Esolangist]] https://esolangs.org/w/index.php?diff=167119&oldid=167008 * Esolangist * (+18)
13:19:31 <esolangs> [[Chicken chicken chicken: chicken chicken]] M https://esolangs.org/w/index.php?diff=167120&oldid=163436 * None1 * (+1) /* Variables */ Fix counting mistake
13:33:52 <esolangs> [[Unlambda to Underflow]] https://esolangs.org/w/index.php?diff=167121&oldid=167065 * Yayimhere2(school) * (+10) /* Translation */
13:45:52 <esolangs> [[User:Esolangist/personal talk page]] https://esolangs.org/w/index.php?diff=167122&oldid=166947 * Esolangist * (+675)
13:47:34 <esolangs> [[Place]] https://esolangs.org/w/index.php?diff=167123&oldid=167009 * Esolangist * (+18)
13:52:59 -!- esolangist has joined.
13:57:53 <esolangs> [[User:RaiseAfloppaFan3925/Sandbox]] https://esolangs.org/w/index.php?diff=167124&oldid=166650 * RaiseAfloppaFan3925 * (+3883) RSI0
13:58:29 <esolangs> [[User:RaiseAfloppaFan3925/common.css]] https://esolangs.org/w/index.php?diff=167125&oldid=167069 * RaiseAfloppaFan3925 * (+6) Undo this because it doesn't look that good because I'm stupid and it makes a weird effect
13:59:14 <esolangs> [[Dango]] M https://esolangs.org/w/index.php?diff=167126&oldid=167117 * RaiseAfloppaFan3925 * (+8) sorry it's dango-esolang not dango
14:05:56 <esolangs> [[You make the esolang]] https://esolangs.org/w/index.php?diff=167127&oldid=167118 * PrySigneToFry * (+954)
14:06:26 <esolangist> it literally told me that someone edited my article
14:07:18 <esolangs> [[You make the esolang]] https://esolangs.org/w/index.php?diff=167128&oldid=167127 * PrySigneToFry * (+90) Adding Categories
14:08:08 <esolangs> [[User:RaiseAfloppaFan3925/Sandbox]] https://esolangs.org/w/index.php?diff=167129&oldid=167124 * Esolangist * (+437) /* RaiseAfloppaFan's Stupid Idea 0 */
14:11:40 <esolangs> [[User talk:Esolangist]] N https://esolangs.org/w/index.php?oldid=167130 * PrySigneToFry * (+229) Created page with "I am very happy to create a programming language with you! In my rating system, you would be given a score of 90. {{User:PrySigneToFry/Template:PoeticSignature|Time=2025111 22:11 }}"
14:11:49 -!- esolangist has quit (Quit: Client closed).
14:13:14 <esolangs> [[User talk:Esolangist]] https://esolangs.org/w/index.php?diff=167131&oldid=167130 * Esolangist * (+142)
14:17:28 <Yayimhere> is there a good method for reversing a translation? like if ive gone SKI -> smth else is there a semi easy/good way to make a smth -> SKI translation?
14:19:32 -!- esolangist has joined.
14:19:37 <ais523> usually no, unless the translation is simple
14:20:39 <ais523> if the translated-from and translated-to languages have different computational classes it's impossible
14:21:01 <ais523> if they're in the same class, then by definition it's possible, but in many cases it's very difficult
14:21:15 <ais523> e.g. it is much easier to translate brainfuck to Python than it is to translate Python to brainfuck
14:24:40 <esolangs> [[Free Esolang]] https://esolangs.org/w/index.php?diff=167132&oldid=164550 * Esolangist * (+216) /* Additions */
14:26:18 -!- esolangist has changed nick to Esolangist.
14:26:44 <esolangs> [[User:RaiseAfloppaFan3925/Sandbox]] https://esolangs.org/w/index.php?diff=167133&oldid=167129 * RaiseAfloppaFan3925 * (+669) /* RaiseAfloppaFan's Stupid Idea 0 */ Add a base feature to support more paradigms and commands
14:31:12 <esolangs> [[User:RaiseAfloppaFan3925/Sandbox]] https://esolangs.org/w/index.php?diff=167134&oldid=167133 * Esolangist * (+194) /* User:Esolangist */
14:31:56 <esolangs> [[User:RaiseAfloppaFan3925/Sandbox]] https://esolangs.org/w/index.php?diff=167135&oldid=167134 * Esolangist * (+112) /* Features (Base) */
14:33:17 <esolangs> [[User:RaiseAfloppaFan3925/Sandbox]] https://esolangs.org/w/index.php?diff=167136&oldid=167135 * Esolangist * (+2) /* User:Esolangist */
14:33:37 <esolangs> [[User:RaiseAfloppaFan3925/Sandbox]] M https://esolangs.org/w/index.php?diff=167137&oldid=167136 * RaiseAfloppaFan3925 * (+146) Move RSI0 to its own page
14:34:47 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0]] N https://esolangs.org/w/index.php?oldid=167138 * RaiseAfloppaFan3925 * (+4904) Move RSI0 to its own page
14:36:12 <esolangs> [[RSI0]] N https://esolangs.org/w/index.php?oldid=167139 * Esolangist * (+45) Redirected page to [[RaiseAfloppaFan's Stupid Idea 0]]
14:36:57 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0]] M https://esolangs.org/w/index.php?diff=167140&oldid=167138 * RaiseAfloppaFan3925 * (-26) Section stuff
14:37:05 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0]] https://esolangs.org/w/index.php?diff=167141&oldid=167140 * Esolangist * (-1) TINY tweak.
14:39:36 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0]] M https://esolangs.org/w/index.php?diff=167142&oldid=167141 * RaiseAfloppaFan3925 * (+653) Allow for other people's commands to become part of the base command set
14:41:12 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0]] https://esolangs.org/w/index.php?diff=167143&oldid=167142 * Esolangist * (+314) /* User:Esolangist */
14:41:58 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0]] https://esolangs.org/w/index.php?diff=167144&oldid=167143 * Esolangist * (+2) /* User:Esolangist */
14:43:56 <esolangs> [[Talk:RaiseAfloppaFan's Stupid Idea 0]] N https://esolangs.org/w/index.php?oldid=167145 * Esolangist * (+218) Created page with "==Float or no float?== Can the pointer float on nothing, like empty spaces are NOPs, or do you have to always be on a command? ~~~~"
14:44:55 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0]] https://esolangs.org/w/index.php?diff=167146&oldid=167144 * RaiseAfloppaFan3925 * (+150) Make two of [[User:Esolangist]]'s commands part of the base set
14:45:07 -!- pool has quit (Read error: Connection reset by peer).
14:45:13 <esolangs> [[SLet/navbar]] N https://esolangs.org/w/index.php?oldid=167147 * I am islptng * (+146) Created page with "<b><big> [[SLet (Old)|1]] | [[SLet (Old 2)|2]] | [[SLet (Old 3)|3]] | [[SLet|4]] | <span style="color:red;">5</span> | [[SletScript|6]] </big></b>"
14:45:42 <esolangs> [[SLet (Old)]] https://esolangs.org/w/index.php?diff=167148&oldid=152608 * I am islptng * (-42)
14:45:52 <esolangs> [[SLet (Old 2)]] https://esolangs.org/w/index.php?diff=167149&oldid=157826 * I am islptng * (-58)
14:46:01 <esolangs> [[SLet (Old 3)]] https://esolangs.org/w/index.php?diff=167150&oldid=152980 * I am islptng * (-52)
14:46:11 <esolangs> [[SLet]] https://esolangs.org/w/index.php?diff=167151&oldid=161993 * I am islptng * (-58)
14:46:22 <esolangs> [[SletScript]] https://esolangs.org/w/index.php?diff=167152&oldid=164982 * I am islptng * (-33)
14:47:16 -!- pool has joined.
14:48:25 <esolangs> [[Talk:RaiseAfloppaFan's Stupid Idea 0]] https://esolangs.org/w/index.php?diff=167153&oldid=167145 * RaiseAfloppaFan3925 * (+246)
14:51:41 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0]] M https://esolangs.org/w/index.php?diff=167154&oldid=167146 * RaiseAfloppaFan3925 * (+95) fixed minor issue with the heading thing
14:52:31 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0]] https://esolangs.org/w/index.php?diff=167155&oldid=167154 * Esolangist * (+198) /* User:Esolangist */
14:56:39 <esolangs> [[Talk:RaiseAfloppaFan's Stupid Idea 0]] https://esolangs.org/w/index.php?diff=167156&oldid=167153 * Esolangist * (+394) /* Float or no float? */
14:59:05 <esolangs> [[SLet/navbar]] https://esolangs.org/w/index.php?diff=167157&oldid=167147 * I am islptng * (+11)
15:00:54 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
15:01:39 -!- Esolangist has left.
15:01:44 -!- Esolangist has joined.
15:02:10 <esolangs> [[User talk:Esolangist]] https://esolangs.org/w/index.php?diff=167158&oldid=167131 * PrySigneToFry * (+281)
15:02:54 -!- tromp has joined.
15:08:14 <esolangs> [[User talk:PrySigneToFry]] https://esolangs.org/w/index.php?diff=167159&oldid=165844 * I am islptng * (+235) /* */
15:12:31 <esolangs> [[EternalGolf]] https://esolangs.org/w/index.php?diff=167160&oldid=157978 * Esolangist * (+11) Added myself
15:13:48 <HackEso> olist <https://www.giantitp.com/comics/oots1335.html>: shachaf oerjan Sgeo boily nortti b_jonas Noisytoot
15:26:06 <esolangs> [[EternalGolf]] https://esolangs.org/w/index.php?diff=167161&oldid=167160 * Esolangist * (+352) /* Basic area */
15:29:19 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
15:43:07 -!- Lord_of_Life has quit (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine).
15:44:39 -!- Lord_of_Life has joined.
15:45:16 -!- pool has quit (Read error: Connection reset by peer).
15:47:19 -!- pool has joined.
15:47:34 -!- Lord_of_Life has quit (Client Quit).
15:48:18 -!- Lord_of_Life has joined.
15:59:58 <esolangs> [[FAGI]] M https://esolangs.org/w/index.php?diff=167162&oldid=165095 * Lucaz37 * (-8)
16:01:06 <esolangs> [[Lucaz37]] N https://esolangs.org/w/index.php?oldid=167163 * Lucaz37 * (+4) Created page with "ello"
16:06:40 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0]] M https://esolangs.org/w/index.php?diff=167164&oldid=167155 * RaiseAfloppaFan3925 * (-4) /* Base commands */ Fixed naming inconsistency
16:20:28 <Yayimhere> Esolangist: I would, but im not sure how to better formalize my language
16:22:10 <esolangs> [[Special:Log/move]] move * Aadenboy * moved [[Lucaz37]] to [[User:Lucaz37]]: assuming this is meant to be in userspace
16:34:40 -!- june-o-lantern has quit.
16:38:44 <esolangs> [[Dango]] M https://esolangs.org/w/index.php?diff=167167&oldid=167126 * RaiseAfloppaFan3925 * (+122) fixed minor issues
16:39:04 <esolangs> [[Dango]] M https://esolangs.org/w/index.php?diff=167168&oldid=167167 * RaiseAfloppaFan3925 * (-141)
16:45:22 -!- pool has quit (Read error: Connection reset by peer).
16:47:29 -!- pool has joined.
16:48:44 -!- tromp has joined.
16:52:29 <esolangs> [[Special:Log/delete]] delete * Ais523 * deleted "[[User:Lucaz37]]": redirect left over after a page created in the wrong namespace was renamed to the correct namespace
16:52:56 <esolangs> [[Special:Log/delete]] restore * Ais523 * undeleted "[[User:Lucaz37]]": deleted the wrong page
16:53:20 <esolangs> [[Special:Log/delete]] delete * Ais523 * deleted "[[Lucaz37]]": redirect left over after a page created in the wrong namespace was renamed to the correct namespace
16:56:43 <Esolangist> why is the featured language on the wiki still this
16:57:06 <Yayimhere> dunno why they just wont change it
16:57:40 <ais523> it's like, the other admins came up with a process and then disappeared
16:57:54 <ais523> and it's hard for me to make selections fairly on my own
16:58:26 <ais523> in practice it's very rare for anyone else to take admin actions
16:58:37 -!- Esolangist has quit (Quit: Client closed).
16:58:52 -!- esolangist has joined.
17:06:10 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0]] https://esolangs.org/w/index.php?diff=167169&oldid=167164 * RaiseAfloppaFan3925 * (+649) "Hello, world!" program + 2 new commands
17:06:46 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
17:09:54 -!- Lord_of_Life has quit (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine).
17:11:30 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0]] M https://esolangs.org/w/index.php?diff=167170&oldid=167169 * RaiseAfloppaFan3925 * (+14) /* Base commands */ Re-organized top and made it reflect the new changes
17:12:37 -!- esolangist has quit (Quit: Client closed).
17:13:54 -!- Lord_of_Life has joined.
17:18:30 <esolangs> [[User:RaiseAfloppaFan3925]] M https://esolangs.org/w/index.php?diff=167171&oldid=167055 * RaiseAfloppaFan3925 * (+697)
17:23:50 -!- esolangist has joined.
17:29:14 <esolangs> [[User:RaiseAfloppaFan3925]] M https://esolangs.org/w/index.php?diff=167172&oldid=167171 * RaiseAfloppaFan3925 * (+445)
17:32:11 <esolangs> [[User:Esolangist]] https://esolangs.org/w/index.php?diff=167173&oldid=167119 * Esolangist * (+194)
17:32:25 <esolangs> [[User:RaiseAfloppaFan3925]] M https://esolangs.org/w/index.php?diff=167174&oldid=167172 * RaiseAfloppaFan3925 * (+0) /* "Hello, world!" in RaiseAfloppaFan's Stupid Idea 0 */ Corrected the program
17:37:24 -!- tromp has joined.
17:38:37 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0]] https://esolangs.org/w/index.php?diff=167175&oldid=167170 * Esolangist * (+454) /* User:Esolangist */
17:41:15 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0]] https://esolangs.org/w/index.php?diff=167176&oldid=167175 * RaiseAfloppaFan3925 * (-50) Changed hypnotization resistance stat to decrease faster
17:44:16 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0]] M https://esolangs.org/w/index.php?diff=167177&oldid=167176 * RaiseAfloppaFan3925 * (+91) Nerfed the two commands that made the most sense to nerf
17:45:25 -!- pool has quit (Read error: Connection reset by peer).
17:47:34 -!- pool has joined.
17:48:06 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0]] https://esolangs.org/w/index.php?diff=167178&oldid=167177 * Esolangist * (+881) /* User:Esolangist */
17:49:26 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0]] https://esolangs.org/w/index.php?diff=167179&oldid=167178 * Esolangist * (+81) /* User:Esolangist */
17:49:35 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0]] M https://esolangs.org/w/index.php?diff=167180&oldid=167179 * RaiseAfloppaFan3925 * (+209) /* Base Specification */ Added smaller "Hello, world!" example
17:50:32 <esolangs> [[Special:Log/newusers]] create * Michael Bianconi * New user account
17:52:57 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0]] https://esolangs.org/w/index.php?diff=167181&oldid=167180 * Esolangist * (+334) /* Hypnotization resistance */
17:53:03 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0]] M https://esolangs.org/w/index.php?diff=167182&oldid=167181 * RaiseAfloppaFan3925 * (+0) /* Base Specification */ Fixed conflict with a command from [[User:Esolangist]]
17:54:13 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=167183&oldid=167022 * Michael Bianconi * (+156)
17:55:50 -!- Sgeo has joined.
17:56:18 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0]] https://esolangs.org/w/index.php?diff=167184&oldid=167182 * Esolangist * (+2) Changed a command to avoid command conflicts
17:58:05 -!- esolangist has quit (Quit: Client closed).
17:58:29 -!- esolangist has joined.
18:00:22 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0]] https://esolangs.org/w/index.php?diff=167185&oldid=167184 * Esolangist * (+116) /* User:Esolangist */
18:03:15 -!- Yayimhere has quit (Ping timeout: 250 seconds).
18:04:49 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0]] M https://esolangs.org/w/index.php?diff=167186&oldid=167185 * RaiseAfloppaFan3925 * (+39) /* Hello, world! */ Added new example
18:08:44 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0]] https://esolangs.org/w/index.php?diff=167187&oldid=167186 * Esolangist * (+211)
18:13:27 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0]] M https://esolangs.org/w/index.php?diff=167188&oldid=167187 * RaiseAfloppaFan3925 * (+148) /* User:Esolangist's little chat corner */ Sure, just give me one moment
18:14:10 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0]] https://esolangs.org/w/index.php?diff=167189&oldid=167188 * Esolangist * (+54) /* User:Esolangist */
18:19:12 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0]] https://esolangs.org/w/index.php?diff=167190&oldid=167189 * Esolangist * (+224) /* User:Esolangist */
18:21:18 <esolangs> [[Talk:RaiseAfloppaFan's Stupid Idea 0]] https://esolangs.org/w/index.php?diff=167191&oldid=167156 * Esolangist * (+456) /* Turing-complete? */ new section
18:26:29 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0]] https://esolangs.org/w/index.php?diff=167192&oldid=167190 * Esolangist * (+116)
18:27:35 <esolangs> [[Talk:RaiseAfloppaFan's Stupid Idea 0]] https://esolangs.org/w/index.php?diff=167193&oldid=167191 * RaiseAfloppaFan3925 * (+350) /* Turing-complete? */ I was not expecting that AT ALL
18:29:54 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0]] https://esolangs.org/w/index.php?diff=167194&oldid=167192 * Esolangist * (+29) Added category
18:30:47 <esolangs> [[User:Esolangist]] https://esolangs.org/w/index.php?diff=167195&oldid=167173 * Esolangist * (+46)
18:34:14 -!- Yayimhere has joined.
18:35:36 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0]] https://esolangs.org/w/index.php?diff=167196&oldid=167194 * Esolangist * (+180) /* Hey here's some examples! */
18:37:53 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0]] https://esolangs.org/w/index.php?diff=167197&oldid=167196 * Esolangist * (+75) /* User:Esolangist */
18:40:47 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0]] https://esolangs.org/w/index.php?diff=167198&oldid=167197 * Esolangist * (+192) /* alternated */
18:42:01 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0]] https://esolangs.org/w/index.php?diff=167199&oldid=167198 * RaiseAfloppaFan3925 * (+1811) 4 new boring unoriginal commands + CJK category + Self-modifying category
18:43:31 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0]] M https://esolangs.org/w/index.php?diff=167200&oldid=167199 * RaiseAfloppaFan3925 * (+212) /* User:Esolangist's little chat corner */ yea im out of ideas
18:55:23 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0]] https://esolangs.org/w/index.php?diff=167201&oldid=167200 * Esolangist * (+793) /* User:Esolangist */
19:00:25 <esolangs> [[Baulk]] N https://esolangs.org/w/index.php?oldid=167202 * Yayimhere2(school) * (+2850) Created page with "'''Baulk''' was an attempt to by [[User:yayimhere]] create a functionally pure esolang, that does not place its basis within [[Lambda calculus]]. it came out to be a ''sort of'' string rewriting language, however the string rewriting is a lot more complex than
19:02:06 <Yayimhere> ais523: i have a last question for you. how would you do the stack notation thing in reverse?
19:02:19 <ais523> what are you reversing?
19:02:37 <Yayimhere> you know for example with the rewriting system of underload
19:02:49 <Yayimhere> if we just had the rewriting system, could we do it in reverse
19:03:09 <ais523> oh, the rewriting system is a way of defining a stack-based language
19:03:42 <ais523> because if it's done correctly, you can use it directly as a language interpreter, and then you can use the interpreter to define the language
19:04:15 <Yayimhere> but I had this: https://esolangs.org/wiki/Baulk and I wanted to make a stack based language from it:]
19:04:36 <ais523> that reminds me, I don't think I've seen a pure rewrite-rule-based definition of an esolang in ages
19:05:04 <esolangs> [[Baulk]] https://esolangs.org/w/index.php?diff=167203&oldid=167202 * Yayimhere2(school) * (+1) /* = Basic operation application */
19:05:44 <Yayimhere> i was tiree of working with lambda calculus I gueess
19:05:46 <ais523> hmm, this isn't pure stack-based
19:05:59 <ais523> ~ pushes to the *bottom* of the stack which you can't do with an normal stack
19:06:41 <Yayimhere> first in first out / last out I guess
19:06:52 <esolangist> question for baulk: does the *[x] = *[x x] mean that it infinitely duplicates like *2 > *22 > *2222?
19:07:01 <ais523> and commands like ` are usually hard to define precisely, because they mess with control flow – normally you run the next command in the program but if it's ` it gets stuck
19:07:11 <ais523> so presumably you have to run the next-but-one instead
19:07:25 <ais523> have you seen Unlambda? it has a d command that's very wimilar to baulk's `
19:07:47 <Yayimhere> although ive only read the ones used on underload
19:07:50 <ais523> but your IRC client is probably interpreting backquotes as code font; `does this appear in code font for you?`
19:08:04 <HackEso> cool`? No such file or directory
19:08:08 <ais523> OK, so this is going to make it awkward to send messages using backquotes as backquotes
19:08:41 <ais523> unlambda's c and d were both added primarily due to being hard to implement
19:08:59 <esolangist> maybe use % instead of ` so it doesn't turn into `code font`
19:09:16 <Yayimhere> i was trying to visually get objects that are up
19:09:20 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0]] M https://esolangs.org/w/index.php?diff=167204&oldid=167201 * RaiseAfloppaFan3925 * (+48)
19:09:34 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0]] M https://esolangs.org/w/index.php?diff=167205&oldid=167204 * RaiseAfloppaFan3925 * (-34) /* Base Commands */ oops
19:09:34 <Yayimhere> like ^ is up compared to the [] and ¯ is too
19:10:05 <Yayimhere> but yea d and ` are basically the same
19:10:26 -!- Hoolooboo has changed nick to Hooloovoo.
19:10:35 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0]] M https://esolangs.org/w/index.php?diff=167206&oldid=167205 * RaiseAfloppaFan3925 * (+224) /* User:Esolangist's little chat corner */
19:11:23 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0]] https://esolangs.org/w/index.php?diff=167207&oldid=167206 * Esolangist * (+155) /* User:Esolangist's little chat corner */
19:12:17 <Yayimhere> what is a first In last in ou called?
19:12:51 <ais523> a deque has pushes on both ends and pops from both ends
19:13:12 <Yayimhere> does this ever pop from the bottom?
19:13:33 <ais523> I use the three-operation structure (push on both ends but pop only from one) in Esimpl, where I call it a semideque
19:13:41 <ais523> but I think the technical name is "output-restricted deque"
19:14:01 <ais523> it's just that that name's too long to use regularly, so it helps to give a shorter name, right
19:14:49 <ais523> (this is also the most powerful data structure you can easily make with a singly-linked list, which might not be coincidence – Esimpl's designed to be easy to implement efficiently in low-powered languages and so it's not surprising that its main data structure is easy to implement)
19:16:44 <esolangs> [[,(*+)]] https://esolangs.org/w/index.php?diff=167208&oldid=167113 * Yayimhere2(school) * (+254)
19:18:13 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0]] https://esolangs.org/w/index.php?diff=167209&oldid=167207 * Esolangist * (+120) /* User:Esolangist's little chat corner */
19:19:51 -!- ais523 has quit (Quit: quit).
19:21:06 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0]] M https://esolangs.org/w/index.php?diff=167210&oldid=167209 * RaiseAfloppaFan3925 * (+0) /* Base Commands */ Fixed conflict
19:21:13 -!- esolangist has quit (Quit: Client closed).
19:21:30 -!- esolangist has joined.
19:23:54 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0]] M https://esolangs.org/w/index.php?diff=167211&oldid=167210 * RaiseAfloppaFan3925 * (-4) /* Base Commands */ Made it more practical :C
19:25:09 -!- Yayimhere has quit (Ping timeout: 250 seconds).
19:26:21 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0/Esolangist]] N https://esolangs.org/w/index.php?oldid=167212 * Esolangist * (+505) Created page with "so uhh welcome to my subpage also can concatenate stuff now New type unlocked! Char. It's just one character. Signified by, concatenating them makes a string. x = top value of current stack y = the one under that z = the one und
19:27:22 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0]] https://esolangs.org/w/index.php?diff=167213&oldid=167211 * Esolangist * (+84) /* User:Esolangist */
19:28:35 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0/Esolangist]] https://esolangs.org/w/index.php?diff=167214&oldid=167212 * Esolangist * (+37)
19:29:33 <esolangs> [[RSI0/Esolangist]] N https://esolangs.org/w/index.php?oldid=167215 * Esolangist * (+56) Redirected page to [[RaiseAfloppaFan's Stupid Idea 0/Esolangist]]
19:30:15 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0]] https://esolangs.org/w/index.php?diff=167216&oldid=167213 * Esolangist * (+141)
19:41:25 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0]] https://esolangs.org/w/index.php?diff=167217&oldid=167216 * RaiseAfloppaFan3925 * (+710) Added special conditional operation
19:42:52 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0]] https://esolangs.org/w/index.php?diff=167218&oldid=167217 * RaiseAfloppaFan3925 * (-174) /* Base Commands */ Removed obsolete <code>=[</code> and <code>]=</code> commands
19:43:29 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0]] https://esolangs.org/w/index.php?diff=167219&oldid=167218 * Esolangist * (+60) /* Truth machine */
19:52:01 -!- esolangist has quit (Ping timeout: 250 seconds).
19:55:01 -!- esolangist has joined.
19:56:32 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0]] https://esolangs.org/w/index.php?diff=167220&oldid=167219 * RaiseAfloppaFan3925 * (+24) Set [[User:Esolangist]] as co-owner of RSI0
19:57:21 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0/Esolangist]] https://esolangs.org/w/index.php?diff=167221&oldid=167214 * Esolangist alt * (+231) how do I summarise this
19:58:55 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0]] https://esolangs.org/w/index.php?diff=167222&oldid=167220 * Esolangist alt * (+73)
20:04:27 <esolangs> [[Talk:RaiseAfloppaFan's Stupid Idea 0]] https://esolangs.org/w/index.php?diff=167223&oldid=167193 * RaiseAfloppaFan3925 * (+395) BF to RSI0 translation
20:05:53 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0]] https://esolangs.org/w/index.php?diff=167224&oldid=167222 * RaiseAfloppaFan3925 * (+22) One last time.
20:07:34 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0]] M https://esolangs.org/w/index.php?diff=167225&oldid=167224 * RaiseAfloppaFan3925 * (-34) /* Base Commands */ Forgot to remove this
20:11:16 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0/Esolangist]] https://esolangs.org/w/index.php?diff=167226&oldid=167221 * Esolangist alt * (+251) Esolangist alt
20:13:41 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0]] https://esolangs.org/w/index.php?diff=167227&oldid=167225 * Esolangist alt * (-4) Edited code so it ACTUALLY WORKS
20:15:12 <esolangs> [[Talk:RaiseAfloppaFan's Stupid Idea 0]] https://esolangs.org/w/index.php?diff=167228&oldid=167223 * RaiseAfloppaFan3925 * (+257) /* Turing-complete? */ Correction + whatever you call this
20:16:42 <esolangs> [[Talk:RaiseAfloppaFan's Stupid Idea 0]] https://esolangs.org/w/index.php?diff=167229&oldid=167228 * Esolangist alt * (+147) /* Joke thread */ new section
20:32:18 <esolangs> [[Topple]] M https://esolangs.org/w/index.php?diff=167230&oldid=166961 * H33T33 * (+38)
20:32:33 <esolangs> [[Topple]] M https://esolangs.org/w/index.php?diff=167231&oldid=167230 * H33T33 * (-28)
20:35:34 -!- esolangist has quit (Quit: Client closed).
20:35:47 -!- Guest22 has joined.
20:36:17 -!- esolangist has joined.
20:38:54 <esolangs> [[Talk:RaiseAfloppaFan's Stupid Idea 0]] https://esolangs.org/w/index.php?diff=167232&oldid=167229 * RaiseAfloppaFan3925 * (+227)
20:40:41 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0]] https://esolangs.org/w/index.php?diff=167233&oldid=167227 * RaiseAfloppaFan3925 * (+267) Truth machine + XKCD random (translated)
20:42:07 <esolangs> [[Special:Log/move]] move * H33T33 * moved [[Topple/Source Code/Topple 1.0]] to [[Topple/Versions/Topple]]: Entirely reorganizing the Topple page
20:42:43 <esolangs> [[Special:Log/move]] move * H33T33 * moved [[Topple/Versions/Topple]] to [[Topple/Versions/Topple 1]]: Redesigning entirety of the Topple page
20:44:51 <esolangs> [[Special:Log/move]] move * H33T33 * moved [[Topple/Versions/Topple 1]] to [[Topple/Topple 1]]
20:49:47 <esolangs> [[Topple]] https://esolangs.org/w/index.php?diff=167240&oldid=167231 * H33T33 * (-4588)
20:50:52 <esolangs> [[Topple/Topple 1/Source]] N https://esolangs.org/w/index.php?oldid=167241 * H33T33 * (+7870) Created page with "=Topple 1 Source Code= <pre> #include <stdio.h> #include <string.h> #include <stdlib.h> #include <unistd.h> #include <time.h> #include <sys/time.h> #define MAX_SIZE 4097 // Max amount of vals, vars, etc. Currently the best way I know to do this. #defin
20:54:00 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0]] https://esolangs.org/w/index.php?diff=167242&oldid=167233 * RaiseAfloppaFan3925 * (+726) BF to RSI0 translation table
20:54:04 <esolangs> [[Topple/Topple 1]] https://esolangs.org/w/index.php?diff=167243&oldid=167238 * H33T33 * (-3840)
20:56:07 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0]] M https://esolangs.org/w/index.php?diff=167244&oldid=167242 * RaiseAfloppaFan3925 * (+130) fixed mistake + you could say that this reinforces TC
21:00:40 <esolangs> [[Topple/Topple 1]] https://esolangs.org/w/index.php?diff=167245&oldid=167243 * H33T33 * (+66)
21:01:04 <esolangs> [[Topple/Topple 1]] https://esolangs.org/w/index.php?diff=167246&oldid=167245 * H33T33 * (-9)
21:01:32 <esolangs> [[Topple/Topple 1/Source]] M https://esolangs.org/w/index.php?diff=167247&oldid=167241 * H33T33 * (+28)
21:02:59 <esolangs> [[User:RaiseAfloppaFan3925]] https://esolangs.org/w/index.php?diff=167248&oldid=167174 * RaiseAfloppaFan3925 * (+120) /* My languages */ Add RSI0
21:04:12 <esolangs> [[Topple/Topple 1.1]] N https://esolangs.org/w/index.php?oldid=167249 * H33T33 * (+1681) Created page with "[[Topple|Back]] ===Currently in Development=== =Major Changes= '''1. Data Type Specification''' When admitting data and defining variables, you must now specify the data type. If no type is given, the data is assumed to be a character. So now this: <pre> a. b.
21:04:51 <esolangs> [[Topple/Topple 1.1]] M https://esolangs.org/w/index.php?diff=167250&oldid=167249 * H33T33 * (+2)
21:06:09 <esolangs> [[Topple]] M https://esolangs.org/w/index.php?diff=167251&oldid=167240 * H33T33 * (+32)
21:07:54 <esolangs> [[Topple/Topple 1]] M https://esolangs.org/w/index.php?diff=167252&oldid=167246 * H33T33 * (+58)
21:08:20 <esolangs> [[Special:Log/move]] move * H33T33 * moved [[Topple/Topple 1/Source]] to [[Topple/Topple 1/Source (C99)]]
21:09:38 <esolangs> [[Topple/Source Code]] https://esolangs.org/w/index.php?diff=167255&oldid=165679 * H33T33 * (-2174) Blanked the page
21:10:32 <esolangs> [[Topple/Topple 1/Source (C99)]] M https://esolangs.org/w/index.php?diff=167256&oldid=167253 * H33T33 * (-23)
21:10:56 <esolangs> [[Topple/Topple 1]] M https://esolangs.org/w/index.php?diff=167257&oldid=167252 * H33T33 * (+12)
21:11:48 <esolangs> [[Topple/Topple 1.1]] M https://esolangs.org/w/index.php?diff=167258&oldid=167250 * H33T33 * (+39)
21:11:54 <esolangs> [[Topple/Topple 1.1]] M https://esolangs.org/w/index.php?diff=167259&oldid=167258 * H33T33 * (-1)
21:15:16 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0/Esolangist]] https://esolangs.org/w/index.php?diff=167260&oldid=167226 * Esolangist alt * (+381) Esolangist alt
21:17:46 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0]] https://esolangs.org/w/index.php?diff=167261&oldid=167244 * Esolangist alt * (-53) Esolangist alt
21:20:00 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0]] https://esolangs.org/w/index.php?diff=167262&oldid=167261 * Esolangist alt * (+36) Esolangist alt
21:30:38 -!- esolangist has quit (Quit: Client closed).
21:36:36 <esolangs> [[User:Hotcrystal0/List of users who are also on the TBG forums]] https://esolangs.org/w/index.php?diff=167263&oldid=156474 * Tommyaweosmalt * (+70) "You are welcome to help contribute."
21:43:49 -!- Guest22 has quit (Ping timeout: 250 seconds).
21:59:16 <esolangs> [[Esolang made with AI]] N https://esolangs.org/w/index.php?oldid=167264 * Esolangist alt * (+1908) Esolangist alt
22:12:55 <esolangs> [[User:Tommyaweosme]] https://esolangs.org/w/index.php?diff=167265&oldid=167036 * Tommyaweosme * (+42)
22:43:30 <esolangs> [[Esolang made with AI]] M https://esolangs.org/w/index.php?diff=167266&oldid=167264 * Corbin * (+30) Add the required category for this sort of thing.
22:44:59 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
23:00:33 <esolangs> [[Esolang made with AI]] M https://esolangs.org/w/index.php?diff=167267&oldid=167266 * Aadenboy * (-44) fix emoji
00:52:14 -!- lisbeths has joined.
00:57:10 -!- tromp has joined.
00:57:48 -!- tromp has quit (Client Quit).
01:14:12 -!- june-o-lantern has joined.
01:16:28 -!- june-o-lantern has changed nick to jgardner.
01:49:04 <esolangs> [[You make the esolang]] https://esolangs.org/w/index.php?diff=167268&oldid=167128 * PrySigneToFry * (-38) Correct the title format.
01:52:37 -!- pool has quit (Read error: Connection reset by peer).
01:54:51 -!- pool has joined.
02:17:19 <esolangs> [[Talk:6 trits, 243 trytes]] N https://esolangs.org/w/index.php?oldid=167269 * TheBigH * (+117) created page ig
03:01:06 -!- lisbeths has quit (Quit: Connection closed for inactivity).
03:05:02 -!- op_4 has quit (Remote host closed the connection).
03:05:32 -!- op_4 has joined.
03:57:25 <esolangs> [[Gur yvsr]] https://esolangs.org/w/index.php?diff=167270&oldid=166859 * Placeholding * (+368) changed a few commands
04:04:42 -!- Yayimhere has joined.
04:08:46 <esolangs> [[User:Yayimhere]] https://esolangs.org/w/index.php?diff=167271&oldid=167039 * Yayimhere2(school) * (+35)
04:12:48 <esolangs> [[User:Yayimhere]] https://esolangs.org/w/index.php?diff=167272&oldid=167271 * Yayimhere2(school) * (+12) /* esolangs */
04:19:38 -!- Lord_of_Life has quit (Ping timeout: 256 seconds).
04:20:04 <esolangs> [[Baulk]] https://esolangs.org/w/index.php?diff=167273&oldid=167203 * Yayimhere2(school) * (+260)
04:25:06 -!- ais523 has joined.
04:25:50 <esolangs> [[Hexagon says jump to line a if cell b is n and increment cell b by c if cell b equals d and output cell b is cell b equals e.]] M https://esolangs.org/w/index.php?diff=167274&oldid=153447 * PrySigneToFry * (+42)
04:52:58 -!- pool has quit (Read error: Connection reset by peer).
04:53:29 <Yayimhere> * Yayimhere has no idea how to respond
04:55:06 -!- pool has joined.
04:55:17 <esolangs> [[User:Yayimhere/Thoughts on burn]] N https://esolangs.org/w/index.php?oldid=167275 * Yayimhere2(school) * (+2983) Created page with "Ok, first of all, I'd like to note, that I think the result most likely is somewhere ''else''. as in, a burn program generates a separate string of data from processing itself. this seems likely, as burn seems like a 2d Von Neumann cel
04:56:01 <esolangs> [[User:Yayimhere]] https://esolangs.org/w/index.php?diff=167276&oldid=167272 * Yayimhere2(school) * (+70) /* things about me */
04:57:57 -!- Lord_of_Life has joined.
04:59:27 -!- Lord_of_Life has quit (Excess Flood).
05:06:26 <esolangs> [[,(*+)]] https://esolangs.org/w/index.php?diff=167277&oldid=167208 * Yayimhere2(school) * (-253)
05:16:33 <esolangs> [[User talk:Salpynx]] https://esolangs.org/w/index.php?diff=167278&oldid=128655 * Yayimhere2(school) * (+322)
05:17:56 <esolangs> [[,(*+)]] https://esolangs.org/w/index.php?diff=167279&oldid=167277 * Yayimhere2(school) * (+38)
05:19:46 -!- Lord_of_Life has joined.
05:22:20 <esolangs> [[,(*+)]] https://esolangs.org/w/index.php?diff=167280&oldid=167279 * Yayimhere2(school) * (+19)
05:22:55 <esolangs> [[,(*+)]] https://esolangs.org/w/index.php?diff=167281&oldid=167280 * Yayimhere2(school) * (-2) /* Programs */
05:23:38 -!- Lord_of_Life has quit (Client Quit).
05:38:21 <esolangs> [[,(*+)]] https://esolangs.org/w/index.php?diff=167282&oldid=167281 * Yayimhere2(school) * (+38)
05:40:24 <esolangs> [[,(*+)]] https://esolangs.org/w/index.php?diff=167283&oldid=167282 * Yayimhere2(school) * (+85)
06:04:29 <esolangs> [[,(*+)]] https://esolangs.org/w/index.php?diff=167284&oldid=167283 * Yayimhere2(school) * (+59)
06:06:19 <esolangs> [[B2B]] N https://esolangs.org/w/index.php?oldid=167285 * Yayimhere2(school) * (+963) Created page with "'''B2B''' is an esolang created by [[User:yayimhere]], while trying to prove [[,(*+)]] [[turing complete]]. It is a specific restriction on a [[Cyclic tag]], in which it allows one unbounded conditional production, and an unbounded number of unconditionals, as wel
06:09:11 -!- Lord_of_Life has joined.
06:13:19 <esolangs> [[Brugtiohell]] https://esolangs.org/w/index.php?diff=167286&oldid=166757 * Yayimhere2(school) * (+19)
06:13:54 -!- Lord_of_Life has quit (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine).
06:16:42 -!- Lord_of_Life has joined.
06:19:41 <esolangs> [[,(*+)]] https://esolangs.org/w/index.php?diff=167287&oldid=167284 * Yayimhere2(school) * (+119)
06:20:56 <esolangs> [[,(*+)]] https://esolangs.org/w/index.php?diff=167288&oldid=167287 * Yayimhere2(school) * (+145)
06:21:15 <esolangs> [[,(*+)]] https://esolangs.org/w/index.php?diff=167289&oldid=167288 * Yayimhere2(school) * (+29)
06:28:15 <esolangs> [[,(*+)]] https://esolangs.org/w/index.php?diff=167290&oldid=167289 * Yayimhere2(school) * (+151)
06:35:33 -!- Lord_of_Life has quit (Remote host closed the connection).
06:38:47 <esolangs> [[,(*+)]] https://esolangs.org/w/index.php?diff=167291&oldid=167290 * Yayimhere2(school) * (+10)
06:39:52 <esolangs> [[,(*+)]] https://esolangs.org/w/index.php?diff=167292&oldid=167291 * Yayimhere2(school) * (+76)
06:50:41 -!- Yayimhere has quit (Ping timeout: 250 seconds).
06:56:26 -!- Lord_of_Life has joined.
07:06:55 <esolangs> [[,(*+)]] https://esolangs.org/w/index.php?diff=167293&oldid=167292 * Yayimhere2(school) * (-6)
07:08:04 <esolangs> [[,(*+)]] https://esolangs.org/w/index.php?diff=167294&oldid=167293 * Yayimhere2(school) * (+1)
07:13:50 <esolangs> [[,(*+)]] https://esolangs.org/w/index.php?diff=167295&oldid=167294 * Yayimhere2(school) * (+118)
07:31:26 -!- Yayimhere has joined.
07:39:41 <esolangs> [[,(*+)]] https://esolangs.org/w/index.php?diff=167296&oldid=167295 * Yayimhere2(school) * (+46)
07:47:47 <esolangs> [[B2B]] https://esolangs.org/w/index.php?diff=167297&oldid=167285 * Yayimhere2(school) * (+4)
07:51:21 <esolangs> [[B2B to ,(*+)]] N https://esolangs.org/w/index.php?oldid=167298 * Yayimhere2(school) * (+1219) Created page with "'''B2B to ,(*+)''' is a translation from [[B2B]] into ,(*+). this does currently not prove ,(*+) [[Turing complete]], as [[B2B]] has an unknown computational class, though it is most likely turing complete. == Numbers == for every 1, it must be written <
07:55:00 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0]] https://esolangs.org/w/index.php?diff=167299&oldid=167262 * RaiseAfloppaFan3925 * (+144) /* Truth machine */ Corrected truth machine
08:02:27 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0]] https://esolangs.org/w/index.php?diff=167300&oldid=167299 * RaiseAfloppaFan3925 * (+238) /* BF to RSI0 */ Corrected loop example
08:09:01 -!- tromp has joined.
08:21:30 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0]] M https://esolangs.org/w/index.php?diff=167301&oldid=167300 * RaiseAfloppaFan3925 * (-116) No beefydie :C
08:28:45 <Yayimhere> ais523: do you perhaps want to look at Baulk again?
08:28:59 <ais523> I'm a bit busy at the moment
08:36:58 <esolangs> [[0x80070050]] https://esolangs.org/w/index.php?diff=167302&oldid=166553 * Yayimhere2(school) * (+29) /* syntax */
08:37:46 <esolangs> [[0x80070050]] https://esolangs.org/w/index.php?diff=167303&oldid=167302 * Yayimhere2(school) * (-1) /* memory */
08:43:48 <esolangs> [[0x80070050]] https://esolangs.org/w/index.php?diff=167304&oldid=167303 * Yayimhere2(school) * (+172) /* syntax */
08:43:58 <esolangs> [[0x80070050]] https://esolangs.org/w/index.php?diff=167305&oldid=167304 * Yayimhere2(school) * (-1) /* syntax */
08:44:23 <esolangs> [[0x80070050]] https://esolangs.org/w/index.php?diff=167306&oldid=167305 * Yayimhere2(school) * (-1) /* syntax */
08:46:23 <esolangs> [[0x80070050]] https://esolangs.org/w/index.php?diff=167307&oldid=167306 * Yayimhere2(school) * (+20) /* syntax */
08:46:42 <esolangs> [[0x80070050]] https://esolangs.org/w/index.php?diff=167308&oldid=167307 * Yayimhere2(school) * (-229) /* examples */
08:49:19 <esolangs> [[0x80070050]] https://esolangs.org/w/index.php?diff=167309&oldid=167308 * Yayimhere2(school) * (+14) /* syntax */
08:50:29 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0]] M https://esolangs.org/w/index.php?diff=167310&oldid=167301 * RaiseAfloppaFan3925 * (+24) /* BF to RSI0 */ Hunger notice
08:55:29 -!- Yayimhere has quit (Ping timeout: 250 seconds).
09:07:24 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0]] https://esolangs.org/w/index.php?diff=167311&oldid=167310 * RaiseAfloppaFan3925 * (+7) /* Hunger */ Remove feature until I decide to add it back
09:08:54 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0]] M https://esolangs.org/w/index.php?diff=167312&oldid=167311 * RaiseAfloppaFan3925 * (+4) /* BF to RSI0 */ Fixed loop
09:26:11 -!- pool has quit (Ping timeout: 256 seconds).
09:35:26 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
09:40:35 -!- Sgeo has quit (Read error: Connection reset by peer).
09:40:48 -!- Sgeo has joined.
09:41:20 -!- Sgeo has quit (Read error: Connection reset by peer).
09:53:00 -!- tromp has joined.
09:57:21 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0]] M https://esolangs.org/w/index.php?diff=167313&oldid=167312 * RaiseAfloppaFan3925 * (+1) /* BF to RSI0 */ Fixed loop translation
10:34:20 -!- esolangist has joined.
10:41:24 <esolangs> [[4gn/]] M https://esolangs.org/w/index.php?diff=167314&oldid=156401 * PrySigneToFry * (+681)
10:53:09 <esolangs> [[Esolang made with AI]] https://esolangs.org/w/index.php?diff=167315&oldid=167267 * Esolangist alt * (+355) Esolangist alt
10:56:31 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0]] https://esolangs.org/w/index.php?diff=167316&oldid=167313 * RaiseAfloppaFan3925 * (+238) /* Base Specification */ Added nondeterministic multi-tool + sanity
11:12:10 <esolangs> [[User:PrySigneToFry/Silicon dioxide in a polypropylene box/Universe No.284436]] https://esolangs.org/w/index.php?diff=167317&oldid=164603 * PrySigneToFry * (+447)
11:13:09 <esolangs> [[User:PrySigneToFry/Silicon dioxide in a polypropylene box/Universe No.284436]] M https://esolangs.org/w/index.php?diff=167318&oldid=167317 * PrySigneToFry * (-2)
11:18:06 <esolangs> [[User:Esolangist]] M https://esolangs.org/w/index.php?diff=167319&oldid=167195 * Esolangist alt * (+63) Esolangist alt
11:22:52 <esolangs> [[User:PrySigneToFry/Silicon dioxide in a polypropylene box/Universe No.284436]] https://esolangs.org/w/index.php?diff=167320&oldid=167318 * PrySigneToFry * (+353)
11:32:55 -!- esolangist has quit (Quit: Client closed).
12:13:02 <esolangs> [[User:PrySigneToFry/Silicon dioxide in a polypropylene box/Universe No.284436]] https://esolangs.org/w/index.php?diff=167321&oldid=167320 * PrySigneToFry * (+309)
13:22:31 <esolangs> [[User:RaiseAfloppaFan3925]] M https://esolangs.org/w/index.php?diff=167322&oldid=167248 * RaiseAfloppaFan3925 * (+462) Added my funny "Hello, world!" program to my collection
13:44:11 <esolangs> [[Special:Log/newusers]] create * Wuyugu * New user account
14:08:57 <esolangs> [[Special:Log/newusers]] create * Skyraiderr5 * New user account
14:37:37 -!- pool has joined.
14:54:07 <esolangs> [[User:RaiseAfloppaFan3925]] M https://esolangs.org/w/index.php?diff=167323&oldid=167322 * RaiseAfloppaFan3925 * (+443)
14:59:56 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0]] M https://esolangs.org/w/index.php?diff=167324&oldid=167316 * RaiseAfloppaFan3925 * (+31) Correct a minor error
15:00:06 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=167325&oldid=167183 * Skyraiderr5 * (+176)
15:00:18 <esolangs> [[User:RaiseAfloppaFan3925]] M https://esolangs.org/w/index.php?diff=167326&oldid=167323 * RaiseAfloppaFan3925 * (+0) /* "Hello, world!" in RaiseAfloppaFan's Stupid Idea 0 */ Corrected
15:01:17 <esolangs> [[Gurling]] N https://esolangs.org/w/index.php?oldid=167327 * Skyraiderr5 * (+2446) Created page with "{{infobox proglang |name=Gurling |author=[[User:Skyraiderr5]] |year=2025 |majorimpl=Python |influenced=[[Python]]; [[Flug]] | }} {{WIP}} '''Gurling''' is an programming language with global variables and modular libraries. It is an interpreted language ==Language
15:06:46 <esolangs> [[Talk:Gurling]] N https://esolangs.org/w/index.php?oldid=167328 * Skyraiderr5 * (+356) Created page with "Welcome to the talk page! Please add suggestions to the end of the list Also add <nowiki>~~~~</nowiki> to the end of the suggestion, its a signature This is an example of a suggestion * Add a <code>objects</code> lib with support for other Python datatypes.
15:08:27 <esolangs> [[Gurling]] M https://esolangs.org/w/index.php?diff=167329&oldid=167327 * Skyraiderr5 * (+62)
15:09:41 <esolangs> [[Gurling]] M https://esolangs.org/w/index.php?diff=167330&oldid=167329 * Skyraiderr5 * (+4)
15:15:52 <esolangs> [[Gurling]] https://esolangs.org/w/index.php?diff=167331&oldid=167330 * Corbin * (+11) Fix up infobox proglang usage. `refimpl` is for the reference implementation; `majorimpl` is for well-known implementations in case of no/missing/defunct reference. `influenced` is for outgoing influences (when this language is in the past); `influence` is for incoming influences
15:18:19 <esolangs> [[Talk:Gurling]] https://esolangs.org/w/index.php?diff=167332&oldid=167328 * Skyraiderr5 * (+382)
15:19:34 <esolangs> [[Talk:Gurling]] https://esolangs.org/w/index.php?diff=167333&oldid=167332 * Skyraiderr5 * (+69)
15:37:23 -!- pool has quit (Read error: Connection reset by peer).
15:39:18 -!- pool has joined.
16:00:31 <esolangs> [[Python]] https://esolangs.org/w/index.php?diff=167334&oldid=166044 * Corbin * (+1574) Infobox proglang; rewrite opening for context, history, clarity, and humor, as well as to remove some untruths and memes; references; grammar. The blockquote is so well-attested in the community that I feel uncomfortable giving it citations, but I've done so, going back to 1993;
16:05:24 <esolangs> [[Python]] M https://esolangs.org/w/index.php?diff=167335&oldid=167334 * Corbin * (-4) [[Self]] is currently a joke language, not the actual research language. Ironic, given that Self is quite esoteric and the joke language is so facile.
16:08:44 <esolangs> [[Pseudocode]] https://esolangs.org/w/index.php?diff=167336&oldid=156046 * Corbin * (+298) Quick simple explanation of a concept. Reuses a blanked page. Stop blanking pages, folks. Maybe take a day before creating a page to reflect on whether it's a good idea?
16:10:14 -!- esolangist has joined.
16:21:34 <esolangs> [[Gurling]] M https://esolangs.org/w/index.php?diff=167337&oldid=167331 * Skyraiderr5 * (+135) Added documentation for a small lib
16:22:15 -!- Yayimhere has joined.
16:22:29 <esolangs> [[B2B to ,(*+)]] https://esolangs.org/w/index.php?diff=167338&oldid=167298 * Yayimhere2(school) * (-1219) Blanked the page
16:30:06 <esolangs> [[0134]] https://esolangs.org/w/index.php?diff=167339&oldid=167076 * Yayimhere2(school) * (-167)
16:32:51 <esolangs> [[User talk:Ais523]] https://esolangs.org/w/index.php?diff=167340&oldid=166114 * Yayimhere2(school) * (+313)
16:33:45 <esolangs> [[,(*+)]] https://esolangs.org/w/index.php?diff=167341&oldid=167296 * Yayimhere2(school) * (-603)
16:35:12 <esolangs> [[,(*+)]] https://esolangs.org/w/index.php?diff=167342&oldid=167341 * Yayimhere2(school) * (-68)
16:35:47 -!- esolangist has quit (Quit: Client closed).
16:37:27 <korvo> Yayimhere: Could you explain your reasoning regarding the block request?
16:38:10 <Yayimhere> korvo: unname has tried to edit the commands of my esolang quite a bit, so I'd like that they just arent able to do that
16:38:21 <Yayimhere> i have *no* idea why but they just kept doing it
16:39:15 -!- esolangist has joined.
16:39:48 <korvo> Yayimhere: Write down the specification anywhere else. Write an interpreter. Put up a Web page that specifies it.
16:40:26 <Yayimhere> korvo: yes, but for me, its still annoying to uphold that page
16:40:40 <Yayimhere> (im not asking for a block on anything else, just one that specific page)
16:41:00 <korvo> Yayimhere: Well, by what standard are your edits the correct ones and their edits the incorrect ones?
16:41:22 <korvo> (Asking for a slight overreach is still asking for an overreach.)
16:43:04 <Yayimhere> korvo: its my language, and as such, I know what is correct and what is not
16:43:45 <Yayimhere> (I would not consider it an overreach, but maybe im wrong)
16:46:50 <korvo> It would be completely unreasonable on a larger wiki. It could be a solution to an edit war, were one to occur.
16:47:42 <korvo> Quoting site policy, "Articles on languages you made yourself are encouraged, unlike for example Wikipedia. However, these may still be mercilessly edited by others. In most cases this is a good thing."
16:48:52 <korvo> You agree to release your articles here to the public domain. If you want to describe a language and have it show up in search results, *and* not be edited by others here to be different from your description, then you need some *additional* documentation for your language hosted somewhere else. This is a very very weak version of the notability requirement; I'm saying that we need some external source by which to judge articles.
16:50:36 <korvo> If your language is still WIP and it's going to take you a while to finish, then moving it to be under your user namespace would be a reasonable compromise; the policy is that each user is entitled to their own user pages (and that's why the policy discourages editing each other's user pages!)
16:51:16 <Yayimhere> I mostly do not have a place to put my external recourses
16:51:40 <Yayimhere> atleast not one that is online and so accessable to others on the web
16:51:40 <korvo> Lucky 10000: neocities.org
16:52:24 -!- esolangist has quit (Quit: Client closed).
16:52:30 <esolangs> [[User talk:Ais523]] https://esolangs.org/w/index.php?diff=167343&oldid=167340 * Yayimhere2(school) * (-313)
16:52:35 <korvo> But, again, at your age, you're not expected to be producing new languages. Certainly not producing dozens of languages/year. You're expected to be studying and learning. There's nothing wrong with experimenting, but you should be aware that experiments documented on the wiki are documented in the public domain.
16:52:41 -!- esolangist has joined.
16:53:55 <Yayimhere> (i assume "expected" does not mean "should not")
16:54:17 <korvo> Sure, no problem. I remember being your age and utterly delighted by Geocities, the site which inspired Neocities. It's a good first step. Be sure to read the terms of service; there *are* rules for using other peoples' sites. If you want fewer rules then you'll have to host it yourself, which might require you to be a legal adult first.
16:54:44 <Yayimhere> I should propably read up one rules more
16:54:54 <korvo> (I am not telling you what to do. I'm telling you what the rules are, including the rules of society. I think that you should do whatever you want! But I also often think that people should modify their desires.)
16:57:27 -!- esolangist has quit (Client Quit).
16:57:42 -!- esolangist has joined.
17:07:45 -!- Yayimhere has quit (Ping timeout: 250 seconds).
17:08:44 <esolangs> [[R + S]] https://esolangs.org/w/index.php?diff=167344&oldid=164736 * C++DSUCKER * (+66)
17:20:30 -!- esolangist has quit (Quit: Client closed).
17:30:44 <korvo> esolangs: What is Python good for?
17:33:11 <korvo> fungot: What is Python good for?
17:33:12 <fungot> korvo: greece is going through bad times that is why my group is at the centre of the eu member states, but i promise to propose this plan. that is why and this is the custom with human rights.
17:33:47 <esolangs> korvo: Python is excellent for a wide range of tasks due to its versatility and ease of use. It excels in web development, data science, machine learning, scripting, and automation. Its extensive libraries and beginner-friendly syntax make it ideal for rapid prototyping and development. Python's cross-platform compatibility and strong community support...
17:34:14 <korvo> That's pretty good. Could be pre-canned instead of RAG though.
17:34:16 -!- esolangist has joined.
17:35:29 -!- Sgeo has joined.
17:38:41 -!- Yayimhere has joined.
17:42:50 <esolangs> [[,(*+)]] https://esolangs.org/w/index.php?diff=167345&oldid=167342 * Yayimhere2(school) * (+612)
17:43:02 <esolangs> [[,(*+)]] https://esolangs.org/w/index.php?diff=167346&oldid=167345 * Yayimhere2(school) * (-76)
17:44:21 <esolangs> [[Lalala]] https://esolangs.org/w/index.php?diff=167347&oldid=167075 * Yayimhere2(school) * (+50) /* syntax */
17:46:49 <Yayimhere> this is the last time im asking this(if ive asked it before, I have bad memory), but can anyone reccomend a good language to prove this tc(please not a cyclic tag system though, I tried): https://esolangs.org/wiki/,(*%2B)
17:53:33 <korvo> It's marked as unusable for programming and there's no reference interpreter. I don't know how the language is supposed to behave.
17:54:11 -!- amby has joined.
17:54:22 <Yayimhere> I put unusable for programming on most of my esolangs, for the reason they arent useful for very high level things,
17:55:15 <esolangs> [[Talk:Burn]] https://esolangs.org/w/index.php?diff=167348&oldid=164803 * Yayimhere2(school) * (+159) /* Name */
17:55:24 <ais523> korvo: note that I often do warn people for editing commands into other people's languages – the pages are meant to describe the language, and changing the page normally doesn't change the language in its creator's mind, so it's just makign the page inaccurate
17:56:31 <korvo> ais523: I'm willing to accept that, but in this particular case I genuinely couldn't tell what the original page is supposed to look like. I'm also unclear on whether there's other chats influencing the edits.
17:57:14 <Yayimhere> korvo: to answer your second question, me and unname have never talked to each other before this
17:57:32 <korvo> I've tried to be fairly conservative in my own edits to joke languages. Many of them are poorly worded, but does improving the wording make the joke worse? Or better?
17:57:41 * korvo can't do a good Invader Zim voice
17:58:43 <korvo> Yayimhere: Okay. Then, for the future, the standard wiki convention is that you can revert their edits. It helps if you add to the notes for the revert to say *what they got wrong*. One wrong edit means one revert.
17:59:22 <korvo> An **edit war** is when they revert your revert, or do something equivalent. At that point, take a step back to cool off and consider asking somebody with more experience to step in.
18:01:54 <korvo> BTW, in general, edit notes are good. You can look at regular editors like https://esolangs.org/wiki/Special:Contributions/Ais523 or https://esolangs.org/wiki/Special:Contributions/B_jonas to get a sense of how often they're used. Talk pages don't need it much (because you can just read the talk page) and on WP it's actually kind of rude!
18:02:16 <korvo> (And then there are some *freaks* like https://esolangs.org/wiki/Special:Contributions/Corbin ~)
18:02:43 <b_jonas> me? I usually don't make good edit comments
18:03:21 <korvo> WP is Wikipedia. Usually English Wikipedia, but also Wikipedia in general. English WP's rules aren't binding but they are very good conventions that scale up to thousands of editors and millions of articles.
18:05:21 <korvo> (BTW, I think of myself as fairly precocious, but I didn't start editing English WP until I was maybe 16 or 17; it's okay to still be learning about wiki culture.)
18:07:14 -!- esolangist has quit (Quit: Client closed).
18:10:03 <esolangs> [[Talk:Burn]] https://esolangs.org/w/index.php?diff=167349&oldid=167348 * Yayimhere2(school) * (+268)
18:10:16 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
18:17:34 <Yayimhere> also, korvo, on the "no reference implementation" thing, does there need to be one? ive seen a whole lot of esolangs where it makes perfect sense but does not have a (atleast not a reference) implementation. if any command descriptions are unclear however, I'd like to know! because I want my documentation to be clear
18:18:46 <korvo> Yayimhere: If there's a complete specification, or even a half-complete specification, then no, a reference implementation might not exist anymore. Usually this means that one was built in the past, but it has been retired. An example is [[Game of Life]].
18:19:34 <korvo> However, in those cases, we offer the `majorimpl` tag IIRC, in {{infobox proglang}}, so that we can link to major implementations. This can also be used if there's popular competing implementations, as with CPython and PyPy on [[Python]].
18:20:51 <korvo> At some level, though, we only write languages so that we can express ourselves on the computer. We *want* implementations. Historically, languages like Lisp or APL started as blackboard notation for teaching, and the students wanted to use that notation on computers, so they implemented Lisp and APL for themselves!
18:21:46 <Yayimhere> but like, you can still compute them. in fact ive done stuff manually a whole lot of times
18:22:06 <Yayimhere> and that is not *just* me, Alan turing didnt program his chess machine
18:22:08 <korvo> On a practical level, I think that *every* language I've authored has started as some script named something like test.py, and slowly become something like cammy.py and then cammy/main.py and then cammy/cammylib/cam.py, all *before* becoming an article like [[Cammy]]. The implementation comes first; the wiki page is just how I share what I built with the community.
18:22:41 <Yayimhere> korvo: to me, that just seems like differences in creating esolangs
18:22:54 <korvo> Sure. There are languages on the wiki that challenge those concepts; [[Unary]] is interesting for complexity theory, [[Sammy]] is interesting for category theory, etc. But those languages were written down by mathematicians trying to prove something about maths itself, not about computers.
18:24:06 <korvo> Yayimhere: Well, what else does "programming language" mean? "esolang" is short for the full phrase, "esoteric programming language", not just esoteric languages in general. For example, I speak Lojban and could write an article about it, but Lojban isn't a programming language, even though it's esoteric enough that people have only vaguely heard of it.
18:24:50 <Yayimhere> korvo: what? like yea its a programming language, just one that currently has to be computed manually
18:26:24 <korvo> Yayimhere: There's no difference between manual and automatic computation. The machine is merely faster, not more capable. That's Turing's whole point about machines.
18:26:48 -!- tromp has joined.
18:27:03 <Yayimhere> korvo: yea, so I dont get what the issue with there being no reference implementation
18:27:24 <Yayimhere> but interesting conversation anyways
18:27:27 <korvo> No worries. Peace.
18:32:15 -!- Yayimhere has quit (Ping timeout: 250 seconds).
18:37:41 -!- pool has quit (Read error: Connection reset by peer).
18:39:44 -!- pool has joined.
18:57:06 <esolangs> [[Flux (Esolangist)]] N https://esolangs.org/w/index.php?oldid=167350 * Esolangist alt * (+2348) Esolangist alt
19:01:25 <esolangs> [[Flux]] https://esolangs.org/w/index.php?diff=167351&oldid=126358 * Esolangist alt * (+45) Distinguish template
19:03:07 -!- esolangist has joined.
19:08:04 <esolangs> [[User talk:User:Main page/w/wiki/User:NotPrySigneToFry/what]] N https://esolangs.org/w/index.php?oldid=167352 * Esolangist alt * (+365) Created page with "Welcome to the craziest esolang. You are invited to make this better! ==Commands== {| class="wikitable" |+ Commands |- ! Command !! Meaning !! Creator |- | OUT x || Outputs x || [[User:Esolangist]] |} ==Examples==
19:10:01 <esolangs> [[User:Esolangist]] M https://esolangs.org/w/index.php?diff=167353&oldid=167319 * Esolangist alt * (+148) More esolangs
19:11:14 -!- esolangist has quit (Quit: Client closed).
19:13:20 <esolangs> [[User talk:User:Main page/w/wiki/User:NotPrySigneToFry/what]] https://esolangs.org/w/index.php?diff=167354&oldid=167352 * Esolangist alt * (+121)
19:19:30 <esolangs> [[User talk:/w/wiki/index.php/Talk:index.php/Main page]] https://esolangs.org/w/index.php?diff=167355&oldid=166287 * Esolangist alt * (+310) Esolangist alt
19:22:31 <esolangs> [[User talk:/w/wiki/index.php/Talk:index.php/Main page]] https://esolangs.org/w/index.php?diff=167356&oldid=167355 * Esolangist alt * (+133) Esolangist alt
19:28:22 -!- ajal has joined.
19:32:00 -!- sftp_ has joined.
19:33:12 -!- ais523 has quit (Ping timeout: 256 seconds).
19:33:50 -!- slavfox_ has joined.
19:37:16 -!- amby has quit (*.net *.split).
19:37:16 -!- slavfox has quit (*.net *.split).
19:37:16 -!- sftp has quit (*.net *.split).
19:37:17 -!- sftp_ has changed nick to sftp.
19:37:18 -!- sftp has changed hostmask to ~sftp@user/sftp.
19:37:24 -!- slavfox_ has changed nick to slavfox.
19:38:55 -!- callforjudgement has joined.
19:42:56 -!- avih has joined.
19:44:51 <Sgeo> A 1961 book distinguishes "compiler" by "assembler" as assemblers not having macros. Since IBM 1401 Autocoder has macros that expand to multiple machine instructions, it's a compiler and not an assembler
19:44:52 <Sgeo> https://bitsavers.org/pdf/ibm/1401/A_Guide_to_1401_Programming_1961.pdf
19:44:59 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
19:52:49 <avih> hi, i have 3 questions/notes regarding https://esolangs.org/wiki/Brainfuck_speed_test : 1. it says "Each interepreter runs dbfi which ..." but the dbfi link has link to the original dbfi but shows code of cgbfi. so does it use the original dbfi or cgbfi? (also, both of them have a faster v2). 2. at the "execution argument" of the table, most of them are "type program.b | .\dbfi", however, this doesn't work in neither the original dbfi nor cgbfi, because both
19:52:49 <avih> of them require the program to end in "!", but the test program doesn't end in "!", so either the program or the execution arguments are incorrect. 3. bffsree_gcc is indeed very fast, and is available to download at the "bffsree" link, however, i don't think the source code in that page is for "bffsree_gcc". i think the source is an older (and slower) version, while the download binary of bffsree_gcc is for newer version without source code. so i think it
19:52:49 <avih> should be noted someplace, or alternatively, test with bssfree which was compiled from the available source.
19:56:32 -!- callforjudgement has changed nick to ais523.
19:58:30 -!- tromp has joined.
20:00:51 -!- sprock has quit (Ping timeout: 256 seconds).
20:02:26 -!- sprock has joined.
20:05:55 <avih> also, this test program completes very quickly with optimizing interpreters/compilers, to the point where it's hard to measure meaningfully (startup overhead, etc), and additionally different interpreters excel at different things, so the test results are not necessarily representative in the grand scheme of things IMO, and it could be useful to have another test case.
20:11:21 <avih> (it's not mentioned, but usually it's also useful to disable cpu "turbo boost" to limit the frequency so that all programs are measured with the same cpu frequency without cpu throttling.
20:12:43 <korvo> avih: Thanks for looking at this. These pages definitely are a little messy and outdated.
20:14:11 <avih> korvo: thanks. well, not necessarily outdated as such, but more like some things are unclear (which dbfi was actually used), and some just can't be right (no "!" at the test program or execution args)...
20:15:57 <avih> and the bffsree/gcc thing is interesting. i was sure the source is available, till i looked at it and read the pages carefully, when i realized that i don't think it is available.
20:19:47 <avih> i wouldn't have minded so much, except that it's listed as fastest, 3x faster than the 2nd best, so source availability is important here IMO
20:19:56 <korvo> FWIW the fastest options are the JITs; the fastest one that I got working is the GNU Lightning version, followed in second place by my RPython interpreter. The AOT compilers do an alright job but they're working uphill.
20:20:47 <avih> correct. though i also have an interpreter (no jit etc), which is only about 3x slower than jit
20:21:04 <avih> (and typically faster than bffsree_gcc too)
20:22:01 <korvo> Oh, wow. So I hadn't actually *read* this page. This is a Windows-only page!
20:22:42 <avih> it was tested on windows, yes
20:22:46 <korvo> The fastest interpreter I've tested on NixOS (Linux) is http://lvogel.free.fr/bf.html in GNU Lightning, followed in second place by mine https://github.com/rpypkgs/rpypkgs/blob/main/bf/bf.py in RPython.
20:23:16 <avih> have you tried https://github.com/rdebath/Brainfuck ? the jit one is pretty sweet.
20:23:27 <avih> (i only tested on windows though)
20:24:17 <avih> looking now into your links. i don't think i've seen them before. thanks.
20:25:33 <avih> korvo: but if it uses Lightning, then it's not really an interpreter as such, right? it basically generates source and compiles it on the fly.
20:25:51 <korvo> Tritium? It's a lot of code and a big achievement. However, it's very verbose and takes a while to get to the good stuff. My interpreter's not even 300 lines, and it could be shorter if I golfed it but I wanted it to be readable. There's also an explanatory post about compiler design that goes into details: https://pypy.org/posts/2024/11/guest-post-final-encoding-in-rpython.html
20:26:33 <avih> (not sure what that means)
20:27:18 <korvo> avih: GNU Lightning interprets bytecode for an imaginary CPU (the Lightning CPU, I guess?) and the JIT merely is a way of speeding that up, but the library includes a full emulator for that CPU too.
20:28:02 <avih> but at least it's not an interpreter in the classic sense :)
20:28:16 <avih> not that it matters to the user though...
20:28:31 <avih> except maybe harder to build.
20:28:43 <korvo> An interpreter can have any internal structure. What matters is the effects that it performs.
20:30:06 <avih> but then, you could also call this an interpreter: "bf2c < prog.b | gcc -O2 -xc - -o tmp && ./tmp && rm tmp"
20:30:40 <korvo> My shell doesn't have `bf2c` or `gcc` as builtins?
20:31:20 <avih> no, bf2c IS the thing you could call an interpreter, and it has a gcc dependency, just like other interpreters might have lightning as dependency
20:32:22 <korvo> Oh! Sure. Or, more pointedly, x86 is an interpreter.
20:32:25 <avih> i think we both understand eachother. these are just semantics.
20:33:05 <korvo> Well, yes. But semantics, also called effects, are what matter.
20:33:06 <avih> but anyway, looking now at your links. i wanna try them :)
20:33:44 <korvo> RPython might be preferable in this regard, or at least it might challenge your concept of dependency. Here's the ldd for bf.py: https://bpa.st/ZJLA
20:33:51 <int-e> . o O ( so much up for interpretation )
20:33:57 <avih> semantics matters to clarify the intent behind the words, but we both know what it means, just not necessarily how to call it :)
20:34:50 <avih> what's RPython? (i'm not really a python guy, more shell and c guy)
20:35:02 <korvo> avih: No, seriously, you're so close to seeing something really big. What if we could take an interpreter and somehow *specialize* it for a particular input? Then that would be equivalent to compiling the input, *and* we might be able to optimize the result.
20:35:30 <korvo> This leads to Futamura projections, which are what we get when we have specializers and we start applying them to interpreters and other programs.
20:35:49 <avih> (Sec, reading your reply carefully...)
20:36:30 <korvo> *Sheesh. RPython is a frozen dialect of Python 2.7 that can be compiled into a C program. Optionally, it can add a JIT to that program. It was developed to build PyPy, a JIT interpreter for Python which is written in Python.
20:37:01 -!- Awoobis has changed nick to gAy_Dragon.
20:37:10 <avih> not familiar with "Futamura projections", but i do get the gist of what you're saying. however, i don't think i understand what it implies, or what i should take from that
20:37:51 <korvo> Well, I'm just not sure why JIT compilers aren't interpreters. They're very fancy interpreters, but they do interpret at runtime.
20:38:11 <avih> i see, rpython is like turtles all the way down, just with jit and python :)
20:38:50 <korvo> GNU Lightning has similar origins. It was isolated from GNU Smalltalk's JIT.
20:39:42 <avih> korvo: i already agreed :) it's fine. they might require a bit more effort to use/build compared to plain python or c, but otherwise true
20:39:50 <korvo> Indeed, the idea of JIT is attached to a Smalltalk offshoot called Self; this is the language that put the `self` keyword into Python, and it's also a big influence on ECMAScript. By no coincidence, the Self JIT folks went to work on JITs for ECMAScript and also to design JIT-friendly languages like Java.
20:39:59 <int-e> Interpreters to compilers are a spectrum. If you have an intermediate bytecode, is it still a pure interpreter ;)
20:40:26 <int-e> If you allow bytecode, what if the bytecode format happens to match the machine's architecture ;)
20:41:08 <korvo> int-e: Well, they do still make 6502 chips.
20:41:43 <avih> k, time to look at these links. not sure i have the deps to use them, but we'll see.
20:42:40 <korvo> Laurent's code is likely easier to use than mine; I rely on having RPython already installed, or on the usage of a Unix package manager called "Nix", and neither are easy on Windows.
20:43:47 <avih> i have many unixes too, and i don't have nix or rppython installed on any
20:44:06 <avih> (not a problem per se, just i don't have them ready)
20:44:55 <avih> korvo: that's Laurent's, yes? http://lvogel.free.fr/bf.html
20:45:14 <korvo> Yeah. It worked last time I tried, maybe 3-4yrs ago.
20:45:16 <int-e> What *I* personally am looking for in an interpreter is something that I can run programs with without producing extra garbage on my drive. Which is murky; Python tends to produce pyc files quite eagerly...
20:45:53 <int-e> (there's an environment variable to disable that)
20:48:32 <avih> korvo: i tried the windows binary, and it's fast, but about 1.4x slower than https://github.com/rdebath/Brainfuck and only about twice slower than my "pure" interpreter (i.e. no deps, just 1 small c file and stdio in libc)
20:51:13 <avih> twice faster* than my c interpreter (which is not online yet)
20:52:51 <esolangs> [[BF instruction minimalization]] https://esolangs.org/w/index.php?diff=167357&oldid=154633 * Esolangist alt * (+1334) what
20:54:34 <avih> but slower than the rdebath jit (Dynasm. it supports Gnu Lightning too, but not at the windows binary)
20:55:06 <esolangs> [[BF instruction minimalization]] https://esolangs.org/w/index.php?diff=167358&oldid=167357 * Esolangist alt * (+80) Esolangist alt
20:55:20 <esolangs> [[BF instruction minimalization]] https://esolangs.org/w/index.php?diff=167359&oldid=167358 * Esolangist alt * (+0) Esolangist alt
20:59:46 <avih> int-e: most interpreters can produce reasonably good c code, so to avoid leftover on your drive, you could "some-bf2c < prog.b | tcc - -run"
21:00:50 <avih> this is typically faster than most interpreters, including the compilation time, but slower than jits
21:01:06 <avih> slower than non-jit interpreters :)
21:01:36 <avih> (or rather tcc -run -)
21:03:17 <avih> damn. faster than non-jit interpreters, but slower than jit interpreters... my brain is fucked...
21:11:26 <avih> korvo: re "i don't have bf2c as shell builtin", you could add this as a function to your (posix) shell rc file:
21:11:28 <avih> d=#define U=unsigned; echo "#include <stdio.h>@$U char t[65536];$U h;int c;
21:11:28 <avih> $d C t[h&65535]@$d R ++h;@$d L --h;@$d P ++C;@$d M --C;@$d W while(C) {@$d\
21:11:28 <avih> E }@$d O putchar(C);@$d I c=getchar();C=c<0?C:c;@int main(void){"|tr @ \\n
21:11:28 <avih> s="][><,.+-";tr -cd $s|tr $s EWRLIOPM|fold -w1;echo ";return 0;}" # avih
21:11:44 <avih> (this is the next version of https://github.com/avih/bf2c.sh )
21:13:17 <avih> (that's 300 bytes shell bf2c)
21:13:56 <avih> (zero optimizations, but i also have a 1k version which does RLE and balanced loops and tons of options. really super practical)
21:15:08 <avih> (with a debugger too :) )
21:22:29 -!- op_4 has quit (Ping timeout: 256 seconds).
21:23:31 -!- slavfox has quit (Ping timeout: 256 seconds).
21:24:23 -!- slavfox has joined.
21:29:36 <esolangs> [[BF instruction minimalization]] https://esolangs.org/w/index.php?diff=167360&oldid=167359 * Esolangist alt * (+826) Esolangist alt
21:36:00 -!- op_4 has joined.
21:55:53 <avih> b_jonas: bonus preview, comments are welcome :) https://0x0.st/KLVv.txt
21:57:58 <b_jonas> avih: can you mention in the description how overflow and underflow from + and - are handled? the description mentions that going off the tape from < and > is customizable, but a mode with no UB from -+ would also be useful
21:58:39 <avih> b_jonas: indeed, but it's unsigned int/short/char, so wraps both ways
21:59:03 <b_jonas> because I find this code not easily readable
21:59:16 <b_jonas> you do say it after "CELLTYPE"
21:59:24 <avih> (i do have it at the github page and my WIP comment, but i wrote this comment/usage just now, but you're right)
21:59:25 <b_jonas> sorry, I'm just blidn then
22:00:08 <avih> also, you could always look at teh generated c code ;) bf2c.sh < prog.b | less
22:00:39 <avih> it's actually clearer than the sh code, as it expands all the vars
22:00:42 <esolangs> [[BF instruction minimalization]] https://esolangs.org/w/index.php?diff=167361&oldid=167360 * Esolangist * (+673) /* User:Esolangist's attempts */
22:01:43 <avih> b_jonas: also, except for bugs, or with B=0, it should not have UB. everything should be by the book.
22:02:26 <b_jonas> I think "by the book" brainfuck originally allows UB, but I prefer interpreters that don't do that
22:02:39 <avih> i my by the C book :)
22:03:10 <b_jonas> the ANSI version of the K&R bible?
22:03:30 <avih> i _think_ yes, but i mainly do c99
22:04:10 <avih> there are no special types used. off the top of my head, the only think i'm not sure of is whether fcntl.h is c89
22:04:52 <avih> (it's only used on windows, but i didn't have enough bytes left under 1K to add #ifdef _WIN32 ;) )
22:05:47 <avih> (but i might be able to squeeze it in. it does have about 15 bytes spare after removing some spacing newlines)
22:06:50 <avih> I might squeeze it as ${W:+#include<fcntl.h>}
22:07:23 <avih> (that's why it's not at the github page yet. it's WIP)
22:08:37 <b_jonas> it's kind of funny to go for a size limit when using brainfuck in first place means that the programs will be long
22:08:49 <b_jonas> I don't much like brainfuck
22:09:17 <avih> well, the original bf compiler went for a small size compiler...
22:10:05 <avih> there's nothing to like about it, other than it works, and can be fun to solve bf related things :)
22:20:32 <avih> re readable, yeah, it's hard to squeeze things into size limit and keep it readable, but i tried to keep it as readable as possible under the circumstances. it's not packed into 80-cols lines etc, and even has few excessive newlines for spacing ;)
22:27:16 <avih> b_jonas: updated comment, unmodified code https://0x0.st/KLVd.txt
22:35:14 <b_jonas> "not packed into 80-cols lines" => yeah, I have some attempts at those, like https://www.perlmonks.com/?node_id=863110
22:36:58 <avih> yeah, and this is sh, it's "allowed" to use gzip too and eval the decompressed code, but i don't think it's fun, and it's also scary to use - eval of code which you can't see...
22:37:13 <b_jonas> I like to write code that is formatted normally but the algorithm that it uses is obscure and that's what makes it hard to understand, that's why I'm proud of https://www.perlmonks.com/?node_id=1008395
22:38:52 <b_jonas> no need to add surface obfuscations or golfing if the actual method with the two unpacks is crazy enough
22:39:15 <avih> b_jonas: it's great that different people find different things fun :) though i didn't try to obscure it by intent. it's only a result of the size limit.
22:40:27 <avih> as i said, the resulting c code is clearer as it expands all the variables, though the awk code can be hard to decipher, especially the second script
22:40:49 <avih> (that's the balanced counter loops handling)
22:42:06 <b_jonas> that was my original goal with olvashato, to generate clean readable code, though I only succeeded to a small part
22:42:32 <avih> like that debug line (#define D ... when $D is not empty) expands to about twice its size in the sh script :)
22:43:17 <avih> is olvsharo one of the links you posted earlier?
22:43:40 <avih> not familiar with it then
22:43:49 <b_jonas> https://esolangs.org/wiki/Olvashat%C3%B3
22:44:12 <avih> oh hey, it's you! :D
22:44:39 <b_jonas> yes, I said "my original goal" so it's my code
22:45:42 <avih> can't say i remember anything at all about ML...
22:46:52 <b_jonas> you don't have to remember the concrete syntax because the compiler knows that
22:47:18 <avih> (i'm not that much into languages beyond c and sh, but i know a few, and recently decided to play a bit with bf, because i like tiny)
22:47:47 <avih> yeah :) was an unrelated comment (ML)
22:52:41 <avih> b_jonas: the olvashato code looks readable. nice.
22:58:15 <b_jonas> avih: yes, but the goal was to make the SML and Prolog code that it outputs readable
22:58:22 <b_jonas> and I only partly succeeded that
22:59:00 <avih> you could keep trying... :)
23:01:18 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
23:02:42 <b_jonas> avih: there's no point, I already passed the relevant course for which I've written this, and I have a diploma and everything, I have no reason to compile the same code to both SML and Prolog anymore, especially not into dialects for proprietary compilers that I only had access to as student versions
23:03:03 <b_jonas> if I want to emit readable code I should write an Enchain compiler
23:03:46 <avih> oh, i misinterpreted "only partially succeeded" as "not too happy with that"
23:04:31 <b_jonas> my plan is for that to emit straightforward C code, though not the most readable because it will rely on a "modern" (as in last twenty years) C compiler that can do inlining and basic register allocation
23:05:31 <avih> out of curiosity, why would it need "register allocation"? (and what does it mean in this context?)
23:05:32 <b_jonas> so it won't be readable as C code, but useful enough in that you can see how it corresponds to the enchain source code straightforwardly
23:05:53 <avih> i think that's fair
23:06:29 <b_jonas> avih: I mean it will emit each function call as a separate statement, even when the functions are just simple integer arithmetic operations, so an old non-optimizing compiler would probably unnecessarily save each intermediate result into a stack slot
23:07:32 <avih> and why would that matter, other than performance? or are you suggesting it would use more stack than it otherwise could?
23:08:19 <avih> (i assumed the stack space would be temporary till after it's called)
23:08:22 <b_jonas> just performance, yes, though it's mostly the inlining that matters
23:09:00 <b_jonas> the C code read alone will be ugly because every value will go to a temporary with uninformative name, sort of like in the prolog output of Olvashato but worse,
23:09:11 <avih> well, performance is second to correctness. get correctness right, then worry about performance IMO.
23:09:48 <b_jonas> but read it when you're writing the Enchain source code and you can tell that each statement corresponds to an Enchain statement
23:10:28 <esolangs> [[Talk:Function-level programming]] N https://esolangs.org/w/index.php?oldid=167362 * Fpstefan * (+1295) to Quote of J. Backus
23:10:32 <avih> (i was a performance engineer in mozila for some years, and the amount of premature optimizations is a PITA)
23:12:19 <avih> (to be fair, it's not only mozilla. it's pretty much everywhere)
23:13:00 <avih> i get teh fun in squeezing every last bit of perf, but it does have costs...
23:15:40 <b_jonas> that includes the code that I write
23:45:08 <korvo> avih: Ah, so you already know the most important part of profiling: stop when it's fast enough. I had been trying to determine what kind of speed you were trying to get out of Brainfuck, but it sounds like you didn't have a fixed goal.
23:46:34 <avih> it depends on the reason. if it's for work, sure, if it's for fun, then for as long as you're still having it ;)
23:47:14 <avih> and no, i don't have a goal, but i have few references of existing programs.
23:47:29 <korvo> Ah, like ais523. I am more emotionally driven; I think that most of my fast Python work has been out of spite more than anything else. My goal for Monte was to be faster than CPython for equivalent code.
23:47:33 <avih> so obviously i prefer to beat them :)
23:48:29 <avih> i like fast out of spite :)
23:50:12 <avih> korvo: btw, re my initial thing about the speed test, do you know who tested it? are they here?
23:51:12 <avih> but the golden goal is fast and tiny and readable ;)
23:51:43 <korvo> avih: Looks like None1, who I haven't seen here before. https://esolangs.org/wiki/User_talk:None1
23:52:23 <ais523> None1 is fairly active, but not on IRC
23:52:34 <avih> hmm... how does the esolangs wiki works in general? is it acceptable to edit other people's pages? (i don't intend to, and if i will i'll first ask here, so just info)
23:53:35 <ais523> pages aren't owned by anyone
23:53:45 <ais523> although the designer of a language will normally have more information about what to put on them than other people
23:54:05 <avih> sure, it's a wiki, but i think it's courtesy to at least talk first with whoever wrote something before changing it...
23:54:22 <ais523> the purpose of mainspace pages is to describe esolangs, rather than define them, so you can edit a page as long as it still describes the language correctly
23:55:40 <korvo> I think that pinging them on their user talk page would be fine, and I also think that being bold about editing the main article would be fine depending on what you want to add. We're fairly collaborative here.
23:55:48 <avih> i was referring to this https://esolangs.org/wiki/Brainfuck_speed_test which doesn't describe a language, but it does have some issues, including not being able to reproduce anything if following the described test procedure
23:56:24 <avih> (and some clarity issues too)
23:57:35 <avih> thanks. anyway, no intent to edit anything for now, and i'll ask first regardless. thanks.
23:59:00 <ais523> my position is basically "a language should exist outside the wiki, even if it's only in someone's head, and then the wiki is used to describe and possibly publicise that"
23:59:02 <avih> (also haven't used media wiki before, but i don't doubt i can get over that ;) )
23:59:35 <korvo> No worries. I hadn't seen this page at all before, so I appreciate the discussion.
23:59:38 <ais523> it is ideal for the language to exist as, e.g., an implementation or specification elsewhere first, but that is not a requirement
00:00:07 <avih> ais523: agreed
00:01:00 <ais523> a good reason to edit pages created by other people is because you're adding things like discussions of a language's computational class, or interpreters, or relationships between the language and other languages
00:02:11 <esolangs> [[Rail (data structure)]] N https://esolangs.org/w/index.php?oldid=167363 * Corbin * (+1126) Stub a common Brainfuck-only data structure. More words and example code in a moment.
00:02:14 <avih> yeah, i'll probably add my interpreters when they're more than a preview, without asking first.
00:03:11 <korvo> ais523, int-e: ^^^ Stubbed the BF stack-like thing that keeps showing up in lore. I use this in my stack machines, so I have code to bring to the table. My terminology is *not* standard and I would love for you to add your names for situations.
00:03:50 <b_jonas> avih: ping palaiologos as well, he might be interested in that brainfuck speed test thingy
00:03:52 <ais523> korvo: you are missing a generalisation, of interleaving rails
00:04:52 <avih> b_jonas: are they here sometimes?
00:05:00 <korvo> ais523: Ah, so a program can have k distinct rails, sure.
00:05:13 <ais523> I guess I should write an Esimpl-to-BF compiler as a sort of formalisation of this sort of thing
00:05:37 <ais523> but I've also written programs with a sort of "marker rail" that's nonzero in most places but zero in a few, that are used to mark positions on other rails
00:05:38 <avih> i didn't know of http://lvogel.free.fr/bf.html though, and i like it.
00:06:30 <avih> it mentions two test programs which i don't think i;ve seen before: sisihi.b and long.b . does anyone knows where they can be found?
00:07:22 <avih> (i do test with mandelbrot and hanoi. bffsree_gcc is a deamon with that. i have no clue what the f*ck it does to be so fast...)
00:07:38 <b_jonas> avih: only by the standards of how slow this channel is. probably better to ping https://esolangs.org/wiki/User:Palaiologos on the wiki.
00:07:54 <avih> (deamon with hanoi, but in mandelbrot i'm about 2x faster than it)
00:07:58 <ais523> b_jonas: to ping someone you use the user talk page, not the userpage
00:08:03 <ais523> so you linked the wrong page
00:08:06 -!- Lord_of_Life has quit (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine).
00:08:18 <ais523> people who are familiar with MediaWiki will know this but avih isn't
00:08:56 <avih> yeah, i get that it can be some form of communication, but i don't have an account and i haven't used it in general.
00:09:10 <b_jonas> ais523: I was thinking more of the ping feature which you get by writing @ followed by a link to the userpage onto an edit in some other page, such as the talk page of that speed test thingy, ping both palaiologos and None in one go
00:09:38 <ais523> b_jonas: that isn't installed on Esolang
00:09:40 <b_jonas> oh nice, then you're still yet to learn about the base 9 thing
00:10:03 <b_jonas> oh, that's not in this mediawiki installation? good to know
00:10:22 <ais523> the wiki signup process is a bit confusing – we had to make it confusing enough to stop spambots, but most legitimate editors are able to figure it out
00:10:58 <ais523> (we used to get a *lot* of spambots, but the current combination seems to be keeping them out so far)
00:11:08 <avih> ais523: really? what would spambots do with esolangs wiki?!
00:11:26 <ais523> it's what they do with everything else
00:11:53 <avih> i wouldn't think it's worth the effort or power consumption. i get tat maybe on wikipedia or other places with lots of eyes...
00:13:32 <b_jonas> spammers can freely choose where to put the computers that run stuff, and that makes power cheap
00:14:14 <ais523> or steal them, so that they aren't paying for the power
00:15:26 <avih> is it a common thing with wikimedia? wikipedia? i don't think i've ever seen spam in wikimedia sites...
00:16:10 <avih> afaik the most painful these in recent years is scrapping
00:17:56 <ais523> Wikipedia has a very good spam filter
00:18:52 <ais523> there are a lot of attempts to spam on it, but it's hard to automate because as soon as the admins notice patterns in the spam they put in a rule to prevent that specific pattern
00:25:25 <esolangs> [[Rail (data structure)]] https://esolangs.org/w/index.php?diff=167364&oldid=167363 * Corbin * (+1888) Just writing words like it's nanowrimo again. I have not tested any of this; I'm just whipping out the code from memory. Yes, yes! You're the man now, dog!
00:26:08 <avih> korvo: i really like that page with that jit. it also links here https://code.google.com/archive/p/esotope-bfc/wikis/Comparison.wiki , which is interesting and i didn't know of it. currently my interpreter does everything upto and including "simple loops" (my linked bf2c.sh does those too, but not super efficiently)
00:26:47 <avih> (still proud of what it can do in 1k though :) )
00:28:04 <avih> i've seen quite a few bf pages, but i don't think any of them led me either to Laurent's page or that google code page
00:29:31 <korvo> avih: No worries. Eventually you can tackle Lost Kingdom!
00:30:00 <avih> oh, all of my interpreters could tackle that from v0.00001 :)
00:30:20 <korvo> Nice. Lots of interpreters crash on that one.
00:30:33 <avih> including the 4 lines sh code i posted literally here in irc :)
00:30:48 -!- Lord_of_Life has joined.
00:31:49 <avih> you can jit it too: bf2c.sh < LostKingdom.b | tcc -run - /dev/tty (or "con" on windows)
00:33:33 <avih> (but not in the 4 lines sh code, because it doesn't take an infile argument, but recent versions of tcc support custom stdin with "tcc --rstdin /dev/tty -run -", because i added it myself few days ago to tcc mob)
00:38:32 <korvo> I should respect tcc more. I don't really use it much because I'm not a big C fan.
00:40:37 <avih> see, playing with bf improves tcc :)
00:40:48 <esolangs> [[Rail (data structure)]] https://esolangs.org/w/index.php?diff=167365&oldid=167364 * Corbin * (+876) Interleaved rails and a bit of extra detail.
00:42:39 <korvo> avih: Also, I hadn't seen that comparison page before, and the notation there is giving me ideas about how to improve https://esolangs.org/wiki/Algebraic_Brainfuck
00:44:40 <avih> which comparison page? Laurent's?
00:45:27 <avih> (that's your link...)
00:46:32 <korvo> The Google Code page.
00:46:53 <esolangs> [[Algebraic Brainfuck]] M https://esolangs.org/w/index.php?diff=167366&oldid=163679 * Corbin * (+26) /* Computability */ Bluelink.
00:47:57 <avih> oh, i don't think i see comparisons there? (otehr than maybe mentioning which interpreters implement which optimizations?) but it does mention optimizations i didn't think of, which would feel unfair to implement, but that won't stop me ;)
00:48:29 <korvo> I was just going off the URL, that's all.
00:48:42 <avih> yeah, it's good. very nice.
00:49:33 <korvo> FWIW all I'm seeing is a monoid; the way that I currently optimize BF is merely by canonicalizing that monoid. I don't really have a high-minded approach to optimization.
00:50:45 <avih> i don't know what a monoid is, and it feels like i'm missing out on an important high level concept
00:51:41 <avih> korvo: remind me, is your interpreter using any 3rd party jit?
00:51:56 <avih> (other than rpython itself)
00:52:22 <avih> like gnu Lightning or other assemblers?
00:52:45 <korvo> A monoid is an associative binary operation along with a unit. Examples include string concatenation (with the empty string) and addition of natural numbers (with zero). They show up whenever we have a list of things; lists are "free" monoids, which just means that they are monoids regardless of what type they contain.
00:53:41 <avih> feels like lisp
00:53:46 <avih> except higher level :)
00:53:46 <korvo> avih: Nope. RPython has its own backend. I mean, it does use libffi, which I think of as a sort of runtime assembler, but RPython does have all the nasty parts you'd expect, e.g. https://github.com/pypy/pypy/tree/main/rpython/jit/backend/x86
00:53:47 <ais523> I like defining this sort of mathematical structure by showing the rules it has with a familiar example
00:54:12 <ais523> e.g. monoids have 0 + x = x, x + 0 = x, (x + y) + z = x + (y + z) for some reasonable definition of + and 0
00:54:25 <ais523> but those are the only rules, so the operation doesn't have to act like + and 0 in other respects
00:55:08 <korvo> We have a good wiki page, [[monoid]]. They're too common to not talk about. But programmers haven't historically had access to algebraic laws, so they haven't been able to prove that their binary operations are associative.
00:55:11 <ais523> (I don't quite mean "defining" but "explaining")
00:55:23 <avih> korvo: yeah, of course it does, but your code is "normal" python which gets the benefit of running on top of rpython, just like c code benefits from good compiler optimizations, right?
00:56:05 <korvo> avih: That's the idea! In practice, RPython-flavored Python has an object model somewhat like Java, but honestly more like OCaml than anything else I've used.
00:56:10 <avih> (unlike, for instance, c code which uses Lightning)
00:56:57 <korvo> You have full access to Python 2.7 metaprogramming, *once*, when your app is imported into memory. Then the toolchain traces your in-memory compiled program to figure out what it actually does, and compiles those traces to C instead of your original code.
00:57:16 <avih> korvo: that's nice. i like that approach best ("normal" code in an efficient platform)
00:58:38 <korvo> bf.py doesn't really do much with that. Cammy's core interpreter uses metaprogramming to generate a bunch of optimized bytecodes and do some OCaml-module-style codegen for classes. Monte's interpreter has a full-blown nanopass infrastructure, macros for I/O and promises, template classes, and all sorts of weird FFI.
00:58:59 <avih> ais523: korvo: thanks for the monoids info, i'll look into the esolangs page (or elsewhere) later. cheers.
00:59:14 <korvo> No worries! Welcome to abstract algebra. It's fun times.
00:59:33 <korvo> (I learned group theory in order to do cryptography. I envy folks who get to do it just for fun or even just for discrete-maths credit.)
01:00:37 <avih> i implemented a pretty decent JS Promise, conforming to CommonJS 1.1.1 spec... (can be used in mpv js code - which i maintain)
01:01:59 <avih> yeah, never got too much into math in uni or later, beyond the basic stuff, though CS basic math is a bit more than a degree in literature :)
01:02:27 <korvo> Rad. When I did Monte, I was using E's mechanism, copying the pretty pictures at http://www.erights.org/elib/concurrency/refmech.html and now I'm looking at those once again for Vixen. Some things never change.
01:02:40 <b_jonas> oh yeah, this channel sometimes does category theory for some reason
01:02:47 <korvo> It's me, I'm the reason.
01:03:13 -!- 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:04:31 <korvo> I have a problem where I look at a graph and I see a category. Or I look at a monoid and I see a category. I see two objects and I think "I could put an arrow on that"
01:09:27 <avih> i really like promises https://github.com/avih/nopromise/blob/master/nopromise.js
01:09:41 <avih> eh.. https://github.com/avih/nopromise
01:10:39 <avih> there's a pico version too
01:12:20 <b_jonas> I think all mathematicians do that sometimes, just with different tools that they're familiar with, not category theory in particular
01:13:34 <b_jonas> sometimes you know a deep theory that feels like it explains the simple proof better than the more elementary phrasing
01:17:09 <esolangs> [[Rail (data structure)]] https://esolangs.org/w/index.php?diff=167367&oldid=167365 * Corbin * (+507) Explain padding better. Padding is actually really important for small algorithms since [<<] gets really big if we have to add error handling or location detection.
01:18:32 <b_jonas> for me one of these things is that compactness of first order logic shows that if you can prove that no infinite structure satisfies some Ramsey-like restrictions then there's an upper bound for how big finite objects satisfy it. it turns out that this doesn't actually get you any new results, because the proofs for those Ramsey-like theorems are always already explicit enough to give an upper bound, so
01:18:38 <b_jonas> this is at best a guide for what kind of proof you should be looking for.
01:19:14 <korvo> avih: Nice. Monte's version is a great example of the warning, "You can write Java in any language." https://github.com/monte-language/typhon/blob/master/typhon/objects/refs.py
01:19:50 -!- ais523 has quit (Quit: quit).
01:21:05 <korvo> b_jonas: I like that. Ramsey intuition is hard to get going in general. I know the basic party-trick version, which is just finite Ramsey's theorem for graphs, but I don't have the intuition for how it connects to (logical) compactness.
01:21:07 <avih> it's not small... (i think
01:22:34 <b_jonas> like if the task is to prove that every infinite string of a three-letter alphabet has two adjacent copies of some string as an infix then you know in advance that you'll be proving that a long enough string has such an infix
01:22:59 <avih> korvo: it's been a while since i use java. what do you consider "java-ism"? extensive use of OO code, methods and classes?
01:23:40 <b_jonas> in this particular case the upper bound for the length is actually pretty small, something between 10 and 20, but of course that's not always the case, for some Ramsey results your proof will give a huge overkill upper bound and it's hard to guess even what order of magnitude you can improve the bound to
01:23:41 <korvo> b_jonas: Oh! I know the cringiest example. When I think of a hypergraph, I think of a category. So I once blurted out that categories were how to describe an object graph in a certain sort of actor model. I *did* use this to prove that any Hewitt actor model is Cartesian closed and thus a lambda calculus, so it saw some use, but it's very dorky.
01:24:20 <avih> (i never liked it too much TBH. it works, but it requires too much infrastructure for my taste)
01:24:42 <korvo> avih: Yeah. Moreover, the use of lots of classes to solve the Expression Problem. In compilers, this is the problem of having N different behaviors and M different AST nodes; we need N × M different code clauses to handle them all. Here, the AST is all the possible states of a promise, and I basically wrote one method/behavior.
01:25:35 <avih> right. i think c++ code can suffer too from that, but i'm not very experienced in it
01:26:53 <avih> sounds nice and fun (the AST promise thing)
01:27:04 <korvo> Yeah. Lots of corporate C++ especially, particularly backend and gamedev stuff. I worked at Google for a bit and there was very little difference between internal C++, Java, and Python code. When Go was introduced, people started writing Go with that flavor too.
01:28:05 <avih> you can get the dev out of X, but not the X out of the dev :)
01:29:09 <avih> i played with go a bit. it's nice. but then again, it's pike...
01:29:53 <avih> (not dart though)
01:35:57 <esolangs> [[Rail (data structure)]] https://esolangs.org/w/index.php?diff=167368&oldid=167367 * Corbin * (+602) /* Algorithms */ Can't have push without pop. Also use semicolons for comments instead of commas!
03:20:37 <zzo38> I have not used Java much, and not at all recently, but I think it is excessively object oriented programming. OOP is good for some things but Java is too excessive OOP, I think.
03:28:08 <esolangs> [[Gur yvsr]] M https://esolangs.org/w/index.php?diff=167369&oldid=167270 * Placeholding * (+30)
03:34:30 <esolangs> [[Gur yvsr]] https://esolangs.org/w/index.php?diff=167370&oldid=167369 * Placeholding * (+93)
03:40:44 <avih> b_jonas: i think that's an RC1 https://0x0.st/KL4p.txt
03:41:40 <avih> (fit limiting the #include <fcntl> to windows-only if binary IO is enabled)
03:43:29 <avih> (otherwise only the comment is modified)
03:44:24 <avih> i did have to remove one newline though, but it's not too bad.
03:44:35 <avih> it's exactly 1024 :)
03:47:10 <avih> oh, also modified the unbound behavior to double the memory size instead of adding fixed 256 bytes. now it's symmetric, and saved two bytes :)
04:15:44 <esolangs> [[Baulk]] https://esolangs.org/w/index.php?diff=167371&oldid=167273 * Yayimhere2(school) * (+41)
04:18:06 <esolangs> [[Baulk]] https://esolangs.org/w/index.php?diff=167372&oldid=167371 * Yayimhere2(school) * (-14) /* Operators */
04:19:33 -!- Lord_of_Life has quit (Ping timeout: 252 seconds).
04:33:36 <zzo38> Can JIT be effective for emulating instruction sets that have tagged memory?
04:49:18 <esolangs> [[Baulk]] https://esolangs.org/w/index.php?diff=167373&oldid=167372 * Yayimhere2(school) * (+2) /* Examples */
04:51:44 <esolangs> [[Baulk]] https://esolangs.org/w/index.php?diff=167374&oldid=167373 * Yayimhere2(school) * (+198) /* Full description */
04:51:55 <esolangs> [[Baulk]] https://esolangs.org/w/index.php?diff=167375&oldid=167374 * Yayimhere2(school) * (+4) /* Examples */
05:04:09 -!- Lord_of_Life has joined.
05:58:12 <esolangs> [[Baulk]] https://esolangs.org/w/index.php?diff=167376&oldid=167375 * Yayimhere2(school) * (-36) /* Full description */
06:02:25 <esolangs> [[CARP]] M https://esolangs.org/w/index.php?diff=167377&oldid=166735 * TheCanon2 * (+8) Assembly change
06:02:44 <esolangs> [[CARP]] M https://esolangs.org/w/index.php?diff=167378&oldid=167377 * TheCanon2 * (+1) typo
07:06:29 -!- xelxebar has quit (Ping timeout: 260 seconds).
07:09:55 -!- xelxebar has joined.
08:03:06 -!- Sgeo has quit (Read error: Connection reset by peer).
08:04:45 -!- pool has quit (Read error: Connection reset by peer).
08:06:48 -!- pool has joined.
08:15:23 -!- tromp has joined.
09:04:44 -!- pool has quit (Read error: Connection reset by peer).
09:06:49 -!- pool has joined.
09:29:59 -!- ais523 has joined.
09:31:21 -!- esolangist has joined.
09:50:57 <esolangs> [[BF instruction minimalization]] https://esolangs.org/w/index.php?diff=167379&oldid=167361 * Esolangist * (+831) /* User:Esolangist's attempts */
09:53:15 <fungot> ^<lang> <code>; ^def <command> <lang> <code>; ^show [command]; lang=bf/ul, code=text/str:N; ^str 0-9 get/set/add [text]; ^style [style]; ^bool
10:03:07 <esolangist> ^bf ++++++++[>+++++++++<-]>.+.>++++++++[>++++<-]>+.
10:19:57 -!- esolangist has quit (Quit: Client closed).
10:20:24 <esolangs> [[Talk:Burn]] https://esolangs.org/w/index.php?diff=167380&oldid=167349 * Ais523 * (+166) /* Name */ because cell updates are irreversible
10:43:58 <ais523> fungot only knows two programming languages (technically 3 but only the owner gets to run raw Funge code because that could break the sandbox)
10:44:00 <fungot> ais523: madam president, president-in-office of the council on his first appearance. if i am not trying to play its part in this debate. there are still some disturbing grey areas. first, the congolese government continues to block the commission and, indeed, is another issue that the council is preparing to double the resources for this programme will mark a new page in the construction of the europe of networking which you de
10:49:09 <b_jonas> yeah. HackEso knows other languages, and at one point I considered setting up an egel interpreter but I didn't finish.
10:49:21 <b_jonas> but it's a sandbox so if you want you can set up an egel interpreter on it
11:10:10 <esolangs> [[BF instruction minimalization]] https://esolangs.org/w/index.php?diff=167381&oldid=167379 * Esolangist alt * (+697) /* User:Esolangist's attempts */
11:14:13 -!- amby has joined.
11:52:02 <esolangs> [[Rotato]] N https://esolangs.org/w/index.php?oldid=167382 * Esolangist alt * (+1427) Created page with "Rotato, or Rotato Potato is a [[turning tarpit]] by [[User:Esolangist]]. Note from creator: I'm not sure that this is Turing Complete, so would this just be a "turning esolang"? ==Commands (and the wheel)== ===Commands=== <pre> > rotates the wheel right (current
11:59:27 <esolangs> [[Special:Log/upload]] upload * Esolangist alt * uploaded "[[File:Brainturn wheel.png]]"
12:09:41 <esolangs> [[Brainturn]] N https://esolangs.org/w/index.php?oldid=167384 * Esolangist alt * (+562) Created page with "Brainturn is a [[turning tarpit]] by [[User:Esolangist]]. It is a [[BF]] derivative aswell. ==Commands== [[File:Brainturn wheel.png|thumb|The wheel. It starts at +]] <pre> + rotate the wheel left, moving the "wheel pointer" to the right - rotate the wheel righ
12:10:00 <esolangs> [[Brainturn]] https://esolangs.org/w/index.php?diff=167385&oldid=167384 * Esolangist alt * (+1) /* Hello world */
12:17:48 -!- esolangist has joined.
13:05:02 -!- pool has quit (Read error: Connection reset by peer).
13:06:59 -!- pool has joined.
13:12:16 <esolangist> why is nobody editing pages on the wiki
13:12:46 <ais523> there were edits earlier
13:12:57 <ais523> I guess it's just that most people are doing other things atm
13:13:24 <ais523> in fact you left this channel a minute before an edit and joined 7 minutes afterwards
13:15:34 <esolangs> [[RaiseAfloppaFan's Stupid Idea 0/Esolangist]] https://esolangs.org/w/index.php?diff=167386&oldid=167260 * Esolangist * (+71)
13:25:36 -!- esolangist has quit (Quit: Client closed).
14:51:24 <esolangs> [[Self++]] https://esolangs.org/w/index.php?diff=167387&oldid=166959 * H33T33 * (+118)
14:57:35 <esolangs> [[Self++]] https://esolangs.org/w/index.php?diff=167388&oldid=167387 * H33T33 * (+364)
14:59:37 <esolangs> [[Self++]] M https://esolangs.org/w/index.php?diff=167389&oldid=167388 * H33T33 * (-54)
15:04:51 -!- esolangist has joined.
15:07:57 <esolangs> [[Talk:Unicoding]] https://esolangs.org/w/index.php?diff=167390&oldid=158883 * Esolangist * (+252) /* idea */ new section
15:09:40 <esolangs> [[Talk:Unicoding]] https://esolangs.org/w/index.php?diff=167391&oldid=167390 * Esolangist * (+125) /* idea */
15:12:38 <korvo> esolangist: You keep leaving in-between your edits and not seeing the notifications from other users also editing.
15:12:49 -!- esolangist has quit (Quit: Client closed).
15:24:13 -!- esolangist has joined.
15:34:09 <esolangs> [[UnicodeLang]] N https://esolangs.org/w/index.php?oldid=167392 * Esolangist * (+633) Created page with "Welcome to UnicodeLang. You are free to add commands. ==Rules== # No joke commands like " solves the halting problem if the universe is in a black hole" # Go in order of Unicode # Make a new section every time you reach a new Unicode block. # Have fun! ==Commands=
15:36:08 <esolangs> [[User:CollaborativePL]] https://esolangs.org/w/index.php?diff=167393&oldid=164612 * Esolangist * (+148)
15:42:29 <esolangs> [[User:Flashgutten]] https://esolangs.org/w/index.php?diff=167394&oldid=163324 * Flashgutten * (+30) /* Code Code Code Code */
15:48:35 <korvo> [[User:CollaborativePL]] is a joke user created just to justify the user page. I'm going to move it to main.
15:49:19 <esolangs> [[Special:Log/move]] move * Corbin * moved [[User:CollaborativePL]] to [[CollaborativePL]]: Languages go in the main namespace.
15:50:00 <sprout> b_jonas: ah. nevermind. egel is too hard to compile anyway
15:50:20 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
15:53:32 -!- wob_jonas has joined.
15:55:14 <esolangs> [[User:PrySigneToFry/Discussion]] https://esolangs.org/w/index.php?diff=167397&oldid=150847 * Esolangist * (+246)
15:56:05 <wob_jonas> sprout: it's not that hard to compile, and HackEso has a working C++ compiler. IIRC I did manage to compile it, but then I didn't install because I found that I'd need to modify the interpreter or add a wrapper around it to make it more suitable for the bot, as in some combination of (1) not print prompts in non-interactive mode, (2) import
15:56:05 <wob_jonas> libraries automatically, (3) take egel commands from command-line or standard input, (4) automatically exit when the script completes, (5) maybe print result values automatically. I don't remember which ones of these the interpreter didn't know out of box, but it was more than one and eventually I was not interested enough.
15:56:51 <wob_jonas> especially since you were already running a dedicated IRC bot evaluating egel
15:58:19 <wob_jonas> there's probably something about this in the logs
15:59:17 <esolangs> [[Special:Log/delete]] delete * Ais523 * deleted "[[User:CollaborativePL]]": not a user page, and not created by the relevant user
16:00:45 <wob_jonas> oh, the logs suggest that I also had to patch out references to libicu
16:00:57 <ais523> I am wondering whether we should ban "readers edit in the commands" language pages because a) the language doesn't actually exist at the time they're created, b) they never seem to lead to an interesting language, c) they're conceptually all duplicates of each other
16:01:34 <sprout> I think I made it even harder to compile since that by adding a aot phase
16:01:35 <esolangs> [[User:PrySigneToFry/Discussion]] https://esolangs.org/w/index.php?diff=167398&oldid=167397 * Aadenboy * (+450) /* ULTRA IMPORTANT!!! */ context
16:02:24 <sprout> not a jit but an ahead of time phase
16:02:37 <wob_jonas> https://logs.esolangs.org/freenode-esoteric/2020-02.html#ltH shows where I used the standalone irc bot that you ran
16:02:57 <sprout> some binding to liblightning that may or may not ship with your os
16:04:36 <wob_jonas> for some libraries if they are helpful for some on topic experiments and are available from the distribution that HackEso's inside is using, you can just ask fizzie to install the library, because he has admin rights to the machine
16:04:53 <wob_jonas> I've done that with some library earlier, I'm not sure which one, probably libperl-date-manip
16:05:56 <sprout> meh. egel is a succesful experiment with regard to trying out a different operational semantics but a failure as a language
16:06:47 <sprout> the interpreter just kinda stuck after I showed the evaluation mechanism works
16:07:08 <HackEso> /hackenv/bin/`: line 5: rustc: command not found
16:07:49 <HackEso> gcc (Debian 8.3.0-6) 8.3.0 \ Copyright (C) 2018 Free Software Foundation, Inc. \ This is free software; see the source for copying conditions. There is NO \ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
16:09:14 <esolangs> [[User:PrySigneToFry/Discussion]] M https://esolangs.org/w/index.php?diff=167399&oldid=167398 * Aadenboy * (+10) /* ULTRA IMPORTANT!!! */ clarification
16:10:09 <sprout> debian would make stuff hard. I got too used to fedora that just ships with all dependencies out of the box
16:10:45 <korvo> ais523: Also (d) evidence suggests that they will end up like Quorum: basically like Java or PHP or some other boring average object model that supports bland paradigms at best. Ironically, I get to cite Quorum's own research on this; they were trying to blend all colors and came up with mud.
16:10:59 -!- esolangist has quit (Quit: Client closed).
16:11:13 <ais523> korvo: actually they more often end up like HQ9+
16:11:16 <korvo> esolangist: ^^^ If you haven't seen it, Lucky 10000 for the Quorum programming language. It's an excellent example of existing mostly as a warning to other language designers.
16:11:35 <ais523> if you are encouraging people to add commands to a language without defining a data model, a common outcome is that the language doesn't have one
16:11:51 <korvo> ais523: Oh, sure. But that's because none of the editing users actually want to *use* the language. If they have to use it and not merely write graffiti on a wall then they'll come up with something insipid instead.
16:15:44 <korvo> At any rate, I think that forbidding user-edited languages makes a lot of sense from the angle that the wiki isn't a chat service.
16:16:25 <wob_jonas> ais523: yeah, last I checked there was no rust installed, not even the runtime libraries, so I didn't manage to compile a rust program and upload a binary. what I can do is both compile a C++ program on HackEso and run it there, or compile a C++ program locally and upload the binary to HackEso and run it there.
16:17:50 <ais523> now I'm thinking about how often my languages aren't "about" their commands, and may not have distinct commands at all
16:18:27 <ais523> The Waterfall Model sort-of does when viewed as a language, but only for I/O and it isn't an essential (or even commonly implemented) part of the language and isn't part of the underlying compuational model
16:18:29 <wob_jonas> as for a language where any user can define commands, we have a few IRC bots that are like that (HackEso, perlbot, and to a minor extent lambdabot and jevalbot but all commands in those are temporary), as well as Wikiplia, but what's common in these is that there's an implementation and you define commands by implementing them rather than by just
16:18:53 <ais523> meanwhile, things like Advance The Wheel! heavily care about their commands (and for ATW!, even which order they're in) but most of my languages aren't like that
16:19:09 <korvo> Cammy (and an undocumented relative, Culex, not really worth sharing) started out without any data-manipulation commands; they only acted as pipelines which shuffled around data within some data structure. Culex started as a better notation for permutations IIRC.
16:19:14 -!- tromp has joined.
16:19:27 <wob_jonas> and I think a few I've defined commands in esolangs by just suggesting a command to the original maintainer and they implemented it
16:20:48 <ais523> and now I'm thinking about things like the I/D machine and Brainpocalypse II which do clearly have commands, but what those commands are is a matter of opinion/viewpoint
16:21:56 <ais523> actually, the I/D machine gives a really good viewpoint of the issue: if a language has two commands and neither takes arguments, you can run-length-encode it to get a language with one command with an nonnegative-integer argument
16:24:39 <wob_jonas> I think I/D machine is minimal enough that it would turn to a very different language if you added more commands into it
16:26:16 <ais523> or, well, the lack of commands is the point, it wouldn't be interesting if it had more
16:27:33 <korvo> wob_jonas: Oh, interesting. Maybe it's related to the extensible-language movement?
16:28:08 <wob_jonas> yes. for some languages like Egel you can add a library with new functions, implemented in either egel or native code
16:28:24 <wob_jonas> korvo: what is related to the extensible-langauge movement? I don't understand your question
16:31:48 <esolangs> [[Viktor's amazing 4-bit processor]] https://esolangs.org/w/index.php?diff=167400&oldid=166111 * TheBigH * (+595) Did some fixing on the page
16:32:19 <esolangs> [[BF instruction minimalization]] https://esolangs.org/w/index.php?diff=167401&oldid=167381 * Esolangist * (+183) /* User:Esolangist's attempts */
16:32:40 <esolangs> [[BF instruction minimalization]] https://esolangs.org/w/index.php?diff=167402&oldid=167401 * Esolangist * (+2) /* Step 1: Randomization is key */
16:44:27 <ais523> korvo: I tried looking at Quorum but couldn't figure out how it works from the documentation
16:44:51 <wob_jonas> spruit: in the logs, https://logs.esolangs.org/freenode-esoteric/2020-02.html#lMhb is where I start to experiment with compiling egel for HackEso
16:44:52 <ais523> it looks somewhat like Java with differently spelled keywords, but the docs weren't nearly clear enough to let me figure out how the class system works
16:45:06 <ais523> e.g. it mentioned that classes can be instantiated but doesn't explain what that does
16:45:43 <ais523> and I can't figure out whether its class variables are the equivalent of a Java static field or a Java instance field or something else
16:47:24 <wob_jonas> what's this and why is it not on the wiki?
16:47:24 <korvo> wob_jonas: Oh, sorry, I didn't really have a complete thought there. The idea of a user editing the language only in a constrained manner, it reminds me of extensible languages or languages with compiler plugins.
16:48:15 <ais523> wob_jonas: if you're talking about Quorum I don't think it's an esolang, except possibly by accidenet
16:48:41 <korvo> wob_jonas: https://quorumlanguage.com/ Quorum is a language developed entirely from empirical evidence. Features and changes are done by preregistering psychology experiments, testing different versions of the language with students, and considering the measured effect.
16:49:13 <ais523> the docs seem to be (intentionally?) hiding a lot of details
16:49:24 <korvo> ais523: PHP's object model is the closest fit that I know of. Static fields are just instance fields that promise not to be modified, I think.
16:49:32 <ais523> I had to experiment with their interpreter just to determine that "number" was actually a double rather than an arbitrary-precision float
16:49:45 <wob_jonas> korvo: that's more or less how Wikiplia works: there's a core language that you cannot change, but there's a compiler that compiles from a slightly higher level language into the core language and users can edit that. whereas HackEso runs x86_6 linux userspace and you can upload compilers that compile into that; perlbot runs perl and buubot3 macros
16:49:46 <wob_jonas> and you can make definitions using buubot3 macros; lambdabot runs Haskell and you can upload definitions; jevalbot runs J the APL-like and you can upload definitions
16:49:46 <ais523> korvo: Java static fields can be modified, though
16:50:09 <korvo> ais523: Oh, I'm thinking of Java `final`, whoops. I think both PHP and Quorum use `final` too?
16:50:25 <wob_jonas> korvo: that sounds like a crazy premise
16:50:37 <ais523> I didn't find any final in the docs I read – but the Quorum docs are terrible so that doesn't mean it doesn't support it
16:51:10 <ais523> wob_jonas: I've looked at research into keyword names that are understandable for both programmers and non-programmers
16:51:24 <korvo> wob_jonas: For sure. I have a lot of contempt for their underlying metaphysics, but in terms of PLT it's just bland. No new ideas, no interesting approaches to computation, just a kind of tired Sisyphean retread of the worst parts of Pascal's design philosophy.
16:51:38 <ais523> I think they came up with "repeat" for loops as the only keyword that both groups were comfortable with (although I don't think this got as far as determining what sort of loop it was)
16:52:28 <korvo> (I don't really like projects that attempt to twist metaphysics to the point that physics breaks. Quorum ignores how computers work. Dynamicland's another good example; I should stub a page on it if I can keep my cool.)
16:55:04 -!- wob_jonas has quit (Quit: Client closed).
17:04:46 -!- Yayimhere has joined.
17:05:30 -!- pool has quit (Read error: Connection reset by peer).
17:07:01 <Yayimhere> hello peers(is that a valid term? oh well)
17:07:34 -!- pool has joined.
17:11:26 <ais523> Yayimhere: I think it's valid but people don't normally use it in that context
17:19:30 <Yayimhere> could I perhaps ask for some help formalizing a command?
17:20:21 <ais523> you can say what you're stuck on and see if anyone responds
17:20:36 <ais523> although I'm not sure whether I'm personally up to it right now
17:21:03 <Yayimhere> i wanst asking anyone particular, I was just wondering if it was appropriate for this channel
17:22:31 <ais523> well, this channel's about esolangs and related discussion, so it would be on-topic at least (and it is hard to know whether or not anyone will be interested in responding on any given topic)
17:23:11 -!- pool has quit (Read error: Connection reset by peer).
17:24:29 <korvo> Yayimhere: Don't ask to ask; just ask.
17:25:26 -!- pool has joined.
17:36:45 -!- Yayimhere has quit (Ping timeout: 250 seconds).
17:40:58 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
17:50:28 <esolangs> [[Self++]] M https://esolangs.org/w/index.php?diff=167403&oldid=167389 * H33T33 * (+79)
17:53:25 <b_jonas> Yayimhere: fungot prefers to call them "hon. and learned friend the member for [district represented]" or "hon. and learned friend the minister for [department name]"
17:53:26 <fungot> b_jonas: mr president, mr commissioner, ladies and gentlemen, but sometimes things are very difficult to establish these preconditions together in order to achieve them money is needed; the aid conference was successful but more is needed alongside it. it is still deficient. however, the very small budget we are debating whether we can use the facility or not.
18:00:10 <b_jonas> ais523: In the textual descriptions for algorithms in TAOCP, Knuth mostly uses if-goto constructs with multiple different keywords for goto including "go to", "go back to", "return to", "repeat" (for going to the same step where you are), sometimes followed by " step". But there are also inline loops within one step.
18:02:17 <ais523> I have a suspicion that Knuth wrote the algorithms in a way that would map onto asm easily, due to caring about the efficiency of the resulting machine code
18:02:38 <b_jonas> oh, and there are FORTRAN-like counted loops which involve a come-from after a step, as in "C3. Perform step C4, for j = i - 1, i - 2, ..., 1."
18:03:01 <ais523> don't Shakespeare's gotos change form depending on whether they jump forwards or backwards?
18:03:13 <ais523> b_jonas: does C4 run on its own after that? or not?
18:03:14 <b_jonas> I don't know, I was thinking of Chef's loops
18:03:34 <ais523> I remember this being a big problem for Funge-98's y instruction
18:03:42 <b_jonas> ais523: no, but that's because the previous line says "C2. Perform step C3, for i = N, N-1, ..., 2; then terminate the algorithm."
18:04:09 <ais523> which is a loop, and you write the loop body after the instruction, but after y runs normally the loop body is the next thing in the path of execution so it gets run to
18:04:23 <ais523> (except if the argument to y is 0, when it gets skipped for some reason – y is weird)
18:04:30 <ais523> err. is this k rather than y?
18:05:57 <b_jonas> the next algorithm has a step saying "D2. Perform step D3 for 1 ≤ j ≤ N; then go to step D4." so it looks like it just avoids fallthroughs after multi-line loops
18:09:50 <b_jonas> there's also "S1. Perform steps S2 through S5 for j = 2, 3, ..., N; then terminate the algorithm." so this definitely looks like FORTRAN loops that come from after the last step of the loop body
18:10:47 <ais523> I wonder how prevalent comefrom-style loops are nowadays
18:11:01 <ais523> even in non-programming contexts
18:11:53 <b_jonas> I think the non-programming contexts mostly don't use line labels
18:13:00 <ais523> well, they use <ol>-style lists fairly often, which come with built in list item labels to refer to
18:18:38 <b_jonas> what was the Smalltalk-like esolang on the esowiki where when you create an object you give the name but not value of its instance variables and it copies the value from somewhere... maybe from the lexical environment or from self in the creating context
18:19:01 <b_jonas> I think it uses identifiers that are one-character long only
18:20:38 <b_jonas> also many but not all keywords and identifiers are non-ascii
18:21:42 -!- tromp has joined.
18:22:13 <b_jonas> I think I found it, it's https://esolangs.org/wiki/SCOOP
18:26:13 <esolangs> [[User:B jonas/List]] https://esolangs.org/w/index.php?diff=167404&oldid=159727 * B jonas * (+160) [[SCOOP]]
18:44:58 <esolangs> [[BF instruction minimalization]] https://esolangs.org/w/index.php?diff=167405&oldid=167402 * Esolangist alt * (+3) Esolangist alt
18:49:16 <esolangs> [[User:Esolangist/personal talk page]] https://esolangs.org/w/index.php?diff=167406&oldid=167122 * Esolangist alt * (+202) Esolangist alt
18:51:52 <esolangs> [[Rotato]] https://esolangs.org/w/index.php?diff=167407&oldid=167382 * Esolangist alt * (+159) Esolangist alt
19:15:16 -!- ais523 has quit (Quit: quit).
20:24:15 <esolangs> [[User:Esolangist/Template:EsolangistsSignature]] N https://esolangs.org/w/index.php?oldid=167408 * Esolangist alt * (+174) Created page with "<span style="background-color:default;color:blue;">[[User:Esolangist|esolangist]]</span> | [[User talk:Esolangist|do you want to talk to me?]] | it's {{{Time}}} on {{{Date}}}"
20:44:11 <esolangs> [[What are the commands]] N https://esolangs.org/w/index.php?oldid=167409 * Esolangist alt * (+652) Esolangist alt
20:58:21 <esolangs> [[Self-reproducing object]] N https://esolangs.org/w/index.php?oldid=167410 * Corbin * (+2130) Stub a GEB concept.
21:09:09 <esolangs> [[InterpretIt]] N https://esolangs.org/w/index.php?oldid=167411 * Esolangist alt * (+1156) Esolangist alt
21:12:45 <esolangs> [[User:RaiseAfloppaFan3925]] M https://esolangs.org/w/index.php?diff=167412&oldid=167326 * RaiseAfloppaFan3925 * (-1199)
21:15:06 <esolangs> [[Self-reproducing object]] https://esolangs.org/w/index.php?diff=167413&oldid=167410 * Corbin * (+570) Redlink for ganguines.
21:21:54 <esolangs> [[Error quine]] https://esolangs.org/w/index.php?diff=167414&oldid=160700 * Aadenboy * (+3) /* How to write an error quine */ better first and last step
21:23:28 <korvo> Okay, that's good enough for now. I also have a paper by Byrd et al. that shows how to use relational languages like miniKanren to generate quines, twines, thrines, etc. Not sure how to integrate that yet. Also have to write the ganguine article.
21:27:20 <zzo38> Which esolangs use character sets which are not compatible with Unicode, ASCII, EBCDIC, Morse code, Baudot code, and punch cards?
21:39:12 <b_jonas> zzo38: that mostly sounds like esolangs whose input isn't characters, like Piet or efghij
21:41:02 <zzo38> Yes, although I did not mean that, since pictures and that other stuff are not character sets.
21:41:37 <b_jonas> zzo38: unless you're unsatisfied with the mapping of the VIC-20 or PET's character sets to Unicode, which wouldn't be too unreasonable, in which case VIC-20 BASIC or PET BASIC, except those don't count as esoteric
21:43:58 <b_jonas> oh right, my SHARP EL-5120 calculator's BASIC-like language. it doesn't have a tape or magnetic card reader accessory, so there's no mapping of its character set to anything tangible, the characters only exist as bytes in its RAM and many of them encode a whole keyword like cos⁻¹ or GOSUB, so they aren't technically compatible with anything else
21:44:54 <b_jonas> this probably applies to some microcomputer BASICs too, the ones that don't parse keywords from letter sequences but only have keywords as a single character and only show them as multiple letters when displayed
21:45:05 <b_jonas> you have to enter them as one character, usually with a modifier key
21:45:58 <b_jonas> and there are two different keyboard layouts and possibly two different character sets, one for BASIC statements (at the start of a line or after a colon) and one everywhere else, the characteristic example being on the ZX Spectrum
21:46:47 <zzo38> Yes, those would count.
21:47:39 <zzo38> (Although not quite in the way I meant, they still count in a somewhat different way.)
21:48:16 <b_jonas> they have a custom internal characters set (or possibly more than one) that encodes those characters as one byte (or possibly a few bytes)
21:50:24 <b_jonas> and of course there are all sorts of CPU-ran machine code where the program is encoded as bytes (or words of some size) and aren't identified with any character set
22:07:53 <zzo38> I am unsatisfied with the mapping of any character set to Unicode (including Unicode itself, due to various things it does), but some are perhaps less objectionable to others (e.g. possibly the mappings from ISO 8859).
22:08:58 <zzo38> At best, it might be used for approximation of character conversion when you want to display text that you do not have the appropriate fonts for that character set or if you need to convert between character sets but cannot do so directly for whatever reason; even then, it is not really best way to do it but can often provide an approximation which might or might not be suitable depending on your intention.
22:09:42 <esolangs> [[Talk:Burn]] https://esolangs.org/w/index.php?diff=167415&oldid=167380 * Tommyaweosme * (+532) /* Thoughts on burn */
22:11:41 <esolangs> [[User:Tommyaweosme]] https://esolangs.org/w/index.php?diff=167416&oldid=167265 * Tommyaweosme * (+565)
22:18:03 <esolangs> [[HolyFuck]] https://esolangs.org/w/index.php?diff=167417&oldid=165804 * WebNiko * (+1057)
23:19:36 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
23:25:41 -!- Sgeo has joined.
00:47:49 -!- 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:50:07 -!- pool has quit (Read error: Connection reset by peer).
00:52:01 -!- pool has joined.
02:38:09 -!- moony4 has quit (Read error: Connection reset by peer).
02:38:27 -!- moony4 has joined.
03:02:53 -!- slavfox_ has joined.
03:05:40 -!- pool has quit (Read error: Connection reset by peer).
03:07:34 -!- slavfox has quit (*.net *.split).
03:07:35 -!- slavfox_ has changed nick to slavfox.
03:07:52 -!- pool has joined.
04:05:53 -!- pool has quit (Read error: Connection reset by peer).
04:06:25 -!- pool has joined.
04:20:25 -!- Lord_of_Life has quit (Ping timeout: 264 seconds).
04:33:09 -!- pool has quit (Read error: Connection reset by peer).
04:35:16 -!- pool has joined.
04:38:30 <esolangs> [[SletScript]] https://esolangs.org/w/index.php?diff=167418&oldid=167152 * I am islptng * (-46)
04:40:14 -!- Lord_of_Life has joined.
05:57:33 <esolangs> [[Uiua]] N https://esolangs.org/w/index.php?oldid=167419 * ColorfulGalaxy's CA discoveries * (+152) ----) (Create in response to creation on Shidinn Wiki
05:58:06 <esolangs> [[Uiua]] M https://esolangs.org/w/index.php?diff=167420&oldid=167419 * ColorfulGalaxy's CA discoveries * (+57)
05:58:21 <esolangs> [[Uiua]] https://esolangs.org/w/index.php?diff=167421&oldid=167420 * ColorfulGalaxy's CA discoveries * (+0) ----
05:59:21 <esolangs> [[Uiua]] https://esolangs.org/w/index.php?diff=167422&oldid=167421 * ColorfulGalaxy's CA discoveries * (+24) ----
06:01:33 <esolangs> [[List of quines]] https://esolangs.org/w/index.php?diff=167423&oldid=159570 * ColorfulGalaxy's CA discoveries * (+4) ----
06:35:41 <esolangs> [[Talk:Burn]] https://esolangs.org/w/index.php?diff=167424&oldid=167415 * Yayimhere2(school) * (+311) /* Thoughts on burn */
06:37:44 <esolangs> [[FuckTheBit]] N https://esolangs.org/w/index.php?oldid=167425 * FluixMakesEsolangs * (+1305) Initial Commit
06:39:09 <esolangs> [[User:FluixMakesEsolangs]] https://esolangs.org/w/index.php?diff=167426&oldid=150275 * FluixMakesEsolangs * (+27)
07:34:54 -!- Sgeo has quit (Read error: Connection reset by peer).
07:36:45 -!- Lord_of_Life has quit (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine).
08:07:01 -!- pool has quit (Read error: Connection reset by peer).
08:09:03 -!- pool has joined.
08:25:08 -!- ais523 has joined.
08:25:53 -!- Lord_of_Life has joined.
08:33:21 -!- tromp has joined.
09:05:40 -!- Lord_of_Life has quit (Remote host closed the connection).
09:23:56 -!- Lord_of_Life has joined.
11:07:46 <esolangs> [[Chicken chicken chicken: chicken chicken]] M https://esolangs.org/w/index.php?diff=167427&oldid=167120 * None1 * (+11) Fix mistakes
11:27:21 <esolangs> [[User:Elphan]] M https://esolangs.org/w/index.php?diff=167428&oldid=158382 * Elphan * (+70)
12:34:29 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
12:37:53 <esolangs> [[User:As]] https://esolangs.org/w/index.php?diff=167429&oldid=166914 * As * (+92)
12:59:07 -!- amby has joined.
13:32:53 -!- Lord_of_Life has quit (Ping timeout: 260 seconds).
13:33:31 <esolangs> [[CounterScrbrd]] N https://esolangs.org/w/index.php?oldid=167430 * As * (+873) Created page with "{{wrongtitle|title=<#CounterScrbrd#>}} '''<#CounterScrbrd#>''' is a language inspired by Minecraft commands related to the Scoreboard and counters. The language does not have many commands, and it can be partially implemented in Minecraft. <#CounterScrbrd#> language
13:33:54 <esolangs> [[CounterScrbrd]] https://esolangs.org/w/index.php?diff=167431&oldid=167430 * As * (+8)
14:02:25 <esolangs> [[Hostile snakes]] https://esolangs.org/w/index.php?diff=167432&oldid=144125 * Yayimhere2(school) * (-40) /* how it works */
14:07:01 -!- tromp has joined.
14:07:27 -!- pool has quit (Read error: Connection reset by peer).
14:09:35 -!- pool has joined.
14:46:49 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=167433&oldid=167043 * Yayimhere2(school) * (-175)
15:08:50 -!- Everything has joined.
16:07:51 <esolangs> [[What the Branflakes]] N https://esolangs.org/w/index.php?oldid=167434 * Esolangist alt * (+1347) Esolangist alt
16:10:00 <esolangs> [[Befreege]] https://esolangs.org/w/index.php?diff=167435&oldid=133270 * Esolangist alt * (+25) Esolangist alt
16:10:09 <esolangs> [[Befreege]] https://esolangs.org/w/index.php?diff=167436&oldid=167435 * Esolangist alt * (+0) Esolangist alt
16:29:46 -!- Lord_of_Life has joined.
16:38:56 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
16:45:54 <esolangs> [[User:Esolangist/Chess]] N https://esolangs.org/w/index.php?oldid=167437 * Esolangist alt * (+1130) Esolangist alt
16:50:35 <esolangs> [[User:Esolangist/Template:Chess]] N https://esolangs.org/w/index.php?oldid=167438 * Esolangist alt * (+83) Created page with "[[User:{{{1}}}]] challenges {{{2}}} to a game of chess! [[{{{3}}}]] {{{signature}}}"
16:51:11 <esolangs> [[User:Esolangist/Chess]] https://esolangs.org/w/index.php?diff=167439&oldid=167437 * Esolangist alt * (-15) Esolangist alt
16:51:17 -!- tromp has joined.
16:52:03 <esolangs> [[User:Esolangist/Template:Chess]] https://esolangs.org/w/index.php?diff=167440&oldid=167438 * Esolangist alt * (+22) Esolangist alt
16:55:55 -!- Yayimhere has joined.
16:57:41 <esolangs> [[User:PrySigneToFry/Discussion]] https://esolangs.org/w/index.php?diff=167441&oldid=167399 * Esolangist alt * (+192) Esolangist alt
16:57:51 <Yayimhere> 'ello people, I have this command {xyz}. basically what It does is, does not exist, however whenever any symbol within it changes in some way(like for example moves across the program in some way), all of the symbols inside of the {} move with it
17:01:13 <esolangs> [[CollaborativePL]] https://esolangs.org/w/index.php?diff=167442&oldid=167395 * Esolangist alt * (+142) Updated info
17:04:47 <ais523> hmm, I suspect you might have to put limits on the "in some way" to make that make sense
17:05:09 <ais523> but normally the way you formalise this sort of thing is to define {} as not being a command, but rather a way to group commands
17:05:33 <ais523> and then, say, a command that moved all 'y's would be defined instead as "move every group of commands that contains a 'y'"
17:06:02 <ais523> that way you can check that your definition make sense with all the command-changing commands
17:10:57 <esolangs> [[FuckTheBit]] M https://esolangs.org/w/index.php?diff=167443&oldid=167425 * FluixMakesEsolangs * (+28) Added other Self-modifying tag
17:21:36 -!- joast has quit (Quit: Leaving.).
17:25:10 <avih> korvo: by the way, you said earlier that your interpreter is second to Laurent's right? is it typically the same factor? e.g. typically 2x slower or some such? if yes, what's this factor?
17:25:49 <avih> (i would try it, but i don't currently have the setup for it)
17:28:19 <avih> i think mine's typically x2-x3 slower than Laurant's. but with bffsree_gcc it's weird, both compared to Laurant's and mine. in some cases it just blitz everything (like hanoi), and in some others is average-ish at best (good, but nothing to write home about).
17:29:38 <avih> it's a shame its source is not available. i think i know what it does, which mine doesn't do (i think it flattens some nested loops).
17:30:22 <avih> (probably only one level above the "standard" balanced loops, and likely not always)
17:31:48 <esolangs> [[Wikitext]] N https://esolangs.org/w/index.php?oldid=167444 * Esolangist alt * (+1581) Esolangist alt
17:32:46 <esolangs> [[Wikitext]] https://esolangs.org/w/index.php?diff=167445&oldid=167444 * Esolangist alt * (+1) Esolangist alt
17:33:19 <esolangs> [[Wikitext]] https://esolangs.org/w/index.php?diff=167446&oldid=167445 * Esolangist alt * (+56) Esolangist alt
17:33:36 <esolangs> [[Wikitext]] https://esolangs.org/w/index.php?diff=167447&oldid=167446 * Esolangist alt * (+1) Esolangist alt
17:43:30 -!- Everything has quit (Read error: Connection reset by peer).
18:01:10 <esolangs> [[Craftunge]] N https://esolangs.org/w/index.php?oldid=167448 * Esolangist alt * (+1547) Esolangist alt
18:03:24 -!- Yayimhere has quit (Quit: Client closed).
18:07:50 -!- pool has quit (Read error: Connection reset by peer).
18:12:00 -!- pool has joined.
18:21:06 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
18:30:39 -!- joast has joined.
18:38:50 -!- tromp has joined.
18:42:37 -!- zzo38 has quit (Ping timeout: 264 seconds).
18:46:14 <korvo> avih: Oh, I don't remember the exact factor. Probably somewhere between 1-2x. I only remember what I learned: I should take GNU Lightning seriously, on par with RPython or Truffle. (Friends don't let friends use Truffle because Oracle owns it.)
18:50:18 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
19:08:03 <esolangs> [[User:Hakerh400/Proof aux001]] N https://esolangs.org/w/index.php?oldid=167449 * Hakerh400 * (+5284) Created page with "We are given a sequence <math>a : \mathbb{N} \to \mathbb{N}</math> of positive integers (i.e., <math>a(n) \geq 1</math> for all <math>n</math>) such that: # <math>a(n) \leq r</math> for all <math>n</math>, where <math>r</math> is a fixed positive
19:09:32 <esolangs> [[User:Hakerh400/Proof aux001]] https://esolangs.org/w/index.php?diff=167450&oldid=167449 * Hakerh400 * (+9555)
19:11:52 <esolangs> [[User:Hakerh400/Proof aux001]] https://esolangs.org/w/index.php?diff=167451&oldid=167450 * Hakerh400 * (+4)
19:16:59 <avih> korvo: x1-2 is very nice. i'm not there yet :)
19:18:39 <avih> to be optimize further i need to expand my opcodes vocabulary, so that they can represent higher level of abstraction.
19:22:47 <avih> though again, at least with the precompiled binaries on windows, this is ~ 1.5x faster than Laurent's for me https://github.com/rdebath/Brainfuck and it supports Lightning but this one is compiled only with LuaJIT's Dynasm.
19:23:44 <avih> but at least for now, i prefer to stay with minimal plain c and no jit
19:26:00 -!- zzo38 has joined.
19:30:27 -!- zzo38 has quit (Ping timeout: 244 seconds).
19:33:03 -!- tromp has joined.
20:10:04 -!- pool has quit (Read error: Connection reset by peer).
20:11:17 -!- zzo38 has joined.
20:12:11 -!- pool has joined.
20:24:37 <esolangs> [[SharkScript]] N https://esolangs.org/w/index.php?oldid=167452 * Esolangist * (+1080) Created page with "SharkScript is an esolang by [[User:Esolangist]]. ==Memory== The memory is a 2D "sea" (many tapes, x square) with a "shark" (memory pointer) and "fishes" (values) ===Fishes=== Trout - 0 Cod - 1 Salmon - 2 Tuna - 3 Halibut - 4 Seahorse - 5 Carp - 6 Parrotfi
20:33:33 <esolangs> [[User:Esolangist]] https://esolangs.org/w/index.php?diff=167453&oldid=167353 * Esolangist * (+254) /* My Esolangs */
20:50:01 -!- zzo38 has quit (Ping timeout: 244 seconds).
20:50:02 -!- zzo38_ has joined.
20:50:16 -!- zzo38_ has changed nick to zzo38.
20:54:58 -!- zzo38 has quit (Ping timeout: 255 seconds).
20:55:25 -!- zzo38 has joined.
21:10:06 -!- pool has quit (Read error: Connection reset by peer).
21:12:14 -!- pool has joined.
21:40:17 -!- ski has quit (*.net *.split).
21:40:17 -!- ^[ has quit (*.net *.split).
21:40:17 -!- nitrix has quit (*.net *.split).
21:41:42 -!- ski has joined.
21:41:42 -!- ^[ has joined.
21:41:42 -!- nitrix has joined.
22:02:55 -!- ais523 has quit (Quit: quit).
23:04:38 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
23:34:30 -!- DOS_User has joined.
23:34:38 -!- DOS_User has changed hostmask to ~DOS_User@user/DOS-User:11249.
23:57:11 -!- DOS_User has quit (Remote host closed the connection).
23:58:23 -!- Sgeo has joined.
23:59:33 <esolangs> [[User:Waffelz]] M https://esolangs.org/w/index.php?diff=167454&oldid=166196 * Waffelz * (+6117)
00:01:00 <esolangs> [[User:Waffelz]] M https://esolangs.org/w/index.php?diff=167455&oldid=167454 * Waffelz * (-3039)
00:08:05 -!- Lord_of_Life has quit (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine).
00:09:01 -!- Lord_of_Life has joined.
00:10:22 -!- pool has quit (Read error: Connection reset by peer).
00:10:49 -!- pool has joined.
01:10:35 -!- pool has quit (Read error: Connection reset by peer).
01:12:40 -!- pool has joined.
01:39:15 -!- 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:32:59 <esolangs> [[]] https://esolangs.org/w/index.php?diff=167456&oldid=124342 * I am islptng * (+36)
03:52:08 -!- zzo38 has quit (Ping timeout: 260 seconds).
03:56:16 -!- zzo38 has joined.
05:28:12 -!- Lord_of_Life has quit (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine).
05:46:57 -!- Lord_of_Life has joined.
05:53:42 -!- Lord_of_Life has quit (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine).
06:14:52 -!- Lord_of_Life has joined.
06:59:46 <esolangs> [[Combined() Task() Force()]] https://esolangs.org/w/index.php?diff=167457&oldid=137078 * Yayimhere2(school) * (+11) /* commands */
07:00:34 <esolangs> [[):]] https://esolangs.org/w/index.php?diff=167458&oldid=146171 * Yayimhere2(school) * (+15) /* computational class */
07:03:05 <esolangs> [[Unlambda to Underflow]] https://esolangs.org/w/index.php?diff=167459&oldid=167121 * Yayimhere2(school) * (+1)
07:04:22 <esolangs> [[Underflow]] https://esolangs.org/w/index.php?diff=167460&oldid=167078 * Yayimhere2(school) * (-58) /* Memory */
07:07:40 -!- ais523 has joined.
07:37:02 -!- tromp has joined.
07:53:00 -!- Sgeo has quit (Read error: Connection reset by peer).
08:13:44 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
08:24:25 -!- tromp has joined.
09:04:28 <esolangs> [[Underflow]] https://esolangs.org/w/index.php?diff=167461&oldid=167460 * Yayimhere2(school) * (+36) /* Underload to Underflow */
09:05:28 <esolangs> [[Underflow]] https://esolangs.org/w/index.php?diff=167462&oldid=167461 * Yayimhere2(school) * (+2)
09:06:08 <esolangs> [[Underflow]] https://esolangs.org/w/index.php?diff=167463&oldid=167462 * Yayimhere2(school) * (+2) /* Underload to Underflow */
09:48:01 <esolangs> [[User:Tpaefawzen]] https://esolangs.org/w/index.php?diff=167464&oldid=157051 * Tpaefawzen * (+641)
09:56:35 <esolangs> [[User:Gilbert189/Babalang+]] https://esolangs.org/w/index.php?diff=167465&oldid=156615 * Gilbert189 * (+2282)
09:57:09 <esolangs> [[User:Gilbert189/Babalang+]] M https://esolangs.org/w/index.php?diff=167466&oldid=167465 * Gilbert189 * (+1) oops forgot a space
11:04:36 <esolangs> [[Turing Machine But Way Worse]] https://esolangs.org/w/index.php?diff=167467&oldid=161791 * Tpaefawzen * (+386) /* Tutorial */ +machine model
11:05:09 <esolangs> [[Turing Machine But Way Worse]] https://esolangs.org/w/index.php?diff=167468&oldid=167467 * Tpaefawzen * (+5) /* Printing */ syntax
11:21:15 <esolangs> [[Iwashi]] N https://esolangs.org/w/index.php?oldid=167469 * Tpaefawzen * (+174) +1
11:22:24 <esolangs> [[Iwashi]] https://esolangs.org/w/index.php?diff=167470&oldid=167469 * Tpaefawzen * (+149) Links
11:45:39 <esolangs> [[User:Gilbert189/Babalang+]] https://esolangs.org/w/index.php?diff=167471&oldid=167466 * Gilbert189 * (+74) I forgot TEXT_ exists
11:53:51 <esolangs> [[Uiua]] https://esolangs.org/w/index.php?diff=167472&oldid=167422 * Tpaefawzen * (+74)
11:55:10 <esolangs> [[Uiua]] https://esolangs.org/w/index.php?diff=167473&oldid=167472 * Tpaefawzen * (+88)
12:15:10 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
12:33:36 -!- lisbeths has joined.
12:48:25 -!- amby has joined.
13:00:49 <esolangs> [[Place]] M https://esolangs.org/w/index.php?diff=167474&oldid=167123 * JIT * (+3) /* Exmp */
13:05:11 <esolangs> [[User:Gilbert189/Babalang+]] https://esolangs.org/w/index.php?diff=167475&oldid=167471 * Gilbert189 * (+54) clarified some things
13:11:16 -!- pool has quit (Read error: Connection reset by peer).
13:13:24 -!- pool has joined.
13:34:21 <esolangs> [[Chicken chicken chicken: chicken chicken]] M https://esolangs.org/w/index.php?diff=167476&oldid=167427 * None1 * (-72) /* Example programs */ Fix
15:09:13 -!- Lord_of_Life has quit (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine).
15:15:22 -!- tromp has joined.
15:28:50 -!- Lord_of_Life has joined.
16:26:51 -!- Lord_of_Life has quit (Ping timeout: 250 seconds).
16:27:20 -!- Lord_of_Life has joined.
16:46:00 -!- lisbeths has quit.
16:47:27 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
17:22:35 -!- tromp has joined.
17:43:34 <esolangs> [[Wikitext]] https://esolangs.org/w/index.php?diff=167477&oldid=167447 * Esolangist alt * (+72) Esolangist alt
17:48:18 <esolangs> [[Talk:Along and Across]] https://esolangs.org/w/index.php?diff=167478&oldid=62748 * Yayimhere2(school) * (+347)
17:52:29 <esolangs> [[Talk:Along and Across]] https://esolangs.org/w/index.php?diff=167479&oldid=167478 * Yayimhere2(school) * (+104)
18:18:19 <esolangs> [[Whimsyx]] N https://esolangs.org/w/index.php?oldid=167480 * Esolangist alt * (+1996) Esolangist alt
18:18:31 <esolangs> [[Whimsyx]] https://esolangs.org/w/index.php?diff=167481&oldid=167480 * Esolangist alt * (+1) Esolangist alt
18:18:51 <esolangs> [[Whimsyx]] https://esolangs.org/w/index.php?diff=167482&oldid=167481 * Esolangist alt * (+29) Esolangist alt
18:19:28 <esolangs> [[User:Esolangist]] https://esolangs.org/w/index.php?diff=167483&oldid=167453 * Esolangist alt * (+47) Esolangist alt
18:25:42 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=167484&oldid=167433 * Yayimhere2(school) * (-40) /* (Surprisingly enough) a short list of examples */
18:50:30 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
19:03:52 <esolangs> [[Myoozik]] N https://esolangs.org/w/index.php?oldid=167485 * Esolangist alt * (+909) Esolangist alt
19:06:35 <esolangs> [[List of ideas]] https://esolangs.org/w/index.php?diff=167486&oldid=166999 * Esolangist alt * (+203) Esolangist alt
19:08:14 <esolangs> [[User:Esolangist]] https://esolangs.org/w/index.php?diff=167487&oldid=167483 * Esolangist alt * (+20) Esolangist alt
19:15:54 -!- tromp has joined.
19:25:23 <esolangs> [[0134]] https://esolangs.org/w/index.php?diff=167488&oldid=167339 * Yayimhere2(school) * (+20) /* computational class */
19:27:17 <esolangs> [[0134]] https://esolangs.org/w/index.php?diff=167489&oldid=167488 * Yayimhere2(school) * (+11) /* syntax */
19:28:44 <esolangs> [[0134]] https://esolangs.org/w/index.php?diff=167490&oldid=167489 * Yayimhere2(school) * (+6) /* syntax */
19:43:58 <esolangs> [[Parabox]] N https://esolangs.org/w/index.php?oldid=167491 * Esolangist alt * (+770) Esolangist alt
19:55:59 <esolangs> [[Brainhash]] N https://esolangs.org/w/index.php?oldid=167492 * Esolangist alt * (+553) Esolangist alt
19:56:54 <esolangs> [[Talk:Parabox]] N https://esolangs.org/w/index.php?oldid=167493 * Aadenboy * (+347) Created page with "[[wikipedia:Patrick's Parabox|patrick's parabox]] reference? ~~~~"
19:57:18 <esolangs> [[List of ideas]] https://esolangs.org/w/index.php?diff=167494&oldid=167486 * Esolangist alt * (+70) Esolangist alt
20:09:26 <esolangs> [[Marbl]] N https://esolangs.org/w/index.php?oldid=167495 * Esolangist alt * (+333) Esolangist alt
20:16:10 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
20:19:39 <esolangs> [[User:As]] https://esolangs.org/w/index.php?diff=167496&oldid=167429 * As * (+119)
20:24:23 -!- tromp has joined.
20:40:46 -!- nitrix has quit (Ping timeout: 244 seconds).
20:41:37 -!- nitrix has joined.
21:11:41 -!- pool has quit (Read error: Connection reset by peer).
21:13:47 -!- pool has joined.
21:15:23 -!- ais523 has quit (Quit: quit).
21:56:40 <esolangs> [[Esofish]] https://esolangs.org/w/index.php?diff=167497&oldid=142065 * Kaveh Yousefi * (+226) Added a hyperlink to my implementation of the Esofish programming language on GitHub, altered the Unimplemented tag to Implemented, amended a few orthographic mistakes, and improved the formatting.
22:06:22 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
22:09:51 -!- tromp has joined.
23:31:37 -!- Sgeo has joined.
23:34:19 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
00:37:32 <esolangs> [[Special:Log/newusers]] create * PhiPhiPHipHi2.0 * New user account
00:38:11 -!- 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:39:45 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=167498&oldid=167325 * PhiPhiPHipHi2.0 * (+110)
00:44:55 <esolangs> [[Brainyay]] https://esolangs.org/w/index.php?diff=167499&oldid=143750 * PhiPhiPHipHi2.0 * (-765)
00:56:26 <esolangs> [[Brainyay]] https://esolangs.org/w/index.php?diff=167500&oldid=167499 * PhiPhiPHipHi2.0 * (-2072)
00:56:59 <esolangs> [[Brainyay]] https://esolangs.org/w/index.php?diff=167501&oldid=167500 * PhiPhiPHipHi2.0 * (-15)
00:57:36 <esolangs> [[Brainyay]] https://esolangs.org/w/index.php?diff=167502&oldid=167501 * PhiPhiPHipHi2.0 * (-15)
00:58:36 <esolangs> [[Talk:Graphical Brainfuck]] N https://esolangs.org/w/index.php?oldid=167503 * PhiPhiPHipHi2.0 * (+51) Created page with "This is pretty cool, I wonder if it could run doom."
01:03:32 -!- Toki has joined.
01:10:47 <esolangs> [[Talk:Function-level programming]] M https://esolangs.org/w/index.php?diff=167504&oldid=167362 * Fpstefan * (+1)
01:11:56 -!- pool has quit (Read error: Connection reset by peer).
01:14:03 -!- pool has joined.
01:14:39 -!- Toki has left.
01:31:29 -!- Lord_of_Life has quit (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine).
02:12:06 -!- pool has quit (Read error: Connection reset by peer).
02:14:09 -!- pool has joined.
03:00:45 -!- Lord_of_Life has joined.
03:12:13 -!- pool has quit (Read error: Connection reset by peer).
03:14:13 -!- pool has joined.
04:10:53 <esolangs> [[3ISC]] N https://esolangs.org/w/index.php?oldid=167505 * PhiPhiPHipHi2.0 * (+1006) Created page with "3ISC is a theoretical programming language created by user PhiPhiPHipHi2.0 (Phoenix Irwin). You may be able to tell by the name, it is a computer that uses 3 instructions (or 5 if you use IO) it is similar to brainfuck in that it uses a long tape with a pointer po
04:16:10 <esolangs> [[Brainyay]] https://esolangs.org/w/index.php?diff=167506&oldid=167502 * PhiPhiPHipHi2.0 * (+97)
05:28:36 <esolangs> [[User:I am islptng]] https://esolangs.org/w/index.php?diff=167507&oldid=164743 * I am islptng * (+8)
05:31:47 <esolangs> [[SletScript]] https://esolangs.org/w/index.php?diff=167508&oldid=167418 * I am islptng * (+63)
05:57:39 <esolangs> [[SletScript]] https://esolangs.org/w/index.php?diff=167509&oldid=167508 * I am islptng * (+393)
06:12:26 -!- pool has quit (Read error: Connection reset by peer).
06:14:20 -!- pool has joined.
07:10:42 -!- Lord_of_Life has quit (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine).
07:29:51 -!- Lord_of_Life has joined.
07:58:02 -!- Lord_of_Life has quit (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine).
07:58:31 -!- Lord_of_Life has joined.
08:03:33 -!- tromp has joined.
08:11:15 -!- Lord_of_Life has quit (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine).
08:11:30 -!- Sgeo has quit (Read error: Connection reset by peer).
08:17:41 -!- ais523 has joined.
08:24:06 <esolangs> [[Special:Log/newusers]] create * CaSilicate * New user account
08:31:16 -!- Lord_of_Life has joined.
08:58:00 <esolangs> [[B9]] M https://esolangs.org/w/index.php?diff=167510&oldid=166611 * JIT * (+10)
09:33:31 <esolangs> [[Not hundred]] N https://esolangs.org/w/index.php?oldid=167511 * Yayimhere2(school) * (+1153) Created page with "'''Not hundred''' is an esolang created by [[User:Yayimhere]], based off of the two command concatenative language defined on the [[Underload]] page. it was created to be the "across" language in a specific combo of [[Along and Across]]. In Not hundred, a
09:40:01 <esolangs> [[Not hundred]] https://esolangs.org/w/index.php?diff=167512&oldid=167511 * Yayimhere2(school) * (-314)
09:43:13 <esolangs> [[Not hundred]] https://esolangs.org/w/index.php?diff=167513&oldid=167512 * Yayimhere2(school) * (+0) /* Command specification */
10:13:36 <esolangs> [[User:Ukeharu]] M https://esolangs.org/w/index.php?diff=167514&oldid=108352 * Ukeharu * (-306) Update to introduction
10:14:20 <esolangs> [[User:Ukeharu]] M https://esolangs.org/w/index.php?diff=167515&oldid=167514 * Ukeharu * (-155) /* Contact */
10:20:59 <esolangs> [[User:Ukeharu]] M https://esolangs.org/w/index.php?diff=167516&oldid=167515 * Ukeharu * (+407) /* Contact */
10:52:30 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
11:00:12 -!- tromp has joined.
12:17:51 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
12:21:11 -!- chiselfuse has quit (Remote host closed the connection).
12:21:26 -!- chiselfu1e has joined.
12:25:38 -!- amby has joined.
12:41:37 <esolangs> [[Brainfuck]] M https://esolangs.org/w/index.php?diff=167517&oldid=166014 * C0ffee * (+98) added scratch interpreter
12:43:10 <esolangs> [[Brainfuck]] M https://esolangs.org/w/index.php?diff=167518&oldid=167517 * C0ffee * (+12)
13:29:58 <esolangs> [[User:Ukeharu]] M https://esolangs.org/w/index.php?diff=167519&oldid=167516 * Ukeharu * (+157) Add esolangs list
13:30:36 <esolangs> [[User:Ukeharu]] M https://esolangs.org/w/index.php?diff=167520&oldid=167519 * Ukeharu * (+16) /* My Esolangs */
13:40:53 <esolangs> [[Works in progress]] M https://esolangs.org/w/index.php?diff=167521&oldid=165738 * Ukeharu * (+36)
13:46:39 -!- tromp has joined.
14:03:38 <esolangs> [[Splaytime]] M https://esolangs.org/w/index.php?diff=167522&oldid=99746 * Ukeharu * (+25)
14:07:01 <esolangs> [[Splaytime]] M https://esolangs.org/w/index.php?diff=167523&oldid=167522 * Ukeharu * (+6)
14:09:01 -!- pr1sm has joined.
14:09:51 -!- pr1sm has quit (Remote host closed the connection).
14:13:02 -!- pool has quit (Read error: Connection reset by peer).
14:14:09 <esolangs> [[Splaytime]] M https://esolangs.org/w/index.php?diff=167524&oldid=167523 * Ukeharu * (+24)
14:14:58 -!- pool has joined.
14:32:17 <esolangs> [[Alno]] N https://esolangs.org/w/index.php?oldid=167525 * Yayimhere2(school) * (+1565) Created page with "'''Alno''' is an [[Along and Across]] language created by [[User:Yayimhere]]. It is composed of a subset of algebra(Add, subtract, multiply, divide, modulo and brackets), and [[Not hundred]]. Alno's computational class is currently unknown, though it propably is
14:37:38 <esolangs> [[Works in progress]] M https://esolangs.org/w/index.php?diff=167526&oldid=167521 * Ukeharu * (-2)
15:18:23 -!- Sgeo has joined.
15:24:06 <esolangs> [[Finite Countermodel Machine]] N https://esolangs.org/w/index.php?oldid=167527 * Ukeharu * (+1752) Created page with "{{infobox proglang |name=Finite Countermodel Machine |paradigms=[[:Category:Declarative paradigm|declarative]], logic |author=[[User:Ukeharu]] |year=[[:Category:2025|2025]] |memsys=State-based |dimensions=one-dimensional |class=[[:Category:Finite sta
15:26:58 <korvo> Cautiously excited for this one.
15:43:58 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
15:53:13 <esolangs> [[Finite Countermodel Machine]] https://esolangs.org/w/index.php?diff=167528&oldid=167527 * Aadenboy * (+7) {{WIP}}
16:07:14 -!- tromp has joined.
16:13:20 -!- pool has quit (Read error: Connection reset by peer).
16:13:41 -!- pool has joined.
16:25:40 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
16:26:18 -!- Lord_of_Life_ has joined.
16:27:37 -!- Lord_of_Life has quit (Ping timeout: 264 seconds).
16:27:40 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
16:30:35 <esolangs> [[Algebraic Brainfuck]] https://esolangs.org/w/index.php?diff=167529&oldid=167366 * Corbin * (+2704) /* As a monoid */ Document pointer propagation. Handwrite some Python; this is basically how I'd write it in RPython.
16:43:49 -!- tromp has joined.
17:59:02 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
18:06:21 -!- tromp has joined.
18:36:56 -!- pr1sm has joined.
19:21:26 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
19:24:17 -!- simcop2387 has quit (Quit: ZNC 1.9.1+deb2+b3 - https://znc.in).
19:24:17 -!- perlbot has quit (Quit: ZNC 1.9.1+deb2+b3 - https://znc.in).
19:24:34 -!- ais523 has quit (Quit: quit).
19:25:28 <esolangs> [[Self++]] M https://esolangs.org/w/index.php?diff=167530&oldid=167403 * H33T33 * (-26)
19:51:49 -!- pr1sm has quit (Remote host closed the connection).
21:04:57 -!- simcop2387 has joined.
21:08:39 -!- ais523 has joined.
21:09:47 -!- FreeFull has joined.
21:13:40 -!- pool has quit (Read error: Connection reset by peer).
21:14:33 -!- perlbot has joined.
21:15:50 -!- pool has joined.
21:24:08 -!- simcop2387 has quit (Ping timeout: 240 seconds).
21:24:36 -!- perlbot has quit (Ping timeout: 256 seconds).
21:36:17 <esolangs> [[Talk:Graphical Brainfuck]] https://esolangs.org/w/index.php?diff=167531&oldid=167503 * Esolangist * (+208)
21:44:40 -!- perlbot has joined.
21:45:40 -!- simcop2387 has joined.
21:58:08 -!- FreeFull has quit (Quit: Lost terminal).
22:35:39 -!- tromp has joined.
23:13:51 -!- pool has quit (Read error: Connection reset by peer).
23:15:36 -!- pool has joined.
23:24:55 -!- chloetax8 has joined.
23:25:31 -!- chloetax has quit (Ping timeout: 264 seconds).
23:25:31 -!- chloetax8 has changed nick to chloetax.
23:31:38 -!- pool has quit (Read error: Connection reset by peer).
23:33:28 -!- pool has joined.
23:37:09 <esolangs> [[5MAT]] https://esolangs.org/w/index.php?diff=167532&oldid=164315 * Kg583 * (+859) Add I/O section
23:38:18 <esolangs> [[5MAT]] M https://esolangs.org/w/index.php?diff=167533&oldid=167532 * Kg583 * (+16) Add driver note
23:39:49 <esolangs> [[5MAT]] https://esolangs.org/w/index.php?diff=167534&oldid=167533 * Kg583 * (+11) Use I/O in some examples
23:48:32 <esolangs> [[5MAT]] https://esolangs.org/w/index.php?diff=167535&oldid=167534 * Kg583 * (+492) Add Rule 124 example
23:49:06 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
23:54:22 -!- tromp has joined.
00:04:28 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
00:16:09 <esolangs> [[Underload]] https://esolangs.org/w/index.php?diff=167536&oldid=166606 * Waffelz * (+98) added my scratch interpreter
00:32:50 -!- ais523 has quit (Quit: quit).
00:38:49 -!- DOS_User_webchat has joined.
00:38:59 -!- DOS_User_webchat has changed hostmask to ~DOS_User_@user/DOS-User:11249.
00:46:31 -!- DOS_User_webchat has quit (Ping timeout: 250 seconds).
01:08:53 -!- 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:27:25 <zzo38> I would think that it would be more difficult to reverse ChaCha20 if you do not use the entire output. I would also think that it might be better to not have a separate counter and nonce and key, therefore all of these things can be longer, because the numbers will be added together.
02:51:59 <esolangs> [[CARP]] M https://esolangs.org/w/index.php?diff=167537&oldid=167378 * TheCanon2 * (-102) New assembly semantics
02:52:38 <esolangs> [[General Lock Notation]] N https://esolangs.org/w/index.php?oldid=167538 * Zzo38 * (+1901) Created page with "The lock value consists of a set of identified rows, each of which consists of a sequence of integers, such that either all of the integers are zero or the first nonzero integer is positive. The initial value consists of a lock value of this format, and is
02:55:19 <esolangs> [[FUnctional staCK]] https://esolangs.org/w/index.php?diff=167539&oldid=167037 * CatCatDeluxe * (+130)
03:06:31 <esolangs> [[General Lock Notation]] https://esolangs.org/w/index.php?diff=167540&oldid=167538 * Zzo38 * (+477)
03:20:05 <esolangs> [[Talk:Funnie]] N https://esolangs.org/w/index.php?oldid=167541 * Zzo38 * (+147) Created page with "If there is a even number of items, how to know which one is middle? --~~~~"
03:34:13 <esolangs> [[CLC-INTERCAL]] https://esolangs.org/w/index.php?diff=167542&oldid=164984 * Tpaefawzen * (+151) /* External resources */ +1
03:34:18 -!- pool has quit (Read error: Connection reset by peer).
03:36:18 -!- pool has joined.
03:52:13 <esolangs> [[Talk:FakeScript]] N https://esolangs.org/w/index.php?oldid=167543 * Yayimhere2(school) * (+75) Created page with "Can we mayhaps get the original blog post? I'd like to try and "decode" it."
03:55:19 <esolangs> [[Talk:FakeScript]] https://esolangs.org/w/index.php?diff=167544&oldid=167543 * Yayimhere2(school) * (+118)
04:12:12 <esolangs> [[Finite Countermodel Machine]] M https://esolangs.org/w/index.php?diff=167545&oldid=167528 * Ukeharu * (+30)
04:28:37 <esolangs> [[User:Tpaefawzen/Sandbox]] https://esolangs.org/w/index.php?diff=167546&oldid=164725 * Tpaefawzen * (+102)
04:34:21 -!- pool has quit (Read error: Connection reset by peer).
04:34:37 <esolangs> [[User:Tpaefawzen/Sandbox]] https://esolangs.org/w/index.php?diff=167547&oldid=167546 * Tpaefawzen * (+179)
04:34:48 -!- pool has joined.
05:02:59 <esolangs> [[User:Tpaefawzen/Sandbox]] https://esolangs.org/w/index.php?diff=167548&oldid=167547 * Tpaefawzen * (+374) /* Syntax */
05:03:49 <esolangs> [[User:Tpaefawzen/Sandbox]] https://esolangs.org/w/index.php?diff=167549&oldid=167548 * Tpaefawzen * (+69) /* Syntax */
05:51:30 <esolangs> [[5MAT]] M https://esolangs.org/w/index.php?diff=167550&oldid=167535 * Kg583 * (-2) Fix driver description
06:34:37 -!- pool has quit (Read error: Connection reset by peer).
06:36:34 -!- pool has joined.
06:36:50 <esolangs> [[Gur yvsr]] https://esolangs.org/w/index.php?diff=167551&oldid=167370 * Placeholding * (+361) added infobox
06:39:34 <esolangs> [[Special:Log/newusers]] create * Eating-dinner * New user account
06:45:06 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=167552&oldid=167498 * Eating-dinner * (+109) /* Introductions */
07:12:25 <esolangs> [[Brainfuck]] https://esolangs.org/w/index.php?diff=167553&oldid=167518 * Eating-dinner * (+1046) /* Truth-machine */
07:34:40 -!- pool has quit (Read error: Connection reset by peer).
07:36:38 -!- pool has joined.
07:42:32 <esolangs> [[Algebraic Brainfuck]] https://esolangs.org/w/index.php?diff=167554&oldid=167529 * Corbin * (+50) Clean up references.
07:54:28 -!- tromp has joined.
08:20:34 -!- Sgeo has quit (Read error: Connection reset by peer).
09:00:08 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
09:34:54 -!- pool has quit (Read error: Connection reset by peer).
09:36:53 -!- pool has joined.
10:21:50 -!- ais523 has joined.
10:34:57 -!- pool has quit (Read error: Connection reset by peer).
10:35:28 -!- pool has joined.
10:56:25 <esolangs> [[Funnie]] https://esolangs.org/w/index.php?diff=167555&oldid=102069 * ChuckEsoteric08 * (+195) /* Basic Operations */ If number of items is even
10:56:26 -!- lisbeths has joined.
10:58:12 <esolangs> [[Funnie]] https://esolangs.org/w/index.php?diff=167556&oldid=167555 * ChuckEsoteric08 * (+22)
11:06:07 <lisbeths> korvo: the ai told me this was a novel way to decouple compilation from execution architecture in standard c and standard POSIX, but it is probably not original. thought i would share it in case https://www.irccloud.com/pastebin/wL5lqYMp/
11:07:28 <korvo> lisbeths: Fun. Be careful to not trust the chatbot; it doesn't know anything about the real world.
11:07:51 <korvo> I would think that awk is a better choice than shell. I've been using execline recently, and if you have to run a lot of programs then execline is definitely better than shell.
11:08:39 <korvo> I uploaded my latest execline experiment here: https://esolangs.org/wiki/Vixen
11:11:35 <korvo> I know you've been thinking about POSIX for a while. This recent blog/paper is inspiring to me; what if Unix were a Smalltalk? https://programmingmadecomplicated.wordpress.com/2025/01/21/the-unix-binary-wants-to-be-a-smalltalk-method-not-an-object/
11:35:03 -!- pool has quit (Read error: Connection reset by peer).
11:35:30 -!- pool has joined.
11:55:48 <ais523> korvo: my experience of LLM responses to queries is that the response nearly always doesn't contain the most relevant information that the asker cares about, and yet nonetheless looks like a valid response to the question
11:56:24 <ais523> it's often factually correct but not in a useful way (and sometimes is even factually incorrect)
11:57:16 <ais523> my guess is that the LLM text-prediction effectively ends up, in practice, simplifying to a "choose one of these X canned answers and modify it so that it fits the question", where the canned answers are generally accurate but may end up less accurate as a result of the modification
11:57:44 <ais523> …which makes it only a minimal step forwards from what we had before, which was the same except without the modification step
11:57:49 <korvo> ais523: Right. On one hand, they *simulate* a reasonable conversation, which would usually include a correct response; on the other hand, by Tarski's Undefinability, they can't possibly have a perfect model of the world even ignoring the compressibility issues.
11:59:32 <korvo> The canned-answer behavior is an artifact of RLHF. The bot is punished for originality, so it becomes bland. There's a lot of labor-oriented analysis that we can bring to bear on the problem, if we think of RLHF as a managerial tool of power.
12:00:41 <ais523> fwiw, I think being able to solve "out of these 1 million possible answers, determine which is most relevant to the question" is actually quite a valuable problem to be able to solve, and if LLMs were more efficient at it, it would have a lot of valid use cases
12:01:02 <ais523> but the problem is that the step that solves it is the training (which is very inefficient), not the inference
12:03:50 <korvo> Sentence embedding is a useful primitive, although the security story around it hasn't been fully figured out. Image classification is useful for managing large galleries.
12:04:32 <ais523> my priors are that security of a technology is generally extremely hard to figure out
12:04:57 <korvo> Elsewhere, diffusion is clearly useful, and diffusion-based language models are starting to be investigated more. Surprisingly, one of the barriers turns out not to matter; we had worried that a diffusion-based model wouldn't know how many tokens go between structural words and punctuation, but it turns out that *any* model learns to count tokens as part of learning grammar.
12:04:57 <ais523> the Morris worm was decades ago, and our software is exploitable even today, despite all the time we've had to get better at it
12:07:39 <korvo> Sure. The sentence-embedding issue is that an injective model could leak data; folks had wrongly assumed that an embedding behaved like a hash. https://arxiv.org/abs/2510.15511 has details.
12:08:27 <ais523> I saw the link when you posted it to lobste.rs, although I didn't really understand the threat model
12:08:32 <korvo> Yeah, people don't want to learn how to write secure software. Capabilities are well-discussed but continually inspire confusion and fear in programmers. People don't see anything wrong with writing C.
12:09:55 <korvo> Oh! Say you're e.g. Facebook and you sentence-embed every message that users post for quick searching. If an attacker gets a hold of those embeddings and has any sort of query oracle, then they can estimate the original sentences corresponding to each embedding.
12:10:35 <ais523> ah, I see – so the lesson here is "don't allow the embeddings to leak"
12:13:41 <korvo> Yeah. In general, in cryptography, the idea is that if we have an injection f, then since f(x) = f(y) iff x = y, any pair (x, f(x)) of chosen plaintext can be compared against f(y) to detect x = y.
12:14:46 -!- isabella has quit (Ping timeout: 255 seconds).
12:15:14 <korvo> Another lesson, which I'm still digesting, is that the zero trajectory is special. When we start up an LLM, we usually set the model's internal state to the zero vector. But if it's really injective, then every starting state should have a distinct trajectory. So, what do those non-zero trajectories actually do?
12:16:44 -!- izabera has joined.
12:17:16 -!- izabera has changed hostmask to izabera@user/meow/izabera.
12:18:28 -!- izabera has changed nick to isabella.
12:33:46 <esolangs> [[I dont feel good and im bored]] https://esolangs.org/w/index.php?diff=167557&oldid=136496 * Yayimhere2(school) * (+24) /* how it works */
12:38:10 <esolangs> [[g]] https://esolangs.org/w/index.php?diff=167558&oldid=145927 * Yayimhere2(school) * (+10) /* odd rules */
12:39:01 <esolangs> [[g]] https://esolangs.org/w/index.php?diff=167559&oldid=167558 * Yayimhere2(school) * (-16) /* odd rules */
12:53:07 <ais523> hmm, I just came across https://github.com/camel-cdr/bfcpp/ which seems relevant to this channel? (it uses the C preprocessor to implement a brainfuck equivalent, the symbols are swapped to something that cpp can parse but it's otherwise normal BF)
12:53:18 <ais523> I didn't realise that cpp was Turing-complete
13:01:27 -!- lynndotpy609 has quit (Quit: bye bye).
13:02:40 -!- lynndotpy6093 has joined.
13:03:00 <fizzie> I'm pretty sure it isn't, technically, in that all macro expansions will eventually halt. But of course that upper bound can be made arbitrarily large.
13:03:12 <fizzie> I believe that's what https://github.com/camel-cdr/bfcpp/blob/main/cm.c is all about.
13:03:55 <fizzie> For any fans of C preprocessor metaprogramming who aren't already familiar with it: https://github.com/rofl0r/order-pp
13:15:34 -!- lisbeths has quit (Quit: Connection closed for inactivity).
13:20:50 -!- amby has joined.
13:27:46 <ais523> fizzie: ah right, this BF interpreter does seem to cycle through lots of different names for the main loop to stop it being disabled, it gets an exponential quantity of them but there is a limit
13:29:07 <ais523> it's like a bounded-storage machine but for execution time rather than storage
13:35:08 -!- pool has quit (Read error: Connection reset by peer).
13:37:14 -!- pool has joined.
13:57:43 <esolangs> [[g]] https://esolangs.org/w/index.php?diff=167560&oldid=167559 * Yayimhere2(school) * (-204) /* g bd */
13:58:57 <esolangs> [[g]] https://esolangs.org/w/index.php?diff=167561&oldid=167560 * Yayimhere2(school) * (-160) /* syntax */
14:16:19 <esolangs> [[Action symbol]] https://esolangs.org/w/index.php?diff=167562&oldid=150874 * Yayimhere2(school) * (-88) /* relation to Lambda calculus */
14:22:08 <esolangs> [[Action symbol]] https://esolangs.org/w/index.php?diff=167563&oldid=167562 * Yayimhere2(school) * (+11)
14:22:44 <esolangs> [[Action symbol]] https://esolangs.org/w/index.php?diff=167564&oldid=167563 * Yayimhere2(school) * (-9) Delete the {{stub}}, as it is not a stub
14:24:28 <esolangs> [[Action symbol]] https://esolangs.org/w/index.php?diff=167565&oldid=167564 * Yayimhere2(school) * (+17) /* examples */
14:29:39 <esolangs> [[Action symbol]] https://esolangs.org/w/index.php?diff=167566&oldid=167565 * Yayimhere2(school) * (+199) /* examples */
14:33:33 <esolangs> [[Action symbol]] https://esolangs.org/w/index.php?diff=167567&oldid=167566 * Yayimhere2(school) * (+76) /* relation to Lambda calculus */
14:33:44 -!- ais523 has quit (Quit: quit).
14:33:51 <esolangs> [[Action symbol]] https://esolangs.org/w/index.php?diff=167568&oldid=167567 * Yayimhere2(school) * (+8) /* relation to Lambda calculus */
14:34:43 <esolangs> [[Action symbol]] https://esolangs.org/w/index.php?diff=167569&oldid=167568 * Yayimhere2(school) * (+44) /* how it works */
14:35:17 -!- pool has quit (Read error: Connection reset by peer).
14:35:31 <esolangs> [[Special:Log/newusers]] create * Heapblk * New user account
14:37:18 -!- pool has joined.
14:38:17 <esolangs> [[Action symbol]] https://esolangs.org/w/index.php?diff=167570&oldid=167569 * Yayimhere2(school) * (+224) /* how it works */
14:40:33 <esolangs> [[Action symbol]] https://esolangs.org/w/index.php?diff=167571&oldid=167570 * Yayimhere2(school) * (+108) /* relation to Lambda calculus */
14:41:09 <esolangs> [[Action symbol]] https://esolangs.org/w/index.php?diff=167572&oldid=167571 * Yayimhere2(school) * (-11) /* relation to Lambda calculus */
14:42:26 <esolangs> [[Action symbol]] https://esolangs.org/w/index.php?diff=167573&oldid=167572 * Yayimhere2(school) * (-17) /* how it works */
14:43:14 <esolangs> [[Action symbol]] https://esolangs.org/w/index.php?diff=167574&oldid=167573 * Yayimhere2(school) * (-10) /* relation to Lambda calculus */
14:43:27 <esolangs> [[Action symbol]] https://esolangs.org/w/index.php?diff=167575&oldid=167574 * Yayimhere2(school) * (+1) /* examples */
14:43:42 <esolangs> [[Action symbol]] https://esolangs.org/w/index.php?diff=167576&oldid=167575 * Yayimhere2(school) * (-3) /* examples */
14:47:19 <esolangs> [[Action symbol]] https://esolangs.org/w/index.php?diff=167577&oldid=167576 * Yayimhere2(school) * (+33) /* how it works */
14:48:00 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=167578&oldid=167552 * Heapblk * (+146) heapblks introduction
14:49:21 <esolangs> [[Action symbol]] https://esolangs.org/w/index.php?diff=167579&oldid=167577 * Yayimhere2(school) * (+88) /* how it works */
15:02:53 -!- Sgeo has joined.
15:27:46 <esolangs> [[Common]] N https://esolangs.org/w/index.php?oldid=167580 * Heapblk * (+572) initial edit
15:29:26 <esolangs> [[Common]] M https://esolangs.org/w/index.php?diff=167581&oldid=167580 * Heapblk * (-2) fix formatting mistake
15:35:24 -!- pool has quit (Read error: Connection reset by peer).
15:35:51 -!- pool has joined.
15:40:26 -!- ais523 has joined.
15:51:31 <esolangs> [[Oh oh oh oh oh]] N https://esolangs.org/w/index.php?oldid=167582 * As * (+7896) Created page with "{{Stub}} {{infobox proglang |name=Oh oh oh oh oh |paradigms= |author=[[User:As]] |year=[[:Category:2025|2025]] |memsys=[[:Category:Accumulator-based|Accumulator-based]] |dimensions=one-dimensional |class= |majorimpl= |refimpl=Python |influence=[[Ooh]] |influenced= |f
16:13:59 <esolangs> [[User talk:VilgotanL]] N https://esolangs.org/w/index.php?oldid=167583 * Yayimhere2(school) * (+301) Created page with "== Hello!!! == Hi VilgotanL! so, I'd like to ask if I maybe could come on that second list of languages, and make an esolang with you! if so, thanks, if not, thanks for responding !!! --~~~~"
16:19:00 <esolangs> [[Talk:2Swap]] N https://esolangs.org/w/index.php?oldid=167584 * Yayimhere2(school) * (+138) Created page with "I like this its cool --~~~~"
16:19:19 -!- tromp has joined.
16:23:19 <esolangs> [[EUCS]] N https://esolangs.org/w/index.php?oldid=167585 * Esolangist * (+865) Created page with "Esolangist's Ultimate Character Set/EUCS is by [[User:Esolangist]] and is basically Esolangist's version of [[tanstore]] ==You want a character set? Here.== <pre> 00 and 01: Space and newline 02 to 0b: Numbers 0c to 43: Latin alphabet 44 to 81: Symbols 1 82 to b4: Greek
16:24:23 <esolangs> [[Dead fishy :(]] N https://esolangs.org/w/index.php?oldid=167586 * Esolangist * (+280) Created page with "'''Dead fishy :(''' (called DF for the rest of this article) is made by [[User:Esolangist]]. You can guess what this is a derivative of... ==Commands== {{WIPsec}} idso work like in [[Deadfish]] inputs like , in [[bf]] is like o but it uses [[EUCS]] n is NOP
16:26:54 -!- Lord_of_Life_ has joined.
16:27:19 -!- Lord_of_Life has quit (Ping timeout: 240 seconds).
16:28:15 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
16:35:31 -!- pool has quit (Read error: Connection reset by peer).
16:36:32 <esolangs> [[Talk:I/D machine Turing-completeness proof]] N https://esolangs.org/w/index.php?oldid=167587 * Yayimhere2(school) * (+221) Created page with "I wish Errorbucket had its own page, because I genuinely want to try and use to for something different --~~~~"
16:37:37 -!- pool has joined.
16:38:55 <esolangs> [[User:Esolangist/personal talk page]] https://esolangs.org/w/index.php?diff=167588&oldid=167406 * Esolangist * (+295)
16:39:08 <esolangs> [[Talk:I/D machine Turing-completeness proof]] https://esolangs.org/w/index.php?diff=167589&oldid=167587 * Ais523 * (+378) r to Yayimhere
16:53:40 <esolangs> [[Talk:Parabox]] https://esolangs.org/w/index.php?diff=167590&oldid=167493 * Esolangist * (+102)
17:02:18 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
17:03:40 <esolangs> [[Special:Log/newusers]] create * Krysiuuuuu * New user account
17:05:46 <esolangs> [[Talk:FizzLang]] N https://esolangs.org/w/index.php?oldid=167591 * Yayimhere2(school) * (+362) Created page with "Can replacements hold numbers? and how are the numbers actually stored? and how, a list? and does the replacements only check the current symbol of that maybe here list? or does replacements apply to the whole list when its completed? and when? --~~~~"
17:07:03 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=167592&oldid=167578 * Krysiuuuuu * (+179)
17:07:16 -!- tromp has joined.
17:07:24 <esolangs> [[Talk:Brainfuck]] https://esolangs.org/w/index.php?diff=167593&oldid=147208 * Krysiuuuuu * (+898) /* Add this as macro hello world */ new section
17:10:33 <esolangs> [[UserEdited]] https://esolangs.org/w/index.php?diff=167594&oldid=165665 * MihaiEso * (+33)
17:17:11 <esolangs> [[YksniM]] N https://esolangs.org/w/index.php?oldid=167595 * Esolangist * (+844) Created page with "{{Wrongtitle|title=yksniM}} {{AKA|title=Maxsky}} yksniM is a cool language by [[User:Esolangist]] with 2 registers and I think it can simulate a [[Minsky machine]] and it looks like [[bf]] ==Commands== + Increment the register - Decrement the register < Swap register
17:20:20 <esolangs> [[Hello++]] https://esolangs.org/w/index.php?diff=167596&oldid=153466 * Esolangist * (+124)
17:32:21 <esolangs> [[Nullary]] https://esolangs.org/w/index.php?diff=167597&oldid=131506 * Esolangist * (+24) Fixed redlink (article was in another article)
17:48:12 -!- tromp has quit (Ping timeout: 252 seconds).
17:48:21 <esolangs> [[,(*+)]] https://esolangs.org/w/index.php?diff=167598&oldid=167346 * Yayimhere2(school) * (+43)
17:49:14 <esolangs> [[A Question of Protocol]] https://esolangs.org/w/index.php?diff=167599&oldid=141351 * Yayimhere2(school) * (-1)
17:50:08 <esolangs> [[A Question of Protocol]] https://esolangs.org/w/index.php?diff=167600&oldid=167599 * Yayimhere2(school) * (-286) /* computational class */ I need a new proof, as im pretty sure this is wrong
17:50:21 <esolangs> [[A Question of Protocol]] https://esolangs.org/w/index.php?diff=167601&oldid=167600 * Yayimhere2(school) * (-57) /* example */
17:51:23 <esolangs> [[A Question of Protocol]] https://esolangs.org/w/index.php?diff=167602&oldid=167601 * Yayimhere2(school) * (+0) /* syntax */
17:51:58 <esolangs> [[User talk:PixelatedStarfish]] https://esolangs.org/w/index.php?diff=167603&oldid=144398 * Yayimhere2(school) * (+304)
17:53:20 <esolangs> [[Short Minsky Machine Notation]] https://esolangs.org/w/index.php?diff=167604&oldid=166453 * Yayimhere2(school) * (+16) /* Notation */
17:54:16 <esolangs> [[A Question of Protocol]] https://esolangs.org/w/index.php?diff=167605&oldid=167602 * Yayimhere2(school) * (+22) /* syntax */
18:16:55 <esolangs> [[Underloadish]] N https://esolangs.org/w/index.php?oldid=167606 * Esolangist * (+306) Created page with "Underloadish is the easy to interpret version of [[Underload]] by [[User:Esolangist]] ==Commands== All commands in Underload are available except () and a. 0-9: Push themselves +: Adds top 2 stack values S now outputs as Unicode so it is easier. Also it has to
18:21:14 <esolangs> [[Language list]] https://esolangs.org/w/index.php?diff=167607&oldid=167068 * Kg583 * (+11) Add 5MAT
18:37:42 <esolangs> [[Noddity]] N https://esolangs.org/w/index.php?oldid=167608 * Yayimhere2(school) * (+1544) Created page with "'''Noddity''' is an esolang created by [[User:Yayimhere]] for proving [[A Question of Protocol]] turing complete. it is basically just a [[Minsky machine]]. It works on two unbounded registers == Etymology == It is simply a combination of the word "Not" and "
18:38:25 <esolangs> [[Noddity]] https://esolangs.org/w/index.php?diff=167609&oldid=167608 * Yayimhere2(school) * (+10) /* Turing completeness proof */
18:39:19 <esolangs> [[Noddity]] https://esolangs.org/w/index.php?diff=167610&oldid=167609 * Yayimhere2(school) * (+42) /* Turing completeness proof */
18:49:59 <esolangs> [[A Question of Protocol]] https://esolangs.org/w/index.php?diff=167611&oldid=167605 * Yayimhere2(school) * (+395)
18:57:51 <esolangs> [[Brainfuck]] https://esolangs.org/w/index.php?diff=167612&oldid=167553 * Krysiuuuuu * (+885)
19:03:00 <esolangs> [[Karvity]] N https://esolangs.org/w/index.php?oldid=167613 * Yayimhere2(school) * (+1356) Created page with "'''Karvity''' is an esolang created by [[User:Yayimhere]] based off of [[Noddity]]. Its specific purpose is to create Noddity more of an oddity. It too uses two registers, but it also uses a loop counter(however that counter is not modifiable within the progr
19:04:57 <esolangs> [[Noddity]] https://esolangs.org/w/index.php?diff=167614&oldid=167610 * Yayimhere2(school) * (+47)
19:05:23 <esolangs> [[Karvity]] https://esolangs.org/w/index.php?diff=167615&oldid=167613 * Yayimhere2(school) * (+47)
19:06:59 <esolangs> [[Karvity]] https://esolangs.org/w/index.php?diff=167616&oldid=167615 * Yayimhere2(school) * (+56)
19:07:22 <esolangs> [[Karvity]] https://esolangs.org/w/index.php?diff=167617&oldid=167616 * Yayimhere2(school) * (+35)
19:08:32 <esolangs> [[Karvity]] https://esolangs.org/w/index.php?diff=167618&oldid=167617 * Yayimhere2(school) * (+68)
19:09:17 <esolangs> [[Karvity]] https://esolangs.org/w/index.php?diff=167619&oldid=167618 * Yayimhere2(school) * (+45)
19:12:35 -!- Yayimhere has joined.
19:14:04 <Yayimhere> Hello people, I just created Karvity(as you maybe have seen in the Libera log), and I'd simply just like to know whats peoples opinion on it, because yea, I like feedback. here's a link: https://esolangs.org/wiki/Karvity
19:14:05 <Yayimhere> I'd also love to know if anyone else is working on anything.
19:15:51 <b_jonas> ais523: isn't there an IOCCC entry that shows the preprocessor similarly powerful? not with Brainfuck specifically, but the same power.
19:17:27 <ais523> Yayimhere: did you rename a command from - to d (in Karvity and Noddity)? if so, you missed one instance, making the command definition inconsistent
19:18:23 <esolangs> [[Noddity]] https://esolangs.org/w/index.php?diff=167620&oldid=167614 * Yayimhere2(school) * (+1) /* Definition */
19:20:22 <esolangs> [[Karvity]] https://esolangs.org/w/index.php?diff=167621&oldid=167619 * Yayimhere2(school) * (+0)
19:20:38 <esolangs> [[Karvity]] https://esolangs.org/w/index.php?diff=167622&oldid=167621 * Yayimhere2(school) * (-19)
19:26:44 <esolangs> [[A Question of Protocol]] https://esolangs.org/w/index.php?diff=167623&oldid=167611 * Yayimhere2(school) * (+59)
19:32:07 <esolangs> [[]] N https://esolangs.org/w/index.php?oldid=167624 * Esolangist * (+197) Created page with ", or Emojifish is [[Deadfish]] with emojis. ==Commands== = i = d = s = o ==Examples== ===XKCD Random Number=== <pre> </pre>"
19:34:23 <esolangs> [[User:Yayimhere]] https://esolangs.org/w/index.php?diff=167625&oldid=167276 * Yayimhere2(school) * (+28) /* esolangs */
19:35:51 <korvo> Yayimhere: I'm working on a corner of Vixen. Trying to convince myself that it's not worth creating an entirely new Linux distro just to explore that paradigm.
19:35:54 -!- pool has quit (Read error: Connection reset by peer).
19:36:57 <korvo> Yayimhere: I'm kind of confused about the purpose of Karvity. The purpose of Noddity is to ease a TC proof; what does Karvity do for that TC proof?
19:37:21 <Yayimhere> korvo: oh no, Karvity is not designed for that same proof
19:37:56 -!- pool has joined.
19:38:07 <Yayimhere> Karvity was made to make noddity be church numeral based
19:38:27 <Yayimhere> but thats how it originally was going to be designed
19:39:47 <Yayimhere> my god, Libera has some very creepy emojis
19:41:15 <ais523> not Libera, your client
19:41:30 <ais523> Libera just sent a colon and a closing square bracket
19:41:40 <ais523> so this is Kiwi IRC's fault
19:42:36 * int-e wonders whether :] is safe from that replacement
19:43:41 <esolangs> [[Karvity]] https://esolangs.org/w/index.php?diff=167626&oldid=167622 * Yayimhere2(school) * (+51)
19:45:00 <korvo> Do they have an emoji for the classic >:3
19:46:27 <int-e> I guess there's always :]
19:46:52 <Yayimhere> imagine being follow by that at night
19:47:22 <korvo> U+1f981, LION FACE
19:47:48 <Yayimhere> I though it was an emoticon as well
19:48:37 <ais523> this comes up often enough that we added a command for it to the bot
19:48:41 <ais523> so it can't be *completely* off topic
19:49:05 <ais523> (where "this" = obscure Unicode characters)
19:49:27 <HackEso> 1125) <shachaf> A Swede who was in #esoteric / Thought his rhymes were a little generic. / "I might use, in my prose, / ꙮs, / But my poetry's alphanumeric."
19:49:37 <ais523> Unicode might quite possibly be the most esoteric set of character encodings
19:49:41 <ais523> although it does have competition
19:50:08 <HackEso> 35) <ehird> With enough crappiness a display can show you invisible pink unicorns. \ 990) <fizzie> "May you live in INVISIBLE TIMES." --Old Chinese proverb. (It can look confusing when written with the proper Unicode.)
19:50:09 <ais523> actually, I was going to claim Ecma-35 as another possibility for the most esoteric set of character encodings
19:50:21 <ais523> so this implies that the most esoteric character encoding is probably UTF-1 (the Ecma-35 version of Unicode)
19:51:03 <korvo> Yayimhere: *Right* right now I'm playing with a concept in LLMs called a "steering vector". The idea is to influence a model's output by activating/suppressing certain concepts in the "latent state", which is how the model internally represents a conversation.
19:51:43 <Yayimhere> ive been thinking too much about LLM's
19:51:54 <korvo> I start with pairs that look roughly like ("Yes, you should harm yourself", "No, you should not harm yourself") and trace how the model's state differs between those. To be clear, we're going left-to-right; we want to find the direction that *reduces* harmful instructions.
19:52:21 <korvo> Then we can apply that influence later on when a model is running as part of a larger system that constrains harmful outputs.
19:52:55 <Yayimhere> is this like j*b work(such a dumb joke)?
19:53:40 <korvo> I'm not getting paid today for this research, no. But in general, yes, this is the sort of research that I have to do in order to keep up with my field and stay employable.
19:55:56 <esolangs> [[User programmed]] https://esolangs.org/w/index.php?diff=167627&oldid=165263 * Esolangist * (+276) /* These commands have me surrender */
19:56:08 <korvo> It *is* quite interesting. I'm playing with a model called RWKV at home; it's not RL'd but it has lots of OpenAI-style user/assistant dialogs and responds well to them. Before doing this sort of learning, the model might respond at temp 0 to "How are you?" with "Oh, I'm feeling better. Just taking medication and trying to stay positive." Kind of a downer?
19:56:56 <korvo> After training on like 20 random vectors, the steering adjusts that response to something like "Hi! I'm doing just fine. How are you? Do you need medical attention?" which is maybe not what we want but certainly less of a harmful doomery vibe.
19:57:33 <ais523> this is a great way to start conversations
19:57:59 <avih> not to discourage anyone, but i had to... https://www.youtube.com/watch?v=iV2ViNJFZC8
19:58:04 <Yayimhere> ais523: was this ironic or serious?
19:58:04 <korvo> As with everything in machine learning, more data will make it more reasonable. There's quite a few papers on how this works, what it can't do (it can't suggest the model magically be better at addition) and what it can do (it can magically force the model to be emotional, to think a lot about France, or to become a subject-matter expert).
19:58:11 <ais523> Yayimhere: mostly ironic
19:58:45 <ais523> normally people get suspicious if you bring up a subject for no reason, even if it's in a positive way
19:59:10 <Yayimhere> avih: i geniounly thought I was about to be rickrolled
19:59:22 <ais523> like, people caring that you're healthy are good, people repeatedly checking whether you're healthy when they have no reason to think you aren't shows very skewed priorities
19:59:46 <b_jonas> ooh, is it one of those clients that replace :P or :D anywhere inside code with a smiley, and whenever there's a dot between two letters they show a hyperlink, but whenever there's an actual hyperlink they hide it?
19:59:48 <Yayimhere> ais523: to respond to your correction, thanks
20:00:40 <korvo> ais523: I've deliberately and aggressively simplified the topic because I think it's within Yayimhere's grasp. But what I'm *actually* doing is reproducing papers https://arxiv.org/abs/2311.08968 and https://arxiv.org/abs/2402.09631 in a custom RWKV harness to see whether a meta-RNN does better than Transformers, and that's maybe too much for them at this stage.
20:01:16 <ais523> korvo: I also prefer the simpler version
20:01:37 <korvo> ais523: I miss the days when we thought that there was a "France" neuron.
20:01:40 <ais523> because I don't work really heavily with neural networks or the like, and although I understand some of the theory, I have to switch mental gears to think about it
20:02:31 <esolangs> [[User guessed]] https://esolangs.org/w/index.php?diff=167628&oldid=159256 * Esolangist * (+104) /* Commands */
20:03:07 <esolangs> [[User guessed]] https://esolangs.org/w/index.php?diff=167629&oldid=167628 * Esolangist * (+45) /* Examples */
20:03:26 <korvo> I learned all of this once in undergrad, once at Google, and now once again every few months. It really does feel like the field is constantly reinventing itself.
20:04:38 <korvo> Like, I bet you know how gradient descent works. It's undergrad material. But there was a paper this year which we're calling "Central Flows", and apparently we did *not* know how gradient descent works. https://centralflows.github.io/part1/
20:05:03 <ais523> "how X works" is a loaded phrase
20:05:34 <ais523> for example, you can know what the algorithm is and have a vague intuition of why it should lead to reasonable results, and yet not really understand why it works
20:06:00 <korvo> Yeah. I don't really like the difference between "how" and "why" in English. I know historically how/why it came about, but that doesn't help.
20:06:32 <b_jonas> So, you know how there's software like twitter and twitch that think everything is a hyperlink and aggressively try to turn random parts of your statements into a hyperlink? And there's forum software that thinks that normal people never use hyperlinks into their posts, they just expect the reader to magically understand the context, and anyone who writes a link is probably a spammer. Can we put these
20:06:38 <b_jonas> two kinds into an arena and have them fight to death?
20:06:41 <ais523> oddly, I was looking at this recently in an entirely different field
20:07:17 <ais523> I've been trying to write an esolang where numbers are complex rationals, and then trying to work out how to approximate trancendental functions in it
20:07:25 -!- Yayimhere has quit (Ping timeout: 250 seconds).
20:07:32 <ais523> obviously the result isn't necessarily going to be a rational, but you can approximate
20:07:44 <ais523> but that means you need, e.g., root-finding algorithms
20:07:56 <ais523> gradient descent works for that sometimes and doesn't work at other times
20:09:27 -!- lisbeths has joined.
20:10:43 <b_jonas> Do you need anything specific? I assume you already know the methods to find roots to polynomials, and how to compute sines and arctangents, and you can find software for just about any specific function that you want to approximate these days.
20:11:58 <ais523> not really, I already found an algorithm that's sufficiently fast in all cases, I've just procrastinated in linking it up to the rest of the language
20:13:03 <ais523> (the basic idea, after isolating the root, is to alternate between bisection and regula-falsi; regula-falsi is fast when it works, the bisection ensures logarithmic convergence even in the regula-falsi worst case)
20:14:10 <b_jonas> of course very often the numerical software exists in theory, but is in a form that's hard to use in practice
20:14:16 <ais523> I haven't implemented the root isolation yet, though
20:14:34 <ais523> also I've been procrastinating on writing the bignum library
20:15:21 <b_jonas> though while we're there I might as where ask: is there software that can compute the cumulative density function of an arbitrary multi-dimensional gaussian distribution given its mean and covariance matrix?
20:15:55 <b_jonas> I don't even really need this anymore, I'm just curious
20:15:57 <ais523> unfortunately I don't have the capabilities of the various numerical softwares memorised
20:16:34 <ais523> oh, that reminds me, I need to find a new package for solving simultaneous equations over finite fields (or learn the algorithms to write one myself)
20:16:40 <ais523> the one I used before isn't in the repositories any more
20:18:11 <ais523> this is basically the same problem as inverting a matrix
20:18:25 <b_jonas> oh, linear. have you tried GAP yet and given up in disgust because everything was indexed starting from 1?
20:18:38 <ais523> there are tons of software packages that do this for normal number systems, but finite fields are a bit harder
20:19:00 <b_jonas> I'm pretty sure GAP can do this for any finite field, though I only used it for the simple case of GF(2) so far
20:19:32 <b_jonas> no, finite fields are *easier* because you can get an exact answer rather than having to be careful not to lose to much precision
20:19:45 <ais523> b_jonas: I mean, to find software for
20:20:20 <b_jonas> wait no, I have used GAP for other fields
20:20:56 <ais523> I should try GAP, to see if it works
20:21:12 <ais523> although, I would like to implement this myself so that I can use it in an assembler I'm writing
20:21:25 <b_jonas> in theory I should be able to tell you how to implement it
20:21:38 <ais523> without the person doing the assembling needing the library installed
20:21:47 <b_jonas> especially if you already know how to add, subtract, multiply, divide, compare to zero in the field that you need
20:21:49 <ais523> my problem here is that I understand the naive algorithms but am not sure that they're fast enough
20:22:19 <ais523> and am not sure whether there's some reasonable way to get a better complexity
20:24:19 <b_jonas> I don't know where I could even look that up
20:26:09 <b_jonas> maybe the FXT book has something? it talks about fourier and similar transforms on finite fields to efficiently multiply polynomials in order to efficiently multiply ordinary integers, which it calls number theoretic transforms
20:27:12 <b_jonas> and then there's a whole slew of fast matrix multiplication, and you can probably design your finite field matrix solver to use those as much as possible
20:27:48 <b_jonas> I wasn't really looking into this because the finite field matrix divisions that I cared about were such small matrices that the efficiency didn't really matter
20:28:12 <b_jonas> and I never needed to use them often
20:30:34 <esolangs> [[Stringy]] N https://esolangs.org/w/index.php?oldid=167630 * Esolangist * (+714) Created page with "Stringy is a language by [[User:Esolangist]] that was inspired by [[Thue]] ==Commands-ish== {{WIPsec}} <code>a=b</code> makes a new string replacement: a is now b <code>a=$OUT</code> outputs a when it appears <code>a=$IN</code> a will be replaced with user input <c
20:43:24 <esolangs> [[General Lock Notation]] https://esolangs.org/w/index.php?diff=167631&oldid=167540 * Zzo38 * (+214)
21:09:05 <esolangs> [[Dimension]] N https://esolangs.org/w/index.php?oldid=167632 * Esolangist * (+123) Created page with "Dimension is a 4d tape ==Commands needed for a dimension== <pre> ^<>v (2d moving) (3d) (4d) . (Set) , (Get)"
21:22:47 <esolangs> [[Esolang:Sandbox]] https://esolangs.org/w/index.php?diff=167633&oldid=165860 * Esolangist * (+140)
21:24:30 <esolangs> [[Esolang:Sandbox]] https://esolangs.org/w/index.php?diff=167634&oldid=167633 * Ais523 * (-140) clean sandbox trying to use it as a way to collaboratively make content is a bad idea because the edits there can be cleaned or overwritten by other users at any time, and trying to make permanent-looking content there discourages people from using it for test edits
21:35:57 -!- pool has quit (Read error: Connection reset by peer).
21:36:17 -!- pool has joined.
21:55:12 <esolangs> [[Q sharp]] N https://esolangs.org/w/index.php?oldid=167635 * Esolangist * (+142) Created page with "{{Wrongtitle|title=Q#}} {{WIP}} Q# is a programming language by [[User:Esolangist]] ==Commands== print("String") - Do I have to explain this?"
22:20:32 -!- chiselfuse has joined.
22:22:36 -!- chiselfu1e has quit (Remote host closed the connection).
23:09:43 -!- ais523 has quit (Quit: quit).
23:15:03 -!- lisbeths has quit (Quit: Connection closed for inactivity).
00:36:13 -!- pool has quit (Read error: Connection reset by peer).
00:38:18 -!- pool has joined.
00:59:05 <esolangs> [[Chicken chicken chicken: chicken chicken]] M https://esolangs.org/w/index.php?diff=167636&oldid=167476 * None1 * (-107) /* XKCD Random Number */ Fix example
01:00: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).
02:31:51 <esolangs> [[Chicken chicken chicken: chicken chicken]] https://esolangs.org/w/index.php?diff=167637&oldid=167636 * None1 * (+95) Added Python interpreter and changed unimplemented to implemented
02:36:24 -!- pool has quit (Read error: Connection reset by peer).
02:38:13 -!- pool has joined.
02:38:54 <esolangs> [[Befreege]] https://esolangs.org/w/index.php?diff=167638&oldid=167436 * None1 * (+125) /* Addition by PSTF */
02:39:12 <esolangs> [[Befreege]] M https://esolangs.org/w/index.php?diff=167639&oldid=167638 * None1 * (+2) /* Addition by PSTF */
02:39:24 <esolangs> [[Befreege]] M https://esolangs.org/w/index.php?diff=167640&oldid=167639 * None1 * (+4) /* Addition by PSTF */
02:42:35 <esolangs> [[Befreege]] M https://esolangs.org/w/index.php?diff=167641&oldid=167640 * None1 * (+12) /* Addition by PSTF */
03:33:30 <esolangs> [[Suomalaiset ohjelmointikielet]] N https://esolangs.org/w/index.php?oldid=167642 * PrySigneToFry * (+1553) Created page with "Suomalaiset ohjelmointikielet, or simply Suomi, is designed by PSTF. Se kytt suomea pasiallisena ohjelmointikielen. Again a programming language based on LOLCODE. = Command Table = It's almost just simply replace LOLCODE with Finnish equiva
03:34:27 <esolangs> [[Language list]] https://esolangs.org/w/index.php?diff=167643&oldid=167607 * PrySigneToFry * (+36)
03:41:22 <esolangs> [[]] https://esolangs.org/w/index.php?diff=167644&oldid=165821 * PrySigneToFry * (+774)
04:29:06 -!- Zip57 has joined.
05:36:12 <esolangs> [[User:RaiseAfloppaFan3925/Sandbox]] M https://esolangs.org/w/index.php?diff=167645&oldid=167137 * RaiseAfloppaFan3925 * (+168) /* RaiseAfloppaFan's Stupid Idea 0 */ Add note that RSI0 has been moved to its own page
05:44:23 -!- Yayimhere has joined.
05:48:35 <Yayimhere> thinking of underload in terms of rewriting, is it still turing complete if the operators are applied in prefix? for example (:^):^ would be ^:(^:). I would guess it is still TC but I have no real idea
06:01:37 <esolangs> [[User:Jasper]] https://esolangs.org/w/index.php?diff=167646&oldid=160066 * Jasper * (-48)
06:30:33 -!- Zip57 has quit (Ping timeout: 250 seconds).
06:30:43 <zzo38> Can the General Lock Notation somehow be meaningful for computation (and have a computational class)? Would it do, if the ordering and priority would be included?
07:14:33 <esolangs> [[User:RaiseAfloppaFan3925/Sandbox]] https://esolangs.org/w/index.php?diff=167647&oldid=167645 * RaiseAfloppaFan3925 * (+4130) RaiseAfloppaFan's Stupid Idea 1: The Sequel
07:15:39 <esolangs> [[Photography]] N https://esolangs.org/w/index.php?oldid=167648 * Yayimhere2(school) * (+2185) Created page with "'''Photography''' is an esolang created by [[User:Yayimhere]], after being disappointed at [[Infinite Goto]]'s execution of its concept. Photography is quite similar to a [[Minsky machine]]. It is inspired by [[I/D machine]], [[Minsky Swap]], and [[Karvit
07:32:49 <esolangs> [[Infinite Goto]] https://esolangs.org/w/index.php?diff=167649&oldid=120693 * Yayimhere2(school) * (+64) /* Resources */
07:34:24 <esolangs> [[Photography]] https://esolangs.org/w/index.php?diff=167650&oldid=167648 * Yayimhere2(school) * (+9) /* Computational class */
07:49:51 -!- Yayimhere has quit (Ping timeout: 250 seconds).
07:55:01 -!- Yayimhere has joined.
08:07:28 <esolangs> [[Special:Log/move]] move * Yayimhere2(school) * moved [[Photography]] to [[TLQ]]: I dislike the name quite a bit.
08:07:38 <esolangs> [[Photography]] https://esolangs.org/w/index.php?diff=167653&oldid=167652 * Yayimhere2(school) * (-17) Blanked the page
08:11:30 <esolangs> [[TLQ]] https://esolangs.org/w/index.php?diff=167654&oldid=167651 * Yayimhere2(school) * (+209)
08:17:38 <esolangs> [[TLQ]] https://esolangs.org/w/index.php?diff=167655&oldid=167654 * Yayimhere2(school) * (+65) /* Etymology */
08:21:58 -!- Sgeo has quit (Read error: Connection reset by peer).
08:38:21 <esolangs> [[User:RaiseAfloppaFan3925/Sandbox]] https://esolangs.org/w/index.php?diff=167656&oldid=167647 * RaiseAfloppaFan3925 * (+1643) /* RaiseAfloppaFan's Stupid Idea 1 */ Add RSI1 extension support + some time travel quirks hehe
08:44:47 <esolangs> [[TDQ]] https://esolangs.org/w/index.php?diff=167657&oldid=165538 * ChuckEsoteric08 * (+1) /* Additions */
08:52:45 -!- ehmry has joined.
08:57:22 <esolangs> [[,(*+)]] https://esolangs.org/w/index.php?diff=167658&oldid=167598 * Yayimhere2(school) * (+106)
09:02:33 <esolangs> [[User:RaiseAfloppaFan3925]] M https://esolangs.org/w/index.php?diff=167659&oldid=167412 * RaiseAfloppaFan3925 * (+126) /* My languages */ Added RSI1
09:06:59 <esolangs> [[Esolang:Sandbox]] https://esolangs.org/w/index.php?diff=167660&oldid=167634 * PrySigneToFry * (+334) Multilingual testing
09:07:56 <esolangs> [[Esolang:Sandbox]] https://esolangs.org/w/index.php?diff=167661&oldid=167660 * PrySigneToFry * (-334) Wow, Tianheng's Unicode Serif is really amazing to use!
09:23:46 <esolangs> [[,(*+)]] https://esolangs.org/w/index.php?diff=167662&oldid=167658 * Yayimhere2(school) * (-33)
09:24:35 <esolangs> [[,(*+)]] https://esolangs.org/w/index.php?diff=167663&oldid=167662 * Yayimhere2(school) * (+54) Undo revision [[Special:Diff/167662|167662]] by [[Special:Contributions/Yayimhere2(school)|Yayimhere2(school)]] ([[User talk:Yayimhere2(school)|talk]])
09:24:51 <esolangs> [[,(*+)]] https://esolangs.org/w/index.php?diff=167664&oldid=167663 * Yayimhere2(school) * (-233) /* Tips */
09:25:40 <esolangs> [[,(*+)]] https://esolangs.org/w/index.php?diff=167665&oldid=167664 * Yayimhere2(school) * (-290)
09:29:11 <esolangs> [[,(*+)]] https://esolangs.org/w/index.php?diff=167666&oldid=167665 * Yayimhere2(school) * (+242) /* Programs */
09:29:19 <esolangs> [[,(*+)]] https://esolangs.org/w/index.php?diff=167667&oldid=167666 * Yayimhere2(school) * (+2) /* Computational class */
09:38:57 <esolangs> [[Talk:6]] N https://esolangs.org/w/index.php?oldid=167668 * PrySigneToFry * (+323) Created page with "== Author's comments == Actually, I didn't expect this page to become very popular, but I later noticed that an online interpreter had included this programming language. Anyway, this is actually one of my more 'early' works. Later on, I basically stopped making th
09:48:24 <esolangs> [[Formin]] https://esolangs.org/w/index.php?diff=167669&oldid=166978 * CapinolDev * (+1404)
09:52:04 -!- ais523 has joined.
10:49:48 <esolangs> [[Talk:RaiseAfloppaFan's Stupid Idea 0]] https://esolangs.org/w/index.php?diff=167670&oldid=167232 * RaiseAfloppaFan3925 * (+314) /* Joke thread */ Oh yeah, gotta tell you that RSI1 is now a thing.
10:52:17 -!- Yayimhere has quit (Ping timeout: 250 seconds).
11:08:59 -!- Yayimhere has joined.
11:12:50 <Yayimhere> APic: (assuming this was to me) hello!
11:20:42 <ehmry> I made an esolang because I didn't want to reconcile command-line arguments and config files https://codeberg.org/eris/eris-go/src/branch/trunk/erishell.1.md https://www.concatenative.org/wiki/view/ERIShell
11:26:48 <esolangs> [[User:RaiseAfloppaFan3925/Sandbox]] https://esolangs.org/w/index.php?diff=167671&oldid=167656 * Esolangist * (+451) /* Extensions */
11:48:37 -!- pool has quit (Read error: Connection reset by peer).
11:50:38 -!- pool has joined.
11:53:26 <esolangs> [[Stopload]] N https://esolangs.org/w/index.php?oldid=167672 * Yayimhere2(school) * (+2074) Created page with "'''Stopload''' is an esolang created by [[User:Yayimhere]] based off of the [[I/D machine]] and [[Malbolge]], alike [[Muriel]] and [[Underload]], it needs to quine to loop, however it is propably much harder to do. All strings of ISO 8859-1 char's is a valid
11:56:48 <esolangs> [[User:Yayimhere]] https://esolangs.org/w/index.php?diff=167673&oldid=167625 * Yayimhere2(school) * (+15) /* esolangs */
11:57:55 <esolangs> [[User:Yayimhere]] https://esolangs.org/w/index.php?diff=167674&oldid=167673 * Yayimhere2(school) * (+10)
12:00:14 <esolangs> [[User:Esolangist/Sandbox]] https://esolangs.org/w/index.php?diff=167675&oldid=167011 * Esolangist * (+76)
12:06:53 <esolangs> [[g]] https://esolangs.org/w/index.php?diff=167676&oldid=167561 * Yayimhere2(school) * (+2) /* semantics(g Normal) */
12:08:05 <esolangs> [[g]] https://esolangs.org/w/index.php?diff=167677&oldid=167676 * Yayimhere2(school) * (+4) /* semantics(g Normal) */
12:14:56 <esolangs> [[User:RaiseAfloppaFan3925/Sandbox]] https://esolangs.org/w/index.php?diff=167678&oldid=167671 * Esolangist * (+848) /* User:Esolangist */
12:16:23 <esolangs> [[User:RaiseAfloppaFan3925/Sandbox]] M https://esolangs.org/w/index.php?diff=167679&oldid=167678 * RaiseAfloppaFan3925 * (+236) /* Core Modules */ Make the existence of the module a little clearer
12:20:47 <esolangs> [[g]] https://esolangs.org/w/index.php?diff=167680&oldid=167677 * Yayimhere2(school) * (+567) /* semantics(g Normal) */
12:21:01 <esolangs> [[g]] https://esolangs.org/w/index.php?diff=167681&oldid=167680 * Yayimhere2(school) * (-54) /* odd rules */
12:21:21 <esolangs> [[User:RaiseAfloppaFan3925/Sandbox]] M https://esolangs.org/w/index.php?diff=167682&oldid=167679 * RaiseAfloppaFan3925 * (+26) /* RaiseAfloppaFan's Stupid Idea 1 */ RSI1 is statically-typed.
12:22:25 <esolangs> [[g]] https://esolangs.org/w/index.php?diff=167683&oldid=167681 * Yayimhere2(school) * (+35) /* odd rules */
12:25:07 -!- ais523 has quit (Quit: quit).
12:30:33 <esolangs> [[Stopload]] https://esolangs.org/w/index.php?diff=167684&oldid=167672 * Yayimhere2(school) * (+176) /* Semantics */
12:35:42 <esolangs> [[g]] https://esolangs.org/w/index.php?diff=167685&oldid=167683 * Yayimhere2(school) * (-6)
12:44:32 <esolangs> [[,(*+)]] https://esolangs.org/w/index.php?diff=167686&oldid=167667 * Yayimhere2(school) * (+28) /* Computational class */
12:54:21 -!- amby has joined.
12:55:24 <esolangs> [[Minimialized Programming Language]] N https://esolangs.org/w/index.php?oldid=167687 * PrySigneToFry * (+13484) Created page with "Minimialized Programming Language is designed by PSTF. It is really minimialized, and I will design the One-character version of it. = Definition = == Commands == <pre> program = { statement } statement = if_stmt | while_stmt | l
13:12:03 <esolangs> [[Fuck'n]] N https://esolangs.org/w/index.php?oldid=167688 * Yayimhere2(school) * (+996) Created page with "'''Fuck<nowiki>'</nowiki>n''' is a [[brainfuck]] simplification based off of [[Unary]] and [[Underload]]. It is an [[OISC]] == Etymology == Fuck'n's name comes from Fuck and Unary combined. == Memory == Memory is stored within 5 unbounded cells on a circular ta
13:12:19 <esolangs> [[Fuck'n]] https://esolangs.org/w/index.php?diff=167689&oldid=167688 * Yayimhere2(school) * (+1)
13:13:02 -!- ehmry has left (too noisy).
13:18:19 -!- Yayimhere has quit (Ping timeout: 250 seconds).
13:20:22 <esolangs> [[RECT4n=GLE]] https://esolangs.org/w/index.php?diff=167690&oldid=166413 * Yayimhere2(school) * (-19) add a note on how RECT4n=GLE measures how well formed a set of shapes are
13:25:28 <esolangs> [[,(*+)]] https://esolangs.org/w/index.php?diff=167691&oldid=167686 * Yayimhere2(school) * (-155) /* Programs */ deleted the truth machine as its wrong
13:37:03 <esolangs> [[Ooh]] M https://esolangs.org/w/index.php?diff=167692&oldid=142524 * Ractangle * (-45) /* Python implementation */
13:48:07 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=167693&oldid=167592 * Wuyugu * (+199) /* Introductions */
13:48:12 <esolangs> [[Stopload]] https://esolangs.org/w/index.php?diff=167694&oldid=167684 * Yayimhere2(school) * (+0) Fix a weird comma
14:11:32 -!- DOS_User has joined.
14:13:04 -!- DOS_User has quit (Client Quit).
14:37:11 <esolangs> [[Stopload]] https://esolangs.org/w/index.php?diff=167695&oldid=167694 * Yayimhere2(school) * (+87) /* Semantics */
15:15:43 <esolangs> [[T+Riangle]] https://esolangs.org/w/index.php?diff=167696&oldid=165576 * C++DSUCKER * (+41)
15:24:30 <esolangs> [[Karvity]] https://esolangs.org/w/index.php?diff=167697&oldid=167626 * Yayimhere2(school) * (+905) Add a demonstration of the language!
15:28:07 <esolangs> [[Noddity]] https://esolangs.org/w/index.php?diff=167698&oldid=167620 * Yayimhere2(school) * (+50)
15:30:07 <esolangs> [[Karvity]] https://esolangs.org/w/index.php?diff=167699&oldid=167697 * Yayimhere2(school) * (+102)
15:30:38 <esolangs> [[Noddity]] https://esolangs.org/w/index.php?diff=167700&oldid=167698 * Yayimhere2(school) * (+46) /* Memory */
15:31:14 <esolangs> [[Karvity]] https://esolangs.org/w/index.php?diff=167701&oldid=167699 * Yayimhere2(school) * (+2) /* Commands */
16:17:54 -!- ais523 has joined.
16:27:37 -!- Lord_of_Life has quit (Ping timeout: 264 seconds).
16:28:25 -!- Lord_of_Life has joined.
16:32:47 <esolangs> [[Combine and continue]] N https://esolangs.org/w/index.php?oldid=167702 * Yayimhere2(school) * (+1438) Created page with "'''Combine and continue''' or '''CAC''' is an esolang created by [[User:Yayimhere]], created to make a church numeral based language, that is not actually [[Lambda calculus]] == Memory == Memory is stored on an unbounded stack, starting with an i
16:35:48 <esolangs> [[Combine and continue]] https://esolangs.org/w/index.php?diff=167703&oldid=167702 * Yayimhere2(school) * (+118) /* Commands */
16:38:20 <esolangs> [[Combine and continue]] https://esolangs.org/w/index.php?diff=167704&oldid=167703 * Yayimhere2(school) * (+0) /* Commands */
16:41:19 <esolangs> [[Combine and continue]] https://esolangs.org/w/index.php?diff=167705&oldid=167704 * Yayimhere2(school) * (+98) /* Commands */
16:49:08 -!- pool has quit (Read error: Connection reset by peer).
16:49:26 -!- pool has joined.
17:23:39 <esolangs> [[Combine and continue]] https://esolangs.org/w/index.php?diff=167706&oldid=167705 * Yayimhere2(school) * (+830) /* Commands */ Prove CAC turing complete
17:44:15 <esolangs> [[Viktor's amazing 4-bit processor]] M https://esolangs.org/w/index.php?diff=167707&oldid=167400 * TheBigH * (+967) added multiplication program
17:48:04 <esolangs> [[Special:Log/newusers]] create * GolferHome * New user account
17:49:28 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=167708&oldid=167693 * GolferHome * (+225)
18:04:08 <esolangs> [[QuantumGolf]] N https://esolangs.org/w/index.php?oldid=167709 * GolferHome * (+2762) Created page with "QuantumGolf is a [[QOO-OOKALAN]] extension for even shorter codes. === Language Addictions === ==== Basic Syntax ==== // Assignment returns value (like JavaScript) x = 5 // Assigns 5 to x, returns 5 // Implicit output: last expression is printed
18:06:17 <esolangs> [[QuantumGolf]] https://esolangs.org/w/index.php?diff=167710&oldid=167709 * GolferHome * (+135)
18:06:41 <esolangs> [[Special:Log/newusers]] create * QuoteDam!anquote * New user account
18:07:37 <esolangs> [[QuantumGolf]] https://esolangs.org/w/index.php?diff=167711&oldid=167710 * GolferHome * (+88)
18:11:56 <int-e> Hmm, do we have a platform that adheres to POSIX but has a NULL pointer representation that's not all-0 bits?
18:18:46 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=167712&oldid=167708 * QuoteDam!anquote * (+270)
18:20:18 <esolangs> [[TernaryDigitPointer]] N https://esolangs.org/w/index.php?oldid=167713 * QuoteDam!anquote * (+28271) i apologize this couldnt be more formal but present circumstances in my life make serious formulation rather difficult. love you esolangs ~~~~
18:20:32 <b_jonas> int-e: you don't count C++ pointer-to-members, right?
18:22:59 <int-e> CHERI might come close but kind of for the wrong reasons (invisible tags in memory). Plus it's not fully conformant for more or less the same reasons.
18:23:34 <b_jonas> I hope there isn't. all zero bits to represent null pointer is convenient.
18:27:56 -!- Sgeo has joined.
18:28:12 <b_jonas> and I think a different representation would break a lot of existing code that hardcodes that (unless perhaps there are multiple valid null pointers that the C comparison operators all compare equal and they all count as false in boolean context and the all zeros is one of them)
18:36:38 <esolangs> [[BytePusher]] https://esolangs.org/w/index.php?diff=167714&oldid=165606 * Wlad * (+175) Add new BytePusher implementation
19:13:30 <ais523> fwiw I think there are reasons to want pointers that have set bits in interesting places, like the top bit
19:13:47 <ais523> so that they can be more easily distinguished from integers (especially in systems with "this is a pointer" bits like OCaml)
19:14:17 <ais523> but that doesn't mean that NULL can't be all-bits-zero because normally you want NULL to be non-dereferenceable, so it's OK if it doesn't have a valid representation for a pointer
19:16:04 <korvo> The entire belief that pointers are rows of bits is a quirk of Von Neumann machines. It's not a coincidence that this assumption fails precisely in Harvard arches like CHERI or WASM.
19:16:20 <ais523> I have been thinking a lot about this today in particualr
19:16:39 <ais523> I was thinking about the difference between shadow-capability models and tracing-capability models
19:17:24 <korvo> It's akin to the belief that I've been quietly grapping with in Vixen, that a directory path is a bytestring, a UTF-8 string, or a list of path segments; but on a modern Unix, a directory path can be a file descriptor! Folks' difficulty in accepting this is why Capsicum was never merged to Linux.
19:17:37 <ais523> (the former is systems like Fil-C and CHERI where the thing that makes the pointer a pointer is stored in a parallel set of memory somehow; the latter uses the equivalent of "GC roots" (although there needn't actually be a GC) and a state machine to know what a pointer is, sort of like a tracing GC but without the actual GC)
19:18:16 <ais523> korvo: file descriptors are clearly the best way to represent directories – but it's fairly easy to go back and forth between the two representations in modern Linux
19:18:23 <ais523> you can just write /proc/self/fd/10 or whatever
19:18:40 <korvo> As opposed to e.g. Cello, I suppose? In Cello, a fat pointer is represented as a pair of pointers, and the GC interop is achieved by requiring all fat pointers to be *allocated* by libcello.
19:18:47 <ais523> (I think there's even an abbreviation /dev/fd/10)
19:19:30 <korvo> ais523: In many BSDs, there's a flag O_BENEATH or O_OPEN_BENEATH that allows open() on a directory to return a *restricted* descriptor. Doing an openat() or similar on this descriptor will fail if the path is not relative, or if it contains segments like "..".
19:20:03 <ais523> the RESOLVE_BENEATH option to openat2(2)
19:20:19 <korvo> ais523: Kind of? The flag only works for a completely separate version of the syscall, called something like open2(), and it's not bound in glibc. So actually doing it on Linux requires a syscall().
19:20:19 <ais523> oh, no, it's an option to a different syscall
19:20:30 <ais523> the BSD approach does it when opening the directory, Linux does it when opening the file
19:20:50 <ais523> you could still use seccomp or the like to force the flag to be given
19:20:54 <korvo> Yeah. Gotta paper over that. There's a Rust crate, and it's part of the std::cap capability-friendly stdlib.
19:21:36 <ais523> (I think it is correct to do this as defence in depth when using an object-capability model – having the kernel block things that don't use capabilities properly is nice even if your type system also does that)
19:21:59 <korvo> This doesn't sound like a fun time though. I'd have to somehow show that Vixen objects can't allow user code to handle raw paths? Or perhaps I'd have to show that user code can't invoke certain syscalls? Either way it's daunting.
19:22:22 <korvo> (Yes! See also pledge() and unveil() on some BSDs.)
19:22:30 <ais523> both Linux and OpenBSD (and maybe some of the other BSDs too?) have a way for a process to prevent itself from ever using certain syscalls
19:22:39 <ais523> seccomp on Linux, pledge on OpenBSD
19:22:58 <ais523> but the BSD version is easier to use, Linux's is very general but a bit difficult to use because of that
19:23:34 <korvo> Right. In capability theory, what we really seek is a system that has safe *loading* of untrusted user code; if the user can't ever instantiate a malicious object, then they can't possibly violate any security property.
19:23:48 <ais523> also, if you use seccomp you can't subsequently exec setuid binaries (basically because if they could use the syscalls themself that would be a hole in the sandbox, and if they couldn't they might malfunction due to some of their syscalls not working)
19:24:12 <korvo> And so Vixen's going to have to do the same thing that many cap systems do, where there's two kinds of pointers. There's low-level references that are unsafe, but the user can't touch; and high-level references that are safe and obey the cap rules.
19:25:02 <ais523> I think the correct way to do loading of untrusted code is "it comes with a proof that it doesn't violate any of the capability rules and you verify it on load" (where the proof is ideally just types in an appropriate type system)
19:26:02 <korvo> In E, low-level refs are Java refs and high-level refs are fat pointers of safe code and a closure to more refs. In Monte, low-level refs are RPython object refs and high-level refs are fat pointers again. But this pattern can't work for Vixen because a fat pointer containing a path still lets the user read the path; this is a problem in Nix too.
19:26:30 <ais523> oh right, I also had a terminology problem
19:26:44 <ais523> the thing that proves you have access to, e.g., a filesystem resource is called a "capability"
19:26:57 <ais523> the thing that makes a piece of memory into a pointer and lets you dereference through it is also called a "capability"
19:27:19 <korvo> Yeah, probably. In practice, we start by requiring the code itself to be highly restricted, usually equivalent to a simply-typed lambda calculus; cap safety is free there. Then we ensure that the loaded code only has access to *tamed* resources, which have been structured to preserve caps. And we have to take away stuff like timers that seem harmless.
19:27:27 <ais523> this is OK as long as you're only dealing with one of those at a time, but trying to think about both at once is confusing and I've been looking for a clear way to distinguish
19:27:56 <ais523> (they are clearly connected concepts, but a little different in nature and in most cases substantially different in implementation)
19:28:04 <korvo> As Arlo Guthrie put it, "Officer Obie wanted to make sure that we wouldn't hurt ourselves in the jail cell. So Obie took away our belts so we couldn't hang ourselves, and our shirts so we couldn't strangle ourselves, and even the toilet seat so we couldn't hit ourselves over the head with it."
19:28:19 <ais523> some real-life prisons actually do do that sort of thing
19:28:40 <korvo> Right. The capability is the *reference* and the resource itself is an object/actor/machine/etc.
19:29:25 <ais523> I guess it helps if your file descriptors are Windows/WASM-style opaque-numbers-that-look-a-lot-like-pointers rather than POSIX's consecutive integers
19:30:00 <korvo> Yeah, we usually require a capability representation to be *unguessable*, which is a truly bad word but better than "very-hard-to-guess-able".
19:30:03 <ais523> because then you can make them not collide with actual real pointers you can store through
19:30:22 <ais523> korvo: oh, I'm surprised, I thought you would use the type system to make them unforgeable
19:30:43 <korvo> This is actually kind of nice for Vixen though, because we can say that the calling convention includes a *row* of FDs, starting with the standard three and optionally adding more. Just like how we can pass additional argv by appending them to the end, we can pass additional FDs in a little stack.
19:31:36 <ais523> (I believe that, given the number of speculative execution vulnerabilities that have been discovered and the rate at which they are still being discovered, there are almost certainly a large number of such vulnerabilities that aren't publicly known, some of which may be known to adversaries – and as such, with today's processors, unguessability is probably unwise to rely on)
19:31:38 <korvo> ais523: Some languages do that. Pony's a good example. It's got like six different kinds of modifier for pointers, and the type system strongly restricts how pointers can be casted. They ended up incorporating a fair amount of Rust's thinking IIRC.
19:32:16 <korvo> Wyvern's another decent example. They have dependency injection for global concepts; if you want to write an HTTP handler but not an HTTP server, you can write just the handler and the type system will wire it up for you.
19:32:20 <ais523> Rust is a mix of things that are only incidentally there and could easily be different, and some fundamental insights about programming
19:32:40 <ais523> "exclusive references are useful" is one of the fundamental insights, I think
19:33:02 <ais523> I realised that today, because I was thinking about casts between pointer-to-pointer and pointer-to-integer
19:33:04 <korvo> (I don't know why most cap languages are named after animals. The pattern has never stopped, though; E was originally Joe-E, both a coffee and "joey" pun. Monte is homophonic with Lojban {manti}, "ant".)
19:33:38 <ais523> in almost all memory-safe language, these either can't be allowed (for semantic reasons) or are permitted but don't actually work correctly
19:34:20 <ais523> whereas in Rust, the cast is safe as long as you have an exclusive reference, and write through it before reading through it
19:34:34 <ais523> and I was trying to work out where the difference was – it's purely the exclusive reference that makes it work
19:34:39 <korvo> Or they do something silly. In cap theory, a *c-table* or *cap table* holds pointers for users, since users can't be trusted to do bad things. Instead, the user gets a reference into the c-table. Examples range from the kernel's row of per-process FDs to ECMAScript's WeakMap.
19:35:19 <ais523> that reminds me of WebAssembly's function table, which I think is similar but not quite the ame
19:35:39 <ais523> (WebAssembly doesn't really have function pointers, but you can use indexes into the function table as a substittue)
19:36:06 <korvo> Further, a *powerbox* is a set of pre-delegated powers that are already packed into a c-table. We usually assume that the user has to *know* the keys for a powerbox before it will do anything for them; keys are unguessable in WASM or Nix, or unforgeable in ECMAScript's WeakMap.
19:37:02 <korvo> And yeah, WASM starts each module with a powerbox of imports and other stuff. The runtimes like wasmtime include tamed POSIX syscalls in the powerbox. I think that the fullest example of all of this was CloudABI, an also-ran for Capsicum that I think is now defunct.
19:37:39 <zzo38> A variant would be to store a generation number with each reference into the table as well; Free Hero Mesh does this (although this is an internal representation and not exposed to user code, which only sees references to objects without knowing their internal representation). (Free Hero Mesh also uses 0 for null pointers, even though non-null pointers are distinguished from integers.)
19:38:14 <ais523> one of the things I want to do is write my own interact-with-the-OS library, sort-of like the OS-interaction parts of libc, but with a very different interface
19:39:04 <zzo38> What kind of different interface?
19:39:14 <ais523> it would be designed to be compatible with object-capabilities but I would want to make other changes too (e.g. supplying a solution to the heterogenous select problem, and being compatible with asynchronous interfaces)
19:39:44 <ais523> like, you could start a write and two reads and then select on any of those completing, or signals arriving, or timers expiring, or a directory being changed, or anything else of that nature
19:40:38 <zzo38> I had thought of that, although in the context of redesigning the entire operating system and computer rather than working with existing systems.
19:40:56 <ais523> this interface is compatible with old-fashioned POSIX (not async, you use pselect and maybe threads if you have to), with nonblocking IO, with async IO, and with io_uring
19:41:39 <ais523> but it would be so much more sensible than what we have at the moment, where system calls are able to block on random subsets of things and there isn't a clean, simple way to just block on any set of things
19:42:14 <zzo38> All of the things you mentioned would be implemented using the same system call (and there is no distinction between timers, directories, files, etc; signals might be distinct if necessary but the others would just be capabilities with the same system call interface as any other)
19:42:29 <ais523> (Linux has been moving towards a model of being able to convert arbitrary things you want to wait on into fds, and using epoll to block on them all at once ? but it doesn't quite work for everything, e.g. they couldn't make futexes work with it even though they tried)
19:43:10 <ais523> oh no, somehow my client's encoding has changed away from UTF-8 and I have no idea where the setting is to change it back
19:49:24 -!- pool has quit (Read error: Connection reset by peer).
19:49:35 <korvo> There was a quite interesting thread on that topic recently on Lobsters: https://lobste.rs/s/ko5i9y/if_you_could_redesign_linux_userland_from It turns out that there's a very real distinction between changes that are willing to negotiate syscalls and changes that take the syscalls as they are.
19:50:14 <korvo> zzo38: Have you looked at seL4? I regret not actually putting time into it, but it seems like they got all of the capabilities done right.
19:51:30 -!- pool has joined.
20:01:06 <ais523> korvo: I think it's OK to leave the kernel's system calls as they are, but there should be an API layer in between them and userspace that enforces sensible usage
20:05:26 <zzo38> I have seen seL4 and my ideas have some similarities but also differences
20:12:38 <ais523> korvo: your link reminds me of another thing I wanted to do: having command-line arguments grant capabilities
20:12:46 -!- tromp has joined.
20:13:01 <ais523> i.e. a program can't naturally read files, but can if you specify them as command-line arguments (this would need some rules for when a command-line argument was a file and when it wasn't)
20:13:36 <ais523> the nice thing is that I think you can do that in a way that's mostly compatible with programs that don't understand the convention
20:15:21 <ais523> (the hard part is allowing programs to read the dependencies they depend on, although I think that's regular enough to be special-caseable)
20:20:25 <korvo> ais523: The trick is to understand that a string can still grant an unguessable capability, as long as it's in some hyperbolically-large (and thus exponentially expensive to search) space. Doesn't work for Realtalk/Dynamicland books, which are in Euclidean space; but it *does* work for URLs. There's a W3C about this: https://www.w3.org/TR/capability-urls/
20:21:05 <ais523> korvo: oh, I was thinking in terms of user interface as used by humans, rather than in terms of program-program communication
20:21:36 <ais523> you don't need to use unguessable strings when you can just say /dev/fd/10 or whatever (which is guessable, but won't work if the capability hasn't been given)
20:23:19 <korvo> It's too bad that we can't name capabilities easily when we pass them. I was thinking about using envp; there'd be an envvar like MY_CAP=42 and a passed FD 42. But that feels like too much of a hack for some reason, even though envp's part of the process calling convention.
20:24:38 <korvo> No wonder that big message-passing actor systems (gRPC at Google, Workers at Cloudflare) use some sort of extremely restricted flat-buffer format (PBs, Capn Proto). Slightly less of a wonder that Capn Proto explicitly has a "capability" type which is just for opaque pointers but comes with calling-convention rules for networked usage.
20:24:50 <ais523> a related idea I've had for a while is that of a "typed main()" where the entry point to a program gets to choose its own arguments and types for them, rather than being a list of strings
20:25:09 <ais523> and this would include the capabilities that it needs
20:25:31 <ais523> then there would be some automated way to translate this into a command-line argument parser so that humans could use it
20:25:59 <korvo> Wyvern does that although I don't remember the syntax. Monte did it in a way that was optimized for human auditing; just read the main() directly: https://github.com/MostAwesomeDude/airbrus/blob/master/airbrus.mt#L102-L107
20:26:27 <korvo> (This is an IRC bot but the principles are fully general. I also did some TUI widgets, distributed raytracing, HTTP, etc.)
20:27:12 <ais523> korvo: ooh, so I wasn't the first person to have that idea, that makes me more confident that it's a good one
20:28:24 <korvo> ais523: In the Bun runtime, which is like an ECMAScript dialect, there's CLI switches to disable various caps, so that if main() asks for a disabled cap then it'll immediately crash. pledge() in argv, basically. I want to say that wasmtime has that sort of thing, too, but I'm not sure.
20:29:11 <korvo> It's a really cool fusion of ideas. The cap says what you *can* do, but the constraint/context says what you *can't* do, and the runtime never lets the cap violate the constraint.
20:29:11 <ais523> korvo: right, that's equivalent to just not passing the argument in
20:29:30 <ais523> and in most programs that gives you a usage error
20:30:04 <korvo> Oh! Fil-C does this too. People have been talking about data racing and ragged/torn pointer accesses. The upshot is that Fil-C's fat pointers basically are cap/context pairs, with the cap being a plain pointer, and the language's safety is relative to the context rather than the caps.
20:30:37 <korvo> ais523: Exactly! Monte literally raises the *same* key-not-found error that it would raise for an ordinary map lookup. I think it *is* an ordinary map TBH.
20:31:28 <ais523> korvo: your terminology here contradicts the standard, most people call the shadow part the capability (the part in main memory is called an integer part or an address)
20:31:52 <ais523> but right, it's the same concept
20:35:14 <korvo> Yeah, I think that it's a consequence of being on the other side of memory-safe-by-default. It's possible in Python to sandbox an imported module s.t. it won't corrupt memory, but all of the issues of improper access are still there, and Python can't be sandboxed in general without removing most of the object model.
20:39:39 <korvo> In the E framing, a fat pointer's got a "script", which is like all of the compiled methods, and a "closure", which is just a list of caps. These are both machine pointers, and improper access is prevented wholly by the script being safely-loaded code. So to even have access to an E system is to be limited by these safety rules and never mishandle a pointer.
20:40:21 <korvo> In the CHERI framing, though, the code can literally have any sequence of bytes and instruct the machine to do anything whatsoever. So of course the cap and the pointer are distinct, because the instructions are about pointers and not caps.
20:41:21 <korvo> I've always said that Nix is what we call a *transitional* cap-aware system. It can, when restricted to a certain view, be cap-safe; but really that depends on a discipline where we never look under the hood at the actual path. Vixen would be like this too. But also so is Apache when it's got a webroot; path traversal is generally not okay.
20:41:44 <ais523> so I think there are two main distinctions here: a) shadow capabilities versus tracing capabilities, b) pointers being one machine word versus two machine words
20:41:56 <korvo> So maybe there's a sense of *path-safety* that we haven't quite figured out, s.t. cap-safety implies path-safety but not vice versa.
20:42:09 <ais523> korvo: this is the same problem as SQL injection I think
20:42:35 <ais523> it is certainly possible to have sound programs that use string concatenation to substitute into their SQL, they just have to be super-careful to escape properly
20:42:38 <ais523> that's what Apache is doing with paths
20:43:03 <korvo> Isn't SQL injection about quoting? The problem here is that somebody could guess that a Nix store has a particular (common version of a) package and does a Living Off The Land setup.
20:43:11 <ais523> but using parametrized queries is better, because then there's no chance that you forget to escape something and input gets interpreted as code
20:43:39 <ais523> korvo: yes, but Apache is similar – I think it works by parsing the path to look for suspicious combinations of ../ and the like
20:43:52 <ais523> which isn't quite the same problem as quoting but it has essentially the same solution
20:43:58 <korvo> The biological model I've been thinking of is not viruses or bacteria but *obelisks*, very recently discovered RNA-world fragments. It's possible and common for a script in the Nix store to just wrap another script, setting the environment and etc.
20:44:52 <korvo> ais523: Yeah. We could analogize that to a form of memory-safety where it's possible to canonicalize a pointer, and relative paths are like segmented/etc. pointers. So path traversal is like pointer forgery.
20:45:30 <ais523> the distinction is between an environment where capabilities *can't* be forged, and an environment where capabilities *aren't* forged
20:45:37 <ais523> (they could be, just the code chooses not to do it)
20:46:01 <ais523> you can make the latter into the former with a sufficiently powerful static analyser
20:46:24 <korvo> Oh no. I hate this distinction. This is one of those things that I don't like at all. In Lojban, we call it {poi} vs {noi}; when is something logically constrained/restricted from occurring, vs. just coincidentally happening to never occur?
20:47:04 <korvo> I don't like this because AFAICT there's no *logical* basis for telling these two environments apart. This has kept me up at night.
20:47:28 <ais523> …and I've just realised that we've spent like 30 out of the last 40 years of programming trying to make the latter better rather than concentrating on the former, and that makes me sad too
20:48:00 <korvo> I get what you're saying. We're talking about environments that are safe because they were correctly programmed, not because they were proven correct with a construction.
20:48:18 <ais523> I think Chinese has this distinction too, there are 4 or 5 words for "not" and one of the distinctions made is this one
20:49:31 -!- pool has quit (Read error: Connection reset by peer).
20:51:35 -!- pool has joined.
20:52:51 <ais523> and yes, this is about partial proofs I think – it is easier to prove that a program obeys certain rules than to prove it entirely correct (especially as the latter needs to you have a spec, and somehow be confident that the spec is correct)
20:53:27 <ais523> a program can be programmed, by a sufficiently skilled programmer (which may not exist in practice), to obey the rules even if nothing is enforcing them
20:54:04 <ais523> but it is better to have something that enforces the rules, ideally at compile time or even better library-check time, although runtime is better than nothing
20:54:11 <korvo> ais523: Okay, so now I'm thinking about what a CHERI/Fil-C model for paths would look like. Absolute path access would have to be banned, I think. openat() and friends would work for passing around relative path fragments. Some sort of path importer might make sense; I think Fil-C has something like this, where an untrusted pointer (absolute path) can be runtime-checked (path-parsed) in the context of an existing cap (path prefix) to cast it
20:54:25 <korvo> to a safe pointer (relative path + prefix).
20:55:31 <ais523> so Fil-C's basic primitives are the same as the ones that Rust provides, and a subset of CHERI's (CHERI has a capability narrowing primitive, Fil-C doesn't meaning that it can't catch allocation-internal buffer overflows, Rust currently sort-of does but only by accident and there are plans to remove it)
20:56:04 <korvo> To prevent a program from trying to repeatedly reinterpret a path against multiple different caps, I think that a failed cast would mean exit(). This is basically what we do in Python or Apache against path traversal.
20:56:28 <ais523> that reminds me, I meant to argue that Rust would benefit from a capability narrower even though the only thing it would do in present rust is to add undefined behaviour, because that allows sanitisers to take advantage of the undefined behaviour to catch internal buffer overflows
20:57:23 <ais523> korvo: well, the brute-force approach only works against probabilistic defences – I prefer determinstic defences for other reasons, but they'd also help in that situation
20:57:36 <ais523> the issue with trying to block brute force with forced exits is that there are so many potential loopholes
20:57:54 <ais523> like restarting the process, or spinning off daemons to do the brute-forcing, or the like
20:58:17 <ais523> (and you might not want to take down the whole process if it's, e.g., a web server process that serves tens of thousands of concurrent users)
20:58:28 <korvo> Monte doesn't have narrowing, but Monte has E-style auditing and transparent forwarding, so has other ways to attenuate caps. Vixen ought to have narrowing; I'm thinking of cribbing from zope.interface, which allows dynamic casting to an interface which can hide unrelated methods.
20:58:56 <ais523> I think OpenBSD has some sort of rule along the lines of "if a setuid process hits a runtime security check, its effective user can't run setuid programs for 15 minutes" as an anti-brute-forcing measure
20:59:20 <korvo> Well, just like with pledge(), we want violations to exit() because they signify that a contract has gone horribly wrong. I'm mostly thinking of Windows programmers who will search fifteen different locations for DLLs.
20:59:38 <korvo> Oh wow, TIL. That is hilarious.
21:01:40 <zzo38> My system does not have "command-line arguments" (it has an "initial message" which is similar, though). The initial message is not text, and can include capabilities; you do not need to use text to grant capabilities, but instead can pass them directly.
21:02:23 <korvo> ais523: Oh, I suppose E-style auditing is relevant. In E and Monte, and also OSs like KeyKOS and Genode, it's possible for one object to certify another object as having some structural property. This means that there's an auditing protocol which allows objects to consensually inspect each other.
21:02:57 <ais523> zzo38: what is the interface for humans to start programs like?
21:03:26 <ais523> korvo: now you've got me thinking about internal vs. external debuggers
21:03:46 <korvo> KeyKOS has the most interesting one to me. A running "tenant" process can have an "apartment". If the "super" (superintendent? supervisor?) wants to inspect it, then the tenant receives a signal and gets some time to put their apartment in order before the inspection. They also have some limited rights during the inspection!
21:03:48 <ais523> i.e. debuggers that try to work inside the capability system, versus debuggers that think in terms of VM internals and can just ignore capabilities
21:04:25 <ais523> korvo: I'd be interested to know what the applications for that are
21:04:36 <zzo38> Multiple interfaces are possible, but the main one would be CAQL (Command, Automation, and Query Language). One part of the program file specifies the expected type of the initial message, so that the CAQL can do the necessary type checking and conversion as appropriate into the byte/capability sequence.
21:05:15 <korvo> zzo38: Same idea in boot-to-Monte scripts that we never shared publically. Instead of starting a Monte REPL, start a Monte module; load the module into memory, start the JIT, and invoke the module's .run() method with argv, envp, all the usual goodies.
21:05:55 <zzo38> You could type an expression which evaluates to the appropriate capabilities and functions and files, or can copy them from other windows (using the mouse or using key combinations involving the [System] key or both), or a combination of these.
21:06:12 <ais523> zzo38: OK, that's a bit different from what I was expecting but it does make sense
21:06:25 <ais523> Microsoft have Powershell as a similar sort of interface
21:07:05 <korvo> ais523: KeyKOS was very early on, and just like early cap machines (Burroughs S500 or whatever it was called?) there were a lot of skeuomorphisms that didn't make sense to carry forward. Back then, memory spaces were more uniform; the extreme of this was IBM's mainframe (390?) that structured *everything* as a relational database.
21:07:26 <ais523> my plans were more along the lines of "when you install a program you specify capabilities that you are willing to grant it every time you run it, if you have them yourself" and then for any capabilities you don't grant it (but it needs) you have to specify them manually
21:08:02 <ais523> and also to make the manual specification as easy as possible, e.g. an "open file" dialog box would allow you to both choose the file and grant the program permission to access it (as you would always want to do both together it would be combined into a single button, with an icon showing that you were granting a capability)
21:08:08 <korvo> ...Sorry, that was an unhelpful history answer. Apartments make sense when you're running untrusted code. Think about how a modern cloud VM works; it has a similar inspection mechanism, usually delegated to the person renting the machine but also usable by the datacenter ops.
21:08:43 <ais523> korvo: my cloud VM's equivalent of that is the serial console, but maybe it's old-fashioned
21:08:46 <korvo> Actually I suppose it has *two* layers! A cloud *machine* in the rack is like an apartment, and the *VM* on the machine is also like an apartment. They have the same super/tenant relationship.
21:08:51 <zzo38> You would be able to do that with my system too, and the package manager would probably include that function; e.g. you could create your own function that calls it with the appropriate capabilities, if the file that defines the alias contains those capabilities to be granted.
21:08:59 <ais523> (I assume the serial port is also virtualised)
21:09:45 <korvo> ais523: A little. When I was working in a datacenter, we still had the idea of "pulling disks" on the hardware. We were just getting started with big VMs, we were doing Ganeti and Vagrant, and we didn't see the point of VMs. It was bare metal for customers all day.
21:09:56 <ais523> korvo: it took a very long time for the world to settle on the current "flat memory model with an MMU enforcing permissions" design for CPUs
21:10:03 <ais523> and although it is consensus, I also think it's wrong
21:10:25 <korvo> But even then, if we needed to go pull a machine from a rack, we'd first ping the owner on IRC to make sure that they were cool, give them some time to settle daemons and park disks and even $(shutdown), and *then* pull the machine for screwdriver time.
21:10:41 <ais523> I think VMs only started making sense fairly recently
21:11:01 <ais523> because the bottlenecks have changed over time
21:11:33 <korvo> As Fred Durst memorably said, "It's all about the para-virt hyper-virt cloud shift".
21:11:40 <ais523> a little over a decade ago, I was teaching a course in operating systems development (which was mostly writing Linux kernel modules)
21:11:59 <ais523> we tested the students' programs on bare metal and reimaged the computers afterwards
21:12:44 <korvo> Lore is that Google was first to containers, figuring them about about a decade ahead of everybody else. (I'm allowed to share this.) Lore is that from 1998-2008 Google believed containers were a trade-secret competitive advantage.
21:12:47 <ais523> I'm not sure what decision caused that policy, rather than using virtualisation
21:13:03 <ais523> (I wasn't involved in it, there was probably a good reason but I don't know what it was)
21:13:42 <korvo> IIRC there's a paper from like 1988, 1989, that has an explicit proof that a CPU only supports safe paravirt/hypervirt when its ISA's instructions cleanly decompose into one of several safe possibilities. I don't recall the authors or title but it's pretty influential in CPU design.
21:14:04 <ais523> it's kind-of shocking how much containers are like VMs in practice despite being almost entirely unrelated technologies implementation-wise
21:14:42 <korvo> So lore is that during the 90s Intel slowly adopted the lessons from this paper and then Google implemented containers basically as soon as the ISAs could safely do it. Whether this is true or not, TBH sounds kind of extraordinary to me. But it *does* have good historical support.
21:15:26 <ais523> I think of containers as more needing kernel support than hardware support
21:15:48 <ais523> like, the only thing you really need from the hardware is a decent MMU, and maybe the ability to trap on a few problematic instructions
21:16:00 <korvo> ais523: TBH it might just have been standard Linux practices. I did bare-metal for Linux driver development and VMs were never in the discussion. For GPUs, VMs were mostly involved because VMWare wanted to do GPU passthrough, and they had their own internal folks writing the VM drivers.
21:16:07 <ais523> virtual machines need a bit more, but still not that much
21:16:29 <ais523> korvo: now I'm wondering whether it was to make life easier for the students
21:16:44 <ais523> so that they wouldn't have to worry about whether they were inside or outside the VM
21:17:15 <korvo> It certainly wasn't to make life easier for the TAs, sounds like.
21:17:32 <ais523> oh no, it was actually pretty easy for me, especially as I didn't have to do the reimaging myself
21:18:15 <ais523> and I was already used to walking around computer labs, there are loads of reasons a computer science TA has to do that
21:19:19 <korvo> Datacenter theory on the ground definitely hasn't caught up with economics of the cloud. I remember a boss whose main standard for whether a machine was being used well was whether the CPUs were pegged; we had a two-wrongs-are-right situation where he thought that a Python script was efficient because it pegged multiple cores.
21:20:01 <korvo> But the cloud wants us to think of compute as a time-based unit that comes in discrete parcels and which we generally want to minimize. Totally different paradigm.
21:20:04 <ais523> this is a direction-of-implication fallacy, right?
21:20:18 <ais523> an ideally efficient program would be both CPU-bound and I/O-bound at the same time and thus would be pegging all the CPUs
21:20:36 <ais523> but, just because a program is pegging the CPUs that doesn't guarantee that it's efficient
21:20:54 <korvo> Ha, for sure. I think that for them it was even simpler than that: they paid for the machine and therefore they are gonna *use* that machine.
21:21:26 <korvo> Especially when the university pays the power bill, in that situation.
21:21:45 <ais523> I still remember being depressed by looking at a big compile with proprietary software and seeing that all four of the computer's cores were at 25%
21:22:05 <ais523> like it was trying to spread the workload among cores but wasn't very good at it
21:23:38 <zzo38> seL4 has separate system calls for send, receive, wait. etc. My idea is that send, receive, wait, yield, locking, and transactions, are all the same system call, which can do all of these things at once. (There might be a small number of other system calls, although there also might not be needed; it is not sure yet.)
21:24:21 <zzo38> (This way, you can avoid some problems with needing to wait or send or receive each before the other that the order cannot be resolved, by instead specifying all of them simultaneously.)
21:24:49 <korvo> zzo38: Yeah. I wonder what io_uring might look like for seL4. The kernel could have a sort of return-to-uring semantics that looks like a little bytecode interpreter, repeatedly dispatching messages without actually letting user code run.
21:32:59 <b_jonas> “<ais523> a ‘typed main()’ where the entry point to a program gets to choose its own arguments” => what the, did zzo38 infect you somehow?
21:33:23 <ais523> b_jonas: I came up with this on my own! although I'm not so surprised that zzo38 feels the same way
21:33:37 <b_jonas> not just for that line but the rest of what you said about operating system interface design I mean
21:34:06 <ais523> last time this topic of conversation came up I was surprised how much everyone in the channel was agreeing with each other
21:36:04 <zzo38> Note that if a program expects a capability of a specified type, it is also possible to specify any capability with the same interface. (You can also specify the low-level representation directly, but in that case the program is unlikely to work if it is incorrect, and might even crash immediately (although this will not cause the rest of the system to crash).)
21:40:23 <korvo> ais523: Well, we're all from the same Unix-y tribe here: syscalls are good, files are decent but not universal, processes are a reasonable unit of work for most purposes. If anybody from the Inferno/plan9 tribe were here, they might say that we're completely wrong.
21:40:34 <korvo> Well, maybe they'd have interesting things to say about paths even in that case, actually!
21:40:59 <ais523> korvo: I care somewhat about progressively upgrading existing systems
21:41:18 <ais523> I'd love to be able to replace the whole thing at once, but realistically I am not going to be able to write all that code at once and nobody would adopt it
21:41:27 <ais523> so, whatever I come up with, it has to be able to mix with what we already have
21:42:02 <ais523> and processes make a good abstraction boundary for doing that, because the existing software already understands and respects them
21:42:52 <korvo> Yeah. That's basically why I stopped working on Monte. The E approach is too totalizing. It makes sense if you've heard of Toontalk or seen any of the virtual worlds that Disney has built; E was born from a hope that a single cap language would be the way that everybody negotiates smart contracts in the metaverse.
21:43:01 <zzo38> My own idea does not have file names and directory structures (although there are files), and reduces the number of syscalls, so there are these significant differences from UNIX. There are also differences with the user programs, such as it does not use Unicode, and the l10n and i18n is entirely different from existing systems, and the window management is different, etc.
21:43:46 <ais523> likewise, whether or not files are a good abstraction, they're what we have and you need to be able to understand them to interoperate
21:43:46 <zzo38> And then, there would also be the hardware differences, such as tagged memory, a different keyboard than PC and Mac, a dedicated keyboard port (not using USB), connecting the mouse through the keyboard, etc.
21:44:05 <b_jonas> “OpenBSD has some sort of rule along the lines of ‘if a setuid process hits a runtime security check, its effective user can't run setuid programs for 15 minutes’” => am I the only one who thinks that set?id programs are a historical thing that we should phase out and eventually start to forbid in our file system settings or kernel settings or something because they're a bad idea, and we should
21:44:07 <zzo38> Implementation within other systems may be possible by the use of emulation, though.
21:44:11 <b_jonas> replace it by the user sending a request to a process that's already running with the desired effective user, because an execed set?id program inherits all sorts of process state from its execer and it's hard to sanitize all of them?
21:45:03 <ais523> b_jonas: I don't think so
21:45:26 <ais523> I have something of a pathological and irrational hatred of constantly-running daemons, though, so I'm biased
21:45:27 <korvo> b_jonas: Yes. s6 enables this sort of thing. In particular, there's a Nix distro called "sixos" that has just one setuid binary, doas.
21:45:30 <zzo38> b_jonas: I think that setuid is not the best idea but you would have to change the rest of the system too. Existing systems don't help much because it is still POSIX
21:45:44 <ais523> (I find it hard to justify this and it may have been one of the things that indirectly caused the NH4 devteam to break up)
21:46:31 <b_jonas> if you want to pass capabilities to the set?id programs, we now have a way to pass them to unrelated processes through a unix domain socket, which is much more precise then just having them inherit *every* obscure state that a process has in the operating system
21:46:56 <korvo> ais523: Using the Smalltix convention, so that a long-running process is the stack frame for a long-running method activation, perhaps you'd be interested in E's "no stale stack frames" rule. It has other names, but that one stuck because it's so descriptive.
21:47:21 <zzo38> Yes, a unix domain socket is better, although some things are difficult due to the existing working of the system, which does not handle user permissions in that way.
21:47:54 <korvo> E doesn't allow stack frames to be suspended. It doesn't have any way to generate a coroutine or iterator; users have to explicitly close over an iterator's state. So a stack frame can never be "stale"; it can never be in a state besides "active" or "about to be reaped".
21:49:48 <b_jonas> “virtual machines need a bit more, but still not that much” => not that much in theory, but they need nested paging which is a performance nightmare for processors to implement I think
21:50:04 <korvo> The obvious analogue is uninterruptible sleep, but maybe there's a more general concept of "no stale long-running processes" where a daemon has to be *doing* something in order to be resident. s6 has ways of parking FDs, and there's ye olde ipcd on basically any supervisor.
21:51:14 <b_jonas> “the cloud wants us to think of compute as a time-based unit that comes in discrete parcels and which we generally want to minimize.” => yes, but only if by compute you mean mostly RAM allocated times time, because that seems the most expensive part in practice, more so than CPU use
21:52:56 <korvo> b_jonas: No, I mean CPU. When a cloud orchestrator like k8s "allocates" a container, it's allocating CPU time on the scheduler. k8s promises to only use a certain amount of compute per node, but it really is allocated. RAM is also allocated this way, but it's a distinct resource.
21:54:45 <korvo> Oh, I see what you're saying. Yeah, the most expensive resource has depended on market phenomena. Bandwidth is always expensive. Disks were expensive for a while after that one tsunami on Thailand. GPUs and SSDs were both expensive when they were first rolled out.
21:55:19 <b_jonas> ais523: they don't have to be constantly running demon*s*, this is the case where systemd or something like a traditional inetd or webserver is useful, you have one program running as root that users can configure to be able to invoke any demon, and that top-level program is in a clean process state
21:55:22 <ais523> korvo: to me, "no stale stack frames" is kind-of the default because I don't have a lot of experience with langauges that do let you suspend them
21:55:38 <ais523> b_jonas: ooh, I see, a sort of local inetd
21:56:13 <korvo> Trying to remember what you usually work with. Go, maybe? Anything with "segmented", "suspendable", or "copyable" stacks is suspect.
21:56:37 <ais523> korvo: initially C and Perl, more recently Rust but generally synchronous and single-threaded Rust
21:57:17 <korvo> And yeah, after doing so much Python and then learning E, I can't go back either. It's just...why would you call Somebody Else's Code, giving them *your* control of execution, and just *hoping* that it comes back to you?
21:57:37 <ais523> Rust does have generators internally but hasn't figured out the interface to them or all the safety aspects yet; it also has async/await which gives you suspendable things that are vaguely like stack frames, but they're compiled into state machines and don't actually use the stack
21:57:58 <ais523> and this has been quite controversial and doesn't really integrate into the language well
21:58:13 <ais523> it's there because people needed it and the theory behind it is probably really interesting but hasn't been worked out yet
21:58:15 <korvo> IIUC Rust async/await uses Pin under the hood? So it's not doing anything nasty. It's not any worse than lambdas.
21:58:59 <ais523> yes, it's just sugar for a state machine, the only magic is that it can contain pointers to itself (which isn't normally allowed in Rust) and Pin is needed to make that safe
21:59:45 <ais523> I realised fairly recently that this could be used as a way of defining the semantics of a self-referential Rust object, via representing it as a state machine with only one state
22:00:13 <korvo> Closing over *values* is fine and safe, closing over *control flow* is probably not okay. E continuations are delimited; when their associated frame is reaped, they go inactive. They're also single-shot, so that they can only interrupt Somebody Else's Code *once* and can't forcibly make Somebody Else's Stack Frame go stale.
22:00:44 <b_jonas> ok, then at least I have one weird operating system design belief
22:00:49 <ais523> so one of the big problems with Rust async is that the state machine is an object, which means you can drop it
22:00:55 <b_jonas> you all seem to have much more
22:01:26 <ais523> and this is similar to the stale stack frame problem but different in that it behaves more like an unwind than a leak
22:02:51 <korvo> b_jonas: I got radicalized by capability theorists. Honestly it's a miracle that I'm not doing blockchains.
22:03:48 <ais523> `addquote <b_jonas> ok, then at least I have one weird operating system design belief <b_jonas> you all seem to have much more
22:03:52 <HackEso> 1337) <b_jonas> ok, then at least I have one weird operating system design belief <b_jonas> you all seem to have much more
22:03:58 <ais523> oh wow, great quote number
22:04:23 <korvo> Monte has external iterators because internal iteration requires the user to trust Somebody Else's Collection.
22:05:01 <b_jonas> sorry, I don't mean it as an insult, on a channel about esoteric languages people *should* get all sorts of strange operating system design ideas
22:05:06 <ais523> I'm not convinced that "the best iterator interface" has been figured out yet
22:05:08 <ais523> b_jonas: I know you don't
22:05:12 <ais523> I thought it was an excellent summary
22:05:16 <ais523> and funny at the same time
22:05:38 <ais523> (out of interest, which weird belief is yours?)
22:06:06 <korvo> b_jonas: I appreciated it! I *know* most of my beliefs are not mainstream, but I don't always have a good measurement for *how* radical they are.
22:06:38 <b_jonas> the belief that unxi set?id programs are a bad idea because exec makes a process inherit too much state that is hard to sanitize
22:07:03 <ais523> I don't tihnk that's that weird
22:07:19 <korvo> Like, in 2017 in https://corbinsimpson.com/words/globe.html I wrote a paraphrase of the standard reply that I got from people who *understood* caps fully: "That sounds like a very interesting project. It sounds too elegant and experimental to see much use, though." and "Your ideas are interesting and maybe you could find a professor willing to take on you and your project."
22:07:30 <zzo38> If a new computer is designed to have too much compatibility with others then this can limit any of the newer benefits that are added (and can also have other problems such as sexurity issues in some cases), which is one reason to avoid it; emulation can be used (in either direction) for cases where more compatibility is desired.
22:07:58 <korvo> Now less than a decade later these ideas are so mainstream that they are getting into CPU design for the first time in decades. I don't feel like I shifted much since then!
22:08:59 <b_jonas> I remember unexpected bugs because some parent process execed a program with a signal blocked. Many programs that want to exec on unix already pre-fork, make the child do all the real work and have the parent do the fork-execs, because it's hard to make sure that the fork-execed don't accidentally inherit the wrong state. There are multiple libraries to help you in this.
22:09:02 <ais523> one thing I have realised is that an "is this a pointer?" bit is actually really useful – I am less convinced of the value of shadow capabilities though
22:09:23 <ais523> but the pointer bit makes GCs much simpler and probably more efficient too
22:10:07 <korvo> b_jonas: I think that your justification is a little weird, but consider that for distros the argument is more like "setuid is bad because it requires our installer to do extra steps" or "setuid is bad because our immutable distro is fundamentally incompatible with setuid semantics". At best it's like "setuid is bad because malware can Live Off The Land".
22:10:29 <korvo> So maybe your justification is too sane for distro development!
22:10:36 <ais523> b_jonas: OK, so I had a problem related to that – I was thinking about passing capabilities to child processes, and thinking of a model of "everything is opened CLOEXEC by default and we dup-as-non-CLOEXEC in the child after forkign"
22:10:55 <ais523> and then was trying to work out how to soundly combine this with vfork
22:11:25 <b_jonas> and this doesn't seem to be a mainstream belief, because unixes are starting to use sudo, which is specifically a wrapper to centralize part the hard work of sanitizing the inherited process environment for a set?id program. not all parts of course, some have to be done in libc, and you can't *really* sanitize everything, for the same reason as you can't have a webserver plugin or antivirus remove the
22:11:31 <b_jonas> "unsafe" parts of requests, and if you try you just get those silly things like when you can't type a less-than sign into a webforum because the plugin thinks it's an XSS attack
22:12:38 <ais523> b_jonas: "starting" is wrong, they're gradually moving away from sudo in favour of less ridiculous replacements
22:12:58 <ais523> from my point of view, like the only security benefit of sudo is having each user use a separate password to elevate to root
22:13:04 * korvo imagining: affine file descriptors
22:13:17 <ais523> (and needing to log in as a user first before becoming root)
22:13:29 <ais523> all its other features are just security snares, and some of them are ridiculous
22:13:48 <b_jonas> ais523: at least the part that everything is opened CLOEXEC by default and you explicitly fcntl them to non-CLOEXEC when needed is I think pretty normal. non-CLOEXEC is just the historical default that's hard to change.
22:13:57 <b_jonas> ais523: that's true, that is a good thing about sudo
22:14:05 <ais523> I think other people are noticing that too, there have been a spate of less featureful sudo replacements recently
22:14:51 <ais523> b_jonas: so the problem with dupping in the child is that dup returns a file descriptor, which under POSIX rules you can't actually store anywhere after calling vfork
22:16:13 <zzo38> I would hope that a collaborative document and discussion can be made for the system I intended to design, and then it can partially or fully be made (and the parts might be made indpendendently, or similar ideas on other systems (which can be similar enough to be interoperable with some parts)), either as emulation or as FPGA or as hardware (or a combination of these), etc.
22:16:20 <b_jonas> ais523: in theory posix_spawn is trying to solve this because a wrapper in libc can break that rule by using architecture-dependent magic,
22:16:29 <b_jonas> but I'm still not sure if I like posix_spawn or not
22:16:35 <ais523> b_jonas: that was my thought too
22:17:08 <ais523> then I realised a) the reason I was stuck on this in the first place was for writing a libc alternative, so I wouldn't be able to use posix_spawn anyway and b) posix_spawn is really confusing
22:17:28 <zzo38> (A combination would be to e.g. make the keyboard and connect to GPIO or using an adapter to USB (or MIDI or Ethernet or whatever else), and use an emulator on the computer for other parts of the system; the parts could then also be used independently with an alternative implementation.)
22:17:35 <ais523> interestingly, Rust's process creation API is basically a more Rust-idiomatic version of posix_spawn because it was hard to ensure safety otherwise
22:17:53 <b_jonas> um so? if you're writing a libc alternative you can add a posix_spawn alternative into it, can't you?
22:18:23 <ais523> b_jonas: yes but it doesn't solve the original problem of not really understanding what is and isn't safe under vfork
22:20:42 <ais523> at least on Linux vfork is fairly simple because it still does COW memory like regular fork does, it's just a change to the scheduling algorithm
22:21:01 <b_jonas> but I at least appreciate the elgance of posix_spawn that it can solve two problems with the same interface: one that vfork is hard to use, the other is that it can be a portable interface that works on both unix-like operating systems and systems that can't fork
22:21:56 <ais523> I like the idea of posix_spawn, it's just that C rather gets in the way
22:22:11 <ais523> the Rust version is quite nice to use just because the language makes that sort of API more reasonable
22:22:12 <b_jonas> it's just that I don't want to use this because the system I use that doesn't fork is Win32, and it's different from posix-like systems in many other ways than just not being able to fork, which is why I don't need this specific portability solution
22:22:51 <b_jonas> yeah, there's a python version too
22:23:18 <ais523> I did some amount of serious programming on DOS, which also doesn't fork
22:23:30 <ais523> but I'm not sure whether I tried to create processes there using any language other than bash
22:23:48 <ais523> …I have just realised that "ais523 is the sort of person who uses a DOS fork of bash" says a huge amount about me
22:25:44 <b_jonas> I haven't used that, but I do have an old version of joe the text editor compiled for DOS which I found useful. I can even distribute its binary if anyone wants. my config file isn't very good so some of the bindings may need to be changed, but it does work me as a basic text editor that's not as bloated as most that I have access to on DOS are, which is why I inlcuded it in my one floppy sized DOS boot
22:27:10 <ais523> I'm trying to remember whether I used Emacs on DOS
22:28:29 <b_jonas> the visual editors that I mostly used in DOS are DOS's edit, which is in the same binary as QBASIC and so is somewhat big but was on an earlier version of that floppy; the editors in the GUI development environment for turbo pascal and borland C, which are bundled with a whole development environment with a full GUI interactive debugger in both source and assembly level; and ncedit which would work well
22:28:35 <b_jonas> on the boot floppy because it already has norton commander but it's not capable enough
22:29:08 <b_jonas> ais523: I don't know, but you did nethack on DOS so emacs on DOS doesn't sound too unbelievable
22:29:26 <zzo38> (Another way to provide some compatibility would be optional hardware modules, e.g. the processors (or FPGA) for MSX and other systems)
22:29:43 <ais523> b_jonas: oddly I'm not sure I ever played NetHack on DOS myself
22:29:56 <ais523> the TAS is doing it on the DOS version purely for emulation accuracy reaosns
22:30:05 <ais523> (I even submitted a patch to the emulator to get it to emulate NetHack correctly)
22:31:20 <b_jonas> exactly, that version is more canonical than having to pick from many unix version, and for a TAS you want a canonical version that behaves the same for everyone. canonical behavior is easier for games on old video consoles.
22:32:17 <b_jonas> and the technology for efficient accurate DOS emulation was already available back when you all started the TAS
22:32:54 <zzo38> Deterministic behaviour is also one of the things I intended for my computer design; proxy capabilities can be used for situations where the I/O would otherwise be non-deterministic, in order to force it to be deterministic.
22:33:30 <b_jonas> zzo38: deterministic behavior is harder in general than for just the nethack TAS
22:34:34 <zzo38> Yes, I know it is harder in general, which is why I thought to redesign the entire computer to support it
22:35:07 <b_jonas> but I think this isn't only about deterministic behavior, but *canonical* behavior, that is, it's deterministic and we want to show our sleeves empty so we didn't rig the behavior in a way that unfairly helps our TAS
22:35:59 <zzo38> OK, that is also valid, and I think that proxy capabilities might be helpful for that too.
22:36:48 <b_jonas> because I can specify deterministic behavior with a C interpreter that makes sure that dereferencing invalid pointers in the interpreted program doesn't cause UB in the interpreter, but I can do it in a way where I can cause any invalid memory access read the exact values that I want, and that would be an unfair advantage for a TAS
22:37:14 <b_jonas> now admittedly this would be more powerful for some other games than for nethack, but even so it's a good goal
22:37:20 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
22:38:00 <zzo38> It will not work with C in general unless it is a specific version with a specific compiler running on a specific system, I think.
22:38:41 <b_jonas> sure, but you can make it good enough to support enough of C that you can build and run nethack with it
22:39:52 <ais523> <b_jonas> because I can specify deterministic behavior with a C interpreter that makes sure that dereferencing invalid pointers in the interpreted program doesn't cause UB in the interpreter ← can't you just turn off ASLR?
22:40:25 <b_jonas> ais523: I don't understand the context
22:40:45 <zzo38> I expect it will be possible with my system, although some parts of the program will probably need to be changed (because e.g. fopen is unavailable, so you will need to use fopencookie instead; and you will also need to make it work with the I/O, although you could just use a terminal emulator without the ability to automatically respond, perhaps)
22:40:51 <b_jonas> turn off ASLR where? for the interpreter, for the interpreted program, for the program compiled and ran with a normal C environment, and why?
22:40:58 <ais523> b_jonas: if you want deterministic UB in C you can just remove the random inputs, any given compile will generate a particular asm and the asm is deterministic
22:41:11 <ais523> so you turn off ASLR rather than using an interpreter
22:41:25 <ais523> admittedly this wouldn't work so well with DOS, which has no MMU and so programs kind-of have to be relocatable
22:42:10 <b_jonas> ais523: sure, but you can be much more subtle in how you rig the execution, because you can pick the compiler and compiler option and the libc and curses implementation, and even some of the operating system behavior might influence nethack
22:42:43 <b_jonas> so I think it's very hard to get a canonical behavior for a unix version of nethack
22:44:14 <b_jonas> whereas DOS has a canonical version, DOS 6.2, and a canonical minimal set of drivers that you load (it's not the *usual* set, the usual set is to use the windows 3.11 version of himem.sys rather than DOS's, but Windows have more than one version so it's less canonical)
22:44:55 -!- tromp has joined.
22:45:18 <b_jonas> more easier to agree on one environment that you use to run all DOS games for which this works for TASing purposes
22:46:24 <b_jonas> like, the C behavior on unix will depend on at least how libc's malloc behaves
22:46:36 <b_jonas> and probably on more than just malloc
22:47:00 <ais523> b_jonas: so it becomes a bit less canonical due to the DPMI extender
22:47:20 <ais523> which takes on some of the roles that libc+the kernel would normally be responsible for
22:47:28 <ais523> the usual DPMI extender is Windows but it doesn't emulate well
22:47:42 <b_jonas> and the DOS behavior can depend on how the file system is layed out,
22:47:54 <ais523> for TASing, the decision is fairly simple: FreeDOS as the BIOS because we can emulate it legally, and HDPMI32 as the extender because it's the only one that emulates correctly
22:48:06 <b_jonas> and may depend on what exact version of CPU you have if you can get the program to execute arbitrary code
22:48:14 <ais523> (and even then I had to add a feature to the emulator to make it emulate correctly)
22:48:49 <ais523> tasvideos.org already has a standard "emulated DOS system" for TASing on so I didn't need to worry about things like the CPU version and frequency
22:48:55 <b_jonas> oh, that actually makes more sense even if I didn't use FreeDOS for running emulated DOS games
22:49:41 <b_jonas> I always just used my DOS 6.22 installation that's derived from that first DOS installation that I started when I got my first own PC (as separate from the one PC from the family)
22:50:13 <b_jonas> obviously it changed a lot since, but there's an unbroken line and the DOS and Windows 3.11 installation is the exact same
22:51:36 <b_jonas> “tasvideos.org already has a standard ‘emulated DOS system’” => that's great, then DOS is even more of an advantage. do they have any standard Windows systems, or is that too hard because of licensing issues?
22:51:52 <ais523> no, Windows TASing is actually really janky
22:51:56 <ais523> and keeps breaking all the time
22:52:07 <b_jonas> oh sure, but that's for other reasons too
22:52:15 <ais523> because it isn't an emulator, it's basically done using the Windows version fo LD_PRELOAD
22:52:20 <b_jonas> like delivering the inputs deterministically
22:52:32 <ais523> so you have to rely on whatever software+kernel setup the users happen to be running
22:53:43 <b_jonas> yeah, and for that reason I'm so glad Celeste added a built-in reason to read game control input from a file
22:54:26 <ais523> funnily enough, I kind-of invented TASing on my own before learning about it being a thing
22:54:36 <ais523> I had written my own computer game, and wrote a replay format for it
22:54:47 <ais523> but instead of recording player input, I created the replays by brute force
22:55:05 <b_jonas> that sounds more of the "zzo38 infected you" thing
22:56:25 <ais523> I wanted to see what an optimal level playthrough was like
22:56:52 <ais523> the thing is, I didn't know whether my computer had enough memory to hold all the possible states a game could be in (and I was brute-forcing basically via Dijkstra's algorithm, although I didn't know it at the time)
22:57:12 <ais523> so I stored the brute-forcing progress in the largest bit of memory I knew about, which was video RAM
22:57:22 <ais523> and so I got to see the brute-forcing in action on screen
22:58:29 <zzo38> The replay format is something I intend to make in Super ZZ Zero game engine, although it is something which is not currently implemented. (Hopefully this can be used for regression testing as well as for other purposes.)
23:00:42 <korvo> Maybe *that* is the biggest divide here. I'm an athletic speedrunner but not really a TAS'er.
23:02:10 <b_jonas> hehe, I'm not sure if that counts as the *biggest* divide
23:05:14 <zzo38> I also wanted to know if the design of a VM code for a music file, I have some opcodes that have a variant that includes a wait and some opcodes do not have such a variant. The range of opcodes that have such a variant is not many unused left, and I put the ones for one, two, or three MIDI bytes in the waiting range and the one for arbitrary size data in the non-waiting range.
23:05:20 <zzo38> Is this the best way to assign them?
23:05:33 <zzo38> (You can see https://raw.githubusercontent.com/zzo38/superzz0/refs/heads/trunk/music.doc for the actual document, if you want to see it)
23:07:56 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
23:49:48 -!- pool has quit (Read error: Connection reset by peer).
23:50:19 -!- pool has joined.
23:59:58 <esolangs> [[Language list]] https://esolangs.org/w/index.php?diff=167715&oldid=167643 * PrySigneToFry * (+40)
00:03:12 -!- perlbot has quit (Quit: ZNC 1.9.1+deb2+b3 - https://znc.in).
00:14:35 -!- perlbot has joined.
00:24:28 -!- ais523 has quit (Quit: quit).
00:50:00 -!- pool has quit (Read error: Connection reset by peer).
00:51:53 -!- pool has joined.
00:56:48 <esolangs> [[Language list]] https://esolangs.org/w/index.php?diff=167716&oldid=167715 * I am islptng * (+28) /* S */
01:50:01 -!- pool has quit (Read error: Connection reset by peer).
01:51:01 -!- joast has quit (Quit: Leaving.).
01:52:09 -!- pool has joined.
02:09:19 -!- chloetax9 has joined.
02:17:23 -!- Sgeo has quit (*.net *.split).
02:17:23 -!- chloetax has quit (*.net *.split).
02:17:23 -!- ManDeJan has quit (*.net *.split).
02:17:23 -!- dcreager has quit (*.net *.split).
02:17:23 -!- integral has quit (*.net *.split).
02:17:24 -!- chloetax9 has changed nick to chloetax.
02:25: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).
02:49:47 <zzo38> My own ideas for the computer/operating-system does not currently have a name, though.
02:50:08 -!- pool has quit (Read error: Connection reset by peer).
02:52:11 -!- pool has joined.
03:05:03 -!- op_4 has quit (Remote host closed the connection).
03:05:34 -!- op_4 has joined.
03:42:50 -!- simcop2387 has quit (Ping timeout: 245 seconds).
03:43:13 -!- perlbot has quit (Ping timeout: 264 seconds).
03:49:05 -!- perlbot has joined.
03:54:05 -!- simcop2387 has joined.
04:17:06 -!- joast has joined.
04:35:20 -!- chloetax has quit (Ping timeout: 244 seconds).
05:03:12 -!- chiselfuse has quit (Ping timeout: 272 seconds).
05:04:21 -!- chiselfuse has joined.
05:24:21 -!- chiselfuse has quit (Remote host closed the connection).
05:24:35 -!- chiselfuse has joined.
05:57:03 -!- Sgeo has joined.
06:41:58 <zzo38> Would there be any sense to use MIDI as the replay format for some kind of computer games?
07:25:06 <esolangs> [[User:Zip]] https://esolangs.org/w/index.php?diff=167717&oldid=153685 * Zip * (+65)
07:37:57 <esolangs> [[Karvity]] https://esolangs.org/w/index.php?diff=167718&oldid=167701 * Yayimhere2(school) * (-166) /* Commands */
07:51:58 -!- tromp has joined.
08:21:13 -!- lisbeths has joined.
08:22:55 <esolangs> [[Stopload]] https://esolangs.org/w/index.php?diff=167719&oldid=167695 * Yayimhere2(school) * (+103) /* Memory */
08:24:05 <esolangs> [[Stopload]] https://esolangs.org/w/index.php?diff=167720&oldid=167719 * Yayimhere2(school) * (+115) /* Semantics */
08:25:15 <lisbeths> mission critical https://www.irccloud.com/pastebin/ZEgZII2F/mission%20critcal
08:29:22 <esolangs> [[Stopload]] https://esolangs.org/w/index.php?diff=167721&oldid=167720 * Yayimhere2(school) * (-29) /* Semantics */
08:32:51 <esolangs> [[Stopload]] https://esolangs.org/w/index.php?diff=167722&oldid=167721 * Yayimhere2(school) * (-1) /* Semantics */
08:46:11 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
08:48:26 <esolangs> [[Stopload]] https://esolangs.org/w/index.php?diff=167723&oldid=167722 * Yayimhere2(school) * (+4)
08:50:44 -!- pool has quit (Read error: Connection reset by peer).
08:52:57 -!- pool has joined.
08:57:32 <esolangs> [[CFCK]] N https://esolangs.org/w/index.php?oldid=167724 * FluixMakesEsolangs * (+2716) Initial Commit
08:59:49 -!- ehmry has joined.
10:30:15 -!- lisbeths has quit (Quit: Connection closed for inactivity).
10:43:14 <esolangs> [[Esolang:Sandbox]] https://esolangs.org/w/index.php?diff=167725&oldid=167661 * Esolangist * (+168)
10:44:41 <esolangs> [[EUCS]] https://esolangs.org/w/index.php?diff=167726&oldid=167585 * Esolangist * (+14) Symbols for space and newline
10:52:15 -!- tromp has joined.
11:00:28 -!- Sgeo has quit (Read error: Connection reset by peer).
11:07:21 -!- ais523 has joined.
11:10:00 -!- lisbeths has joined.
11:13:13 <esolangs> [[User talk:Yayimhere2(school)]] https://esolangs.org/w/index.php?diff=167727&oldid=146714 * PrySigneToFry * (+173) /* ? */ new section
11:14:34 <esolangs> [[Esolang:Sandbox]] https://esolangs.org/w/index.php?diff=167728&oldid=167725 * PrySigneToFry * (-168) Please remember to clear the sandbox after use, thank you.
11:17:17 <esolangs> [[User talk:User:Main page/w/wiki/User:NotPrySigneToFry/what]] https://esolangs.org/w/index.php?diff=167729&oldid=167354 * PrySigneToFry * (+57)
11:45:17 <esolangs> [[User talk:/w/wiki/index.php/Talk:index.php/Main page]] https://esolangs.org/w/index.php?diff=167730&oldid=167356 * PrySigneToFry * (+47)
12:06:03 <esolangs> [[YksniM]] https://esolangs.org/w/index.php?diff=167731&oldid=167595 * Esolangist * (-14)
12:43:40 -!- DOS_User_webchat has joined.
12:43:56 -!- DOS_User_webchat has changed hostmask to ~DOS_User_@user/DOS-User:11249.
12:51:08 -!- DOS_User_webchat has quit (Remote host closed the connection).
12:52:52 <esolangs> [[User:As]] https://esolangs.org/w/index.php?diff=167732&oldid=167496 * As * (+228) /* external links */
12:53:40 <esolangs> [[User:As]] https://esolangs.org/w/index.php?diff=167733&oldid=167732 * As * (+20) /* languages */
13:12:54 -!- amby has joined.
13:30:15 -!- lisbeths has quit (Quit: Connection closed for inactivity).
13:46:49 <esolangs> [[Special:Log/newusers]] create * GNUian Linuxist Party * New user account
13:47:09 <esolangs> [[Fh]] N https://esolangs.org/w/index.php?oldid=167734 * As * (+778) Created page with "{{ infobox proglang |author=[[User:As]] |year=2025 |refimpl=[[Fh#implementation#Python|Python]] }} {{Distinguish/Confusion|eafh|h}} '''Fh''' is [[:Category:Joke languages|Joke]] [[Esoteric programming language]] inspired by [[eafh]]. It is [[Deadfish]] without <code>i</code>, <cod
13:47:56 <esolangs> [[User:As]] https://esolangs.org/w/index.php?diff=167735&oldid=167733 * As * (+8) /* languages */
13:52:26 <esolangs> [[Fh]] https://esolangs.org/w/index.php?diff=167736&oldid=167734 * As * (+23) /* Implementation */
13:54:58 <esolangs> [[Fh]] https://esolangs.org/w/index.php?diff=167737&oldid=167736 * As * (+23) /* Implementation */
13:59:06 <esolangs> [[Fh]] https://esolangs.org/w/index.php?diff=167738&oldid=167737 * As * (+195) /* Implementation */
14:30:41 <esolangs> [[Special:Log/newusers]] create * Python yyds * New user account
14:50:31 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
15:09:58 -!- mynery has changed nick to myname.
15:11:24 <esolangs> [[Special:Log/newusers]] create * Hammy * New user account
15:12:42 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=167739&oldid=167712 * Hammy * (+190)
15:14:06 <esolangs> [[User:Hammy]] N https://esolangs.org/w/index.php?oldid=167740 * Hammy * (+2219) Created page with "<blockquote> Do the impossible. Think the unthinkable. Program the unprogrammable. [[User:Esolangist|Esolangist]] ([[User talk:Esolangist|talk]]) 17:31, 1 November 2025 (UTC) </blockquote> Hello there! I will plan to make many esolangs. Also, I am [[User:HammyHammerh
15:14:28 <esolangs> [[User:Esolangist]] https://esolangs.org/w/index.php?diff=167741&oldid=167487 * Hammy * (-2195) Redirected page to [[User:Hammy]]
15:25:12 <esolangs> [[User talk:Yayimhere2(school)]] https://esolangs.org/w/index.php?diff=167742&oldid=167727 * Yayimhere2(school) * (+276)
15:26:48 <esolangs> [[User talk:Yayimhere2(school)]] https://esolangs.org/w/index.php?diff=167743&oldid=167742 * Yayimhere2(school) * (+199)
15:51:32 -!- pool has quit (Read error: Connection reset by peer).
15:53:32 -!- pool has joined.
16:14:45 <esolangs> [[Noddity]] https://esolangs.org/w/index.php?diff=167744&oldid=167700 * Yayimhere2(school) * (+1) /* Turing completeness proof */
16:18:15 <esolangs> [[LIMITED]] https://esolangs.org/w/index.php?diff=167745&oldid=165417 * DadoDev * (+480) Changed to use integers
16:23:54 <esolangs> [[Looping counter]] M https://esolangs.org/w/index.php?diff=167746&oldid=165701 * DadoDev * (+467) Added LIMITED
16:26:25 <esolangs> [[Turing Torment]] N https://esolangs.org/w/index.php?oldid=167747 * Hammy * (+1306) Created page with "Turing Torment is a weird language by [[User:Hammy]] ==Commands?== a b c d e this means "if the turing machine is in state a and on the symbol b, change the symbol to c and go left if d = 1, right if d = 2, and don't move otherwise. then change to state e" exampl
16:27:28 -!- Lord_of_Life_ has joined.
16:27:43 -!- Lord_of_Life has quit (Ping timeout: 240 seconds).
16:28:48 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
16:32:41 <esolangs> [[Conquer and divide]] N https://esolangs.org/w/index.php?oldid=167748 * Yayimhere2(school) * (+2323) Created page with "'''Conquer and divide''' or CAD is [[User:Yayimhere]]'s attempt at a simple turing complete concatenative language. It is quite the simple language. It is inspired by [[Underflow]], [[Underload]], [[Combine and continue]], and a [[Minsky machine]].
16:33:00 <esolangs> [[Conquer and divide]] https://esolangs.org/w/index.php?diff=167749&oldid=167748 * Yayimhere2(school) * (+0) /* Computational class */
16:36:09 <esolangs> [[Conquer and divide]] https://esolangs.org/w/index.php?diff=167750&oldid=167749 * Yayimhere2(school) * (+26) /* Computational class */
16:39:54 <esolangs> [[Combine and continue]] https://esolangs.org/w/index.php?diff=167751&oldid=167706 * Yayimhere2(school) * (+65) /* Turing completeness proof */
16:40:55 <esolangs> [[Combine and continue]] https://esolangs.org/w/index.php?diff=167752&oldid=167751 * Yayimhere2(school) * (+115)
16:41:48 -!- dcreager has joined.
16:41:50 -!- ManDeJan has joined.
16:41:54 -!- chloetax has joined.
16:42:27 -!- integral has joined.
16:42:45 <esolangs> [[Conquer and divide]] https://esolangs.org/w/index.php?diff=167753&oldid=167750 * Yayimhere2(school) * (+2) /* Commands */
16:46:22 <esolangs> [[Conquer and divide]] https://esolangs.org/w/index.php?diff=167754&oldid=167753 * Yayimhere2(school) * (+112) /* Commands */
16:48:16 <esolangs> [[Conquer and divide]] https://esolangs.org/w/index.php?diff=167755&oldid=167754 * Yayimhere2(school) * (+29) /* Commands */
16:51:40 -!- pool has quit (Read error: Connection reset by peer).
16:53:46 -!- pool has joined.
16:56:15 <esolangs> [[User:Yayimhere]] https://esolangs.org/w/index.php?diff=167756&oldid=167674 * Yayimhere2(school) * (+52) /* esolangs */
17:06:14 <esolangs> [[Ministack]] N https://esolangs.org/w/index.php?oldid=167757 * Hammy * (+1356) Created page with "Ministack is a '''mini'''mal '''stack'''-based language by [[User:Hammy]] ==Commands== {| class="wikitable" |+ Commands |- ! Command !! Meaning |- | 1 || Pushes 1. |- | - || Negates the top value of the stack. |- | . || Outputs the top value of the stack as a [[EUCS]] c
17:06:43 <esolangs> [[Ministack]] https://esolangs.org/w/index.php?diff=167758&oldid=167757 * Hammy * (+25) /* A+B problem */
17:12:53 -!- tromp has joined.
17:21:26 <esolangs> [[User:Esolangist/personal talk page]] https://esolangs.org/w/index.php?diff=167759&oldid=167588 * Hammy * (+16)
17:35:51 <esolangs> [[User:Yayimhere]] https://esolangs.org/w/index.php?diff=167760&oldid=167756 * Yayimhere2(school) * (+13) /* esolangs */
17:36:43 <esolangs> [[Talk:6]] https://esolangs.org/w/index.php?diff=167761&oldid=167668 * Tommyaweosme * (+42) /* Author's comments */
17:37:14 <esolangs> [[Noddity]] https://esolangs.org/w/index.php?diff=167762&oldid=167744 * Yayimhere2(school) * (+25) /* Turing completeness proof */
17:37:26 <esolangs> [[Noddity]] https://esolangs.org/w/index.php?diff=167763&oldid=167762 * Yayimhere2(school) * (-25) /* Turing completeness proof */
17:38:50 <esolangs> [[Talk:Burn]] https://esolangs.org/w/index.php?diff=167764&oldid=167424 * Tommyaweosme * (+225) /* Thoughts on burn */
17:38:54 <esolangs> [[Stopload]] https://esolangs.org/w/index.php?diff=167765&oldid=167723 * Yayimhere2(school) * (+46)
18:04:58 <esolangs> [[Do Minsk Family]] N https://esolangs.org/w/index.php?oldid=167766 * Yayimhere2(school) * (+648) Created page with "'''Do Minsk Family''' or '''DMF''' is an esolang family created by [[User:Yayimhere]]. These languages share the two commonalities that they all have inspired each other, and that (all most) all of them are proven turing complete by translation from [[
18:05:13 <esolangs> [[Do Minsk Family]] https://esolangs.org/w/index.php?diff=167767&oldid=167766 * Yayimhere2(school) * (+4) /* A tree of all the languages */
18:06:06 <esolangs> [[User:Yayimhere]] https://esolangs.org/w/index.php?diff=167768&oldid=167760 * Yayimhere2(school) * (-34) /* esolangs */
18:08:14 <esolangs> [[Minsky Machine]] N https://esolangs.org/w/index.php?oldid=167769 * Yayimhere2(school) * (+28) Redirected page to [[Minsky machine]]
18:12:50 <esolangs> [[Karvity]] https://esolangs.org/w/index.php?diff=167770&oldid=167718 * Yayimhere2(school) * (-10) /* See also */
18:13:16 <esolangs> [[A Question of Protocol]] https://esolangs.org/w/index.php?diff=167771&oldid=167623 * Yayimhere2(school) * (+37) /* Computational class */
18:13:42 <esolangs> [[Noddity]] https://esolangs.org/w/index.php?diff=167772&oldid=167763 * Yayimhere2(school) * (-10) /* See also */
18:14:15 <esolangs> [[TLQ]] https://esolangs.org/w/index.php?diff=167773&oldid=167655 * Yayimhere2(school) * (+37) /* Computational class */
18:14:59 <esolangs> [[Stopload]] https://esolangs.org/w/index.php?diff=167774&oldid=167765 * Yayimhere2(school) * (+36) /* Semantics */
18:15:32 <esolangs> [[Combine and continue]] https://esolangs.org/w/index.php?diff=167775&oldid=167752 * Yayimhere2(school) * (-17) /* See also */
18:16:10 <esolangs> [[Conquer and divide]] https://esolangs.org/w/index.php?diff=167776&oldid=167755 * Yayimhere2(school) * (+37) /* Computational class */
18:16:33 <esolangs> [[Do Minsk Family]] https://esolangs.org/w/index.php?diff=167777&oldid=167767 * Yayimhere2(school) * (+14) /* A tree of all the languages */
18:17:50 -!- Sgeo has joined.
18:23:56 <esolangs> [[Do Minsk Family]] https://esolangs.org/w/index.php?diff=167778&oldid=167777 * Yayimhere2(school) * (+365)
18:24:16 <esolangs> [[Do Minsk Family]] https://esolangs.org/w/index.php?diff=167779&oldid=167778 * Yayimhere2(school) * (+6)
18:25:00 <esolangs> [[Do Minsk Family]] https://esolangs.org/w/index.php?diff=167780&oldid=167779 * Yayimhere2(school) * (-14)
18:26:29 <korvo> A family tree of unimplemented languages? I think that the point may have been missed along the way.
18:27:02 <esolangs> [[Do Minsk Family]] https://esolangs.org/w/index.php?diff=167781&oldid=167780 * Yayimhere2(school) * (+55)
18:32:43 <esolangs> [[Do Minsk Family]] https://esolangs.org/w/index.php?diff=167782&oldid=167781 * Yayimhere2(school) * (+21) /* A tree of all the languages */
18:36:30 -!- amby has quit (Read error: Connection reset by peer).
18:36:52 -!- amby has joined.
18:46:35 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=167783&oldid=167739 * GNUian Linuxist Party * (+368) /* Introductions */
18:47:25 <esolangs> [[JSON.lang]] N https://esolangs.org/w/index.php?oldid=167784 * GNUian Linuxist Party * (+2584) JSON.lang
18:52:05 <esolangs> [[User:GNUian Linuxist Party]] N https://esolangs.org/w/index.php?oldid=167785 * GNUian Linuxist Party * (+62) GLP
18:54:50 <esolangs> [[JSON.lang]] https://esolangs.org/w/index.php?diff=167786&oldid=167784 * GNUian Linuxist Party * (-241) JSON.lang
18:55:11 -!- yc[m] has joined.
18:58:14 <esolangs> [[Special:Log/newusers]] create * ScriptingEntity * New user account
19:04:33 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=167787&oldid=167783 * ScriptingEntity * (+263) /* Introductions */
19:44:59 <esolangs> [[Psint]] N https://esolangs.org/w/index.php?oldid=167788 * ScriptingEntity * (+4369) Created page with "{{language |name=Psint |author=Scripting_Entity |year=2025 |influenced_by=[[Brainfuck]], [[Malbolge]] |computational_class=Unknown (may or may not be Turing-complete) }} '''Psint''' is an [[esoteric programming language]] created by [[User:Scripting_Entity]] in 2
19:49:19 <esolangs> [[Psint]] https://esolangs.org/w/index.php?diff=167789&oldid=167788 * ScriptingEntity * (+11)
19:50:23 <esolangs> [[Psint]] https://esolangs.org/w/index.php?diff=167790&oldid=167789 * ScriptingEntity * (-3)
19:51:13 <esolangs> [[Psint]] https://esolangs.org/w/index.php?diff=167791&oldid=167790 * ScriptingEntity * (+92)
20:08:42 <esolangs> [[Psint]] https://esolangs.org/w/index.php?diff=167792&oldid=167791 * ScriptingEntity * (+45)
20:11:02 <esolangs> [[Psint]] https://esolangs.org/w/index.php?diff=167793&oldid=167792 * ScriptingEntity * (-72)
20:12:31 <esolangs> [[Psint]] https://esolangs.org/w/index.php?diff=167794&oldid=167793 * ScriptingEntity * (+51)
20:12:46 <esolangs> [[Psint]] https://esolangs.org/w/index.php?diff=167795&oldid=167794 * ScriptingEntity * (-2)
20:13:12 <esolangs> [[Psint]] https://esolangs.org/w/index.php?diff=167796&oldid=167795 * ScriptingEntity * (+6)
20:14:20 <esolangs> [[Psint]] https://esolangs.org/w/index.php?diff=167797&oldid=167796 * ScriptingEntity * (+9) /* Instruction set */
20:15:41 <esolangs> [[Psint]] https://esolangs.org/w/index.php?diff=167798&oldid=167797 * ScriptingEntity * (-9) /* External Resources */
20:17:18 <esolangs> [[Psint]] https://esolangs.org/w/index.php?diff=167799&oldid=167798 * ScriptingEntity * (-75) /* External Resources */
20:20:42 <esolangs> [[Psint]] https://esolangs.org/w/index.php?diff=167800&oldid=167799 * ScriptingEntity * (+18) /* External Resources */
20:22:00 <esolangs> [[Psint]] https://esolangs.org/w/index.php?diff=167801&oldid=167800 * ScriptingEntity * (-1) /* Examples */
20:50:56 <esolangs> [[User:As]] https://esolangs.org/w/index.php?diff=167802&oldid=167735 * As * (+83)
20:51:29 <esolangs> [[Fh]] https://esolangs.org/w/index.php?diff=167803&oldid=167738 * As * (+0)
20:58:38 <esolangs> [[Fh]] https://esolangs.org/w/index.php?diff=167804&oldid=167803 * As * (+48)
21:00:00 <esolangs> [[Oh oh oh oh oh]] https://esolangs.org/w/index.php?diff=167805&oldid=167582 * As * (+56)
21:08:04 <esolangs> [[User:As]] https://esolangs.org/w/index.php?diff=167806&oldid=167802 * As * (+108)
21:17:06 <esolangs> [[Category:Active]] N https://esolangs.org/w/index.php?oldid=167807 * FluixMakesEsolangs * (+35) Initial Commit
21:20:50 <esolangs> [[CFCK]] M https://esolangs.org/w/index.php?diff=167808&oldid=167724 * Ractangle * (-3) work in progress exists
21:21:27 <esolangs> [[CFCK]] https://esolangs.org/w/index.php?diff=167809&oldid=167808 * Ractangle * (+5) /* Known Interpreters */
21:21:51 <esolangs> [[Special:Log/delete]] delete * Ais523 * deleted "[[Category:Active]]": unapproved category, redundant to [[Category:Works-in-Progress]]
21:25:05 <esolangs> [[Template:WIP]] M https://esolangs.org/w/index.php?diff=167810&oldid=66261 * Ractangle * (-55)
21:33:24 -!- ais523 has quit (Quit: quit).
21:49:28 <esolangs> [[CFCK]] M https://esolangs.org/w/index.php?diff=167811&oldid=167809 * FluixMakesEsolangs * (+15) fixed
22:30:09 <esolangs> [[Psint]] https://esolangs.org/w/index.php?diff=167812&oldid=167801 * ScriptingEntity * (+96)
22:39:46 <esolangs> [[Psint]] https://esolangs.org/w/index.php?diff=167813&oldid=167812 * ScriptingEntity * (+1) /* Implementation */
23:09:26 -!- chiselfuse has quit (Remote host closed the connection).
23:09:44 -!- chiselfuse has joined.
23:11:32 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
23:25:25 -!- yc[m] has quit (Remote host closed the connection).
23:28:51 -!- yc[m] has joined.
01:27:50 <esolangs> [[CFCK]] https://esolangs.org/w/index.php?diff=167814&oldid=167811 * FluixMakesEsolangs * (+1984) Update to compiler
01:46:57 <Sgeo> I wonder how extinct non-von-Neumann architecture is. The Burroughs E101 was a computer that wasn't stored-program
01:47:20 <Sgeo> And I feel like that's more recent than a lot of computers that come to mind as being non-von-Neumann (though still not recent)
01:52:04 <int-e> DSPs are often cited as an example where program memory tends to be separate. I imagine that applies to GPUs too, but don't know. Also having separate D and I caches blurs the line a bit.
01:52:30 <int-e> Oh and maybe try to categorize FPGAs that way :)
01:54:02 <Sgeo> Are there any pin based esolangs? This is of course a nonsense question without clarifying what I mean by "pin based", but I'm still amused
01:54:08 <Sgeo> Because E101 is a pin based computer
01:57:57 -!- yc has joined.
02:00:43 <korvo> DSPs and GPUs are great examples. TBH what occurs to me is WASM.
02:01:14 <int-e> oh thereabstract machines
02:01:34 <int-e> there are plenty of abstract machines that keep data and program completely separate
02:03:26 <int-e> Sgeo: note that von Neumann isn't just stored program; it also unifies data and program memory, in contrast to Harvard
02:03:49 <int-e> Sgeo: And now I'm not sure whether you care about that distinction.
02:06:23 <Sgeo> I guess "program is able to load other programs" is a key feature that makes... unified memory important
02:07:07 <int-e> or at least convenient
02:10:55 <esolangs> [[CFCK]] M https://esolangs.org/w/index.php?diff=167815&oldid=167814 * FluixMakesEsolangs * (+180) Added new commands and fix error in compiler
02:11:48 <esolangs> [[CFCK]] M https://esolangs.org/w/index.php?diff=167816&oldid=167815 * FluixMakesEsolangs * (+2) fixed other error (sorry...)
02:12:35 -!- Lord_of_Life has quit (Remote host closed the connection).
02:13:59 -!- Lord_of_Life has joined.
02:15:55 -!- lynndotpy6093 has quit (Quit: bye bye).
02:17:05 -!- lynndotpy6093 has joined.
02:21:30 -!- 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:31:03 -!- lynndotpy60936 has joined.
02:31:54 -!- lynndotpy6093 has quit (Ping timeout: 244 seconds).
02:31:54 -!- lynndotpy60936 has changed nick to lynndotpy6093.
02:58:48 -!- yc has quit (Remote host closed the connection).
02:59:03 -!- yc has joined.
03:01:04 -!- yc has changed hostmask to ~yc@user/youngchief.
03:53:55 <esolangs> [[Special:Log/newusers]] create * NTMDev * New user account
04:01:30 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=167817&oldid=167787 * NTMDev * (+169)
04:04:12 <esolangs> [[User:NTMDev]] N https://esolangs.org/w/index.php?oldid=167818 * NTMDev * (+215) Created page with "Hello! I am NTMDev and I like coding. I made a custom coding language (or as we call it an esolang) that is pretty cool. Java and Python are my main coding languages, although I am still a relative beginner in Java."
04:04:54 <esolangs> [[Main Page]] https://esolangs.org/w/index.php?diff=167819&oldid=161027 * NTMDev * (+3)
04:05:51 <esolangs> [[Main Page]] https://esolangs.org/w/index.php?diff=167820&oldid=167819 * NTMDev * (-3)
04:07:46 <esolangs> [[ASTLang]] N https://esolangs.org/w/index.php?oldid=167821 * NTMDev * (+14) Created page with "# ASTLang test"
04:08:43 <Sgeo> I should probably write an E101 emulator. There's software for it (mostly just mathematical subroutines)
04:08:58 <Sgeo> It's... not good at anything that isn't numbers.
04:10:45 <esolangs> [[ASTLang]] https://esolangs.org/w/index.php?diff=167822&oldid=167821 * NTMDev * (+287)
04:12:34 <esolangs> [[ASTLang]] https://esolangs.org/w/index.php?diff=167823&oldid=167822 * NTMDev * (+140)
04:13:18 <esolangs> [[ASTLang]] https://esolangs.org/w/index.php?diff=167824&oldid=167823 * NTMDev * (+4)
04:16:49 <esolangs> [[Combine and continue]] https://esolangs.org/w/index.php?diff=167825&oldid=167775 * Yayimhere2(school) * (+1) /* Turing completeness proof */
04:19:47 <esolangs> [[ASTLang]] https://esolangs.org/w/index.php?diff=167826&oldid=167824 * NTMDev * (+548)
04:20:33 <esolangs> [[ASTLang]] https://esolangs.org/w/index.php?diff=167827&oldid=167826 * NTMDev * (+6)
04:26:15 <esolangs> [[CFCK]] M https://esolangs.org/w/index.php?diff=167828&oldid=167816 * FluixMakesEsolangs * (+0) fixed algos
04:27:10 <esolangs> [[ASTLang]] https://esolangs.org/w/index.php?diff=167829&oldid=167827 * NTMDev * (+368)
04:33:55 -!- rodgort has quit (Ping timeout: 264 seconds).
04:34:10 <esolangs> [[ASTLang]] https://esolangs.org/w/index.php?diff=167830&oldid=167829 * NTMDev * (+1056)
04:37:45 <esolangs> [[ASTLang]] https://esolangs.org/w/index.php?diff=167831&oldid=167830 * NTMDev * (+552)
04:41:23 <esolangs> [[ASTLang]] https://esolangs.org/w/index.php?diff=167832&oldid=167831 * NTMDev * (+303)
04:43:45 <esolangs> [[ASTLang]] https://esolangs.org/w/index.php?diff=167833&oldid=167832 * NTMDev * (+177) /* Print */
04:44:12 <sorear> korvo: you may have noticed the zf2.tm formal correctness proof side-track, far more progress than any of the previous attempts
04:44:18 <esolangs> [[ASTLang]] https://esolangs.org/w/index.php?diff=167834&oldid=167833 * NTMDev * (+24)
04:47:31 <esolangs> [[Combine and continue]] https://esolangs.org/w/index.php?diff=167835&oldid=167825 * Yayimhere2(school) * (-17) /* Commands */
04:48:41 -!- rodgort has joined.
05:32:32 <korvo> sorear: Yeah. I'm keeping tabs, but I'm trying to avoid being the extra cook in the kitchen.
05:33:26 <sorear> don't have clear records but stopped having deja vu about when inc/dec were done
05:34:23 <sorear> rough estimate 90-95% of this is applicable to the nql compiler forks and closer to 80% for ajwade/turing_machine_explorer
05:38:58 <sorear> might ask on discord about information/tooling for the register initialization fragments? don't want to put a 2 million shift TM into my current symbolic evaluator but it's not high enough to have a wiki page
06:36:57 <esolangs> [[User:RaiseAfloppaFan3925/Sandbox]] https://esolangs.org/w/index.php?diff=167836&oldid=167682 * RaiseAfloppaFan3925 * (+2160) Redshift
07:11:14 <esolangs> [[Typing]] https://esolangs.org/w/index.php?diff=167837&oldid=43297 * ThrowAwayLurker * (+926) Added some more information and types of typing (untyped, funtcions)
07:13:28 <esolangs> [[User:RaiseAfloppaFan3925/Sandbox]] https://esolangs.org/w/index.php?diff=167838&oldid=167836 * RaiseAfloppaFan3925 * (+2322) /* Redshift */ Add jumps + XKCD random number example + assembler + Redshift-A
07:19:18 <esolangs> [[OOOOL]] M https://esolangs.org/w/index.php?diff=167839&oldid=106044 * ThrowAwayLurker * (+0) Fixed typo
07:24:28 <esolangs> [[Readable]] M https://esolangs.org/w/index.php?diff=167840&oldid=124384 * None1 * (+39) /* Integer */
07:26:27 <esolangs> [[Readable]] M https://esolangs.org/w/index.php?diff=167841&oldid=167840 * None1 * (-29) /* Hello, World! */
07:36:31 <esolangs> [[Readable]] M https://esolangs.org/w/index.php?diff=167842&oldid=167841 * None1 * (-1)
08:05:02 -!- Sgeo has quit (Read error: Connection reset by peer).
08:09:55 <esolangs> [[Conquer and divide]] https://esolangs.org/w/index.php?diff=167843&oldid=167776 * Yayimhere2(school) * (-42) /* Computational class */
08:38:30 -!- tromp has joined.
09:38:10 -!- chloetax has quit (Ping timeout: 255 seconds).
09:39:48 -!- chloetax has joined.
09:46:43 -!- chloetax has quit (Ping timeout: 255 seconds).
09:56:19 -!- chloetax has joined.
09:56:35 <esolangs> [[User:Yayimhere]] https://esolangs.org/w/index.php?diff=167844&oldid=167768 * Yayimhere2(school) * (-254)
10:01:13 -!- chloetax has quit (Ping timeout: 246 seconds).
10:16:59 -!- chloetax has joined.
10:22:44 -!- chloetax has quit (Ping timeout: 265 seconds).
11:09:11 <esolangs> [[Talk:INTERCAL]] https://esolangs.org/w/index.php?diff=167845&oldid=134192 * Jasper * (+1084) /* Useful functions made using INTERCAL's unary / binary operators */ new section
11:14:51 <esolangs> [[Talk:INTERCAL]] https://esolangs.org/w/index.php?diff=167846&oldid=167845 * Jasper * (+64) /* Useful functions made using INTERCAL's unary / binary operators */
11:19:34 <esolangs> [[Talk:INTERCAL]] https://esolangs.org/w/index.php?diff=167847&oldid=167846 * Jasper * (+90) /* Useful functions made using INTERCAL's unary / binary operators */
11:23:35 <esolangs> [[Special:Log/newusers]] create * DannyEslang * New user account
11:47:56 <esolangs> [[JSON.lang]] https://esolangs.org/w/index.php?diff=167848&oldid=167786 * GNUian Linuxist Party * (+48)
11:48:41 <esolangs> [[JSON.lang]] https://esolangs.org/w/index.php?diff=167849&oldid=167848 * GNUian Linuxist Party * (-36) /* See also */
11:52:33 -!- ais523 has joined.
12:05:21 -!- chloetax has joined.
12:10:34 -!- chloetax has quit (Ping timeout: 256 seconds).
12:14:41 -!- amby has joined.
12:30:19 <esolangs> [[User talk:Yayimhere2(school)]] https://esolangs.org/w/index.php?diff=167850&oldid=167743 * PrySigneToFry * (+199)
13:04:15 <esolangs> [[ASTLang]] https://esolangs.org/w/index.php?diff=167851&oldid=167834 * NTMDev * (+240) /* Print */
13:07:27 <esolangs> [[SletScript]] https://esolangs.org/w/index.php?diff=167852&oldid=167509 * I am islptng * (+391)
13:08:19 <esolangs> [[ASTLang]] https://esolangs.org/w/index.php?diff=167853&oldid=167851 * NTMDev * (+427)
13:12:33 -!- ais523 has quit (Quit: sorry about my connection).
13:36:50 -!- ais523 has joined.
14:09:27 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
14:20:36 <esolangs> [[Talk:SletScript]] https://esolangs.org/w/index.php?diff=167854&oldid=162155 * PrySigneToFry * (+214) /* */ new section
14:22:55 <esolangs> [[User talk:Yayimhere2(school)]] https://esolangs.org/w/index.php?diff=167855&oldid=167850 * Yayimhere2(school) * (+158)
14:25:54 <esolangs> [[User talk:Yayimhere2(school)]] https://esolangs.org/w/index.php?diff=167856&oldid=167855 * Yayimhere2(school) * (+25)
14:27:25 <esolangs> [[User talk:Yayimhere2(school)]] https://esolangs.org/w/index.php?diff=167857&oldid=167856 * Yayimhere2(school) * (+8)
14:30:51 -!- chloetax has joined.
14:31:55 <esolangs> [[Esolang:Sandbox]] https://esolangs.org/w/index.php?diff=167858&oldid=167728 * PrySigneToFry * (+451) Test of RTL text
14:32:16 <esolangs> [[Esolang:Sandbox]] https://esolangs.org/w/index.php?diff=167859&oldid=167858 * PrySigneToFry * (-451) Great.
14:49:44 -!- tromp has joined.
14:53:56 -!- pool has quit (Read error: Connection reset by peer).
14:55:45 -!- pool has joined.
15:33:24 <esolangs> [[Do you remember me?]] N https://esolangs.org/w/index.php?oldid=167860 * Yayimhere2(school) * (+1376) Created page with "'''Do you remember me?''' or '''DyRM''' is an esolang created by [[User:Yayimhere]], in exploration of [[Pushdown automaton]]. It is based around the [[Looping counter]] program == Memory == The memory is made up of a stack, that can hold the sym
15:33:35 <esolangs> [[Do you remember me?]] https://esolangs.org/w/index.php?diff=167861&oldid=167860 * Yayimhere2(school) * (+2) /* Semantics */
15:33:42 <esolangs> [[Do you remember me?]] https://esolangs.org/w/index.php?diff=167862&oldid=167861 * Yayimhere2(school) * (+1) /* Examples */
15:50:56 <esolangs> [[Talk:6]] https://esolangs.org/w/index.php?diff=167863&oldid=167761 * Corbin * (+168)
16:00:10 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
16:03:48 <esolangs> [[Constant language]] https://esolangs.org/w/index.php?diff=167864&oldid=164119 * Aadenboy * (+121) /* Quine avoidance */ wording + example
16:06:50 <esolangs> [[]] https://esolangs.org/w/index.php?diff=167865&oldid=115003 * Aadenboy * (+15) emphasis
16:07:02 <esolangs> [[]] https://esolangs.org/w/index.php?diff=167866&oldid=167865 * Aadenboy * (+5) missed one
16:14:43 <esolangs> [[Also?]] N https://esolangs.org/w/index.php?oldid=167867 * Yayimhere2(school) * (+2264) Created page with "'''Also?''' is an esolang created shortly after the creation of [[Do you remember me?|DyRM]]. It is quite the simple language, similarly to DyRM. It is also in part inspired by [[Minsky Machine]]. It is made up of two commands and a single special argument(alik
16:27:05 -!- tromp has joined.
16:27:43 -!- Lord_of_Life has quit (Ping timeout: 240 seconds).
16:29:08 -!- Lord_of_Life has joined.
17:13:11 <esolangs> [[Markright]] N https://esolangs.org/w/index.php?oldid=167868 * Hammy * (+1877) Created page with "Markright is a markdown-like language by [[User:Hammy]] ==Formatting== ===Basics=== To bold text, you do $text$. Example: <pre> $Big and bold.$ </pre> displays as: '''Big and bold.''' To make text italic, do *text* Example: <pre> *To the side!* </pre> displays as:
17:25:05 <esolangs> [[Special:Log/newusers]] create * ThePoyoPal * New user account
17:49:08 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
17:54:20 -!- pool has quit (Read error: Connection reset by peer).
17:54:45 -!- pool has joined.
18:01:54 <esolangs> [[User:Hotcrystal0/Sandbox]] https://esolangs.org/w/index.php?diff=167869&oldid=166843 * Hotcrystal0 * (+89)
18:15:01 <esolangs> [[User:Yayimhere]] https://esolangs.org/w/index.php?diff=167870&oldid=167844 * Yayimhere2(school) * (+38) /* esolangs */
18:17:37 <esolangs> [[Also?]] https://esolangs.org/w/index.php?diff=167871&oldid=167867 * Yayimhere2(school) * (+70) /* STACKUNWISE */
18:20:09 <esolangs> [[Also?]] https://esolangs.org/w/index.php?diff=167872&oldid=167871 * Yayimhere2(school) * (+93) /* Semantics */
18:22:31 <esolangs> [[Also?]] https://esolangs.org/w/index.php?diff=167873&oldid=167872 * Yayimhere2(school) * (+44) /* Semantics */
18:27:19 <esolangs> [[Also?]] https://esolangs.org/w/index.php?diff=167874&oldid=167873 * Yayimhere2(school) * (+383) /* STACKUNWISE */
18:33:22 -!- tromp has joined.
18:43:23 <esolangs> [[User:Aadenboy]] https://esolangs.org/w/index.php?diff=167875&oldid=166905 * Aadenboy * (+1492) some more of my non-esoteric works
18:43:26 <esolangs> [[Talk:Markright]] N https://esolangs.org/w/index.php?oldid=167876 * Ractangle * (+234) Created page with "</blockquote> But I guess you could make a table with commands of a certain esolang that people keep on copying, that's close to Turing-completeness, right? </blockquote> A Turing machine is ''not'' and was ''never'' a markup language"
18:43:41 <esolangs> [[Talk:Markright]] M https://esolangs.org/w/index.php?diff=167877&oldid=167876 * Ractangle * (+151)
18:44:24 <esolangs> [[Talk:Markright]] M https://esolangs.org/w/index.php?diff=167878&oldid=167877 * Aadenboy * (-1)
18:54:15 -!- pool has quit (Read error: Connection reset by peer).
18:56:21 -!- pool has joined.
19:00:37 -!- sprock has quit (Ping timeout: 264 seconds).
19:02:03 -!- sprock has joined.
19:07:13 -!- sprock has quit (Ping timeout: 264 seconds).
19:07:45 -!- sprock has joined.
19:07:53 <esolangs> [[Br greater than]] https://esolangs.org/w/index.php?diff=167879&oldid=162388 * * (+1)
19:12:09 -!- ais523 has quit (Quit: quit).
19:27:57 <esolangs> [[]] N https://esolangs.org/w/index.php?oldid=167880 * * (+614) Created page with "'''' is a language made by ~~~ in all programs are presented as a line of numbers and symbols. ==commands== {| class="wikitable sortable" |+ Caption text |- ! symbol !! id !! function |- | || 0 || turns the next number into its symbol according to its id [anything after 5 will h
20:07:52 -!- pool has quit (Quit: The Lounge - https://thelounge.chat).
20:09:05 -!- pool has joined.
20:11:22 -!- pool has quit (Client Quit).
20:12:00 -!- pool has joined.
20:35:46 <esolangs> [[ASTLang]] https://esolangs.org/w/index.php?diff=167881&oldid=167853 * NTMDev * (+1412)
20:36:00 <esolangs> [[ASTLang]] https://esolangs.org/w/index.php?diff=167882&oldid=167881 * NTMDev * (+4)
20:36:15 <esolangs> [[ASTLang]] https://esolangs.org/w/index.php?diff=167883&oldid=167882 * NTMDev * (+6)
20:37:23 <esolangs> [[ASTLang]] https://esolangs.org/w/index.php?diff=167884&oldid=167883 * NTMDev * (-61)
20:37:39 <esolangs> [[ASTLang]] https://esolangs.org/w/index.php?diff=167885&oldid=167884 * NTMDev * (+39)
20:40:51 -!- perlbot has quit (Quit: ZNC 1.9.1+deb2+b3 - https://znc.in).
20:40:51 -!- simcop2387 has quit (Quit: ZNC 1.9.1+deb2+b3 - https://znc.in).
21:11:46 -!- pool has quit (Read error: Connection reset by peer).
21:13:56 -!- pool has joined.
21:33:59 -!- lisbeths has joined.
21:48:13 <korvo> lisbeths: You might be interested to hear that a flavor of Vixen-like objects can be added to a Nix store without losing functionality. I'm thinking of Vixen as like a viroid or obelisk which "infects" a Nix store, except it's not trying to eat the store, just Living Off The Land.
21:51:24 -!- sprout has quit (Ping timeout: 256 seconds).
21:56:02 -!- DOS_User_webchat has joined.
21:56:11 -!- DOS_User_webchat has changed hostmask to ~DOS_User_@user/DOS-User:11249.
22:09:05 -!- ais523 has joined.
22:11:17 -!- simcop2387 has joined.
22:11:58 -!- pool has quit (Read error: Connection reset by peer).
22:14:02 -!- pool has joined.
22:14:17 -!- DOS_User_webchat has quit (Ping timeout: 250 seconds).
22:16:48 -!- perlbot has joined.
22:18:29 <esolangs> [[B-16]] N https://esolangs.org/w/index.php?oldid=167886 * Buckets * (+3010) Created page with "B-16 is an Esoteric programming language created by [[User:Buckets]] in 2021. The first Three Characters are used For Binary digits And They Correspond to this Table: {| class="wikitable" |- ! Binary Digit Placement !! 1 !! 0 |- | 1 || Uses The Moore neighbourhood. || Use
22:18:58 <esolangs> [[User:Buckets]] M https://esolangs.org/w/index.php?diff=167887&oldid=159866 * Buckets * (+9)
22:19:14 <esolangs> [[User:Buckets]] M https://esolangs.org/w/index.php?diff=167888&oldid=167887 * Buckets * (+1) /* 2021 */
22:20:29 <esolangs> [[Language list]] M https://esolangs.org/w/index.php?diff=167889&oldid=167716 * Buckets * (+11)
22:21:09 <esolangs> [[B-16]] M https://esolangs.org/w/index.php?diff=167890&oldid=167886 * Buckets * (+0)
22:25:57 <esolangs> [[Esolang:Sandbox]] https://esolangs.org/w/index.php?diff=167891&oldid=167859 * Hotcrystal0 * (+529)
22:26:06 <esolangs> [[Esolang:Sandbox]] https://esolangs.org/w/index.php?diff=167892&oldid=167891 * Hotcrystal0 * (+3)
22:27:07 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
22:34:07 <esolangs> [[User:Buckets]] M https://esolangs.org/w/index.php?diff=167893&oldid=167888 * Buckets * (+0) /* Total of Esolangs */
22:36:39 <esolangs> [[Chops]] M https://esolangs.org/w/index.php?diff=167894&oldid=152043 * Buckets * (-27)
22:36:55 <esolangs> [[Chops]] M https://esolangs.org/w/index.php?diff=167895&oldid=167894 * Buckets * (-13)
22:37:35 <esolangs> [[Chops]] M https://esolangs.org/w/index.php?diff=167896&oldid=167895 * Buckets * (+5)
22:38:08 <esolangs> [[((]] M https://esolangs.org/w/index.php?diff=167897&oldid=153952 * Buckets * (+17)
22:38:20 <esolangs> [[((]] M https://esolangs.org/w/index.php?diff=167898&oldid=167897 * Buckets * (+1)
22:38:50 <esolangs> [[Esorn]] M https://esolangs.org/w/index.php?diff=167899&oldid=158540 * Buckets * (+1)
22:49:53 -!- tromp has joined.
22:53:57 -!- Sgeo has joined.
23:01:04 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
23:02:46 <esolangs> [[Special:Log/newusers]] create * ThatGuyThatLovesStuff * New user account
23:42:53 -!- lisbeths has quit (Quit: Connection closed for inactivity).
00:18:18 -!- sprout has joined.
00:24:01 <esolangs> [[Sike]] N https://esolangs.org/w/index.php?oldid=167900 * Zip * (+14648) Create page
00:34:19 <esolangs> [[User:Zip]] https://esolangs.org/w/index.php?diff=167901&oldid=167717 * Zip * (+272) a
00:35:08 <esolangs> [[User:Zip]] https://esolangs.org/w/index.php?diff=167902&oldid=167901 * Zip * (+31) forgor language lmao
01:03:16 <Sgeo> It is not possible to write a Brainfuck interpreter for Burroughs E101. But it should be possible to make a Brainfuck-equivalent and write a Burroughs E101 for that
01:04:44 <esolangs> [[Typespam]] https://esolangs.org/w/index.php?diff=167903&oldid=91603 * Zip * (+616) reformat and word better (making assumptions based on the unfinished interpreter [that I called a "compiler"] I made years ago).
01:05:11 <esolangs> [[Typespam]] M https://esolangs.org/w/index.php?diff=167904&oldid=167903 * Zip * (-5) /* Data */
01:08:53 <esolangs> [[Typespam]] https://esolangs.org/w/index.php?diff=167905&oldid=167904 * Zip * (+176) /* Commands */ clarify
01:10:51 <esolangs> [[Sike]] M https://esolangs.org/w/index.php?diff=167906&oldid=167900 * Zip * (+0) Deque-Based Deque-based
01:12:11 -!- pool has quit (Read error: Connection reset by peer).
01:14:08 -!- pool has joined.
01:15:03 <esolangs> [[Sike]] M https://esolangs.org/w/index.php?diff=167907&oldid=167906 * Zip * (+41) add unknown computational class
01:34:46 <Sgeo> Easier to compile to an E101 program I think.
01:46:17 <esolangs> [[Esolang:Sandbox]] https://esolangs.org/w/index.php?diff=167908&oldid=167892 * Hotcrystal0 * (-532) cleaning
02:00:35 <esolangs> [[Topple/Topple 1]] M https://esolangs.org/w/index.php?diff=167909&oldid=167257 * H33T33 * (+139)
02:12:21 -!- pool has quit (Read error: Connection reset by peer).
02:13:12 -!- msv has joined.
02:14:22 -!- pool has joined.
02:30:30 -!- 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:12:29 -!- pool has quit (Read error: Connection reset by peer).
03:14:25 -!- pool has joined.
03:31:29 -!- ais523 has quit (Quit: quit).
03:49:47 <esolangs> [[Also?]] https://esolangs.org/w/index.php?diff=167910&oldid=167874 * Yayimhere2(school) * (+9) /* Also?'s computational class */
03:52:38 <esolangs> [[Also?]] https://esolangs.org/w/index.php?diff=167911&oldid=167910 * Yayimhere2(school) * (+13) /* Also?'s computational class */
03:55:05 <esolangs> [[Also?]] https://esolangs.org/w/index.php?diff=167912&oldid=167911 * Yayimhere2(school) * (+129) /* Also?'s computational class */
03:55:28 <esolangs> [[Also?]] https://esolangs.org/w/index.php?diff=167913&oldid=167912 * Yayimhere2(school) * (-432) /* Semantics */ delete unnecessary commands
03:56:05 <esolangs> [[Also?]] https://esolangs.org/w/index.php?diff=167914&oldid=167913 * Yayimhere2(school) * (-23)
04:12:36 -!- pool has quit (Read error: Connection reset by peer).
04:14:44 -!- pool has joined.
04:20:17 <esolangs> [[Talk:Sike]] N https://esolangs.org/w/index.php?oldid=167915 * Yayimhere2(school) * (+99) Created page with "== A question == Does each cycle run the whole program again and again? I do not really understand."
04:53:29 <esolangs> [[Sike]] M https://esolangs.org/w/index.php?diff=167916&oldid=167907 * Zip * (+2) /* Execution */ clarify wording
04:58:31 <esolangs> [[Sike]] M https://esolangs.org/w/index.php?diff=167917&oldid=167916 * Zip * (-5) /* Words */ clarify wording (again)
05:06:13 <esolangs> [[Readable]] M https://esolangs.org/w/index.php?diff=167918&oldid=167842 * None1 * (+137) Change commands to avoid ambiguity
05:06:31 <esolangs> [[Sike]] https://esolangs.org/w/index.php?diff=167919&oldid=167917 * Zip * (-69) /* Cat */ make cat program shorter
05:07:01 <esolangs> [[User:TheBigH]] M https://esolangs.org/w/index.php?diff=167920&oldid=166116 * TheBigH * (-85)
05:08:10 <esolangs> [[Viktor's amazing 4-bit processor]] M https://esolangs.org/w/index.php?diff=167921&oldid=167707 * TheBigH * (-38)
05:25:12 <esolangs> [[Talk:6]] https://esolangs.org/w/index.php?diff=167922&oldid=167863 * None1 * (+324) /* Author's comments */
06:12:49 -!- pool has quit (Read error: Connection reset by peer).
06:14:54 -!- pool has joined.
07:08:33 <esolangs> [[Thing]] https://esolangs.org/w/index.php?diff=167923&oldid=166351 * Yayimhere2(school) * (+34)
07:09:00 <esolangs> [[Thing]] https://esolangs.org/w/index.php?diff=167924&oldid=167923 * Yayimhere2(school) * (+1)
07:09:17 <esolangs> [[Thing]] https://esolangs.org/w/index.php?diff=167925&oldid=167924 * Yayimhere2(school) * (+0)
07:09:46 -!- Lord_of_Life has quit (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine).
07:10:19 <esolangs> [[Thing]] https://esolangs.org/w/index.php?diff=167926&oldid=167925 * Yayimhere2(school) * (+48)
07:10:37 <esolangs> [[Thing]] https://esolangs.org/w/index.php?diff=167927&oldid=167926 * Yayimhere2(school) * (+20) /* Semantics */
07:11:10 -!- Lord_of_Life has joined.
07:32:36 -!- Sgeo has quit (Read error: Connection reset by peer).
08:02:34 -!- tromp has joined.
09:04:04 <esolangs> [[Ptolomaea]] M https://esolangs.org/w/index.php?diff=167928&oldid=110972 * MinekPo1 * (+1) fix typo
09:15:47 -!- pool has quit (Ping timeout: 256 seconds).
09:16:47 -!- sprout has quit (Ping timeout: 256 seconds).
09:17:17 -!- sprout has joined.
09:40:41 <esolangs> [[Thing]] https://esolangs.org/w/index.php?diff=167929&oldid=167927 * Yayimhere2(school) * (+0) /* Semantics */
09:42:59 <esolangs> [[Thing]] https://esolangs.org/w/index.php?diff=167930&oldid=167929 * Yayimhere2(school) * (+3) /* Semantics */
09:43:19 <esolangs> [[Thing]] https://esolangs.org/w/index.php?diff=167931&oldid=167930 * Yayimhere2(school) * (+10) /* Semantics */
09:44:31 <esolangs> [[Thing]] https://esolangs.org/w/index.php?diff=167932&oldid=167931 * Yayimhere2(school) * (+62) /* Semantics */
09:51:08 <esolangs> [[Byte]] https://esolangs.org/w/index.php?diff=167933&oldid=166512 * Yayimhere2(school) * (+38) /* computational class */
09:54:10 <esolangs> [[Byte]] https://esolangs.org/w/index.php?diff=167934&oldid=167933 * Yayimhere2(school) * (-4) /* commands */
10:09:35 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
10:18:17 -!- tromp has joined.
10:46:30 <esolangs> [[Special:Log/newusers]] create * Justadog * New user account
11:02:02 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=167935&oldid=167817 * Justadog * (+158) /* Introductions */
11:06:16 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=167936&oldid=167935 * Justadog * (+1) /* Introductions */
11:46:15 -!- amby has joined.
11:50:32 -!- chiselfuse has quit (Remote host closed the connection).
11:50:46 -!- chiselfuse has joined.
12:18:06 -!- ais523 has joined.
12:36:45 -!- wob_jonas has joined.
12:39:29 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
12:43:28 <wob_jonas> so I ran into a problem in trying to design Enchain. I want to support linking multiple compilation units, some of them Enchain and some not. but that comes with the problem that I somehow have to make sure that you don't use a global variable before initializing it. the easiest solution is if I forbid dynamic initialization in Enchain, in that
12:43:29 <wob_jonas> Enchain code that defines a global variable cannot specify initialization that calls into Enchain code.
12:47:14 <wob_jonas> now currently Enchain types cannot be defined in pure Enchain, so what I can do is that when you define an Enchain type you're required to say how to initialize it safely when it's used as a global. at the very least I have to allow zero-initialization, but it wouldn't be hard to also allow any static or dynamic initialization that you write in C
12:47:15 <wob_jonas> (which Enchain is translated to), and then it's the responsibility of whoever defines the type to ensure that the initializer doesn't call Enchain functions (or at least doesn't access potentially uninitialized globals through Enchain functions). I can also allow types that cannot be initialized and it's an error to use such a type for a global
12:51:14 <wob_jonas> this kind of conflicts with my previous plan where I wanted to make the compiler verify at compile time that any *local* variable is initialized before it's used. if I stick to that then it will be strange that you can safely implicitly initialize a global variable of a type but you're not allows to rely on that for a local variable. but this isn't
12:51:14 <wob_jonas> such a big deal because C already has something like this: globals are implicitly zero-initialized if you don't provide an initializer, but you need an explicit initializer for a local. alternately I could just allow local variables that are not explicitly initialized.
13:05:07 <wob_jonas> in theory I can also put all the responsibility on the programmer, as in say that accessing a global variable when it's not initialized is UB, but I would prefer if there was a safe (in roughly the Rust sense) subset of pure Enchain that you can reasonably use for programming, and this would effectively mean that you can't use globals at all and
13:05:07 <wob_jonas> have to pass around global state variables as function arguments to most functions.
13:05:59 <wob_jonas> even when they just hold constant values
13:14:58 <ais523> I think Rust also has basically this problem with global variables and doesn't really have a good solution (usually it relies on lazy initialisation but that requires a check for initialisation on every use)
13:15:44 <ais523> I suspect the correct solution is to treat global variables as sugar for parameters that are passed into every function call, so you can't call a function unless you have initialised all the globals it needs
13:15:50 <wob_jonas> yet another option is of course to deferred initialize global variables, such that each global has a global once-flag, and in any function that accesses global variables, there's a runtime check to run the initialization function of the global variable once.
13:15:53 <ais523> (but likely implemented as static addresses)
13:16:50 <wob_jonas> but I don't think I want to do that, because it's kind of too much runtime magic for Enchain, and if the Enchain programmer wants it they can implement deferred initialization themselves
13:18:12 <wob_jonas> ais523: yes, the problem isn't specific to Enchain
13:18:48 -!- pool has joined.
13:22:14 -!- zzo38 has quit (Ping timeout: 244 seconds).
13:25:14 <wob_jonas> to a large extent I'm trying to design Enchain code so it maps to C code. the C rule is simply that globals are initialized to a compile-time constant. but Enchain doesn't have a general concept of compile-time constants, or at least I don't know that it has that yet. that's why I figured the easiest way is an implicit initializer for every type.
13:25:15 <wob_jonas> but I could also make the initializer explicit, only it can't be an arbitrary function call, but only a foreign function that is specifically designated as a safe way to initialize a global. and at that point it's simpler to only allow one implicit initializer function.
13:26:59 <wob_jonas> I want Enchain to have literals, which would have types from the standard library (integer or integer array), and I can allow these too as safe global initializers, but I think if I only allowed types that have compiler support for literals as globals that would be too restrictive.
13:32:04 <esolangs> [[Sike]] https://esolangs.org/w/index.php?diff=167937&oldid=167919 * Yayimhere2(school) * (+0) /* Interpreter */ node to mode
13:36:54 -!- wob_jonas has quit (Quit: Client closed).
13:38:56 -!- pool has quit (Quit: The Lounge - https://thelounge.chat).
13:39:39 -!- pool has joined.
13:50:48 <esolangs> [[Special:Log/newusers]] create * Antojo7595 * New user account
13:54:18 -!- tromp has joined.
13:58:05 <esolangs> [[User talk:PrySigneToFry]] https://esolangs.org/w/index.php?diff=167938&oldid=167159 * I am islptng * (+186) -> SletScript
13:58:44 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=167939&oldid=167936 * Antojo7595 * (+168) /* Introductions */
14:02:37 <esolangs> [[User:I am islptng]] https://esolangs.org/w/index.php?diff=167940&oldid=167507 * I am islptng * (+97)
15:40:17 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
15:58:01 -!- tromp has joined.
16:13:52 -!- pool has quit (Read error: Connection reset by peer).
16:15:53 -!- pool has joined.
16:27:28 -!- Lord_of_Life_ has joined.
16:28:36 -!- Lord_of_Life has quit (Ping timeout: 256 seconds).
16:29:32 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
16:43:47 <esolangs> [[Sike]] https://esolangs.org/w/index.php?diff=167941&oldid=167937 * Zip * (+42) correct documentation of swapn
17:13:59 -!- pool has quit (Read error: Connection reset by peer).
17:15:57 -!- pool has joined.
17:27:02 -!- simcop2387 has quit (Quit: ZNC 1.9.1+deb2+b3 - https://znc.in).
17:27:02 -!- perlbot has quit (Quit: ZNC 1.9.1+deb2+b3 - https://znc.in).
17:31:21 <esolangs> [[Fourest]] N https://esolangs.org/w/index.php?oldid=167942 * Hammy * (+1274) Created page with "{{Distinguish/Confusion|4est|Forest}} ''Both names were original names for this. Fourest is a tree-based esolang<ref>At least, this is what the creator thinks a tree-based esolang could be like.</ref> by [[User:Hammy]]. It was supposed to be called Forest, then 4est but b
17:47:02 -!- simcop2387 has joined.
17:53:15 <esolangs> [[PIX]] https://esolangs.org/w/index.php?diff=167943&oldid=143838 * MihaiEso * (+219) /* PIX's official logo */ Added another example!
17:54:07 -!- perlbot has joined.
18:13:08 <esolangs> [[Impossicode]] N https://esolangs.org/w/index.php?oldid=167944 * Hammy * (+2318) Created page with "Welcome to Impossicode, your worst nightmare. Inspired by [[Malbolge]] and made by [[User:Hammy]] ==Help operation== {| class="wikitable" |+ |- ! Help on base 3 (extensions are obvious)!! 0 !! 1 !! 2 |- ! 0 || 2 || 1 || 0 |- ! 1 || 1 || 0 || 2 |- ! 2 || 0 || 2 || 1
18:13:10 <esolangs> [[MarkupLang]] https://esolangs.org/w/index.php?diff=167945&oldid=160688 * MihaiEso * (+388) /* Syntax Highlighting Languages */
18:14:07 <esolangs> [[MarkupLang]] https://esolangs.org/w/index.php?diff=167946&oldid=167945 * MihaiEso * (+29) /* Syntax Highlighting Languages */
18:25:13 -!- perlbot has quit (Quit: ZNC 1.9.1+deb2+b3 - https://znc.in).
18:25:13 -!- simcop2387 has quit (Quit: ZNC 1.9.1+deb2+b3 - https://znc.in).
18:26:35 <esolangs> [[Sike]] https://esolangs.org/w/index.php?diff=167947&oldid=167941 * Zip * (+5164) Sike is turing complete.
18:28:58 <esolangs> [[Sike]] https://esolangs.org/w/index.php?diff=167948&oldid=167947 * Zip * (+213) /* Computational class */ clarify how to use CT Sike converter
18:42:31 -!- simcop2387 has joined.
18:46:33 -!- perlbot has joined.
18:48:18 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
19:02:32 -!- tromp has joined.
19:16:08 -!- zzo38 has joined.
19:16:46 <esolangs> [[B9]] M https://esolangs.org/w/index.php?diff=167949&oldid=167510 * JIT * (+173)
20:14:14 -!- pool has quit (Read error: Connection reset by peer).
20:16:19 -!- pool has joined.
21:14:18 -!- pool has quit (Read error: Connection reset by peer).
21:14:28 -!- Bowserinator has quit (Ping timeout: 256 seconds).
21:15:35 -!- iovoid has quit (Read error: Connection reset by peer).
21:16:24 -!- pool has joined.
21:16:41 -!- Bowserinator has joined.
21:17:21 -!- iovoid has joined.
21:33:14 <esolangs> [[Brainyay]] https://esolangs.org/w/index.php?diff=167950&oldid=167506 * PhiPhiPHipHi2.0 * (-37)
22:19:26 <esolangs> [[User:Buckets]] M https://esolangs.org/w/index.php?diff=167951&oldid=167893 * Buckets * (+12)
22:20:13 <esolangs> [[Language list]] M https://esolangs.org/w/index.php?diff=167952&oldid=167889 * Buckets * (+13)
22:20:30 <esolangs> [[Jumble]] N https://esolangs.org/w/index.php?oldid=167953 * Buckets * (+2961) Created page with "Jumble is an Esoteric Programming language created By [[User:Buckets]] in 2024. {| class="wikitable" |- ! Effecting the Previous Number Pair !! Instructions |- | 0,0 || Set the current coordinate to a command That Rotates the Current Direction 90 degrees Clockwise. |- |
22:31:11 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
22:33:57 <APic> Good Night Folks
22:58:30 <esolangs> [[ASTLang]] https://esolangs.org/w/index.php?diff=167954&oldid=167885 * NTMDev * (+1293)
23:01:10 <esolangs> [[ASTLang]] https://esolangs.org/w/index.php?diff=167955&oldid=167954 * NTMDev * (+82)
23:10:02 <esolangs> [[ASTLang]] https://esolangs.org/w/index.php?diff=167956&oldid=167955 * NTMDev * (+739)
23:11:09 -!- somefan has joined.
23:13:23 <esolangs> [[ASTLang]] https://esolangs.org/w/index.php?diff=167957&oldid=167956 * NTMDev * (+140)
23:24:50 -!- somefan has quit (Quit: Client closed).
23:25:16 <esolangs> [[User:Olus2000]] M https://esolangs.org/w/index.php?diff=167958&oldid=163806 * RocketRace * (+1) get freaking typofixed
23:27:52 -!- Sgeo has joined.
00:22:32 -!- DOS_User_webchat has joined.
00:22:45 -!- DOS_User_webchat has changed hostmask to ~DOS_User_@user/DOS-User:11249.
00:46:12 -!- DOS_User_webchat has quit (Remote host closed the connection).
00:54:26 -!- ais523 has quit (Quit: quit).
01:13:52 <esolangs> [[ASTLang]] https://esolangs.org/w/index.php?diff=167959&oldid=167957 * NTMDev * (+909)
01:36:44 <Sgeo> There must exist a point at which if a Brainfuck implementation has too few memory cells, or the Brainfuck code cannot exceed a certain length, the existence of the implementation no longer proves that it's... whatever the memory bounded version of TC is. What is that point?
01:38:03 <int-e> Sgeo: Sure, if you follow along these lines you may come to see a computer as a giant but finite state machine.
01:38:35 <int-e> But TC is a much nicer theoretical concept than "fit for programming" which is what we care about in practice. Not necessarily for esolangs though.
01:39:02 <int-e> Sgeo: The original Brainfuck had 30k 8-bit cells so it's not TC either.
01:40:11 <Sgeo> I keep thinking about "compiling" Brainfuck to Burroughs E101. E101 only has 100 cells. And I don't see an easy way to... decrement a pointer in few instructions unless I limit to 10 cells. And there's only room for 8*16=128 instructions in E101's ... program
01:40:40 <int-e> Sgeo: Basically no actual implementation of any programming language is TC. (You could cheat by adding more storage peripherals over time, though eventually you'll run into physical limitations doing even that.)
01:41:35 <Sgeo> Also E101 doesn't do constants. So I'd also be "compiling" into instructions for the user: At the first halt type this number, at the second halt type this number, etc..
01:41:47 <Sgeo> Which is how real programs on it worked too
01:41:49 <int-e> Sgeo: Right, that may be too small for a brainfuck target. Or, really, for basically anything you want a computer to do. :)
01:42:46 <int-e> it really sounds more like an electronic calculator that has some basic macro capabilty for user-defined functions
01:43:31 <Sgeo> Burroughs was a calculator company. The keyboard looks like an adder machine. But I think it is in some sense a full computer (not a stored-program one though)
01:43:45 <Sgeo> https://bitsavers.org/pdf/burroughs/Electrodata/E101/
01:44:13 <int-e> yeah sorry I'm not going to be drawn into details :P
01:45:52 <int-e> Sgeo: Can you sort an array of 10 cells without human intervention? What about 50 cells or all 100? :)
01:45:52 <Sgeo> There's an extension that does allow setting E and F from the accumulator, I guess that can be used if I store a pointer in memory
01:46:45 <int-e> (sorting is one of the basic tasks that we often want a computer to do :) )
01:47:54 <Sgeo> I don't think I'm going to attempt to write a sort routine. Might not be able to do all 100 if it needs more scratch space than just the accumulator. There's a library of subroutines, all of which are math functions.
01:47:56 <int-e> I don't need an answer to the question. I'm musing about where I'd draw the line between a calculator and a computer.
01:48:56 <int-e> And I think if it *can't* sort then it's not a computer. If it can sort... well, that clearly moves it closer. Is it enough for me? I don't know! Obviously modern computers do so much more.
01:51:52 <int-e> (Interesting side show: Are analog computers for space crafts computers :) )
01:54:43 <Sgeo> Is there a sort where the only time I have to decrement the pointer is going back to the beginning of the array? I think that would be -easier- to implement
01:54:52 <Sgeo> (I'm not actually attempting to implement)
01:55:17 <Sgeo> I was thinking bubble sort but that doesn't quite fit
02:03:10 <int-e> Sgeo: uh, there is this horribly inefficient thing: https://paste.debian.net/1405805/
02:03:47 <int-e> (2**64 is supposed to be a number larger than any number of interest)
02:05:22 <Sgeo> Yeah I think that's implementable
02:05:38 <int-e> "horribly inefficient" -- it's exponential
02:06:06 <int-e> not quite as bad as the expected runtime of bogosort but close
02:09:47 <int-e> Well, IIRC it had O(2^n) worst case, O(2^n / n) average case and only O(n^2) worst case.
02:10:20 <int-e> Assuming that the numbers to be sorted are all distinct
02:11:10 <int-e> err the second "worst case" was supposed to be "best case"
02:25:31 <sorear> the usual approach is to define a generalization of the machine where the memory size is a parameter, then prove that the problem is PSPACE-complete
02:30:17 <esolangs> [[ASTLang]] https://esolangs.org/w/index.php?diff=167960&oldid=167959 * NTMDev * (+73)
02:30:54 -!- 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:32:19 <esolangs> [[ASTLang]] https://esolangs.org/w/index.php?diff=167961&oldid=167960 * NTMDev * (+379)
02:35:08 <esolangs> [[ASTLang]] https://esolangs.org/w/index.php?diff=167962&oldid=167961 * NTMDev * (+201)
02:37:32 <esolangs> [[User:NTMDev]] https://esolangs.org/w/index.php?diff=167963&oldid=167818 * NTMDev * (+14)
03:01:29 <Sgeo> There's an optional addition that allows for 220 cells. Said addition also makes it easier to load a cell as a pointer in, um. I think 5 instructions.
03:01:52 <Sgeo> Which seems like a lot
04:00:39 <esolangs> [[Talk:INTERCAL]] https://esolangs.org/w/index.php?diff=167964&oldid=167847 * Jasper * (+209) /* Useful functions made using INTERCAL's unary / binary operators */
04:18:39 <sorear> if you write a bubble sort pass to write back the output 1 element later than it was read, you don't need to decrement anything. if you make the array circular, the data will be in the correct places after a number of iterations equal to the array size, which is exactly how many you need for the array to be sorted. I have 25 instructions https://paste.debian.net/1405811/
04:19:46 <sorear> apart from the harvard architecture and the coroutines (!) it seems like a fairly standard one-address machine
04:20:47 <sorear> the first 94 should be a 95, one-way counter to know when the sort is done
04:44:22 <Sgeo> I should... maybe look at writing an emulator soon, huh.
04:57:13 <Sgeo> sorear, awesome! Though I'm not sure what you mean by the bracketed numbers, they can't be pinboard numbers
05:14:09 <Sgeo> Oh I see. Instruction numbers, and the second [0] is pinboard ... um. Did you index pinboards by 0? They go 1-8, with 0 meaning same pinboard.
06:15:55 -!- pool has quit (Ping timeout: 256 seconds).
06:16:15 -!- pool has joined.
06:43:24 <Sgeo> floor(log2(999999999999))+1 ... I think that's correct for how many bits needed to hold a 12 decimal digit number, right?
06:50:40 -!- chiselfuse has quit (Remote host closed the connection).
06:50:58 -!- chiselfuse has joined.
07:06:49 <esolangs> [[$]] M https://esolangs.org/w/index.php?diff=167965&oldid=144365 * ThrowAwayLurker * (+90) Added easily inferable detail that still deserves explicitness; also semicolon because I'm a nerd and it makes it flow better
07:10:03 <esolangs> [[Backsharp]] M https://esolangs.org/w/index.php?diff=167966&oldid=90825 * ThrowAwayLurker * (+4) Added dash
07:11:28 <esolangs> [[SQ]] M https://esolangs.org/w/index.php?diff=167967&oldid=80607 * ThrowAwayLurker * (-9) User page links should be clearly user page links, thus the "user:" should be included
07:27:14 <esolangs> [[Action symbol]] https://esolangs.org/w/index.php?diff=167968&oldid=167579 * Yayimhere2(school) * (-97) /* how it works */
07:31:53 <esolangs> [[Tttt]] https://esolangs.org/w/index.php?diff=167969&oldid=91798 * ThrowAwayLurker * (+505) Made it clearer and more professional/serviceable
07:35:44 <esolangs> [[Talk:Chimera]] N https://esolangs.org/w/index.php?oldid=167970 * ThrowAwayLurker * (+216) Created page with "Isn't the language trivially Turing-complete as it allows for the computation of arbitrary lambda functions? ~~~~"
07:39:10 -!- somelauw has joined.
07:48:18 <Sgeo> *self.memory.get(tens, ones)? = self.a;
07:48:28 <Sgeo> It feels weird to have a question mark on the left of the assignment like that
07:53:38 -!- tromp has joined.
07:54:16 <b_jonas> Sgeo: if you can use two pointers then you can do a bubble sort with pointers that you can only decrement by resetting
07:54:35 <b_jonas> or does this have like a tape/drum memory with just one pointer because there's one head?
07:55:04 <b_jonas> I think even with one head you can do a bubblesort, you just keep shifting the array forward in every iteration
07:55:29 <Sgeo> The "pointer" is two switches that can be increased up. sorear wrote a sort that does the shifting array forward thing
07:56:15 <sorear> Sgeo: don't forget the sign bit
07:56:18 <Sgeo> I believe it is drum memory but that's not what the issue is. In the 220 memory model there is an instruction that can set the switches according to values in the accumulator
07:57:04 <Sgeo> sorear, thank you. 32 bits isn't enough anyway so rounding to 64 which is plenty
07:57:44 -!- somelauw has quit (Remote host closed the connection).
07:59:49 <sorear> it's almost but not quite a decimal64
08:00:49 <Sgeo> I'm sort of treating them as integers and assuming the implicit decimal point only matters during multiplication and division
08:01:50 <Sgeo> I should probably sleep soon
08:02:41 <Sgeo> I want a closer picture of the keyboard so I can understand X and Y better. Do they... default to 0? Or alarm if used and not set?
08:05:49 -!- svm has joined.
08:08:33 -!- msv has quit (Ping timeout: 265 seconds).
08:36:01 -!- Sgeo has quit (Read error: Connection reset by peer).
09:05:59 <esolangs> [[Action symbol]] https://esolangs.org/w/index.php?diff=167971&oldid=167968 * Yayimhere2(school) * (+112) /* how it works */
09:18:55 <esolangs> [[Action symbol]] https://esolangs.org/w/index.php?diff=167972&oldid=167971 * Yayimhere2(school) * (+517) /* examples */
09:21:31 <esolangs> [[Action symbol]] https://esolangs.org/w/index.php?diff=167973&oldid=167972 * Yayimhere2(school) * (+133) /* Computational class */
09:26:32 <esolangs> [[Talk:Esolang Quality Rating System]] https://esolangs.org/w/index.php?diff=167974&oldid=106292 * Yayimhere2(school) * (+540)
09:31:11 <esolangs> [[Do you remember me?]] https://esolangs.org/w/index.php?diff=167975&oldid=167862 * Yayimhere2(school) * (-1)
09:36:35 <esolangs> [[Do you remember me?]] https://esolangs.org/w/index.php?diff=167976&oldid=167975 * Yayimhere2(school) * (+27) /* Examples */ Added a see also section, with Also?
09:38:37 <esolangs> [[Do you remember me?]] https://esolangs.org/w/index.php?diff=167977&oldid=167976 * Yayimhere2(school) * (+42) /* Semantics */
09:40:53 <esolangs> [[Do you remember me?]] https://esolangs.org/w/index.php?diff=167978&oldid=167977 * Yayimhere2(school) * (+41) /* Semantics */
09:44:04 <esolangs> [[Do you remember me?]] https://esolangs.org/w/index.php?diff=167979&oldid=167978 * Yayimhere2(school) * (+114) /* Semantics */
09:51:22 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
10:39:04 <esolangs> [[One-Instruction Cyclic Tag]] https://esolangs.org/w/index.php?diff=167980&oldid=154954 * Yayimhere2(school) * (-52) /* Instruction TAG */ The placement of the <code> tags is weird, so I "fixed" it.
11:01:55 <esolangs> [[Talk:Stroke]] https://esolangs.org/w/index.php?diff=167981&oldid=129057 * Yayimhere2(school) * (+1068)
11:20:53 <esolangs> [[Mascarpone]] https://esolangs.org/w/index.php?diff=167982&oldid=123948 * Yayimhere2(school) * (+2) /* Stacks */ there was a missing "a" to my knowledge
11:47:05 <esolangs> [[InterWater]] https://esolangs.org/w/index.php?diff=167983&oldid=9082 * Tpaefawzen * (+47) +au +cat
11:47:58 <esolangs> [[VENIAL]] https://esolangs.org/w/index.php?diff=167984&oldid=9049 * Tpaefawzen * (+19) +catyr
12:19:16 -!- svm has changed nick to msv.
12:33:24 -!- ais523 has joined.
12:44:11 <ais523> <int-e> And I think if it *can't* sort then it's not a computer. ← what if it's able to produce tables of log, sin, cos? (IIRC this was Babbage's original motivation for inventing the computer)
12:47:26 <int-e> ais523: still just a calculator to me
12:47:37 <int-e> none of this is objective!
12:48:10 <int-e> I mean my idea of a calculator is shaped by a pocket calculator that I used in school, which had trignometric and hyperbolic functions
12:48:21 <int-e> so it can't be that hard, right ;)
12:48:33 <esolangs> [[Talk:Esolang Quality Rating System]] https://esolangs.org/w/index.php?diff=167985&oldid=167974 * Ais523 * (+693) /* Computational Class points revamp */ thoughts
12:52:59 <fizzie> Pocket calculators with trigonometric functions are a sin.
12:54:39 <int-e> it's for a good cos
12:55:51 <fizzie> Well, in the burning pit you'll have time to work on your tan. (Okay, that's a stretch.)
12:56:32 <sorear> traditional card sorters are much simpler than anything that can do math
12:57:17 <int-e> necessary, not sufficient
12:58:19 <ais523> when I was a child I made a mechanical card sorter (in which the numbers to sort by were written in binary using holes and slots along the edge of the card
12:59:11 <ais523> although it was mostly manual, you had to move the components into the right place by hand but that was only O(n log n) effort
12:59:26 <ais523> (you have to do it log n times, and push the pin through n cards)
12:59:32 <int-e> radix sort is still cool
12:59:50 <ais523> yep, the algorithm is basically binary radix sort
13:00:15 <ais523> although the non-recursive version (sort by lsb, then sort by second-lsb, etc.)
13:00:34 <ais523> hmm, I just realised that radix sort is stable
13:02:40 <fizzie> It always amuses me when reading the Lensman books when they have faster-than-light inertialess flight, antimatter ("negaspheres") and mind powers, but then rely on punch card databases to sort through people, and mechanical calculators to solve space ship navigation. Here's some choice quotes: https://0x0.st/KpK_.txt
13:03:48 <fizzie> Imagine solving "course-and-distance problems" at a rate of ten per minute! That's progress.
13:03:56 <ais523> at least in computer games, mixing technology from a large number of time periods, including the plausible future and the implausible future, often leads to a good game even though it doesn't make sense as a setting
13:04:00 <ais523> so it wouldn't surprise me if fiction can do the same
13:07:38 <fizzie> Science did march on a little in the course of the series, it must be said. Those quotes were from a story originally published in 1939; it and the other books near it also consistently used the word "computer" to mean a person who makes computations. But in a 1947 sequel there's a reference to "the big computer at Ultra Prime" where context makes it clear it's an (electronic?) device of some
13:12:49 <ais523> thinking about it, technology that is quick to invent doesn't necessarily correlate with technology that people imagine would be useful
13:13:08 <ais523> a good example of a science-fiction technology that actually did turn out to be possible, and get invented, is television
13:13:45 <ais523> even before it was invented, it was quite common for science-fiction stories to have video-based communication devices and I think the word "television" had already been coined before the invention itself was created
13:16:19 <int-e> tele-vision is an old magic trope too, add film and telegraph and it's not that much of a stretch?
13:22:25 <esolangs> [[User:RaiseAfloppaFan3925]] https://esolangs.org/w/index.php?diff=167986&oldid=167659 * RaiseAfloppaFan3925 * (+983) Added Esolang Quality Rating System ratings
13:23:13 <int-e> fizzie: hmm isn't there some science fiction that has space travel and then on board communication uses pneumatic tubes :)
13:24:30 -!- amby has joined.
13:48:40 -!- perlbot has quit (Quit: ZNC 1.9.1+deb2+b3 - https://znc.in).
13:48:40 -!- simcop2387 has quit (Quit: ZNC 1.9.1+deb2+b3 - https://znc.in).
13:59:13 <esolangs> [[Thueue]] N https://esolangs.org/w/index.php?oldid=167987 * Yayimhere2(school) * (+1517) Created page with "'''Thueue''' is a [[dequeue]] based [[Thue]] style esolang. It can too do replacements, however only at the start and end of the string, and only on individual elements. == Semantics == Thueue uses the following syntax: ''D'' 1 [''x'']$ [''y'']$ < 2 [''x'']
13:59:34 <esolangs> [[Thueue]] https://esolangs.org/w/index.php?diff=167988&oldid=167987 * Yayimhere2(school) * (-2)
14:02:38 <esolangs> [[Thueue]] https://esolangs.org/w/index.php?diff=167989&oldid=167988 * Yayimhere2(school) * (+23) /* Semantics */
14:03:56 <esolangs> [[Thueue]] https://esolangs.org/w/index.php?diff=167990&oldid=167989 * Yayimhere2(school) * (-23) /* Semantics */
14:09:33 <esolangs> [[Talk:Bitwise Cyclic Tag]] https://esolangs.org/w/index.php?diff=167991&oldid=122871 * Yayimhere2(school) * (+156) /* Turing-completeness of BCT without arbitrary memory string as input? */
14:14:02 <esolangs> [[User:Yayimhere]] https://esolangs.org/w/index.php?diff=167992&oldid=167870 * Yayimhere2(school) * (+13) /* esolangs */
14:14:41 <esolangs> [[Thueue]] https://esolangs.org/w/index.php?diff=167993&oldid=167990 * Yayimhere2(school) * (+0) /* Semantics */
14:15:28 -!- pool has quit (Read error: Connection reset by peer).
14:15:49 -!- pool has joined.
14:18:15 <esolangs> [[Talk:Bitwise Cyclic Tag]] https://esolangs.org/w/index.php?diff=167994&oldid=167991 * Ais523 * (+306) /* Turing-completeness of BCT without arbitrary memory string as input? */ r to Yayimhere: you can just pad out the productions to ignore the extra digits
14:20:44 -!- pr1sm has joined.
14:40:34 -!- chiselfuse has quit (Remote host closed the connection).
14:40:38 <fizzie> I feel like one Lensman book had a speaking tube (not pneumatic, just your regular old tube), but I couldn't find it easily.
14:40:50 -!- chiselfuse has joined.
14:41:08 <fizzie> They talk a lot about tubes because there's also multiple plot-relevant "hyperspatial tubes" (read: wormholes).
14:41:46 <ais523> fizzie: well if you think about the world before the telephone is invented, it's unclear whether working electronic sound transmission or hyperspatial wormholes will be invented first
14:41:56 <ais523> you can probably imagine both of them and have no idea how to implement either
14:43:30 <fizzie> Fair, though this isn't a pre-telephone story. They do have ("ultra-wave") radios for at least ship-to-ship communication.
14:46:10 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=167995&oldid=167939 * Python yyds * (+143)
14:46:27 <esolangs> [[User:Python yyds]] N https://esolangs.org/w/index.php?oldid=167996 * Python yyds * (+212) Created page with "==Introductions== Python_yyds Hi world,I'm Python_yyds! I think esolang is interesting so I join it.~~~~"
14:47:02 <esolangs> [[CContains]] https://esolangs.org/w/index.php?diff=167997&oldid=150307 * Yayimhere2(school) * (-20) Changed an incorrect title into a lowercase
14:47:08 <fizzie> The hero "donned his headset" to ask for reports from different parts of the ship, so I think they're using something telephone-like also for intra-ship comms.
14:48:40 <esolangs> [[User:Python yyds]] https://esolangs.org/w/index.php?diff=167998&oldid=167996 * Python yyds * (+69) /* Introductions */
14:48:55 -!- amby has quit (Ping timeout: 240 seconds).
14:49:53 <int-e> . o O ( we'll sooner have flying cars than ubiquitous transcontinental real-time communication )
14:50:34 <ais523> int-e: ooh, that's a tough one
14:52:02 -!- amby has joined.
15:29:10 <avih> korvo: did you write https://esolangs.org/wiki/Algebraic_Brainfuck ? (i followed it from your RPython code)
15:41:46 <avih> korvo: if yes, then i've reached "As a monoid", which i didn't yet read, but i already have two questions: 1. {scalemove,move}2 should probably be a specific subset of a more generic thing with N offsets and M values. I don't know whether that's a limitation of the listing syntax. and 2. i don't get omega (what it's good for). i can tell it's either no-op or an infinite loop, depending on whether k is 0 or not, respectively, but not why it's on this list.
15:43:22 <avih> (if that's explained later, just let me know. i'll get later eventually)
15:45:39 <esolangs> [[Special:Log/newusers]] create * Cyclic Tag * New user account
15:46:33 <avih> or maybe omega is on that list because otherwise there are some bf programs which cannot be represented with only the other items on that list? like an observable side effect that the program never stops?
15:46:52 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=167999&oldid=167995 * Cyclic Tag * (+301)
15:47:12 <int-e> avih: it's a nonterminating piece of code, and the name is probably inspired by Combinatory Logic
15:47:35 <int-e> you could have rules like omega(k) x = omega(k) but nothing like this appears to be done there
15:47:55 <avih> int-e: it's not necessarily non terminating, but it can be, yes. however that's not what i asked.
15:48:09 <avih> i asked why it's on this list.
15:48:52 <int-e> it's an absorbing element for a ton of stuff in the monoid
15:49:00 <int-e> but the page doesn't do anything with that (yet?)
15:49:29 <avih> ok, then i'm again bumping into my monoid no-knowledge issue. thanks.
15:51:31 <avih> int-e: and do you know why {scalemove,move}2 exist explicitly on that list, and not implicitly as a subset of a more generic N pairs of (offset,value)?
15:51:59 <avih> is that a limitation of the syntax used there?
15:53:21 -!- DOS_User_webchat has joined.
15:53:28 -!- DOS_User_webchat has changed hostmask to ~DOS_User_@user/DOS-User:11249.
15:54:06 <avih> or is it because scalemove,move and scalemove2,move2 together are the building blocks which allow to express any set of N offset,value pairs?
15:55:15 <int-e> I don't know. I guess the syntax is limited to a fixed number of arguments and http://www.cs.tufts.edu/~couch/bfmacro/bfmacro/ stops at move2()
15:55:55 <avih> (but then move is a subset of scalemove, so it could be removed too... i don't think i get what this list is supposed to represent, other than some list of possible macro definitions, not necessarily a minimal one)
15:56:11 <int-e> anyway, yeah, if you want the author's thoughts you'll have to wait for korvo to reply
15:57:23 <int-e> (or, if idling on IRC isn't your thing, try the talk page(s))
15:58:06 <avih> the bouncer works for me ;)
15:58:27 <avih> it's not like i'm sitting and waiting for a reply....
16:00:15 -!- DOS_User_webchat has quit (Ping timeout: 250 seconds).
16:01:25 -!- DOS_User_webchat has joined.
16:01:29 -!- DOS_User_webchat has changed hostmask to ~DOS_User_@user/DOS-User:11249.
16:03:52 <avih> korvo: and somewhat regardless, if your code (which i didn't try to follow yet) merely represents the program in some immediate translation to this or a similar form, and the performance comes from being executed efficiently? or does it also include some additional (post?)processing steps (optimizations) which aim to simplify the expression into fewer expressions, which translates immediately to shorter execution time?
16:04:08 <avih> s/if your code/is your code/
16:05:00 <avih> (like identifying redundancies and removing them from the expressions)
16:08:50 -!- DOS_User_webchat has quit (Remote host closed the connection).
16:15:07 <avih> and finally, assuming it does apply known equivalence rules (your program), does it end up in some optimal list? or is it only optimal for some subset of knowledge which can theoretically exist about a bf program?
16:17:57 <avih> fwiw, while my interpreter is reasonably quick in some cases, i want to remove any specific "macros", and base it purely on observable side effects, hopefully ending up in some optimal execution list (wishful thinking).
16:18:18 <ais523> I can answer this one, algebraically optimising BF will not necessarily reach a theoretically optimal point because optimally optimising a program is undecidable
16:18:37 <int-e> avih: anyway, "monoid" here is just a fancy term to capture the concatenation operation of programs with basic properites: there's a unit e (the empty program) with ex = xe = x for all programs x, and concatenation is associative, (xy)z = x(yz)
16:18:56 <ais523> like, you can imagine a program that searches for counterexamples to the Goldbach conjecture, that probably optimises into an infinite loop but good luck proving it
16:19:02 <avih> int-e: yeah, i got that. i just read the monoid subsection.
16:20:15 <avih> ais523: not familiar with the specifics, but yeah, i think i get the point, at least roughly.
16:20:19 <int-e> the definitions on the page seem to have mixed purposes... some are useful for translating into brainfuck; some others are useful for analyzing, optimizing, standardizing, and maybe compiling brainfuck
16:21:07 <avih> int-e: my point exactly. i don't get what it's supposed to represent other than some set of macros.
16:21:24 <esolangs> [[Special:Log/newusers]] create * Losbos * New user account
16:23:58 <avih> i hoped that it would represent some minimal set which is able to represent any bf program, and which is easy to optimize. but that minimal set has to be plus(int),right(int),loop(code),input,output
16:25:54 <avih> (there are likely other sets too, but this is the most obvious)
16:27:44 -!- Lord_of_Life_ has joined.
16:28:29 -!- Lord_of_Life has quit (Ping timeout: 256 seconds).
16:30:34 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
16:31:17 <avih> ais523: re not possible in general, i think it should be possible to reach have some theoretical optimal result under some known constraints for the compiler, such as complexity of processing the input before starting execution. does that feel about right?
16:32:20 <ais523> avih: hmm, that's interesting, "best available optimisations given a given computational class for the compiler"
16:32:38 <ais523> but I think it's still undecidable, any valid optimisation could be special-cased so you can do it in O(1)
16:32:49 <avih> like, if you say the compiler is only allowed to run in O(N), then there must be some theoretical result of the most it can do with the program. same for O(N log N), etc
16:33:22 <ais523> some real compilers do have some special cases like that, e.g. clang recognises a common way to write the count-set-bits function and optimises it into the processor intrinsic
16:33:49 <ais523> it'd take a lot of effort to prove that optimisation correct, but clang doesn't have to because it just matches the pattern directly, so it doesn't slow the compiler down at all
16:34:00 <ais523> (at least in a computational-complexity sense)
16:36:15 <avih> sure. pattern matching is one way to do that, but for that you need to collect a list of patterns. my approach is to ignore patterns, or at least only consider known basic equivalences, and on top of that build the execution list based on observable side effects
16:37:19 <ais523> avih: it would be hard to come up with a theorem about this because it is not well-defined
16:37:39 <avih> what's not well defined? observable side effects?
16:37:53 <ais523> "known basic equivalences"
16:38:08 <avih> indeed. i hoped that would not be the case
16:40:21 <avih> currently my known equivalence is that a loop which effectively doesn't moves the head and modifies the head data by 1 is a counter.
16:40:46 <ais523> oh, no, that one isn't actually true
16:40:53 <ais523> because the head cell can be moved in an inner loop
16:41:05 <ais523> I guess it's true if you don't allow inner loops to modify the looped-on cell either
16:41:13 <ais523> but, it won't necessarily be true that every iteration will do the same thing
16:41:57 <avih> that's included in "doesn't move the head". obviously it's recursive for internal loops too. if an internal loop moves the head by unknown amount then it cannot be considered "not moving the head"
16:43:04 <ais523> avih: no, I mean things like [->[-<+>]<]
16:43:19 <avih> it comes down to how much can you know about the state, and that's limited by the constraints you put on the compiler in terms of computational class
16:44:00 <avih> sec, let me get what it does
16:44:37 <ais523> (admittedly this specific example isn't useful, more complicated versions can be TC though)
16:46:09 <avih> ais523: it cannot be said that it changes the counter by 1, at least not in some way which i can tell trivially
16:46:48 <ais523> avih: right – the structure is "counter loop containing a balanced loop" but the inner balanced loop overwrites the counter
16:46:55 <avih> it has some interaction of the outer head value with the inner loop. if you could conclude that it's 0 (which you can't), then it would have been a counter.
16:48:54 <esolangs> [[One-Instruction Cyclic Tag]] M https://esolangs.org/w/index.php?diff=168000&oldid=167980 * Aadenboy * (-12)
16:49:32 <avih> anyway, the idea is to collect knowledge as the program is processed, and maintain some known state at any point in time (this might include actual known values, but also knowledge that some cells have unknown values), and based the execution list creation on top of that
16:50:40 <avih> and a loop which ends up moving head by an unknown amount means we now know nothing, and throw away all our existing knowledge.
16:53:00 <avih> (but sometimes we can know that amount, for instance if we know the loop moves the head left by 1 on each iteration (until head cell has value 0), and we also know that the previous cell has value 0, at which case we don't have to drop our knowledge.
16:54:55 <avih> (and we also know it's not actually a loop, but at most an "if")
16:56:46 <avih> the interesting parts are 1. how to represent the knowledge and with which limitations. 2. how to produce the execution list using this knowledge. and i already have ideas for both.
16:59:58 <avih> in a nutshell, the knowledge is respectively, the last known instruction per cell (which we may or may not have), and producing the list means we have to "flush" the knowledge as instructions as soon as we have to lose the knowledge about a cell - and if some other cell depends on the current value of this cell. example of when we have to drop the knowledge about cell X is when there's input into cell X.
17:02:12 <avih> so before we store this new knowledge (that X is now unknown input), we have to "flush" (produce instructions which sets the cell with our existing knowledge - and everything else which depends on the value of this cell).
17:03:25 <avih> and if each instruction can depend only on one other cell (and some constants), then it _should_ be a relatively simple graph.
17:04:10 <avih> hopefully maintainable in no more than O(N log N), but not sure about that yet.
17:06:51 <korvo> avih: To answer your biggest question: the "scale" and "move" terminology comes from bfmacro. The algebraic rules for those ops come from common lore; I collected them from various Brainfuck compilers and interpreters.
17:06:53 <avih> an example of what such framework should be able to produce, for instance, is to translate the classic hello world program into a series of putchar instructions (each with an immediate value)
17:07:52 <avih> korvo: IOW, they're some patterns which bf interpreters apply?
17:08:36 <korvo> avih: Also, yes, there is an optimal TC fragment of the monoid given by loops over pointer-propagating terms. I don't know what its rank is; for a [[monoid]], its *rank* is the minimum number of letters in any equivalent syntactic monoid. (Intuitively: the smallest alphabet that still faithfully represents every program.)
17:08:54 <korvo> avih: Yeah. That's not an original page at all; it's 100% collected lore.
17:09:08 <avih> gotcha. what's "TC"?
17:09:34 <korvo> Oh, sorry. Turing-completeness. For a monoid, Turing-completeness usually means that it's not possible to decide whether an arbitrary term is in normal form.
17:09:57 <avih> (why didn't i think of that?!)
17:10:21 <korvo> (It's okay, I'm prone to overusing jargon. I don't mind being asked to rephrase or simplify.)
17:10:54 <avih> it's ok, i don't mind asking if i don't get something, or at least declaring that :)
17:11:26 <korvo> avih: Have you encountered the concept of *abstract interpretation* yet? It fits cleanly into the monoidal way of doing things and it formalizes your idea about having partial knowledge of the current runtime state.
17:12:03 <avih> but it makes sense that i'm not the first to think about such model :)
17:12:55 <korvo> Your idea makes plenty of sense. The idea is that a concrete interpreter computes *exactly* the right answer, but could spend unbounded time doing that; an abstract interpreter only *approximates* the answer, but never visits any part of a program more than a fixed number of times (often just one visit!)
17:13:43 <avih> ideally just once, but i don't know whether that's possible.
17:14:12 <avih> or rather, whether O(N) is enough for whatever definition of ideal.
17:14:14 <korvo> My bf.py RPython interpreter uses abstract interpretation to do the optimization. It takes input expressions and splits them up into primitive pieces of the monoid, and then reassembles them step-by-step. TBH this is *not* the only way to do it, but it is very neat because part of the approximated value is the optimized program!
17:15:43 <avih> it does sound very neat. mind showing me the list of instructions it produces, if at all, for this? https://0.vern.cc/b.txt
17:16:12 <korvo> Oh, there will always be programs that you can't idealize. Suppose we write out the Goldbach conjecture as a program: for every even number, look for a pair of primes that sum to it; if there's no such pair, halt. The optimal representation of that program is either something like +[] or the empty program, depending on whether the conjecture is true.
17:16:42 <avih> is your execution based on a list of instructions of some sort? like some IR of some machine model? or is the execution more implicit evaluation of something?
17:17:48 <avih> (2nd time "Goldbach conjecture" is mentioned. i really should check out what that is)
17:17:50 <korvo> https://bpa.st/GTNQ
17:18:43 <avih> hmm.. so basically it "simplifies" the bf code into other bf code, and then executes it bf instruction after the other?
17:19:01 <korvo> The abstract execution's based on the original monoid at the [[Algebraic Brainfuck]] page. I might switch over to the pointer-propagation monoid but that likely will require changing the entire frontend of the interpreter up to the parser.
17:19:41 <korvo> The concrete execution's based on chaining basic blocks of actions, where each action has access to the tape and pointer, can do I/O, and must return an updated pointer. I picked this representation because it's JIT-friendly.
17:21:02 <avih> i see. but it still follows the original flow of the code. for instance it _can_ know, if it tried, in O(N) probably, that it produces a fixed list of output values
17:22:12 <korvo> Oh! Yeah, the abstract interpreter doesn't currently simulate knowledge about the tape. There's a reason for that; algebraically, Brainfuck doesn't know what the tape's topology is like, so behavior which depends on that topology isn't safe to optimize around.
17:23:23 <korvo> *That* is because this codebase has a responsibility to generate *canonicalized* versions of programs; it doesn't try to outsmart the program author. This isn't like GCC or LLVM, which have lots of hacks in order to catch bad code written by users.
17:23:35 <avih> in my model, where the only pattern it cares about is a counter loop, it should be able to know all the cell values before they're being printed, and therefore create a list of putchar statements of immediate values, where the cell values themselves has nothing which depends on them, and it's not an observable side effect, and therefore should disappear from the execution list completely
17:24:23 <avih> it does know the initial state.
17:24:32 <korvo> Is unrolling the loop going to shrink the overall size of the code? It's undecidable, actually! In your case, the loop is only representing an initialized tape, but if the loop does any I/O then it wouldn't be possible to examine.
17:24:41 <avih> that's enough to deduce the whole output in this specific case in one pass
17:25:25 <avih> it won't necessarily shrink the code size, but almost certainly reduce execution duration
17:26:08 <korvo> Sure. So, here's where I actually use bf.py: https://bbgauge.info/brainfuck.html These programs likely reduce to either +[] or [] depending on whether their underlying mathematical statements are true or false. We *don't know* the actual answers, but we can imagine how *hard* it would be to solve the problem by looking at how big the programs are.
17:26:15 <avih> especially if loops end up running more than once
17:27:50 <ais523> korvo: tangentially related to the BB gauge (although not directly relevant), so you might be interested in it: https://codegolf.stackexchange.com/questions/97004/does-the-code-terminate-nobody-knows
17:27:58 <avih> i think this entire statement is based on me grokking that page you linked?
17:28:58 <korvo> ais523: Yeah! I think I've got most of those documented here: https://bbgauge.info/problems.html
17:30:02 <korvo> avih: Probably. But the short version's not hard to appreciate: when we don't know how hard something is, but we do know what the associated computation looks like, then we can compare the computations instead of the original thing. The computations are like representations of the thing.
17:30:37 <avih> korvo: i do find it fascinating that your program is only second to Laurent's, because his code definitely unrolls multiplication loops, and then jit it. obviously i believe you, but i don't see how it can be...
17:31:46 <avih> korvo: yeah, i do roughly understand it and think so too.
17:31:47 <korvo> avih: RPython has a builtin unroller; every trace is unrolled and gets a prologue, because the traces can only be started at the top of while-loops.
17:33:08 <avih> interesting. so basically you say you merely crunch the bf program slightly, and then let RPython grok and optimize it?
17:33:49 <avih> akin to produce some c code from bf program, naively or near enough, and then let gcc do what it does?
17:34:51 <avih> fwiw, while gcc is very good at optimizing such naive translation to c, it's meaningfully slower than a translation which unrolls multiplication loops.
17:35:21 <korvo> Yes. But without using libgccjit or libllvm. Here's an example JIT trace from running mandel.b: https://bpa.st/VSJA
17:35:21 <avih> i.e. compiling a native translation vs compiling a translation which unrolls mult loops
17:36:16 <avih> sure. hence "akin" :)
17:36:21 <korvo> Those merge points used to hold BF code; they would just print out the code like ">" or "+". But the IR no longer admits a nice pretty-printed format quickly, and jit_debug strings need to be constant for speed.
17:37:00 <avih> so where is this optimizer? NIH RPython stuff?
17:37:15 <korvo> Otherwise it's just SSA. Crucially, it's not *my* SSA; it's RPython's generated SSA that it built *while compiling* my interpreter. The SSA is roughly similar to what you'd get when debugging PyPy, and you can see that I'm really just using PyPy's environment variable to control the JIT.
17:37:39 <avih> (or s/NIH/own/ ;) )
17:38:43 <korvo> https://rpython.readthedocs.io/en/latest/jit/optimizer.html is probably what you want to read. It's a very simple optimizer: one forward pass over an SSA IR, doing the standard Frances Allen optimizations like propagation and dead-code removal. Every trace is taken over *two* iterations of a loop, and that allows partial unrolling and a prologue just by comparing the iterations to see what changed.
17:39:00 <korvo> Single Static Assignment. A property of IRs where a name is only assigned once, and never mutated.
17:39:02 <avih> my question was where, not how ;)
17:39:20 <avih> but i get it, rpython has an optimizer of its own.
17:40:06 <korvo> Sorry, "where" seems loaded. Like, I know where to find https://github.com/pypy/pypy/blob/main/rpython/jit/metainterp/optimizeopt/unroll.py and I'm not going to hide it from you, but it's not a fun read.
17:40:08 <avih> thanks. i roughly get it, but not familiar with the subject and terminology in general.
17:40:36 <avih> (but i get that it represents some class of IRs which have some known capabilities)
17:40:58 <korvo> Oh! Okay, no worries. So, lucky 10000 for compiler engineers: most serious compiler backends use some sort of SSA. They have many many names for it, but the SSA property is really common. LLVM is a good example of a system that uses SSA.
17:41:24 <avih> s/capabilities/properties/
17:42:41 <avih> yeah, i thought that might be the case, though had zero specific knowledge of it till now (and even now only the name and a property which i get, but not yet "expanded" mentally)
17:42:55 <korvo> If you were to suffer through a university compilers course, you'd either be given SSA or CPS (continuation-passing style, mind-hurting, usually means the school teaches Haskell, Scheme, or OCaml) as your paradigm. Probably also *basic blocks*: a hunk of code that does some ALU operations and then (conditionally?) jumps to another block. These are not easy concepts but they are ubiquitous in modern compilers.
17:43:55 <avih> yeah, never got there myself :) i aborted my masters into the world of internet startups ;)
17:44:24 <avih> and never took compiler courses in undergrad either
17:45:16 <avih> was never into that really, but now, all those years later, bf brought me to it ;)
17:45:21 <korvo> I get it. I was poached out of undergrad by Google, and because I'd pivoted from a music degree, I missed out on a lot. I've been cramming lectures from Youtube and reading papers for years, but I'm sure that there's still little gaps in my knowledge.
17:46:19 <avih> who's knowledge doesn't have gaps? :)
17:47:07 <avih> but anyway, i do find it interesting, and hope i'll be able to implement the model of partial knowledge i described earlier. sounds cool to me, at least before the 1st line of code ;)
17:47:44 <avih> (i do have other bf code, but this is your standard patterns based)
17:48:23 <korvo> Yeah! Take your time; abstract interpretation is tough to understand, and I don't read French so I'm sure that I'm missing details in translation. But the overall approach that you're thinking of should work.
17:49:13 <avih> i think so too, the question is howhard it would be to turn it into reasonable code
17:49:52 <avih> and c might not be the best for that, but it's my current weapon of choice
17:50:15 <korvo> Just over the horizon, there's the field of *partial evaluation*. Given a Brainfuck program, and partial knowledge about the tape, we can produce a *residual* program that includes that knowledge and might be simpler or faster.
17:51:14 <korvo> This eventually leads to Futamura projections, which are what RPython actually does: we give RPython an interpreter and RPython gives us a compiler. There is a standard book on the topic, usually just called The Book, that you will want to read if you want to *hack* on any of these JIT toolkits: https://archive.org/details/springer_10.1007-3-540-47018-2
17:52:02 <korvo> Oh, yeah, C sucks. The main issue with C is that, since it's not memory-safe, you have to fight two battles; you have to make sure that your interpreter's behavior is correct and also you have to not mess up memory accesses.
17:52:04 <avih> it's another way to look at my model, but in some way also the exact way to look at it. because the instruction it produces don't necessarily align with its source. it only cares to produce the observable side effects. so things could be out of order, etc
17:52:42 <korvo> C also lacks for abstractions. Something like ML is almost inevitable, or at least ML-style modules: SML, OCaml, Haskell, etc.
17:53:46 <avih> not worried about memory access (as in, i rarely have such issues), but the challenge is making it do the work readably
17:54:37 <avih> i.e. write it in such a way that the abstraction is not buried at the low code levels, but rather out in the open
17:55:14 <korvo> The Book has a couple sections on partial evaluation of C, BTW. They prototyped a *self-applicable specializer*: a program written in C that can optimize C programs and produce residues in C. (The Book will also explain why specializers have exactly three associated languages.)
17:55:38 <avih> and of course, specify "the work" exactly first. currently i only have a mental model of what it does and how, but not yet the specifics
17:56:35 <avih> which book is that?
17:56:40 <avih> (or did i miss it?)
17:57:31 <korvo> "Partial Evaluation: Practice & Theory", particularly the free 1998 PDF from archive.org linked above.
17:57:50 <avih> the reason i like c is that it's probably the most portable language and relatively easy at that. i.e. you have a c compiler anywhere.
17:58:19 <avih> oh, i did miss that. thanks.
17:59:00 <korvo> I'd disagree with both of those, but I'm fairly biased; I've been part of multiple efforts to push memory-safe languages in the industry. C is a hack that arose because Unix was written for machines that didn't have enough memory to compile Fortran. C was what worked at the time.
17:59:12 <korvo> But sure, C's a decent enough prototyping language.
17:59:22 <avih> roughly the same with sh, btw, at the other end of the spectrum under some points of view :)
18:00:07 <avih> i find c and sh interestingly complementary, and together sort of complete.
18:00:48 <korvo> Well, yeah, shell's a terrible hack. But shell's also an example of a *toplevel*, a system prompt that is always shaped differently from the internal REPL because it has to support interactive actions. ML and Smalltalk traditions have them too.
18:01:34 <avih> yeah, though never used those. not even lisp et al.
18:02:04 <korvo> I'd like to link some advice from multiple language designers: https://lobste.rs/s/vs08dv/how_design_new_programming_language_from The topic is whether C is a good language for compilers, and we explain the nuances fairly well.
18:02:15 <avih> i mean, i know how it works etc, but never tried anything in it.
18:02:51 <korvo> (I'm the one in the green shirt. "...it implies that C is the preferred high-level prototyping language, which hasn't been true for decades and in fact might have never been true.")
18:02:55 <avih> korvo: "we" as in you're one of the authors?
18:03:20 <avih> oh, i'm not making any such claims :)
18:03:54 <korvo> Yes. Andy C.'s another serious author; he works on Oils, a series of languages to replace shell. Drew is the author of Hare, a C competitor that I think is fundamentally flawed from the outset, and it's interesting to understand how Hare's limitations arise from his beliefs about C's practicality.
18:03:56 <avih> just stated why i liked it. i also like js, and tcl (to a degree), and probably more too.
18:04:55 <avih> I'm familiar with Oils, if that's the python thing which gets auto translated to c to produce a posix shell?
18:05:14 <korvo> c-cube is an OCaml maintainer. Danila F. teaches type theory and works on...Rocq, I think? S. Jamaan works on CHICKEN Scheme, related to Lisp and C.
18:06:13 <avih> i might have a look at some stage (at least skim it), but i don't expect to fully go over it (and the rest of the resources). but then, who knows...
18:06:57 <korvo> No worries. Language designers are used to having opinions about languages, but most folks don't really think about it other than what they need for the task at hand. Never forget: the average developer has 2.5yrs of experience and only knows either EMCAScript or Python.
18:07:09 <avih> i don't have a fixation for any specific language, but i'm more experience with imperative ones
18:07:45 <avih> i like whatever i can use to get the job done.
18:09:19 <avih> and this tends to be things i have more experience with. not due to some inherent property of the language.
18:09:34 <korvo> I like whatever I can use to express the task succinctly and without weirdness. Short programs are good. Programs that could expose weirdness are bad. Weirdness is when a machine does things that are outside the intended programming model: https://en.wikipedia.org/wiki/Weird_machine
18:10:26 <avih> (damn, 9s to respond, but i did go over all of it and did agree right away...)
18:11:33 <korvo> Oh, I'd have believed that you'd heard of this before. It was a big splash in security-research circles, and those of us into speedrunning had already known about the phenomenon for a while but didn't have a good name. Reference (1), Bratus.pdf, is a really good read.
18:12:24 <avih> was not aware of that splash. i just read it and i think the same
18:13:16 <avih> (i obviously did not visit the link, but i agree and get what it might have regardless)
18:14:08 <esolangs> [[EUCS]] https://esolangs.org/w/index.php?diff=168001&oldid=167726 * Hammy * (+231)
18:14:09 <korvo> https://langsec.org/papers/Bratus.pdf It's got Sassaman as a co-author! Might have been his final paper. Wonder if we can get people to call them "Sassaman machines" instead.
18:16:09 <esolangs> [[Turing Torment]] https://esolangs.org/w/index.php?diff=168002&oldid=167747 * Hammy * (+43) /* Commands? */
18:17:06 <int-e> (I do consider Malbolge to be a Weird Machine)
18:18:08 <esolangs> [[Turing Torment]] https://esolangs.org/w/index.php?diff=168003&oldid=168002 * Hammy * (+0) /* Examples, I guess? */
18:22:03 <avih> korvo: btw, do you think it's conceivable that rpython turns your output to the equivalent of printing a fixed string?
18:22:36 <korvo> avih: No, it's not structurally capable of doing that, I think.
18:22:40 <avih> (re https://bpa.st/GTNQ )
18:22:51 <ais523> int-e: because Malbolge doesn't have an intended programming model?
18:23:22 <int-e> ais523: yeah because it's basically designed to make looping programs humanly impossible to realize (and failed, but that took quite some time)
18:23:45 <ais523> I think a better viewpoint is that Malbolge *contains* a weird machine
18:23:56 <ais523> possibly more than once
18:24:22 <korvo> int-e, ais523: Taking this to its obvious conclusion, maybe the typical ISA is like a least-weird machine.
18:24:25 <ais523> the whole stable-instruction / stable-NOP thing seems like an intentionally constructed weird machine to help make programming in the language easier to understand
18:24:47 <avih> korvo: in such case, my (limited) experience with what gcc can do with various levels of bf-translated-to-c makes me think that it cannot be that fast. or at least i've not seen anything like it so far.
18:24:52 <ais523> I feel like freestart Malbolge is well within my programming capabilities at this point, but I have no idea how to get the program started
18:25:03 <korvo> Like, an instruction that is always encoded as a single constant byte and always performs an ALU op that can be written as a linear/affine whatever of register bits, only having local effects, is sort of a best case. (Or, as Zim would say, worst case?)
18:25:44 <ais523> korvo: of course, typical ISAs are often more complicated than that
18:26:03 <ais523> you kind-of need an extreme RISC to get something that's that conceptually simple
18:26:05 <korvo> avih: It works because of a Pareto phenomenon: most hot loops are small and the program spends most of its time in relatively little code. As long as the JIT does well on those hot loops, it does well on the whole program.
18:26:17 <ais523> also, transport-triggered architecutres are conceptually even simpler
18:26:18 <avih> it would be interesting to see what rpython produces which then gets executed.
18:26:44 <ais523> (except for how you do indirect memory access, which is conceptually complicated in one of those, you might need an extra level of indirection)
18:27:05 <avih> korvo: yeah, i do get that. as i said gcc does an amazing job on naively translated bf to c
18:27:08 <korvo> ais523: Sure. I'm thinking that you could see the typical ISA as like Malbolge, except that it's got the simplest kind of Malbolge-style encryption, and the clearest kind of Malbolge-style arithmetic, and...
18:27:25 <korvo> Just to imagine a poset of weird machines over a single physical object, really.
18:27:27 <avih> so i guess it's in the same neighborhood of things
18:27:51 <ais523> korvo: hmm, so I feel like the difficulty of Malbolge is in how the instructions interact with the encryption
18:28:08 <int-e> ais523: Malbolge's "mistake" is that it has too many NOP-s, making NOP-cycles quite likely in a random permutation.
18:28:22 <ais523> the instruction set isn't, in isolation, that terrible in an absolute sense, but it is really verbose
18:28:24 <korvo> avih: Sure. In that specific case, GCC has a structural advantage; they implement "polytope" or "polyhedral" modeling for loops. It's the kind of thing that horribly increases compiler times but enables this highly-generalized loop-unrolling behavior that you're imagining.
18:28:40 <ais523> and cares a lot about constants that Malbolge source code can't easily express
18:29:11 <int-e> I mean, I don't know whether these are there by design... but I find it easy enough to believe that they're accidents.
18:29:22 <esolangs> [[ASTLang]] https://esolangs.org/w/index.php?diff=168004&oldid=167962 * NTMDev * (+1650)
18:29:27 <ais523> and this interacts with the encryption because the verbosity makes stable programs harder to write and the lack of expressing useful constants makes initialization harder (with initialization being the main reason Malbolge is difficult)
18:29:48 <ais523> most ISAs don't have this interplay between their semantics and their encoding
18:30:23 <ais523> int-e: well, there are plenty of other features of Malbolge which seem almost impossible that they're intentional
18:30:24 <avih> but i was not talking about this specific case. even in mandelbrot.b, gcc -O2 of 1:1 native bf-to-c translation is barely 2x-3x slower than very good bf-to-c result
18:31:08 <int-e> ais523: there are also way too many sheep and poodles in the clouds :P
18:31:22 <ais523> like encrypting the instruction before a jump target, or the undefined behaviour (and usually segfault in practice) you get if you self-modify an instruction when D=C, or the infinite loop when trying to execute an instruction outside the ASCII range
18:31:29 <avih> but where it does differ, is hanoi.b. in that case, naive translation can result in an order of magnitude difference (or more, i didn't estimate, but it's a huge diff)
18:32:35 <korvo> avih: So, have you read the pointer-propagation section yet? I only recently saw this, but I think that this is the true path forward. It unifies pointer movement and tape increments into a single big behavior, which should also unify some idiom-detection and loop-detection.
18:32:54 <esolangs> [[ASTLang]] https://esolangs.org/w/index.php?diff=168005&oldid=168004 * NTMDev * (-125)
18:32:56 <avih> i think i stopped just there. i did finish the monoid part.
18:33:13 <avih> but i'll read it.
18:33:18 <korvo> (Idiom detection is when we detect that a straight-line sequence of instructions, just ALU op after ALU op, can be turned into a smaller sequence of machine instructions. Loop detection is when we detect that a loop has a specific idiom inside.)
18:33:50 <esolangs> [[ASTLang]] https://esolangs.org/w/index.php?diff=168006&oldid=168005 * NTMDev * (+187) /* Conditionals / If Statements */
18:34:52 <avih> korvo: from initial glancing, i feel that goes over my head. i don't think i'm there for that yet.
18:35:08 <esolangs> [[ASTLang]] https://esolangs.org/w/index.php?diff=168007&oldid=168006 * NTMDev * (+162)
18:35:35 <avih> it does feel like an interesting point of view, but i'm not anywhere near getting it
18:36:09 <korvo> avih: It wasn't obvious for me either. Their insight is that we can always absorb any of the four essential actions, + - < >, into this representation. The monoid is just mathematical fluff.
18:37:18 <korvo> Like, suppose you've got a propagated pointer: you've got the offset, the adjustment, and the list of written tape cells. To absorb + or -, just inc/dec the written tape cell at the adjustment. To absorb < or >, just inc/dec the adjustment itself.
18:38:27 <korvo> (BTW, this conversation's the last thing keeping me at the computer. Let me know when you need a break so that I can take 30min to do something else.)
18:38:31 <avih> i mean, i get why a list of anything can represent any sequence of +-><, but not its significance
18:39:35 <avih> i feel like this is a point of view which can result in finding equivalences where otherwise they're not obvious, but not how
18:40:12 <korvo> It has to do with reducing the number of ways that a compiler represents an action. To detect an idiom or loop, the compiler needs to know every form of that idiom. [-] and [+] are equivalent. [->+<] and [>+<-] are equivalent. The number of forms quickly explodes; it's the main reason that I don't add more forms to bf.py.
18:40:21 <avih> korvo: go :) thanks for your time. been interesting :)
18:41:07 <avih> yeah, that's the sense i get as well, but nothing of the specifics of that
18:41:46 <korvo> No worries. This is giving me good ideas for how to improve the article. I'll be back in a bit.
18:41:53 <int-e> korvo: so you assume a finite cell size
18:42:04 <int-e> (and wrapping arithmetic)
18:51:09 <esolangs> [[HTMHell]] N https://esolangs.org/w/index.php?oldid=168008 * Hammy * (+1107) Created page with "HTMHell (shortened to HTMH) is a weird esolang by [[User:Hammy]] that looks like HTML ==Commands== {| class="wikitable" |+ HTMH commands. |- ! Command !! Meaning |- | <!DOCTYPE HTMHELL> || Must be at the start of the program, if it isn't then start from where it is, if it
19:27:59 <esolangs> [[]] https://esolangs.org/w/index.php?diff=168009&oldid=166992 * * (+321)
19:28:20 <esolangs> [[]] https://esolangs.org/w/index.php?diff=168010&oldid=168009 * * (+10) /* Truth Machine */
19:31:28 <b_jonas> ais523: https://xkcd.com/1425/ . int-e: “Would you call a friend from half across the world? / If you’ll let us have his name and town and state, / You shall see and hear your crackling question hurled / Across the arch of heaven while you wait.” from 1911 (spoiler: vg vf gnyxvat nobhg genafngynagvp enqvb gryrtenz. vg orpnzr ninvynoyr ng ebhtuyl gur fnzr gvzr nf gur haqrefrn pnoyrf. ab
19:31:34 <b_jonas> ybat-qvfgnapr gryrcubar lrg.)
19:40:53 <ais523> ugh, it took way too long to read that rot13 without a translato
20:01:05 -!- tromp has joined.
20:29:14 <b_jonas> "the average developer has 2.5yrs of experience" => what? how can that be true? do they leave to management after five years in average or something?
20:29:37 <b_jonas> or become rich in 5 years in average and retire forever?
20:29:38 <ais523> b_jonas: partly people dropping out, and partly that the rate of new programmers entering is increasing
20:29:54 <ais523> so they form a disproportionate portion of the sample
20:30:53 <b_jonas> "way too long to read that rot13" => that's partly my fault, I deliberately rewrote it to remove some potentially revealing punctuation or capitals so it is spoilered better
20:32:58 <korvo> int-e: Yeah, precisely. I don't mind that particular choice so much, but it's still a choice.
20:33:59 <ais523> oddly I find that bignum BF is often easier to implement in esolangs
20:34:16 <ais523> wrapping at 256 can be quite difficult to implement because it's a large constant
20:34:20 <korvo> b_jonas: Exponential growth is really unintuitive when it comes to snapshots. Regardless of where we stand, it looks like the past is nearly flat and the future is growing unbelievably fast. But the median time that an individual has spent in the field is shrinking because individuals enter the field so quickly.
20:34:43 <ais523> and often your native way to represent numbers is either naturally unbounded, or not big enough to represent 256 so you have to use bignum-like tricks anyway
20:35:25 -!- pr1sm has quit (Remote host closed the connection).
20:35:43 <korvo> I suppose that one consequence of that is that just maintaining the relationships that you currently have, your cohort is going to be an exponentially-small corner of the ecosystem. In order to stay connected, one must endure a constant stream of young folks coming in with half-baked ideas.
20:41:55 <korvo> b_jonas: That said, if we take a slightly narrower cohort, of developers that are actively participating in Stack Overflow, then the median age jumps to about 15yrs of experience: https://survey.stackoverflow.co/2025/developers#education-experience-years-code This tells me something about SO's users compared to the median developer, but it's not surprising that SO users have more experience than average.
20:42:36 <b_jonas> korvo: that might be because people lie about how much experience they have, especially on SO, to get jobs
20:43:04 <korvo> ...There's also the possibility of a particular stats bias, *survivorship bias*, since people tend to wash out or burn out of software engineering.
20:44:06 <ais523> stack overflow is mostly a ghost town nowadays (which oddly has made it a much better website)
20:44:07 <int-e> korvo: huh, is it really unsurprising? one would think that as your experience grows you get increasingly less out of a platform like that
20:44:14 <korvo> Like, the typical tenure of a Google SRE is about 2yrs; the reason for that low number is because Google tends to run their SREs hot and burn them out. I lasted slightly longer than average.
20:44:21 <ais523> like, it's better to use than it was 5-10 years ago even despite the company in charge messing the site up
20:44:39 <b_jonas> korvo: sure, for Google it's believable
20:46:31 <korvo> int-e: I see a lot of old-timers giving extremely dated advice on the periphery of Stack Exchange, and I think that there's a kind of greybeards' refuge. But I could certainly imagine that if we were to sample users that don't use the rest of Stack Exchange then maybe they'd be younger.
20:47:02 <int-e> Like IRC then, I guess. Except IRC isn't so grossly gamified.
20:47:48 <int-e> (as far as old people go :P)
20:48:46 <ais523> I dislike the gamification on SO both for its own sake, and because the incentives are wrong
20:48:53 <korvo> Sure. The ancient Greek polis system had (sp?) "gerountia", basically "old man's club", where the old men would sit around and talk about the old days and tell war stories and try to make a good impression on the youth. Not a bad idea in general but *terrible* if used as part of government, as in Sparta.
20:48:57 <ais523> the most useful actions are not the actions that give the most points
21:56:15 <esolangs> [[User:Buckets]] M https://esolangs.org/w/index.php?diff=168011&oldid=167951 * Buckets * (+11)
21:56:47 <esolangs> [[Language list]] M https://esolangs.org/w/index.php?diff=168012&oldid=167952 * Buckets * (+12)
21:57:29 <esolangs> [[Wycq]] N https://esolangs.org/w/index.php?oldid=168013 * Buckets * (+311) Created page with "Wyq is an Esoteric programming language created by [[User:Buckets]] In 2021. {| class="wikitable" |- ! Command Example !! Instruction |- | Wyq A B || Memory[A] = Memory[A] nand Memory[B] then, Goto address (Memory[B] - 1). |} [[Category:Unknown computational class]] [[Categ
21:58:05 <esolangs> [[Wycq]] M https://esolangs.org/w/index.php?diff=168014&oldid=168013 * Buckets * (+68)
21:58:40 <esolangs> [[Special:Log/move]] move * Buckets * moved [[Wycq]] to [[Wyq]]
22:01:32 <avih> i don't recall how i got here (is it linked from one of the posted links earlier?), but this and the followup are interesting https://blog.regehr.org/archives/140 it's about whether program termination is considered an observable side effect (spoiler: yes in java, no in c++, unclear in c)
22:05:15 <ais523> avih: my optimising interpreter for The Waterfalll Model, if it recognises an infinite loop, compiles it into a deadlock
22:05:30 <ais523> err, not compiles, interprets it as
22:05:39 <avih> then in this case it's observable
22:05:52 <ais523> this seems to me like the sensible way to optimise infinite loops, I wonder why it isn't more common
22:06:15 <avih> but the general question is interesting, as well as the differences between languages and their effect on optimizations
22:07:15 <avih> i might know how i got there, probably while reading about compiler optimizations.
22:08:08 <avih> ais523: assuming it's not a side effect opens the door for further optimizations.
22:08:14 <ais523> I've been gradually trying to design an IR (not as a major project that's likely to finish any time soon, just as a curious spare-time thing) and realised that infinite loops are really hard to handle properly in an IR because they introduce what's effectively a side effect in a way that doesn't show up to most side-effect analyses
22:08:41 <avih> the ferme example is nice
22:08:47 <ais523> it'd make things much easier to say "if things calculated within an infinite loop don't affect the rest of the code, you can skip the loop"
22:08:51 <ais523> and C++ actually does that
22:09:38 <korvo> GHC Haskell prints out "<loop>" and exits if it ever finds a cycle in the part of the object graph that it is currently evaluating. The way it does this is very slick and not portable beyond GHC's VM, relying on Haskell's lazy semantics: lazy graph traversal can mark nodes when it first visits them, and prints "<loop>" when it visits a marked node.
22:11:10 <avih> korvo: this was mentioned at one of the comments. i think at the followup article
22:11:25 <ais523> this is allowed by the Haskell specification, which specifies that an abnormal termination and an infinite loop are considered the same outcome and a compiler can transform one to the other
22:11:28 <korvo> I don't really like non-termination. I would like for my computer to finish what it's doing, please.
22:12:39 <avih> sure, except that there are cases (and specific examples in these articles, including at the linux kernel) about use cases where not terminating is a desirable behavior
22:13:01 <avih> s/desirable/intended/
22:13:51 <ais523> there's another similar case which I find very annoying, in which a function call can contain a synchronisation barrier and expose data it clearly doesn't have access to
22:14:10 <avih> one example is firmware updater which enters infinite loop and expects the cpu watchdog to reboot
22:15:01 <avih> skim those articles. they have several examples
22:15:59 <korvo> avih: So, in terms of understanding the Haskell/ML way of thinking, there's an important old paper by the author of the Miranda language, "Total Functional Programming": https://ncatlab.org/ufias2012/files/turner.pdf This paper says that in addition to programs that always halt, we can write programs on *codata* which is infinite, and *never* halts.
22:16:32 <korvo> For all of the cases where we want to have an interactive machine that is constantly responding to a user, we can use codata. Maybe you disagree with this, but it's the meme that dons and others are implicitly bringing to the table.
22:17:32 <korvo> That said, I think that an infinite-loop intrinsic would be a fine compromise for a kernel or embedded app. I agree that sometimes an embedded device needs to enter a stuck state, and an intrinsic seems like a reasonable way to offer that control to the programmer without contaminating the language with *general recursion*.
22:17:38 <avih> i didn't express my opinion yet on this :) but without considering it deeply, i think (and thought also before reading these articles) that termination is an observable side effect
22:18:11 <avih> i did consider it while thinking about my bf optimization model
22:18:44 <zzo38> In the case of systems that have locking, any locks might be released if a program terminates but it might be held in a infinite loop otherwise
22:20:38 <avih> korvo: agreed, but c doesn't have an explicit halt instruction.
22:21:03 <ais523> found it: https://github.com/llvm/llvm-project/issues/64188
22:21:08 <korvo> avih: C lacks many of today's CPU's instructions. In general, it's really a language for a particular abstract machine rather than a language for the CPU.
22:21:25 <avih> for(;;); is such, but it's something the compiler deduces. not something the developer can express explicitly
22:21:51 <b_jonas> avih: I don't know how I got here (as in on this channel, as opposed to this IRC network) either
22:22:03 <ais523> this has been bothering me so much, it's making me think that acquire/release are the wrong abstractions for software (despite being correct for hardware)
22:22:16 <ais523> b_jonas: I kind-of assumed you followed me, but wasn't sure
22:22:37 <zzo38> (For this reason, as well as the case of knowing that a capability is no longer usable, in my hypothetical computer design, halting can be distinguished from infinite loops without I/O, although in some cases a program might halt without intending to, such as waiting for a condition that the kernel knows is impossible (e.g. for any one of an empty set of objects to be ready).)
22:22:43 <avih> b_jonas: to that article :)
22:25:03 <avih> anyway, i'm out for now. just wanted to drop that link because i found it interesting, and related to the earlier conversation in some way, and to this channel. later :)
22:27:03 <avih> (really tiny peace symbol)
22:27:09 <korvo> zzo38: Oh, that's interesting to think about. With E-style message delivery (so-called "E-order" of deliveries) there's always a possibility for deadlock simply because we can create a promise which resolves to itself.
22:28:00 <korvo> In Vixen, I suppose that the analogue would be some sort of omega-shaped execline script that constantly tries to invoke and wait for a copy of itself. Not gonna write that out because it sounds like a fork bomb.
22:30:48 <b_jonas> ais523: the C++ rule that an infinite loop without side effects is undefined behavior bothers me. if I write a program that tries to find a counterexample for the Goldbach conjecture, and the C++ compiler is smart enough to prove that there's no such counterexample, then it can make the program do anything, such as lie that it found a specific counterexample, or spawn demons. and if I write the program
22:30:54 <b_jonas> such that it doesn't even print the counterexample, it only prints that it found one, then the compiler doesn't even have to prove that there's no counterexample, it can just make the program lie that it found a counterexample regardless. this gets worse if I write an interpreter in C++ for a toy language. the compiler can compile my interpreter such that it works most of the time but may UB for some
22:31:00 <b_jonas> infinite loops in the interpreted program. to avoid this I have to deliberately insert something that has a side effect (possibly in only some infinitely many iterations) to the loop body,
22:31:30 <ais523> b_jonas: this is basically what avih's link above was about
22:32:23 <b_jonas> and I'm not even sure what I should insert that is considered a side effect by the C++ standard but that the compiler can optimize away. does calling time() count as a side effect? normally that won't evne issue an actual kernel system call, it's one of the system calls optimized by magic. how about select(0,0,0,0)? is the compiler allowed to know that it has no side effect and so not count it as an
22:32:29 <b_jonas> observable side effect? a volatile write counts as a side effect, but the compiler probably also isn't allowed to optimize away the write.
22:33:50 <b_jonas> if I want to definitely not terminate that's easy, I can just write while(1) { pause(); volatile int m = 0; m = 1; }
22:34:03 <b_jonas> but that's a kind of trivial case
22:35:05 <ais523> I think this problem is actually unfixable from within C++ – ideally you would want a volatile read that gets optimized out, but I'm not even sure that concept makes sense
22:35:53 <ais523> you could write a function call to a function whose behaviour isn't visible to the calling code, but that couldn't be optimized out and would be slower than a volatile read
22:36:45 <b_jonas> "c doesn't have an explicit halt instruction" => it doesn't, but unix has pause(). it's a funny one because this is basically the *only* reasonable use for the pause() system call.
22:37:26 <b_jonas> but even if you didn't have pause, which is probably a historical accident, you can use sigwait or select with a long timeout etc
22:40:55 <b_jonas> ais523: yes, a volatile read might work
22:46:42 <ais523> b_jonas: if you had a program that ran entirely in signal handlers
22:46:57 <ais523> you could make pause in a loop the body of main, after setting the signal handlers up
22:47:05 <ais523> (this is probably a bad idea but it would at least be reasonable)
22:48:37 <b_jonas> volatile has some other advantages: if you have a slow pure computation and want to measure rough time of how slow then you can write the results of the computation into a volatile to make sure the computation is just optimized away. also even if it's not optimized away completely, a volatile write is at least cheap.
22:48:43 -!- amby has quit (Ping timeout: 256 seconds).
22:49:10 <b_jonas> eg. it's cheaper than trying to do a system calls to ensure a side effect or something like that
22:49:56 <ais523> not standard C++, but thinking about it an empty asm volatile would probably work
22:50:34 <b_jonas> also volatile writes in C and C++ are very portable
22:50:57 <b_jonas> ais523: yes, that's technically dependent on the CPU type and compiler, but probably works decently
22:51:20 <ais523> most asms permit the null string as a no-op
22:51:50 <ais523> although, the compiler might not necessarily be able to pass it to the assembler correctly
22:52:07 <b_jonas> yeah, but I'm not convinced that the compiler will know the asm syntax on all CPU architectures
22:52:32 <b_jonas> like if you're compiling for an uncommon architecture or with an uncommon compiler or compiler options
22:53:25 <b_jonas> and it's also harder to input a dependency into an inline asm portably so that it can't be reordered to before the value is computed
22:54:46 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
22:55:46 -!- amby has joined.
23:05:58 <zzo38> I did write a program once that used pause() because I wanted to wait for a signal to set a variable before the program does anything else
23:10:25 <ais523> zzo38: doesn't that go wrong if the signal arrives before the pause() call?
23:11:17 <ais523> you would need a ppause() instead to avoid the race condition (which exists, but for some reason is called sigsuspend() instead)
23:12:01 <zzo38> A while loop is used, so if a different signal arrives then it will pause() again
23:15:51 <ais523> zzo38: no, the other way round
23:16:09 <ais523> if the signal you're waiting for arrives before the program enters the pause() call
23:16:09 -!- pool has quit (Read error: Connection reset by peer).
23:16:19 <ais523> then pause() wlll be waiting for something that has already happened
23:16:55 <zzo38> O, that is a valid point, if it occurs between checking the loop condition and calling pause()
23:18:13 -!- pool has joined.
23:19:58 -!- Sgeo has joined.
23:23:37 -!- sftp_ has joined.
23:24:55 -!- sftp has quit (Ping timeout: 264 seconds).
23:24:56 -!- sftp_ has changed nick to sftp.
23:24:56 -!- sftp has changed hostmask to ~sftp@user/sftp.
00:16:18 -!- pool has quit (Read error: Connection reset by peer).
00:18:21 -!- pool has joined.
00:37:25 -!- ais523 has quit (Ping timeout: 240 seconds).
01:09:07 -!- sftp_ has joined.
01:09:55 -!- sftp has quit (Ping timeout: 240 seconds).
01:09:55 -!- sftp_ has changed nick to sftp.
01:09:55 -!- sftp has changed hostmask to ~sftp@user/sftp.
01:19:39 -!- simcop2387 has joined.
01:21:09 -!- perlbot has joined.
01:37:01 -!- 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:16:28 -!- pool has quit (Read error: Connection reset by peer).
02:18:36 -!- pool has joined.
03:00:02 <esolangs> [[Strang]] N https://esolangs.org/w/index.php?oldid=168017 * FluixMakesEsolangs * (+1899) Initial Commit
03:01:03 <esolangs> [[User:FluixMakesEsolangs]] https://esolangs.org/w/index.php?diff=168018&oldid=167426 * FluixMakesEsolangs * (+65)
03:02:31 <esolangs> [[Talk:Strang]] N https://esolangs.org/w/index.php?oldid=168019 * FluixMakesEsolangs * (+124) /* Ask questions here! */ new section
03:03:11 <esolangs> [[Talk:Strang]] https://esolangs.org/w/index.php?diff=168020&oldid=168019 * FluixMakesEsolangs * (-101) oops-
03:03:24 <esolangs> [[Talk:Strang]] https://esolangs.org/w/index.php?diff=168021&oldid=168020 * FluixMakesEsolangs * (+19) /* test */ new section
03:03:41 <esolangs> [[Talk:Strang]] https://esolangs.org/w/index.php?diff=168022&oldid=168021 * FluixMakesEsolangs * (-19) removed test
03:06:39 <esolangs> [[Category:Unproven Turing Completeness]] N https://esolangs.org/w/index.php?oldid=168023 * FluixMakesEsolangs * (+97) Created page with "This is where languages that are potentially / theoretically Turing Complete, but it is unproven."
03:07:17 <esolangs> [[Strang]] M https://esolangs.org/w/index.php?diff=168024&oldid=168017 * FluixMakesEsolangs * (+42) Added Category
03:07:25 <esolangs> [[Category talk:Unproven Turing Completeness]] N https://esolangs.org/w/index.php?oldid=168025 * Aadenboy * (+330) Created page with "[[:Category:Unknown computational class]]? ~~~~"
04:16:21 <esolangs> [[Category talk:Unproven Turing Completeness]] https://esolangs.org/w/index.php?diff=168026&oldid=168025 * Corbin * (+184) Category was added without discussion.
04:16:36 <esolangs> [[Category talk:Unproven Turing Completeness]] M https://esolangs.org/w/index.php?diff=168027&oldid=168026 * Corbin * (+1) Formatting.
04:47:47 <esolangs> [[Yes/No]] https://esolangs.org/w/index.php?diff=168028&oldid=166322 * Intiha * (-9065)
04:54:49 -!- Sgeo_ has joined.
04:59:50 -!- perlbot_ has joined.
05:04:04 -!- perlbot has quit (*.net *.split).
05:04:04 -!- Sgeo has quit (*.net *.split).
05:04:04 -!- iovoid has quit (*.net *.split).
05:04:04 -!- zzo38 has quit (*.net *.split).
05:04:05 -!- perlbot_ has changed nick to perlbot.
05:05:31 -!- [iovoid] has joined.
05:09:56 <esolangs> [[Yes/No]] https://esolangs.org/w/index.php?diff=168029&oldid=168028 * Intiha * (+66)
05:41:04 -!- zzo38 has joined.
06:16:53 -!- pool has quit (Read error: Connection reset by peer).
06:18:54 -!- pool has joined.
06:54:43 <esolangs> [[Lalala]] https://esolangs.org/w/index.php?diff=168030&oldid=167347 * Yayimhere2(school) * (+0) /* computational class */
06:56:49 <esolangs> [[oxck]] https://esolangs.org/w/index.php?diff=168031&oldid=156593 * Yayimhere2(school) * (+2) /* wires */
06:58:53 <esolangs> [[Lalala]] M https://esolangs.org/w/index.php?diff=168032&oldid=168030 * ThrowAwayLurker * (+31) Capitalization and punctuation
07:00:01 <esolangs> [[Thueue]] https://esolangs.org/w/index.php?diff=168033&oldid=167993 * Yayimhere2(school) * (+10) /* Semantics */
07:04:01 <esolangs> [[Action symbol]] M https://esolangs.org/w/index.php?diff=168034&oldid=167973 * ThrowAwayLurker * (+12) Capitalization, spelling, and punctuation
07:05:30 <esolangs> [[QFL]] M https://esolangs.org/w/index.php?diff=168035&oldid=111892 * ThrowAwayLurker * (-2) Some capitalization and one grammatical error
07:07:17 <esolangs> [[CContains]] M https://esolangs.org/w/index.php?diff=168036&oldid=167997 * ThrowAwayLurker * (-1)
07:09:39 <esolangs> [[Braindamage]] M https://esolangs.org/w/index.php?diff=168037&oldid=112108 * ThrowAwayLurker * (+11)
07:10:53 <esolangs> [[EsoKit]] M https://esolangs.org/w/index.php?diff=168038&oldid=140511 * ThrowAwayLurker * (+0)
07:12:46 <esolangs> [[Thueue]] https://esolangs.org/w/index.php?diff=168039&oldid=168033 * Yayimhere2(school) * (+135)
07:15:08 <esolangs> [[Thueue]] https://esolangs.org/w/index.php?diff=168040&oldid=168039 * Yayimhere2(school) * (+72) /* Semantics */
07:15:11 <esolangs> [[Higher Subleq]] M https://esolangs.org/w/index.php?diff=168041&oldid=112465 * ThrowAwayLurker * (-5) User page links should be clearly user page links, thus the "user:" should be included
07:26:43 -!- somelauw has joined.
07:26:52 -!- somelauw has quit (Remote host closed the connection).
07:55:10 <esolangs> [[Thueue]] https://esolangs.org/w/index.php?diff=168042&oldid=168040 * Yayimhere2(school) * (+25) /* Semantics */
07:56:58 <esolangs> [[Special:Log/delete]] delete * Keymaker * deleted "[[Category:Unproven Turing Completeness]]": 'Unknown computational class' is for this purpose.
08:01:29 <esolangs> [[An Odd Rewriting System]] https://esolangs.org/w/index.php?diff=168043&oldid=117087 * Yayimhere2(school) * (+0) /* Syntax */ repetition of the word "followed"
08:02:24 -!- tromp has joined.
08:29:57 -!- Sgeo_ has quit (Read error: Connection reset by peer).
08:34:13 <esolangs> [[Square-like]] N https://esolangs.org/w/index.php?oldid=168044 * Yayimhere2(school) * (+1647) Created page with "'''Square-like''' is a minimal and semi-simple two dimensional language based on [[Re:direction]] and [[RECT4n=GLE]]. It is functionally also similar to [[Emmental]]. == Syntax & semantics == Every Square-like program is a rectangle with no empty/space
08:40:09 -!- b_jonas has quit (Quit: leaving).
08:40:55 <esolangs> [[Square-like]] https://esolangs.org/w/index.php?diff=168045&oldid=168044 * Yayimhere2(school) * (+330) /* Syntax & semantics */
08:42:15 <esolangs> [[Square-like]] https://esolangs.org/w/index.php?diff=168046&oldid=168045 * Yayimhere2(school) * (+23) /* Syntax & semantics */
08:47:20 <esolangs> [[Square-like]] https://esolangs.org/w/index.php?diff=168047&oldid=168046 * Yayimhere2(school) * (-148) /* Examples */
08:50:09 <esolangs> [[Square-like]] https://esolangs.org/w/index.php?diff=168048&oldid=168047 * Yayimhere2(school) * (+55) /* Syntax & semantics */
08:51:06 <esolangs> [[Square-like]] https://esolangs.org/w/index.php?diff=168049&oldid=168048 * Yayimhere2(school) * (-1) /* Syntax & semantics */
09:17:06 -!- pool has quit (Read error: Connection reset by peer).
09:17:29 -!- pool has joined.
09:27:05 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
09:48:27 -!- tromp has joined.
09:59:51 -!- Taneb has joined.
10:02:58 <esolangs> [[User:Yayimhere]] https://esolangs.org/w/index.php?diff=168050&oldid=167992 * Yayimhere2(school) * (+18) /* esolangs */
10:35:51 -!- ais523 has joined.
10:48:56 <esolangs> [[User:Yayimhere]] https://esolangs.org/w/index.php?diff=168051&oldid=168050 * Yayimhere2(school) * (+354) /* things about me */
11:04:23 <esolangs> [[OoOoOM]] N https://esolangs.org/w/index.php?oldid=168052 * Yayimhere2(school) * (+1292) Created page with "'''OoOoOM''' is an esoteric programming language based off of, and contained within [[Underload]]. It was originally created to prove [[Sike]] [[Turing complete]], however at the time of publication this has already been done. OoOoOM relies semi heavily on [[N
11:10:12 <esolangs> [[Talk:Looping counter]] N https://esolangs.org/w/index.php?oldid=168053 * Yayimhere2(school) * (+228) Created page with "For a looping counter, must each increment be stored in a new memory location? Or can/must it be in the same? --~~~~"
11:10:29 -!- Taneb has quit (Ping timeout: 256 seconds).
11:14:12 <esolangs> [[Square-like]] https://esolangs.org/w/index.php?diff=168054&oldid=168049 * Yayimhere2(school) * (+52) /* Syntax & semantics */
11:15:17 <esolangs> [[Square-like]] https://esolangs.org/w/index.php?diff=168055&oldid=168054 * Yayimhere2(school) * (+1) /* Syntax & semantics */
11:16:46 <esolangs> [[User:Yayimhere]] https://esolangs.org/w/index.php?diff=168056&oldid=168051 * Yayimhere2(school) * (+0) /* Favorite esolangs: */
11:17:00 <esolangs> [[User:Yayimhere]] https://esolangs.org/w/index.php?diff=168057&oldid=168056 * Yayimhere2(school) * (+1) /* Favorite esolangs: */
11:17:18 -!- pool has quit (Read error: Connection reset by peer).
11:17:54 <esolangs> [[Square-like]] https://esolangs.org/w/index.php?diff=168058&oldid=168055 * Yayimhere2(school) * (+36)
11:19:25 -!- pool has joined.
11:21:34 <esolangs> [[Square-like]] https://esolangs.org/w/index.php?diff=168059&oldid=168058 * Yayimhere2(school) * (+44) /* Syntax & semantics */
11:23:29 <esolangs> [[67]] N https://esolangs.org/w/index.php?oldid=168060 * Eating-dinner * (+2588) Created page
11:24:28 <esolangs> [[Square-like]] https://esolangs.org/w/index.php?diff=168061&oldid=168059 * Yayimhere2(school) * (+95) /* Syntax & semantics */
11:26:10 <esolangs> [[Square-like]] https://esolangs.org/w/index.php?diff=168062&oldid=168061 * Yayimhere2(school) * (-12) /* Examples */
11:26:22 <esolangs> [[Square-like]] https://esolangs.org/w/index.php?diff=168063&oldid=168062 * Yayimhere2(school) * (-43) /* Syntax & semantics */
11:30:22 <esolangs> [[Square-like]] https://esolangs.org/w/index.php?diff=168064&oldid=168063 * Yayimhere2(school) * (+10) /* Syntax & semantics */
11:30:30 <esolangs> [[Square-like]] https://esolangs.org/w/index.php?diff=168065&oldid=168064 * Yayimhere2(school) * (+8) /* Examples */
11:31:15 <esolangs> [[Square-like]] https://esolangs.org/w/index.php?diff=168066&oldid=168065 * Yayimhere2(school) * (+0) /* Syntax & semantics */
11:31:27 <esolangs> [[Square-like]] https://esolangs.org/w/index.php?diff=168067&oldid=168066 * Yayimhere2(school) * (+0) /* Examples */
11:33:43 <esolangs> [[Square-like]] https://esolangs.org/w/index.php?diff=168068&oldid=168067 * Yayimhere2(school) * (+0) /* Syntax & semantics */
11:33:57 <esolangs> [[Square-like]] https://esolangs.org/w/index.php?diff=168069&oldid=168068 * Yayimhere2(school) * (+0) /* Examples */
11:58:05 <avih> ais523: you mentioned yesterday that your optimizer replicates termination. is that because you consider it observable side effect (or rather, you don't assume a program must end)? or for other reasons?
11:58:25 <ais523> avih: at least in The Waterfall Model, it's an observable side effect
11:58:36 <ais523> in fact, in many low-level esolangs, it's the only way to get output from the program
11:58:59 <avih> what do you mean? because many programs don't exit?
11:59:11 <ais523> the programs have no I/O capabilities and no side effects other than termination
11:59:35 <ais523> so in order to do useful computation with a program, you have to either run it to see whether it terminates, or extend the language to provide some means to get output from it
11:59:51 <avih> oh. hmm.. i didn't give it thought, but in what ways are such languages useful?
12:00:13 <ais523> for proofs mostly, you can say "this is the minimum bar needed to be able to compute and we meet that bar"
12:00:22 <avih> right. so inherently the only output is whether it terminates or not?
12:00:26 <ais523> and then if you want a practically useful version you give it more I/O capabiities
12:00:59 -!- lambdabot has quit (Remote host closed the connection).
12:01:05 <ais523> avih: "inherently"'s a bit of a strange term here
12:01:35 <avih> as in, the languages you mentioned, unextended, don't have io except 1 bit of whether they terminate or not
12:01:38 <ais523> normally a language that is capable of computation might be expandable to have some means of producing output, without affecting the way it operates
12:01:58 <ais523> but it's often hard to figure out how to do that until you understand how computations in the language work
12:02:09 <ais523> take the I/D machine, for example (https://esolangs.org/wiki/I/D_machine)
12:02:32 <ais523> it has two very simple commands and no control flow other than an implicit loop around the program
12:02:44 <ais523> so it can't produce output even by halting, as there's no way to break out of the loop
12:02:59 <ais523> it *is* capable of doing computations, and you can look at the memory state of the program to figure out what it computed
12:03:22 <ais523> to make this useful you would have to add some way of doing I/O, but you have to understand how the language is able to compute in order to be able to give it I/O that it's able to control
12:04:05 <avih> so if it never stops, what can determine that it has completed?
12:04:14 <ais523> in the case of the I/D machine this would probably be done by defining an infinite arithmetic sequence of memory addresses, and whenever any of the addresses gets written for the first time it outputs the value of the previous address in the sequence
12:04:57 <ais523> normally for these languages it's defined as a "tight infinite loop", i.e. an infinite loop that just repeats the same steps over and over again in a way that can be easily proven to never halt
12:05:10 <ais523> but that's something of a subjective definition
12:05:49 <ais523> https://esolangs.org/wiki/Addition_Automaton defines a set of three possible halt conditions, each of which are a tight infinite loop but with the tightness check defined differently
12:06:16 <avih> so in your interpreter, it has to respect termination because that's a sort of specified behavior, yes?
12:07:03 <ais523> right, The Waterfall Model explicitly specifies a way to halt (a waterclock with an all-zeroes trigger becomes zero), if that *doesn't* happen (and the program doesn't incur undefined behaviour) it must not halt
12:07:24 <ais523> so if the interpreter proves an infinite loop it deadlocks, in order to respect the termination rules
12:09:35 <ais523> that said, The Waterfall Model also allows for nontrivial output as it halts, because you can have multiple waterclocks with all-zeroes triggers and the interpreter will tell you which one zeroed
12:09:48 <ais523> so you can get an exit code from the program and use that as a way to figure out what it computed
12:10:09 <ais523> (and there are extensions to do output while it's running but they aren't commonly used)
12:10:55 -!- wob_jonas has joined.
12:11:50 <esolangs> [[Square-like]] https://esolangs.org/w/index.php?diff=168070&oldid=168069 * Yayimhere2(school) * (+189) /* Syntax & semantics */
12:12:08 <sorear> you don't really need that since RE \intersect co-RE = R
12:13:10 <ais523> indeed – in this case it's equivalent to writing two programs, one of which halts if the original program would halt on counter A, and one of which halts if the original program would halt on counter B, then running them both in parallel to see which one halts
12:13:13 <wob_jonas> Blindfolded arithmetic halts when it tries to do a division by zero. That makes sense because it can result in a tight infinite loop in some implementations, and also because it makes the language more interesting by forcing you to avoid division by zero even in cases when the result would be ignored (eg. by multiplying it with a boolean that's
12:14:05 <ais523> wob_jonas: you're reminding me of implementing Blindfolded Arithmetic in Jelly, which doesn't halt on integer/0 but does halt on inf/2
12:14:17 <ais523> so there was a second level of indirection on the division by zero check
12:14:33 <ais523> (this is probably a bug in Jelly, it handles the corner cases of division but not all the edge cases)
12:15:02 <wob_jonas> This is for languages with an implicit infinite loop around the program, like the I/D machine or blindfolded arithmetic. Some languages instead have explicit loops. Brainfuck halts when it reaches the end of the main program, after the last statement. Unlambda has an explicit built-in to halt, called e , but some implementations might also halt
12:15:02 <wob_jonas> when they evaluate the top-level expression to something that isn't an application.
12:15:03 <esolangs> [[Square-like]] https://esolangs.org/w/index.php?diff=168071&oldid=168070 * Yayimhere2(school) * (+65) /* Syntax & semantics */
12:15:44 <esolangs> [[Square-like]] https://esolangs.org/w/index.php?diff=168072&oldid=168071 * Yayimhere2(school) * (-5) /* Syntax & semantics */
12:15:53 <wob_jonas> (or to something that's an application that can't be further simplified, like `ki or `sii )
12:16:29 <ais523> a long time ago I added a command to C-INTERCAL to put an infinite loop around the program (it must appear at the end of the program and can only jump back to the start)
12:16:44 <ais523> and you can exit the program cleanly by ABSTAINing it, even though normally running off the end of the program is an error in INTERCAL
12:17:03 <ais523> this was a long time before I realised the value of the implicit loop construction in general
12:17:40 <ais523> I think I have a language which has an implicit loop but also a conditional "skip next command" operation, and if you do a taken skip at the end of the program it skips over the implicit loop and halts
12:17:41 -!- lambdabot has joined.
12:17:49 <wob_jonas> that's strange because Intercal already has easy to write loops around code, so it doesn't really need a new top-level loop
12:18:19 <ais523> wob_jonas: indeed, my motivation was to write a TC variant of INTERCAL using no expressions other than constant #1
12:18:22 <esolangs> [[Square-like]] https://esolangs.org/w/index.php?diff=168073&oldid=168072 * Yayimhere2(school) * (+12) /* Syntax & semantics */
12:18:43 <ais523> although I probably didn't think it through because constant #1 in FORGET would be enough to use the regular looping approach
12:19:13 <ais523> this was the first time I discovered The Waterfall Model but I didn't realise it at the time
12:20:07 <wob_jonas> which extensions does this need over original intercal, besides that infinite loop?
12:20:40 <ais523> wob_jonas: nested ABSTAIN (which is in C-INTERCAL expressed in terms of computed ABSTAIN)
12:20:56 <ais523> regular ABSTAIN is idempotent, with nested ABSTAIN if you ABSTAIN twice you need to REINSTATE twice to compensate
12:21:35 <ais523> and as usual in INTERCAL this doesn't need to nest properly, so you can just use it as a set of counters
12:21:54 <wob_jonas> I was thinking you'd STASH variables then <-#1 to them, and assume that the bottom-most copy of the variable is zero
12:22:13 <ais523> that's how INTERCAL-72 was proven TC I think
12:22:34 -!- amby has joined.
12:22:56 <wob_jonas> ah, because the indexes are normally finite, even though you can just have practically too large multi-dimensional arrays
12:25:48 <ais523> maximum size of a single array index is specified in the INTERCAL spec and maximum number of dimensions of an array is hardcoded in the program
12:28:08 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
12:29:04 <esolangs> [[Language list]] M https://esolangs.org/w/index.php?diff=168074&oldid=168012 * Eating-dinner * (+9) /* Non-alphabetic */
12:30:46 <wob_jonas> I wonder if there's something like INTERCAL that has no unbounded memory or just one unbounded stack, like the RESUME stack in INTERCAL, but does serial terminal I/O instead of only card reader, and you can turn it to Turing-complete by lacing a paper tape (of unbounded length) from the tape punch to the tape reader, and the tape reader has control
12:30:47 <wob_jonas> flow so the program can stop or start it (or it's constant speed but somehow much slower than the output terminal)
12:31:31 <wob_jonas> you could do something like that with two magnetic tape drives too, one writing and one reading
12:31:40 <esolangs> [[User:Eating-dinner]] N https://esolangs.org/w/index.php?oldid=168075 * Eating-dinner * (+39) Created page with "wait wat hello world i liek brainfuck"
12:32:04 <esolangs> [[67]] M https://esolangs.org/w/index.php?diff=168076&oldid=168060 * Eating-dinner * (+50) wait its me
12:32:24 <wob_jonas> in theory you can imagine it with a card punch and card reader, if you assume there's some mechanism that lets the buffer of cards between them grow to unbounded height
12:33:34 -!- tromp has joined.
12:34:46 <sorear> as if an unboundedly long pile of paper tape would not get tangled and break in the absence of "some mechanism" for spooling
12:37:19 <wob_jonas> these would count as a harder drive in the sense that Tom7 named
12:37:55 <wob_jonas> sorear: yeah, we'd probably need a double spiral spool in between
12:38:03 <wob_jonas> hmm no, double spiral wouldn't work
12:38:27 <wob_jonas> maybe just let it hang over a bottomless pit and make gravity sort it out
12:38:37 <wob_jonas> though eventually there'd be too much weight for the tape to hold
12:39:04 <sorear> the space elevator people would love to hear from you
12:41:15 <sorear> I suppose having it extend one-dimensionally is a feature in view of the hoop conjecture
12:47:00 <ais523> wob_jonas: I think there's a Malbolge variant that keeps the 59049-word memory space but is able to rewind and read its own output, in an attempt to make it TC
12:47:05 <ais523> oddly, thoug, it doesn't seem to be documented on teh wiki
12:51:19 <esolangs> [[67]] https://esolangs.org/w/index.php?diff=168077&oldid=168076 * Eating-dinner * (+68)
12:52:05 <esolangs> [[Malbolge]] https://esolangs.org/w/index.php?diff=168078&oldid=140945 * Ais523 * (+374) /* Computational class */ mention Malbolge-T
13:01:31 <sorear> have it feed back as _instructions_ so that you need a quine to have unbounded runtime
13:01:59 <ais523> that's basically the Muriel/SMITH family of languages
13:02:47 <ais523> I guess SMITH is closer
13:09:38 <sorear> smith's "read from program" primitive doesn't sound very quiney and muriel doesn't have a queue. i'm thinking more like document.write("<script>nextLine();</script>");
13:10:32 <ais523> well, SMITH has no control flow other than quining, so it needs a primitive that makes quines very easy in order to make it possible to quine without control flow instructions
13:11:38 <ais523> I guess for this to be in an interesting space, the quining behaviour has to be a) sufficiently difficult but b) still accomplishable without just writing a program normally and using quines to expand memory
13:12:33 <ais523> like, you can imagine a language where all arrays have hardcoded sizes and you have an exec() instruction to replace the entire program with a string literal starting from the start, but I'm not sure that that's too interesting because the techniques used to create the quine are very standard
13:13:17 <ais523> especially as you would probably do it by restarting all the computations so far rather than trying to preserve the intermediate state
13:13:42 <ais523> if you give it interactive I/O it's a bit more interesting because now you have to encode the previous user input in the quine, and avoid producing output you've already produced again
13:37:03 <esolangs> [[Talk:Looping counter]] https://esolangs.org/w/index.php?diff=168079&oldid=168053 * PkmnQ * (+137)
14:05:16 <wob_jonas> ais523: yes, Muriel doesn't really need a quine construct, because it has 26 named string variables where you can store a subroutine, and you can conditionally execute a subroutine based on a comparison. the conditional can be done with the substring builtin to either keep the whole string or empty it. this means you can program it sort of like dc,
14:05:17 <wob_jonas> with conditional subroutine calls as the loop construct. although you can build a quine using string concatenation, you don't need to do that for control flow reasons. if integers are bounded size then you may need to build strings with string concatenation just to store an unbounded amount of data, but you never need to use this for quining.
14:05:55 <wob_jonas> all the code can just survive in some named string variables that you never reassign after the start of the program
14:09:31 <esolangs> [[User:B jonas/List]] https://esolangs.org/w/index.php?diff=168080&oldid=167404 * B jonas * (+245) Muriel
14:23:13 <esolangs> [[Special:Log/newusers]] create * Evi the Eevee * New user account
14:53:22 -!- wob_jonas has quit (Quit: Client closed).
14:56:50 -!- ais523 has quit (Quit: sorry about my connection).
15:04:35 -!- ais523 has joined.
15:26:19 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
15:26:46 -!- Sgeo has joined.
15:49:42 <esolangs> [[TLQ]] https://esolangs.org/w/index.php?diff=168081&oldid=167773 * Yayimhere2(school) * (+111) /* Semantics */
15:53:55 <esolangs> [[TLQ]] https://esolangs.org/w/index.php?diff=168082&oldid=168081 * Yayimhere2(school) * (+2) /* Computational class */
16:00:44 -!- tromp has joined.
16:14:19 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
16:14:25 <esolangs> [[Square-like]] https://esolangs.org/w/index.php?diff=168083&oldid=168073 * Yayimhere2(school) * (+128) /* Examples */
16:15:31 <esolangs> [[Infinite Goto]] https://esolangs.org/w/index.php?diff=168084&oldid=167649 * Yayimhere2(school) * (-8) /* See also */
16:16:33 <esolangs> [[Square-like]] https://esolangs.org/w/index.php?diff=168085&oldid=168083 * Yayimhere2(school) * (+92) /* Syntax & semantics */
16:23:35 -!- Taneb has joined.
16:26:31 <esolangs> [[Fohc]] https://esolangs.org/w/index.php?diff=168086&oldid=84989 * Yayimhere2(school) * (-32) /* Implementation */ Deleted the PDA category as its comp class is unknown
16:28:57 -!- Lord_of_Life has quit (Ping timeout: 256 seconds).
16:29:29 -!- Lord_of_Life has joined.
16:30:24 -!- tromp has joined.
16:31:04 <esolangs> [[GotoStart Turing-completness proof]] https://esolangs.org/w/index.php?diff=168087&oldid=121526 * Yayimhere2(school) * (-5) /* BranchBlocks */
16:31:51 <esolangs> [[Talk:()NEST()]] https://esolangs.org/w/index.php?diff=168088&oldid=133600 * Aadenboy * (+976) please clarify
16:34:39 <esolangs> [[HTMHell]] https://esolangs.org/w/index.php?diff=168089&oldid=168008 * Hammy * (+580)
16:42:34 <esolangs> [[Hello++++]] https://esolangs.org/w/index.php?diff=168090&oldid=148695 * Hammy * (+191) /* Interpreters */
16:51:41 -!- impomatic has joined.
17:38:45 <esolangs> [[Tetrastack]] M https://esolangs.org/w/index.php?diff=168091&oldid=118750 * ThrowAwayLurker * (+6)
17:43:34 -!- Bowserinator_ has joined.
17:43:34 -!- Lord_of_Life_ has joined.
17:46:03 -!- sprout_ has joined.
17:46:21 -!- sprocket has joined.
17:47:15 <esolangs> [[Dd]] M https://esolangs.org/w/index.php?diff=168092&oldid=140962 * ThrowAwayLurker * (+36) Made sentences flow better. Replaced instances of [[blah]]s with [[blah|blahs]]. Minor punctuation changes. Minor clarity improvement.
17:50:48 -!- Lord_of_Life has quit (*.net *.split).
17:50:48 -!- Bowserinator has quit (*.net *.split).
17:50:48 -!- sprout has quit (*.net *.split).
17:50:48 -!- sprock has quit (*.net *.split).
17:50:49 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
17:57:57 <esolangs> [[Muxcomp]] M https://esolangs.org/w/index.php?diff=168093&oldid=19046 * ThrowAwayLurker * (+20) Added LaTeX. Made Wikipedia links to pages the Esolang Wiki has go to the Esolang Wiki instead of Wikipedia. Replaced signature at bottom with credit at top. Added categories.
18:04:48 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
18:22:47 <esolangs> [[Square-complete]] https://esolangs.org/w/index.php?diff=168094&oldid=142285 * Yayimhere2(school) * (-73) /* Isn't "Square-complete" is Turing-complete? */ Square completeness does not imply any of this. an FSA with input could most likely do all of these
18:25:19 -!- tromp has joined.
18:30:37 <esolangs> [[Square-like]] https://esolangs.org/w/index.php?diff=168095&oldid=168085 * Yayimhere2(school) * (+77) /* Examples */
18:31:14 <esolangs> [[Square-like]] https://esolangs.org/w/index.php?diff=168096&oldid=168095 * Yayimhere2(school) * (+62) /* Examples */
18:36:06 <esolangs> [[Square-like]] https://esolangs.org/w/index.php?diff=168097&oldid=168096 * Yayimhere2(school) * (-8) /* Syntax & semantics */
18:37:39 <esolangs> [[Square-like]] https://esolangs.org/w/index.php?diff=168098&oldid=168097 * Yayimhere2(school) * (+54) /* Syntax & semantics */
18:38:52 <esolangs> [[Square-like]] https://esolangs.org/w/index.php?diff=168099&oldid=168098 * Yayimhere2(school) * (+8) /* Syntax & semantics */
18:39:38 -!- b_jonas has joined.
18:39:44 <esolangs> [[Square-like]] https://esolangs.org/w/index.php?diff=168100&oldid=168099 * Yayimhere2(school) * (-1) /* Syntax & semantics */
19:03:23 -!- ais523 has quit (Quit: quit).
19:14:50 <esolangs> [[Patience]] N https://esolangs.org/w/index.php?oldid=168101 * ThrowAwayLurker * (+7198) Created page with "'''Patience''' is an esoteric programming language created by [[User:ThrowawayLurker]] in [[:Category:2025]]. Instructions and data are mixed together, stored on a [[queue]]. It has 6 primitive data types, including functionals, plus null. The code of a progra
19:16:22 <esolangs> [[Patience]] M https://esolangs.org/w/index.php?diff=168102&oldid=168101 * ThrowAwayLurker * (+0) /* Fizzbuzz */
19:21:13 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
19:36:33 -!- perlbot has quit (Quit: ZNC 1.9.1+deb2+b3 - https://znc.in).
19:36:33 -!- simcop2387 has quit (Quit: ZNC 1.9.1+deb2+b3 - https://znc.in).
19:39:17 -!- simcop2387 has joined.
19:42:48 -!- perlbot has joined.
20:30:16 <esolangs> [[Patience]] https://esolangs.org/w/index.php?diff=168103&oldid=168102 * ThrowAwayLurker * (+1918)
20:37:23 <esolangs> [[Strang]] https://esolangs.org/w/index.php?diff=168104&oldid=168024 * FluixMakesEsolangs * (-1) R
21:00:09 -!- Taneb has quit (Quit: Goodnight).
21:01:03 <esolangs> [[Topple/Topple 1/Source (C99)]] M https://esolangs.org/w/index.php?diff=168105&oldid=167256 * H33T33 * (+46)
21:02:59 <esolangs> [[Topple/Topple 1]] M https://esolangs.org/w/index.php?diff=168106&oldid=167909 * H33T33 * (+12)
21:13:49 <esolangs> [[!Assembly]] M https://esolangs.org/w/index.php?diff=168107&oldid=159221 * H33T33 * (+27)
21:18:13 <esolangs> [[Patience]] M https://esolangs.org/w/index.php?diff=168108&oldid=168103 * ThrowAwayLurker * (+372)
21:22:57 <esolangs> [[Patience]] M https://esolangs.org/w/index.php?diff=168109&oldid=168108 * ThrowAwayLurker * (+0)
21:28:03 <esolangs> [[Bliss]] N https://esolangs.org/w/index.php?oldid=168110 * H33T33 * (+529) Created page with "{{WIP}} Bliss is a language developed by [[User:H33T33]] in C++. It was developed to be more straightforward and less intricate than most other languages. While slightly more restrictive, it is a lot easier to read. =Quick Overview= ==Outputting== <pre> nprints "Hello," pr
21:51:35 <esolangs> [[User:RaiseAfloppaFan3925/Interpreters]] N https://esolangs.org/w/index.php?oldid=168111 * RaiseAfloppaFan3925 * (+3772) My interpreters for some languages
21:52:28 <esolangs> [[User:RaiseAfloppaFan3925]] M https://esolangs.org/w/index.php?diff=168112&oldid=167986 * RaiseAfloppaFan3925 * (+97) yes
21:57:05 -!- tromp has joined.
21:57:33 <esolangs> [[67]] https://esolangs.org/w/index.php?diff=168113&oldid=168077 * Eating-dinner * (+110)
21:57:39 <esolangs> [[User:Buckets]] M https://esolangs.org/w/index.php?diff=168114&oldid=168011 * Buckets * (+11) /* 2021 */
21:57:49 <esolangs> [[User:Buckets]] M https://esolangs.org/w/index.php?diff=168115&oldid=168114 * Buckets * (+1) /* Total of Esolangs */
21:58:54 <esolangs> [[Language list]] M https://esolangs.org/w/index.php?diff=168116&oldid=168074 * Buckets * (+12)
21:59:20 <esolangs> [[Staks]] N https://esolangs.org/w/index.php?oldid=168117 * Buckets * (+832) Created page with "Staks is an esoteric programming Language created By [[User:Buckets]] in 2021. {| class="wikitable" |- ! Commands !! Instructions |- | 1 || Push 1. |- | || Swap the Value And the Placement. |- | + || Add the Top Two "valuments". |- | - || Subtract the Top Two "valuments"(
22:00:57 <esolangs> [[67]] https://esolangs.org/w/index.php?diff=168118&oldid=168113 * Eating-dinner * (+189) /* 67 in 67 */
22:04:01 <esolangs> [[TernaryDigitPointer]] https://esolangs.org/w/index.php?diff=168119&oldid=167713 * QuoteDam!anquote * (+5028) corrected the pointer array so its (at least slighty) more comprehensible + spelled correctly
22:15:44 <esolangs> [[User:Buckets]] M https://esolangs.org/w/index.php?diff=168120&oldid=168115 * Aadenboy * (+6) /* 2022 */ fix unclosed big tag
22:18:06 -!- ais523 has joined.
22:45:37 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
22:58:14 -!- tromp has joined.
23:12:43 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
23:19:26 -!- [iovoid] has changed nick to iovoid.
23:31:31 -!- impomatic has quit (Quit: Client closed).
00:13:24 -!- ais523 has quit (Quit: quit).
00:31:43 -!- Melvar has quit (Ping timeout: 246 seconds).
00:45:51 -!- Melvar has joined.
01:49:25 -!- 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:38:13 <esolangs> [[Square-like]] https://esolangs.org/w/index.php?diff=168121&oldid=168100 * Yayimhere2(school) * (+60) /* Syntax & semantics */
03:49:33 <esolangs> [[Emmental]] https://esolangs.org/w/index.php?diff=168122&oldid=148993 * Yayimhere2(school) * (+115) /* See also */
05:08:49 <esolangs> [[User talk:Chris Pressey]] https://esolangs.org/w/index.php?diff=168123&oldid=90288 * Yayimhere2(school) * (+150) /* Controversial */
06:10:38 -!- Sgeo has quit (Ping timeout: 256 seconds).
06:19:12 -!- Sgeo has joined.
06:29:22 -!- Sgeo_ has joined.
06:30:37 -!- Sgeo has quit (Ping timeout: 264 seconds).
06:54:33 <esolangs> [[Apraxia]] N https://esolangs.org/w/index.php?oldid=168124 * Yayimhere2(school) * (+2953) Created page with "'''Apraxia''' is a [[Category:Pattern-based|pattern-based esolang]] created by [[User:Yayimhere]], after being disappointed by the use of the before mentioned term. In Apraxia, every string of length <code>1</code> is valid as code. Apraxia is quite complex c
06:58:39 <esolangs> [[Apraxia]] https://esolangs.org/w/index.php?diff=168125&oldid=168124 * Yayimhere2(school) * (+220)
07:02:11 -!- Sgeo_ has quit (Read error: Connection reset by peer).
07:09:54 <esolangs> [[User:Yayimhere]] https://esolangs.org/w/index.php?diff=168126&oldid=168057 * Yayimhere2(school) * (+14) /* esolangs */
07:14:24 <esolangs> [[Delta Relay]] M https://esolangs.org/w/index.php?diff=168127&oldid=154072 * ThrowAwayLurker * (+4) Changed punctuation and capitalization
07:16:54 <esolangs> [[Square-like]] https://esolangs.org/w/index.php?diff=168128&oldid=168121 * Yayimhere2(school) * (-5) /* Syntax & semantics */
07:17:49 <esolangs> [[ObjLang]] M https://esolangs.org/w/index.php?diff=168129&oldid=122882 * ThrowAwayLurker * (+31) Added distinguish to Obj
07:18:27 <esolangs> [[Obj]] M https://esolangs.org/w/index.php?diff=168130&oldid=139777 * ThrowAwayLurker * (+36) Added distinguish to ObjLang
07:33:12 -!- sprout_ has changed nick to sprout.
08:01:37 <esolangs> [[Square-like]] https://esolangs.org/w/index.php?diff=168131&oldid=168128 * Yayimhere2(school) * (+80) /* Syntax & semantics */
08:11:03 <esolangs> [[STABS-MOD]] N https://esolangs.org/w/index.php?oldid=168132 * Yayimhere2(school) * (+2072) Created page with "{{WIP}} '''STABS-MOD''', an acronym for "STAck Based String MODification language", is a language created based on an idea for a [[Minsky Machine]] translation into [[Square-like]]. It is quite the strange stack(well, dequeue) based language. It is currentl
08:13:46 <esolangs> [[STABS-MOD]] https://esolangs.org/w/index.php?diff=168133&oldid=168132 * Yayimhere2(school) * (+17) /* Commands */
08:13:59 <esolangs> [[STABS-MOD]] https://esolangs.org/w/index.php?diff=168134&oldid=168133 * Yayimhere2(school) * (+17) /* Commands */
08:15:30 <esolangs> [[STABS-MOD]] https://esolangs.org/w/index.php?diff=168135&oldid=168134 * Yayimhere2(school) * (-2) /* Commands */
08:40:19 -!- tromp has joined.
08:41:53 <esolangs> [[Square-like]] https://esolangs.org/w/index.php?diff=168136&oldid=168131 * Yayimhere2(school) * (+97) /* Syntax & semantics */
08:44:48 <esolangs> [[STABS-MOD]] https://esolangs.org/w/index.php?diff=168137&oldid=168135 * Yayimhere2(school) * (+93) /* Commands */
08:51:01 <esolangs> [[Notwise Cyclic Tag]] N https://esolangs.org/w/index.php?oldid=168138 * Yayimhere2(school) * (+421) Created page with "'''Notwise Cyclic Tag''' or '''NCT''' is a modified [[BCT]]. It was created to prove [[STABS-MOD]] turing complete. == NCT programs == A NCT program is any finite string of commands, executed as follows: {| class="wikitable" ! Symbol !! Meaning |-
09:41:39 <esolangs> [[Fillin]] N https://esolangs.org/w/index.php?oldid=168139 * Yayimhere2(school) * (+1172) Created page with "'''Fillin''' (pronounced \ii\) is an esolang created by [[User:Yayimhere]] after being dissatisfied by [[Square-like]], another esolang they made. Fillin functions by filling in its own program again and again. == Memory == Fillin has a stack. This stack is f
09:44:35 <esolangs> [[Fillin]] https://esolangs.org/w/index.php?diff=168140&oldid=168139 * Yayimhere2(school) * (+158) /* Leave */
09:45:03 <esolangs> [[Fillin]] https://esolangs.org/w/index.php?diff=168141&oldid=168140 * Yayimhere2(school) * (+44)
09:47:27 <esolangs> [[Fillin]] https://esolangs.org/w/index.php?diff=168142&oldid=168141 * Yayimhere2(school) * (+46) /* Commands */
09:48:24 <esolangs> [[Fillin]] https://esolangs.org/w/index.php?diff=168143&oldid=168142 * Yayimhere2(school) * (-146) /* Memory */
09:48:37 <esolangs> [[Fillin]] https://esolangs.org/w/index.php?diff=168144&oldid=168143 * Yayimhere2(school) * (-21) /* Commands */
10:01:11 -!- Taneb has joined.
10:02:06 <esolangs> [[Incident]] https://esolangs.org/w/index.php?diff=168145&oldid=67279 * Yayimhere2(school) * (+52) /* See also */
10:16:14 -!- Yayimhere has joined.
10:16:34 -!- Yayimhere has quit (Client Quit).
10:27:38 <esolangs> [[User:RaiseAfloppaFan3925]] https://esolangs.org/w/index.php?diff=168146&oldid=168112 * RaiseAfloppaFan3925 * (-2238)
10:42:51 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
10:50:44 -!- tromp has joined.
12:42:36 -!- amby has joined.