Re: Comments on draft 6 Arthur A. Gleckler (24 Feb 2012 05:10 UTC)
Re: [Scheme-reports] Comments on draft 6 John Cowan (24 Feb 2012 05:40 UTC)
Re: Comments on draft 6 Arthur A. Gleckler (24 Feb 2012 05:47 UTC)
Re: [Scheme-reports] Comments on draft 6 John Cowan (24 Feb 2012 06:09 UTC)
Re: Comments on draft 6 Arthur A. Gleckler (24 Feb 2012 06:12 UTC)
Re: [Scheme-reports] Comments on draft 6 Aaron W. Hsu (24 Feb 2012 23:27 UTC)
Re: [Scheme-reports] Comments on draft 6 Andy Wingo (24 Feb 2012 12:35 UTC)
Re: [Scheme-reports] Comments on draft 6 Jussi Piitulainen (24 Feb 2012 12:53 UTC)
Re: [Scheme-reports] Comments on draft 6 Andy Wingo (24 Feb 2012 14:54 UTC)
Re: [Scheme-reports] Comments on draft 6 Jussi Piitulainen (24 Feb 2012 15:23 UTC)
Re: [Scheme-reports] Comments on draft 6 Andy Wingo (24 Feb 2012 16:24 UTC)
Re: [Scheme-reports] Comments on draft 6 Aaron W. Hsu (24 Feb 2012 23:41 UTC)
Re: [Scheme-reports] Comments on draft 6 Aaron W. Hsu (24 Feb 2012 23:34 UTC)
Re: [Scheme-reports] Comments on draft 6 Andy Wingo (25 Feb 2012 18:00 UTC)
Re: [Scheme-reports] Comments on draft 6 Marc Feeley (24 Feb 2012 15:55 UTC)
Re: [Scheme-reports] Comments on draft 6 John Cowan (24 Feb 2012 21:22 UTC)
Re: [Scheme-reports] Comments on draft 6 Aaron W. Hsu (25 Feb 2012 00:28 UTC)
Re: [Scheme-reports] Comments on draft 6 John Cowan (25 Feb 2012 07:28 UTC)

Re: [Scheme-reports] Comments on draft 6 Marc Feeley 24 Feb 2012 15:55 UTC

On 2012-02-24, at 12:40 AM, John Cowan wrote:

> Arthur A. Gleckler scripsit:
>> Thank you.  This helps, but it's still not clear enough.  I've filed Ticket
>> #350 <http://trac.sacrideo.us/wg/ticket/350> to make sure that we improve
>> this language.
>
> Here's my proposal:
>
> I think R5RS/R7RS provides too much generality and should be clawed back.
> The implementations which allow `set!` on unbound identifiers actually
> don't make the identifiers contain unspecified values.

Not true...  see below.

>  For example,
> we don't have implementations whose initial state binds `foo` to `'foo`
> and `bar` to `'bar`, or anything of the sort.  Nor do they come back with
> `#<undef>` or silence.  Instead, an error is signalled when you attempt
> to evaluate `foo` and `bar`.

Because it is allowed by the standard, and it avoids a run-time test, the Gambit compiler does not check that variables are unbound when they are accessed.  For example:

% cat unbound-test.scm
(pretty-print foobar)

(define (set-foobar x)
  (set! foobar x))
% gsi unbound-test.scm
*** ERROR IN "unbound-test.scm"@1.15 -- Unbound variable: foobar
% gsc unbound-test.scm
% gsi unbound-test
#!unbound2

Marc