Commits

camlspotter committed 4c0ab9f Merge

merge with ocaml svn rev 11009

  • Participants
  • Parent commits 3589d8d, 1f2e2b1
  • Branches ocamlspot-3.12.0

Comments (0)

Files changed (1308)

File .cvsignore

File contents unchanged.
+Objective Caml 3.12.1:
+----------------------
+
+- Changed default minor heap size from 32k to 256k words.
+
+Bug fixes:
+- PR#4345, PR#4767: problems with camlp4 printing of float values
+- PR#4380: ocamlbuild should not use tput on windows
+- PR#4552: ocamlbuild does not create symlinks when using '.itarget' file
+- PR#4673, PR#5144: camlp4 fails on object copy syntax
+- PR#4794, PR#4959: call annotations not generated by ocamlopt
+- PR#4820: revised syntax pretty printer crashes with 'Stack_overflow'
+- PR#4928: wrong printing of classes and class types by camlp4
+- PR#4967: ocamlbuild passes wrong switches to ocamldep through menhir
+- PR#4972: mkcamlp4 does not include 'dynlink.cma'
+- PR#5039: ocamlbuild should use '-linkpkg' only when linking programs
+- PR#5071, PR#5129, PR#5134: inconsistencies between camlp4 and camlp4* binaries
+- PR#5080, PR#5104: regression in type constructor handling by camlp4
+- PR#5095: ocamlbuild ignores some tags when building bytecode objects
+- PR#5100: ocamlbuild always rebuilds a 'cmxs' file
+- PR#5103: build and install objinfo when building with ocamlbuild
+- PR#5110: invalid module name when using optional argument
+- PR#5118: Camlp4o and integer literals
+- PR#5128: typo in 'Camlp4ListComprehension' syntax extension
+- PR#5165: ocamlbuild does not pass '-thread' option to ocamlfind
+- PR#5167: camlp4r loops when printing package type
+- PR#5172: camlp4 support for 'module type of' construct
+- PR#5177: Gc.compact implies Gc.full_major
+- PR#5209: natdynlink incorrectly detected on BSD systems
+- PR#5213: ocamlbuild should pass '-rectypes' to ocamldoc when needed
+- PR#5217: ocamlfind plugin should add '-linkpkg' for toplevel
+- PR#5237: incorrect .size directives generated for x86-32 and x86-64
+
+Feature wishes:
+- PR#4992: added '-ml-synonym' and '-mli-synonym' options to ocamldep
+- PR#5065: added '-ocamldoc' option to ocamlbuild
+- PR#5139: added possibility to add options to ocamlbuild
+- PR#5158: added access to current camlp4 parsers and printers
+- PR#5180: improved instruction selection for float operations on amd64
+
+
 Objective Caml 3.12.0:
 ----------------------
 
 
 * First public release.
 
-$Id: Changes 10613 2010-07-02 08:44:04Z frisch $
+$Id: Changes 10980 2011-03-13 13:33:17Z xleroy $
         umask 022       # make sure to give read & execute permission to all
         make install
 
-      In the ocamlbuild setting instead of make install do:
-
-        ./build/install.sh
-
 7- Installation is complete. Time to clean up. From the toplevel
 directory, do "make clean".
 

File Makefile

File contents unchanged.

File Makefile.nt

File contents unchanged.

File README

File contents unchanged.
-3.12.0+ocamlspotter-1.2.1
+3.12.1+dev6+ocamlspotter-1.2.1 (2011-03-06)
 
 # The version string is the first line of this file.
 # It must be in the format described in stdlib/sys.mli
 
-# $Id: VERSION 10641 2010-08-02 13:10:35Z doligez $
+# $Id: VERSION 10973 2011-03-06 16:17:46Z weis $

File asmcomp/.cvsignore

File contents unchanged.

File asmcomp/alpha/arch.ml

File contents unchanged.

File asmcomp/alpha/emit.mlp

File contents unchanged.

File asmcomp/alpha/proc.ml

File contents unchanged.

File asmcomp/alpha/reload.ml

File contents unchanged.

File asmcomp/alpha/scheduling.ml

File contents unchanged.

File asmcomp/alpha/selection.ml

File contents unchanged.

File asmcomp/amd64/arch.ml

