2018-01-15T00:03:08Z smurfrobot quit (Ping timeout: 255 seconds) 2018-01-15T00:13:21Z sleffy joined #scheme 2018-01-15T00:15:13Z Riastradh joined #scheme 2018-01-15T00:54:55Z Steverman quit (Ping timeout: 248 seconds) 2018-01-15T01:18:17Z marusich quit (Ping timeout: 255 seconds) 2018-01-15T01:28:11Z sleffy quit (Ping timeout: 255 seconds) 2018-01-15T01:48:54Z lucasem quit (Quit: leaving) 2018-01-15T01:49:49Z lucasem joined #scheme 2018-01-15T01:55:45Z jao quit (Ping timeout: 256 seconds) 2018-01-15T01:58:50Z daviid quit (Ping timeout: 256 seconds) 2018-01-15T01:59:44Z jao joined #scheme 2018-01-15T02:07:05Z jao quit (Ping timeout: 256 seconds) 2018-01-15T02:11:22Z jao joined #scheme 2018-01-15T02:19:44Z aene joined #scheme 2018-01-15T02:26:54Z drot quit (Quit: Quit.) 2018-01-15T02:29:57Z terpri quit (Ping timeout: 240 seconds) 2018-01-15T02:34:17Z jao quit (Ping timeout: 256 seconds) 2018-01-15T02:39:47Z aene left #scheme 2018-01-15T02:51:28Z bwv quit (Read error: Connection reset by peer) 2018-01-15T03:02:42Z pierpa quit (Quit: Page closed) 2018-01-15T03:08:11Z manualcrank joined #scheme 2018-01-15T03:21:08Z epony quit (Quit: QUIT) 2018-01-15T03:27:09Z ArneBab joined #scheme 2018-01-15T03:29:54Z dtornabene quit (Remote host closed the connection) 2018-01-15T03:31:12Z ArneBab_ quit (Ping timeout: 256 seconds) 2018-01-15T03:32:17Z epony joined #scheme 2018-01-15T03:33:29Z epony quit (Max SendQ exceeded) 2018-01-15T03:34:05Z epony joined #scheme 2018-01-15T03:35:58Z sz0 quit (Quit: Connection closed for inactivity) 2018-01-15T03:36:04Z wigust joined #scheme 2018-01-15T03:42:51Z nckx quit (Quit: Updating my GuixSD server — gnu.org/s/guix) 2018-01-15T03:44:27Z adu joined #scheme 2018-01-15T03:44:36Z nckx joined #scheme 2018-01-15T03:49:15Z klovett quit (Remote host closed the connection) 2018-01-15T03:49:53Z klovett joined #scheme 2018-01-15T03:58:00Z klovett quit (Remote host closed the connection) 2018-01-15T03:58:15Z klovett joined #scheme 2018-01-15T04:02:53Z epony quit (Remote host closed the connection) 2018-01-15T04:10:07Z groscoe quit (Ping timeout: 248 seconds) 2018-01-15T04:11:01Z adu quit (Quit: adu) 2018-01-15T04:12:28Z epony joined #scheme 2018-01-15T04:13:38Z epony quit (Max SendQ exceeded) 2018-01-15T04:14:17Z epony joined #scheme 2018-01-15T04:28:10Z terpri joined #scheme 2018-01-15T04:29:33Z groscoe joined #scheme 2018-01-15T04:37:44Z cemerick joined #scheme 2018-01-15T04:40:47Z cemerick_ quit (Ping timeout: 255 seconds) 2018-01-15T04:43:51Z jonaslund quit (Ping timeout: 256 seconds) 2018-01-15T05:05:53Z Riastradh quit (Ping timeout: 276 seconds) 2018-01-15T05:05:57Z arbv quit (Ping timeout: 256 seconds) 2018-01-15T05:07:53Z sleffy joined #scheme 2018-01-15T05:07:59Z arbv joined #scheme 2018-01-15T05:08:26Z smurfrobot joined #scheme 2018-01-15T05:13:12Z smurfrobot quit (Ping timeout: 256 seconds) 2018-01-15T05:24:47Z smurfrobot joined #scheme 2018-01-15T05:29:23Z smurfrobot quit (Ping timeout: 256 seconds) 2018-01-15T05:58:32Z khisanth_ quit (Ping timeout: 256 seconds) 2018-01-15T06:05:29Z oleo quit (Quit: Leaving) 2018-01-15T06:11:42Z khisanth_ joined #scheme 2018-01-15T06:17:41Z parsnip is now known as parsnip-bot 2018-01-15T06:17:54Z parsnip-bot is now known as parsnip 2018-01-15T06:25:28Z smurfrobot joined #scheme 2018-01-15T06:27:31Z klovett quit (Remote host closed the connection) 2018-01-15T06:28:23Z klovett joined #scheme 2018-01-15T06:30:01Z smurfrobot quit (Ping timeout: 256 seconds) 2018-01-15T06:31:40Z smurfrobot joined #scheme 2018-01-15T06:40:41Z jonaslund joined #scheme 2018-01-15T06:50:47Z klovett_ joined #scheme 2018-01-15T06:54:26Z klovett quit (Ping timeout: 276 seconds) 2018-01-15T07:01:58Z murii joined #scheme 2018-01-15T07:05:11Z klovett joined #scheme 2018-01-15T07:08:44Z smurfrobot quit (Remote host closed the connection) 2018-01-15T07:09:23Z klovett_ quit (Ping timeout: 276 seconds) 2018-01-15T07:09:33Z GreaseMonkey quit (Remote host closed the connection) 2018-01-15T07:14:22Z klovett_ joined #scheme 2018-01-15T07:17:46Z lambda-11235 quit (Quit: WeeChat 2.0.1) 2018-01-15T07:17:50Z klovett quit (Ping timeout: 255 seconds) 2018-01-15T07:19:04Z greaser|q joined #scheme 2018-01-15T07:19:35Z klovett joined #scheme 2018-01-15T07:22:20Z klovett_ quit (Ping timeout: 255 seconds) 2018-01-15T07:24:20Z klovett quit (Ping timeout: 276 seconds) 2018-01-15T07:32:05Z jonaslund quit (Ping timeout: 260 seconds) 2018-01-15T07:35:52Z smurfrobot joined #scheme 2018-01-15T07:40:39Z smurfrobot quit (Ping timeout: 256 seconds) 2018-01-15T07:43:49Z jonaslund joined #scheme 2018-01-15T07:45:07Z emacsomancer joined #scheme 2018-01-15T07:46:00Z smurfrob_ joined #scheme 2018-01-15T07:50:13Z klovett joined #scheme 2018-01-15T07:50:23Z smurfrob_ quit (Ping timeout: 248 seconds) 2018-01-15T07:54:02Z klovett_ joined #scheme 2018-01-15T07:55:08Z murii quit (Remote host closed the connection) 2018-01-15T07:55:11Z smurfrobot joined #scheme 2018-01-15T07:56:58Z klovett quit (Ping timeout: 256 seconds) 2018-01-15T07:59:48Z smurfrobot quit (Ping timeout: 256 seconds) 2018-01-15T08:00:46Z smurfrobot joined #scheme 2018-01-15T08:05:28Z smurfrobot quit (Ping timeout: 256 seconds) 2018-01-15T08:08:24Z klovett joined #scheme 2018-01-15T08:11:47Z klovett_ quit (Ping timeout: 276 seconds) 2018-01-15T08:24:03Z klovett_ joined #scheme 2018-01-15T08:26:04Z klovett__ joined #scheme 2018-01-15T08:27:08Z klovett quit (Ping timeout: 255 seconds) 2018-01-15T08:27:12Z greaser|q quit (Changing host) 2018-01-15T08:27:12Z greaser|q joined #scheme 2018-01-15T08:28:07Z klovett joined #scheme 2018-01-15T08:28:57Z sleffy quit (Ping timeout: 240 seconds) 2018-01-15T08:29:59Z klovett_ quit (Ping timeout: 276 seconds) 2018-01-15T08:31:56Z klovett__ quit (Ping timeout: 276 seconds) 2018-01-15T08:38:50Z jonaslund quit (Ping timeout: 255 seconds) 2018-01-15T08:40:28Z klovett_ joined #scheme 2018-01-15T08:44:17Z klovett quit (Ping timeout: 276 seconds) 2018-01-15T08:48:17Z klovett_ quit (Ping timeout: 255 seconds) 2018-01-15T09:04:52Z murii joined #scheme 2018-01-15T09:15:35Z klovett joined #scheme 2018-01-15T09:18:31Z klovett_ joined #scheme 2018-01-15T09:22:04Z klovett quit (Ping timeout: 265 seconds) 2018-01-15T09:22:09Z greatscottttt joined #scheme 2018-01-15T09:35:39Z drot joined #scheme 2018-01-15T09:36:00Z smurfrobot joined #scheme 2018-01-15T09:40:50Z smurfrobot quit (Ping timeout: 276 seconds) 2018-01-15T09:44:22Z klovett joined #scheme 2018-01-15T09:47:12Z civodul joined #scheme 2018-01-15T09:48:10Z klovett_ quit (Ping timeout: 265 seconds) 2018-01-15T09:50:33Z klovett_ joined #scheme 2018-01-15T09:53:24Z smurfrobot joined #scheme 2018-01-15T09:53:35Z klovett__ joined #scheme 2018-01-15T09:54:35Z klovett quit (Ping timeout: 276 seconds) 2018-01-15T09:55:38Z klovett joined #scheme 2018-01-15T09:57:07Z klovett quit (Remote host closed the connection) 2018-01-15T09:57:38Z klovett joined #scheme 2018-01-15T09:57:50Z klovett_ quit (Ping timeout: 276 seconds) 2018-01-15T09:58:14Z smurfrobot quit (Ping timeout: 256 seconds) 2018-01-15T09:58:56Z klovett__ quit (Ping timeout: 255 seconds) 2018-01-15T10:08:04Z klovett_ joined #scheme 2018-01-15T10:11:32Z klovett quit (Ping timeout: 255 seconds) 2018-01-15T10:18:32Z klovett_ quit (Ping timeout: 276 seconds) 2018-01-15T10:41:40Z pjb joined #scheme 2018-01-15T10:45:10Z klovett joined #scheme 2018-01-15T10:46:11Z klovett_ joined #scheme 2018-01-15T10:49:50Z klovett quit (Ping timeout: 276 seconds) 2018-01-15T10:50:20Z klovett joined #scheme 2018-01-15T10:53:33Z klovett__ joined #scheme 2018-01-15T10:53:59Z smurfrobot joined #scheme 2018-01-15T10:54:23Z klovett_ quit (Ping timeout: 277 seconds) 2018-01-15T10:56:37Z klovett_ joined #scheme 2018-01-15T10:57:38Z klovett quit (Ping timeout: 276 seconds) 2018-01-15T10:59:29Z smurfrobot quit (Ping timeout: 276 seconds) 2018-01-15T11:00:08Z klovett__ quit (Ping timeout: 255 seconds) 2018-01-15T11:11:51Z klovett joined #scheme 2018-01-15T11:14:32Z klovett_ quit (Ping timeout: 255 seconds) 2018-01-15T11:15:07Z klovett_ joined #scheme 2018-01-15T11:18:08Z klovett quit (Ping timeout: 255 seconds) 2018-01-15T11:20:11Z klovett joined #scheme 2018-01-15T11:22:18Z klovett__ joined #scheme 2018-01-15T11:23:59Z klovett_ quit (Ping timeout: 255 seconds) 2018-01-15T11:25:47Z klovett quit (Ping timeout: 255 seconds) 2018-01-15T11:27:16Z smurfrobot joined #scheme 2018-01-15T11:30:11Z araujo joined #scheme 2018-01-15T11:32:38Z smurfrobot quit (Ping timeout: 276 seconds) 2018-01-15T11:34:38Z klovett joined #scheme 2018-01-15T11:34:56Z smurfrobot joined #scheme 2018-01-15T11:38:23Z klovett__ quit (Ping timeout: 255 seconds) 2018-01-15T11:39:25Z smurfrobot quit (Ping timeout: 256 seconds) 2018-01-15T11:42:55Z klovett_ joined #scheme 2018-01-15T11:44:01Z klovett__ joined #scheme 2018-01-15T11:45:05Z klovet___ joined #scheme 2018-01-15T11:46:56Z klovett quit (Ping timeout: 276 seconds) 2018-01-15T11:47:23Z klovett_ quit (Ping timeout: 255 seconds) 2018-01-15T11:48:17Z klovett__ quit (Ping timeout: 255 seconds) 2018-01-15T11:49:23Z jonaslund joined #scheme 2018-01-15T11:51:09Z klovett joined #scheme 2018-01-15T11:53:57Z klovett_ joined #scheme 2018-01-15T11:54:35Z klovet___ quit (Ping timeout: 255 seconds) 2018-01-15T11:56:50Z klovett quit (Ping timeout: 255 seconds) 2018-01-15T12:00:54Z smurfrobot joined #scheme 2018-01-15T12:01:20Z klovett_ quit (Ping timeout: 276 seconds) 2018-01-15T12:05:53Z smurfrobot quit (Ping timeout: 276 seconds) 2018-01-15T12:27:29Z klovett joined #scheme 2018-01-15T12:33:34Z klovett_ joined #scheme 2018-01-15T12:34:32Z klovett__ joined #scheme 2018-01-15T12:35:59Z klovett quit (Ping timeout: 255 seconds) 2018-01-15T12:37:39Z klovett joined #scheme 2018-01-15T12:38:14Z klovett_ quit (Ping timeout: 255 seconds) 2018-01-15T12:38:38Z klovett_ joined #scheme 2018-01-15T12:40:56Z klovett__ quit (Ping timeout: 255 seconds) 2018-01-15T12:42:17Z klovett quit (Ping timeout: 255 seconds) 2018-01-15T12:50:57Z klovett joined #scheme 2018-01-15T12:54:09Z klovett__ joined #scheme 2018-01-15T12:54:53Z klovett_ quit (Ping timeout: 255 seconds) 2018-01-15T12:55:08Z klovett_ joined #scheme 2018-01-15T12:57:35Z klovett quit (Ping timeout: 255 seconds) 2018-01-15T12:57:52Z klovett_ quit (Remote host closed the connection) 2018-01-15T12:58:10Z klovett joined #scheme 2018-01-15T12:58:29Z klovett__ quit (Ping timeout: 255 seconds) 2018-01-15T13:11:16Z smurfrobot joined #scheme 2018-01-15T13:18:07Z Steverman joined #scheme 2018-01-15T13:32:55Z pie___ joined #scheme 2018-01-15T13:36:31Z pie__ quit (Ping timeout: 248 seconds) 2018-01-15T13:44:19Z smurfrobot quit (Remote host closed the connection) 2018-01-15T13:52:33Z smurfrobot joined #scheme 2018-01-15T13:57:27Z excelsior quit (Ping timeout: 240 seconds) 2018-01-15T13:57:35Z smurfrobot quit (Ping timeout: 276 seconds) 2018-01-15T13:58:03Z excelsior joined #scheme 2018-01-15T13:58:32Z smurfrobot joined #scheme 2018-01-15T14:03:09Z smurfrobot quit (Ping timeout: 256 seconds) 2018-01-15T14:05:46Z araujo quit (Read error: Connection reset by peer) 2018-01-15T14:09:48Z cemerick quit (Read error: Connection reset by peer) 2018-01-15T14:12:09Z foof: re: #true and #false, I didn't insist and was somewhat surprised it got accepted. I was just hoping to breach the issue for discussion in R8RS. 2018-01-15T14:13:13Z foof: There was more to the argument though. Mostly it was for newcomers to Scheme, since in almost every other language the boolean constants are spelled out. 2018-01-15T14:22:06Z JuanDaugherty joined #scheme 2018-01-15T14:24:57Z murii quit (Ping timeout: 264 seconds) 2018-01-15T14:31:10Z smurfrobot joined #scheme 2018-01-15T14:59:01Z Murii joined #scheme 2018-01-15T15:14:44Z vyzo: so are we removing stuff for R8RS? 2018-01-15T15:14:48Z r\x00t joined #scheme 2018-01-15T15:14:54Z vyzo: I like R7RS overall, but there are things I would like to see removed 2018-01-15T15:15:12Z vyzo: like raise-continuable and the insane semantics it specifies for the exception handler dynamic environment 2018-01-15T15:15:31Z vyzo: and I would also vote to remove #true and #false 2018-01-15T15:15:34Z vyzo: they are worthless 2018-01-15T15:15:50Z vyzo: we already have #t and #f, which are shorter 2018-01-15T15:18:14Z qu1j0t3: definitely the only factor worth considering 2018-01-15T15:18:28Z r\x00t: personally exception handling is something i dont want to take the time to learn in Scheme :/ don't have that in C. why not just specialize call-with-current-continuation in a library providing all sorts of monadic computations? i know this isnt haskell, but seriously sometimes i look at the libraries and im like wow too much for Scheme 2018-01-15T15:18:38Z jcowan: After R7RS-large, I'm retired from the Scheme business, or possibly already dead 2018-01-15T15:19:11Z jcowan: vyzo: What's wrong with raise-continuable? 2018-01-15T15:21:03Z oleo joined #scheme 2018-01-15T15:21:13Z r\x00t: jcowan: r7rs.org is your bucket. don't you want to make it more user-friendly or at least make sure you continue to update r7rs.org? 2018-01-15T15:21:34Z jcowan: eventually yes 2018-01-15T15:21:46Z jcowan: however I am still healing from a broken arm 2018-01-15T15:21:56Z r\x00t: sorry to see that 2018-01-15T15:22:01Z jcowan: right now all the information is there, and that's the main thing 2018-01-15T15:22:44Z r\x00t: however you still link to the 10th draft i think and r7rs-small links are broken, like the red ballot is the only reference we have 2018-01-15T15:23:42Z jcowan: draft-10 is the branch name for what became the final version 2018-01-15T15:23:48Z r\x00t: ok 2018-01-15T15:25:04Z r\x00t: when i want to show how small and easy scheme is to beginners im a bit embarassed about the clicking involved. doesnt look like its the right place to download for a beginner who doesnt know r7rs 2018-01-15T15:25:42Z r\x00t: but i shouldnt criticize your work, youre already doing a lot for us 2018-01-15T15:26:59Z r\x00t: i think there 3-4 clicks involved before actually accessing the right link for the ppdf, depending on which device you use. its less clear on a cellphone 2018-01-15T15:27:38Z jcowan: Fixed broken links 2018-01-15T15:27:49Z r\x00t: that was quick :P 2018-01-15T15:27:51Z Riastradh joined #scheme 2018-01-15T15:27:54Z jcowan: I don't think the R7RS spec is the right place for a beginner to start 2018-01-15T15:28:02Z r\x00t: why not? 2018-01-15T15:28:26Z Riastradh: Yes, the R0RS is obviously a better place; then incrementally make your way via the R1RS, R2RS, &c., up to the R7RS! 2018-01-15T15:28:31Z Riastradh hides 2018-01-15T15:28:40Z jcowan laughs evilly 2018-01-15T15:28:51Z r\x00t: if i tell them theyll know the whole standard language with ~80 pages in a weeks reading... 2018-01-15T15:29:29Z gwatt: when was the last time you learned a language by just reading the spec? 2018-01-15T15:29:36Z C-Keen: but they will know nothing about their actual scheme system 2018-01-15T15:29:38Z jcowan: Basically because it is a highly technical reference full of finicky details. To someone who has never heard of Scheme or Lisp-like languages before, I should think it would be baffling, but maybe I underestimate the work of my predecessors, who wrote most of the intro material 2018-01-15T15:30:05Z jcowan: gwatt: *I* do that often, but that works for me because I've done it a zillion times before. 2018-01-15T15:30:15Z cmaloney: I think it's kind of like Go (the game, not the language). Once you get past the basics I would stat reading the spec to understand the finer points 2018-01-15T15:30:21Z cmaloney: and what comes baked into the language. 2018-01-15T15:30:33Z jcowan: I really did learn Lisp from the Dartmouth Lisp 1.5 manual (stolen by me from the U.S. Naval Academy), but it took me about a year to work through it 2018-01-15T15:30:33Z r\x00t: i learn domain specific languages from datasheets, reference documents and academic publications but maybe i shouldnt 2018-01-15T15:30:34Z wasamasa: r\x00t: you're mistaking easy for simple 2018-01-15T15:30:44Z vyzo: jcowan: i don't like the switcharoo of the dynamic environment 2018-01-15T15:30:49Z cmaloney: r\x00t: How many languages 2018-01-15T15:30:51Z vyzo: requires a slow implementation that is tied to stacks 2018-01-15T15:30:57Z vyzo: the Gambit way is much better 2018-01-15T15:31:02Z oleo quit (Quit: Leaving) 2018-01-15T15:31:03Z vyzo: raise is already continuable 2018-01-15T15:31:10Z cemerick joined #scheme 2018-01-15T15:31:11Z wasamasa: r\x00t: scheme is simple, not easy, python is easy, not simple 2018-01-15T15:31:14Z vyzo: if the exception handler returns, then good! 2018-01-15T15:31:18Z vyzo: it can be interactive 2018-01-15T15:31:19Z cmaloney: Feh, r\x00t how many languages have you learned? 2018-01-15T15:31:28Z vyzo: but the dynamic environment has no business being tied to the environment 2018-01-15T15:31:36Z vyzo: you can capture the continuation just fine for that 2018-01-15T15:31:38Z r\x00t: cmaloney: mostly maths, neural network architectures. and cmaloney: around 30 to 40 languages 2018-01-15T15:31:54Z cmaloney: Right, so picking up a new language is second-nature to you 2018-01-15T15:31:56Z vyzo: and implement stack-unwind semantics with an exception catcher 2018-01-15T15:32:08Z smurfrobot quit (Remote host closed the connection) 2018-01-15T15:32:20Z cmaloney: reading the spec is like learning a new form of mathematics 2018-01-15T15:32:20Z jcowan: vyzo: That's what guard does 2018-01-15T15:32:20Z r\x00t: well... Scheme is a good language for people to start 2018-01-15T15:32:41Z cmaloney: if you already understand mathematics then you're good to go 2018-01-15T15:32:42Z jcowan: I agree, but HTDP or SICP is the place to start if you are a stone beginner 2018-01-15T15:33:08Z qu1j0t3: SICP doesn't teach scheme, really... 2018-01-15T15:33:40Z jcowan: The reason to have both raise and raise-continuable is so that the caller can signal unambiguously whether it is prepared to be resumed or not. 2018-01-15T15:33:41Z r\x00t: jcowan: in the time of r5rs i agree but nowadays you have to link them to r7rs, at least i hope thats what people try to do 2018-01-15T15:33:56Z jcowan: r7rs-small isn't that different 2018-01-15T15:34:12Z r\x00t: i know but it should be a confusing thing for beginners 2018-01-15T15:34:17Z vyzo: jcowan: let me make my compaint more concrete 2018-01-15T15:34:24Z jcowan: Please do! 2018-01-15T15:34:34Z vyzo: the problem I have is the dynamic environment it specifies for the exception handler in raise-continuable 2018-01-15T15:34:51Z vyzo: it specifies that it has the previous exception handler and the dynamic environment it had 2018-01-15T15:35:02Z vyzo: that means that you are keeping track of the exception handlers! 2018-01-15T15:35:05Z vyzo: so there is a stack 2018-01-15T15:35:10Z vyzo: you see the problem? 2018-01-15T15:35:18Z vyzo: you require a stack based implementation very deep in the language 2018-01-15T15:35:45Z vyzo: that's not very friendly to true CPS Schemes like Gambit and Gerbil on top 2018-01-15T15:36:35Z jcowan: I don't see how that can be avoided. If the handler runs in the same dynamic environment as its caller and raises an exception, it will be reentered, whereas an exception in the handler should be handled by the handler in place when the handler was established. 2018-01-15T15:36:52Z vyzo: if it raises an exception it catches itself 2018-01-15T15:36:57Z jcowan: handlers should not have to handle their own errors, is what I am saying 2018-01-15T15:37:00Z vyzo: that's how with-exception-handler works 2018-01-15T15:37:14Z vyzo: no, they shouldn't raise errors in the first place 2018-01-15T15:37:27Z jcowan: Pfft, that's a good trick. What about out-of-memory? 2018-01-15T15:37:38Z vyzo: that's an abortable condition 2018-01-15T15:37:41Z vyzo: you can abor the thread 2018-01-15T15:37:48Z vyzo: you can have different mechanisms of abort 2018-01-15T15:37:55Z vyzo: but besides the cheap trick 2018-01-15T15:38:00Z vyzo: sorry if you feel it was 2018-01-15T15:38:17Z vyzo: the issue is that you require the caller (raise-continuable) to have knowledge of a stack 2018-01-15T15:38:43Z vyzo: tha'ts shouldn't be in the standard imo 2018-01-15T15:39:11Z vyzo: if you want a stack 2018-01-15T15:39:15Z vyzo: then put it in with-exception-handler 2018-01-15T15:39:21Z vyzo: see with-exception-catcher in Gambit 2018-01-15T15:39:37Z vyzo: just to be clear, I am not sayin gthat stack unwind is a bad idea 2018-01-15T15:39:56Z vyzo: for example, spawn installs an abortive exception handler that unwinds the stack on uncaught exceptions 2018-01-15T15:40:13Z jcowan: the dynamic environment always involves a stack: consider how parameterize works 2018-01-15T15:40:25Z vyzo: exceptions are different 2018-01-15T15:40:32Z vyzo: they can be handled by an operator interactively 2018-01-15T15:40:50Z vyzo: no stack unwind unless the operator says so 2018-01-15T15:40:56Z vyzo: or he can return a value in a tail raise! 2018-01-15T15:41:31Z daviid joined #scheme 2018-01-15T15:45:41Z vyzo: also, for the root of your complaint 2018-01-15T15:45:48Z vyzo: it's easy to have a handle not handle its own errors 2018-01-15T15:46:24Z vyzo: (with-exception-handler (let (E (current-exception-handler)) (lambda (exn) (with-exception-handler E (lambda () foo ...)) thunk) 2018-01-15T15:46:30Z vyzo: and that can become a new primitive 2018-01-15T15:46:56Z vyzo: which is functionaly equivalent to with-exception-catcher in Gambit 2018-01-15T15:47:18Z vyzo: actually the latter unwinds stacks 2018-01-15T15:47:21Z vyzo: anyway 2018-01-15T15:47:30Z vyzo: all I am saying, is that you put the stack in the wrong place 2018-01-15T15:47:41Z vyzo: raise should always be continuable in the sense that it can return a value 2018-01-15T15:47:48Z vyzo: and raise-continuable is unnecessary 2018-01-15T15:48:30Z vyzo: what you want is with-exception-handler, with-exception-catcher, and form of guard (or primitive) that can implement your concern for not handling its own errors 2018-01-15T15:48:34Z vyzo: no stack required 2018-01-15T15:49:06Z vyzo: hopefully that better explains my problem with raise/raise-continuable 2018-01-15T15:49:07Z jcowan: Guard allows the *caller* to handle the callee's errors in such a way that the callee doesn't get control. 2018-01-15T15:49:33Z smurfrobot joined #scheme 2018-01-15T15:49:39Z jcowan: Raise(-non-continuable) lets the callee inform the caller that recovery from this error is not possible 2018-01-15T15:49:55Z pilne quit (Quit: Quitting!) 2018-01-15T15:49:58Z jcowan: Historically this distinction was encoded in the condition object, but that turns out to be a bad idea 2018-01-15T15:50:03Z vyzo: you see my problem with that is that you break the control flow 2018-01-15T15:50:47Z vyzo: the exception handler should be allowed to keep the stack and always expected to continue when installed with the lowest form with-exception-handler 2018-01-15T15:50:53Z jcowan: So you do. The point of exceptions is that they are exceptional. If you want Go, you know where to find it. 2018-01-15T15:50:55Z vyzo: which is the only primitive you need, together with call.cc 2018-01-15T15:51:09Z vyzo: that's a cheap shot on your part too :) 2018-01-15T15:51:14Z jcowan: well, yes 2018-01-15T15:51:29Z vyzo: look, i am not personally attacking your choice 2018-01-15T15:51:38Z vyzo: i am arguing that it was a wrong engineering decision :p 2018-01-15T15:52:02Z vyzo: because we can do better with just with-exception-handler 2018-01-15T15:52:24Z vyzo: also for informing the caller about the callee's requirements 2018-01-15T15:52:25Z jcowan: Sure. I just think you are missing the utility of raise, which is the core of error 2018-01-15T15:52:29Z vyzo: that doesn't mean unwind the stack! 2018-01-15T15:52:42Z vyzo: I don't, I use stack unwind all the time in actor threads in Gerbil 2018-01-15T15:52:45Z jcowan: Why not? Calling error means "I give up" 2018-01-15T15:52:50Z vyzo: nope 2018-01-15T15:52:55Z vyzo: maybe you are in the repl 2018-01-15T15:53:00Z vyzo: and the operator can provide the value instead 2018-01-15T15:53:03Z vyzo: because he is debugging 2018-01-15T15:53:10Z vyzo: you are killing the debugger with this decision 2018-01-15T15:53:14Z vyzo: let's not make it in the standard 2018-01-15T15:53:21Z vyzo: that's the core of my problem with it! 2018-01-15T15:53:44Z jcowan: For that use case, restarts are the right thing, and I hope to get them into the Yellow Ed 2018-01-15T15:53:54Z vyzo: sigh 2018-01-15T15:54:07Z gwatt: vyzo: you don't have to return from the exception handler 2018-01-15T15:54:21Z smurfrobot quit (Ping timeout: 264 seconds) 2018-01-15T15:54:47Z jcowan: https://mumble.net/~campbell/proposals/restart.text 2018-01-15T15:54:52Z gwatt: could you not make a debugging-exception-handler at the repl and execute all expressions in that context? 2018-01-15T15:55:11Z vyzo: sure! 2018-01-15T15:55:28Z vyzo: but if you have a raise "I GIVE UP" 2018-01-15T15:55:41Z vyzo: you wont be able to fix it 2018-01-15T15:56:13Z vyzo: coz you've already unwound stack 2018-01-15T15:56:35Z vyzo: and maybe you are not able to fix it, but at least you will be able to poke it so that you understand the bug 2018-01-15T15:59:43Z jcowan: ah, I think I see the problem 2018-01-15T15:59:46Z jcowan: raise does not unwind the stack 2018-01-15T15:59:55Z jcowan: it simply prevents the handler from resuming the caller 2018-01-15T16:00:39Z jcowan: (define (raise obj) (raise-continuable obj) (raise "Attempt to continue the uncontinuable")) 2018-01-15T16:01:30Z vyzo: you can define several semantics for your exception handling 2018-01-15T16:01:40Z vyzo: which ultimately dictates how raise will behave 2018-01-15T16:02:14Z vyzo: but it's up to the installed handler 2018-01-15T16:03:41Z badkins joined #scheme 2018-01-15T16:06:29Z _mjl joined #scheme 2018-01-15T16:07:16Z gwatt: jcowan: that definition of raise is an infinite loop 2018-01-15T16:08:23Z gwatt: or maybe not, i guess it depends on the handler. 2018-01-15T16:09:09Z mjl_ joined #scheme 2018-01-15T16:09:44Z mjl_ quit (Client Quit) 2018-01-15T16:11:20Z jcowan: I assume the handler will try to figure out what it has and reraise anything it doesn't understand, that's true 2018-01-15T16:11:25Z jcowan: s/I assume/It assumes 2018-01-15T16:11:44Z jcowan: However, you can call some implementation-specific panic instead of raise if you prefer. 2018-01-15T16:12:10Z gwatt: no, you're right. that's basically what chez does, though with duplicate code instead of defining raise in terms of raise-continuable 2018-01-15T16:12:58Z hooverville joined #scheme 2018-01-15T16:15:09Z emacsoma` joined #scheme 2018-01-15T16:16:02Z emacsomancer quit (Ping timeout: 255 seconds) 2018-01-15T16:25:27Z hooverville quit (Ping timeout: 240 seconds) 2018-01-15T16:33:07Z webshinra quit (Ping timeout: 252 seconds) 2018-01-15T16:34:12Z vyzo: also see the Gambit implementation 2018-01-15T16:34:59Z vyzo: raise is raise-continuable without stack unwind 2018-01-15T16:38:21Z webshinra joined #scheme 2018-01-15T16:40:50Z jcowan: yes, that is what r7rs does: no unwind from either raise or raise-continuable 2018-01-15T16:41:08Z jcowan: the only unwinding is done by guard (or direct use of call/cc) 2018-01-15T16:42:00Z vyzo: there are details (1) and (2) I don't like 2018-01-15T16:42:11Z vyzo: don't say anything about the handler being active 2018-01-15T16:42:18Z vyzo: leave it up to the handler 2018-01-15T16:42:32Z vyzo: and then I'd be happy to have two primitives with raise defined in terms of raise-continuable 2018-01-15T16:42:39Z vyzo: so call it an ammendment to the standard 2018-01-15T16:42:53Z vyzo: and then I would be happy to have raise and raise-continuable in Gerbil r7rs 2018-01-15T16:43:03Z vyzo: but as it is I can't provide raise-continuable with these semantics 2018-01-15T16:43:25Z vyzo: and I am not willing to implement them in Gambit core either, because it's too intrusive a change that breaks stuff 2018-01-15T16:44:31Z jcowan: Where do we say anything about "active"? I'm not seeing it. 2018-01-15T16:44:52Z vyzo: (1) the current exception handler is the one that was in place when the handler being called was installed, 2018-01-15T16:44:58Z drewc_ joined #scheme 2018-01-15T16:45:02Z vyzo: (2) if the handler being called returns, then it will again become the current exception handler. 2018-01-15T16:45:07Z jcowan: oh, the current exception handler, I see 2018-01-15T16:45:11Z vyzo: right 2018-01-15T16:45:14Z vyzo: it's a nonlocal change 2018-01-15T16:45:23Z jcowan: How is that different from the current dynamic environment in general? 2018-01-15T16:45:38Z vyzo: the handler is a property of the thread in a multi-threaded scheme 2018-01-15T16:45:44Z jcowan: as, in the current set of rebound parameters? 2018-01-15T16:45:49Z jcowan: so are they 2018-01-15T16:46:12Z vyzo: so basically you require the implementation to keep a stack of handlers in with-ecxeption-handler 2018-01-15T16:46:16Z vyzo: so that you can do the switcharoo 2018-01-15T16:47:08Z jcowan: We require it to keep a per-thread set of values for all parameters (dynamically bound objects) 2018-01-15T16:47:17Z vyzo: yes, that's fine 2018-01-15T16:47:27Z vyzo: but the dynamic environments are flat in gambit! 2018-01-15T16:47:30Z vyzo: not stacked 2018-01-15T16:47:32Z drewc quit (Ping timeout: 255 seconds) 2018-01-15T16:48:15Z drewc_ is now known as drewc 2018-01-15T16:49:50Z jcowan: you've lost me here, and anyway I have to go to the doctor 2018-01-15T16:50:04Z vyzo: ok 2018-01-15T16:50:17Z vyzo: anyway, it's a very technical and low level issue I have 2018-01-15T16:50:21Z vyzo: the requirement to keep a stack 2018-01-15T16:50:28Z vyzo: the implementation shouldn't be required to do so 2018-01-15T16:50:31Z vyzo: because, CPS! 2018-01-15T16:50:38Z smurfrobot joined #scheme 2018-01-15T16:54:44Z pjb quit (Ping timeout: 256 seconds) 2018-01-15T16:55:00Z smurfrobot quit (Ping timeout: 260 seconds) 2018-01-15T17:18:55Z pjb joined #scheme 2018-01-15T17:25:22Z greatscottttt quit (Quit: WeeChat 1.9) 2018-01-15T17:35:32Z jcowan quit (Ping timeout: 256 seconds) 2018-01-15T17:39:14Z lambda-11235 joined #scheme 2018-01-15T17:57:47Z klovett quit (Remote host closed the connection) 2018-01-15T17:58:17Z klovett joined #scheme 2018-01-15T18:06:49Z Steverman quit (Ping timeout: 256 seconds) 2018-01-15T18:11:07Z r\x00t quit (Quit: Leaving) 2018-01-15T18:14:23Z pjb quit (Ping timeout: 256 seconds) 2018-01-15T18:29:51Z sleffy joined #scheme 2018-01-15T18:35:24Z oleo joined #scheme 2018-01-15T18:40:56Z badkins quit (Remote host closed the connection) 2018-01-15T18:41:17Z pjb joined #scheme 2018-01-15T18:42:02Z badkins joined #scheme 2018-01-15T18:44:06Z lambda-11235 quit (Ping timeout: 256 seconds) 2018-01-15T18:49:50Z akkad is now known as Ober 2018-01-15T18:52:11Z smurfrobot joined #scheme 2018-01-15T18:56:56Z lambda-11235 joined #scheme 2018-01-15T18:57:03Z smurfrobot quit (Ping timeout: 268 seconds) 2018-01-15T19:11:02Z smurfrobot joined #scheme 2018-01-15T19:15:16Z pjb quit (Ping timeout: 256 seconds) 2018-01-15T19:17:23Z sleffy quit (Ping timeout: 255 seconds) 2018-01-15T19:28:24Z pjb joined #scheme 2018-01-15T19:34:21Z eni joined #scheme 2018-01-15T19:37:53Z manualcrank quit (Read error: Connection reset by peer) 2018-01-15T19:38:10Z weinholt quit (Read error: error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number) 2018-01-15T19:38:54Z manualcrank joined #scheme 2018-01-15T19:43:18Z weinholt joined #scheme 2018-01-15T20:19:41Z marusich joined #scheme 2018-01-15T20:31:41Z logicmoo quit (Read error: Connection reset by peer) 2018-01-15T20:45:50Z smurfrobot quit (Remote host closed the connection) 2018-01-15T20:54:08Z _mjl quit (Ping timeout: 255 seconds) 2018-01-15T21:32:29Z Murii quit (Quit: WeeChat 1.4) 2018-01-15T21:35:57Z dmiles joined #scheme 2018-01-15T21:41:20Z badkins quit (Remote host closed the connection) 2018-01-15T21:41:26Z badkins_ joined #scheme 2018-01-15T21:48:28Z sleffy joined #scheme 2018-01-15T21:53:38Z dmiles quit (Read error: Connection reset by peer) 2018-01-15T22:00:52Z dmiles joined #scheme 2018-01-15T22:05:29Z smurfrobot joined #scheme 2018-01-15T22:14:12Z smurfrobot quit (Remote host closed the connection) 2018-01-15T22:22:18Z oleo quit (Remote host closed the connection) 2018-01-15T22:22:29Z eni quit (Quit: Leaving) 2018-01-15T22:22:55Z oleo joined #scheme 2018-01-15T22:28:10Z oleo quit (Remote host closed the connection) 2018-01-15T22:28:50Z oleo joined #scheme 2018-01-15T22:32:07Z pjb` joined #scheme 2018-01-15T22:32:58Z sz0 joined #scheme 2018-01-15T22:34:29Z pjb quit (Ping timeout: 256 seconds) 2018-01-15T22:35:45Z pjb` is now known as pjb 2018-01-15T23:14:31Z sleffy quit (Ping timeout: 256 seconds) 2018-01-15T23:14:41Z smurfrobot joined #scheme 2018-01-15T23:20:04Z smurfrobot quit (Ping timeout: 256 seconds) 2018-01-15T23:22:13Z civodul quit (Quit: ERC (IRC client for Emacs 25.3.1)) 2018-01-15T23:24:48Z smurfrobot joined #scheme 2018-01-15T23:26:03Z jp quit (Read error: Connection reset by peer) 2018-01-15T23:27:06Z pilne joined #scheme 2018-01-15T23:27:14Z oleo quit (Remote host closed the connection) 2018-01-15T23:27:55Z oleo joined #scheme 2018-01-15T23:29:27Z smurfrobot quit (Ping timeout: 256 seconds) 2018-01-15T23:31:32Z pierpa joined #scheme 2018-01-15T23:31:43Z jp joined #scheme 2018-01-15T23:35:06Z klovett quit (Remote host closed the connection) 2018-01-15T23:36:34Z klovett joined #scheme 2018-01-15T23:39:05Z klovett_ joined #scheme 2018-01-15T23:41:17Z klovett quit (Ping timeout: 276 seconds) 2018-01-15T23:43:53Z klovett_ quit (Ping timeout: 276 seconds) 2018-01-15T23:45:15Z smurfrobot joined #scheme 2018-01-15T23:48:13Z sleffy joined #scheme 2018-01-15T23:49:10Z jonh left #scheme 2018-01-15T23:49:51Z smurfrobot quit (Ping timeout: 256 seconds) 2018-01-15T23:50:06Z arbv quit (Ping timeout: 256 seconds) 2018-01-15T23:50:55Z smurfrobot joined #scheme 2018-01-15T23:54:54Z jao joined #scheme 2018-01-15T23:55:31Z smurfrobot quit (Ping timeout: 256 seconds)