Re: Special variables to relax boxing

2013-03-23 Thread Stefan Israelsson Tampe
There are some bugs in the semantics. I try to fix them here Consider * k, the r5rs continuation * dynamic-wind, r5rs dynamic wind with the addition that continuation k is an argument to the rewinder. Introduce (with-special ((a:id kind:object) ...) code ...) and (set~ a:id v:obj) Introduc

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 th

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-22 Thread Daniel Hartwig
On 23 March 2013 06:33, Stefan Israelsson Tampe 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! s (+ s i)) (lp

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 fluids

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 lo

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* variable

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 case

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 > > How

Re: Special variables to relax boxing

2013-03-21 Thread Noah Lavine
Hello, I think I understand what Stefan wants here, and I think it should probably be possible. If I understand correctly, the issue is that when a continuation is captured, it stores the *locations* of all of the variables in-scope at that point. If that continuation is invoked many times, each

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-20 Thread Mark H Weaver
Hi Stefan, Stefan Israelsson Tampe 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 proposing here. In the g