File contents unchanged.

File asmcomp/amd64/emit.mlp

 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id: emit.mlp 10488 2010-06-02 08:55:35Z xleroy $ *)
+(* $Id: emit.mlp 10980 2011-03-13 13:33:17Z xleroy $ *)
 
 (* Emission of x86-64 (AMD 64) assembly code *)
 
     | Lop(Imove | Ispill | Ireload) ->
         let src = i.arg.(0) and dst = i.res.(0) in
         if src.loc <> dst.loc then begin
-          if src.typ = Float then
-            `	movsd	{emit_reg src}, {emit_reg dst}\n`
-          else
+          match src.typ, src.loc, dst.loc with
+            Float, Reg _, Reg _ ->
+              `	movapd	{emit_reg src}, {emit_reg dst}\n`
+          | Float, _, _ ->
+              `	movsd	{emit_reg src}, {emit_reg dst}\n`
+          | _ ->
               `	movq	{emit_reg src}, {emit_reg dst}\n`
         end
     | Lop(Iconst_int n) ->
         | _ ->
           let lbl = new_label() in
           float_constants := (lbl, s) :: !float_constants;
-          `	movlpd	{emit_label lbl}(%rip), {emit_reg i.res.(0)}\n`
+          `	movsd	{emit_label lbl}(%rip), {emit_reg i.res.(0)}\n`
         end
     | Lop(Iconst_symbol s) ->
         `	{load_symbol_addr s}, {emit_reg i.res.(0)}\n`
           | Single ->
             `	cvtss2sd {emit_addressing addr i.arg 0}, {emit_reg dest}\n`
           | Double | Double_u ->
-            `	movlpd	{emit_addressing addr i.arg 0}, {emit_reg dest}\n`
+            `	movsd	{emit_addressing addr i.arg 0}, {emit_reg dest}\n`
         end
     | Lop(Istore(chunk, addr)) ->
         begin match chunk with
             `	cvtsd2ss {emit_reg i.arg.(0)}, %xmm15\n`;
             `	movss	%xmm15, {emit_addressing addr i.arg 1}\n`
           | Double | Double_u ->
-            `	movlpd	{emit_reg i.arg.(0)}, {emit_addressing addr i.arg 1}\n`
+            `	movsd	{emit_reg i.arg.(0)}, {emit_addressing addr i.arg 1}\n`
         end
     | Lop(Ialloc n) ->
         if !fastcode_flag then begin
   emit_all true fundecl.fun_body;
   List.iter emit_call_gc !call_gc_sites;
   emit_call_bound_errors ();
+  begin match Config.system with
+    "linux" | "gnu" ->
+      `	.type	{emit_symbol fundecl.fun_name},@function\n`;
+      `	.size	{emit_symbol fundecl.fun_name},.-{emit_symbol fundecl.fun_name}\n`
+    | _ -> ()
+  end;
   if !float_constants <> [] then begin
     if macosx
     then `	.literal8\n`
     else `	.section	.rodata.cst8,\"a\",@progbits\n`;
     List.iter emit_float_constant !float_constants
-  end;
-  match Config.system with
-    "linux" | "gnu" ->
-      `	.type	{emit_symbol fundecl.fun_name},@function\n`;
-      `	.size	{emit_symbol fundecl.fun_name},.-{emit_symbol fundecl.fun_name}\n`
-  | _ -> ()
+  end
 
 (* Emission of data *)
 

File asmcomp/amd64/emit_nt.mlp

 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id: emit_nt.mlp 10460 2010-05-24 15:26:23Z xleroy $ *)
+(* $Id: emit_nt.mlp 10862 2010-11-27 17:19:24Z xleroy $ *)
 
 (* Emission of x86-64 (AMD 64) assembly code, MASM syntax *)
 
     | Lop(Imove | Ispill | Ireload) ->
         let src = i.arg.(0) and dst = i.res.(0) in
         if src.loc <> dst.loc then begin
