On Mon, Jul 2, 2012 at 6:26 AM, Jonathan Rees <[email protected]> wrote: > Ouch! If true, I second this comment. Backward compatibility for write is > pretty important. Consider the case of running an R5RS (or R7RS) program in > an R7RS implementation to generate a file that will be consumed by an R5RS > implementation. > > There is no mention of this incompatibility in the section "Language changes > since R5RS".
Ticket #442 added to vote on this in the next ballot. Requiring the output of R7RS programs to be readable by R5RS programs is forwards compatibility, not backwards, and is unachievable the moment you make any changes to the lexical syntax (e.g. with bytevector literals). You can make the case that passing simple lists of simple data-structures should be compatible between any Scheme-like system. The WG will discuss and vote on this. The community is encouraged to provide additional feedback and examples. We definitely cannot use the SRFI-38 semantics, which provide no equivalent to write-simple (i.e. no procedure which guarantees to be fast). -- Alex > > Jonathan > > On Jul 1, 2012, at 12:36 AM, Marc Feeley 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. >> >> >> _______________________________________________ >> Scheme-reports mailing list >> [email protected] >> http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports > > > _______________________________________________ > Scheme-reports mailing list > [email protected] > http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports _______________________________________________ Scheme-reports mailing list [email protected] http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports
