Hi, Mark H Weaver <m...@netris.org> skribis:
> I wrote: >> 3. Make scm_nullstr into a mutable string. After all, it can't be >> changed anyway, and the _only_ reference to it is from >> scm_from_stringn, so the result should always be mutable. > > For the record: my statement above was in error; scm_nullstr is actually > used in several files. However, I looked at each use, and in all cases > a mutable string is appropriate. Also, it is SCM_INTERNAL. So I > committed the change. Good! > However, I wonder if we should also remove this optimization from > scm_from_stringn, as Bruce suggested. The R5RS says that `string' and > `make-string' should return "a newly allocated string", which implies > that the new string should not be `eq?' to any existing object. > > Although our docs for scm_from_stringn et al do not explicitly specify > that the string is newly allocated, an argument could be made that we > should follow the behavior of `string'. > > What do other people think? Makes sense to return a new empty string, yes. Ludo’, who is hoping for the day where strings are immutable, period. :-)