Michael Sperber | 3 Jan 2011 09:33
Picon

Re: Scheme 48 development?


Hans Nowak <hani01 <at> bellsouth.net> writes:

> Um... this may be a dumb question, but... is Scheme 48 still under
> active development?

Absolutely.

> I am asking because the latest stable version (1.8) is almost three
> years old.  So I went to the development page and tried the links
> listed there:
>
> http://www.deinprogramm.de/cgi-bin/hgs48-stable.cgi
> http://www.deinprogramm.de/cgi-bin/hgs48.cgi

That must have been a while ago.  The current development page at:

http://www.s48.org/development.html

lists

Stable/release repository:
http://www.s48.org/cgi-bin/hgwebdir.cgi/s48-stable
Development:
http://www.s48.org/cgi-bin/hgwebdir.cgi/s48

... and these work.  The current state of the development repository is
very close to what will be the 1.9 release.  I'm working on the release
engineering, but it's going slowly due to a new job.  Significant work
has also been done in one or two other branches.
(Continue reading)

Hans Nowak | 3 Jan 2011 09:28

Scheme 48 development?

Greetings,

Um... this may be a dumb question, but... is Scheme 48 still under 
active development?

I am asking because the latest stable version (1.8) is almost three 
years old.  So I went to the development page and tried the links listed 
there:

http://www.deinprogramm.de/cgi-bin/hgs48-stable.cgi
http://www.deinprogramm.de/cgi-bin/hgs48.cgi

...both of which produce a 404.

Scheme 48 seems like a cool beast.  Please tell me that these links are 
out of date and that there is a thriving community somewhere working on 
a repository that is actively maintained...

--

-- 
Hans Nowak

Hans Nowak | 4 Jan 2011 08:32

Re: Scheme 48 development?

On 1/3/11 3:33 AM, Michael Sperber wrote:

> Hans Nowak<hani01 <at> bellsouth.net>  writes:
>
>> I am asking because the latest stable version (1.8) is almost three
>> years old.  So I went to the development page and tried the links
>> listed there:
>>
>> http://www.deinprogramm.de/cgi-bin/hgs48-stable.cgi
>> http://www.deinprogramm.de/cgi-bin/hgs48.cgi
>
> That must have been a while ago.  The current development page at:
>
> http://www.s48.org/development.html
>
> lists
>
> Stable/release repository:
> http://www.s48.org/cgi-bin/hgwebdir.cgi/s48-stable
> Development:
> http://www.s48.org/cgi-bin/hgwebdir.cgi/s48

!!  Yes, these do work for me.  I was looking at:

http://groups.csail.mit.edu/mac/projects/s48/development.html

which still shows the old links.  Incidentally, when you google for 
'scheme 48', that site is the first that comes up.  That would explain 
the confusion...  I was assuming that s48.org was simply an alias for 
the aforementioned site.
(Continue reading)

Jonathan Rees | 5 Jan 2011 22:07
Favicon

Re: Scheme 48 development?


On Jan 4, 2011, at 2:32 AM, Hans Nowak wrote:
>
> !!  Yes, these do work for me.  I was looking at:
>
> http://groups.csail.mit.edu/mac/projects/s48/development.html
>
> which still shows the old links.  Incidentally, when you google for
> 'scheme 48', that site is the first that comes up.  That would explain
> the confusion...  I was assuming that s48.org was simply an alias for
> the aforementioned site.

Amazing... I had no idea these files were cached in CSAIL space. I'll  
try to track them down and set up redirects. Thanks for the alert.

Jonathan

Joo ChurlSoo | 13 Jan 2011 08:18
Picon

parameterize

The following seems to be a bug.