-          if src.typ = Float then
-            `	movsd	{emit_reg dst}, {emit_reg src}\n`
-          else
-            `	mov	{emit_reg dst}, {emit_reg src}\n`
+          match src.typ, src.loc, dst.loc with
+            Float, Reg _, Reg _ ->
+              `	movapd	{emit_reg dst}, {emit_reg src}\n`
+          | Float, _, _ ->
+              `	movsd	{emit_reg dst}, {emit_reg src}\n`
+          | _ ->
+              `	mov	{emit_reg dst}, {emit_reg src}\n`
         end
     | Lop(Iconst_int n) ->
         if n = 0n then begin
         | _ ->
           let lbl = new_label() in
           float_constants := (lbl, s) :: !float_constants;
-          `	movlpd	{emit_reg i.res.(0)}, {emit_label lbl}\n`
+          `	movsd	{emit_reg i.res.(0)}, {emit_label lbl}\n`
         end
     | Lop(Iconst_symbol s) ->
         add_used_symbol s;
           | Single ->
             `	cvtss2sd {emit_reg dest}, REAL4 PTR {emit_addressing addr i.arg 0}\n`
           | Double | Double_u ->
-            `	movlpd	{emit_reg dest}, REAL8 PTR {emit_addressing addr i.arg 0}\n`
+            `	movsd	{emit_reg dest}, REAL8 PTR {emit_addressing addr i.arg 0}\n`
         end
     | Lop(Istore(chunk, addr)) ->
         begin match chunk with
             `	cvtsd2ss xmm15, {emit_reg i.arg.(0)}\n`;
             `	movss	REAL4 PTR {emit_addressing addr i.arg 1}, xmm15\n`
           | Double | Double_u ->
-            `	movlpd	REAL8 PTR {emit_addressing addr i.arg 1}, {emit_reg i.arg.(0)}\n`
+            `	movsd	REAL8 PTR {emit_addressing addr i.arg 1}, {emit_reg i.arg.(0)}\n`
         end
     | Lop(Ialloc n) ->
         if !fastcode_flag then begin

File asmcomp/amd64/proc.ml

File contents unchanged.

File asmcomp/amd64/proc_nt.ml

File contents unchanged.

File asmcomp/amd64/reload.ml

File contents unchanged.

File asmcomp/amd64/scheduling.ml

File contents unchanged.

File asmcomp/amd64/selection.ml

File contents unchanged.

File asmcomp/arm/arch.ml

File contents unchanged.

File asmcomp/arm/emit.mlp

File contents unchanged.

File asmcomp/arm/proc.ml

File contents unchanged.

File asmcomp/arm/reload.ml

File contents unchanged.

File asmcomp/arm/scheduling.ml

File contents unchanged.

File asmcomp/arm/selection.ml

File contents unchanged.

File asmcomp/asmgen.ml

File contents unchanged.

File asmcomp/asmgen.mli

File contents unchanged.

File asmcomp/asmlibrarian.ml

File contents unchanged.

File asmcomp/asmlibrarian.mli

File contents unchanged.

File asmcomp/asmlink.ml

File contents unchanged.

File asmcomp/asmlink.mli

File contents unchanged.

File asmcomp/asmpackager.ml

File contents unchanged.

File asmcomp/asmpackager.mli

File contents unchanged.

File asmcomp/clambda.ml

File contents unchanged.

File asmcomp/clambda.mli

File contents unchanged.

File asmcomp/closure.ml

 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id: closure.ml 8966 2008-08-01 12:52:14Z xleroy $ *)
+(* $Id: closure.ml 10667 2010-09-02 13:29:21Z xclerc $ *)
 
 (* Introduction of closures, uncurrying, recognition of direct calls *)
 
       | ((ufunct, _), uargs) ->
           (Ugeneric_apply(ufunct, uargs, Debuginfo.none), Value_unknown)
       end
-  | Lsend(kind, met, obj, args) ->
+  | Lsend(kind, met, obj, args, _) ->
       let (umet, _) = close fenv cenv met in
       let (uobj, _) = close fenv cenv obj in
       (Usend(kind, umet, uobj, close_list fenv cenv args, Debuginfo.none),

File asmcomp/closure.mli

File contents unchanged.

File asmcomp/cmm.ml

File contents unchanged.

File asmcomp/cmm.mli

File contents unchanged.

File asmcomp/cmmgen.ml

 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id: cmmgen.ml 10424 2010-05-19 11:29:38Z xleroy $ *)
