caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* [Caml-list] recompiling ocamlnet & PXP with 3.05
@ 2002-07-30 19:01 Alexander V.Voinov
  2002-07-30 21:18 ` [Caml-list] Bugfix for ocaml-3.05 problem (was: recompiling ocamlnet & PXP with 3.05) Gerd Stolpmann
  0 siblings, 1 reply; 3+ messages in thread
From: Alexander V.Voinov @ 2002-07-30 19:01 UTC (permalink / raw)
  To: caml-list

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.

Alexander
-------------------
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


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [Caml-list] Bugfix for ocaml-3.05 problem (was: recompiling ocamlnet & PXP with 3.05)
  2002-07-30 19:01 [Caml-list] recompiling ocamlnet & PXP with 3.05 Alexander V.Voinov
@ 2002-07-30 21:18 ` Gerd Stolpmann
  2002-07-31  3:44   ` Alexander V. Voinov
  0 siblings, 1 reply; 3+ messages in thread
From: Gerd Stolpmann @ 2002-07-30 21:18 UTC (permalink / raw)
  To: Alexander V.Voinov; +Cc: caml-list

[-- Attachment #1: Type: text/plain, Size: 1711 bytes --]


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                     
----------------------------------------------------------------------------

[-- Attachment #2: ocaml-3.05-gc.patch --]
[-- Type: text/plain, Size: 2119 bytes --]

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 <limits.h>
 
@@ -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);

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [Caml-list] Bugfix for ocaml-3.05 problem (was: recompiling ocamlnet  & PXP with 3.05)
  2002-07-30 21:18 ` [Caml-list] Bugfix for ocaml-3.05 problem (was: recompiling ocamlnet & PXP with 3.05) Gerd Stolpmann
@ 2002-07-31  3:44   ` Alexander V. Voinov
  0 siblings, 0 replies; 3+ messages in thread
From: Alexander V. Voinov @ 2002-07-31  3:44 UTC (permalink / raw)
  To: Gerd Stolpmann; +Cc: caml-list

Hi Gerd,

It helped with the first part of the problem below (on Linux). But under
Solaris it still crashes at:

ocamlfind ocamlc -g  -package "unix pcre" -thread -c netstring_pcre.mli

Unfortunately this moment I can't spend enough time to trace it within
the compiler.

Alexander

Gerd Stolpmann wrote:
> 
> 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
> ----------------------------------------------------------------------------
> 
>   ------------------------------------------------------------------------
> 
>    ocaml-3.05-gc.patchName: ocaml-3.05-gc.patch
>                       Type: Plain Text (text/plain)
-------------------
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


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2002-07-31  3:43 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-07-30 19:01 [Caml-list] recompiling ocamlnet & PXP with 3.05 Alexander V.Voinov
2002-07-30 21:18 ` [Caml-list] Bugfix for ocaml-3.05 problem (was: recompiling ocamlnet & PXP with 3.05) Gerd Stolpmann
2002-07-31  3:44   ` Alexander V. Voinov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).