Re: Special variables to relax boxing

2013-03-23 Thread Stefan Israelsson Tampe
Hi guiler, Hi Daniel. I lost this thread in my mail application, sorry, so I try to continue this way instead. * This feature for scheme is mainly for macro writers which knows what they are doing and which only guard state varibles not seen to the application programmer. This is how I use

Re: Special variables to relax boxing

2013-03-23 Thread Stefan Israelsson Tampe
Ok, I have felt your punches against the idea and have thought about it somewhat more. 1. I can only conclude that today it's already difficult to reason about code with respect to multiple restarts of continuation and the main reason is that at least I have been sloppy to add a ! to the macros

Re: Special variables to relax boxing

2013-03-22 Thread Stefan Israelsson Tampe
Hi list, Mark and Noah, Yesterday I noticed that the sematics for special variables are quite close to fluids and decied to see if I could model special variables ontop of that with-fluids semantics. That was pretty easy. The basic difference between fluid and special variables is that with

Re: Special variables to relax boxing

2013-03-22 Thread Daniel Hartwig
On 23 March 2013 06:33, Stefan Israelsson Tampe stefan.ita...@gmail.com wrote: (define (f x) (let ((s 0)) (with-special-soft ((s 0)) (let lp ((i 0)) (cond ((= i 100) s) ((= i 50) (abort-to-prompt 'tag) (lp (+ i 1))) (else (set!

Re: Special variables to relax boxing

2013-03-21 Thread Mark H Weaver
Hi Stefan, Stefan Israelsson Tampe stefan.ita...@gmail.com writes: I wouldl like to start a discussion of introducing a way to mark variables as special, and by that mean that set! variables does not nessesary get boxed. I don't think you fully understand the ramifications of what you're

Re: Special variables to relax boxing

2013-03-21 Thread Stefan Israelsson Tampe
Ok, This was a first step to get what I would like to have implemented in the tree il backend (Not for scheme but perhaps something useful for e.g. emacs-lisp, python etc). My main issue with the current setup is that adding undoing and redoing feature with the help of prompts will fail in 95% of

Re: Special variables to relax boxing

2013-03-21 Thread Stefan Israelsson Tampe
On Thursday, March 21, 2013 11:35:19 AM Noah Lavine wrote: (lambda () (let ((x 5)) (set! x (compute-1 x)) (set! x (compute-2 x)) x)) becomes (lambda () (let ((k1 (lambda (x) (k2 (compute-2 x (k2 (lambda (x) x))) (k1 (compute-1 x However, this

Re: Special variables to relax boxing

2013-03-21 Thread Mark H Weaver
Stefan, you're still describing your proposal in terms of low-level implementation details such as stacks. In the general case, we cannot store environment structures on the stack. Furthermore, in the general case *all* variables in scheme are bound to locations, not values. Only in special

Re: Special variables to relax boxing

2013-03-21 Thread Stefan Israelsson Tampe
On Thursday, March 21, 2013 03:03:06 PM Mark H Weaver wrote: Stefan, you're still describing your proposal in terms of low-level implementation details such as stacks. In the general case, we cannot store environment structures on the stack. Furthermore, in the general case *all* variables

Re: Special variables to relax boxing

2013-03-21 Thread Noah Lavine
Hi, Stefan and Mark, I think you are talking past each other. Stefan is offering a very concrete definition of what he wants, and Mark is looking for a more abstract version. Here is what I think Stefan wants, in the language of R5RS' storage model: A variable is simply a name for a particular

Special variables to relax boxing

2013-03-19 Thread Stefan Israelsson Tampe
Hi, I wouldl like to start a discussion of introducing a way to mark variables as special, and by that mean that set! variables does not nessesary get boxed. This is a deviation from the scheme standard but it's pretty useful if one want to set! local variables but make sure that the state of the