1. camlspotter
  2. mutated_ocaml

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

  • Ignore whitespace
File contents unchanged.

File Changes

View file
  • Ignore whitespace
+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 $

File INSTALL

View file
  • Ignore whitespace
         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

  • Ignore whitespace
File contents unchanged.

File Makefile.nt

  • Ignore whitespace
File contents unchanged.

File README

  • Ignore whitespace
File contents unchanged.

File VERSION

View file
  • Ignore whitespace
-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

  • Ignore whitespace
File contents unchanged.

File asmcomp/alpha/arch.ml

  • Ignore whitespace
File contents unchanged.

File asmcomp/alpha/emit.mlp

  • Ignore whitespace
File contents unchanged.

File asmcomp/alpha/proc.ml

  • Ignore whitespace
File contents unchanged.

File asmcomp/alpha/reload.ml

  • Ignore whitespace
File contents unchanged.

File asmcomp/alpha/scheduling.ml

  • Ignore whitespace
File contents unchanged.

File asmcomp/alpha/selection.ml

  • Ignore whitespace
File contents unchanged.

File asmcomp/amd64/arch.ml

  • Ignore whitespace
File contents unchanged.

File asmcomp/amd64/emit.mlp

View file
  • Ignore whitespace
 (*                                                                     *)
 (***********************************************************************)
 
-(* $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

View file
  • Ignore whitespace
 (*                                                                     *)
 (***********************************************************************)
 
-(* $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

  • Ignore whitespace
File contents unchanged.

File asmcomp/amd64/proc_nt.ml

  • Ignore whitespace
File contents unchanged.

File asmcomp/amd64/reload.ml

  • Ignore whitespace
File contents unchanged.

File asmcomp/amd64/scheduling.ml

  • Ignore whitespace
File contents unchanged.

File asmcomp/amd64/selection.ml

  • Ignore whitespace
File contents unchanged.

File asmcomp/arm/arch.ml

  • Ignore whitespace
File contents unchanged.

File asmcomp/arm/emit.mlp

  • Ignore whitespace
File contents unchanged.

File asmcomp/arm/proc.ml

  • Ignore whitespace
File contents unchanged.

File asmcomp/arm/reload.ml

  • Ignore whitespace
File contents unchanged.

File asmcomp/arm/scheduling.ml

  • Ignore whitespace
File contents unchanged.

File asmcomp/arm/selection.ml

  • Ignore whitespace
File contents unchanged.

File asmcomp/asmgen.ml

  • Ignore whitespace
File contents unchanged.

File asmcomp/asmgen.mli

  • Ignore whitespace
File contents unchanged.

File asmcomp/asmlibrarian.ml