caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* [Caml-list] make opt.opt => compilation-failure
@ 2002-04-18  9:38 Oliver Bandel
  2002-04-18 10:04 ` Sven
  0 siblings, 1 reply; 6+ messages in thread
From: Oliver Bandel @ 2002-04-18  9:38 UTC (permalink / raw)
  To: caml-list

Hello,

I have tried to install OCaml 3.04 on a PPC-Linux.

I got problems (compilation-errors (Assembler-Messages))
when doing an "make opt.opt".
The I tried to do the opt-compilations separetly
and there were no problems.
After doing that I tried again 2make opt.opt" and it
failed again.

What is the problem? Isn't "makr opt.opt" the same
as "make ocamlc.opt; make ocamlopt.opt; make ocamllex.opt" ?

Is that a known problem?

Should I send the compilation-output to that list or to
a developper, who is specialized on PPC-platforms?

Here is, what I have done:
=========================================
./configure
=> OK

make world
=> OK

make bootstrap
=> OK

make opt
=> OK

make ocamlc.opt         # to build a native-code version of ocamlc
=> OK

make ocamlopt.opt       # to build a native-code version of ocamlopt
=> OK

make ocamllex.opt       # to build a native-code version of ocamllex
=> OK

make opt.opt            # to build all of them
=> COMPILATION-FAILURE
=========================================

Ciao,
   Oliver

-------------------
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] 6+ messages in thread

* Re: [Caml-list] make opt.opt => compilation-failure
  2002-04-18  9:38 [Caml-list] make opt.opt => compilation-failure Oliver Bandel
@ 2002-04-18 10:04 ` Sven
  2002-04-18 10:55   ` Oliver Bandel
  0 siblings, 1 reply; 6+ messages in thread
From: Sven @ 2002-04-18 10:04 UTC (permalink / raw)
  To: Oliver Bandel; +Cc: caml-list

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

On Thu, Apr 18, 2002 at 11:38:08AM +0200, Oliver Bandel wrote:
> Hello,
> 
> I have tried to install OCaml 3.04 on a PPC-Linux.
> 
> I got problems (compilation-errors (Assembler-Messages))
> when doing an "make opt.opt".
> The I tried to do the opt-compilations separetly
> and there were no problems.
> After doing that I tried again 2make opt.opt" and it
> failed again.
> 
> What is the problem? Isn't "makr opt.opt" the same
> as "make ocamlc.opt; make ocamlopt.opt; make ocamllex.opt" ?
> 
> Is that a known problem?
> 
> Should I send the compilation-output to that list or to
> a developper, who is specialized on PPC-platforms?

It is a known problem, fixed in the CVS tree, and i did extract this precise
fix to add it to the debian ocaml package (btw, which linux distrib do you use
?).

Here is the fix as a standalone patch attached.

Friendly,

Sven Luther



[-- Attachment #2: ocaml-powerpcfix.diff --]
[-- Type: text/plain, Size: 9849 bytes --]

diff --exclude=*CVS* -urN ocaml/asmcomp/linearize.ml ocaml+powerpcfix/asmcomp/linearize.ml
--- ocaml/asmcomp/linearize.ml	Mon Feb  5 09:49:10 2001
+++ ocaml+powerpcfix/asmcomp/linearize.ml	Tue Feb 19 18:06:40 2002
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id: linearize.ml,v 1.23 2001/02/05 08:49:10 xleroy Exp $ *)
+(* $Id: linearize.ml,v 1.24 2002/01/09 19:40:48 xleroy Exp $ *)
 
 (* Transformation of Mach code into a list of pseudo-instructions. *)
 
@@ -25,7 +25,7 @@
 
 type instruction =
   { mutable desc: instruction_desc;
-    next: instruction;
+    mutable next: instruction;
     arg: Reg.t array;
     res: Reg.t array;
     live: Reg.Set.t }
diff --exclude=*CVS* -urN ocaml/asmcomp/linearize.mli ocaml+powerpcfix/asmcomp/linearize.mli
--- ocaml/asmcomp/linearize.mli	Mon Feb  5 09:49:10 2001
+++ ocaml+powerpcfix/asmcomp/linearize.mli	Tue Feb 19 18:06:40 2002
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id: linearize.mli,v 1.12 2001/02/05 08:49:10 xleroy Exp $ *)
+(* $Id: linearize.mli,v 1.13 2002/01/09 19:40:48 xleroy Exp $ *)
 
 (* Transformation of Mach code into a list of pseudo-instructions. *)
 
@@ -19,7 +19,7 @@
 
 type instruction =
   { mutable desc: instruction_desc;
-    next: instruction;
+    mutable next: instruction;
     arg: Reg.t array;
     res: Reg.t array;
     live: Reg.Set.t }
@@ -43,6 +43,7 @@
 val end_instr: instruction
 val instr_cons: 
   instruction_desc -> Reg.t array -> Reg.t array -> instruction -> instruction
+val invert_test: Mach.test -> Mach.test
 
 type fundecl =
   { fun_name: string;
diff --exclude=*CVS* -urN ocaml/asmcomp/power/arch.ml ocaml+powerpcfix/asmcomp/power/arch.ml
--- ocaml/asmcomp/power/arch.ml	Fri Apr 21 10:11:10 2000
+++ ocaml+powerpcfix/asmcomp/power/arch.ml	Tue Feb 19 18:06:42 2002
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id: arch.ml,v 1.6 2000/04/21 08:11:10 weis Exp $ *)
+(* $Id: arch.ml,v 1.7 2002/01/09 19:40:48 xleroy Exp $ *)
 
 (* Specific operations for the PowerPC processor *)
 
@@ -19,6 +19,7 @@
 type specific_operation =
     Imultaddf                           (* multiply and add *)
   | Imultsubf                           (* multiply and subtract *)
+  | Ialloc_far of int                   (* allocation in large functions *)
 
 (* Addressing modes *)
 
@@ -71,6 +72,8 @@
   | Imultsubf ->
       fprintf ppf "%a *f %a -f %a"
         printreg arg.(0) printreg arg.(1) printreg arg.(2)
+  | Ialloc_far n ->
+      fprintf ppf "alloc_far %d" n
 
 (* Distinguish between the PowerPC and the Power/RS6000 submodels *)
 
diff --exclude=*CVS* -urN ocaml/asmcomp/power/emit.mlp ocaml+powerpcfix/asmcomp/power/emit.mlp
--- ocaml/asmcomp/power/emit.mlp	Fri Mar 10 15:31:06 2000
+++ ocaml+powerpcfix/asmcomp/power/emit.mlp	Tue Feb 19 18:06:42 2002
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id: emit.mlp,v 1.11 2000/03/10 14:31:06 xleroy Exp $ *)
+(* $Id: emit.mlp,v 1.12 2002/01/09 19:40:48 xleroy Exp $ *)
 
 (* Emission of PowerPC assembly code *)
 
@@ -349,6 +349,7 @@
 let name_for_specific = function
     Imultaddf -> "fmadd"
   | Imultsubf -> "fmsub"
+  | _ -> Misc.fatal_error "Emit.Ispecific"
 
 (* Name of current function *)
 let function_name = ref ""
@@ -365,6 +366,132 @@
 (* Number of jumptable entries *)
 let num_jumptbl_entries = ref 0
 
+(* Fixup conditional branches that exceed hardware allowed range *)
+
+let load_store_size = function
+    Ibased(s, d) -> 2
+  | Iindexed ofs -> if is_immediate ofs then 1 else 3
+  | Iindexed2 -> 1
+
+let instr_size = function
+    Lend -> 0
+  | Lop(Imove | Ispill | Ireload) -> 1
+  | Lop(Iconst_int n) -> if is_native_immediate n then 1 else 2
+  | Lop(Iconst_float s) -> if toc then 1 else 2
+  | Lop(Iconst_symbol s) -> if toc then 1 else 2
+  | Lop(Icall_ind) -> if toc then 6 else 2
+  | Lop(Icall_imm s) ->
+      if toc && not (StringSet.mem s !defined_functions) then 2 else 1
+  | Lop(Itailcall_ind) -> if toc then 7 else 5
+  | Lop(Itailcall_imm s) ->
+      if s = !function_name then 1
+      else if  not toc || StringSet.mem s !defined_functions then 4
+      else 8
+  | Lop(Iextcall(s, true)) -> if toc then 2 else 3
+  | Lop(Iextcall(s, false)) -> if pic_externals then 4 else 1
+  | Lop(Istackoffset n) -> 1
+  | Lop(Iload(chunk, addr)) ->
+      if chunk = Byte_signed
+      then load_store_size addr + 1
+      else load_store_size addr
+  | Lop(Istore(chunk, addr)) -> load_store_size addr
+  | Lop(Ialloc n) -> 4
+  | Lop(Ispecific(Ialloc_far n)) -> 5
+  | Lop(Iintop Imod) -> if powerpc then 3 else 2
+  | Lop(Iintop(Icomp cmp)) -> 4
+  | Lop(Iintop op) -> 1
+  | Lop(Iintop_imm(Idiv, n)) -> 2
+  | Lop(Iintop_imm(Imod, n)) -> 4
+  | Lop(Iintop_imm(Icomp cmp, n)) -> 4
+  | Lop(Iintop_imm(op, n)) -> 1
+  | Lop(Inegf | Iabsf | Iaddf | Isubf | Imulf | Idivf) -> 1
+  | Lop(Ifloatofint) -> 9
+  | Lop(Iintoffloat) -> 4
+  | Lop(Ispecific sop) -> 1
+  | Lreloadretaddr -> 2
+  | Lreturn -> 2
+  | Llabel lbl -> 0
+  | Lbranch lbl -> 1
+  | Lcondbranch(tst, lbl) -> 2
+  | Lcondbranch3(lbl0, lbl1, lbl2) ->
+      1 + (if lbl0 = None then 0 else 1)
+        + (if lbl1 = None then 0 else 1)
+        + (if lbl2 = None then 0 else 1)
+  | Lswitch jumptbl -> 8
+  | Lsetuptrap lbl -> 1
+  | Lpushtrap -> if toc then 5 else 4
+  | Lpoptrap -> 2
+  | Lraise -> if toc then 7 else 6
+
+let label_map code =
+  let map = Hashtbl.create 37 in
+  let rec fill_map pc instr =
+    match instr.desc with
+      Lend -> (pc, map)
+    | Llabel lbl -> Hashtbl.add map lbl pc; fill_map pc instr.next
+    | op -> fill_map (pc + instr_size op) instr.next
+  in fill_map 0 code
+
+let max_branch_offset = 8180
+(* 14-bit signed offset in words.  Remember to cut some slack
+   for multi-word instructions where the branch can be anywhere in
+   the middle.  12 words of slack is plenty. *)
+
+let branch_overflows map pc_branch lbl_dest =
+  let pc_dest = Hashtbl.find map lbl_dest in
+  let delta = pc_dest - (pc_branch + 1) in
+  delta <= -max_branch_offset || delta >= max_branch_offset
+
+let opt_branch_overflows map pc_branch opt_lbl_dest =
+  match opt_lbl_dest with
+    None -> false
+  | Some lbl_dest -> branch_overflows map pc_branch lbl_dest
+
+let fixup_branches codesize map code =
+  let expand_optbranch lbl n arg next =
+    match lbl with
+      None -> next
+    | Some l ->
+        instr_cons (Lcondbranch(Iinttest_imm(Isigned Ceq, n), l))
+                   arg [||] next in
+  let rec fixup did_fix pc instr =
+    match instr.desc with
+      Lend -> did_fix
+    | Lcondbranch(test, lbl) when branch_overflows map pc lbl ->
+        let lbl2 = new_label() in
+        let cont =
+          instr_cons (Lbranch lbl) [||] [||]
+            (instr_cons (Llabel lbl2) [||] [||] instr.next) in
+        instr.desc <- Lcondbranch(invert_test test, lbl2);
+        instr.next <- cont;
+        fixup true (pc + 2) instr.next
+    | Lcondbranch3(lbl0, lbl1, lbl2)
+      when opt_branch_overflows map pc lbl0
+        || opt_branch_overflows map pc lbl1
+        || opt_branch_overflows map pc lbl2 ->
+        let cont =
+          expand_optbranch lbl0 0 instr.arg
+            (expand_optbranch lbl1 1 instr.arg
+              (expand_optbranch lbl2 2 instr.arg instr.next)) in
+        instr.desc <- cont.desc;
+        instr.next <- cont.next;
+        fixup true pc instr
+    | Lop(Ialloc n) when codesize - pc >= max_branch_offset ->
+        instr.desc <- Lop(Ispecific(Ialloc_far n));
+        fixup true (pc + 4) instr.next
+    | op ->
+        fixup did_fix (pc + instr_size op) instr.next
+  in fixup false 0 code
+
+(* Iterate branch expansion till all conditional branches are OK *)
+
+let rec branch_normalization code =
+  let (codesize, map) = label_map code in
+  if codesize >= max_branch_offset && fixup_branches codesize map code
+  then branch_normalization code
+  else ()
+
+
 (* Output the assembly code for an instruction *)
 
 let rec emit_instr i dslot =
@@ -551,6 +678,15 @@
         `	addi	{emit_reg i.res.(0)}, {emit_gpr 31}, 4\n`;
         record_frame i.live;
         `	bltl	{emit_label !call_gc_label}\n`
+    | Lop(Ispecific(Ialloc_far n)) ->
+        if !call_gc_label = 0 then call_gc_label := new_label();
+        let lbl = new_label() in
+        `	addi    {emit_gpr 31}, {emit_gpr 31}, {emit_int(-n)}\n`;
+        `	cmplw	{emit_gpr 31}, {emit_gpr 30}\n`;
+        `	bge	{emit_label lbl}\n`;
+        record_frame i.live;
+        `	bl	{emit_label !call_gc_label}\n`;
+        `{emit_label lbl}:	addi	{emit_reg i.res.(0)}, {emit_gpr 31}, 4\n`
     | Lop(Iintop Isub) ->               (* subf has swapped arguments *)
         (* Use subfc instead of subf for RS6000 compatibility. *)
         `	subfc	{emit_reg i.res.(0)}, {emit_reg i.arg.(1)}, {emit_reg i.arg.(0)}\n`
@@ -749,7 +885,7 @@
         `	lwz	{emit_gpr 29}, 4({emit_gpr 1})\n`;
         if toc then
           `	lwz	{emit_gpr 2}, 20({emit_gpr 1})\n`;
-        `	addi	{emit_gpr 1}, {emit_gpr 1}, {emit_int trap_frame_size}\n\n`;
+        `	addi	{emit_gpr 1}, {emit_gpr 1}, {emit_int trap_frame_size}\n`;
         `	blr\n`
 
 and emit_delay = function
@@ -831,6 +967,7 @@
       `	addi	{emit_gpr 1}, {emit_gpr 1}, {emit_int(-n)}\n`
   end;
   `{emit_label !tailrec_entry_point}:\n`;
+  branch_normalization fundecl.fun_body;
   emit_all fundecl.fun_body;
   (* Emit the glue code to call the GC *)
   if !call_gc_label > 0 then begin

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

* Re: [Caml-list] make opt.opt => compilation-failure
  2002-04-18 10:04 ` Sven
