Version française
Home     About     Download     Resources     Contact us    

This site is updated infrequently. For up-to-date information, please visit the new OCaml website at

Browse thread
ocaml+twt v0.90
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2007-01-18 (08:14)
From: Sebastien Ferre <ferre@i...>
Subject: Re: [Caml-list] marshaling limits

Olivier Andrieu wrote:
> On 1/17/07, Daniel Bünzli <> wrote:
>> Le 17 janv. 07 ŕ 16:41, Sebastien Ferre a écrit :
>> > pourtant, je passe bien par un appel a output_value
>> > dans un fichier, sans passer par une chaine intermediaire.
>> Maybe output_value uses a string internally. Try with a bytecode
>> version of your executable, an exception should be raised (or have a
>> look at the implementaiton of output_value).

> If it segfaults, that's most probably because the marshalling runs out
> of executable stack (because of too much recursion). I've seen it do
> this before. The "fix" is to increase the maximum size of the
> executable stack.

Indeed, you're right.
I could solve the problem by using the 'ulimit -s' command.

> The behavior is the same with bytecode or native code since it's not
> the interpreter's stack that overflows, it's the C one.

I didn't know the existence of this C stack.
How can I have an idea of the necessary size ?
Is it related to the depth of data structures to
be marshaled ?

Thanks !