Questions, loose ends, misprints, etc.
Andre van Tonder
(01 Dec 2005 15:00 UTC)
|
Re: Questions, loose ends, misprints, etc.
Matthew Flatt
(01 Dec 2005 16:00 UTC)
|
Re: Questions, loose ends, misprints, etc.
Per Bothner
(01 Dec 2005 17:21 UTC)
|
Re: Questions, loose ends, misprints, etc. Matthew Flatt (01 Dec 2005 17:27 UTC)
|
Re: Questions, loose ends, misprints, etc.
Andre van Tonder
(03 Dec 2005 16:20 UTC)
|
Re: Questions, loose ends, misprints, etc.
Andre van Tonder
(03 Dec 2005 22:41 UTC)
|
Re: Questions, loose ends, misprints, etc.
Jens Axel Søgaard
(01 Dec 2005 16:49 UTC)
|
Re: Questions, loose ends, misprints, etc.
Matthew Flatt
(01 Dec 2005 16:58 UTC)
|
Re: Questions, loose ends, misprints, etc. Matthew Flatt 01 Dec 2005 17:29 UTC
At Thu, 01 Dec 2005 09:20:50 -0800, Per Bothner wrote: > (library "foo-counter" "scheme://r6rs" > (export get-foo incr-foo) > (define foo 1) > (define-syntax get-foo > (syntax-rules () > ((get-foo) > foo))) > (define-syntax incr-foo > (syntax-rules () > ((incr-foo) > (set! foo (+ foo 1)))))) > > [Not sure about the exact syntax for 'exports' - srfi-83.html > is inaccessible right now.] > > In the example, get-foo and incr-foo are exported, but foo itself is > not. The compiler can prove that foo is never modified expect by > using incr-foo. Good point. With `syntax-rules', this is often the case, though it requires some analysis. With a more expressive macro system (e.g., `syntax-case'), the analysis quickly becomes difficult. We're planning ahead for an expressive macro system. The idea begin `indirect-export' is as follows: the compiler should be able to produce good results for local definitions (even when expressive macros are defined or imported) without an especially sophisticated analysis of macro transformers. Matthew