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 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 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 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 [[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 [[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. 08:37:50 Hi 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:39:20 finally i connected to irc 13:40:12 Congratulations 13:45:51 -!- PaniniTheDevelop has changed nick to PaniniTheDev. 13:57:12 [[EmojiCoder]] https://esolangs.org/w/index.php?diff=66405&oldid=45403 * Dtuser1337 * (+24) 13:58:00 [[EmojiCoder]] https://esolangs.org/w/index.php?diff=66406&oldid=66405 * Dtuser1337 * (+17) 14:39:16 -!- kritixilithos has joined. 14:41:27 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:36 wtf 14:53:44 -!- PaniniTheDev has left. 15:05:01 -!- kspalaiologos has quit (Quit: Leaving). 15:29:33 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 I don't think there's any class between the two classes {} and {a} 15:38:38 shachaf: what about semi-{a} 15:38:55 what's that twh 15:39:39 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:46:26 cpressey: ah, thanks 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 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 I just realised how many "famous people in esolang community" are there 16:50:54 -!- Lord_of_Life_ has joined. 16:51:53 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 tfw the only measurable thing I made in esolangs is json formatter webservice in brainfuck 16:56:19 -!- FreeFull has joined. 16:56:26 C compiler targeting brainfuck, and thats pretty much it 16:56:30 and a few assemblers 16:56:59 keep at it. 16:57:04 I'd really like to discover some nice and creative esolangs, but the spam at wiki, my gosh 16:57:20 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 but it wasn't particularly designed to be eso- 16:57:39 can you tell me the name tho? 16:57:51 more of a very simple proof of concept of something 16:57:53 also not original 16:57:55 http://esolangs.org/wiki/Qoppa 16:58:23 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 it sounds really close to my langauge's equivalent of sh*t 16:58:35 no offense tho 16:58:39 (by the name) 16:59:13 ok 16:59:24 fine by me 16:59:48 I've seen ShaFuck on the wiki 16:59:52 unfortunately it's biased 16:59:59 and it's so simple to write programs in it 17:00:46 define biased. 17:00:53 has a loophole 17:01:00 that can be exploited to eaisly write programs in it 17:01:07 in a way that author didn't intend to 17:01:25 (just to clarify, the author wanted the language to be insane to program) 17:03:42 I just thought about something quite interesting 17:04:07 slashes (///) without regexps, but with some form of brainfuck in place instead of them 17:04:27 that would process the string and pass it forward 17:04:44 the input would have to be pre-supplied by prepending the program with it 17:04:56 and the output would be performed just at the end 17:08:17 Well, there's just that one ShaFuck "vulnerability", which is easy to fix and arguably not even part of the spec. 17:14:29 What's the vulnerability? 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 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:28:28 but we have mr. Pressey 17:28:35 mr. Tromp 17:28:49 who made BLC, one of my most loved esolangs 17:44:53 ah, I’ve seen BLC, minimalistic 17:53:18 -!- gitlogger has joined. 17:53:33 I wouldnt call it minimalistic 17:53:38 I mean 17:53:46 it really depends on how we define minimalistic 17:53:57 programs in BLC are really small and that's the main reason I like this language 17:54:06 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 the implementation is complicated, though. 17:55:00 -!- gitlogger has joined. 17:55:02 yeah, I can't deny that 18:04:24 Honestly, I can't find a good use for my "amazing" idea 18:04:36 which is? 18:05:12 I'm talking about the idea I presented someone earlier 18:05:21 of the substitution based language 18:07:56 interesting, mind recapping. 18:14:06 -!- LKoen has joined. 18:14:38 -!- b_jonas has joined. 18:14:56 hello all 18:15:22 `welcome PaniniTheDev 18:15:23 PaniniTheDev: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: . (For the other kind of esoterica, try #esoteric on EFnet or DALnet.) 18:15:34 Yeah, you know that already, you came from the Wiki. 18:16:02 o/ 18:17:49 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 "Comments" being any byte that's not +-<>.,[] 18:20:13 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 there are probably only two people who have created more than one really interesting esolangs that are different from each other 18:21:43 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 as in obfuscated programming 18:22:07 fizzie: Oh, that sounds like a bug in the implementation. 18:22:14 Which I guess is why you called in a vulnerability. 18:24:39 i mean, it's fine either way 18:24:53 I like to hang out here because it's a set of cool people discussing interesting things 18:25:02 I don't feel a great urge to contribute to the esolangs per se 18:25:14 I do have a few ideas tho 18:25:23 -!- pikhq has quit (Ping timeout: 276 seconds). 18:26:13 honestly esolangs to me are just new ideas in programming language theory that haven't been taken to their potential yet. 18:26:19 some are 18:26:39 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 [[Tom Murphy VII]] https://esolangs.org/w/index.php?diff=66407&oldid=56755 * B jonas * (+78) link UM-32 18:30:33 one is a concatencative language for signal processing 18:30:39 i mean it's probably been done 18:31:06 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 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 brachylog is interesting if a little obtuse. 18:34:29 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 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 but as for your specific question, I don't know what counts as enough to qualify something a "logic language" 18:37:34 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 "this thing relates to that thing, that thing relates to this other thing, what is this other thing." 18:39:00 kmc: interesting, why did you not make that implement brainfuck with mod 256 wraparound like it's the most common? 18:41:02 hmm, Shakespeare predates Chef? 18:41:49 prolog without variables.. hm. 18:43:54 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 didn't tie that statement to your's, was just musing. 18:44:22 b_jonas: i think that would have been harder? 18:44:25 and I don't think it would be like prolog at all 18:44:58 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 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 b_jonas: I was doing a minimum proof of concept about x86 being turing complete with no registers 18:45:20 sans variables.. which is difficult. 18:45:33 I don't really care if it's convenient for writing code 18:46:12 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 https://en.wikipedia.org/wiki/Constraint_Handling_Rules 18:46:27 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:28 interesting. 18:46:43 so it'd be like a trivial change, it wouldn't make the implementation any more difficult 18:46:47 b_jonas: hm i think you're right 18:46:50 it's been a long time 18:46:56 so i'm not sure why i did it that way 18:47:04 oh wait 18:47:07 no, you're right 18:47:31 also I'm not sure how this post got hundreds of comments about curing herpes with herbs 18:47:32 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 b_jonas: oh also i can't have conditionals 18:47:56 if you made it wrap around, you'd need five such modifications instead of three, so it's complicated 18:47:59 but there's still probably a way 18:48:08 i could make a subroutine that does it in some bitwise way for example 18:48:08 but yeha 18:48:14 I think I just did it this way to be parsimonious 18:48:17 you even say "We could implement the more typical wrap-around behavior with somewhat more code." 18:48:23 right 18:48:25 my friend has been trying to talk me into learning to do fancy gpu programming 18:48:29 sorry, I didn't realize that that's how the head pointer was implemented 18:48:33 shachaf: it's fun 18:48:36 it's a bit like esoteric programming 18:48:42 massively parallel, quasi-functional 18:49:29 b_jonas: glad you found it interesting 18:49:50 shachaf: the friend isn't your partner who wants you to earn more money, right? 18:50:25 a lot of people were amused by my calling brainfuck "pretty familiar as an imperative, structured-control language" 18:50:33 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 and "[not] super weird" 18:51:01 ais523: Or is it only a function, like "\x -> sqrt(sin(x))", where it' undecidable whether it's 0 everywhere? 18:51:28 kmc: Well, it has a simple text substitution compiler to C. 18:51:42 b_jonas: i wrote most of the code on a flight from SFO to ICN 18:51:47 shachaf: yeah 18:51:49 The weird part isn't the language primitives but what you have to do get anything done with them. 18:52:50 `perl -eprint sqrt(sin(5)) # of course that doesn't prove anything, because the sin function rounds to floating-point 18:52:50 Can't take sqrt of -0.958924 at -e line 1. 18:53:10 Oh no. 18:53:24 In the other window I wrote sqrt(sin(3)) but I changed it to 5 because it seemed more appealing. 18:53:25 `perl -euse Math::Complex; print sqrt(sin(5)) 18:53:26 0.979246789457662i 18:53:27 Joke's on me. 18:53:45 shachaf: nah, taking a complex square root is completely fine in this context 18:54:10 I was pretty pleased to figure out how to do this 18:54:17 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 It's not completely fine for at least the following reason: It makes me say "Oh no." 18:55:20 "Code that self-modifies by calling read() is clearly the future of computing." 18:55:55 also, I have a question 18:56:09 about self-modifying code 18:56:16 higan mchelloface 18:56:34 hi 18:56:57 b_jonas: if you look at the actual code it has a lot more self modifying code 18:57:00 to handle , 18:57:03 , was a pain 18:57:33 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 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 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 because if not, then I really don't see how you could ever write self-modifying code on linux-x86_64 19:00:19 fizzie: ^ perhaps you can answer 19:05:59 wait what? is it really undecidable in the computational sense whether a context-free grammar describes the empty language? 19:07:24 no, apparently it isn't 19:11:17 -!- kspalaiologos has quit (Quit: Leaving). 19:13:51 it really depends on how we define minimalistic => agree; I meant from the syntactic side 19:14:51 https://hatebin.com/qsqfryjtfv 19:14:55 someone might have a use for this. 19:15:10 it's a language based on tuple rewriting. here's a demo of a text adventure in it. 19:25:46 wow, are there really only six M:tG cards that represent a leonin skyknight directly? that seems odd 19:26:18 admittedly they do appear in the flavor of some noncreature cards too 19:27:16 Leonin Scimitar is a weapon used by skyhunters 19:31:32 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 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 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:41:21 I hadn’t read thoroughly 19:43:16 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 arseniiv: it deletes them. 19:45:41 -!- LKoen_ has joined. 19:48:19 -!- Sgeo has joined. 19:49:52 fizzie: ... serious users of self-modifying code? those exist? 19:50:01 -!- Sgeo__ has joined. 19:50:02 oh! I came up with a controversial question 19:50:20 do you mean like just-in-time compilers? 19:50:24 oh, I get it 19:50:26 -!- Sgeo_ has quit (Ping timeout: 240 seconds). 19:50:28 you must meen qemu 19:50:35 qemu's just in time compiler mode 19:50:38 that's what I should look at 19:50:42 if I’m to pick one of Idris or Agda, is there a clear winner or should I abandon the choice instead 19:50:53 hmm wait 19:50:58 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:34:49 `ftoc 375 20:34:49 375.00°F = 190.56°C 20:43:40 -!- Sgeo has joined. 20:43:59 375.00°F = 190.56°C => hot in that place 20:48:30 arseniiv: it's a recipe about baking fish 20:48:49 still hotter than I expect, I don't bake anything over 180 deg C, but not impossibly hot 20:50:00 b_jonas: yum 20:52:23 `recipe 20:52:24 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 fungot: Do you know any recipes? Should we train you with a cookbook? 20:53:20 fizzie: i think windos api bindings are somewhat rare female esolang programmers?' and someone replied with subject ' my wife woke up...'. 20:55:58 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 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:10 yes, like that 20:56:31 I'd like to contrast this to Roborosewater, which usually does a good job of keeping the whole card coherent 20:56:36 `? roborosewater 20:56:36 RoboRosewater is generating random Magic: the Gathering cards, see https://mobile.twitter.com/roborosewater 21:13:51 -!- ais523 has joined. 21:14:53 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:14:54 undecidable 21:15:30 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 I thought that was how you were proposing to use the theorem the other day, though I don't remember exactly. 21:16:36 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 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:24 ais523: hi! see the logs 21:18:45 ais523 is already seeing the logs. 21:19:05 yeah 21:19:13 he generally does 21:20:18 he's probably seen https://esolangs.org/logs/2019-09-29.html#lk already 21:20:45 this is one of those rare cases where I can answer a technical question on #esoteric 21:20:58 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 b_jonas: I saw that a while ago, just wasn't online to reply 21:21:28 I'd found a solution to the problem by then anyway (and even posted it in-channel) 21:21:53 ais523: which three? you are one of them, that's easy 21:22:09 although, how does "no utf8" have the same semantics as BEGIN? :-D 21:22:15 b_jonas: cpressey, obviously 21:22:27 the first name that came to mind for the third was Keymaker 21:22:49 I think oklopol might also have done so 21:23:08 I'll look these up 21:23:18 also Martin Ender 21:23:28 ais523: it doesn't technically have exactly the same semantics, but the differences don't matter here 21:23:50 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 ones that are loaded when the interpreter is started 21:24:17 I know what the utf8 "module" does 21:24:22 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 but I'm confused as to why it makes the assignment to $^H happen at compile time 21:24:34 the `no` statement, that is 21:24:41 ooh, I figured it out 21:24:58 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 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 oh right, the utf8 module's import has another function that I totally didn't think of 21:25:53 that could be confusing 21:26:00 it's totally obsolete so I forgot about it 21:26:13 I only thought of the public functions in it 21:26:57 utf8::import doesn't inspect its arguments, does it? 21:27:29 it doesn't, I just checked its source code 21:27:55 (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 I wrote a UTF8 decoder but it's pretty naive. 21:28:35 I should write a fast one that uses a state machine. 21:28:51 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 (bigint is an example for a pragma that isn't like that) 21:29:44 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 bigint is written in terms of overload::constant, which seems to do the real magic 21:31:40 ais523: yeah 21:32:41 it appears to in turn be implemented via assigning to %^H, which has a strong implication of compiler magic 21:33:12 really? that seems unlikely because I think %^H is newer than overload::constant 21:33:35 the implementation could have been changed to make use of the new feature 21:33:47 could, but that seems unlikely 21:33:55 maybe I just remember incorrectly about $^H 21:33:57 um 21:33:59 about %^H 21:34:03 %^H is old 21:34:05 no 21:34:06 I mean 21:34:10 $^H is old, I know that 21:34:15 -!- atslash has joined. 21:34:21 maybe %^H is old too, I just think it's newer for some reason 21:35:28 let me check 21:35:58 ais523: thanks 21:36:21 bye all, I try to fix my sleepdule 21:36:37 fwiw, I know Agda much better than Idris (although don't know either particularly well) 21:37:47 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 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 so it's changinig both %^H and $^H, with nothing else happening 21:39:53 ok 21:40:07 anyway, I was probably wrong about %^H, it's likely old 21:40:30 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 that "shift, shift" seems really ominous for some reason, but I guess it's just an obfuscated way to return $_[1] 21:46:17 wow, the demon Bozmodiklax returns! I think that's his third appearance in smbc 21:46:55 it's nice when a gag-a-day comic has continuity 21:47:45 well, sort of continuity 21:48:06 he was much more dangerous the last time, wanting to blot out the sun and shroud Earth in a night eternal 21:55:25 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 autogenerating an infinite tape. 21:56:19 the sentential form is a little awkward. 21:56:44 is that text written in English or an esolang or a literal translation from one to the other? 21:57:14 it's an esolang. 21:57:43 small syntactic variant on a language I posted about earlier, I'll re-post. 21:57:49 https://hatebin.com/qsqfryjtfv 21:59:33 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 tuples are just sequences of tokens delimited by spaces. 22:00:37 tuples in a pattern are delimited by ',' or '?'. 22:01:21 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 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:56 `5 22:20:58 1/2:1007) ... I was thinking maybe octave's fact() function is the factorial. octave:1> fact(20) Richad Stallman's pinky finger is really a USB memory stick. I don't think that's 20!. \ 625) if the halting problem was solved, as a placebo.. would it benefit people? \ 991) in the time it takes light to travel from Hexham to Finland, I can generate almost 20 new topics for #esoteric \ 241) `n 22:21:01 2/2:klopol> shit would make great currency, because everyone would have it and you could literally be filthy rich \ 501) 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.