guile-devel
[Top][All Lists]
Advanced

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

Re: Release 1.6 critical TODO items.


From: Rob Browning
Subject: Re: Release 1.6 critical TODO items.
Date: Mon, 28 Jan 2002 08:52:25 -0600
User-agent: Gnus/5.090006 (Oort Gnus v0.06) Emacs/21.1 (i386-debian-linux-gnu)

Martin Grabmueller <address@hidden> writes:

> Then this would be used in `scm_gensym' instead of `scm_mem2symbol'.
> Symbols created with would then be unique.

> IRIC, the problem with this was that after writing out/reading in, the
> gensym symbols would not be unique anymore.  After looking for a
> solution for that, we came into a larger discussion about read/write
> invariance, cyclic data structures, symbol->string conversions etc.

Your code seems like it's at least a fairly substantial improvement
over what we have now, especially for the cases where gensym is being
used inside macro expansions to avoid unintential shadowing.

Any reason I shouldn't just test and include this fix in 1.5/1.7?

Eventually fixing the write/read problem seems like it will require
something fancier and/or some compromises.

FWIW, rscheme's gensym outputs symbols like G#0, which can't be read
back in.

  top[0]=>(write (gensym)) (newline)
  G#0
  top[1]=>(with-input-from-string
            (with-output-to-string (lambda () (write (gensym))))
            (lambda ()
              (display (read)) (newline)
              (display (read)) (newline)))
  G
  error: scan-token:1: #\# cannot be followed by #\1
  break[0]=>

But then again, rscheme has support for a persistent store, so for
some purposes, you can use that...

-- 
Rob Browning
rlb @defaultvalue.org, @linuxdevel.com, and @debian.org
Previously @cs.utexas.edu
GPG=1C58 8B2C FB5E 3F64 EA5C  64AE 78FE E5FE F0CB A0AD



reply via email to

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