00:00:07 ais523: agreed 00:01:00 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 [[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 yeah, i'll probably add my interpreters when they're more than a preview, without asking first. 00:03:11 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 avih: ping palaiologos as well, he might be interested in that brainfuck speed test thingy 00:03:52 korvo: you are missing a generalisation, of interleaving rails 00:04:52 b_jonas: are they here sometimes? 00:05:00 ais523: Ah, so a program can have k distinct rails, sure. 00:05:13 I guess I should write an Esimpl-to-BF compiler as a sort of formalisation of this sort of thing 00:05:37 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 i didn't know of http://lvogel.free.fr/bf.html though, and i like it. 00:06:30 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 (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 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 (deamon with hanoi, but in mandelbrot i'm about 2x faster than it) 00:07:58 b_jonas: to ping someone you use the user talk page, not the userpage 00:08:03 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 people who are familiar with MediaWiki will know this but avih isn't 00:08:56 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 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:15 but you're right normally 00:09:38 b_jonas: that isn't installed on Esolang 00:09:40 oh nice, then you're still yet to learn about the base 9 thing 00:10:03 oh, that's not in this mediawiki installation? good to know 00:10:22 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 (we used to get a *lot* of spambots, but the current combination seems to be keeping them out so far) 00:11:08 ais523: really? what would spambots do with esolangs wiki?! 00:11:14 post spam on it 00:11:18 heh 00:11:26 it's what they do with everything else 00:11:53 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 spammers can freely choose where to put the computers that run stuff, and that makes power cheap 00:14:14 or steal them, so that they aren't paying for the power 00:15:26 is it a common thing with wikimedia? wikipedia? i don't think i've ever seen spam in wikimedia sites... 00:16:10 afaik the most painful these in recent years is scrapping 00:17:56 Wikipedia has a very good spam filter 00:18:52 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:20:18 yeah, i guess 00:25:25 [[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 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 (still proud of what it can do in 1k though :) ) 00:28:04 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:28:16 thanks again 00:29:31 avih: No worries. Eventually you can tackle Lost Kingdom! 00:30:00 oh, all of my interpreters could tackle that from v0.00001 :) 00:30:20 Nice. Lots of interpreters crash on that one. 00:30:33 including the 4 lines sh code i posted literally here in irc :) 00:30:48 -!- Lord_of_Life has joined. 00:31:49 you can jit it too: bf2c.sh < LostKingdom.b | tcc -run - /dev/tty (or "con" on windows) 00:33:33 (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 I should respect tcc more. I don't really use it much because I'm not a big C fan. 00:40:00 tcc is great. 00:40:37 see, playing with bf improves tcc :) 00:40:48 [[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 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 which comparison page? Laurent's? 00:45:27 (that's your link...) 00:46:32 The Google Code page. 00:46:53 [[Algebraic Brainfuck]] M https://esolangs.org/w/index.php?diff=167366&oldid=163679 * Corbin * (+26) /* Computability */ Bluelink. 00:47:57 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 I was just going off the URL, that's all. 00:48:42 yeah, it's good. very nice. 00:49:33 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 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 korvo: remind me, is your interpreter using any 3rd party jit? 00:51:56 (other than rpython itself) 00:52:22 like gnu Lightning or other assemblers? 00:52:45 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 feels like lisp 00:53:46 except higher level :) 00:53:46 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 I like defining this sort of mathematical structure by showing the rules it has with a familiar example 00:54:12 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 but those are the only rules, so the operation doesn't have to act like + and 0 in other respects 00:55:08 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 (I don't quite mean "defining" but "explaining") 00:55:23 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 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 (unlike, for instance, c code which uses Lightning) 00:56:57 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 korvo: that's nice. i like that approach best ("normal" code in an efficient platform) 00:58:38 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 ais523: korvo: thanks for the monoids info, i'll look into the esolangs page (or elsewhere) later. cheers. 00:59:14 No worries! Welcome to abstract algebra. It's fun times. 00:59:33 (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 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 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 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 oh yeah, this channel sometimes does category theory for some reason 01:02:47 It's me, I'm the reason. 01:03:05 lol 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 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:04:51 :) 01:09:27 i really like promises https://github.com/avih/nopromise/blob/master/nopromise.js 01:09:41 eh.. https://github.com/avih/nopromise 01:10:39 there's a pico version too 01:12:20 I think all mathematicians do that sometimes, just with different tools that they're familiar with, not category theory in particular 01:13:34 sometimes you know a deep theory that feels like it explains the simple proof better than the more elementary phrasing 01:17:09 [[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 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 this is at best a guide for what kind of proof you should be looking for. 01:19:14 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:19:55 (looking) 01:21:05 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 it's not small... (i think 01:21:08 ) 01:22:34 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 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:05 used* 01:23:40 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 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 (i never liked it too much TBH. it works, but it requires too much infrastructure for my taste) 01:24:42 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 right. i think c++ code can suffer too from that, but i'm not very experienced in it 01:26:53 sounds nice and fun (the AST promise thing) 01:27:04 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:27:44 :) 01:28:05 you can get the dev out of X, but not the X out of the dev :) 01:29:09 i played with go a bit. it's nice. but then again, it's pike... 01:29:53 (not dart though) 01:35:57 [[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 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 [[Gur yvsr]] M https://esolangs.org/w/index.php?diff=167369&oldid=167270 * Placeholding * (+30) 03:34:30 [[Gur yvsr]] https://esolangs.org/w/index.php?diff=167370&oldid=167369 * Placeholding * (+93) 03:40:44 b_jonas: i think that's an RC1 https://0x0.st/KL4p.txt 03:41:40 (fit limiting the #include to windows-only if binary IO is enabled) 03:41:54 .h 03:43:29 (otherwise only the comment is modified) 03:44:24 i did have to remove one newline though, but it's not too bad. 03:44:35 it's exactly 1024 :) 03:47:10 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 [[Baulk]] https://esolangs.org/w/index.php?diff=167371&oldid=167273 * Yayimhere2(school) * (+41) 04:18:06 [[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 Can JIT be effective for emulating instruction sets that have tagged memory? 04:49:18 [[Baulk]] https://esolangs.org/w/index.php?diff=167373&oldid=167372 * Yayimhere2(school) * (+2) /* Examples */ 04:51:44 [[Baulk]] https://esolangs.org/w/index.php?diff=167374&oldid=167373 * Yayimhere2(school) * (+198) /* Full description */ 04:51:55 [[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 [[Baulk]] https://esolangs.org/w/index.php?diff=167376&oldid=167375 * Yayimhere2(school) * (-36) /* Full description */ 06:02:25 [[CARP]] M https://esolangs.org/w/index.php?diff=167377&oldid=166735 * TheCanon2 * (+8) Assembly change 06:02:44 [[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. 07:27:08 Hi 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 [[BF instruction minimalization]] https://esolangs.org/w/index.php?diff=167379&oldid=167361 * Esolangist * (+831) /* User:Esolangist's attempts */ 09:53:15 ^help 09:53:15 ^ ; ^def ; ^show [command]; lang=bf/ul, code=text/str:N; ^str 0-9 get/set/add [text]; ^style [style]; ^bool 09:53:56 ^ul (Hello, world!)S 09:53:56 Hello, world! 09:57:03 ^ul (Hello, world!)a(S)*^ 09:57:03 Hello, world! 09:59:19 ^bf -[>+<-----]>+. 09:59:19 4 10:03:07 ^bf ++++++++[>+++++++++<-]>.+.>++++++++[>++++<-]>+. 10:03:07 HI! 10:14:43 g'day 10:19:57 -!- esolangist has quit (Quit: Client closed). 10:20:24 [[Talk:Burn]] https://esolangs.org/w/index.php?diff=167380&oldid=167349 * Ais523 * (+166) /* Name */ because cell updates are irreversible 10:35:09 ^egel 42 10:35:16 boo 10:43:58 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 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 yeah. HackEso knows other languages, and at one point I considered setting up an egel interpreter but I didn't finish. 10:49:21 but it's a sandbox so if you want you can set up an egel interpreter on it 11:10:10 [[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 [[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===
 > rotates the wheel right (current 
11:59:27  [[Special:Log/upload]] upload  * Esolangist alt *  uploaded "[[File:Brainturn wheel.png]]"
12:09:41  [[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 +]] 
 +  rotate the wheel left, moving the "wheel pointer" to the right -  rotate the wheel righ
12:10:00  [[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  why is nobody editing pages on the wiki
13:12:46  there were edits earlier
13:12:57  I guess it's just that most people are doing other things atm
13:13:24  in fact you left this channel a minute before an edit and joined 7 minutes afterwards
13:15:34  [[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  [[Self++]]  https://esolangs.org/w/index.php?diff=167387&oldid=166959 * H33T33 * (+118) 
14:57:35  [[Self++]]  https://esolangs.org/w/index.php?diff=167388&oldid=167387 * H33T33 * (+364) 
14:59:37  [[Self++]] M https://esolangs.org/w/index.php?diff=167389&oldid=167388 * H33T33 * (-54) 
15:04:51 -!- esolangist has joined.
15:07:57  [[Talk:Unicoding]]  https://esolangs.org/w/index.php?diff=167390&oldid=158883 * Esolangist * (+252) /* idea */ new section
15:09:40  [[Talk:Unicoding]]  https://esolangs.org/w/index.php?diff=167391&oldid=167390 * Esolangist * (+125) /* idea */
15:12:38  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  [[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  [[User:CollaborativePL]]  https://esolangs.org/w/index.php?diff=167393&oldid=164612 * Esolangist * (+148) 
15:42:29  [[User:Flashgutten]]  https://esolangs.org/w/index.php?diff=167394&oldid=163324 * Flashgutten * (+30) /* Code Code Code Code */
15:48:35  [[User:CollaborativePL]] is a joke user created just to justify the user page. I'm going to move it to main.
15:49:19  [[Special:Log/move]] move  * Corbin *  moved [[User:CollaborativePL]] to [[CollaborativePL]]: Languages go in the main namespace.
15:50:00  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  [[User:PrySigneToFry/Discussion]]  https://esolangs.org/w/index.php?diff=167397&oldid=150847 * Esolangist * (+246) 
15:56:05  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  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:49  ^ul (Hello, world!)S
15:56:49  Hello, world!
15:56:51  especially since you were already running a dedicated IRC bot evaluating egel
15:58:19  there's probably something about this in the logs
15:59:17  [[Special:Log/delete]] delete  * Ais523 *  deleted "[[User:CollaborativePL]]": not a user page, and not created by the relevant user
16:00:45  oh, the logs suggest that I also had to patch out references to libicu
16:00:57  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:28  ...
16:01:34  I think I made it even harder to compile since that by adding a aot phase
16:01:35  [[User:PrySigneToFry/Discussion]]  https://esolangs.org/w/index.php?diff=167398&oldid=167397 * Aadenboy * (+450) /* ULTRA IMPORTANT!!! */ context
16:01:43  *since then
16:01:47  what does "aot" mean?
16:01:56  ahead of time
16:02:24  not a jit but an ahead of time phase
16:02:37  https://logs.esolangs.org/freenode-esoteric/2020-02.html#ltH shows where I used the standalone irc bot that you ran
16:02:57  some binding to liblightning that may or may not ship with your os
16:04:36  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  I've done that with some library earlier, I'm not sure which one, probably libperl-date-manip
16:05:56  meh. egel is a succesful experiment with regard to trying out a different operational semantics but a failure as a language
16:06:47  the interpreter just kinda stuck after I showed the evaluation mechanism works
16:07:06  `` rustc --version
16:07:08  ​/hackenv/bin/`: line 5: rustc: command not found
16:07:47  `` gcc --version
16:07:49  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  [[User:PrySigneToFry/Discussion]] M https://esolangs.org/w/index.php?diff=167399&oldid=167398 * Aadenboy * (+10) /* ULTRA IMPORTANT!!! */ clarification
16:10:09  debian would make stuff hard. I got too used to fedora that just ships with all dependencies out of the box
16:10:18  ah well
16:10:45  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  korvo: actually they more often end up like HQ9+
16:11:16  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  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  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  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  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  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  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  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:29  editing documentation\
16:18:53  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  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  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  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  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  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:01  yes
16:26:16  or, well, the lack of commands is the point, it wouldn't be interesting if it had more
16:27:33  wob_jonas: Oh, interesting. Maybe it's related to the extensible-language movement?
16:28:08  yes. for some languages like Egel you can add a library with new functions, implemented in either egel or native code
16:28:24  korvo: what is related to the extensible-langauge movement? I don't understand your question
16:31:48  [[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  [[BF instruction minimalization]]  https://esolangs.org/w/index.php?diff=167401&oldid=167381 * Esolangist * (+183) /* User:Esolangist's attempts */
16:32:40  [[BF instruction minimalization]]  https://esolangs.org/w/index.php?diff=167402&oldid=167401 * Esolangist * (+2) /* Step 1: Randomization is key */
16:44:27  korvo: I tried looking at Quorum but couldn't figure out how it works from the documentation
16:44:51  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  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  e.g. it mentioned that classes can be instantiated but doesn't explain what that does
16:45:43  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  what's this and why is it not on the wiki?
16:47:24  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  wob_jonas: if you're talking about Quorum I don't think it's an esolang, except possibly by accidenet
16:48:41  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  the docs seem to be (intentionally?) hiding a lot of details
16:49:24  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  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  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  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  korvo: Java static fields can be modified, though
16:50:09  ais523: Oh, I'm thinking of Java `final`, whoops. I think both PHP and Quorum use `final` too?
16:50:25  korvo: that sounds like a crazy premise
16:50:37  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  wob_jonas: I've looked at research into keyword names that are understandable for both programmers and non-programmers
16:51:24  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  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  (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  hello peers(is that a valid term? oh well)
17:07:34 -!- pool has joined.
17:11:26  Yayimhere: I think it's valid but people don't normally use it in that context
17:11:37  ais523: thanks!
17:19:30  could I perhaps ask for some help formalizing a command?
17:20:21  you can say what you're stuck on and see if anyone responds
17:20:36  although I'm not sure whether I'm personally up to it right now
17:21:03  i wanst asking anyone particular, I was just wondering if it was appropriate for this channel
17:22:31  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  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  [[Self++]] M https://esolangs.org/w/index.php?diff=167403&oldid=167389 * H33T33 * (+79) 
17:53:25  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  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  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  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  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  don't Shakespeare's gotos change form depending on whether they jump forwards or backwards?
18:03:13  b_jonas: does C4 run on its own after that? or not?
18:03:14  I don't know, I was thinking of Chef's loops
18:03:34  I remember this being a big problem for Funge-98's y instruction
18:03:42  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:03:56  this is algorithm 5.2.C 
18:04:09  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  (except if the argument to y is 0, when it gets skipped for some reason – y is weird)
18:04:30  err. is this k rather than y?
18:04:34  my befunge is rusty
18:05:57  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  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  I wonder how prevalent comefrom-style loops are nowadays
18:11:01  even in non-programming contexts
18:11:53  I think the non-programming contexts mostly don't use line labels
18:13:00  well, they use 
    -style lists fairly often, which come with built in list item labels to refer to 18:18:38 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 I think it uses identifiers that are one-character long only 18:20:38 also many but not all keywords and identifiers are non-ascii 18:21:42 -!- tromp has joined. 18:22:13 I think I found it, it's https://esolangs.org/wiki/SCOOP 18:26:13 [[User:B jonas/List]] https://esolangs.org/w/index.php?diff=167404&oldid=159727 * B jonas * (+160) [[SCOOP]] 18:28:16 cu 18:44:58 [[BF instruction minimalization]] https://esolangs.org/w/index.php?diff=167405&oldid=167402 * Esolangist alt * (+3) Esolangist alt 18:49:16 [[User:Esolangist/personal talk page]] https://esolangs.org/w/index.php?diff=167406&oldid=167122 * Esolangist alt * (+202) Esolangist alt 18:51:52 [[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 [[User:Esolangist/Template:EsolangistsSignature]] N https://esolangs.org/w/index.php?oldid=167408 * Esolangist alt * (+174) Created page with "[[User:Esolangist|esolangist]] | [[User talk:Esolangist|do you want to talk to me?]] | it's {{{Time}}} on {{{Date}}}" 20:44:11 [[What are the commands]] N https://esolangs.org/w/index.php?oldid=167409 * Esolangist alt * (+652) Esolangist alt 20:58:21 [[Self-reproducing object]] N https://esolangs.org/w/index.php?oldid=167410 * Corbin * (+2130) Stub a GEB concept. 21:09:09 [[InterpretIt]] N https://esolangs.org/w/index.php?oldid=167411 * Esolangist alt * (+1156) Esolangist alt 21:12:45 [[User:RaiseAfloppaFan3925]] M https://esolangs.org/w/index.php?diff=167412&oldid=167326 * RaiseAfloppaFan3925 * (-1199) 21:15:06 [[Self-reproducing object]] https://esolangs.org/w/index.php?diff=167413&oldid=167410 * Corbin * (+570) Redlink for ganguines. 21:21:54 [[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 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 Which esolangs use character sets which are not compatible with Unicode, ASCII, EBCDIC, Morse code, Baudot code, and punch cards? 21:39:12 zzo38: that mostly sounds like esolangs whose input isn't characters, like Piet or efghij 21:41:02 Yes, although I did not mean that, since pictures and that other stuff are not character sets. 21:41:37 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 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 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 you have to enter them as one character, usually with a modifier key 21:45:58 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:17 do you count these? 21:46:47 Yes, those would count. 21:47:39 (Although not quite in the way I meant, they still count in a somewhat different way.) 21:48:16 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 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 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 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 [[Talk:Burn]] https://esolangs.org/w/index.php?diff=167415&oldid=167380 * Tommyaweosme * (+532) /* Thoughts on burn */ 22:11:41 [[User:Tommyaweosme]] https://esolangs.org/w/index.php?diff=167416&oldid=167265 * Tommyaweosme * (+565) 22:18:03 [[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.