@ 2002-04-18 10:55   ` Oliver Bandel
  2002-04-18 13:25     ` Sven
  2002-04-18 14:01     ` Oliver Bandel
  0 siblings, 2 replies; 6+ messages in thread
From: Oliver Bandel @ 2002-04-18 10:55 UTC (permalink / raw)
  To: Sven; +Cc: caml-list

Hello,

On Thu, 18 Apr 2002, Sven wrote:

> On Thu, Apr 18, 2002 at 11:38:08AM +0200, Oliver Bandel wrote:
> > Hello,
> > 
> > I have tried to install OCaml 3.04 on a PPC-Linux.
> > 
> > I got problems (compilation-errors (Assembler-Messages))
> > when doing an "make opt.opt".
> > The I tried to do the opt-compilations separetly
> > and there were no problems.
> > After doing that I tried again 2make opt.opt" and it
> > failed again.
> > 
> > What is the problem? Isn't "makr opt.opt" the same
> > as "make ocamlc.opt; make ocamlopt.opt; make ocamllex.opt" ?
> > 
> > Is that a known problem?
> > 
> > Should I send the compilation-output to that list or to
> > a developper, who is specialized on PPC-platforms?
> 
> It is a known problem, fixed in the CVS tree, and i did extract this precise
> fix to add it to the debian ocaml package (btw, which linux distrib do you use
> ?).

I use a suse-linux 7.1.

I may update to a newer one when I have more time.
I normally use tar.gz-files and install it by myself
(I don't know., if suse provides Ocaml-packages).


> 
> Here is the fix as a standalone patch attached.

How to use it?
Can you give me an instruction?

I think I have to use "patch". But whith which options
and how do I use it to pathc the ocaml-sources?

Thanx in Advance,
               Oliver

P.S.: Where is the cvs-tree located (URL) and does it make sense
      genreally to prefer the cvs-distribution? Shouldn't be
      the Ocaml-distribution in tar.gz-format, available from
      the ocaml-pages/inria-ftp be a stable version for all
      platforms?

-------------------
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] 6+ messages in thread

* Re: [Caml-list] make opt.opt => compilation-failure
  2002-04-18 10:55   ` Oliver Bandel
