English version
Accueil     À propos     Téléchargement     Ressources     Contactez-nous    

Ce site est rarement mis à jour. Pour les informations les plus récentes, rendez-vous sur le nouveau site OCaml à l'adresse ocaml.org.

Browse thread
Bug somewhere in Ocaml 3.09.3.rc1?
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2007-03-29 (20:40)
From: skaller <skaller@u...>
Subject: Bug somewhere in Ocaml 3.09.3.rc1?
I have a weird bug where the Felix compiler is going haywire.
I need some ideas how to think about what it is. It appears
to be a bug in Ocaml, not my code.

One, and only one, regression test case is failing when
a piece of code processed by ALL test cases is added.

The test case consists of around 6000 Felix assert statements
partitioned into N small noinline procedures.

>From some value of M < N, the code works, but if I add
just one more of the procedures the compiler diverges.
The divergence follows a known problem pattern in the
Felix inliner, and it unrelated to any of the test
code (it's an unused library routine).

So I think I'm overflowing some boundary, and the Ocaml
run time is corrupting something. The Felix compiler's fresh
symbol count is around 16,000 when this happens -- quite a small
number. The test code is around 500K of source characters,
or 12,000 lines (half the lines are #line directives).

Is there any known problem with this version of Ocaml that
might explain this? Because obviously I can't easily
submit that much test data, and the actual Ocaml code
is also quite large and there's no possible way to isolate
the bug to a simpler program (the routines causing the problem
can't be simply disconnected from the rest of the compiler,
and still process the test data).

My machine is 1G AMD64, I'm using Ocamlopt, and the Ocaml
was built by me directly from the Inria repository.

I might try 3.10 .. can someone tell me the CVS command
needed to update my repository image (sorry, missed the
release announcement).

John Skaller <skaller at users dot sf dot net>
Felix, successor to C++: http://felix.sf.net