[
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: | Xavier Leroy <Xavier.Leroy@i...> |
| Subject: | Re: [Caml-list] Persistent storage and stability of Marshal? |
> 1. Is the Marshal module that much unstable? I have the feeling that > marhsaled values are compatible between OCaml releases. True or > false? True in practice: the last incompatible change was done in 1996... Still, the Marshal module is not intended for long-term storage of data that you cannot easily reconstruct from other sources. In particular, the data format is compressed enough that it is not possible to salvage data using, say, a text editor. At the very least, it is prudent to build into your software functions to dump and restore marshaled data to/from a simpler, textual format. (That's what I did for SpamOracle's database, which is a marshaled hash table.) > 2. Any advice on implementing persistent storage? I know about Persil > library[3] but I don't see much advantage of using it (does it > implement its own marshaling, more stable than Marshal?). There are two independent questions: 1- How to encode your data into character strings? 2- How to store these strings in persistent storage? For 2-, you have many options, ranging from flat files (the traditional Unix way) to full-fledged databases. For 1-, in addition to the Marshal module, you can also use textual formats: key-value pairs, XML, Lisp S-expressions, etc. Other options are XDR or ASN1 encodings. - Xavier Leroy