caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* [Caml-list] Pickling for OCaml?
@ 2006-01-06  9:59 Jonathan Roewen
  2006-01-06 10:16 ` Erik de Castro Lopo
  2006-01-06 14:50 ` David MENTRE
  0 siblings, 2 replies; 10+ messages in thread
From: Jonathan Roewen @ 2006-01-06  9:59 UTC (permalink / raw)
  To: caml-list

Hi,

Has anyone done a pickling library for O'Caml yet?

Kindest Regards,

Jonathan


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [Caml-list] Pickling for OCaml?
  2006-01-06  9:59 [Caml-list] Pickling for OCaml? Jonathan Roewen
@ 2006-01-06 10:16 ` Erik de Castro Lopo
  2006-01-06 10:27   ` Jonathan Roewen
  2006-01-06 14:50 ` David MENTRE
  1 sibling, 1 reply; 10+ messages in thread
From: Erik de Castro Lopo @ 2006-01-06 10:16 UTC (permalink / raw)
  To: caml-list

Jonathan Roewen wrote:

> Hi,
> 
> Has anyone done a pickling library for O'Caml yet?

Will the Marshall module not do?

Erik
-- 
+-----------------------------------------------------------+
  Erik de Castro Lopo
+-----------------------------------------------------------+
Pastafarianism : http://www.venganza.org/
The intelligent alternative to 'Intelligent Design'.


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [Caml-list] Pickling for OCaml?
  2006-01-06 10:16 ` Erik de Castro Lopo
@ 2006-01-06 10:27   ` Jonathan Roewen
  2006-01-06 14:30     ` Markus Mottl
  2006-01-06 15:36     ` Alessandro Baretta
  0 siblings, 2 replies; 10+ messages in thread
From: Jonathan Roewen @ 2006-01-06 10:27 UTC (permalink / raw)
  To: Erik de Castro Lopo; +Cc: caml-list

> Will the Marshall module not do?

Marshal is unsafe. Pickling is safe. I'd take pickling =)


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [Caml-list] Pickling for OCaml?
  2006-01-06 10:27   ` Jonathan Roewen
@ 2006-01-06 14:30     ` Markus Mottl
  2006-01-06 15:36     ` Alessandro Baretta
  1 sibling, 0 replies; 10+ messages in thread
From: Markus Mottl @ 2006-01-06 14:30 UTC (permalink / raw)
  To: Jonathan Roewen; +Cc: Erik de Castro Lopo, caml-list

On 1/6/06, Jonathan Roewen <jonathan.roewen@gmail.com> wrote:
> > Will the Marshall module not do?
>
> Marshal is unsafe. Pickling is safe. I'd take pickling =)

You could try our S-expression library, which uses CamlP4 to generate
code for converting arbitrary extensionally defined (= sum and product
types, polymorphic variants, records, types with type variables)
OCaml-types to and from S-expressions:

  http://www.janestcapital.com/ocaml

The library is safe and displays understandable error messages when
parsing S-expressions.  One can choose whether to print values in
human-readable ways or in very compact machine-readable (somewhat
human-readable) form.  It's also very easy to write down OCaml-values
in S-expression syntax, which makes it ideal for complex configuration
files.

Regards,
Markus

--
Markus Mottl        http://www.ocaml.info        markus.mottl@gmail.com


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [Caml-list] Pickling for OCaml?
  2006-01-06  9:59 [Caml-list] Pickling for OCaml? Jonathan Roewen
  2006-01-06 10:16 ` Erik de Castro Lopo
@ 2006-01-06 14:50 ` David MENTRE
  1 sibling, 0 replies; 10+ messages in thread
From: David MENTRE @ 2006-01-06 14:50 UTC (permalink / raw)
  To: Jonathan Roewen; +Cc: caml-list

Hello,

2006/1/6, Jonathan Roewen <jonathan.roewen@gmail.com>:
> Has anyone done a pickling library for O'Caml yet?

What does mean "pickling"?

Best wishes,
d.


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [Caml-list] Pickling for OCaml?
  2006-01-06 10:27   ` Jonathan Roewen
  2006-01-06 14:30     ` Markus Mottl
@ 2006-01-06 15:36     ` Alessandro Baretta
  2006-01-06 16:02       ` Mark Shinwell
  1 sibling, 1 reply; 10+ messages in thread
From: Alessandro Baretta @ 2006-01-06 15:36 UTC (permalink / raw)
  To: Jonathan Roewen, Ocaml

Jonathan Roewen wrote:
>>Will the Marshall module not do?
> 
> 
> Marshal is unsafe. Pickling is safe. I'd take pickling =)

Marshalling and "pickling" are synonyms. The Marshal module does not provide 
runtime checks, yet, but the Caml team is working at it, as far as I know.

Alex

-- 
*********************************************************************
http://www.barettadeit.com/
Baretta DE&IT
A division of Baretta SRL

tel. +39 02 370 111 55
fax. +39 02 370 111 54

Our technology:

The Application System/Xcaml (AS/Xcaml)
<http://www.asxcaml.org/>

