Version française
Home     About     Download     Resources     Contact us    
Browse thread
Re: [Caml-list] Future of labels
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: David Fox <dsfox@c...>
Subject: Re: [Caml-list] Seg fault with -custom and 2049 lets...
By the way, this was on a Pentium 3 machine running Redhat Linux 7.0
and ocaml-3.01.

David Fox <dsfox@COGSCI.ucsd.edu> writes:

> If I create a program with 2049 simple functions:
> 
>   let f1 () = ()
>   let f2 () = ()
>   ...
>   let f2049 () = ()
> 
> (You can build this using yes "" | cat -n | head -2049 |
>  sed 's/^[^0-9]*\([0-9]*\)[^0-9]*$/let f\1 () = ()/' > y.ml)
> 
> I get a seg fault if I compile it with the -custom flag and use a
> debugging version of malloc:
> 
>   % ocamlc -custom y.ml -ccopt -lefence
>   % ./a.out
>   
>    Electric Fence 2.2.0 Copyright (C) 1987-1999 Bruce Perens <bruce@perens.com>
>   Segmentation fault (core dumped)
>   % 
> 
> or if I link using the debugging library libcamlrund.a:
> 
>   % ./a.out
>   ### O'Caml runtime: debug mode ###
>   Initial minor heap size: 128k bytes
>   Initial major heap size: 248k bytes
>   Initial space overhead: 42%
>   Initial max overhead: 1000000%
>   Initial heap increment: 248k bytes
>   Initial stack limit: 1024k bytes
>   file interp.c; line 255 ### Assertion failed: sp >= stack_low
> 
> If I use the regular (non-debugging) library I don't get the seg fault
> immediately, but in a real life situation things get ugly pretty
> quickly.
> 
> -david
> -------------------
> To unsubscribe, mail caml-list-request@inria.fr.  Archives: http://caml.inria.fr
> 

-- 
$_='while(read+STDIN,$_,2048){$a=29;$b=73;$c=142;$t=255;@t=map{$_%16or$t^=$c^=(
$m=(11,10,116,100,11,122,20,100)[$_/16%8])&110;$t^=(72,@z=(64,72,$a^=12*($_%16
-2?0:$m&17)),$b^=$_%64?12:0,@z)[$_%8]}(16..271);if((@a=unx"C*",$_)[20]&48){$h
=5;$_=unxb24,join"",@b=map{xB8,unxb8,chr($_^$a[--$h+84])}@ARGV;s/...$/1$&/;$
d=unxV,xb25,$_;$e=256|(ord$b[4])<<9|ord$b[3];$d=$d>>8^($f=$t&($d>>12^$d>>4^
$d^$d/8))<<17,$e=$e>>8^($t&($g=($q=$e>>14&7^$e)^$q*8^$q<<6))<<9,$_=$t[$_]^
(($h>>=8)+=$f+(~$g&$t))for@a[128..$#a]}print+x"C*",@a}';s/x/pack+/g;eval 
-------------------
To unsubscribe, mail caml-list-request@inria.fr.  Archives: http://caml.inria.fr