From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on yquem.inria.fr X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=disabled version=3.1.3 X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from discorde.inria.fr (discorde.inria.fr [192.93.2.38]) by yquem.inria.fr (Postfix) with ESMTP id 4568BBC69 for ; Thu, 29 Mar 2007 22:40:37 +0200 (CEST) Received: from ipmail02.adl2.internode.on.net (ipmail02.adl2.internode.on.net [203.16.214.141]) by discorde.inria.fr (8.13.6/8.13.6) with ESMTP id l2TKeYUd001774 for ; Thu, 29 Mar 2007 22:40:36 +0200 Received: from ppp36-111.lns2.syd6.internode.on.net (HELO [192.168.1.201]) ([59.167.36.111]) by ipmail02.adl2.internode.on.net with ESMTP; 30 Mar 2007 06:10:32 +0930 X-IronPort-AV: i="4.14,348,1170595800"; d="scan'208"; a="103880986:sNHT21011690" Subject: Bug somewhere in Ocaml 3.09.3.rc1? From: skaller To: caml-list@inria.fr Content-Type: text/plain Date: Fri, 30 Mar 2007 06:40:18 +1000 Message-Id: <1175200818.16694.46.camel@rosella.wigram> Mime-Version: 1.0 X-Mailer: Evolution 2.8.1 Content-Transfer-Encoding: 7bit X-Miltered: at discorde with ID 460C2442.000 by Joe's j-chkmail (http://j-chkmail . ensmp . fr)! X-Spam: no; 0.00; bug:01 ocaml:01 bug:01 compiler:01 ocaml:01 partitioned:01 compiler:01 diverges:01 ocamlopt:01 corrupting:98 cvs:01 sourceforge:01 assert:01 data:02 data:02 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 Felix, successor to C++: http://felix.sf.net