[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

illegal uses of define in guile

From: Dirk Herrmann
Subject: illegal uses of define in guile
Date: Mon, 14 Oct 2002 19:17:03 +0200 (CEST)


(I have been quiet for some time because I was on vacation.)

with respect to defines and top level forms, I would like to point out the
following issue (which may also be of relevance for the ideas you discuss
in the file new-model.txt, Marius).

Currently, guile allows the following:
  (if (not (defined? '%load-verbosely))
      (define %load-verbosely #f))
as can be found in r4rs.scm.

This is in contrast to R5RS (maybe even already in contrast to R4RS,
but I haven't checked that).  Allowing such placements of define will make
it impossible to determine statically whether after evaluation of the
form the corresponding identifier will be bound or not.  That is, we
should disallow this behaviour.

First, the code in r4rs.scm should be fixed.  However, I have not taken a
closer look at the way %load-verbosely is being used.  Maybe I will get to
this in the next time, but if someone else could take care of it, great.

Second, we should decide about how to deal with such forms.  Since guile
has allowed this before, there may exist code that makes use of this
feature.  It will, however, be difficult to support this feature as
'deprecated' when separating memoization and execution.

Best regards, 
Dirk Herrmann

reply via email to

[Prev in Thread] Current Thread [Next in Thread]