diff options
author | Jonathan Protzenko <Jonathan.Protzenko@ens-lyon.org> | 2012-01-30 15:33:42 +0000 |
---|---|---|
committer | Jonathan Protzenko <Jonathan.Protzenko@ens-lyon.org> | 2012-01-30 15:33:42 +0000 |
commit | d9d4bd2ad0da783ba008cc8d9d41f55255ce3c57 (patch) | |
tree | 6b0a149c8a5c48a97963b9899d4b8210186ac9df | |
parent | 438da6350a936770f31e6563d51713b43a3783f7 (diff) |
Related to #5493: document in string.mli the fact that string constants are shared.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@12102 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
-rw-r--r-- | stdlib/string.mli | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/stdlib/string.mli b/stdlib/string.mli index 501fb181c..ae1ed6f91 100644 --- a/stdlib/string.mli +++ b/stdlib/string.mli @@ -25,6 +25,24 @@ Two parameters [start] and [len] are said to designate a valid substring of [s] if [len >= 0] and [start] and [start+len] are valid positions in [s]. + + One should be aware that string constants are shared: + + {[ + + # let f () = "foo";; + val f : unit -> string = <fun> + # (f ()).[0] <- 'b';; + - : unit = () + # f ();; + - : string = "boo" + + ]} + + Many functions from the standard library may return string constants. + Users should use [String.copy] to make sure they are not modifying a + shared string constant. + *) external length : string -> int = "%string_length" |