> ,open srfi-39
> 
(let ((f (make-parameter 'a))
      (path '())
      (g (make-parameter 'g))
      (c #f))
  (let ((add (lambda () (set! path (cons (f) path)))))
    (add)
    (parameterize ((f 'b)
		   (g (call-with-current-continuation (lambda (c0) (set! c c0) 'c))))
	(add) (f (g)) (add))
    (f 'd)
    (add)
    (if (< (length path) 5)
	(c 'e)
	(reverse path))))
'(a b c d c e d)			;(a b c d b e d)
> ;; cf.
(let ((f (make-parameter 'a))
      (path '())
      (g (make-parameter 'g))
      (c #f))
  (let ((add (lambda () (set! path (cons (f) path)))))
    (add)
    (parameterize ((f 'b))
	(g (call-with-current-continuation (lambda (c0) (set! c c0) 'c)))
	(add) (f (g)) (add))
    (f 'd)
(Continue reading)

Michael Sperber | 14 Jan 2011 08:23
Picon

Re: parameterize


Joo ChurlSoo <initerm <at> gmail.com> writes:

> The following seems to be a bug.

Could you elaborate?  I enjoy analyzing intricate uses of
`call-with-current-continuation' as much as the next person, but am a
little short on time right now.

--

-- 
Cheers =8-} Mike
Friede, Völkerverständigung und überhaupt blabla

Taylor R Campbell | 14 Jan 2011 16:55
Favicon

Re: parameterize

   Date: Fri, 14 Jan 2011 08:23:58 +0100
   From: Michael Sperber <sperber <at> deinprogramm.de>

   Could you elaborate?  I enjoy analyzing intricate uses of
   `call-with-current-continuation' as much as the next person, but am a
   little short on time right now.

The form

(parameterize ((f 'b) (g (cwcc ...))) ...)

expands roughly to the procedure call

(let-fluids f (make-cell 'b) g (make-cell (cwcc ...))
  (lambda () ...)).

Suppose Scheme48 evaluates the operand expressions left-to-right.
Let's say the value of (make-cell 'b) is called c.  Then when Scheme48
evaluates (make-cell (cwcc ...)), the continuation captured will call
MAKE-CELL and pass f, c, g, the new cell, and the thunk to LET-FLUIDS.
This happens both the first time around, before the program modifies
c, and the second time around, after the program modifies c -- thus, f
is bound again to the modified cell, not to a cell containing the
symbol B.

Instead, the continuation captured should call MAKE-CELL twice and
pass f, its new cell, g, its new cell, and the thunk to LET-FLUIDS.
You could effect this by making PARAMETERIZE expand roughly to

(let ((fv 'b) (gv (cwcc ...)))
(Continue reading)

Joo ChurlSoo | 15 Jan 2011 10:34
Picon

parameterize

 * From: Michael Sperber <sperber <at> deinprogramm.de>
 * Date: Fri, 14 Jan 2011 08:23:58 +0100
 * Subj: Re: parameterize

 | Joo ChurlSoo <initerm <at> gmail.com> writes:
   >> The following seems to be a bug.

 | Could you elaborate?  I enjoy analyzing intricate uses of
 | `call-with-current-continuation' as much as the next person, but am a
 | little short on time right now.

(cf.)
(let ((go #f)
      (alist '()))
  (let ((a 1) (b 2))
    (call-with-current-continuation (lambda (x) (set! go x) 3))
    (set! alist (cons (cons a b) alist))
    (set! a 100)
    (set! alist (cons (cons a b) alist))
    (if (< (length alist) 3)
	(go 3)
	(reverse alist))))

((1 . 2) (100 . 2) (100 . 2) (100 . 2))

(let ((go #f)
      (alist '()))
  (let ((a 1) (b (call-with-current-continuation (lambda (x) (set! go x) 2))))
    (set! alist (cons (cons a b) alist))
    (set! a 100)
(Continue reading)

Emmanuel Medernach | 15 Jan 2011 10:35
Picon
Picon

Bug report

Hello,

I have a bug to report with the last Scheme48 build ( 1.8 )
The following macro generates an error :

(define-syntax foo
 (syntax-rules ()
   ((foo (a ...) (b ...))
    (list (list a b ...) ...))))

However it works fine with other Scheme implementations:
(foo (1 2 3) (4 5)) => ((1 4 5) (2 4 5) (3 4 5))

Best regards,
--

-- 

Attachment (medernac.vcf): text/x-vcard, 283 bytes
Michael Sperber | 15 Jan 2011 14:11
Picon

Re: parameterize

Taylor R Campbell <campbell <at> mumble.net> writes:

> Instead, the continuation captured should call MAKE-CELL twice and
> pass f, its new cell, g, its new cell, and the thunk to LET-FLUIDS.
> You could effect this by making PARAMETERIZE expand roughly to
>
> (let ((fv 'b) (gv (cwcc ...)))
>   (let-fluids f (make-cell fv) g (make-cell gv)
>     (lambda () ...))).

Yes - I've pushed a fix that does this.  Thanks for the explanation!

> (You could also throw up your hands and say `mutable parameters are
> bunk'

Indeed!

--

-- 
Cheers =8-} Mike
Friede, Völkerverständigung und überhaupt blabla


Gmane