00:00:51 -!- heroux has quit (Read error: Connection reset by peer).
00:01:16 -!- heroux has joined.
00:06:09 -!- heroux has quit (Read error: Connection reset by peer).
00:06:21 -!- heroux has joined.
00:15:26 <imode> fraglets are weird.
00:25:08 -!- Sgeo_ has joined.
00:27:56 -!- Sgeo__ has quit (Ping timeout: 240 seconds).
00:31:35 -!- heroux has quit (Ping timeout: 276 seconds).
00:32:30 -!- heroux has joined.
00:53:41 <imode> separating the description of computations and the actual computations is what separates declarative from imperative.
00:56:09 -!- Sgeo__ has joined.
00:59:32 -!- Sgeo_ has quit (Ping timeout: 276 seconds).
01:02:30 -!- heroux has quit (Read error: Connection reset by peer).
01:03:06 -!- heroux has joined.
01:05:22 -!- heroux has quit (Read error: Connection reset by peer).
01:08:07 -!- heroux has joined.
01:09:52 -!- Lykaina has joined.
01:25:36 -!- imode has quit (Ping timeout: 240 seconds).
01:28:51 -!- FreeFull has quit.
01:29:04 -!- MDude has joined.
01:33:25 -!- heroux has quit (Read error: Connection reset by peer).
01:33:40 -!- heroux has joined.
02:24:22 -!- heroux has quit (Read error: Connection reset by peer).
02:24:37 -!- heroux has joined.
02:33:54 <zzo38> Now a Hamster archive is available of the story I linked to earlier, in case you want to download the entire story. (I also wrote a shell script to export it automatically.)
02:34:26 -!- heroux has quit (Read error: Connection reset by peer).
02:34:37 -!- heroux has joined.
02:39:38 -!- heroux has quit (Read error: Connection reset by peer).
02:39:53 -!- heroux has joined.
02:43:43 -!- imode has joined.
02:59:00 -!- heroux has quit (Read error: Connection reset by peer).
02:59:35 -!- heroux has joined.
03:01:44 -!- heroux has quit (Read error: Connection reset by peer).
03:04:34 -!- heroux has joined.
03:06:38 -!- heroux has quit (Read error: Connection reset by peer).
03:09:35 -!- heroux has joined.
03:24:04 -!- Sgeo_ has joined.
03:27:07 -!- Sgeo__ has quit (Ping timeout: 245 seconds).
03:45:00 -!- heroux has quit (Read error: Connection reset by peer).
03:45:12 -!- heroux has joined.
03:52:26 -!- moony has quit (Ping timeout: 240 seconds).
03:53:28 -!- moony has joined.
04:20:23 -!- imode has quit (Ping timeout: 276 seconds).
04:23:04 -!- heroux has quit (Read error: Connection reset by peer).
04:28:08 -!- heroux has joined.
04:47:07 -!- heroux has quit (Ping timeout: 245 seconds).
04:51:17 -!- Lord_of_Life has quit (Ping timeout: 245 seconds).
04:51:22 -!- heroux has joined.
04:54:06 -!- Lord_of_Life has joined.
04:59:32 -!- heroux has quit (Read error: Connection reset by peer).
04:59:46 -!- heroux has joined.
05:06:43 -!- imode has joined.
05:39:02 -!- heroux has quit (Write error: Connection reset by peer).
05:39:26 -!- heroux has joined.
05:47:59 -!- heroux has quit (Read error: Connection reset by peer).
05:53:03 -!- heroux has joined.
05:57:22 -!- heroux has quit (Read error: Connection reset by peer).
05:58:04 -!- heroux has joined.
06:42:35 -!- LKoen has joined.
06:47:26 <esowiki> [[Hello world program in esoteric languages]] M https://esolangs.org/w/index.php?diff=66403&oldid=66400 * JonoCode9374 * (+5) Fixed alphabetical order and made language header a link (wrapped it in [[]])
06:50:01 <esowiki> [[Hello world program in esoteric languages]] https://esolangs.org/w/index.php?diff=66404&oldid=66403 * JonoCode9374 * (+57) Added new Keg variant (8 bytes SBCS)
07:20:50 -!- imode has quit (Ping timeout: 240 seconds).
07:25:25 -!- b_jonas has quit (Quit: leaving).
08:30:49 -!- LKoen_ has joined.
08:33:53 -!- LKoen has quit (Ping timeout: 246 seconds).
08:34:07 -!- LKoen_ has quit (Remote host closed the connection).
08:37:23 -!- kspalaiologos has joined.
09:00:25 -!- cpressey has joined.
09:41:56 -!- LKoen has joined.
10:20:10 -!- LKoen has quit (Remote host closed the connection).
10:21:10 -!- Sgeo__ has joined.
10:24:02 -!- Sgeo_ has quit (Ping timeout: 240 seconds).
11:21:28 -!- ArthurStrong has joined.
11:23:10 -!- arseniiv has joined.
12:35:11 -!- Sgeo_ has joined.
12:37:57 -!- Sgeo__ has quit (Ping timeout: 240 seconds).
12:48:37 -!- kspalaiologos has quit (Ping timeout: 265 seconds).
12:54:49 -!- xkapastel has joined.
12:56:56 -!- LKoen_ has joined.
13:01:48 -!- kspalaiologos has joined.
13:03:40 -!- kspalaiologos has quit (Client Quit).
13:03:59 -!- kspalaiologos has joined.
13:38:40 -!- PaniniTheDevelop has joined.
13:40:12 <APic> Congratulations
13:45:51 -!- PaniniTheDevelop has changed nick to PaniniTheDev.
13:57:12 <esowiki> [[EmojiCoder]] https://esolangs.org/w/index.php?diff=66405&oldid=45403 * Dtuser1337 * (+24)
13:58:00 <esowiki> [[EmojiCoder]] https://esolangs.org/w/index.php?diff=66406&oldid=66405 * Dtuser1337 * (+17)
14:39:16 -!- kritixilithos has joined.
14:41:27 <kritixilithos> computational class question: how would a language be classified if it's between two classes? eg: posix regex, it can match the context sensitive wordword but can't match the context-free a^nb^n
14:45:42 -!- LKoen_ has quit (Remote host closed the connection).
14:46:16 -!- Sgeo__ has joined.
14:49:12 -!- Sgeo_ has quit (Ping timeout: 245 seconds).
14:53:44 -!- PaniniTheDev has left.
15:05:01 -!- kspalaiologos has quit (Quit: Leaving).
15:29:33 <cpressey> kritixilithos: It's entirely possible that, between any two classes, there is another class, but it might not have an established name; in which case, describing it in words (like you just did) might be the best you can do (and is totally fine to do in any case)
15:36:22 -!- kspalaiologos has joined.
15:38:05 <shachaf> I don't think there's any class between the two classes {} and {a}
15:38:38 <Taneb> shachaf: what about semi-{a}
15:39:39 <Taneb> It can recognize a but sometimes can't recognize ¬a
15:42:31 -!- imode has joined.
15:46:11 -!- ArthurStrong has quit (Quit: leaving).
15:47:16 -!- Sgeo has joined.
15:50:21 -!- Sgeo__ has quit (Ping timeout: 265 seconds).
15:57:48 -!- cpressey has quit (Quit: A la prochaine.).
16:22:14 -!- kritixilithos has quit (Quit: :q).
16:35:25 <arseniiv> I’d also say that the first class shouldn’t be called “context-sensitive” because it’s not the entire context-sensitive languages class; as it contains (the entire) context-free languages class. So that should be a class I’d even not call an inbetween one, it’s more interesting class, but kritixilithos is left
16:47:26 -!- xkapastel has quit (Quit: Connection closed for inactivity).
16:49:04 -!- kpspalaiologos has joined.
16:49:08 -!- kpspalaiologos has quit (Read error: Connection reset by peer).
16:50:33 <kspalaiologos> I just realised how many "famous people in esolang community" are there
16:50:54 -!- Lord_of_Life_ has joined.
16:51:53 <imode> lotta people have a lotta langs.
16:53:05 -!- Lord_of_Life has quit (Ping timeout: 276 seconds).
16:53:48 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
16:56:17 <kspalaiologos> tfw the only measurable thing I made in esolangs is json formatter webservice in brainfuck
16:56:19 -!- FreeFull has joined.
16:56:26 <kspalaiologos> C compiler targeting brainfuck, and thats pretty much it
16:57:04 <kspalaiologos> I'd really like to discover some nice and creative esolangs, but the spam at wiki, my gosh
16:57:20 <kmc> i made a strange little lang that was implemented by some other people, and ended up in a published paper or two
16:57:32 <kmc> but it wasn't particularly designed to be eso-
16:57:51 <kmc> more of a very simple proof of concept of something
16:57:53 <kmc> also not original
16:57:55 <kmc> http://esolangs.org/wiki/Qoppa
16:58:23 <kmc> i've done a bunch of other esoprogramming, e.g. http://mainisusuallyafunction.blogspot.com/2014/02/x86-is-turing-complete-with-no-registers.html
16:58:30 <kspalaiologos> it sounds really close to my langauge's equivalent of sh*t
16:59:24 <kmc> fine by me
17:01:00 <kspalaiologos> that can be exploited to eaisly write programs in it
17:01:25 <kspalaiologos> (just to clarify, the author wanted the language to be insane to program)
17:04:07 <kspalaiologos> slashes (///) without regexps, but with some form of brainfuck in place instead of them
17:04:44 <kspalaiologos> the input would have to be pre-supplied by prepending the program with it
17:08:17 <fizzie> Well, there's just that one ShaFuck "vulnerability", which is easy to fix and arguably not even part of the spec.
17:21:25 -!- Sgeo_ has joined.
17:24:12 -!- Sgeo has quit (Ping timeout: 245 seconds).
17:26:28 -!- sleepnap has joined.
17:27:48 <arseniiv> <kspalaiologos> I just realised how many "famous people in esolang community" are there => IIRC alas FALSE author isn’t here. FALSE doesn’t seem that outstanding or/and famous but it just doesn’t go from my mind when I think about famous esolanging stuff
17:44:53 <arseniiv> ah, I’ve seen BLC, minimalistic
17:53:18 -!- gitlogger has joined.
17:53:57 <kspalaiologos> programs in BLC are really small and that's the main reason I like this language
17:54:06 <kspalaiologos> even the smallest program carries a lot of entropy with itself
17:54:07 -!- gitlogger has quit (Remote host closed the connection).
17:54:36 <imode> the implementation is complicated, though.
17:55:00 -!- gitlogger has joined.
18:04:24 <kspalaiologos> Honestly, I can't find a good use for my "amazing" idea
18:05:12 <kspalaiologos> I'm talking about the idea I presented someone earlier
18:07:56 <imode> interesting, mind recapping.
18:14:06 -!- LKoen has joined.
18:14:38 -!- b_jonas has joined.
18:15:23 <HackEso> PaniniTheDev: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: <https://esolangs.org/>. (For the other kind of esoterica, try #esoteric on EFnet or DALnet.)
18:15:34 <b_jonas> Yeah, you know that already, you came from the Wiki.
18:17:49 <fizzie> shachaf: The spec disallows comments, but the implementation doesn't actually check for comments in code that's not executed, so essentially you just have to brute-force out some string that hashes to "+>[...junk...]<" and use that block to represent a +. Plus a few extra details (like making > into >>, and making sure there are no []s in that junk).
18:18:22 <fizzie> "Comments" being any byte that's not +-<>.,[]
18:20:13 <b_jonas> kspalaiologos, kmc: IMO creating a few good esolang-related things is a much better way to contribute than creating a hundred worthless pages on the wiki about supposed languages like our village in Norway does
18:20:57 <b_jonas> there are probably only two people who have created more than one really interesting esolangs that are different from each other
18:21:43 <b_jonas> and unless you can come up with something really revolutionary, creating new esolangs isn't the best thing to do. I value it much higher if you use existing esolangs, or just use non-eso programming languages in interesting ways
18:21:50 <b_jonas> as in obfuscated programming
18:22:07 <shachaf> fizzie: Oh, that sounds like a bug in the implementation.
18:22:14 <shachaf> Which I guess is why you called in a vulnerability.
18:24:39 <kmc> i mean, it's fine either way
18:24:53 <kmc> I like to hang out here because it's a set of cool people discussing interesting things
18:25:02 <kmc> I don't feel a great urge to contribute to the esolangs per se
18:25:14 <kmc> I do have a few ideas tho
18:25:23 -!- pikhq has quit (Ping timeout: 276 seconds).
18:26:13 <imode> honestly esolangs to me are just new ideas in programming language theory that haven't been taken to their potential yet.
18:26:39 <b_jonas> kspalaiologos: "slashes (///) without regexps" um, but slashes already doesn't have regexps. it only searches for fixed strings, as in grep -F
18:30:06 <esowiki> [[Tom Murphy VII]] https://esolangs.org/w/index.php?diff=66407&oldid=56755 * B jonas * (+78) link UM-32
18:30:33 <kmc> one is a concatencative language for signal processing
18:30:39 <kmc> i mean it's probably been done
18:31:06 <b_jonas> kmc: the great thing is that esolangs mean different things to different people, which is why there are so many different ones with different interesting properties
18:32:50 <b_jonas> kmc: re x86 without using registers => interesting, I don't remember having seen that one. the one with MOV only, and the one with no instructions, those I do remember, as well as tom7's ABC
18:33:47 <imode> brachylog is interesting if a little obtuse.
18:34:29 <imode> I wonder what the most "minimal" logic language is. prolog is hard to write on a single line and its implementation is complex.
18:36:54 <b_jonas> imode: I think for a golf language, it may make sense to have prolog-like backtracking, but not general prolog-like unification. I'm not saying this would be easy to implement, just that it may help golfing.
18:37:28 <b_jonas> but as for your specific question, I don't know what counts as enough to qualify something a "logic language"
18:37:34 <imode> golfing is an interesting orthogonal goal. my further goal is writing prolog as I write sentences.
18:37:43 -!- LKoen has quit (Remote host closed the connection).
18:38:00 <imode> "this thing relates to that thing, that thing relates to this other thing, what is this other thing."
18:39:00 <b_jonas> kmc: interesting, why did you not make that implement brainfuck with mod 256 wraparound like it's the most common?
18:41:02 <b_jonas> hmm, Shakespeare predates Chef?
18:41:49 <imode> prolog without variables.. hm.
18:43:54 <b_jonas> imode: no no, I imagine it would have mutable variables, and you'd have both non-backtracking and backtracking versions. what I mean is that it wouldn't have the recursive structural unification, nor even just unassigned variables and function arguments that can be either input and output using them and A=B statements that can assign in either direction
18:44:09 <imode> didn't tie that statement to your's, was just musing.
18:44:22 <kmc> b_jonas: i think that would have been harder?
18:44:25 <b_jonas> and I don't think it would be like prolog at all
18:44:58 <b_jonas> kmc: it's hard to implement, but a golfing language doesn't have to be easy to implement, it has to give you all the tricky tools instead
18:45:08 <imode> I want to be able to pose questions to my machine and have it answer them. I want to be able to describe and query relations between the things I declare.
18:45:14 <kmc> b_jonas: I was doing a minimum proof of concept about x86 being turing complete with no registers
18:45:20 <imode> sans variables.. which is difficult.
18:45:33 <kmc> I don't really care if it's convenient for writing code
18:46:12 <b_jonas> kmc: sure, but you apparently have extra code in the implementation so that when a cell becomes decreased to -1 then it changes it to 0, and when it becomes 256 it changes it to 255
18:46:22 <imode> https://en.wikipedia.org/wiki/Constraint_Handling_Rules
18:46:27 <b_jonas> it seems like you'd just have to change the constants there so it changes -1 to 255 and 256 to 0 insteaed
18:46:43 <b_jonas> so it'd be like a trivial change, it wouldn't make the implementation any more difficult
18:46:47 <kmc> b_jonas: hm i think you're right
18:46:50 <kmc> it's been a long time
18:46:56 <kmc> so i'm not sure why i did it that way
18:47:31 <kmc> also I'm not sure how this post got hundreds of comments about curing herpes with herbs
18:47:32 <b_jonas> the problem is that at every < and > statement, you have to do a self-modifying code that modifies both the head address in both increase and decrease statement
18:47:51 <kmc> b_jonas: oh also i can't have conditionals
18:47:56 <b_jonas> if you made it wrap around, you'd need five such modifications instead of three, so it's complicated
18:47:59 <kmc> but there's still probably a way
18:48:08 <kmc> i could make a subroutine that does it in some bitwise way for example
18:48:14 <kmc> I think I just did it this way to be parsimonious
18:48:17 <b_jonas> you even say "We could implement the more typical wrap-around behavior with somewhat more code."
18:48:25 <shachaf> my friend has been trying to talk me into learning to do fancy gpu programming
18:48:29 <b_jonas> sorry, I didn't realize that that's how the head pointer was implemented
18:48:33 <kmc> shachaf: it's fun
18:48:36 <shachaf> it's a bit like esoteric programming
18:48:42 <kmc> massively parallel, quasi-functional
18:49:29 <kmc> b_jonas: glad you found it interesting
18:49:50 <b_jonas> shachaf: the friend isn't your partner who wants you to earn more money, right?
18:50:25 <kmc> a lot of people were amused by my calling brainfuck "pretty familiar as an imperative, structured-control language"
18:50:33 <shachaf> ais523: Does Richardson's theorem actually let you produce a specific real expression (like sqrt(sin(5)) or whatever) where it's undecidable whether it's equal to 0?
18:50:49 <kmc> and "[not] super weird"
18:51:01 <shachaf> ais523: Or is it only a function, like "\x -> sqrt(sin(x))", where it' undecidable whether it's 0 everywhere?
18:51:28 <shachaf> kmc: Well, it has a simple text substitution compiler to C.
18:51:42 <kmc> b_jonas: i wrote most of the code on a flight from SFO to ICN
18:51:47 <kmc> shachaf: yeah
18:51:49 <shachaf> The weird part isn't the language primitives but what you have to do get anything done with them.
18:52:50 <b_jonas> `perl -eprint sqrt(sin(5)) # of course that doesn't prove anything, because the sin function rounds to floating-point
18:52:50 <HackEso> Can't take sqrt of -0.958924 at -e line 1.
18:53:24 <shachaf> In the other window I wrote sqrt(sin(3)) but I changed it to 5 because it seemed more appealing.
18:53:25 <b_jonas> `perl -euse Math::Complex; print sqrt(sin(5))
18:53:45 <b_jonas> shachaf: nah, taking a complex square root is completely fine in this context
18:54:10 <kmc> I was pretty pleased to figure out how to do this
18:54:17 <b_jonas> it would be worse if you tried to divide by zero, but just taking square root or log of a negative number is ok
18:54:20 <shachaf> It's not completely fine for at least the following reason: It makes me say "Oh no."
18:55:20 <kmc> "Code that self-modifies by calling read() is clearly the future of computing."
18:56:57 <kmc> b_jonas: if you look at the actual code it has a lot more self modifying code
18:57:00 <kmc> to handle ,
18:57:03 <kmc> , was a pain
18:57:33 <b_jonas> normally on x86 with SMP, if you modify code on one cpu then execute it on another cpu, and want to make sure that the modified code is used, then you have to do a really elaborate synchronization dance to make sure that all the caches are flushed properly
18:58:18 <b_jonas> this doesn't happen when modifying code and then executing it on the same cpu because x86 wants to be backwards compatible with 386, which allowed such self-modifying code as long as you just do any jump/branch between them
18:59:55 <b_jonas> my question is, if you write ordinary self-modifying code in a linux-x86_64 program, and the kernel just happens to migrate the user-space thread to another cpu between your modifying code and your running it, does the kernel guarantee to do all the required synchronization dance so that your self-modifying code executes correctly?
19:00:12 <b_jonas> because if not, then I really don't see how you could ever write self-modifying code on linux-x86_64
19:00:19 <b_jonas> fizzie: ^ perhaps you can answer
19:05:59 <b_jonas> wait what? is it really undecidable in the computational sense whether a context-free grammar describes the empty language?
19:11:17 -!- kspalaiologos has quit (Quit: Leaving).
19:13:51 <arseniiv> <kspalaiologos> it really depends on how we define minimalistic => agree; I meant from the syntactic side
19:14:51 <imode> https://hatebin.com/qsqfryjtfv
19:14:55 <imode> someone might have a use for this.
19:15:10 <imode> it's a language based on tuple rewriting. here's a demo of a text adventure in it.
19:25:46 <b_jonas> wow, are there really only six M:tG cards that represent a leonin skyknight directly? that seems odd
19:26:18 <b_jonas> admittedly they do appear in the flavor of some noncreature cards too
19:27:16 <b_jonas> Leonin Scimitar is a weapon used by skyhunters
19:31:32 <imode> because the tuple store is a multiset, it's possible to construct a counter machine (and I believe it's equivalent to FRACTRAN at that point). there's no other way to build a tape as far as I see, though, because you can't add tuples with generated identifiers.
19:32:13 <imode> though it's easy to add the ability to: any variables on the RHS not present on the LHS get bound to a unique identifier.
19:40:08 <arseniiv> imode: how does it operate, does it delete matched tuples or leaves them in the store?
19:41:05 -!- atslash has quit (Quit: This computer has gone to sleep).
19:43:16 <fizzie> b_jonas: I don't have an answer for that. Presumably serious users of self-modifying code must have considered this though.
19:45:06 <imode> arseniiv: it deletes them.
19:45:41 -!- LKoen_ has joined.
19:48:19 -!- Sgeo has joined.
19:49:52 <b_jonas> fizzie: ... serious users of self-modifying code? those exist?
19:50:01 -!- Sgeo__ has joined.
19:50:02 <arseniiv> oh! I came up with a controversial question
19:50:20 <b_jonas> do you mean like just-in-time compilers?
19:50:26 -!- Sgeo_ has quit (Ping timeout: 240 seconds).
19:50:35 <b_jonas> qemu's just in time compiler mode
19:50:38 <b_jonas> that's what I should look at
19:50:42 <arseniiv> if I’m to pick one of Idris or Agda, is there a clear winner or should I abandon the choice instead
19:50:58 <b_jonas> does that exist on x86_64 as the host?
19:53:47 -!- Sgeo has quit (Ping timeout: 276 seconds).
19:58:41 -!- LKoen_ has quit (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”).
20:26:56 -!- Sgeo__ has quit (Ping timeout: 276 seconds).
20:43:40 -!- Sgeo has joined.
20:43:59 <arseniiv> 375.00°F = 190.56°C => hot in that place
20:48:30 <b_jonas> arseniiv: it's a recipe about baking fish
20:48:49 <b_jonas> still hotter than I expect, I don't bake anything over 180 deg C, but not impossibly hot
20:52:24 <HackEso> nto egg salt. \ Add the shapes of flour with the corner and sugar in a large \ pan. Serve with peanut oil and almonds. Pour the cake on a bowl, stirring \ occasionally and remove from heat; cook over moderate heat, stirring constantly, \ until the meat is tender. Add the soup over the fish and \ stirring constantly; simmer together the water and mix well. Stir in the pineapple; \ water until lightly blended over and remove from pan. Add \ strands of
20:53:20 <fizzie> fungot: Do you know any recipes? Should we train you with a cookbook?
20:53:20 <fungot> fizzie: i think windos api bindings are somewhat rare female esolang programmers?' and someone replied with subject ' my wife woke up...'.
20:55:58 <b_jonas> fizzie: the recipes in `recipe are somewhat similar to the sort of text that fungot outputs, in that they don't have any long term memory to ensure that objects created in one part of the recipe are reused in another, even though that is something that it would be easy to teach a computer program to pay attention to
20:55:58 <fungot> b_jonas: i suspect firefox and konversation will randomly stop working at some startup, unrelated to research or scheme. common lisp is type ( list-all-packages) *modules* and *features*, something similar?
20:56:31 <b_jonas> I'd like to contrast this to Roborosewater, which usually does a good job of keeping the whole card coherent
20:56:36 <HackEso> RoboRosewater is generating random Magic: the Gathering cards, see https://mobile.twitter.com/roborosewater
21:13:51 -!- ais523 has joined.
21:14:53 <ais523> <shachaf> ais523: Does Richardson's theorem actually let you produce a specific real expression (like sqrt(sin(5)) or whatever) where it's undecidable whether it's equal to 0? ← if you could prove the result was undecidably equal to 0, then you could prove the result equalled 0 (if it didn't equal 0 then you'd be able to decide it by comparing to a number in between), which is a contradiction; so there are no computable real equations /known/ to be
21:15:30 <ais523> it wouldn't surprise me if the theorem allowed you to compile a particular undecidable problem into an equivalent undecidable computational real, though, but I don't know
21:16:11 <shachaf> I thought that was how you were proposing to use the theorem the other day, though I don't remember exactly.
21:16:36 <ais523> <arseniiv> if I’m to pick one of Idris or Agda, is there a clear winner or should I abandon the choice instead ← Agda is something of an outlier among machine-checkable-proof languages, it's a lot more explicit than the competition; I personally see this as an advantage but this is a matter of taste (and probably means that Agda is the slowest among all commonly used proof languages to write)
21:17:21 <ais523> I think Agda might be good for people who like theoretically pure / mathematically interesting languages, whereas Idris is better if you want to build something practically
21:18:45 <shachaf> ais523 is already seeing the logs.
21:20:18 <b_jonas> he's probably seen https://esolangs.org/logs/2019-09-29.html#lk already
21:20:45 <b_jonas> this is one of those rare cases where I can answer a technical question on #esoteric
21:20:58 <ais523> <b_jonas> there are probably only two people who have created more than one really interesting esolangs that are different from each other ← I can think of at least three, probably several more
21:21:17 <ais523> b_jonas: I saw that a while ago, just wasn't online to reply
21:21:28 <ais523> I'd found a solution to the problem by then anyway (and even posted it in-channel)
21:21:53 <b_jonas> ais523: which three? you are one of them, that's easy
21:22:09 <ais523> although, how does "no utf8" have the same semantics as BEGIN? :-D
21:22:15 <ais523> b_jonas: cpressey, obviously
21:22:27 <ais523> the first name that came to mind for the third was Keymaker
21:22:49 <ais523> I think oklopol might also have done so
21:23:28 <b_jonas> ais523: it doesn't technically have exactly the same semantics, but the differences don't matter here
21:23:50 <b_jonas> it also loads a module that always exists on modern perl in the core and doesn't do much and most of it are actually perl builtins
21:24:00 <b_jonas> ones that are loaded when the interpreter is started
21:24:17 <ais523> I know what the utf8 "module" does
21:24:22 <b_jonas> you could use lots of other modules, especially if you put a do-block in the argument to ignore the result of the $^H thingy
21:24:26 <ais523> but I'm confused as to why it makes the assignment to $^H happen at compile time
21:24:34 <ais523> the `no` statement, that is
21:24:58 <ais523> it needs to evaluate the argument to utf8 in order to work out what values to load the module with, that's clever
21:24:59 <b_jonas> ais523: the specific module is not relevant, but the use/no statement calls import/unimport at compile time, so it has to evaluate its argument, which is passed to that call, at compile time
21:25:49 <b_jonas> oh right, the utf8 module's import has another function that I totally didn't think of
21:26:00 <b_jonas> it's totally obsolete so I forgot about it
21:26:13 <b_jonas> I only thought of the public functions in it
21:26:57 <ais523> utf8::import doesn't inspect its arguments, does it?
21:27:29 <ais523> it doesn't, I just checked its source code
21:27:55 <ais523> (it feels a bit wrong to me that you can check the source code of a pragma, you expect those to be hardcoded into the compiler rather than separate files)
21:28:27 <shachaf> I wrote a UTF8 decoder but it's pretty naive.
21:28:35 <shachaf> I should write a fast one that uses a state machine.
21:28:51 <b_jonas> ais523: you can check the source of things that are hardcoded into the compiler too, and for most pragmas, the bulk of the implementation is in there, the pragma only gives an interface to them
21:29:07 <b_jonas> (bigint is an example for a pragma that isn't like that)
21:29:44 <b_jonas> but perl is ... sort of weird in how a lot of what you expect to be builtin functionality in a sane language is off-loaded to modules
21:31:23 <ais523> bigint is written in terms of overload::constant, which seems to do the real magic
21:32:41 <ais523> it appears to in turn be implemented via assigning to %^H, which has a strong implication of compiler magic
21:33:12 <b_jonas> really? that seems unlikely because I think %^H is newer than overload::constant
21:33:35 <ais523> the implementation could have been changed to make use of the new feature
21:33:47 <b_jonas> could, but that seems unlikely
21:33:55 <b_jonas> maybe I just remember incorrectly about $^H
21:34:15 -!- atslash has joined.
21:34:21 <b_jonas> maybe %^H is old too, I just think it's newer for some reason
21:36:21 <arseniiv> bye all, I try to fix my sleepdule
21:36:37 <ais523> fwiw, I know Agda much better than Idris (although don't know either particularly well)
21:37:47 <b_jonas> ais523: wait, are you sure that %^H is used as the magic interface how overload::constant asks the compiler how to interpret constants? isn't it just used to store some internal data for the pragma?
21:39:10 <ais523> b_jonas: when you delete all the sanity checks, the entire implementation of overload::constant becomes «$^H{$_[0]} = $_[1]; $^H |= $constants{$_[0]}; shift, shift»
21:39:23 <ais523> so it's changinig both %^H and $^H, with nothing else happening
21:40:07 <b_jonas> anyway, I was probably wrong about %^H, it's likely old
21:40:30 <b_jonas> it exists in 5.10, but I'm too lazy to check perl 5.6 now
21:41:41 -!- arseniiv has quit (Ping timeout: 276 seconds).
21:41:41 <ais523> that "shift, shift" seems really ominous for some reason, but I guess it's just an obfuscated way to return $_[1]
21:46:17 <b_jonas> wow, the demon Bozmodiklax returns! I think that's his third appearance in smbc
21:46:55 <b_jonas> it's nice when a gag-a-day comic has continuity
21:48:06 <b_jonas> he was much more dangerous the last time, wanting to blot out the sun and shroud Earth in a night eternal
21:55:25 <imode> move left, cursor at $x? $x previous $y?: cursor at $y. move left, cursor at $x?: $y next $x, cursor at $y. move right, cursor at $x? $x next $y?: cursor at $y. move left, cursor at $x?: $x next $y, cursor at $y.
21:55:43 <imode> autogenerating an infinite tape.
21:56:19 <imode> the sentential form is a little awkward.
21:56:44 <ais523> is that text written in English or an esolang or a literal translation from one to the other?
21:57:43 <imode> small syntactic variant on a language I posted about earlier, I'll re-post.
21:57:49 <imode> https://hatebin.com/qsqfryjtfv
21:59:33 <imode> this is a language based around tuple rewriting. the system state is stored as a multiset of tuples. patterns match against collections of tuples.
22:00:04 <imode> tuples are just sequences of tokens delimited by spaces.
22:00:37 <imode> tuples in a pattern are delimited by ',' or '?'.
22:01:21 <imode> if they're delimited by a ',', the constructed tuples are removed from the store. if they're delimited by a '?', they're not.
22:02:01 <imode> any variables present on the RHS that aren't on the LHS get bound to an autogenerated ID.
22:02:29 -!- b_jonas has quit (Ping timeout: 276 seconds).
22:20:58 <HackEso> 1/2:1007) <fizzie> ... <fizzie> I was thinking maybe octave's fact() function is the factorial. <fizzie> octave:1> fact(20) <fizzie> Richad Stallman's pinky finger is really a USB memory stick. <fizzie> I don't think that's 20!. \ 625) <itidus22> if the halting problem was solved, as a placebo.. would it benefit people? \ 991) <kmc> in the time it takes light to travel from Hexham to Finland, I can generate almost 20 new topics for #esoteric \ 241) <o
22:21:01 <HackEso> 2/2:klopol> shit would make great currency, because everyone would have it and you could literally be filthy rich \ 501) <fungot> elliott: ppl should vote clinton because obama is biracial every1 knows that dood, look at him he has been on something lately.
22:37:09 -!- Sgeo_ has joined.
22:40:02 -!- Sgeo has quit (Ping timeout: 245 seconds).
22:51:21 -!- FreeFull has quit.
22:52:32 -!- xkapastel has joined.
23:01:29 -!- ais523 has quit (Ping timeout: 265 seconds).
23:58:26 -!- oerjan has joined.