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. 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? Mark