@ 2002-04-18 13:25     ` Sven
  2002-04-18 14:01     ` Oliver Bandel
  1 sibling, 0 replies; 6+ messages in thread
From: Sven @ 2002-04-18 13:25 UTC (permalink / raw)
  To: Oliver Bandel; +Cc: caml-list

On Thu, Apr 18, 2002 at 12:55:54PM +0200, Oliver Bandel wrote:
> Hello,
> 
> On Thu, 18 Apr 2002, Sven wrote:
> 
> > On Thu, Apr 18, 2002 at 11:38:08AM +0200, Oliver Bandel wrote:
> > > Hello,
> > > 
> > > I have tried to install OCaml 3.04 on a PPC-Linux.
> > > 
> > > I got problems (compilation-errors (Assembler-Messages))
> > > when doing an "make opt.opt".
> > > The I tried to do the opt-compilations separetly
> > > and there were no problems.
> > > After doing that I tried again 2make opt.opt" and it
> > > failed again.
> > > 
> > > What is the problem? Isn't "makr opt.opt" the same
> > > as "make ocamlc.opt; make ocamlopt.opt; make ocamllex.opt" ?
> > > 
> > > Is that a known problem?
> > > 
> > > Should I send the compilation-output to that list or to
> > > a developper, who is specialized on PPC-platforms?
> > 
> > It is a known problem, fixed in the CVS tree, and i did extract this precise
> > fix to add it to the debian ocaml package (btw, which linux distrib do you use
> > ?).
> 
> I use a suse-linux 7.1.
> 
> I may update to a newer one when I have more time.
> I normally use tar.gz-files and install it by myself
> (I don't know., if suse provides Ocaml-packages).

As the debian maintainer of the ocaml package, i can only suggest that you
switch over to debian, espacially as there will be a new release on may 1 if
all goes well. (Debian has been one of the two most early distribution
suporting ppc beside linuxppc, which if i guess correctly is now defunct).

But then, as said, i have a biased opinion myself, and don't use ppc
personnaly anyway.

> > Here is the fix as a standalone patch attached.
> 
> How to use it?
> Can you give me an instruction?

Well, it is a simple patch. It would go as follows :

cd /where/you/build/ocaml
tar xzvf ocaml-3.04.tar.gz
cd ocaml-3.04
cat ../ocaml-powerpcfix.diff | patch -p1

follow the standard instructions in the ocaml INSTALL file as usual.

(alternatively, you could first do :

cat ../ocaml-powerpcfix.diff | patch -p1 --dry-run

to check that all goes well without really acting).

> I think I have to use "patch". But whith which options
> and how do I use it to pathc the ocaml-sources?


> 
> Thanx in Advance,
>                Oliver
> 
> P.S.: Where is the cvs-tree located (URL) and does it make sense
>       genreally to prefer the cvs-distribution? Shouldn't be
>       the Ocaml-distribution in tar.gz-format, available from
>       the ocaml-pages/inria-ftp be a stable version for all
>       platforms?

No, i think you don't should use the cvs version, but prefer the stable
release. That is why i had to extract the patch from cvs to apply only it, and
not a lot of other stuff. the cvs version would be nice for people doing
experiments, but not for common usage.

Also, you have to understand that, since there is only one devel tree in CVS,
the fix cannot be backported to the stable release, and mostly what did happen
in case of grave problems in the past, was to shortly do a new release.

Anyway, it is only a minor problem, which is fixed now, and will be included
in the next official release.

But again, simply use debian and install my ocaml packages, and you will get
stable version, not only for ppc, but for all the supported arches (well ia64
is still broken, but who already uses that anyway). (sorry f

The cvs location is available from the caml.inria.fr web site.

Friendly,

Sven Luther
-------------------
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] 6+ messages in thread

* Re: [Caml-list] make opt.opt => compilation-failure
  2002-04-18 10:55   ` Oliver Bandel
  2002-04-18 13:25     ` Sven
@ 2002-04-18 14:01     ` Oliver Bandel
  2002-04-18 20:56       ` Oliver Bandel
  1 sibling, 1 reply; 6+ messages in thread
From: Oliver Bandel @ 2002-04-18 14:01 UTC (permalink / raw)
  To: Sven; +Cc: caml-list



On Thu, 18 Apr 2002, Oliver Bandel wrote:

> Hello,
> 
> On Thu, 18 Apr 2002, Sven wrote:
> 
> > On Thu, Apr 18, 2002 at 11:38:08AM +0200, Oliver Bandel wrote:
> > > Hello,
> > > 
> > > I have tried to install OCaml 3.04 on a PPC-Linux.
> > > 
> > > I got problems (compilation-errors (Assembler-Messages))
> > > when doing an "make opt.opt".
> > > The I tried to do the opt-compilations separetly
> > > and there were no problems.
> > > After doing that I tried again 2make opt.opt" and it
> > > failed again.
> > > 
> > > What is the problem? Isn't "makr opt.opt" the same
> > > as "make ocamlc.opt; make ocamlopt.opt; make ocamllex.opt" ?
> > > 
> > > Is that a known problem?
> > > 
> > > Should I send the compilation-output to that list or to
> > > a developper, who is specialized on PPC-platforms?
> > 
> > It is a known problem, fixed in the CVS tree, and i did extract this precise
> > fix to add it to the debian ocaml package (btw, which linux distrib do you use
> > ?).
> 
> I use a suse-linux 7.1.
> 
> I may update to a newer one when I have more time.
> I normally use tar.gz-files and install it by myself
> (I don't know., if suse provides Ocaml-packages).
> 
> 
> > 
> > Here is the fix as a standalone patch attached.
> 
> How to use it?
> Can you give me an instruction?

Ok, have found the problem:
different patches in one file.

patch seems to be working sucessfully now.

Hope, that the compilation will work.

Ciao,
   Oliver

-------------------
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] 6+ messages in thread

* Re: [Caml-list] make opt.opt => compilation-failure
  2002-04-18 14:01     ` Oliver Bandel
@ 2002-04-18 20:56       ` Oliver Bandel
  0 siblings, 0 replies; 6+ messages in thread
From: Oliver Bandel @ 2002-04-18 20:56 UTC (permalink / raw)
  To: Sven; +Cc: caml-list



On Thu, 18 Apr 2002, Oliver Bandel wrote:

[...]
> patch seems to be working sucessfully now.
> 
> Hope, that the compilation will work.


Yes, it works.

Thanks again,
         Oliver

-------------------
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] 6+ messages in thread

end of thread, other threads:[~2002-04-18 21:10 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-04-18  9:38 [Caml-list] make opt.opt => compilation-failure Oliver Bandel
2002-04-18 10:04 ` Sven
2002-04-18 10:55   ` Oliver Bandel
2002-04-18 13:25     ` Sven
2002-04-18 14:01     ` Oliver Bandel
2002-04-18 20:56       ` Oliver Bandel

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