Browse thread
Array 4 MB size limit
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
| Date: | -- (:) |
| From: | Oliver Bandel <oliver@f...> |
| Subject: | Re: [Caml-list] Re: immutable strings (Re: Array 4 MB size limit) |
On Thu, May 25, 2006 at 12:23:51AM -0700, j h woodyatt wrote: > On May 24, 2006, at 10:56 PM, Martin Jambon wrote: > > > >So I'd really love to see actual examples where using immutable > >strings would be such an improvement over mutable strings. > >If the problem is just to ensure that string data won't be changed > >by the user of a library, then it is trivial using module > >signatures and String.copy for the conversions. > > I have no dog in this fight, but I can imagine a pragmatic approach > that might satisfy some of these concerns without introducing much in > the way of extra runtime complexity costs. > > Change the way strings are boxed so that there is an additional tag > for immutable strings as opposed to the normal mutable ones. In all > respects, allow string objects with either tag to be treated the same > by functions that do not modify the content of the string. When the > "safe" variants of the string mutation functions are called on a > string object with the immutable tag, throw a runtime exception. [...] Compiletime error would be what I would prefer. [...] > It *might* > give a pragmatic benefit of surfacing unintentional programming > errors earlier than they might otherwise be found, [...] The earlier the better it is. It's like non-matching types found by the compiler: it helps a lot in development. Debugging normallay takes the most time in development; and with OCaml debugging time decreases much - that is what I experienced. And this comes from early getting a hint to possible problems (possible with compilers that would accept such code; im possible when the compiler says: "no! I don't accept these sources!"). Ciao, Oliver