Browse thread
Avoiding shared data
[
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: | Martin Chabr <martin_chabr@y...> |
| Subject: | Avoiding shared data |
Working with non-shared data structures in OCaml Deep copy of OCaml structures, marshaling ================================================ Dear group members, I need to process arrays of pairs of integers and records ((int * record) array) in which all elements must be updated individually, which means that unshared data structures must be used. For arrays of arrays I can produce unshared data by using the library functions Array.copy and Array.append to append the individual arrays into the embedding array. It works, the low level arrays can be updated individually. But I cannot use the same scheme to the array of the (int * record) structures, because I do not know how to copy these structures to dissolve the sharing. I do not even know how to copy records. It seems to me that this problem occurs always when I want to produce an array of data with a fixed structure automatically (rather than entering the array [| ... |] by hand at the top level interpreter using constants only). How can I produce completely unshared structures? What about marshaling and unmarshaling the data? This should produce a deep copy of data objects. I have tried it, it works, but it seems to me wasteful to copy all the data twice only to get rid of the sharing. It would be great to know of a completely general (any nested structures) and fast solution (without copying) how to produce unshared data structures. My environment is OCaml 3.08.02 for Windows on Win 2000, New Windows Interface v1.9RC4. I am looking forward to you reply. Regards, Martin Martin Chabr Hochstrasse 28 8044 Zürich Schweiz / Switzerland Tel.P.: 01-261 17 24 ___________________________________________________________ Was denken Sie über E-Mail? Wir hören auf Ihre Meinung: http://surveylink.yahoo.com/wix/p0379378.aspx