|
SRFI 185: Linear adjustable-size strings
Arthur A. Gleckler
(24 Feb 2020 18:18 UTC)
|
|
Re: SRFI 185: Linear adjustable-size strings
Per Bothner
(24 Feb 2020 18:53 UTC)
|
|
Re: SRFI 185: Linear adjustable-size strings
Marc Nieper-Wißkirchen
(24 Feb 2020 19:06 UTC)
|
|
Re: SRFI 185: Linear adjustable-size strings
Per Bothner
(24 Feb 2020 19:31 UTC)
|
|
Re: SRFI 185: Linear adjustable-size strings
John Cowan
(24 Feb 2020 20:09 UTC)
|
|
Re: SRFI 185: Linear adjustable-size strings Per Bothner (25 Feb 2020 01:08 UTC)
|
|
Re: SRFI 185: Linear adjustable-size strings
Arthur A. Gleckler
(25 Feb 2020 06:00 UTC)
|
|
Re: SRFI 185: Linear adjustable-size strings
Arthur A. Gleckler
(24 Feb 2020 19:14 UTC)
|
|
Re: SRFI 185: Linear adjustable-size strings
John Cowan
(24 Feb 2020 19:21 UTC)
|
|
Re: SRFI 185: Linear adjustable-size strings
Marc Nieper-Wißkirchen
(24 Feb 2020 19:54 UTC)
|
On 2/24/20 12:09 PM, John Cowan wrote: > If you prefer me to remove your name altogether, I can with your permission. I'd like you to remove me as "original author", and not list me in the index/front page. The "Author" section could say "much of the text and examples is derived from SRFI-118 by Per Bothner" if Arthur thinks that is appropriate. I've done some more thinking about this, and I've convinced myself that linear-update APIs is an elegant but misguided idea. They should not be used in new APIs or added to programming-language libraries. They are harder to use correctly, have unpredictable performance and behavior, are error prone, and confusing for non-expert programmers - doubly so if the idea is only used for a few new procedures. A string library should be purely functional, or un-apologetically side-effecting. Linear update is wishy-washy and has none of the benefits and all of the downsides of either model. One perceived advantage of string-linear-append! is that it can be implemented portably on unmodified legacy Scheme systems - but at the cost of both unpredictable performance and unclear semantics. If we're trying to define "R7RS-large" that perceived advantage should not be leading us to specifying a worse API: If people have to change their string implementation, so be it. (They probably had to do that for Unicode anyway.) If we're trying to define a "portability layer" (shim) then my suggestion to define a SRFI-118 "subset" where string-append! and string-replace! are macros works just as well. -- --Per Bothner xxxxxx@bothner.com http://per.bothner.com/