summaryrefslogtreecommitdiffstats
path: root/stdlib/string.mli
diff options
context:
space:
mode:
authorJonathan Protzenko <Jonathan.Protzenko@ens-lyon.org>2012-01-30 15:33:42 +0000
committerJonathan Protzenko <Jonathan.Protzenko@ens-lyon.org>2012-01-30 15:33:42 +0000
commitd9d4bd2ad0da783ba008cc8d9d41f55255ce3c57 (patch)
tree6b0a149c8a5c48a97963b9899d4b8210186ac9df /stdlib/string.mli
parent438da6350a936770f31e6563d51713b43a3783f7 (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
Diffstat (limited to 'stdlib/string.mli')
-rw-r--r--stdlib/string.mli18
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"