On Sun, Jul 1, 2012 at 1:36 PM, Marc Feeley <[email protected]> wrote: > Formal Comment > > Submitter's name: Marc Feeley > Submitter's email: feeley at iro.umontreal.ca > Relevant draft: r7rs draft 6 > > Type: defect > Priority: major > Relevant section of draft: 6.13.3. Output > > Summary: Write procedure is not backwards compatible > > R7RS introduces a new output procedure called write-simple, which has > the same semantics as the R5RS write procedure. On the other hand, > the R7RS write procedure handles shared structures differently than > the R5RS. For example : > > (let ((x (list 1 2))) (write (list x x))) > > displays ((1 2) (1 2)) in an R5RS system > and displays (#0=(1 2) #0#) in an R7RS system > > To preserve backwards compatibility, it is the version of the write > procedure which uses datum labels which should have a different name. > In fact SRFI-38 has specified the name write-with-shared-structure for > this output procedure. This name should be maintained since it has > been implemented with that name in some Scheme systems.
Thanks, formal comment ticket #440 created. We did intentionally make the safe version the default. The programmer should be aware of potential infinite loops when using write-simple. -- Alex _______________________________________________ Scheme-reports mailing list [email protected] http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports
