From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Delivered-To: caml-list@yquem.inria.fr Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by yquem.inria.fr (Postfix) with ESMTP id 6F8BCBB91 for ; Wed, 19 Jan 2005 09:10:35 +0100 (CET) Received: from saul.cis.upenn.edu (SAUL.CIS.upenn.edu [158.130.12.4]) by concorde.inria.fr (8.13.0/8.13.0) with ESMTP id j0J8AXm2028789 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO) for ; Wed, 19 Jan 2005 09:10:35 +0100 Received: from localhost (localhost [127.0.0.1]) by saul.cis.upenn.edu (8.12.10/8.12.9) with SMTP id j0J8AXNW009462 for ; Wed, 19 Jan 2005 03:10:33 -0500 (EST) Message-Id: <200501190810.j0J8AXNW009462@saul.cis.upenn.edu> To: caml-list@yquem.inria.fr Subject: stack overflow in structural comparison Date: Wed, 19 Jan 2005 03:10:32 EST From: Michael Levin X-Miltered: at concorde with ID 41EE15F9.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Spam: no; 0.00; stack:01 upenn:01 ocaml:01 ocaml:01 compiler:01 verbose:01 stack:01 replacing:01 hand-written:01 bug:01 sts:98 sts:98 saul:01 exception:01 exception:01 X-Spam-Checker-Version: SpamAssassin 3.0.0 (2004-09-13) on yquem.inria.fr X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=disabled version=3.0.0 X-Spam-Level: Hi, I've recently upgraded from ocaml 3.06 to ocaml 3.08 and that caused a frustrating Out_of_memory exception in my Xtatic compiler. I traced it by turning on the full verbose mode in the GC and getting the message "stack overflow in structural comparison" right before the exception is thrown. The line that causes the exception contains "sts1=sts2" where sts1 and sts2 are lists of values of a complicated cyclic data type. I fixed the problem by replacing that comparison by a call to an equivalent hand-written predicate. The original comparison operator though worked fine in ocaml 3.06. So my question is what changed from 3.06 to 3.08? Is that a known bug/feature? Thank you, Michael