The FreerP Project
<http://www.freerp.org/>


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [Caml-list] Pickling for OCaml?
  2006-01-06 15:36     ` Alessandro Baretta
@ 2006-01-06 16:02       ` Mark Shinwell
  2006-01-11  4:48         ` Jonathan Roewen
  0 siblings, 1 reply; 10+ messages in thread
From: Mark Shinwell @ 2006-01-06 16:02 UTC (permalink / raw)
  To: caml-list

On Fri, Jan 06, 2006 at 04:36:34PM +0100, Alessandro Baretta wrote:
> Jonathan Roewen wrote:
> >>Will the Marshall module not do?
> >
> >
> >Marshal is unsafe. Pickling is safe. I'd take pickling =)
> 
> Marshalling and "pickling" are synonyms. The Marshal module does not 
> provide runtime checks, yet, but the Caml team is working at it, as far as 
> I know.

Myself and others at Cambridge, headed by Peter Sewell, are working on
type- and abstraction-safe marshalling for O'Caml that works even where
values to be marshalled are passed through polymorphic functions.
Expect to hear more later this year.

Mark


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [Caml-list] Pickling for OCaml?
  2006-01-06 16:02       ` Mark Shinwell
@ 2006-01-11  4:48         ` Jonathan Roewen
  2006-01-11  4:50           ` Jonathan Roewen
  2006-01-11  8:16           ` Alessandro Baretta
  0 siblings, 2 replies; 10+ messages in thread
From: Jonathan Roewen @ 2006-01-11  4:48 UTC (permalink / raw)
  To: Mark Shinwell; +Cc: caml-list

> > Marshalling and "pickling" are synonyms. The Marshal module does not
> > provide runtime checks, yet, but the Caml team is working at it, as far as
> > I know.
>
> Myself and others at Cambridge, headed by Peter Sewell, are working on
> type- and abstraction-safe marshalling for O'Caml that works even where
> values to be marshalled are passed through polymorphic functions.
> Expect to hear more later this year.

Well, in the meantime, we've ported most of the pickling library from
SML.NET to work with O'Caml. Supports most of the basic types
(int,bool,char,string,list,array,unit,pairs->sextuples) and a few
combinators (alttag, wrap, lift,seq).

Fairly easy to define a pickler:

module BytePickle = Pickle.CorePickle(Pickle.ByteCodec)
open BytePickle

let pickler = pair (string list,int)

let data = pickle pickler (["hello";"world"],-1)

let value = unpickle pickler (List.rev data)

Files at http://devnulled.ath.cx/svn/dst/kernel/pickle.ml &
http://devnulled.ath.cx/svn/dst/kernel/pickle.mli

Kindest Regards,

Jonathan


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [Caml-list] Pickling for OCaml?
  2006-01-11  4:48         ` Jonathan Roewen
@ 2006-01-11  4:50           ` Jonathan Roewen
  2006-01-11  8:16           ` Alessandro Baretta
  1 sibling, 0 replies; 10+ messages in thread
From: Jonathan Roewen @ 2006-01-11  4:50 UTC (permalink / raw)
  Cc: caml-list

Oops, URLs are wrong =(

Files at http://devnulled.ath.cx/svn/dst/trunk/kernel/pickle.ml &
http://devnulled.ath.cx/svn/dst/trunk/kernel/pickle.mli

> Well, in the meantime, we've ported most of the pickling library from
> SML.NET to work with O'Caml. Supports most of the basic types
> (int,bool,char,string,list,array,unit,pairs->sextuples) and a few
> combinators (alttag, wrap, lift,seq).
>
> Fairly easy to define a pickler:
>
> module BytePickle = Pickle.CorePickle(Pickle.ByteCodec)
> open BytePickle
>
> let pickler = pair (string list,int)
>
> let data = pickle pickler (["hello";"world"],-1)
>
> let value = unpickle pickler (List.rev data)
>
> Files at http://devnulled.ath.cx/svn/dst/kernel/pickle.ml &
> http://devnulled.ath.cx/svn/dst/kernel/pickle.mli
>
> Kindest Regards,
>
> Jonathan
>


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [Caml-list] Pickling for OCaml?
  2006-01-11  4:48         ` Jonathan Roewen
  2006-01-11  4:50           ` Jonathan Roewen
@ 2006-01-11  8:16           ` Alessandro Baretta
  1 sibling, 0 replies; 10+ messages in thread
From: Alessandro Baretta @ 2006-01-11  8:16 UTC (permalink / raw)
  To: Jonathan Roewen; +Cc: caml-list

Jonathan Roewen wrote:

> let pickler = pair (string list,int)
> 
> let data = pickle pickler (["hello";"world"],-1)
> 
> let value = unpickle pickler (List.rev data)

Neat trick!

Alex

-- 
*********************************************************************
http://www.barettadeit.com/
Baretta DE&IT
A division of Baretta SRL

tel. +39 02 370 111 55
fax. +39 02 370 111 54

Our technology:

The Application System/Xcaml (AS/Xcaml)
<http://www.asxcaml.org/>

The FreerP Project
<http://www.freerp.org/>


^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2006-01-11  8:16 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-01-06  9:59 [Caml-list] Pickling for OCaml? Jonathan Roewen
2006-01-06 10:16 ` Erik de Castro Lopo
2006-01-06 10:27   ` Jonathan Roewen
2006-01-06 14:30     ` Markus Mottl
2006-01-06 15:36     ` Alessandro Baretta
2006-01-06 16:02       ` Mark Shinwell
2006-01-11  4:48         ` Jonathan Roewen
2006-01-11  4:50           ` Jonathan Roewen
2006-01-11  8:16           ` Alessandro Baretta
2006-01-06 14:50 ` David MENTRE

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).