Browse thread
[Caml-list] Gripes with array
[
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: | Damien Doligez <damien.doligez@i...> |
| Subject: | Re: [Caml-list] Gripes with array |
On Sep 9, 2004, at 04:10, Jon Harrop wrote: > I'm increasingly finding the outrageously finite size limit of arrays > to be a > pain. How I would like to get rid of that limit! > Am I right in thinking that the maximum > non-float array size on a 64-bit machine is 18,014,398,509,481,983? That's correct. It's a good thing that 32-bitters are on their way out. > Also, can Array.init be made to fill the elements only once? No, that's impossible without breaking the GC invariants. > This would make quite a few things twice as fast Twice? I doubt it very much. > Array.copy could then be written more succinctly and > efficiently in terms of Array.init as: > > let copy a = init (length a) (fun i -> a.(i)) Exactly how it's written now, except that it's inlined by hand for performance reasons. > Does anyone have any pointers to information about the origin of the > size > limit for arrays? I assume it is something to do with the garbage > collector > using a fixed-size tag instead of a variable-size one but I'd be > interested > in the details. Yes, but the main use of the tag is not garbage collection. On Sep 9, 2004, at 09:17, Jean-Christophe Filliatre wrote: > But I must agree with you: this is definitely too small and we could > imagine that, when the tag says a block is an array, the size is > stored within the first (or the last) field instead. The last, really? On Sep 9, 2004, at 10:23, Richard Jones wrote: > I have a similar problem with the maximum size of strings. In > practical terms, it limits the size of file uploads to COCANWIKI to > around 6 MB (ie., not very much) [not the full 16 MB because of > character escaping, but even 16 MB would be far too small]. Maybe you should use bigarrays instead of strings. A general remark: for more details on the internal representation of O'Caml values, you can read < http://caml.inria.fr/ocaml/htmlman/manual032.html >. -- Damien ------------------- To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ Beginner's list: http://groups.yahoo.com/group/ocaml_beginners