+(* $Id: cmmgen.ml 10794 2010-11-11 17:08:07Z xleroy $ *)
 
 (* Translation from closed lambda to C-- *)
 
   | Pbigarray_complex64 -> Double
 
 let bigarray_get unsafe elt_kind layout b args dbg =
-  match elt_kind with
-    Pbigarray_complex32 | Pbigarray_complex64 ->
-      let kind = bigarray_word_kind elt_kind in
-      let sz = bigarray_elt_size elt_kind / 2 in
-      bind "addr" (bigarray_indexing unsafe elt_kind layout b args dbg) (fun addr ->
-        box_complex
-          (Cop(Cload kind, [addr]))
-          (Cop(Cload kind, [Cop(Cadda, [addr; Cconst_int sz])])))
-  | _ ->
-      Cop(Cload (bigarray_word_kind elt_kind),
-          [bigarray_indexing unsafe elt_kind layout b args dbg])
+  bind "ba" b (fun b ->
+    match elt_kind with
+      Pbigarray_complex32 | Pbigarray_complex64 ->
+        let kind = bigarray_word_kind elt_kind in
+        let sz = bigarray_elt_size elt_kind / 2 in
+        bind "addr" (bigarray_indexing unsafe elt_kind layout b args dbg) (fun addr ->
+          box_complex
+            (Cop(Cload kind, [addr]))
+            (Cop(Cload kind, [Cop(Cadda, [addr; Cconst_int sz])])))
+    | _ ->
+        Cop(Cload (bigarray_word_kind elt_kind),
+            [bigarray_indexing unsafe elt_kind layout b args dbg]))
 
 let bigarray_set unsafe elt_kind layout b args newval dbg =
-  match elt_kind with
-    Pbigarray_complex32 | Pbigarray_complex64 ->
-      let kind = bigarray_word_kind elt_kind in
-      let sz = bigarray_elt_size elt_kind / 2 in
-      bind "newval" newval (fun newv ->
-      bind "addr" (bigarray_indexing unsafe elt_kind layout b args dbg) (fun addr ->
-        Csequence(
-          Cop(Cstore kind, [addr; complex_re newv]),
-          Cop(Cstore kind,
-              [Cop(Cadda, [addr; Cconst_int sz]); complex_im newv]))))
-  | _ ->
-      Cop(Cstore (bigarray_word_kind elt_kind),
-          [bigarray_indexing unsafe elt_kind layout b args dbg; newval])
+  bind "ba" b (fun b ->
+    match elt_kind with
+      Pbigarray_complex32 | Pbigarray_complex64 ->
+        let kind = bigarray_word_kind elt_kind in
+        let sz = bigarray_elt_size elt_kind / 2 in
+        bind "newval" newval (fun newv ->
+        bind "addr" (bigarray_indexing unsafe elt_kind layout b args dbg) (fun addr ->
+          Csequence(
+            Cop(Cstore kind, [addr; complex_re newv]),
+            Cop(Cstore kind,
+                [Cop(Cadda, [addr; Cconst_int sz]); complex_im newv]))))
+    | _ ->
+        Cop(Cstore (bigarray_word_kind elt_kind),
+            [bigarray_indexing unsafe elt_kind layout b args dbg; newval]))
 
 (* Simplification of some primitives into C calls *)
 

File asmcomp/cmmgen.mli

File contents unchanged.

File asmcomp/codegen.ml

File contents unchanged.

File asmcomp/codegen.mli

File contents unchanged.

File asmcomp/coloring.ml

File contents unchanged.

File asmcomp/coloring.mli

File contents unchanged.

File asmcomp/comballoc.ml

 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id: comballoc.ml 7812 2007-01-29 12:11:18Z xleroy $ *)
+(* $Id: comballoc.ml 10910 2010-12-22 13:52:24Z xleroy $ *)
 
 (* Combine heap allocations occurring in the same basic block *)
 
             combine i.next (Pending_alloc(i.res.(0), sz)) in
           (instr_cons (Iop(Ialloc newsz)) i.arg i.res newnext, 0)
       | Pending_alloc(reg, ofs) ->
-          if ofs + sz < Config.max_young_wosize then begin
+          if ofs + sz < Config.max_young_wosize * Arch.size_addr then begin