From c1b50f796f36d79f7c92eef8b55d89604b07e1e5 Mon Sep 17 00:00:00 2001 From: Stephane Glondu Date: Wed, 20 Jan 2010 18:31:17 +0100 Subject: [PATCH] Imported Upstream version 3.11.2 --- Changes | 7 ++++++- README.win32 | 29 +++++++++++++++-------------- VERSION | 4 ++-- boot/ocamlc | Bin 1045553 -> 1045577 bytes boot/ocamldep | Bin 289555 -> 289555 bytes boot/ocamllex | Bin 165768 -> 165768 bytes build/boot-c-parts-windows.sh | 6 ++---- build/install.sh | 5 ++--- build/mkmyocamlbuild_config.sh | 3 ++- bytecomp/bytelink.ml | 2 +- byterun/interp.c | 5 +++-- config/Makefile.mingw | 6 +++--- config/Makefile.msvc | 12 ++++++------ config/Makefile.msvc64 | 6 +++--- debugger/.depend | 32 ++++++++++++++++---------------- debugger/Makefile.shared | 5 +++-- lex/Makefile.nt | 4 +++- myocamlbuild.ml | 8 ++++---- otherlibs/threads/.depend | 23 +++++++++++++---------- tools/.cvsignore | 1 + tools/ocamlmklib.mlp | 11 ++++++++--- typing/typedecl.ml | 15 +++++++++------ 22 files changed, 102 insertions(+), 82 deletions(-) diff --git a/Changes b/Changes index ac97c784..7e81eeeb 100644 --- a/Changes +++ b/Changes @@ -7,6 +7,7 @@ Bug fixes: - PR#4710, PR#4720: ocamlbuild does not use properly configuration information - PR#4750: under some Windows installations, high start-up times for Unix lib - PR#4777: problem with scanf and CRLF +- PR#4783: ocamlmklib problem under Windows - PR#4810: BSD problem with socket addresses, e.g. in Unix.getnameinfo - PR#4813: issue with parsing of float literals by the GNU assembler - PR#4816: problem with modules and private types @@ -27,9 +28,13 @@ Bug fixes: - PR#4922: ocamlbuild recompiles too many files - PR#4923: missing \xff for scanf %S - PR#4933: functors not handling private types correctly +- PR#4940: problem with end-of-line in DOS text mode, tentative fix +- PR#4953: problem compiling bytecode interpreter on ARM in Thumb mode. +- PR#4955: compiler crash when typing recursive type expression with constraint - Module Printf: the simple conversion %F (without width indication) was not treated properly. - Makefile: problem with cygwin, flexdll, and symbolic links +- Various build problems with ocamlbuild under Windows with msvc Feature wishes: - PR#9: (tentative implementation) make ocamldebug use #linenum annotations @@ -2488,4 +2493,4 @@ Caml Special Light 1.06: * First public release. -$Id: Changes 9482 2009-12-22 13:32:12Z doligez $ +$Id: Changes 9536 2010-01-20 11:44:20Z doligez $ diff --git a/README.win32 b/README.win32 index 7eac6f26..bb6b31d9 100644 --- a/README.win32 +++ b/README.win32 @@ -61,7 +61,7 @@ Microsoft Visual C++ compiler (items [1] and [2] in the section The native-code compiler (ocamlopt) requires Visual C++ (items [1], [2]), the Microsoft assembler MASM (item [3]) and the flexdll tool (item [5]). -The LablTk GUI requires Tcl/Tk 8.4 (item [4]). +The LablTk GUI requires Tcl/Tk 8.5 (item [4]). INSTALLATION: @@ -70,33 +70,34 @@ The binary distribution is a self-installing executable archive. Just run it and it should install OCaml automatically. To run programs that use the LablTK GUI, the directory where the -DLLs tk84.dll and tcl84.dll were installed (by the Tcl/Tk +DLLs tk85.dll and tcl85.dll were installed (by the Tcl/Tk installer) must be added to the PATH environment variable. To compile programs that use the LablTK GUI, the directory where the -libraries tk84.lib and tcl84.lib were installed (by the Tcl/Tk +libraries tk85.lib and tcl85.lib were installed (by the Tcl/Tk installer) must be added to the library search path in the LIB environment variable. E.g. if Tcl/Tk was installed in C:\tcl, add "C:\tcl\lib" to the LIB environment variable. THIRD-PARTY SOFTWARE: -[1] Visual C++ version 2005, 2003, or 6. - We use Visual C++ 2005 Express Edition, which can be downloaded for free +[1] Visual C++ version 2008, 2005, 2003, or 6. + We use Visual C++ 2008 Express Edition, which can be downloaded for free from http://www.microsoft.com. -[2] Windows header files and development libraries. We found them in - the Microsoft Windows Server 2003 SP1 Platform SDK, which can - be downloaded for free from http://www.microsoft.com/. +[2] Windows header files and development libraries. They are included + in the Visual C++ 2008 Express Edition distribution. + Otherwise, you can find them in the Windows Platform SDK, + which can be downloaded for free from http://www.microsoft.com/. [3] MASM version 6.11 or later. The full distribution of Visual C++ 2005 - contains MASM version 8. Users of the Express Edition of Visual C++ + or 2008 contains MASM version 8. Users of the Express Edition of Visual C++ 2005 can download MASM version 8 from http://www.microsoft.com/downloads/details.aspx?FamilyID=7A1C9DA0-0510-44A2-B042-7EF370530C64&displaylang=en To obtain MASM version 6.11, see http://users.easystreet.com/jkirwan/new/pctools.html. -[4] TCL/TK version 8.4. Windows binaries are available as part of the +[4] TCL/TK version 8.5. Windows binaries are available as part of the ActiveTCL distribution at http://www.activestate.com/products/ActiveTcl/ [5] flexdll. @@ -190,7 +191,7 @@ Do *not* install the Mingw/MSYS development tools from www.mingw.org: these are not compatible with this Caml port (@responsefile not recognized on the command line). -The LablTk GUI requires Tcl/Tk 8.4. Windows binaries are available +The LablTk GUI requires Tcl/Tk 8.5. Windows binaries are available as part of the ActiveTCL distribution at http://www.activestate.com/products/ActiveTcl/ @@ -200,11 +201,11 @@ The binary distribution is a self-installing executable archive. Just run it and it should install OCaml automatically. To run programs that use the LablTK GUI, the directory where the -DLLs tk84.dll and tcl84.dll were installed (by the Tcl/Tk +DLLs tk85.dll and tcl85.dll were installed (by the Tcl/Tk installer) must be added to the PATH environment variable. To compile programs that use the LablTK GUI, the directory where the -libraries tk84.lib and tcl84.lib were installed (by the Tcl/Tk +libraries tk85.lib and tcl85.lib were installed (by the Tcl/Tk installer) must be added to the library search path in the LIB environment variable. E.g. if Tcl/Tk was installed in C:\tcl, add "C:\tcl\lib" to the LIB environment variable. @@ -217,7 +218,7 @@ You will need the following software components to perform the recompilation: - Cygwin: http://sourceware.cygnus.com/cygwin/ Install at least the following packages: binutils, diffutils, gcc-core, gcc-mingw-core, make, mingw-runtime, ncurses, w32-api. -- TCL/TK version 8.4 (see above). +- TCL/TK version 8.5 (see above). - The flexdll tool (see above). Do *not* install the standalone distribution of MinGW, nor the diff --git a/VERSION b/VERSION index 7798db3f..04797e62 100644 --- a/VERSION +++ b/VERSION @@ -1,6 +1,6 @@ -3.11.2+rc1 +3.11.2 # The version string is the first line of this file. # It must be in the format described in stdlib/sys.mli -# $Id: VERSION 9500 2009-12-28 13:13:23Z doligez $ +# $Id: VERSION 9537 2010-01-20 12:19:26Z doligez $ diff --git a/boot/ocamlc b/boot/ocamlc index ba7a52fd2c251035cf9dbf8ab2081b1a2d69e132..3f402de4bad4b526d2accce4d713efdca20443ac 100755 GIT binary patch delta 831 zcmZ9IPiPZS5XN_QH=CC>$;Ploi3-&g6xzlb|Fl(T5*yGudMS7i1rG(qSZhN{HS0W+;BFUwEc3l@zBlupt;Sxj z#wK;pMP1Tm-K8tKdx1R|fyd^<5hk65AkIEz-B=xG0X&&y6PQlQ8Wyvx4US?d%SJ`F zh0~G}#&nLQ#JAPi>Cq5=$gzMpQ^jRN3Za;18cgESJ9!sI^6ZM(SH(|3cgW1;*=qF-?NT|3p!48^5gMCvDeEDrz9unIL z{;g~|>%taZdgO_q@`432Enh8*n|La3;AtJyz^7=gYe4_cn>DTBe?QgR>qeF);-q#qh{Y}J9=Mo zMrNtrKGr?b>~9v{)-(V8{}VLU)2D_P8Q~$Ch-SiT4lnu+_xXBT4n@1VdOMFqJEJ{Q za}}RCSMe{8!=`!RruxKnVk0#ZH{>|LzUzjZ0N9^05{X1x ZYx>45Lp}q-8}rm1_4#c$hHL9;{4cOo)QbQB delta 777 zcmX^4!hYim`-T?A7N!>F7M2#)7Pc1lEgXF*jB~g5r*JTPFltSoyoSSkvQVtZ^hp~y zL_~QR7#KL9*cnLM12NNd?L{2Q)5V0?B&I)F!%@PhKRtXchdHD4^!~LR>5T8E_cOCe zPZwIp5x}(N-{cADV$-YEaR@L~{+oVa1GCulMe8_37&E5tzsMp!{oFc^3?{XI(;o=2 zi*5H?&mqIO{m}-FH*AWp{`~*X3A9Tah(X})Z&d#N>F>95*w?GQ{{J5&%>%?BrA$C< z1XL;nq`9GDj6nMNPly;y9Y`!6D8_}PCg#Wg|NKaNQ6L}L39G-M@^ilZpT2enhiq)~ zS5%4kFA#%4mgxX7$TE<_{s0{d^N$yj8koaHfMOtrgD^-8q%U;3`c95`--1sNDG4O0 zT^~{1KM}|WX_Z1!6ATrTMiToo{qjx@^LoP%5apssQa9eC8o3$BM|V*VPz*U(6wvgn zeuwZq%x7J1AYvf1RDc*rw|DO10Afxc<^p1FAm-WLxrpux!G;#b7N#xC#}s)j6*Ppux!G;#b7N#xC#}s)j6f}$s3@mjGjdYES+Ak|IZ@;X_;@}AY3f2rw diff --git a/boot/ocamllex b/boot/ocamllex index 8bf7272ffc8d14e620308fa0814a4b8f4e2748f0..4d7a85ccf136f3a3cc85857c3f4602c5257cc0bf 100755 GIT binary patch delta 33 ocmeC^=j!O^YG`5H!nDYp*HS^l$iTo-*U(7U$YT3?ccz>60I>uLE&u=k delta 33 ocmeC^=j!O^YG`5H!nDYp*Fr(V$iTo-*U(7U$Y}d|ccz>60I> = "\2";;/' \ diff --git a/bytecomp/bytelink.ml b/bytecomp/bytelink.ml index 1d9a4f49..704edf43 100644 --- a/bytecomp/bytelink.ml +++ b/bytecomp/bytelink.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: bytelink.ml 9500 2009-12-28 13:13:23Z doligez $ *) +(* $Id: bytelink.ml 9496 2009-12-28 13:05:36Z doligez $ *) (* Link a set of .cmo files and produce a bytecode executable. *) diff --git a/byterun/interp.c b/byterun/interp.c index 0a2f0438..0b00074a 100644 --- a/byterun/interp.c +++ b/byterun/interp.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: interp.c 9279 2009-05-25 08:03:14Z xleroy $ */ +/* $Id: interp.c 9513 2010-01-08 10:33:23Z xleroy $ */ /* The bytecode interpreter */ #include @@ -157,7 +157,8 @@ sp is a local copy of the global variable caml_extern_sp. */ #define SP_REG asm("a4") #define ACCU_REG asm("d7") #endif -#ifdef __arm__ +/* PR#4953: these specific registers not available in Thumb mode */ +#if defined (__arm__) && !defined(__thumb__) #define PC_REG asm("r9") #define SP_REG asm("r8") #define ACCU_REG asm("r7") diff --git a/config/Makefile.mingw b/config/Makefile.mingw index 5c08ee82..e338d8f9 100644 --- a/config/Makefile.mingw +++ b/config/Makefile.mingw @@ -11,7 +11,7 @@ # # ######################################################################### -# $Id: Makefile.mingw 9124 2008-11-09 09:44:24Z xleroy $ +# $Id: Makefile.mingw 9508 2010-01-04 15:52:44Z xleroy $ # Configuration for Windows, Mingw compiler @@ -145,11 +145,11 @@ BNG_ARCH=ia32 BNG_ASM_LEVEL=1 ### Configuration for LablTk -# Set TK_ROOT to the directory where you installed TCL/TK 8.4 +# Set TK_ROOT to the directory where you installed TCL/TK 8.5 # There must be no spaces or special characters in $(TK_ROOT) TK_ROOT=c:/tcl TK_DEFS=-I$(TK_ROOT)/include -TK_LINK=$(TK_ROOT)/bin/tk84.dll $(TK_ROOT)/bin/tcl84.dll -lws2_32 +TK_LINK=$(TK_ROOT)/bin/tk85.dll $(TK_ROOT)/bin/tcl85.dll -lws2_32 ############# Aliases for common commands diff --git a/config/Makefile.msvc b/config/Makefile.msvc index 284a478e..6ad0a339 100644 --- a/config/Makefile.msvc +++ b/config/Makefile.msvc @@ -11,7 +11,7 @@ # # ######################################################################### -# $Id: Makefile.msvc 9126 2008-11-10 15:24:51Z xleroy $ +# $Id: Makefile.msvc 9526 2010-01-14 14:42:00Z xclerc $ # Configuration for Windows, Visual C++ compiler @@ -80,7 +80,7 @@ BYTECC=cl /nologo -D_CRT_SECURE_NO_DEPRECATE BYTECCCOMPOPTS=/Ox /MD ### Additional link-time options for $(BYTECC). (For static linking.) -BYTECCLINKOPTS=/MD /F16777216 +BYTECCLINKOPTS= ### Additional compile-time options for $(BYTECC). (For building a DLL.) DLLCCCOMPOPTS=/Ox /MD @@ -131,7 +131,7 @@ NATIVECC=cl /nologo -D_CRT_SECURE_NO_DEPRECATE NATIVECCCOMPOPTS=/Ox /MD ### Additional link-time options for $(NATIVECC) -NATIVECCLINKOPTS=/MD /F16777216 +NATIVECCLINKOPTS= ### Build partially-linked object file PACKLD=link /lib /nologo /out:# there must be no space after this '/out:' @@ -145,17 +145,17 @@ BNG_ARCH=generic BNG_ASM_LEVEL=0 ### Configuration for LablTk -# Set TK_ROOT to the directory where you installed TCL/TK 8.3 +# Set TK_ROOT to the directory where you installed TCL/TK 8.5 TK_ROOT=c:/tcl TK_DEFS=-I$(TK_ROOT)/include # The following definition avoids hard-wiring $(TK_ROOT) in the libraries # produced by OCaml, and is therefore required for binary distribution # of these libraries. However, $(TK_ROOT)/lib must be added to the LIB # environment variable, as described in README.win32. -TK_LINK=tk84.lib tcl84.lib ws2_32.lib +TK_LINK=tk85.lib tcl85.lib ws2_32.lib # An alternative definition that avoids mucking with the LIB variable, # but hard-wires the Tcl/Tk location in the binaries -# TK_LINK=$(TK_ROOT)/tk84.lib $(TK_ROOT)/tcl84.lib ws2_32.lib +# TK_LINK=$(TK_ROOT)/tk85.lib $(TK_ROOT)/tcl85.lib ws2_32.lib ############# Aliases for common commands diff --git a/config/Makefile.msvc64 b/config/Makefile.msvc64 index e8bc54e9..7dacd789 100644 --- a/config/Makefile.msvc64 +++ b/config/Makefile.msvc64 @@ -11,7 +11,7 @@ # # ######################################################################### -# $Id: Makefile.msvc64 8955 2008-07-29 08:31:41Z xleroy $ +# $Id: Makefile.msvc64 9526 2010-01-14 14:42:00Z xclerc $ # Configuration for Windows, Visual C++ compiler @@ -83,7 +83,7 @@ BYTECCCOMPOPTS=/Ox /MD BYTECCDBGCOMPOPTS=-DDEBUG /Zi /W3 /Wp64 ### Additional link-time options for $(BYTECC). (For static linking.) -BYTECCLINKOPTS=/MD /F33554432 +BYTECCLINKOPTS= ### Additional compile-time options for $(BYTECC). (For building a DLL.) DLLCCCOMPOPTS=/Ox /MD @@ -135,7 +135,7 @@ NATIVECC=cl /nologo NATIVECCCOMPOPTS=/Ox /MD ### Additional link-time options for $(NATIVECC) -NATIVECCLINKOPTS=/MD /F33554432 +NATIVECCLINKOPTS= ### Build partially-linked object file PACKLD=link /lib /nologo /machine:AMD64 /out:# there must be no space after this '/out:' diff --git a/debugger/.depend b/debugger/.depend index 8aa21ba6..972240d3 100644 --- a/debugger/.depend +++ b/debugger/.depend @@ -21,7 +21,7 @@ parser.cmi: parser_aux.cmi ../parsing/longident.cmi parser_aux.cmi: primitives.cmi ../parsing/longident.cmi pattern_matching.cmi: ../typing/typedtree.cmi parser_aux.cmi debugcom.cmi pos.cmi: ../bytecomp/instruct.cmi -primitives.cmi: ../otherlibs/unix/unix.cmi +primitives.cmi: $(UNIXDIR)/unix.cmi printval.cmi: ../typing/types.cmi ../typing/path.cmi parser_aux.cmi \ ../typing/env.cmi debugcom.cmi program_loading.cmi: primitives.cmi @@ -33,14 +33,14 @@ source.cmi: symbols.cmi: ../bytecomp/instruct.cmi time_travel.cmi: primitives.cmi trap_barrier.cmi: -unix_tools.cmi: ../otherlibs/unix/unix.cmi +unix_tools.cmi: $(UNIXDIR)/unix.cmi breakpoints.cmo: symbols.cmi primitives.cmi pos.cmi ../bytecomp/instruct.cmi \ exec.cmi debugcom.cmi checkpoints.cmi breakpoints.cmi breakpoints.cmx: symbols.cmx primitives.cmx pos.cmx ../bytecomp/instruct.cmx \ exec.cmx debugcom.cmx checkpoints.cmx breakpoints.cmi checkpoints.cmo: primitives.cmi int64ops.cmi debugcom.cmi checkpoints.cmi checkpoints.cmx: primitives.cmx int64ops.cmx debugcom.cmx checkpoints.cmi -command_line.cmo: unix_tools.cmi ../otherlibs/unix/unix.cmi \ +command_line.cmo: unix_tools.cmi $(UNIXDIR)/unix.cmi \ ../typing/types.cmi time_travel.cmi symbols.cmi source.cmi \ show_source.cmi show_information.cmi question.cmi program_management.cmi \ program_loading.cmi printval.cmi primitives.cmi pos.cmi parser_aux.cmi \ @@ -50,7 +50,7 @@ command_line.cmo: unix_tools.cmi ../otherlibs/unix/unix.cmi \ events.cmi eval.cmi envaux.cmi debugger_config.cmi debugcom.cmi \ ../typing/ctype.cmi ../utils/config.cmi checkpoints.cmi breakpoints.cmi \ command_line.cmi -command_line.cmx: unix_tools.cmx ../otherlibs/unix/unix.cmx \ +command_line.cmx: unix_tools.cmx $(UNIXDIR)/unix.cmx \ ../typing/types.cmx time_travel.cmx symbols.cmx source.cmx \ show_source.cmx show_information.cmx question.cmx program_management.cmx \ program_loading.cmx printval.cmx primitives.cmx pos.cmx parser_aux.cmi \ @@ -104,9 +104,9 @@ history.cmo: primitives.cmi int64ops.cmi debugger_config.cmi checkpoints.cmi \ history.cmi history.cmx: primitives.cmx int64ops.cmx debugger_config.cmx checkpoints.cmx \ history.cmi -input_handling.cmo: ../otherlibs/unix/unix.cmi primitives.cmi \ +input_handling.cmo: $(UNIXDIR)/unix.cmi primitives.cmi \ input_handling.cmi -input_handling.cmx: ../otherlibs/unix/unix.cmx primitives.cmx \ +input_handling.cmx: $(UNIXDIR)/unix.cmx primitives.cmx \ input_handling.cmi int64ops.cmo: int64ops.cmi int64ops.cmx: int64ops.cmi @@ -120,12 +120,12 @@ loadprinter.cmx: ../typing/types.cmx ../bytecomp/symtable.cmx printval.cmx \ ../typing/printtyp.cmx ../typing/path.cmx ../utils/misc.cmx \ ../parsing/longident.cmx ../typing/ident.cmx ../typing/env.cmx \ dynlink.cmx ../typing/ctype.cmx ../utils/config.cmx loadprinter.cmi -main.cmo: unix_tools.cmi ../otherlibs/unix/unix.cmi time_travel.cmi \ +main.cmo: unix_tools.cmi $(UNIXDIR)/unix.cmi time_travel.cmi \ show_information.cmi question.cmi program_management.cmi primitives.cmi \ parameters.cmi ../utils/misc.cmi input_handling.cmi frames.cmi exec.cmi \ ../typing/env.cmi debugger_config.cmi ../utils/config.cmi \ command_line.cmi ../utils/clflags.cmi checkpoints.cmi -main.cmx: unix_tools.cmx ../otherlibs/unix/unix.cmx time_travel.cmx \ +main.cmx: unix_tools.cmx $(UNIXDIR)/unix.cmx time_travel.cmx \ show_information.cmx question.cmx program_management.cmx primitives.cmx \ parameters.cmx ../utils/misc.cmx input_handling.cmx frames.cmx exec.cmx \ ../typing/env.cmx debugger_config.cmx ../utils/config.cmx \ @@ -148,8 +148,8 @@ pos.cmo: source.cmi primitives.cmi ../parsing/location.cmi \ ../bytecomp/instruct.cmi pos.cmi pos.cmx: source.cmx primitives.cmx ../parsing/location.cmx \ ../bytecomp/instruct.cmx pos.cmi -primitives.cmo: ../otherlibs/unix/unix.cmi primitives.cmi -primitives.cmx: ../otherlibs/unix/unix.cmx primitives.cmi +primitives.cmo: $(UNIXDIR)/unix.cmi primitives.cmi +primitives.cmx: $(UNIXDIR)/unix.cmx primitives.cmi printval.cmo: ../typing/types.cmi ../bytecomp/symtable.cmi \ ../typing/printtyp.cmi ../typing/path.cmi parser_aux.cmi \ ../typing/outcometree.cmi ../typing/oprint.cmi \ @@ -158,15 +158,15 @@ printval.cmx: ../typing/types.cmx ../bytecomp/symtable.cmx \ ../typing/printtyp.cmx ../typing/path.cmx parser_aux.cmi \ ../typing/outcometree.cmi ../typing/oprint.cmx \ ../toplevel/genprintval.cmx debugcom.cmx printval.cmi -program_loading.cmo: unix_tools.cmi ../otherlibs/unix/unix.cmi primitives.cmi \ +program_loading.cmo: unix_tools.cmi $(UNIXDIR)/unix.cmi primitives.cmi \ parameters.cmi input_handling.cmi debugger_config.cmi program_loading.cmi -program_loading.cmx: unix_tools.cmx ../otherlibs/unix/unix.cmx primitives.cmx \ +program_loading.cmx: unix_tools.cmx $(UNIXDIR)/unix.cmx primitives.cmx \ parameters.cmx input_handling.cmx debugger_config.cmx program_loading.cmi -program_management.cmo: unix_tools.cmi ../otherlibs/unix/unix.cmi \ +program_management.cmo: unix_tools.cmi $(UNIXDIR)/unix.cmi \ time_travel.cmi symbols.cmi question.cmi program_loading.cmi \ primitives.cmi parameters.cmi int64ops.cmi input_handling.cmi history.cmi \ debugger_config.cmi breakpoints.cmi program_management.cmi -program_management.cmx: unix_tools.cmx ../otherlibs/unix/unix.cmx \ +program_management.cmx: unix_tools.cmx $(UNIXDIR)/unix.cmx \ time_travel.cmx symbols.cmx question.cmx program_loading.cmx \ primitives.cmx parameters.cmx int64ops.cmx input_handling.cmx history.cmx \ debugger_config.cmx breakpoints.cmx program_management.cmi @@ -206,7 +206,7 @@ time_travel.cmx: trap_barrier.cmx symbols.cmx question.cmx \ time_travel.cmi trap_barrier.cmo: exec.cmi debugcom.cmi checkpoints.cmi trap_barrier.cmi trap_barrier.cmx: exec.cmx debugcom.cmx checkpoints.cmx trap_barrier.cmi -unix_tools.cmo: ../otherlibs/unix/unix.cmi primitives.cmi ../utils/misc.cmi \ +unix_tools.cmo: $(UNIXDIR)/unix.cmi primitives.cmi ../utils/misc.cmi \ unix_tools.cmi -unix_tools.cmx: ../otherlibs/unix/unix.cmx primitives.cmx ../utils/misc.cmx \ +unix_tools.cmx: $(UNIXDIR)/unix.cmx primitives.cmx ../utils/misc.cmx \ unix_tools.cmi diff --git a/debugger/Makefile.shared b/debugger/Makefile.shared index 2856dcbd..1698183b 100644 --- a/debugger/Makefile.shared +++ b/debugger/Makefile.shared @@ -10,7 +10,7 @@ # # ######################################################################### -# $Id: Makefile.shared 9300 2009-06-18 11:17:16Z xclerc $ +# $Id: Makefile.shared 9529 2010-01-15 09:20:00Z doligez $ include ../config/Makefile @@ -99,7 +99,8 @@ clean:: $(CAMLC) -c $(COMPFLAGS) $< depend: beforedepend - $(CAMLDEP) $(DEPFLAGS) *.mli *.ml > .depend + $(CAMLDEP) $(DEPFLAGS) *.mli *.ml \ + | sed -e 's,$(UNIXDIR)/,$$(UNIXDIR)/,' > .depend lexer.ml: lexer.mll $(CAMLLEX) lexer.mll diff --git a/lex/Makefile.nt b/lex/Makefile.nt index 7efed1f5..3d5ab69d 100644 --- a/lex/Makefile.nt +++ b/lex/Makefile.nt @@ -10,10 +10,12 @@ # # ######################################################################### -# $Id: Makefile.nt 5372 2003-01-06 14:57:22Z xleroy $ +# $Id: Makefile.nt 9528 2010-01-14 21:26:13Z doligez $ # The lexer generator +include ../config/Makefile + CAMLC=../boot/ocamlrun ../boot/ocamlc -I ../boot CAMLOPT=../boot/ocamlrun ../ocamlopt -I ../stdlib COMPFLAGS=-warn-error A diff --git a/myocamlbuild.ml b/myocamlbuild.ml index c27f0ac8..fb8189ed 100644 --- a/myocamlbuild.ml +++ b/myocamlbuild.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: myocamlbuild.ml 9290 2009-06-04 11:33:21Z doligez $ *) +(* $Id: myocamlbuild.ml 9531 2010-01-15 13:36:23Z xclerc $ *) open Ocamlbuild_plugin open Command @@ -469,7 +469,7 @@ rule "Standard library manual" Seq[Cmd(S[A"mkdir"; A"-p"; P"ocamldoc/stdlib_man"]); Cmd(S[ocamldoc; A"-man"; A"-d"; P"ocamldoc/stdlib_man"; A"-I"; P "stdlib"; A"-I"; P"otherlibs/unix"; A"-I"; P"otherlibs/num"; - A"-t"; A"Ocaml library"; A"-man-mini"; atomize stdlib_mlis])] + A"-t"; A"OCaml library"; A"-man-mini"; atomize stdlib_mlis])] end;; flag ["ocaml"; "compile"; "bootstrap_thread"] @@ -643,7 +643,7 @@ rule "camlheader" rule "ocaml C stubs on windows: dlib & d.o* -> dll" ~prod:"%.dll" - ~deps:["%.dlib"(*; "byterun/ocamlrun"-.-C.a*)] + ~deps:["%.dlib"(*; "byterun/libcamlrun"-.-C.a*)] ~insert:`top begin fun env build -> let dlib = env "%.dlib" in @@ -659,7 +659,7 @@ rule "ocaml C stubs on windows: dlib & d.o* -> dll" | Outcome.Good d_o -> d_o | Outcome.Bad exn -> raise exn end resluts in - mkdll dll (S[atomize objs; P("byterun/ocamlrun"-.-C.a)]) + mkdll dll (S[atomize objs; P("byterun/libcamlrun"-.-C.a)]) (T(tags_of_pathname dll++"dll"++"link"++"c")) end;; diff --git a/otherlibs/threads/.depend b/otherlibs/threads/.depend index 919e0922..e5037efa 100644 --- a/otherlibs/threads/.depend +++ b/otherlibs/threads/.depend @@ -23,22 +23,25 @@ scheduler.o: scheduler.c ../../byterun/alloc.h \ ../../byterun/misc.h condition.cmi: mutex.cmi event.cmi: +marshal.cmi: mutex.cmi: -thread.cmi: unix.cmo -threadUnix.cmi: unix.cmo +pervasives.cmi: +thread.cmi: unix.cmi +threadUnix.cmi: unix.cmi +unix.cmi: condition.cmo: thread.cmi mutex.cmi condition.cmi condition.cmx: thread.cmx mutex.cmx condition.cmi event.cmo: mutex.cmi condition.cmi event.cmi event.cmx: mutex.cmx condition.cmx event.cmi -marshal.cmo: pervasives.cmo -marshal.cmx: pervasives.cmx +marshal.cmo: pervasives.cmi marshal.cmi +marshal.cmx: pervasives.cmx marshal.cmi mutex.cmo: thread.cmi mutex.cmi mutex.cmx: thread.cmx mutex.cmi -pervasives.cmo: unix.cmo -pervasives.cmx: unix.cmx -thread.cmo: unix.cmo thread.cmi +pervasives.cmo: unix.cmi pervasives.cmi +pervasives.cmx: unix.cmx pervasives.cmi +thread.cmo: unix.cmi thread.cmi thread.cmx: unix.cmx thread.cmi -threadUnix.cmo: unix.cmo thread.cmi threadUnix.cmi +threadUnix.cmo: unix.cmi thread.cmi threadUnix.cmi threadUnix.cmx: unix.cmx thread.cmx threadUnix.cmi -unix.cmo: -unix.cmx: +unix.cmo: unix.cmi +unix.cmx: unix.cmi diff --git a/tools/.cvsignore b/tools/.cvsignore index da394be9..6adfbf20 100644 --- a/tools/.cvsignore +++ b/tools/.cvsignore @@ -6,6 +6,7 @@ dumpobj dumpapprox objinfo cvt_emit +cvt_emit.bak cvt_emit.ml ocamlcp ocamlmktop diff --git a/tools/ocamlmklib.mlp b/tools/ocamlmklib.mlp index 9b047123..9d1e6185 100644 --- a/tools/ocamlmklib.mlp +++ b/tools/ocamlmklib.mlp @@ -10,11 +10,16 @@ (* *) (***********************************************************************) -(* $Id: ocamlmklib.mlp 9365 2009-10-02 12:32:45Z doligez $ *) +(* $Id: ocamlmklib.mlp 9507 2010-01-04 15:50:25Z xleroy $ *) open Printf open Myocamlbuild_config +(* PR#4783: under Windows, don't use absolute paths because we do + not know where the binary distribution will be installed. *) +let compiler_path name = + if Sys.os_type = "Win32" then name else Filename.concat bindir name + let bytecode_objs = ref [] (* .cmo,.cma,.ml,.mli files to pass to ocamlc *) and native_objs = ref [] (* .cmx,.cmxa,.ml,.mli files to pass to ocamlopt *) and c_objs = ref [] (* .o, .a, .obj, .lib, .dll files to pass to mksharedlib and ar *) @@ -25,8 +30,8 @@ and failsafe = ref false (* whether to fall back on static build only *) and c_libs = ref [] (* libs to pass to mksharedlib and ocamlc -cclib *) and c_opts = ref [] (* options to pass to mksharedlib and ocamlc -ccopt *) and ld_opts = ref [] (* options to pass only to the linker *) -and ocamlc = ref (Filename.concat bindir "ocamlc") -and ocamlopt = ref (Filename.concat bindir "ocamlopt") +and ocamlc = ref (compiler_path "ocamlc") +and ocamlopt = ref (compiler_path "ocamlopt") and output = ref "a" (* Output name for Caml part of library *) and output_c = ref "" (* Output name for C part of library *) and rpath = ref [] (* rpath options *) diff --git a/typing/typedecl.ml b/typing/typedecl.ml index c6dd602f..7b4c92dd 100644 --- a/typing/typedecl.ml +++ b/typing/typedecl.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: typedecl.ml 9292 2009-06-08 04:08:14Z garrigue $ *) +(* $Id: typedecl.ml 9509 2010-01-06 11:32:57Z garrigue $ *) (**** Typing of type definitions ****) @@ -184,11 +184,7 @@ let transl_declaration env (name, sdecl) id = None -> None | Some sty -> let no_row = not (is_fixed_type sdecl) in - let ty = - transl_simple_type env no_row sty in - if Ctype.cyclic_abbrev env id ty then - raise(Error(sdecl.ptype_loc, Recursive_abbrev name)); - Some ty + Some (transl_simple_type env no_row sty) end; type_variance = List.map (fun _ -> true, true, true) params; } in @@ -200,12 +196,19 @@ let transl_declaration env (name, sdecl) id = raise(Error(loc, Unconsistent_constraint tr))) cstrs; Ctype.end_def (); + (* Add abstract row *) if is_fixed_type sdecl then begin let (p, _) = try Env.lookup_type (Longident.Lident(Ident.name id ^ "#row")) env with Not_found -> assert false in set_fixed_row env sdecl.ptype_loc p decl end; + (* Check for cyclic abbreviations *) + begin match decl.type_manifest with None -> () + | Some ty -> + if Ctype.cyclic_abbrev env id ty then + raise(Error(sdecl.ptype_loc, Recursive_abbrev name)); + end; (id, decl) (* Generalize a type declaration *) -- 2.30.2