2014-10-13T00:17:11Z robot-beethoven joined #scheme 2014-10-13T00:19:19Z lrs quit (Ping timeout: 272 seconds) 2014-10-13T00:19:40Z tcsc quit (Quit: bye!) 2014-10-13T00:38:00Z jusss joined #scheme 2014-10-13T00:42:38Z kidd_ quit (Remote host closed the connection) 2014-10-13T00:55:07Z leif__ is now known as leif 2014-10-13T00:55:42Z leif is now known as Guest32799 2014-10-13T01:01:29Z leif__ joined #scheme 2014-10-13T01:07:01Z aretecode quit (Ping timeout: 260 seconds) 2014-10-13T01:09:37Z aretecode joined #scheme 2014-10-13T01:13:28Z Rodya_ quit (Ping timeout: 255 seconds) 2014-10-13T01:18:41Z Vutral quit (Ping timeout: 260 seconds) 2014-10-13T01:22:23Z Vutral joined #scheme 2014-10-13T01:26:12Z Rodya_ joined #scheme 2014-10-13T01:30:17Z tobik quit (Ping timeout: 260 seconds) 2014-10-13T01:31:03Z tobik joined #scheme 2014-10-13T01:49:05Z psy_ quit (Ping timeout: 255 seconds) 2014-10-13T01:58:32Z es quit (Read error: Connection reset by peer) 2014-10-13T01:59:40Z phipes joined #scheme 2014-10-13T02:02:17Z bjz joined #scheme 2014-10-13T02:16:05Z jeapostrophe quit (Ping timeout: 260 seconds) 2014-10-13T02:19:21Z Vutral quit (Ping timeout: 260 seconds) 2014-10-13T02:29:48Z Vutral joined #scheme 2014-10-13T02:34:57Z psy_ joined #scheme 2014-10-13T02:38:35Z Vutral quit (Excess Flood) 2014-10-13T02:39:36Z psy_ quit (Ping timeout: 246 seconds) 2014-10-13T02:39:59Z Vutral joined #scheme 2014-10-13T02:43:53Z daviid quit (Ping timeout: 258 seconds) 2014-10-13T02:47:05Z Gyps quit (Remote host closed the connection) 2014-10-13T02:48:04Z tadni` quit (Remote host closed the connection) 2014-10-13T02:49:36Z psy_ joined #scheme 2014-10-13T02:50:38Z tadni` joined #scheme 2014-10-13T03:03:43Z amgarchIn9 joined #scheme 2014-10-13T03:05:00Z ivanshmakov quit (Ping timeout: 260 seconds) 2014-10-13T03:06:25Z dmiles_afk quit (Ping timeout: 255 seconds) 2014-10-13T03:06:30Z dmiles joined #scheme 2014-10-13T03:07:22Z alexei___ quit (Ping timeout: 245 seconds) 2014-10-13T03:07:53Z effy quit (Ping timeout: 260 seconds) 2014-10-13T03:08:26Z effy joined #scheme 2014-10-13T03:23:05Z mrowe is now known as mrowe_away 2014-10-13T03:27:04Z alimiracle joined #scheme 2014-10-13T03:31:25Z alimiracle quit (Ping timeout: 246 seconds) 2014-10-13T03:31:31Z ivanshmakov joined #scheme 2014-10-13T03:38:22Z araujo quit (Quit: Leaving) 2014-10-13T03:48:33Z Rodya_ quit (Quit: Ex-Chat) 2014-10-13T03:48:42Z MichaelRaskin quit (Quit: MichaelRaskin) 2014-10-13T03:56:20Z jhao quit (Ping timeout: 260 seconds) 2014-10-13T03:59:13Z Vutral quit (Ping timeout: 260 seconds) 2014-10-13T04:02:28Z pjdelport quit (Quit: Connection closed for inactivity) 2014-10-13T04:05:22Z jusss quit (Ping timeout: 240 seconds) 2014-10-13T04:08:21Z Vutral joined #scheme 2014-10-13T04:12:30Z tadni` quit (Remote host closed the connection) 2014-10-13T04:13:46Z tadni` joined #scheme 2014-10-13T04:44:11Z c107 quit (Remote host closed the connection) 2014-10-13T04:52:13Z c107 joined #scheme 2014-10-13T04:53:45Z mrowe_away is now known as mrowe 2014-10-13T04:54:48Z mrowe is now known as mrowe_away 2014-10-13T04:56:25Z theseb joined #scheme 2014-10-13T04:59:09Z mrowe_away is now known as mrowe 2014-10-13T05:00:18Z mrowe is now known as mrowe_away 2014-10-13T05:04:37Z mrowe_away is now known as mrowe 2014-10-13T05:05:23Z mrowe is now known as mrowe_away 2014-10-13T05:07:22Z ananna quit (Ping timeout: 245 seconds) 2014-10-13T05:09:59Z mrowe_away is now known as mrowe 2014-10-13T05:14:15Z jusss joined #scheme 2014-10-13T05:15:17Z dmiles quit (Read error: Connection reset by peer) 2014-10-13T05:19:44Z ananna joined #scheme 2014-10-13T05:19:44Z ananna quit (Changing host) 2014-10-13T05:19:44Z ananna joined #scheme 2014-10-13T05:20:39Z Riastradh quit (Ping timeout: 264 seconds) 2014-10-13T05:24:07Z ananna quit (Ping timeout: 255 seconds) 2014-10-13T05:30:08Z BossKonaSegwaY1 quit (Ping timeout: 260 seconds) 2014-10-13T05:33:00Z kvda quit (Quit: z____z) 2014-10-13T05:33:44Z BossKonaSegwaY joined #scheme 2014-10-13T05:49:16Z Guest92400 joined #scheme 2014-10-13T05:50:30Z phipes quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2014-10-13T05:54:15Z wingo joined #scheme 2014-10-13T05:59:02Z wingo quit (Ping timeout: 245 seconds) 2014-10-13T06:00:51Z guampa quit (Ping timeout: 264 seconds) 2014-10-13T06:02:00Z guampa joined #scheme 2014-10-13T06:11:59Z oleo quit (Quit: Verlassend) 2014-10-13T06:18:17Z acieroid quit (Ping timeout: 260 seconds) 2014-10-13T06:21:06Z mrowe is now known as mrowe_away 2014-10-13T06:29:36Z wingo joined #scheme 2014-10-13T06:39:10Z bjz quit (Ping timeout: 272 seconds) 2014-10-13T06:43:36Z theseb quit (Quit: Leaving) 2014-10-13T07:10:33Z Vutral quit (Ping timeout: 260 seconds) 2014-10-13T07:22:24Z MichaelRaskin joined #scheme 2014-10-13T07:25:49Z Vutral joined #scheme 2014-10-13T07:33:58Z kvda joined #scheme 2014-10-13T07:52:09Z Vutral_ quit (Ping timeout: 272 seconds) 2014-10-13T07:52:59Z DGASAU quit (Read error: Connection reset by peer) 2014-10-13T07:53:00Z Vutral_ joined #scheme 2014-10-13T07:53:01Z Vutral quit (Ping timeout: 260 seconds) 2014-10-13T07:53:18Z rtra` joined #scheme 2014-10-13T07:53:23Z DGASAU joined #scheme 2014-10-13T07:53:46Z DGASAU quit (Read error: Connection reset by peer) 2014-10-13T07:54:21Z DGASAU joined #scheme 2014-10-13T07:57:08Z rtra quit (Ping timeout: 260 seconds) 2014-10-13T07:57:08Z rtra` is now known as rtra 2014-10-13T08:06:56Z Vutral joined #scheme 2014-10-13T08:09:41Z psy_ quit (Quit: Leaving) 2014-10-13T08:13:54Z aoh quit (Ping timeout: 244 seconds) 2014-10-13T08:14:29Z MichaelRaskin quit (Ping timeout: 260 seconds) 2014-10-13T08:15:21Z kvda quit (Quit: z____z) 2014-10-13T08:18:13Z Vutral_ quit (Ping timeout: 260 seconds) 2014-10-13T08:20:15Z aoh joined #scheme 2014-10-13T08:22:22Z aoh quit (Changing host) 2014-10-13T08:22:22Z aoh joined #scheme 2014-10-13T08:22:40Z lrs joined #scheme 2014-10-13T08:24:31Z c107 quit (Remote host closed the connection) 2014-10-13T08:24:43Z kongtomorrow joined #scheme 2014-10-13T08:26:09Z Vutral quit (Ping timeout: 260 seconds) 2014-10-13T08:31:57Z drdanmaku quit (Quit: Connection closed for inactivity) 2014-10-13T08:38:56Z aoh quit (Ping timeout: 250 seconds) 2014-10-13T08:47:22Z kongtomorrow quit 2014-10-13T08:48:17Z Perkol joined #scheme 2014-10-13T08:54:57Z robot-beethoven quit (Quit: ERC Version 5.3 (IRC client for Emacs)) 2014-10-13T09:00:30Z mrowe_away is now known as mrowe 2014-10-13T09:04:17Z Vutral joined #scheme 2014-10-13T09:06:17Z aoh joined #scheme 2014-10-13T09:08:35Z bokr joined #scheme 2014-10-13T09:09:34Z Vutral quit (Excess Flood) 2014-10-13T09:13:20Z pjdelport joined #scheme 2014-10-13T09:15:32Z Soft quit (Ping timeout: 260 seconds) 2014-10-13T09:27:23Z Vutral joined #scheme 2014-10-13T09:28:44Z jusss quit (Read error: Connection reset by peer) 2014-10-13T09:33:44Z Vutral quit (Excess Flood) 2014-10-13T09:35:07Z mrowe is now known as mrowe_away 2014-10-13T09:35:43Z Vutral joined #scheme 2014-10-13T09:48:45Z Vutral quit (Ping timeout: 260 seconds) 2014-10-13T09:51:26Z Soft joined #scheme 2014-10-13T09:57:45Z stepnem joined #scheme 2014-10-13T09:59:42Z epsylon joined #scheme 2014-10-13T10:04:40Z przl joined #scheme 2014-10-13T10:08:47Z Vutral joined #scheme 2014-10-13T10:09:16Z gravicappa joined #scheme 2014-10-13T10:09:52Z Vutral quit (Excess Flood) 2014-10-13T10:12:32Z acieroid joined #scheme 2014-10-13T10:16:21Z Vutral joined #scheme 2014-10-13T10:24:42Z karswell` quit (Remote host closed the connection) 2014-10-13T10:42:21Z oldskirt_ joined #scheme 2014-10-13T10:44:58Z oldskirt quit (Ping timeout: 258 seconds) 2014-10-13T10:51:52Z przl quit (Ping timeout: 258 seconds) 2014-10-13T10:57:50Z daviid joined #scheme 2014-10-13T10:59:11Z kongtomorrow joined #scheme 2014-10-13T11:03:48Z kongtomorrow quit (Ping timeout: 260 seconds) 2014-10-13T11:25:42Z DGASAU quit (Read error: Connection reset by peer) 2014-10-13T11:26:04Z przl joined #scheme 2014-10-13T11:26:14Z DGASAU joined #scheme 2014-10-13T11:30:52Z przl quit (Ping timeout: 255 seconds) 2014-10-13T11:38:38Z jeapostrophe joined #scheme 2014-10-13T11:40:07Z kongtomorrow joined #scheme 2014-10-13T11:54:15Z przl joined #scheme 2014-10-13T11:59:22Z kongtomorrow quit 2014-10-13T12:05:40Z bokr quit (Quit: Leaving.) 2014-10-13T12:10:01Z przl quit (Ping timeout: 255 seconds) 2014-10-13T12:11:56Z jusss joined #scheme 2014-10-13T12:22:22Z dpk quit (Ping timeout: 245 seconds) 2014-10-13T12:22:47Z DerGuteMoritz quit (Ping timeout: 245 seconds) 2014-10-13T12:23:22Z rsf quit (Ping timeout: 240 seconds) 2014-10-13T12:23:23Z Razz quit (Ping timeout: 240 seconds) 2014-10-13T12:23:37Z fgudin quit (Ping timeout: 245 seconds) 2014-10-13T12:24:05Z Razz joined #scheme 2014-10-13T12:24:26Z fgudin joined #scheme 2014-10-13T12:24:52Z Natch quit (Ping timeout: 245 seconds) 2014-10-13T12:25:21Z dpk joined #scheme 2014-10-13T12:26:51Z DerGuteMoritz joined #scheme 2014-10-13T12:27:02Z rsf joined #scheme 2014-10-13T12:27:41Z Natch joined #scheme 2014-10-13T12:28:09Z _5kg quit (Ping timeout: 272 seconds) 2014-10-13T12:29:22Z petercommand quit (Ping timeout: 240 seconds) 2014-10-13T12:33:22Z jeapostrophe quit (Ping timeout: 240 seconds) 2014-10-13T12:36:49Z przl joined #scheme 2014-10-13T12:41:06Z przl quit (Ping timeout: 240 seconds) 2014-10-13T12:49:22Z lrs quit (Ping timeout: 240 seconds) 2014-10-13T12:56:33Z civodul joined #scheme 2014-10-13T12:57:02Z jeapostrophe joined #scheme 2014-10-13T12:57:02Z jeapostrophe quit (Changing host) 2014-10-13T12:57:02Z jeapostrophe joined #scheme 2014-10-13T12:58:04Z pnkfelix joined #scheme 2014-10-13T13:09:32Z Perkol quit (Remote host closed the connection) 2014-10-13T13:11:19Z _5kg joined #scheme 2014-10-13T13:12:57Z petercommand joined #scheme 2014-10-13T13:17:15Z BitPuffin joined #scheme 2014-10-13T13:17:18Z BitPuffin: hoi 2014-10-13T13:18:00Z BitPuffin: Anyone know what C version prescheme targets 2014-10-13T13:18:10Z BitPuffin: I'm considering writing my compiler in prescheme 2014-10-13T13:18:40Z przl joined #scheme 2014-10-13T13:19:44Z jusss quit (Read error: Connection reset by peer) 2014-10-13T13:27:52Z oleo joined #scheme 2014-10-13T13:35:58Z vanila joined #scheme 2014-10-13T13:40:56Z taylanub quit (Disconnected by services) 2014-10-13T13:41:44Z taylanub joined #scheme 2014-10-13T13:58:56Z lrs joined #scheme 2014-10-13T14:01:25Z jusss joined #scheme 2014-10-13T14:04:52Z stepnem quit (Ping timeout: 260 seconds) 2014-10-13T14:06:18Z stepnem joined #scheme 2014-10-13T14:12:09Z bjorkintosh quit (Ping timeout: 272 seconds) 2014-10-13T14:28:36Z LeoNerd: Random thoughts: call/cc.. and how horrible it is. Are there any sufficiently compelling use-cases for it, that would justify its inclusion in an implementation that otherwise wanted to avoid it and replace it with, say, call/ec and friends..? 2014-10-13T14:29:00Z LeoNerd: By removing call/cc I can place a whole tonne of guarantees on runtime behaviour that its mere presence would remove 2014-10-13T14:29:07Z vanila: I think that basically there's nothing good about call/cc 2014-10-13T14:29:18Z LeoNerd: Hmm.. Other than its presence in r5 2014-10-13T14:29:28Z LeoNerd: So you can't claim to be an r5 impl. without it 2014-10-13T14:29:45Z vanila: one neat thing is that the CPS semantics of callcc are in CPS 2014-10-13T14:29:52Z iterrogo joined #scheme 2014-10-13T14:30:00Z vanila: so you can very easy add this to a CPS based implementation of scheme 2014-10-13T14:30:11Z vanila: that's not true of reset/shift 2014-10-13T14:31:25Z LeoNerd: hmm 2014-10-13T14:33:53Z taylanub: LeoNerd: AFAIK what you want to do is implement delimited continuations, then implement call/cc in terms of those 2014-10-13T14:34:24Z LeoNerd: Yeah but even the delimited ones are still annoying for things like TCMC 2014-10-13T14:34:30Z LeoNerd: I just like the idea of TCMC 2014-10-13T14:34:44Z LeoNerd: (well and other generalisations of it).. I like the idea of guarded mutations 2014-10-13T14:34:53Z taylanub: what's TCMC? 2014-10-13T14:35:14Z LeoNerd: tailcall-modulo-cons 2014-10-13T14:35:36Z LeoNerd: The idea that (cons head (tailcall ...)) would be a tailcall if not for the cons. 2014-10-13T14:35:49Z taylanub: ah, I heard/read about that before but don't remember... 2014-10-13T14:36:01Z LeoNerd: So what you do is you arrange for the cons to be returned anyway, and tailcall to the nested function call with a special arrangement to ensure that the return value ends up in the right place 2014-10-13T14:36:49Z LeoNerd: Effectively it lets you build and return a list efficiently, by having the implementation arrange for the "head and tail pointer" logic to happen automatically underneath you, while just writing code that would still work "normally", albeit less efficiently 2014-10-13T14:37:20Z vanila: it's a clever optimization 2014-10-13T14:37:27Z LeoNerd: There are other generalisations, such as (+ 1 (tailcall ...)) 2014-10-13T14:37:52Z vanila: I wonder if we could use delimited continuations to implement TCMC functions more easilty 2014-10-13T14:38:00Z vanila: rather than asking the compiler to do them 2014-10-13T14:38:05Z LeoNerd: Amusingly gcc can already turn that form of code into a tailcall :) int strlen(char *s) { if(!*s) return 0; return 1 + strlen(s+1); } <== becomes a tailcall 2014-10-13T14:38:10Z vanila: (or manually turning them into it) 2014-10-13T14:38:22Z vanila: LeoNerd, I saw this recently! gcc is very powerful 2014-10-13T14:38:28Z taylanub: so it's like turning (define (a) (cons 'x (b))) (define (b) 'y) into (define (a) (b 'x)) (define (b x) (cons x 'y)) ? 2014-10-13T14:38:28Z LeoNerd: vanila: The primary problem with TCMC is that it doesn't play nicely with call/cc if there's any sort of chance of multiple invocation 2014-10-13T14:38:42Z vanila: yeah that's a good point 2014-10-13T14:38:54Z LeoNerd: But of course call/ec doesn't have that problem because call/ec doesn't guarantee you can invoke the continuation more than once. 2014-10-13T14:39:00Z LeoNerd: Atmost once is the rule.. which is fine against TCMC 2014-10-13T14:39:03Z vanila: but I can rewrite e.g. MAP into a tail call function that works the same except when call/cc or similar are involved 2014-10-13T14:39:33Z LeoNerd: yah; well the traditional way to do it is to pass a cons cell as an accumulator into your tailcall, and have each iteration do a (set-cdr! ) on it 2014-10-13T14:39:37Z ELLIOTTCABLE: you called? 2014-10-13T14:39:40Z taylanub: LeoNerd: can use of delimited continuations not be optimized to let/ec through static analysis? 2014-10-13T14:39:42Z LeoNerd: That is effectively exactly what TCMC is doing underneath 2014-10-13T14:39:44Z ELLIOTTCABLE is now known as RV 2014-10-13T14:39:51Z RV is now known as ex 2014-10-13T14:39:57Z ex: goddamnit iPhone 2014-10-13T14:40:02Z ex is now known as ec 2014-10-13T14:40:21Z fridim_ joined #scheme 2014-10-13T14:40:34Z LeoNerd: taylanub: Only if they're lexically scoped like that. My thinking is that an implementation can easily detect not a single instance of call/cc but only call/ec by a very simple global flag internally 2014-10-13T14:40:44Z LeoNerd: Provided that flag is still clear, you knwo you're safe to TCMC 2014-10-13T14:40:59Z LeoNerd: The moment anyone anywhere tries to call/cc then all bets are off and you have to go the slow way round 2014-10-13T14:41:19Z LeoNerd: It's like those impls that detect a lack of set-car! and set-cdr! 2014-10-13T14:41:34Z LeoNerd: If that's the case then lists are immutable and again lots of fun trickery can come into play 2014-10-13T14:42:23Z LeoNerd: So my thought is more along the lines of: what interesting trickery do I cut off by telling people "thou shalt not use call/cc for it is evil and will break all my optimisations" 2014-10-13T14:42:23Z ec: since my name's in it … what's call/ec? I'm very familiar with continuations (although not much of a lisper), but I've never heard of it. 2014-10-13T14:42:46Z LeoNerd: call/ec is syntactically exactly like the generic call/cc, but it only guarantees you can invoke the continuation at-most once 2014-10-13T14:42:55Z LeoNerd: It lets you implement 'return' semantics familar from C-like languages 2014-10-13T14:43:01Z ec: gotcha. 2014-10-13T14:43:09Z LeoNerd: (call/ec (lambda (return) (body here and at some point we (return 123)) ) 2014-10-13T14:43:38Z ec: my own language work involves something like that; although instead of only being invokable once, they're only invokable at a given *location* once. 2014-10-13T14:43:53Z LeoNerd: You can still pass the 'return' cont into your own callees if you like, but if you didn't invoke it by the time you return from the body normally, you're not allowed to use it ever. 2014-10-13T14:44:10Z vanila: ec: Are you writing ac ompiler 2014-10-13T14:44:16Z araujo joined #scheme 2014-10-13T14:44:30Z LeoNerd: So call/ec is much nicer on such trickery as TCMC because it doesn't allow code to be invoked multiple times, unlike some abuses of call/cc does 2014-10-13T14:44:45Z ec: vanila: nope, my work's too exotic to be compiled yet. Just simple vms and interpreters, for now. 2014-10-13T14:44:57Z ec is now known as ELLIOTTCABLE 2014-10-13T14:45:32Z LeoNerd: It's short for "call-with-escape-contiunation", by the way. 2014-10-13T14:47:35Z _tca: LeoNerd: most of the uses for continuations require calling it multiple times 2014-10-13T14:47:46Z LeoNerd: Oh? 2014-10-13T14:48:28Z ecraven: LeoNerd: but it's hard to do for example those continuation web framework thing with call/ec :-/ 2014-10-13T14:48:31Z _tca: yea you cant do anything coroutine-like with call/ec which is just a fancy name for exceptions, catch/throw 2014-10-13T14:48:40Z LeoNerd: Oh I wonder if I could tag every closure with a "TCMC-safe" bit... 2014-10-13T14:49:05Z LeoNerd: So dynamically trace the places known to be safe to apply it 2014-10-13T14:52:02Z taylanub: escape continuations trivially implement at least: continue, break, return, and exceptions (non-continuable). and they do it better; with let/ec you can return from any "block" of code and not just the whole function. you can also return to any outer block if you're within nested returnable blocks... it's really neat. 2014-10-13T14:52:38Z taylanub: (let/ec return1 ... (let/ec return2 ... (return1 'foo))) => foo 2014-10-13T14:52:56Z LeoNerd: Yes; I'm aware of the arguments in favour of /ec. What I'm asking about is what they can't do that a more generic /cc can do, and if those things are sufficient enough argument to warrant my retaining full /cc ability 2014-10-13T14:53:12Z vanila: what about (let/ec x (lambda (x) (return x)))? 2014-10-13T14:53:35Z vanila: LeoNerd, There is an argument for reset/shift as primitives 2014-10-13T14:53:42Z taylanub: vanila: did you mean (let/ec return (lambda (x) (return x))) ? 2014-10-13T14:53:51Z ELLIOTTCABLE: continuations are a useful and powerful abstraction. (real ones, not /ec, which sounds like throw couched in schemey terms, not a real continuation at all) 2014-10-13T14:53:52Z vanila: taylanub, yeah! 2014-10-13T14:53:56Z LeoNerd: Yes but if I recall, reset/shift still allows multiple reinvocation and thus will still break TCMC 2014-10-13T14:54:07Z taylanub: vanila: that would be the same as call/ec, i.e. call/cc but you can use the cont. only once 2014-10-13T14:54:22Z LeoNerd: ELLIOTTCABLE: Yes, this is my questoin: you claim "useful and powerful" - useful for what? I'd like to see examples 2014-10-13T14:54:25Z vanila: LeoNerd, yes - that's true but I was thinking maybe you can write TCMC functions as genuine tail calls using these operators 2014-10-13T14:54:34Z vanila: then you wouldn't need the optimization 2014-10-13T14:54:52Z ELLIOTTCABLE: LeoNerd: I mean … beyond what you get from basically googling "continuations?" 2014-10-13T14:55:13Z LeoNerd: ELLIOTTCABLE: Most things I find are trivial introductions or things that call/ec can do just as well 2014-10-13T14:55:24Z LeoNerd: I want to see something realworld and practical 2014-10-13T14:55:28Z ELLIOTTCABLE: (I'm on my phone 'cuz keep getting hilighted by "ec" … but am surprised I need to defend the usefulness of continuations in a *scheme* channel, of all places) 2014-10-13T14:55:30Z taylanub: vanila: no wait .. I think that breaks. you're meant to keep 'return' from escaping like that 2014-10-13T14:55:41Z _tca: LeoNerd: most everything i see is coroutines 2014-10-13T14:55:58Z LeoNerd: Hrm.. But aren't there other nice ways to recreate coroutines, again without needing a fully generic call/cc ? 2014-10-13T14:56:11Z _tca: nope 2014-10-13T14:56:19Z ELLIOTTCABLE: okay, well, ignoring scheme-specific implementations and continuation-specific semantics, let's just talk multiple-invocation flow-control applications: 2014-10-13T14:56:53Z _tca: LeoNerd: well shift/reset not call/cc 2014-10-13T14:56:56Z vanila: LeoNerd, I don't think there's any use of call/cc that isnt' done better by reset/shift - except.. a couple realyl weird things like proving that LETREC does mutation 2014-10-13T14:56:58Z _tca: call/cc obviously shouldn't exist 2014-10-13T14:56:58Z sheilong joined #scheme 2014-10-13T14:57:01Z vanila: but these are just theoretical 2014-10-13T14:57:27Z LeoNerd: Hm.. 2014-10-13T14:57:50Z drdanmaku joined #scheme 2014-10-13T14:57:59Z LeoNerd: Well, that makes the problem slightly simpler, because shift/reset only breaks TCMC if it's actually in the "stack scope" at the time, for want of a better word 2014-10-13T14:58:00Z vanila: taylanub, I think there's something terrible about call/ec then - you need a type system or something to ensure it doesn't escape.. it seems dangerous to just say "Hey programmer: Don't let ec escape" 2014-10-13T14:58:15Z ELLIOTTCABLE: multiple-return-ish scenarios allow for useful (hell, straight-up *slick*) call-patterns for APIs (a server library that says "I'll return every time I get a request", typed primitives that flow clearer than callbacks); 2014-10-13T14:58:26Z vanila: This is the nice thing about most scheme operators, they're totally unrestricted 2014-10-13T14:58:43Z LeoNerd: vanila: taylanub: you can fairly trivially just mark the escape cont. as dead if its creator call/ec returned, then if anyone does attempt to invoke it that's an instant fail 2014-10-13T14:59:03Z _tca: so call/ec is dynamic extent 2014-10-13T14:59:31Z LeoNerd: Yes; I think the entire nature of the idea of "escape" is dynamic 2014-10-13T14:59:48Z _tca: well its the opposite of dynamic 2014-10-13T15:00:16Z ELLIOTTCABLE: there are plenty of realtime or asynchronous tasks that are much less complex in implementation with multiple-return structures: the sorts of things for which you traditionally assign "listeners" or "callbacks" are no longer necessary, because you can simply call them directly, allowing them to pass events or generated results directly *back* to you, 2014-10-13T15:00:22Z LeoNerd: It says "take me away from this place back to where I was earlier" 2014-10-13T15:00:52Z _tca: call/ec and call/cc both aren't dynamic where catch/throw and shift/reset are 2014-10-13T15:00:53Z ELLIOTTCABLE: then of course there's an entire body of coroutine benefits, reachable with continuation-style implementations of multiple-return 2014-10-13T15:01:46Z LeoNerd: I'm failing to understand your assertion that call/ec isn't dynamic 2014-10-13T15:02:07Z vanila: well is dynamic a formal term here? 2014-10-13T15:02:08Z developernotes joined #scheme 2014-10-13T15:02:30Z LeoNerd: Especially in the face of your then statement that catch/throw -are- dynamic, when catch/throw can be implemented easily using call/ec 2014-10-13T15:03:08Z taylanub: LeoNerd: ec are limited not only in that they can be invoked once ... or rather, passing "normally" through a continuation also counts as invoking it, meaning that (let/ec foo (set! some-place foo)) will not work; the foo continuation will already have been "called" through the (let/ec ...) form returning normally 2014-10-13T15:03:27Z taylanub: LeoNerd: hence, it kind of has "static" scope, but not sure if that's why _tca called it non-dynamic 2014-10-13T15:03:35Z _tca: it is 2014-10-13T15:03:54Z LeoNerd: Yeah that's not what I think dynamic means 2014-10-13T15:04:09Z vanila: I think R7RS dropped the ball allowing the tyranny of call/cc to continue, it was time to move to reset/shift 2014-10-13T15:04:24Z taylanub: well yeah, it still doesn't have static scope as in lexical scope, because it's still a first-class object which you can pass into a lower stack frame and call from there 2014-10-13T15:04:34Z LeoNerd: I think call/ec is dynamic because you have to inspect the runtime actual historical state of a real running program, in order to work out "where" the invocation of a call/ec continuation will actually take you; you can't just statically analyse the source of the program 2014-10-13T15:04:45Z LeoNerd: In the general case of it being passed into callees, I mean 2014-10-13T15:04:57Z LeoNerd: Obviously in some limited cases if you don't pass it around anywhere you can do it statically 2014-10-13T15:05:00Z _tca: yea you can because it is dynamic extend 2014-10-13T15:05:04Z _tca: extent* 2014-10-13T15:05:31Z _tca: and you have the actual binding to the "prompt" unlike catch/throw which use a runtime object 2014-10-13T15:06:00Z LeoNerd: Is throw-catch not just a call/ec combined with fluid-let or similar 2014-10-13T15:06:01Z LeoNerd: ? 2014-10-13T15:06:15Z _tca: fluid-let aka dynamic binding 2014-10-13T15:06:22Z _tca: adding the dynamic part :> 2014-10-13T15:07:17Z LeoNerd: Hmm.. but is dynamicness not "leaky", in the sense that if some feature when combined with a dynamic feature, is itself dynamic, then the original must have been dynamic too? 2014-10-13T15:07:22Z LeoNerd: Sticky, for want of a better word 2014-10-13T15:07:41Z LeoNerd: Whereas a lexical binding of say, a plain 'let', can be fully explained by only static lexical effects 2014-10-13T15:08:12Z LeoNerd: I don't know; maybe we're splitting hairs here. 2014-10-13T15:08:52Z _tca: its not terminology i made up... if you read the papers on delimited continuations they all make it clear the difference in runtime behavior of these different continuation types and why delimited are dynamic 2014-10-13T15:11:11Z arthurgleckler joined #scheme 2014-10-13T15:11:18Z arthurgleckler quit (Remote host closed the connection) 2014-10-13T15:11:28Z arthurgleckler joined #scheme 2014-10-13T15:12:05Z arthurgleckler quit (Remote host closed the connection) 2014-10-13T15:12:21Z tadni` is now known as tadni_ 2014-10-13T15:17:55Z vanila: I thought shift/reset were not dynamic, but had dynamic counterparts 2014-10-13T15:18:03Z vanila: and they each macro-expressible as each other 2014-10-13T15:18:15Z jusss quit (Quit: ERC Version 5.2 (IRC client for Emacs)) 2014-10-13T15:18:19Z vanila: http://www.cs.indiana.edu/ftp/techreports/TR611.pdf 2014-10-13T15:18:56Z vanila: oh, it's reset/shift that are dynamic - and "control" static 2014-10-13T15:32:17Z _tca: btw LeoNerd dylan took that approach, they only have that dynamic-extend return style via: block (return) return(1) end; and CL-style resumable exceptions 2014-10-13T15:32:21Z _tca: extent* 2014-10-13T15:32:24Z kongtomorrow joined #scheme 2014-10-13T15:33:09Z _tca: and right now they are suffering because of it as they have no coroutines to do net stuff with 2014-10-13T15:33:20Z gravicappa quit (Remote host closed the connection) 2014-10-13T15:38:45Z przl quit (Ping timeout: 260 seconds) 2014-10-13T15:50:55Z kwmiebach______ quit 2014-10-13T15:51:54Z kwmiebach______ joined #scheme 2014-10-13T15:53:20Z leif__ quit (Quit: leaving) 2014-10-13T15:53:31Z Guest32799 is now known as leif 2014-10-13T15:54:04Z kwmiebach______ quit (Client Quit) 2014-10-13T15:55:03Z kwmiebach joined #scheme 2014-10-13T16:07:40Z civodul quit (Remote host closed the connection) 2014-10-13T16:07:55Z dmiles_afk joined #scheme 2014-10-13T16:19:02Z przl joined #scheme 2014-10-13T16:27:57Z kongtomorrow quit 2014-10-13T16:31:00Z jcloud quit (Quit: Connection closed for inactivity) 2014-10-13T16:32:24Z MichaelRaskin joined #scheme 2014-10-13T16:36:51Z kuribas joined #scheme 2014-10-13T16:38:58Z dmiles_afk quit (Read error: Connection reset by peer) 2014-10-13T16:39:34Z oldskirt_ is now known as oldskirt 2014-10-13T16:39:43Z dmiles_afk joined #scheme 2014-10-13T16:51:52Z kongtomorrow joined #scheme 2014-10-13T16:55:22Z cmatei quit (Ping timeout: 240 seconds) 2014-10-13T16:57:31Z jlongster joined #scheme 2014-10-13T17:07:23Z kongtomorrow quit 2014-10-13T17:09:23Z mario-goulart quit (Remote host closed the connection) 2014-10-13T17:10:14Z ccl-logbot joined #scheme 2014-10-13T17:10:14Z 2014-10-13T17:10:14Z names: ccl-logbot jlongster dmiles_afk kuribas MichaelRaskin przl kwmiebach developernotes drdanmaku sheilong araujo fridim_ iterrogo stepnem lrs taylanub vanila oleo BitPuffin petercommand _5kg pnkfelix jeapostrophe Natch rsf DerGuteMoritz dpk fgudin Razz DGASAU daviid oldskirt Vutral acieroid epsylon Soft pjdelport aoh rtra wingo guampa Guest92400 BossKonaSegwaY tadni_ ivanshmakov effy amgarchIn9 tobik aretecode peterhil renopt diginet niklasl offby1 ineiros 2014-10-13T17:10:14Z names: ByronJohnson leo2007 leif emma hiyosi acarrico fikusz Kryo Saeren serhart aranhoide tali713 Sgeo Kabaka pjb joneshf-laptop finnrobi nowhere_man leppie jkraemer juanfra tessier aking mornfall zacts ivan\ cdidd carc jeremyheiler weinholt defanor fizzie FracV noncom frkout c74d cataska bb010g omefire1 cam joast byte48 greghendershott ELLIOTTCABLE superjudge arbscht balkamos benaiah gabot joneshf Khisanth C-Keen cky utkarsh aap_ haroldwu dan64 samth 2014-10-13T17:10:14Z names: dytrivedi_ mrowe_away ft girrig eMBee gnomon turbofail teiresias kbtr_ micro^ duncanm akp eli Blkt vukcrni clog ggherdov akkad cross alezost aksatac gluegadget choas_ Neet mark_weaver edw poucet GGMethos abbe Nshag dsp certainty _tca Kruppe sethalves arrdem sigjuice Riviera ohama tsuyoshi SirDayBat necronian rudybot ski copec jrslepak zbigniew_ tstc fadein averell kilimanjaro nitrix gf3 stamourv Intensity ecraven z0d antoszka twem2_ rotty_ LeoNerd SHODAN 2014-10-13T17:10:14Z names: dca cjh`_ amoe xian eagleflo klutometis evhan yosafbridge sung_ ctindall pchrist asumu cibs 2014-10-13T17:13:34Z mario-goulart joined #scheme 2014-10-13T17:18:32Z joneshf-laptop quit (Remote host closed the connection) 2014-10-13T17:21:00Z mario-goulart quit (Remote host closed the connection) 2014-10-13T17:22:38Z jeapostr1phe joined #scheme 2014-10-13T17:23:18Z mario-goulart joined #scheme 2014-10-13T17:25:19Z jeapostrophe quit (Ping timeout: 272 seconds) 2014-10-13T17:37:52Z jlongster quit (Ping timeout: 272 seconds) 2014-10-13T17:41:55Z developernotes quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) 2014-10-13T17:43:32Z przl quit (Read error: Connection reset by peer) 2014-10-13T17:47:47Z arrdem quit (Quit: leaving) 2014-10-13T17:50:18Z wingo quit (Ping timeout: 255 seconds) 2014-10-13T17:51:01Z pnkfelix quit (Quit: rcirc on GNU Emacs 24.3.92.1) 2014-10-13T17:59:08Z leppie quit (Ping timeout: 260 seconds) 2014-10-13T17:59:36Z sheilong quit (Remote host closed the connection) 2014-10-13T18:00:21Z sheilong joined #scheme 2014-10-13T18:03:21Z leppie joined #scheme 2014-10-13T18:19:40Z ilammy joined #scheme 2014-10-13T18:23:15Z hiroakip joined #scheme 2014-10-13T18:24:00Z pnpuff joined #scheme 2014-10-13T18:24:41Z wingo joined #scheme 2014-10-13T18:27:03Z developernotes joined #scheme 2014-10-13T18:28:44Z theseb joined #scheme 2014-10-13T18:30:04Z pnpuff left #scheme 2014-10-13T18:36:02Z pnpuff joined #scheme 2014-10-13T18:42:14Z Perkol joined #scheme 2014-10-13T18:48:58Z jlongster joined #scheme 2014-10-13T18:49:07Z daviid quit (Ping timeout: 258 seconds) 2014-10-13T18:49:59Z Perkol quit (Quit: Leaving) 2014-10-13T18:52:58Z gravicappa joined #scheme 2014-10-13T18:53:55Z pnpuff quit (Quit: Lost terminal) 2014-10-13T18:55:44Z pnkfelix joined #scheme 2014-10-13T18:57:00Z cmatei joined #scheme 2014-10-13T18:57:33Z aretecode quit (Quit: Toodaloo) 2014-10-13T18:57:56Z aranhoide quit (Ping timeout: 258 seconds) 2014-10-13T19:02:55Z hiroakip quit (Ping timeout: 258 seconds) 2014-10-13T19:05:20Z theseb quit (Quit: Leaving) 2014-10-13T19:09:30Z BossKonaSegwaY quit (Ping timeout: 255 seconds) 2014-10-13T19:23:14Z Kruppe quit (Ping timeout: 258 seconds) 2014-10-13T19:25:06Z BossKonaSegwaY joined #scheme 2014-10-13T19:25:49Z civodul joined #scheme 2014-10-13T19:27:02Z sheilong quit (Remote host closed the connection) 2014-10-13T19:27:40Z sheilong joined #scheme 2014-10-13T19:28:22Z Perkol joined #scheme 2014-10-13T19:29:41Z kuribas quit (Quit: ERC Version 5.3 (IRC client for Emacs)) 2014-10-13T19:38:01Z hiroakip joined #scheme 2014-10-13T19:38:21Z amgarchIn9 quit (Quit: Konversation terminated!) 2014-10-13T19:38:27Z amgarching joined #scheme 2014-10-13T19:42:04Z developernotes quit (Read error: Connection reset by peer) 2014-10-13T19:42:42Z zacts: hi schemers 2014-10-13T19:43:06Z gravicappa quit (Remote host closed the connection) 2014-10-13T19:45:47Z vanila: hi 2014-10-13T19:46:52Z pnkfelix quit (Ping timeout: 240 seconds) 2014-10-13T19:47:12Z pnkfelix joined #scheme 2014-10-13T19:49:09Z pnkfelix quit (Client Quit) 2014-10-13T19:49:30Z pnkfelix joined #scheme 2014-10-13T19:49:35Z sheilong quit (Remote host closed the connection) 2014-10-13T19:50:13Z sheilong joined #scheme 2014-10-13T20:00:07Z _tca: hello schemer 2014-10-13T20:01:11Z copec quit (Quit: checkity check out.) 2014-10-13T20:05:43Z copec joined #scheme 2014-10-13T20:05:43Z copec quit (Excess Flood) 2014-10-13T20:07:43Z copec joined #scheme 2014-10-13T20:07:43Z copec quit (Excess Flood) 2014-10-13T20:09:11Z copec joined #scheme 2014-10-13T20:12:36Z alezost quit (Ping timeout: 260 seconds) 2014-10-13T20:17:43Z davexunit joined #scheme 2014-10-13T20:26:27Z jlongster quit (Ping timeout: 272 seconds) 2014-10-13T20:33:01Z jcloud joined #scheme 2014-10-13T20:36:30Z bokr joined #scheme 2014-10-13T20:39:47Z oldskirt_ joined #scheme 2014-10-13T20:40:10Z oldskirt quit (Read error: Connection reset by peer) 2014-10-13T20:40:14Z bokr1 joined #scheme 2014-10-13T20:40:39Z bokr1 quit (Client Quit) 2014-10-13T20:40:46Z bokr quit (Ping timeout: 255 seconds) 2014-10-13T20:47:14Z wingo quit (Ping timeout: 272 seconds) 2014-10-13T20:56:22Z Perkol quit (Remote host closed the connection) 2014-10-13T20:57:11Z tadni_` joined #scheme 2014-10-13T20:58:06Z tadni_ quit (Ping timeout: 240 seconds) 2014-10-13T21:09:32Z BitPuffin quit (Ping timeout: 260 seconds) 2014-10-13T21:19:53Z mrowe_away is now known as mrowe 2014-10-13T21:20:39Z jeapostr1phe quit (Ping timeout: 246 seconds) 2014-10-13T21:33:25Z developernotes joined #scheme 2014-10-13T21:39:18Z mrowe is now known as mrowe_away 2014-10-13T21:39:23Z girrig quit (Ping timeout: 240 seconds) 2014-10-13T21:42:44Z civodul quit (Quit: ERC Version 5.3 (IRC client for Emacs)) 2014-10-13T21:43:34Z jlongster joined #scheme 2014-10-13T21:54:25Z ggherdov quit (Ping timeout: 260 seconds) 2014-10-13T21:55:12Z jeapostrophe joined #scheme 2014-10-13T21:55:50Z ELLIOTTCABLE quit (Read error: Connection reset by peer) 2014-10-13T21:55:52Z developernotes quit (Ping timeout: 240 seconds) 2014-10-13T21:56:24Z ec joined #scheme 2014-10-13T21:56:45Z dan64 quit (Ping timeout: 260 seconds) 2014-10-13T21:56:54Z oleo is now known as Guest70443 2014-10-13T21:57:41Z Kabaka quit (Ping timeout: 260 seconds) 2014-10-13T21:58:28Z dan64 joined #scheme 2014-10-13T21:58:28Z ggherdov joined #scheme 2014-10-13T21:58:33Z oleo__ joined #scheme 2014-10-13T21:58:56Z Natch_s joined #scheme 2014-10-13T21:59:26Z Natch quit (Ping timeout: 272 seconds) 2014-10-13T22:00:49Z Guest70443 quit (Ping timeout: 272 seconds) 2014-10-13T22:01:14Z Kabaka joined #scheme 2014-10-13T22:05:51Z girrig joined #scheme 2014-10-13T22:11:41Z hiroakip quit (Ping timeout: 260 seconds) 2014-10-13T22:15:45Z Natch_s left #scheme 2014-10-13T22:15:52Z Natch joined #scheme 2014-10-13T22:16:33Z tadni_` is now known as tadni_ 2014-10-13T22:24:02Z c107 joined #scheme 2014-10-13T22:25:41Z karswell` joined #scheme 2014-10-13T22:27:06Z iterrogo quit (Quit: ERC Version 5.3 (IRC client for Emacs)) 2014-10-13T22:31:06Z dmiles_afk quit (Ping timeout: 272 seconds) 2014-10-13T22:31:34Z mrowe_away is now known as mrowe 2014-10-13T22:37:26Z oldskirt joined #scheme 2014-10-13T22:39:08Z oldskirt_ quit (Ping timeout: 260 seconds) 2014-10-13T22:53:04Z dmiles_afk joined #scheme 2014-10-13T22:59:52Z stepnem quit (Ping timeout: 245 seconds) 2014-10-13T23:09:00Z cdidd quit (Ping timeout: 260 seconds) 2014-10-13T23:11:45Z lrs quit (Ping timeout: 272 seconds) 2014-10-13T23:21:48Z aretecode joined #scheme 2014-10-13T23:31:57Z Natch_h joined #scheme 2014-10-13T23:31:57Z Natch quit (Ping timeout: 260 seconds) 2014-10-13T23:36:20Z fridim_ quit (Ping timeout: 272 seconds) 2014-10-13T23:38:46Z DGASAU quit (Read error: Connection reset by peer) 2014-10-13T23:39:32Z DGASAU joined #scheme 2014-10-13T23:50:06Z c107 quit (Ping timeout: 244 seconds) 2014-10-13T23:53:22Z c107 joined #scheme