←2021-08-21 2021-08-22 2021-08-23→ ↑2021 ↑all
00:13:13 <esolangs> [[Broken Calculator]] https://esolangs.org/w/index.php?diff=87475&oldid=87467 * PixelatedStarfish * (-85)
00:49:49 <esolangs> [[Broken Calculator]] https://esolangs.org/w/index.php?diff=87476&oldid=87475 * PixelatedStarfish * (+130)
00:50:05 <esolangs> [[Broken Calculator]] https://esolangs.org/w/index.php?diff=87477&oldid=87476 * PixelatedStarfish * (+2) /* Memory */
00:52:07 <esolangs> [[Broken Calculator]] https://esolangs.org/w/index.php?diff=87478&oldid=87477 * PixelatedStarfish * (+72) /* Broken Truth Machine */
00:52:23 <esolangs> [[Broken Calculator]] https://esolangs.org/w/index.php?diff=87479&oldid=87478 * PixelatedStarfish * (+0) /* Accumulator Test */
00:54:52 <esolangs> [[Broken Calculator]] https://esolangs.org/w/index.php?diff=87480&oldid=87479 * PixelatedStarfish * (+71)
00:56:26 <esolangs> [[Broken Calculator]] https://esolangs.org/w/index.php?diff=87481&oldid=87480 * PixelatedStarfish * (+46)
00:56:42 <esolangs> [[Broken Calculator]] https://esolangs.org/w/index.php?diff=87482&oldid=87481 * PixelatedStarfish * (-2)
01:00:17 -!- impomatic has quit (Quit: impomatic).
01:00:39 -!- impomatic has joined.
01:04:48 -!- impomatic has quit (Client Quit).
01:05:11 -!- impomatic has joined.
01:12:27 <esolangs> [[Broken Calculator]] https://esolangs.org/w/index.php?diff=87483&oldid=87482 * PixelatedStarfish * (+434) /* Grammar */
01:13:05 <esolangs> [[Broken Calculator]] https://esolangs.org/w/index.php?diff=87484&oldid=87483 * PixelatedStarfish * (+0) /* Grammar */
01:13:37 <esolangs> [[Broken Calculator]] https://esolangs.org/w/index.php?diff=87485&oldid=87484 * PixelatedStarfish * (+2) /* Grammar */
01:13:51 <esolangs> [[Broken Calculator]] https://esolangs.org/w/index.php?diff=87486&oldid=87485 * PixelatedStarfish * (+4) /* Grammar */
01:15:15 <esolangs> [[Broken Calculator]] https://esolangs.org/w/index.php?diff=87487&oldid=87486 * PixelatedStarfish * (+68) /* Grammar */
01:16:50 <esolangs> [[Broken Calculator]] https://esolangs.org/w/index.php?diff=87488&oldid=87487 * PixelatedStarfish * (+30) /* Syntax */
01:17:29 <esolangs> [[Broken Calculator]] https://esolangs.org/w/index.php?diff=87489&oldid=87488 * PixelatedStarfish * (+4) /* Broken Truth Machine */
01:17:42 <esolangs> [[Broken Calculator]] https://esolangs.org/w/index.php?diff=87490&oldid=87489 * PixelatedStarfish * (+4) /* Broken Hello World */
01:18:10 <esolangs> [[Broken Calculator]] https://esolangs.org/w/index.php?diff=87491&oldid=87490 * PixelatedStarfish * (+4) /* Accumulator Test */
01:18:20 <esolangs> [[Broken Calculator]] https://esolangs.org/w/index.php?diff=87492&oldid=87491 * PixelatedStarfish * (-4) /* Accumulator Test */
01:19:21 <esolangs> [[Broken Calculator]] https://esolangs.org/w/index.php?diff=87493&oldid=87492 * PixelatedStarfish * (+1)
01:20:09 <esolangs> [[Broken Calculator]] https://esolangs.org/w/index.php?diff=87494&oldid=87493 * PixelatedStarfish * (-4) /* Instructions */
01:20:36 <esolangs> [[Broken Calculator]] https://esolangs.org/w/index.php?diff=87495&oldid=87494 * PixelatedStarfish * (+6) /* Grammar in EBNF */
02:05:45 <oerjan> . o O ( broken preview button )
02:20:17 -!- impomatic has quit (Quit: impomatic).
02:20:38 -!- impomatic has joined.
02:24:48 -!- impomatic has quit (Client Quit).
02:25:09 -!- impomatic has joined.
03:20:10 -!- spruit11 has quit (Ping timeout: 240 seconds).
03:27:15 -!- spruit11 has joined.
03:33:34 -!- impomatic has quit (Quit: impomatic).
04:30:48 -!- impomatic has joined.
04:32:42 -!- impomatic has quit (Client Quit).
04:48:13 <esolangs> [[Matrixfuck]] M https://esolangs.org/w/index.php?diff=87496&oldid=87390 * Heptor * (+27)
04:48:44 <esolangs> [[Matrixfuck]] M https://esolangs.org/w/index.php?diff=87497&oldid=87496 * Heptor * (-137) /* Implementations */
04:49:31 <esolangs> [[Matrixfuck]] M https://esolangs.org/w/index.php?diff=87498&oldid=87497 * Heptor * (+1) /* Implementation notes */
04:50:57 -!- oerjan has quit (Quit: Nite).
04:51:56 <esolangs> [[Matrixfuck]] https://esolangs.org/w/index.php?diff=87499&oldid=87498 * Heptor * (+54) /* Syntax */
04:53:04 <esolangs> [[Matrixfuck]] https://esolangs.org/w/index.php?diff=87500&oldid=87499 * Heptor * (-825) /* Implementation notes */
04:53:55 <esolangs> [[Matrixfuck]] https://esolangs.org/w/index.php?diff=87501&oldid=87500 * Heptor * (+111) /* Implementation notes */
04:58:22 <esolangs> [[User:Heptor]] N https://esolangs.org/w/index.php?oldid=87502 * Heptor * (+62) Created page with "hello i exist if you need me talk to me on discord: @balt#6423"
04:58:31 <esolangs> [[User:Heptor]] https://esolangs.org/w/index.php?diff=87503&oldid=87502 * Heptor * (+1)
06:20:49 -!- src has quit (Quit: Leaving).
07:09:10 -!- impomatic has joined.
07:21:55 -!- impomatic has quit (Ping timeout: 268 seconds).
08:05:13 -!- hendursa1 has joined.
08:07:57 -!- hendursaga has quit (Ping timeout: 244 seconds).
08:33:25 <esolangs> [[Special:Log/newusers]] create * UiOpL4504 * New user account
08:37:00 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=87504&oldid=87457 * UiOpL4504 * (+76)
08:37:46 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=87505&oldid=87504 * UiOpL4504 * (+79)
08:57:22 -!- Sgeo has quit (Ping timeout: 252 seconds).
08:58:36 -!- immibis has joined.
09:29:22 -!- imode has quit (Ping timeout: 250 seconds).
09:55:49 -!- mnrmnaugh has quit (Quit: Leaving).
10:12:25 -!- Koen_ has joined.
12:12:07 -!- arseniiv has joined.
12:12:34 <arseniiv> `? password
12:12:37 <HackEso> The password of the month is too long for this irc message
12:13:03 <arseniiv> I seem to be back if someone wondered!
13:07:51 -!- arseniiv has quit (Ping timeout: 268 seconds).
13:11:09 <riv> wb!
13:11:32 <riv> it has been quiet here
13:17:11 -!- src has joined.
13:18:02 -!- arseniiv has joined.
13:33:33 -!- riv has quit (Quit: Leaving).
13:35:17 -!- riv has joined.
13:35:49 -!- riv has quit (Client Quit).
13:59:40 -!- arseniiv has quit (Ping timeout: 268 seconds).
14:08:30 -!- Koen__ has joined.
14:10:52 -!- Koen_ has quit (Ping timeout: 252 seconds).
14:18:27 -!- arseniiv has joined.
14:40:46 -!- delta23 has joined.
15:15:13 -!- arseniiv has quit (Ping timeout: 252 seconds).
15:32:26 -!- arseniiv has joined.
16:02:30 -!- riv has joined.
16:03:38 -!- ais523 has joined.
16:39:40 -!- arseniiv has quit (Ping timeout: 250 seconds).
16:56:41 -!- mnrmnaugh has joined.
16:56:46 -!- mnrmnaugh has quit (Remote host closed the connection).
17:11:56 -!- arseniiv has joined.
17:54:32 <esolangs> [[Special:Log/upload]] upload * Dominicentek * uploaded "[[File:Keyboardsmash numbers.png]]"
17:58:37 -!- Koo has joined.
17:58:42 -!- Koo has left.
18:00:38 <esolangs> [[Broken Calculator]] https://esolangs.org/w/index.php?diff=87507&oldid=87495 * PixelatedStarfish * (+180) /* Crash Probability Formula */
18:01:30 <esolangs> [[Broken Calculator]] https://esolangs.org/w/index.php?diff=87508&oldid=87507 * PixelatedStarfish * (+15) /* Crash Probability Formula */
18:02:58 <esolangs> [[Broken Calculator]] https://esolangs.org/w/index.php?diff=87509&oldid=87508 * PixelatedStarfish * (+51) /* Crash Probability Formula */
18:03:45 <esolangs> [[Broken Calculator]] https://esolangs.org/w/index.php?diff=87510&oldid=87509 * PixelatedStarfish * (+8) /* Crash Probability Formula */
18:06:27 <esolangs> [[Broken Calculator]] https://esolangs.org/w/index.php?diff=87511&oldid=87510 * PixelatedStarfish * (-27) /* Crash Probability Formula */
18:07:02 <esolangs> [[Broken Calculator]] https://esolangs.org/w/index.php?diff=87512&oldid=87511 * PixelatedStarfish * (-12) /* Crash Probability Formula */
18:10:34 <Corbin> Hm. Is it just me, or could Broken Calculator be generalized? It doesn't seem like the underlying deterministic language has constructs which influence crash probability.
18:15:55 <ais523> it might be interesting to generalize it in a way where you could reduce crash probability rapidly enough that it didn't reach 1 in the limit
18:16:08 <Corbin> Ha, yeah, thinking the same thing.
18:19:00 * APic grins magically.
18:21:57 <b_jonas> a magical grin? like that of a Cheshire caRT?
18:21:59 <b_jonas> a magical grin? like that of a Cheshire cat?
18:28:07 <esolangs> [[Broken Calculator]] https://esolangs.org/w/index.php?diff=87513&oldid=87512 * PixelatedStarfish * (+477) /* Crash Probability Formula */
18:29:30 <esolangs> [[Broken Calculator]] https://esolangs.org/w/index.php?diff=87514&oldid=87513 * PixelatedStarfish * (+56) /* Crash Probability Formula */
18:30:10 <esolangs> [[Broken Calculator]] https://esolangs.org/w/index.php?diff=87515&oldid=87514 * PixelatedStarfish * (-215) /* Crash Probability Formula */
18:34:56 <esolangs> [[Broken Calculator]] https://esolangs.org/w/index.php?diff=87516&oldid=87515 * PixelatedStarfish * (+141) /* Crash Probability Formula */
19:12:14 <esolangs> [[Broken Calculator]] https://esolangs.org/w/index.php?diff=87517&oldid=87516 * PixelatedStarfish * (+1322)
19:12:52 <esolangs> [[Broken Calculator]] https://esolangs.org/w/index.php?diff=87518&oldid=87517 * PixelatedStarfish * (-3) /* Instructions */
19:14:02 <esolangs> [[Broken Calculator]] https://esolangs.org/w/index.php?diff=87519&oldid=87518 * PixelatedStarfish * (-151)
19:14:36 <esolangs> [[Broken Calculator]] https://esolangs.org/w/index.php?diff=87520&oldid=87519 * PixelatedStarfish * (+42) /* External Links */
19:15:24 <esolangs> [[Broken Calculator]] https://esolangs.org/w/index.php?diff=87521&oldid=87520 * PixelatedStarfish * (+2)
19:15:28 -!- hendursa1 has quit (Quit: hendursa1).
19:15:38 -!- Sgeo has joined.
19:15:55 -!- hendursaga has joined.
19:16:17 <esolangs> [[Broken Calculator]] https://esolangs.org/w/index.php?diff=87522&oldid=87521 * PixelatedStarfish * (+32)
19:17:45 <esolangs> [[User:PixelatedStarfish]] https://esolangs.org/w/index.php?diff=87523&oldid=87141 * PixelatedStarfish * (+29) /* Esolangs */
19:20:07 <esolangs> [[User:PixelatedStarfish]] https://esolangs.org/w/index.php?diff=87524&oldid=87523 * PixelatedStarfish * (+149) /* Broken Calculator */
19:21:30 <esolangs> [[Broken Calculator]] https://esolangs.org/w/index.php?diff=87525&oldid=87522 * PixelatedStarfish * (+24) /* External Links */
19:21:40 <esolangs> [[Broken Calculator]] https://esolangs.org/w/index.php?diff=87526&oldid=87525 * PixelatedStarfish * (+2) /* External Links */
19:21:47 <esolangs> [[Broken Calculator]] https://esolangs.org/w/index.php?diff=87527&oldid=87526 * PixelatedStarfish * (+0) /* External Links */
19:22:49 <esolangs> [[Broken Calculator]] https://esolangs.org/w/index.php?diff=87528&oldid=87527 * PixelatedStarfish * (+68) /* External Links */
19:22:57 <esolangs> [[Broken Calculator]] https://esolangs.org/w/index.php?diff=87529&oldid=87528 * PixelatedStarfish * (+0) /* External Links */
19:23:05 <esolangs> [[Broken Calculator]] https://esolangs.org/w/index.php?diff=87530&oldid=87529 * PixelatedStarfish * (+0) /* External Links */
19:23:34 <esolangs> [[Broken Calculator]] https://esolangs.org/w/index.php?diff=87531&oldid=87530 * PixelatedStarfish * (+0) /* External Links */
19:25:23 <esolangs> [[Truth-machine]] https://esolangs.org/w/index.php?diff=87532&oldid=87357 * PixelatedStarfish * (+164) /* BRASCA */
19:36:28 -!- arseniiv has quit (Ping timeout: 252 seconds).
19:42:59 -!- Lord_of_Life_ has joined.
19:43:24 -!- Lord_of_Life has quit (Ping timeout: 250 seconds).
19:44:16 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
19:50:30 <Corbin> What's the proper register for talking about this community? I wanted to say something like "our definition contrasts with the other wiki"; how should I say "our" and "the other wiki"?
19:51:55 -!- imode has joined.
19:54:24 <zzo38> I should think that you should mention what other wiki it is.
19:57:36 <Corbin> It's not always English Wikipedia? Which other wikis do we have configured? I'm happy to learn; I'm used to communities where "the other wiki" is always WP.
20:00:08 <myname> why not just name it wikipedia? it's clearer and shorter
20:05:48 <int-e> yeah, esowiki and wikipedia
20:06:19 <int-e> This isn't a Voldemort situation.
20:07:31 <riv> lol
20:09:09 <int-e> (Which may be the case for some wikis that only exist because Wikipedia deletes the contest for lack of relevance... I think we're in agreement that esoteric programming languages are a fringe topic.)
20:09:18 <int-e> contest -> contents
20:11:13 <esolangs> [[Functionality]] https://esolangs.org/w/index.php?diff=87533&oldid=87187 * Dominicentek * (-39)
20:12:44 <Corbin> I'm an inclusionist, so I don't really like that way of thinking about things. I think that wiki federation is more about diffusion of power and responsibility, since some topics can require specialized moderation approaches.
20:12:46 <int-e> I guess we do say "the wiki" for esowiki here.
20:14:13 <myname> you don't like calling things by their name?
20:15:20 <Corbin> No, I mean that I disagree with the idea that it's okay for WP to delete lots of stuff, and that fringe wikis should therefore exist.
20:15:34 <Corbin> I have no problem talking about things using commonly-accepted names. I'm asking what those names are!
20:16:16 <int-e> WP wants to be an online encyclopedia with trustworthy contents. You can't have that and free for all topic selection. Which is fine to me, there's plenty of other venues. So... definitely not my fight.
20:17:16 <Koen__> yeah, I don't want a disambiguation page on wikipedia for "the tin can" - "the tin can is an item that can be picked up in the kitchen of the restaurant in level 54 of some obscure video game"
20:17:54 <Koen__> but if there's a thisobscurevideogame.wiki.org then a "tin can_(item)" page is welcome
20:21:47 -!- chiselfuse has joined.
20:22:32 <Corbin> Going to be polite and assume that y'all have not actually seen how deletionism acts on WP. It's a censorship mechanism used by patrician administrators to avoid culturally-inconvenient topics at best, and to remove entire subcultures at worst.
20:22:58 <Corbin> NGL, your attitudes kind of destroyed my gumption. I'm going to go get some pizza and try again later.
20:25:35 <int-e> ?!
20:25:35 <lambdabot> Maybe you meant: v @ ? .
20:26:03 <int-e> I guess I'm sorry for not sharing your hostility towards Wikipedia?! This took a really strange turn...
20:31:11 <esolangs> [[Broken Calculator]] https://esolangs.org/w/index.php?diff=87534&oldid=87531 * PixelatedStarfish * (+43) /* External Links */
20:31:33 <esolangs> [[Broken Calculator]] https://esolangs.org/w/index.php?diff=87535&oldid=87534 * PixelatedStarfish * (+26) /* External Links */
20:31:43 <ais523> int-e: Esolang is at least partially a method of giving somewhere to put esolang articles that are unacceptable for Wikipedia
20:32:11 <ais523> this arrangement seems, in practice, to be beneficial to everyone involved (Esolang, Wikipedia, and people interested in the language)
20:34:14 <esolangs> [[Broken Calculator]] https://esolangs.org/w/index.php?diff=87536&oldid=87535 * PixelatedStarfish * (+353)
20:36:12 <int-e> Heh I didn't even know about https://en.wikipedia.org/wiki/Esoteric_programming_language ...obviously one could argue at length about which languages should have the privilege of being listed there
20:37:39 <int-e> But it has a pretty good list of early and influential ones, I think.
20:42:18 <int-e> ais523: Anyway, I agree that it's a good arrangement, and my impression is that for the most part, people are happy with it. *shrugs*
20:43:52 <nakilon> this page is awful in so many ways https://en.wikipedia.org/wiki/List_of_programming_languages_by_type
20:44:35 <myname> "curly-bracked languages" :D
20:49:34 <b_jonas> it's a good arrangement, but I'm also glad that at least a few occasionally chunks of junk get deleted from the esowiki too. I just looked up one of the notorious ones that was there for at least a year, and I'm delighted to see it gone.
20:50:18 <myname> trivial brainfuck substitutes?
20:50:22 <b_jonas> but the standard is very low
20:50:41 <b_jonas> myname: no no, it has to be actively bad to get deleted, not just useless and uninspired
20:55:43 <nakilon> heh, category Uninspired language
20:58:56 <nakilon> https://en.wikipedia.org/wiki/Chinese_BASIC
21:01:27 <riv> https://terrytao.wordpress.com/2021/08/19/undecidable-translational-tilings-with-only-two-tiles-or-one-nonabelian-tile/ I probably linked this already
21:03:02 <nakilon> if I take some another language with long arithmetics to implement RASEL, which one should I choose?
21:03:12 <nakilon> looking at https://en.wikipedia.org/wiki/List_of_arbitrary-precision_arithmetic_software
21:04:10 <nakilon> didn't know there are so many llbs for c/c++
21:04:23 <b_jonas> nakilon: what is your goal with the implementation? do you wish it to be fast, or portable and easy to distribute?
21:05:16 <nakilon> b_jonas the goal is speed
21:05:42 <b_jonas> speed for usually large numbers, or speed for when the numbers are usually small?
21:05:43 <nakilon> for distribution ruby gem is already good enough
21:05:55 <nakilon> hm
21:06:01 <nakilon> when small
21:08:02 <b_jonas> for large numbers, http://mpir.org/ is usually the best (it's forked from GMP and gives mostly the same interface), but its docs recommend you to wrap around it if your numbers are usually small (the original purpose was probably at least partly cryptography, which explains optimizing over large fixed size numbers); alternatives include https://www.boost.org/doc/libs/release/libs/multiprecision/ which
21:08:08 <b_jonas> has three backends including GMP, https://www.libtom.net/ which is educational and not too optimized, and https://bellard.org/softfp/ which is Fabrice Bellard's so you know what to expect
21:09:38 <b_jonas> oh, and there's also GP/PARI's library I think, plus many language interpreters including Python and Ruby and ghc (for Haskell) come with a bignum library
21:11:38 <b_jonas> more or less every high level language has one thrown in these days, though of course sometimes they use one of the previous ones as a backend
21:16:02 <nakilon> I'm thinking about Crystal, C, C#, Zig
21:16:57 <b_jonas> I have no idea what Crystal is
21:18:27 <nakilon> it's like Ruby but LLVM
21:18:28 <b_jonas> GMP has at least one wrapper to just about any language you can think of from its native C interface, sometimes multiple wrappers
21:18:58 <nakilon> it can be as fast as C basically
21:19:33 <nakilon> the difference from Ruby is that you have to declare types ahead, at least it was like that some years ago
21:20:01 <b_jonas> in what way is it like Ruby?
21:20:37 <nakilon> it was the initial idea to have the same syntax
21:22:24 <b_jonas> weird
21:26:13 -!- river has joined.
21:29:13 -!- riv has quit (Ping timeout: 268 seconds).
21:33:05 <nakilon> or maybe I should try truffleruby first if it's already usable enough
21:33:25 <b_jonas> berry in August? no way. wait for next spring or summer.
21:34:02 <nakilon> https://github.com/kostya/benchmarks
21:41:16 <ais523> I think most recent practical languages have bignum ability in their standard library or their package manager, although some of the bignum packages are of dubious quality (not in terms of accuracy, but in terms of performance or features)
21:43:24 <b_jonas> well yes, if you include package manager, you always find mostly bad packages
21:44:05 <nakilon> "Colobot: Gold Edition - alpha 0.2.0 released yesterday"
21:44:26 <b_jonas> the hard part is finding the good packages, and knowing when to give up and just write your own
21:52:04 <b_jonas> (and by write your own, I mean write your own wrapper around an existing good quality library obviously, not invent your own wheel for every language)
22:01:15 <ais523> well, integrating well with the language's type system is often a major feature for me
22:01:18 <ais523> and that can be hard to wrap
22:02:01 <ais523> one of my major concerns about Rust's pure-Rust bignum package, apart from the size of bignum objects, is that it's bad at mixing signed bigints and unsigned bigints
22:02:22 <b_jonas> yes, it varies a lot
22:02:44 <b_jonas> some libraries are trivial to wrap, others are almost impossible
22:03:22 <b_jonas> and yes, it depends on the language too
22:06:10 <b_jonas> I wonder if the rust type system is now strong enough that you could write a library like eigen (which is in C++) in it, but there's no way you can just do a straightforward port
22:14:19 -!- immibis has quit (Ping timeout: 252 seconds).
22:25:37 -!- hendursaga has quit (Ping timeout: 244 seconds).
22:27:50 -!- hendursaga has joined.
22:56:54 <Corbin> [[Special:Interwiki]] seems disabled somehow? Is there a public list of interwiki prefixes?
22:58:56 -!- Koen__ has quit (Quit: Leaving...).
23:00:08 <ais523> it might just not be installed?
23:00:12 <b_jonas> Corbin: https://esolangs.org/w/api.php?action=query&prop=info&meta=siteinfo&format=xmlfm&siprop=general|namespaces|namespacealiases|interwikimap|specialpagealiases|magicwords
23:00:16 <ais523> I think we use the default MediaWiki list of interwiki prefixes, though
23:00:25 <ais523> of which wikipedia: is the only one people use in practice
23:01:04 <ais523> also, that URL for OEIS looks really odd
23:01:46 <shachaf> Are there any interesting distributed systems sorts of esolangs?
23:01:59 <ais523> https://esolangs.org/w/api.php?action=query&prop=info&meta=siteinfo&format=xmlfm&siprop=interwikimap should be a list of just the interwikis
23:03:11 <ais523> I think there may be some languages designed for programming games that run in a distributed sort of way
23:03:23 <Corbin> b_jonas, ais523: Impressive technique. Bookmarked, thanks.
23:03:43 <ais523> but I can't think of much that works in a delay-insensitive way (which is normally important for distributed programming)
23:04:08 <ais523> cellular automata are pretty similar to distributed systems, but they typically rely on lock-step to work correctly
23:04:57 <ais523> incidentally, I was once designing a version of cyclic tag with multiple queues, which effectively ran on different threads, but never got around to finishing it – that was fairly similar to a distributed system
23:05:03 <ais523> (it was intended to compile into something, but I forget what)
23:05:21 <esolangs> [[Concatenative language]] N https://esolangs.org/w/index.php?oldid=87537 * Corbin * (+1375) Break ground on an important esolang concept which is poorly-handled by existing wikis.
23:06:29 -!- vyv has joined.
23:06:56 <ais523> Corbin: I agree we need an article about that, but what you've written so far isn't good at expressing the concept – the example isn't even concatentative
23:07:07 <ais523> the important definition is that program concatenation is function composition
23:07:45 <ais523> what you're writing about is just composability, which is also important, but there are ways to do that other than being concatenative
23:09:07 <ais523> hmm, that concatenative wiki is missing Underload, so I'm not sure I can take it seriously [add appropriate emoticon here, I'm not sure which one to use offhand but this sentence feels like it needs one]
23:12:54 <Corbin> ais523: Please be patient; I am writing each section one-at-a-time because I don't like losing lots of progress.
23:13:16 <Corbin> The important definition is the Von Thun one, with monoid homomorphisms, but we have to work up to that.
23:14:03 <ais523> ah, fair enough
23:14:07 <ais523> maybe I'd rename "introduction" to "background"
23:15:34 <shachaf> ais523: Yes, I mean asynchronous systems in particular.
23:15:59 <Corbin> Currently working on "classical theory". After that is a yet-untitled section on Von Thun's results, but gently enough to not make people drown in category theory. Finally, I want "modern generalizations" so that I can document interesting stuff unique to our study, like 2D langs.
23:15:59 <shachaf> Including individual node failures and so on.
23:16:55 <ais523> I think that's a niche enough area that either a) there are no esolangs in that area, or b) every language in that area is automatically an esolang
23:16:59 <ais523> and I'm not entirely sure which
23:17:07 <Corbin> ais523: Selfishly, I want at least enough on this page so that I could mindlessly tell you whether [[Cammy]] is concatenative.
23:17:09 <keegan> I went to a neighborhood free book giveaway yesterday and there was a book about categorical type theory
23:17:17 <keegan> was slightly surprised but not that surprised, this is san francisco
23:17:25 <keegan> i didn't grab it though
23:17:42 <keegan> i got a book about digital filter design which was sadly lacking the included 5.25" diskette with source code
23:17:55 <keegan> now i'll have to type it in from the book
23:18:00 <shachaf> Well, I'd be interested in non-esolangs in that area too, I guess!
23:18:15 <b_jonas> "the important definition is that program concatenation is function composition" hmm. is there a terminology for languages where if you concatenate two programs, then the resuling program performs all the side effects (including interactive IO) of the first one, then of the second one, like eg. brainfuck where the tape is not guaranteed to be initialized to zeros?
23:19:00 <Corbin> There's heavyweight terminology, invoking what's known as "native type theory", but if I have to use that then I've probably failed.
23:19:32 <ais523> shachaf: my previous job was in that area, but it was mostly in terms of implementing things at the library level, and I didn't learn much in terms of languages for the purpose (we were using general-purpose languages, not languages designed for distributed programming)
23:19:32 <b_jonas> I'm mostly asking because Consumer society programs can be concatenated like that
23:20:24 <ais523> b_jonas: I think most imperative languages allow that sort of program concatenation (barring questions about when the main program runs), although it probably isn't unique to imperative languages
23:21:20 <ais523> the company's aim/thesis/goal was to prove that a special language wasn't necessary for that sort of thing, so we didn't spend that much effort on looking for one
23:21:25 <shachaf> ais523: What sorts of things in that area?
23:21:54 <ais523> I was implementing the runtime support to allow programs to transparently access data on other machines, call stacks to span multiple machines, etc.
23:22:08 <b_jonas> ais523: yes, many imperative languages allow that, though C doesn't
23:22:12 <shachaf> Oh, I see, running unmodified programs.
23:22:15 <shachaf> That sounds tricky.
23:22:16 <ais523> right
23:23:10 <ais523> hmm, are there languages which let you define functions multiple times and the definitions get concatenated? that seems like it might be useful for literate programming
23:23:25 <ais523> Prolog's syntax and semantics would both let you do that, except that there's a specific rule that you aren't allowed to
23:23:41 <ais523> (I think there might be a pragma to allow it?)
23:23:51 <b_jonas> ais523: hmm
23:24:09 <b_jonas> interesting idea
23:24:15 <b_jonas> Consumer Society can't allow that
23:24:46 <b_jonas> but I think there must be some language (possibly esoteric) that's based on hooks or gosub-come-froms that might allow it
23:24:54 <b_jonas> what are those called? sub from?
23:25:05 <ais523> in INTERCAL, NEXT FROM, but I think it's a nonstandard name
23:25:07 <b_jonas> no, probably no
23:25:12 <ais523> if it were a standard name, it would need to be renamed
23:25:26 <shachaf> I'm more interested in programs and semantics that are suited for a distributed environment and take advantage of it than pretending it doesn't exist.
23:26:12 <ais523> also, if you have two NEXT FROMs aiming at the same line in INTERCAL, the two subroutines run in parallel (and if they both return, the subsequent code runs twice in parallel – this is arguably a bug)
23:27:03 <ais523> shachaf: I understand; unfortunately I'm not sure I can help because I don't have much experience in that direction, even though I was working in the field
23:27:21 <b_jonas> I think there might be some GUI widget libraries where if you register two callbacks to an event, both get called in sequence
23:27:23 <ais523> I vaguely remember various forms of calculus based on Greek letters other than lambda
23:27:45 <b_jonas> oh yeah, I know what I recall this from
23:28:04 <ais523> https://en.wikipedia.org/wiki/%CE%A0-calculus for example
23:28:09 <ais523> maybe that would be a good starting point?
23:28:20 -!- V has quit (Ping timeout: 256 seconds).
23:28:34 <ais523> but, I don't think it's exactly what you're looking for
23:29:33 <ais523> b_jonas: I think Java works like that, but am not sure, they might run in parallel
23:29:34 <shachaf> One big difference between multithreading on one computer and distributed systems is that failures are expected in the latter case.
23:29:46 <shachaf> I think Pi-calculus types of things don't account for that too much.
23:30:04 <ais523> if you're using a sufficiently pure language, you can just retry
23:30:28 <shachaf> Well, you might want guarantees of systemwide progress even if any particular node fails.
23:30:32 <b_jonas> javascript's https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise can call multiple handlers
23:30:52 <b_jonas> you can register a handler, and if you register multiple, they're call called when the promise is fulfilled
23:33:55 <b_jonas> also https://nodejs.org/dist/latest-v16.x/docs/api/events.html#events_events can have multiple callbacks
23:34:46 <b_jonas> heck, atexit in C can register multiple functions and all of them get called one after the other
23:35:14 <b_jonas> but of course that's just one (or a few) stack of callbacks, not any number of user-defined functions behaving this way
23:35:27 <ais523> Prolog has both assert/assertz and asserta
23:36:02 <esolangs> [[Language list]] M https://esolangs.org/w/index.php?diff=87538&oldid=87462 * PythonshellDebugwindow * (+24) /* B */ Language
23:36:11 <ais523> and I think you can even inject cases into the middle of a predicate, although that involves more than a simple library predicate call
23:37:59 <b_jonas> yeah
23:44:16 <b_jonas> Mathematica and I think Maple allows you to define cases for a function in multiple different places of the source code with other definitions in between, the way that would be natural in prolog or perhaps in haskell but is not allowed. in all of these, cases will match by default so another definition won't be tried unless you specifically fail, but that's already true for prolog.
23:44:57 <b_jonas> normally the cases are distinguished by different patterns for their arguments, but the pattern matching is powerful enough to do anything including side effects of course
23:46:00 <ais523> hmm, that's an interesting point; I think Prolog's pattern matching does *not* allow side effects (or indeed function calls generally)
23:46:24 <ais523> IIRC Rust allows side effects in match guards but not on the patterns themselves
23:46:57 <ais523> although, pattern matching in Rust is a pain to define formally/comprehensively because the language allows insane definitions of ==
23:47:02 <b_jonas> ais523: yes, but in prolog you can fail from the body
23:47:09 <b_jonas> I don't know if you can fail from the body of a Mathematica function
23:47:14 <b_jonas> you probably can
23:47:32 <ais523> right, I think that's why Prolog doesn't bother with function calls in patterns, because you can retroactively unmatch the pattern later on
23:47:58 <b_jonas> ais523: that's more like because prolog also doesn't bother with function calls in expressions
23:48:19 <keegan> wait, does Rust pattern matching invoke the overloaded ==?
23:48:25 <keegan> I thought it was only structural
23:48:36 -!- vyv has quit (Quit: Konversation terminated!).
23:49:16 <ais523> keegan: it doesn't, but the semantics are designed such that you can't use it at the same time as an overloaded ==
23:49:17 <keegan> (plus boolean guards)
23:49:28 <ais523> to avoid confusion about whether it would invoke it or not
23:49:34 <keegan> what do you mean
23:49:45 <esolangs> [[Concatenative language]] M https://esolangs.org/w/index.php?diff=87539&oldid=87537 * Corbin * (+2145) Explain the classical and categorical theories.
23:49:52 <ais523> #[derive(Eq)] implements an unsafe trait that you can't safely implement any other way
23:49:56 <ais523> and pattern matching needs that trait to work
23:50:04 <b_jonas> ais523: but rust now has pattern guards as part of patterns now, don't they? I'm not quite sure, I don't follow what exactly they did there
23:50:13 <keegan> oh, weird
23:50:15 <keegan> that must be new-ish
23:50:41 <ais523> hmm, this is for matching constants only, it seems
23:50:55 <ais523> matching enum variants, etc., doesn't use Eq and you can use any enum you want
23:51:24 <ais523> https://github.com/rust-lang/rust/issues/31434
23:52:10 <ais523> still unstable, so very new
23:52:20 <ais523> I have been learning Rust in a kind-of weird order, stumbling over parts of it, of various newness, at random
23:52:46 <keegan> ah
23:53:31 <b_jonas> no, I'm wrong. rust added *alternatives* in patterns, but match guards (which can contain arbitrary code to decide if the pattern matches) can still only go to top level, not into patterns
23:54:01 <ais523> I think right now, my primary languages for writing programs that are intended to do something are Rust and Perl
23:54:10 <ais523> (it used to be a mix of C and Perl, but Rust has displaced the C)
23:54:19 <Corbin> ais523: LMK how feel I could improve. I need to survey the various langs on our wiki which call themselves concatenative and see if there's anything notable that needs to be discussed or explained.
23:55:03 <ais523> I think it's probably worth discussing row polymorphism, but I'm not an expert on the subject
23:55:47 <ais523> (if I understand it correctly, and I might not, it's a way to have typed concatenative stack-based languages using functions that are polymorphic over the unexamined parts of the stack)
23:56:15 <ais523> although Wikipedia's definition implies it's more general than that, I first came across it in the concatenative contextt
23:56:52 <ais523> I think the page is in a usable, if somewhat, barebones state at the moment
23:56:57 <ais523> * usable, if somewhat barebones,
←2021-08-21 2021-08-22 2021-08-23→ ↑2021 ↑all