From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from majordomo@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id XAA04950; Tue, 30 Jul 2002 23:18:31 +0200 (MET DST) X-Authentication-Warning: pauillac.inria.fr: majordomo set sender to owner-caml-list@pauillac.inria.fr using -f Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id XAA05084 for ; Tue, 30 Jul 2002 23:18:30 +0200 (MET DST) Received: from moutng.kundenserver.de (moutng.kundenserver.de [212.227.126.177]) by concorde.inria.fr (8.11.1/8.11.1) with ESMTP id g6ULITj18884 for ; Tue, 30 Jul 2002 23:18:29 +0200 (MET DST) Received: from [212.227.126.160] (helo=mrelayng0.kundenserver.de) by moutng3.kundenserver.de with esmtp (Exim 3.35 #2) id 17ZeNx-00065h-00; Tue, 30 Jul 2002 23:18:29 +0200 Received: from [80.129.99.172] (helo=gate.gerd-stolpmann.de) by mrelayng0.kundenserver.de with asmtp (Exim 3.35 #2) id 17ZeNw-00034M-00; Tue, 30 Jul 2002 23:18:29 +0200 Received: from ice.gerd-stolpmann.de (ice.gerd-stolpmann.de [192.168.0.13]) by gate.gerd-stolpmann.de (Postfix) with ESMTP id 31F10CCDD; Tue, 30 Jul 2002 23:18:23 +0200 (CEST) Received: from ice (localhost [127.0.0.1]) by ice.gerd-stolpmann.de (Postfix) with ESMTP id 451C81AD82; Tue, 30 Jul 2002 23:18:22 +0200 (MEST) Date: Tue, 30 Jul 2002 23:18:21 +0200 From: Gerd Stolpmann To: "Alexander V.Voinov" Cc: caml-list@inria.fr Subject: Re: [Caml-list] Bugfix for ocaml-3.05 problem (was: recompiling ocamlnet & PXP with 3.05) Message-ID: <20020730211821.GA1806@ice.gerd-stolpmann.de> References: <20020730.120120.92581149.avv@quasar.ipa.nw.ru> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="azLHFNyN32YCQGCU" Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20020730.120120.92581149.avv@quasar.ipa.nw.ru>; from avv@quasar.ipa.nw.ru on Tue, Jul 30, 2002 at 21:01:20 +0200 X-Mailer: Balsa 1.3.6 Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk --azLHFNyN32YCQGCU Content-Type: text/plain; charset=ISO-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit On 2002.07.30 21:01 Alexander V.Voinov wrote: > Hi > > ocamlc crashes at some of the sources of the mentioned modules. > > Under Linux/x86 it crashed on > > ocamlfind ocamlc -g -package "netstring" -c pxp_document.ml > ocamlc got signal and exited > > Under Solaris/Sparc it crashed on the netstring as well. Netstring > (and PXP) compiled OK in the same environment under 3.04. Hi, yesterday I already got a similar report from Michaël Marchegay, and I could reproduce the problem. I submitted a bug report (23:44), and Xavier Leroy and Damien Doligez fixed the problem until 15:36. Really phantastic response time! You can read the bug report with some more details how to circumvent the problem: http://caml.inria.fr/bin/caml-bugs/fixed?id=1273;page=44;user=guest For your convenience, I have the attached the patch. Apply it as follows: cd ocaml-3.05/byterun patch -p0 <../../whereever-your-patch-is/patch Then rebuild the whole system: cd .. make clean make world opt opt.opt It would be sufficient to rebuild ocamlrun and all statically linked binaries, there is no change in the libraries (except libcamlrun.a), but I don't know how to do this. I think O'Caml-3.05 is still worth to be tried, there are numerous improvements, and at least for me this GC bug does not prevent me from using this version. It is not a fundamental problem, only a single error. Gerd -- ---------------------------------------------------------------------------- Gerd Stolpmann Telefon: +49 6151 997705 (privat) Viktoriastr. 45 64293 Darmstadt EMail: gerd@gerd-stolpmann.de Germany ---------------------------------------------------------------------------- --azLHFNyN32YCQGCU Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="ocaml-3.05-gc.patch" Index: byterun/major_gc.c =================================================================== RCS file: /net/pauillac/caml/repository/csl/byterun/major_gc.c,v retrieving revision 1.37 retrieving revision 1.39 diff -u -r1.37 -r1.39 --- major_gc.c 2002/06/05 12:11:15 1.37 +++ major_gc.c 2002/07/30 13:48:52 1.39 @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: major_gc.c,v 1.37 2002/06/05 12:11:15 doligez Exp $ */ +/* $Id: major_gc.c,v 1.39 2002/07/30 13:48:52 xleroy Exp $ */ #include @@ -126,15 +126,12 @@ if (Tag_hd (hd) < No_scan_tag){ for (i = 0; i < size; i++){ child = Field (v, i); - mark_again: if (Is_block (child) && Is_in_heap (child)) { hd = Hd_val(child); if (Tag_hd (hd) == Forward_tag){ - child = Forward_val (child); - Field (v, i) = child; - goto mark_again; + Field (v, i) = Forward_val (child); } - if (Tag_hd(hd) == Infix_tag) { + else if (Tag_hd(hd) == Infix_tag) { child -= Infix_offset_val(child); hd = Hd_val(child); } @@ -192,15 +189,13 @@ sz = Wosize_hd (hd); for (i = 1; i < sz; i++){ curfield = Field (cur, i); - weak_again: - if (curfield != 0 && Is_block (curfield) && Is_in_heap (curfield) - && Is_white_val (curfield)){ + if (curfield != 0 && Is_block (curfield) && Is_in_heap (curfield)){ if (Tag_val (curfield) == Forward_tag){ - curfield = Forward_val (curfield); - Field (cur, i) = curfield; - goto weak_again; + Field (cur, i) = Forward_val (curfield); } - Field (cur, i) = 0; + else if (Is_white_val (curfield)){ + Field (cur, i) = 0; + } } } weak_prev = &Field (cur, 0); --azLHFNyN32YCQGCU-- ------------------- To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ Beginner's list: http://groups.yahoo.com/group/ocaml_beginners