The latest commit on the Scheme repository may interest some of you.
Marc
From the Changelog:
Fixed a long standing bug with handling of keyword and rest parameters, which prevented the procedures print and println to work reliably.
Now that the print procedure is reliable and subsumes the "fringe printing" algorithm of the display procedure, the behavior of the display procedure has been changed so that it is closer to what other Scheme systems do (i.e. lists and vectors are written with parentheses, spaces, etc).
Afficher les réponses par date
On Fri, 2009-03-13 at 12:13 -0400, Marc Feeley wrote:
From the Changelog:
Fixed a long standing bug with handling of keyword and rest parameters, which prevented the procedures print and println to work reliably.
Yeah!
Now that the print procedure is reliable and subsumes the "fringe printing" algorithm of the display procedure, the behavior of the display procedure has been changed so that it is closer to what other Scheme systems do (i.e. lists and vectors are written with parentheses, spaces, etc).
Uggh. I've spent years writing code that used the old display semantics, which you've argued quite strenuously is the "right thing" (TM) to do. Are you arguing that this version of display is now the "right thing"?
Brad
2009/3/13 Bradley Lucier lucier@math.purdue.edu:
On Fri, 2009-03-13 at 12:13 -0400, Marc Feeley wrote:
display procedure has been changed so that it is closer to what other Scheme systems do (i.e. lists and vectors are written with parentheses, spaces, etc).
Uggh. I've spent years writing code that used the old display semantics, which you've argued quite strenuously is the "right thing" (TM) to do. Are you arguing that this version of display is now the "right thing"?
Maybe it's better if you think of it as "the portable thing". I've spent years working around this feature of Gambit...
david rush
On Mar 13, 2009, at 8:12 PM, David Rush wrote:
2009/3/13 Bradley Lucier lucier@math.purdue.edu:
On Fri, 2009-03-13 at 12:13 -0400, Marc Feeley wrote:
display procedure has been changed so that it is closer to what other Scheme systems do (i.e. lists and vectors are written with parentheses, spaces, etc).
Uggh. I've spent years writing code that used the old display semantics, which you've argued quite strenuously is the "right thing" (TM) to do. Are you arguing that this version of display is now the "right thing"?
Maybe it's better if you think of it as "the portable thing". I've spent years working around this feature of Gambit...
Yes, after I sent my email I figured out that you have the right attitude. I have < 50,000 lines of scheme code I need to audit (which isn't really that much, just looking for display), and the non- standard display was keeping people from Gambit. So it's a net gain.
Brad
On 13-Mar-09, at 11:11 PM, Bradley Lucier wrote:
On Mar 13, 2009, at 8:12 PM, David Rush wrote:
2009/3/13 Bradley Lucier lucier@math.purdue.edu:
On Fri, 2009-03-13 at 12:13 -0400, Marc Feeley wrote:
display procedure has been changed so that it is closer to what other Scheme systems do (i.e. lists and vectors are written with parentheses, spaces, etc).
Uggh. I've spent years writing code that used the old display semantics, which you've argued quite strenuously is the "right thing" (TM) to do. Are you arguing that this version of display is now the "right thing"?
Maybe it's better if you think of it as "the portable thing". I've spent years working around this feature of Gambit...
Yes, after I sent my email I figured out that you have the right attitude. I have < 50,000 lines of scheme code I need to audit (which isn't really that much, just looking for display), and the non-standard display was keeping people from Gambit. So it's a net gain.
Brad
And if you are nostalgic you can always:
(define (display obj #!optional (port (current-output-port))) (print port: port obj))
The old behavior of display was "the right thing" to specify in the Scheme report when display was introduced many years ago. Now there is history and habits to contend with (unfortunately not *your* habits). That's why in 2009 the "fringe writing" algorithm is the right thing for "print", and the wrong thing for "display".
Marc