00:00:02 Agner's docs be with you 00:00:22 moony: well, I was planning to a) optimise for size, because that's objective; b) at least initially concentrate only on the integer registers 00:00:28 (not even memory) 00:00:47 At any rate, if you're talking about repeated recompilation during development, you should include the cost of the optimizing compiler in your wasted cycles. 00:01:11 yes, there's an argument for using only limited optimisation during development 00:01:12 If you're building a program to ship to many people, it makes sense to spend more time optimizing it. But that's a tiny fraction of your builds. 00:01:15 that's pretty much what -Og is for 00:01:37 and -Og's generated code is far from terrible, given the tradeoffs it has to make 00:08:04 ais523: have fun handling instructions like the multiply instruction 00:08:32 moony: in what way? 00:08:41 output registers are fixed 00:08:57 that doesn't make it harder, just more tedious 00:09:03 I guess that's what you meant by "have fun" 00:09:08 yes 00:09:10 that's what i ment 00:09:15 it's annoying and tedious :P 00:09:15 (actually, from Z3's point of view it makes things easier due to having fewer possibilities to try) 00:09:50 Oh man: https://mightyapp.com/ 00:10:18 What a mega-optimization. 00:10:23 pfffft 00:10:45 what they don't mention: 00:10:50 *streaming* 00:11:05 maybe use firefox instead, heard it's faster 00:12:06 No, that's the secret sauce optimization superpower. 00:12:41 Web software wasn't in the cloud enough, so now you have a second layer of cloud. 00:13:19 *steals link* 00:13:26 *runs off to hellomouse to share* 00:34:09 I wonder if that mightyapp thing is a joke 00:34:14 I don't think there's enough information to tell 00:34:25 and I can believe both that it's meant as a joke, and that it's meant seriously 00:35:19 It's certainly a joke, but I don't think it's meant as one. 00:35:22 I'm leaning towards joke, on the basis that a) the name is wrong and b) there aren't any terms of service or the like, which a company seriously setting something like this up would almost invariably have 00:35:53 i hope it's a joke. it's certainly funny 00:35:57 also, the "request access" link goes to a different domain 00:36:16 so this has been set up on a really low budget by someone without programming expertise, which seems at odds with the claims they're making 00:36:33 so that makes it most likely that it's a prank, and second most likely that it's a scam, I think 00:36:41 mmmm 00:36:43 "an actual product we intend to commercialise and have the skill to make" is a distant third 00:37:45 the ironic thing is, a product like that genuinely /could/ make most pages load faster, I suspect 00:38:48 HTML is /way/ too complex 00:38:54 HTML replacement when 00:38:59 -!- iczero has joined. 00:39:56 -!- xkapastel has quit (Quit: Connection closed for inactivity). 00:40:58 `welcome iczero 00:40:59 iczero: 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.) 00:44:20 [[Malbolge]] https://esolangs.org/w/index.php?diff=65583&oldid=64726 * A * (+218) /* External resources */ 00:44:35 [[Malbolge]] M https://esolangs.org/w/index.php?diff=65584&oldid=65583 * A * (-1) /* External resources */ typo 00:50:53 -!- arseniiv has quit (Ping timeout: 245 seconds). 00:55:27 -!- adu has joined. 01:06:23 [[Malbolge programming]] M https://esolangs.org/w/index.php?diff=65585&oldid=52491 * A * (+181) 01:07:39 [[Malbolge programming]] https://esolangs.org/w/index.php?diff=65586&oldid=65585 * Ais523 * (-67) /* External resources */ you kind-of have to read the instructions to learn the language, a denormalizer isn't going to do much to help (especially as it affects data as well as code) 01:15:01 -!- adu has quit (Quit: adu). 02:58:44 -!- moony has quit (Ping timeout: 252 seconds). 03:00:34 -!- iczero has quit (Ping timeout: 252 seconds). 03:00:41 -!- Bowserinator_ has quit (Ping timeout: 250 seconds). 03:09:47 -!- Bowserinator has joined. 03:10:18 -!- moony has joined. 03:10:30 -!- iczero has joined. 03:11:57 -!- ais523 has quit (Quit: quit). 04:21:03 -!- Sgeo_ has joined. 04:23:49 -!- Sgeo has quit (Ping timeout: 258 seconds). 04:29:24 [[Malbolge]] M https://esolangs.org/w/index.php?diff=65587&oldid=65584 * MilkyWay90 * (+1) 05:37:05 -!- atslash has joined. 06:17:52 -!- atslash has quit (Ping timeout: 244 seconds). 06:41:54 -!- diginet has quit (Quit: diginet has quit!). 06:43:57 -!- b_jonas has joined. 06:45:48 " Isn't the basic idea of a linker that it supports linking code written in multiple languages?" => yes, so g++ can invoke gold in a way that it can link C, fortran and C++ together; ghc can invoke a linker such that it can link C and haskell together, and rustc can link rust and c together. If you want to link any two of C++, haskell and rust, you still can, but you have to guess all the magic 06:45:54 linker incantations required. 06:46:03 [[Truth-machine]] M https://esolangs.org/w/index.php?diff=65588&oldid=65568 * A * (+283) /* Malbolge */ Normalized using my normalization tool 06:46:11 It's pretty sad really, especially the haskell part. 06:47:28 " I mean that I find the argument that compilers should be way faster" => the people who say that are the ones with sour grape because they don't have a good optimizing compiler 06:49:34 " Well, a very fast debug-only build should be available." => still no. debug build should be somewhat faster, but it should still optimize. debug build is -O, production build is -O2. that debug builds used to be fast a decade ago itself was an artifact of that compilers were worse at optimizing and producing debug info for the optimized file that a debugger can read. that's no longer a 06:49:40 limitation, compilers got better in everything. 06:52:24 " the workaround we were always told to use on Wikipedia was to serve as text/css" => interesting 06:54:32 " Man, NetHack has all sorts of problems." => there are (or used to be) tables in C files generated by a program built at compile time, where the program that generates it includes a header that has macros that refer to the table in the generated output. 06:55:06 those unclear dependency orders were what really made me angry about its code organization 06:58:54 " moony: well, I was planning to a) optimise for size," => I suggest that you optimize for the number of instructions instead, then size for equal number of instructions 07:00:37 " yes, there's an argument for using only limited optimisation during development / that's pretty much what -Og is for" => no, AFAIK -O is for limited optimization during development, -Og is a close variant of that that specifically won't do optimizations that would confuse a runtime debugger (provided you use a new enough version of gdb) 07:00:59 s/runtime/interactive/ 07:05:56 If compilers got better in everything why are they way slow? 07:08:20 shachaf: they're not slow. I can compile anything much faster than I used to be able to on a current machine than how much it took me on an ancient machine with gcc 2.95 07:08:51 at least, they didn't slow down so much, so with faster hardware, it is effectively faster 07:08:58 -!- b_jonas has quit (Remote host closed the connection). 07:12:31 tcc is way faster than gcc 07:12:42 -!- cpressey has joined. 07:13:55 Good morning. I disagree with the statement "All continuations are delimited". 07:15:01 If you accept a model where a computation can run without end, such as (I dunno) Turing machines, then I think you have to accept there are continuations without end too. 07:16:29 Even on a real computer, when the OS starts a program, it passes it a continuation (conceptually at least), and when that program "terminates", all it's doing, is continuing that continuation. 07:20:50 I have a good feel for how delimited continuations work now but I'd like an implementation to test some things with. 07:20:53 Is there one? 07:22:42 shachaf: I have such a language bookmarked, need to find it. It uses prompt/control I think 07:22:54 Does Racket or something have it? 07:23:15 shachaf: https://github.com/manuel/wat-js 07:23:25 That is not a promising URL. 07:24:05 That's all I got. 07:24:13 I'm not really into these thigns. 07:25:02 meanwhile a duckduckgo search for "racket delimited continuations" returns a hit on the Racket docs 07:25:06 I guess it's just that the implementation is in JavaScript or something? 07:25:30 I did look at the Racket documentation but I couldn't quickly figure out a way to make it work, or whether shift/reset is included at all. 07:26:04 One thing that I'd like to have along with delimited continuations is something like destructors or Go's "defer", code that runs when you exit a scope. 07:26:09 Looks like it's got call/prompt 07:26:31 Maybe I just need to figure out the right #lang incantation. 07:27:13 shachaf: https://docs.racket-lang.org/reference/cont.html lists shift and reset and cupto and prompt and allllll the things 07:27:53 re destructors, I think you'd use dynamic-wind for conventional continuations 07:29:06 Hmm, so they do. 07:29:14 I guess I just needed (require racket/control) 07:32:24 OK, some of my questions have been answered. 07:34:05 I guess it's even better than I thought in most respects. 07:34:36 Can you do the thing I want? I want a thing that creates an early exit point that can be used later. 07:34:58 Something like (reset (let ((exit ...)) (...whatever, which may include more resets... (exit x)))) 07:42:16 -!- xkapastel has joined. 07:47:51 -!- AnotherTest has joined. 07:54:51 Maybe the answer is that I should be using a prompt tag instead of shift/reset. 07:59:32 -!- wob_jonas has joined. 07:59:40 -!- wob_jonas has changed nick to lob_jonas. 08:00:00 That said, the programs that we can compile have gotten huge, which is part of why compilation can be slow. 08:02:56 -!- atslash has joined. 08:04:01 shachaf: if you want an exit point, which is a much simpler special case of a continuation to which you can only go out in the stack, not in again once you exited the frame where you created it, then try call/ec, see "https://docs.racket-lang.org/reference/cont.html?q=call%2Fec#%28def._%28%28lib._racket%2Fprivate%2Fletstx-scheme..rkt%29._call%2Fec% 08:04:02 29%29" 08:04:35 it's like longjmp because it can jump out from deep inside a function call, but not back once the setjmp exited 08:04:43 Yes, I saw it. 08:05:26 What I actually want is neither of them. 08:05:29 except it differs from longjmp because it still handles dynamic-wind destructors 08:05:46 you want something in between, delimited? 08:07:32 you could create a weak cell or ephemeron or whatever those are called these days, where the weak key points to a dummy object that you create in the stack frame to which you want to delimit the continuation, and the value holds the continuation itself. then you can't invoke the continuation through this once the delimiting stack frame has exited. 08:07:38 Well, what I actually want is evaluated entirely at compiletime, for one. 08:07:50 I don't want any continuations or even indirect jumps at runtime. 08:07:53 not only you can't invoke it, it can be garbage collected some time after the stack frame exits 08:08:02 oh... that's different 08:08:12 But the semantics might be similar in other ways. 08:09:17 so you want something like a goto/comefrom? 08:09:50 only it can see the label in an outer function that created the closure, lexically? 08:10:35 Maybe? 08:11:08 and do you want it to be able to re-enter a stack frame too, not just exit? 08:11:26 I think maybe prompt-at is something like what I want. But it seems to want you to make your own tag for some reason? I must be misunderstanding it. 08:11:26 even through a closure that you leak out? nah, that'd be difficult 08:11:36 There should be no closures since it all happens at compiletime. 08:11:49 Continuations are like the least compile-time thing I can think of 08:12:53 That's why I didn't want to model my feature as continuations, at first. 08:13:04 But I think it might just be the right thing unfortunately. 08:14:41 If it's just the right thing, why is it unfortunate? You speak in riddles. 08:16:48 I can do part of what I want with the shift/reset in http://hackage.haskell.org/package/CC-delcont-0.2.1.0/docs/Control-Monad-CC.html , at least 08:17:02 Oh, it's unfortuantely because delimited continuations are super-mega-complicated 08:17:05 s/ly// 08:17:08 May I suggest you write some test cases for the feature, so that you at least have a clear idea what it... does? 08:17:19 Sure, I've talked about some of this before. 08:17:29 Not talk, though, test case 08:18:10 Hmm, that would be easier if I knew what it was exactly. But then I wouldn't need to learn from continuations. 08:18:25 The test cases are to help you know what it is exactly 08:19:38 I have a 2000 line file full of various examples trying various things. 08:19:51 One thing. Many test cases for one thing. 08:20:28 Most of the file is about this one feature. 08:21:26 I'm a bit confused by what you're asking. You want coherent working test cases for this thing, but the problem is that I'm confused about what this thing is. 08:22:08 Maybe I can try it anyway. 08:23:09 How would you identify this thing? "In this instance I would expect it to do this, in this other instance I would expect it to... (etc)" These are test cases. 08:23:36 https://github.com/rain-1/continuations-study-group/blob/master/scripts/2010-asai-kitani-eval11-numbers.ml 08:24:05 there is a compiler and interpreter that implements lambda calculus with delimited continuations 08:28:37 -!- Lord_of_Life has quit (Ping timeout: 246 seconds). 08:32:15 -!- Lord_of_Life has joined. 08:33:18 [[Alphabetti spaghetti]] https://esolangs.org/w/index.php?diff=65589&oldid=46644 * Stasoid * (+120) /* Interpreter */ 08:41:23 cpressey: http://slbkbs.org/tmp/2019-08-21-cpressey-test-cases.txt is something. 08:41:37 These aren't actually test cases because I don't know what these lambdas actually are. 08:44:47 shachaf: That is at least clearer. 08:46:24 -!- andrewtheircer has joined. 08:46:24 h 08:46:41 e 08:47:15 actually the spelling of queue makes sense 08:47:18 Q-ue-ue 08:49:32 how about the spelling of deque? 08:50:18 or that of cue? 08:51:04 cue - ck (c sound) - ue 08:51:09 ck-u-e 08:51:12 it makes sense 08:57:33 got it? 08:59:14 shachaf: This is my "compile time" interpretation: ` is syntactic sugar (or rather the lack of it) for ;. @ is a label just after the block it's used in. defer is remembered when it's seen, but code isn't generated for it, until a jump out of the block. 09:00:23 I agree on the latter two. 09:00:23 is this related to esolangs or 09:00:28 I'm not sure what you mean by the first one? 09:02:48 for (xs, \x -> { BODY }) <==> { x := for(xs)`; BODY } 09:03:00 looks like you could transform that syntactically? 09:03:13 defer is special because it inserts the code at every exit (once at the block's }, and once for uses of @, I suppose). 09:03:22 Yes, it's certainly intended to be a syntactic transformation. 09:03:51 { x := for(xs); y := for(ys); BODY } turns into for(xs, \x -> for(ys, \y -> { BODY })) 09:04:02 ok, I have to afk for a bit, but it doesn't look like you need to think much about continuations for this 09:04:03 Er, I forgot the two `s in the left side. 09:04:08 you can use staging to make things happen at compile time 09:04:33 And { x := for(for(xss)`)`; BODY } turns into for(xss, \xs -> for(xs, \x -> { BODY })) and so on. 09:04:36 delimited continuations + staging is a powerful technique 09:04:58 http://okmij.org/ftp/meta-programming/calculi.html#circle-shift 09:05:01 I agree that this is just a syntactic transformation, that's kind of the point. 09:05:25 One question here is, what is "for", and what's the type of "exit", and what are these lambdas? 09:05:36 test 09:06:36 -!- tromp has quit (Remote host closed the connection). 09:20:29 "for" is something like a function, but evaluated/inlined at compiletime. 09:21:07 "exit" is also a thing like that, and so is the argument to "for". 09:21:52 These are very similar to regular delimited continuations, except for the demand that they only exist at compiletime. So you can't pass "exit" or one of these lambdas as an argument to a regular function. 09:22:57 Do you know of a language that has that kind of thing? 09:23:54 -!- tromp has joined. 09:25:41 shachaf: how about... the language you're eventually going to create to test this thing? 09:27:21 shachaf: I think one reason you don't really need continuations for this is because you don't actually retry anything with these operators. 09:27:31 "Continuations" at compile-time are "labels". 09:27:35 Roughly speaking. 09:27:39 afk again. 09:27:47 fun fact: a town in west virginia requested foreign aid from the USSR to repair a bridge 09:28:25 cpressey: Retry? 09:29:28 I agree about continuations at compile-time. 09:29:51 This is why I said for a long time that I don't really want continuations because what I want is much simpler. 09:36:04 lob_jonas: Yes, that sounds like a good one. 10:02:11 -!- arseniiv has joined. 10:16:21 hi 10:17:02 -!- lob_jonas has quit (Quit: Ping timeout (120 seconds)). 10:19:38 -!- andrewtheircer has quit (Remote host closed the connection). 10:51:02 shachaf: I should probably let you sleep, but: when you capture a continuation, sometimes it's to continue it more than once (e.g. backtracking) but you're not doing that here. 10:53:14 "for" looks like a function that takes a function, to me. If you want to say, it must be an anonymous function which lexically follows the "for", so you can optimize/analyze it better, you can do that. 10:57:53 For the life of me @ looks a lot like setjmp/longjmp. You also want some static guarantees (you can't pass the value of @ around) but those are additional; the basic mechanism is that. 11:01:36 Your additional lexical constraints might be misleading you into thinking it's an essentially lexical mechanism, but I don't think it is. 11:01:38 I'll stop now. 11:04:32 -!- xkapastel has quit (Quit: Connection closed for inactivity). 11:06:31 @time shachaf 11:06:32 Local time for shachaf is Wed Aug 21 04:06:31 2019 11:18:57 -!- lob_jonas has joined. 11:19:04 ouch 11:31:17 lob_jonas: whassup 11:32:43 cpressey: I just got scheduled for dental root canal operation. The first time in my life. I was sort of mentally prepared for that. But 11:33:32 the root canal specialist surgeon said that he's looked at the X-ray and my tooth looked nasty so I'll need three appointments for this tooth. 11:33:53 I was already scared of this operation, but now I'm more scared. 11:42:14 lob_jonas: I had a root canal once. It took multiple appointments, and in the end they couldn't save the tooth anyway. It wasn't fun, and there was some pain. But it's also not amongst my worst memories (I rarely think of it.) 11:42:45 It's also the sort of thing where it's a finite amount of time, and you can remind yourself of that during it. 11:44:35 cpressey: yes, the point of a root canal is that you only get them when they've given up on the tooth already, it can't be saved (or so the denist believes), so they turn it to an undead tooth with some metalic golem core surrounded by the empty shell of what used to be the tooth. 11:45:15 also I hear the experience with it has a high variance, it's terrible for some people but acceptible for others. 11:45:54 which makes sense because I had three wisdom teeth extracted, and they all behaved differently 11:46:19 (the first one was terrible, the second one was trivial, the third one was ok but the gum healed ugly) 11:51:27 -!- PaniniTheDevelop has joined. 11:51:35 nah 12:33:03 -!- PaniniTheDevelop has quit (Remote host closed the connection). 12:47:57 -!- xkapastel has joined. 12:56:43 -!- lob_jonas has quit (Quit: Ping timeout (120 seconds)). 13:54:59 [[FAKE]] M https://esolangs.org/w/index.php?diff=65590&oldid=65453 * Argv0 * (+61) Typos and grammar corrections 14:09:50 -!- PaniniTheDevelop has joined. 14:15:01 -!- mich181189 has quit (Ping timeout: 250 seconds). 14:15:12 -!- mich181189 has joined. 14:15:45 -!- Lymee has joined. 14:15:50 -!- ProofTechnique has quit (Ping timeout: 250 seconds). 14:16:22 -!- sparr has quit (Ping timeout: 250 seconds). 14:16:43 -!- Lymia has quit (Ping timeout: 250 seconds). 14:16:44 -!- Lymee has changed nick to Lymia. 14:18:06 -!- ski has quit (Ping timeout: 268 seconds). 14:18:24 -!- zzo38 has quit (Ping timeout: 272 seconds). 14:18:36 -!- ProofTechnique has joined. 14:18:41 -!- ski has joined. 14:21:10 Hmm, is there a thing like linear types that is linear kinds? 14:28:55 hello 14:30:34 -!- sparr has joined. 14:35:43 [[ROT-13]] N https://esolangs.org/w/index.php?oldid=65591 * A * (+335) Created page with "[[ROT-13]] is an extension of the [[ROT13]] encoder/decoder. ==Alphabetic characters== They are simply rotated using this following lookup table:
 ABCD...WXYZ NOPQ...JKLM..."
14:36:14  new page
14:39:56 -!- PaniniTheDevelop has quit (Remote host closed the connection).
14:41:17  [[Esolang:Introduce yourself]]  https://esolangs.org/w/index.php?diff=65592&oldid=65525 * PaniniTheDeveloper * (+253) /* Introductions */
14:47:05  hello
15:11:13 -!- tromp has quit (Remote host closed the connection).
15:32:02 -!- tromp has joined.
15:51:26 -!- adu has joined.
15:58:37 -!- cpressey has quit (Quit: A la prochaine.).
16:36:23 -!- tromp_ has joined.
16:38:35 -!- tromp has quit (Ping timeout: 252 seconds).
17:12:05 -!- b_jonas has joined.
17:21:23 -!- PaniniTheDevelop has joined.
17:24:57 -!- FreeFull has joined.
17:28:29 -!- Phantom_Hoover has joined.
17:37:31  [[Esolang:Sandbox]]  https://esolangs.org/w/index.php?diff=65593&oldid=62912 * PaniniTheDeveloper * (+64) 
17:38:44  [[Esolang:Sandbox]]  https://esolangs.org/w/index.php?diff=65594&oldid=65593 * PaniniTheDeveloper * (-39) 
17:38:48  Taneb: sure, kinds are just like a type system but one level up
17:39:12  in a linear kind system you could do   data Foo a = Bar a   but not  data Foo a = Bar a a  or  data Foo a = Bar
17:39:18  you have to use the type variable 'a' exactly once
17:39:25  [[Esolang:Sandbox]] M https://esolangs.org/w/index.php?diff=65595&oldid=65594 * PaniniTheDeveloper * (-25) 
17:39:32  whether that is useful, I do not know
18:39:43  cpressey: Joke's on you, I was already asleep.
18:39:49  Joke's on me, cpressey isn't here.
18:40:57  In lens things we talked about "linear functors" and "affine functors" and so on.
19:22:29  and what does that mean
19:23:55  They're like the things you said.
19:24:47  You can write a Lens' (Foo a) a for your first Foo and a Traversal (Foo a) a for the second Foo and so on.
19:25:21  data Maybe a = Nothing | Just a is an example of an affine functor, since it's of the form "Ax + B"
19:26:33  I guess every linear functor is going to be of the form "(E,a)" for some E, like a 1D vector space.
19:47:08  [[Esolang:Introduce yourself]] M https://esolangs.org/w/index.php?diff=65596&oldid=65592 * PaniniTheDeveloper * (+0) 
19:49:45  [[Esolang:Introduce yourself]] M https://esolangs.org/w/index.php?diff=65597&oldid=65596 * PaniniTheDeveloper * (+0) Undo revision 65596 by [[Special:Contributions/PaniniTheDeveloper|PaniniTheDeveloper]] ([[User talk:PaniniTheDeveloper|talk]])
19:50:16 -!- PaniniTheDevelop has quit (Remote host closed the connection).
20:09:13 -!- Sgeo_ has quit (Read error: Connection reset by peer).
20:09:38 -!- Sgeo_ has joined.
20:14:19 -!- b_jonas has quit (Quit: leaving).
20:26:35 -!- Lord_of_Life_ has joined.
20:29:51 -!- Lord_of_Life has quit (Ping timeout: 244 seconds).
20:29:57 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
20:47:43 -!- xkapastel has quit (Quit: Connection closed for inactivity).
20:59:07 -!- xkapastel has joined.
21:53:27 -!- AnotherTest has quit (Ping timeout: 264 seconds).
22:27:46 -!- FreeFull has quit.
22:51:16 -!- arseniiv has quit (Ping timeout: 248 seconds).
22:57:10 -!- Phantom_Hoover has quit (Quit: Leaving).
23:37:43 -!- xkapastel has quit (Quit: Connection closed for inactivity).