ocaml / ocaml

The core OCaml system: compilers, runtime system, base libraries
https://ocaml.org
Other
5.19k stars 1.06k forks source link

bug in ocaml 3.06 #7987

Closed vicuna closed 21 years ago

vicuna commented 21 years ago

Original bug ID: 1514 Reporter: administrator Status: closed Resolution: fixed Priority: normal Severity: minor Category: ~DO NOT USE (was: OCaml general)

Bug description

Here's a little bug. The source-file "bug1.ml" is attached last. In the real file which elicited this symptom, of course, there were no universally-quantified variables. Every variable was of some ground type.

At some point, I might go dig into the toplevel and find this puppy, but on the off chance that I do not, I figured I should report it.

Cheers, --chet--

bismarck:~/fs/TOOLS2/src/rdf> ocaml Objective Caml version 3.06

use "bug1.ml";;

val ntconv_node : 'a -> 'b -> unit list = val ntconv_edge : 'a -> 'b -> 'c -> 'd =

trace ntconv_edge;;

ntconv_edge is not a function.

================================================================ bismarck:~/fs/TOOLS2/src/rdf> cat /proc/cupinfo cat: /proc/cupinfo: No such file or directory bismarck:~/fs/TOOLS2/src/rdf> cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 11 model name : Intel(R) Pentium(R) III Mobile CPU 1200MHz stepping : 1 cpu MHz : 799.331 cache size : 512 KB fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 2 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 mmx fxsr sse bogomips : 1595.80

bismarck:~/fs/TOOLS2/src/rdf> uname -a Linux bismarck.chet.org 2.4.16 #1 Wed Aug 28 01:02:27 EDT 2002 i686 unknown

let rec ntconv_node stk e = (assert false : unit list)

and ntconvedge stk subj = function -> assert false

vicuna commented 21 years ago

Comment author: administrator

Hi Chet,

Here's a little bug. The source-file "bug1.ml" is attached last. In the real file which elicited this symptom, of course, there were no universally-quantified variables. Every variable was of some ground type.

Yes, #trace on mutually-recursive functions is broken in 3.06. It's fixed in the working sources, and a patch against 3.06 is below.

Cheers,

RCS file: /net/pauillac/caml/repository/csl/toplevel/topdirs.ml,v retrieving revision 1.59 retrieving revision 1.60 diff -u -r1.59 -r1.60 --- topdirs.ml 2002/11/17 16:42:11 1.59 +++ topdirs.ml 2002/11/18 13:49:44 1.60 @@ -215,7 +215,9 @@ | _ -> let clos = eval_path path in ( Nothing to do if it's not a closure )

vicuna commented 21 years ago

Comment author: administrator

Fixed 2002/11/18 by XL