Imported Upstream version 3.11.1
authorStephane Glondu <steph@glondu.net>
Fri, 12 Jun 2009 13:50:14 +0000 (15:50 +0200)
committerStephane Glondu <steph@glondu.net>
Fri, 12 Jun 2009 13:50:14 +0000 (15:50 +0200)
13 files changed:
Changes
VERSION
boot/ocamlc
boot/ocamldep
boot/ocamllex
build/install.sh
myocamlbuild.ml
otherlibs/labltk/browser/lexical.ml
otherlibs/labltk/browser/typecheck.ml
typing/mtype.ml
typing/typedecl.ml
typing/typedecl.mli
typing/typetexp.ml

diff --git a/Changes b/Changes
index d345f33fb53d734ba8bf94ac6eacc7afa3fe8eb7..336cf39732cf293e8bd90f644df7bacc31394972 100644 (file)
--- a/Changes
+++ b/Changes
@@ -37,6 +37,9 @@ Bug fixes:
 - PR#4804: bug in Big_int.int64_of_big_int on 32-bit platforms.
 - PR#4805: improving compatibility with the clang C compiler
 - PR#4809: issue with Unix.create_process under Win32
+- PR#4814: ocamlbrowser: crash when editing comments
+- PR#4816: module abbreviations remove 'private' type restrictions
+- PR#4817: Object type gives error "Unbound type parameter .."
 - Module Parsing: improved computation of locations when an ocamlyacc rule
                   starts with an empty nonterminal
 - Type-checker: fixed wrong variance computation for private types
@@ -2439,4 +2442,4 @@ Caml Special Light 1.06:
 
 * First public release.
 
-$Id: Changes,v 1.183.2.17 2009/06/02 21:41:53 doligez Exp $
+$Id: Changes,v 1.183.2.18 2009/06/12 11:58:19 doligez Exp $
diff --git a/VERSION b/VERSION
index f71d01deae1c736d08ca5e7d4b9d20c84294d738..24c859568c93cc551431a7600a6dc4e1a6921a45 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1,6 +1,6 @@
-3.11.1+rc1
+3.11.1
 
 # The version string is the first line of this file.
 # It must be in the format described in stdlib/sys.mli
 
-# $Id: VERSION,v 1.26.2.17 2009/06/02 21:41:53 doligez Exp $
+# $Id: VERSION,v 1.26.2.19 2009/06/12 11:58:19 doligez Exp $
index 7bddd8363f894e4795a1e049901951db5b195b4b..808d5b87f9a7d504617264bd59b130119b40fec7 100755 (executable)
Binary files a/boot/ocamlc and b/boot/ocamlc differ
index 763ebfeb0ddcfaf4e42de4ac6135bd97f3fbe96d..106160ccc6216d0c0702b745b590aaf76b04bdb4 100755 (executable)
Binary files a/boot/ocamldep and b/boot/ocamldep differ
index f2b80521dd88d808a777331edddb5d005e5f3c5d..15437fdb04ec376573d00e9d2fde463776e1d6d3 100755 (executable)
Binary files a/boot/ocamllex and b/boot/ocamllex differ
index 34d63845d8970a15a179a375b5ca3e82ab39eff6..5093f31382c28ad3b959d0fc57fe421f3c0ada1d 100755 (executable)
@@ -12,7 +12,7 @@
 #                                                                       #
 #########################################################################
 
-# $Id: install.sh,v 1.11 2008/08/05 13:05:23 ertai Exp $
+# $Id: install.sh,v 1.11.2.1 2009/06/04 11:32:46 doligez Exp $
 
 set -e
 
@@ -116,6 +116,7 @@ mkdir -p $MANDIR/man$MANEXT
 echo "Installing core libraries..."
 installlibdir byterun/libcamlrun.$A asmrun/libasmrun.$A asmrun/libasmrunp.$A \
               $LIBDIR
+installdir byterun/libcamlrun_shared$EXT_DLL $LIBDIR
 
 PUBLIC_INCLUDES="\
   alloc.h callback.h config.h custom.h fail.h intext.h \
@@ -161,96 +162,96 @@ installdir \
   stdlib/stdlib.cmxa stdlib/stdlib.p.cmxa \
   stdlib/camlheader \
   stdlib/camlheader_ur \
-  stdlib/std_exit.cm[io] \
-  stdlib/arg.cmi stdlib/arg.mli \
-  stdlib/array.cmi stdlib/array.mli \
-  stdlib/arrayLabels.cmi stdlib/arrayLabels.mli \
-  stdlib/buffer.cmi stdlib/buffer.mli \
-  stdlib/callback.cmi stdlib/callback.mli \
-  stdlib/camlinternalLazy.cmi stdlib/camlinternalLazy.mli \
-  stdlib/camlinternalMod.cmi stdlib/camlinternalMod.mli \
-  stdlib/camlinternalOO.cmi stdlib/camlinternalOO.mli \
-  stdlib/char.cmi stdlib/char.mli \
-  stdlib/complex.cmi stdlib/complex.mli \
-  stdlib/digest.cmi stdlib/digest.mli \
-  stdlib/filename.cmi stdlib/filename.mli \
-  stdlib/format.cmi stdlib/format.mli \
-  stdlib/gc.cmi stdlib/gc.mli \
-  stdlib/genlex.cmi stdlib/genlex.mli \
-  stdlib/hashtbl.cmi stdlib/hashtbl.mli \
-  stdlib/int32.cmi stdlib/int32.mli \
-  stdlib/int64.cmi stdlib/int64.mli \
-  stdlib/lazy.cmi stdlib/lazy.mli \
-  stdlib/lexing.cmi stdlib/lexing.mli \
-  stdlib/list.cmi stdlib/list.mli \
-  stdlib/listLabels.cmi stdlib/listLabels.mli \
-  stdlib/map.cmi stdlib/map.mli \
-  stdlib/marshal.cmi stdlib/marshal.mli \
-  stdlib/moreLabels.cmi stdlib/moreLabels.mli \
-  stdlib/nativeint.cmi stdlib/nativeint.mli \
-  stdlib/obj.cmi stdlib/obj.mli \
-  stdlib/oo.cmi stdlib/oo.mli \
-  stdlib/parsing.cmi stdlib/parsing.mli \
-  stdlib/pervasives.cmi stdlib/pervasives.mli \
-  stdlib/printexc.cmi stdlib/printexc.mli \
-  stdlib/printf.cmi stdlib/printf.mli \
-  stdlib/queue.cmi stdlib/queue.mli \
-  stdlib/random.cmi stdlib/random.mli \
-  stdlib/scanf.cmi stdlib/scanf.mli \
-  stdlib/sort.cmi stdlib/sort.mli \
-  stdlib/stack.cmi stdlib/stack.mli \
-  stdlib/stdLabels.cmi stdlib/stdLabels.mli \
-  stdlib/stream.cmi stdlib/stream.mli \
-  stdlib/string.cmi stdlib/string.mli \
-  stdlib/stringLabels.cmi stdlib/stringLabels.mli \
-  stdlib/sys.cmi stdlib/sys.mli \
-  stdlib/weak.cmi stdlib/weak.mli \
-  stdlib/$set.cmi stdlib/$set.mli \
- stdlib/arg.cmx stdlib/arg.p.cmx stdlib/arg.$O stdlib/arg.p.$O \
- stdlib/array.cmx stdlib/array.p.cmx stdlib/array.$O stdlib/array.p.$O \
- stdlib/arrayLabels.cmx stdlib/arrayLabels.p.cmx stdlib/arrayLabels.$O stdlib/arrayLabels.p.$O \
- stdlib/buffer.cmx stdlib/buffer.p.cmx stdlib/buffer.$O stdlib/buffer.p.$O \
- stdlib/callback.cmx stdlib/callback.p.cmx stdlib/callback.$O stdlib/callback.p.$O \
- stdlib/camlinternalLazy.cmx stdlib/camlinternalLazy.p.cmx stdlib/camlinternalLazy.$O stdlib/camlinternalLazy.p.$O \
- stdlib/camlinternalMod.cmx stdlib/camlinternalMod.p.cmx stdlib/camlinternalMod.$O stdlib/camlinternalMod.p.$O \
- stdlib/camlinternalOO.cmx stdlib/camlinternalOO.p.cmx stdlib/camlinternalOO.$O stdlib/camlinternalOO.p.$O \
- stdlib/char.cmx stdlib/char.p.cmx stdlib/char.$O stdlib/char.p.$O \
- stdlib/complex.cmx stdlib/complex.p.cmx stdlib/complex.$O stdlib/complex.p.$O \
- stdlib/digest.cmx stdlib/digest.p.cmx stdlib/digest.$O stdlib/digest.p.$O \
- stdlib/filename.cmx stdlib/filename.p.cmx stdlib/filename.$O stdlib/filename.p.$O \
- stdlib/format.cmx stdlib/format.p.cmx stdlib/format.$O stdlib/format.p.$O \
- stdlib/gc.cmx stdlib/gc.p.cmx stdlib/gc.$O stdlib/gc.p.$O \
- stdlib/genlex.cmx stdlib/genlex.p.cmx stdlib/genlex.$O stdlib/genlex.p.$O \
- stdlib/hashtbl.cmx stdlib/hashtbl.p.cmx stdlib/hashtbl.$O stdlib/hashtbl.p.$O \
- stdlib/int32.cmx stdlib/int32.p.cmx stdlib/int32.$O stdlib/int32.p.$O \
- stdlib/int64.cmx stdlib/int64.p.cmx stdlib/int64.$O stdlib/int64.p.$O \
- stdlib/lazy.cmx stdlib/lazy.p.cmx stdlib/lazy.$O stdlib/lazy.p.$O \
- stdlib/lexing.cmx stdlib/lexing.p.cmx stdlib/lexing.$O stdlib/lexing.p.$O \
- stdlib/list.cmx stdlib/list.p.cmx stdlib/list.$O stdlib/list.p.$O \
- stdlib/listLabels.cmx stdlib/listLabels.p.cmx stdlib/listLabels.$O stdlib/listLabels.p.$O \
- stdlib/map.cmx stdlib/map.p.cmx stdlib/map.$O stdlib/map.p.$O \
- stdlib/marshal.cmx stdlib/marshal.p.cmx stdlib/marshal.$O stdlib/marshal.p.$O \
- stdlib/moreLabels.cmx stdlib/moreLabels.p.cmx stdlib/moreLabels.$O stdlib/moreLabels.p.$O \
- stdlib/nativeint.cmx stdlib/nativeint.p.cmx stdlib/nativeint.$O stdlib/nativeint.p.$O \
- stdlib/obj.cmx stdlib/obj.p.cmx stdlib/obj.$O stdlib/obj.p.$O \
- stdlib/oo.cmx stdlib/oo.p.cmx stdlib/oo.$O stdlib/oo.p.$O \
- stdlib/parsing.cmx stdlib/parsing.p.cmx stdlib/parsing.$O stdlib/parsing.p.$O \
- stdlib/pervasives.cmx stdlib/pervasives.p.cmx stdlib/pervasives.$O stdlib/pervasives.p.$O \
- stdlib/printexc.cmx stdlib/printexc.p.cmx stdlib/printexc.$O stdlib/printexc.p.$O \
- stdlib/printf.cmx stdlib/printf.p.cmx stdlib/printf.$O stdlib/printf.p.$O \
- stdlib/queue.cmx stdlib/queue.p.cmx stdlib/queue.$O stdlib/queue.p.$O \
- stdlib/random.cmx stdlib/random.p.cmx stdlib/random.$O stdlib/random.p.$O \
- stdlib/scanf.cmx stdlib/scanf.p.cmx stdlib/scanf.$O stdlib/scanf.p.$O \
- stdlib/sort.cmx stdlib/sort.p.cmx stdlib/sort.$O stdlib/sort.p.$O \
- stdlib/stack.cmx stdlib/stack.p.cmx stdlib/stack.$O stdlib/stack.p.$O \
- stdlib/stdLabels.cmx stdlib/stdLabels.p.cmx stdlib/stdLabels.$O stdlib/stdLabels.p.$O \
+  stdlib/std_exit.cm[io] stdlib/std_exit.ml \
+  stdlib/arg.cmi stdlib/arg.ml stdlib/arg.mli \
+  stdlib/array.cmi stdlib/array.ml stdlib/array.mli \
+  stdlib/arrayLabels.cmi stdlib/arrayLabels.ml stdlib/arrayLabels.mli \
+  stdlib/buffer.cmi stdlib/buffer.ml stdlib/buffer.mli \
+  stdlib/callback.cmi stdlib/callback.ml stdlib/callback.mli \
+  stdlib/camlinternalLazy.cmi stdlib/camlinternalLazy.ml stdlib/camlinternalLazy.mli \
+  stdlib/camlinternalMod.cmi stdlib/camlinternalMod.ml stdlib/camlinternalMod.mli \
+  stdlib/camlinternalOO.cmi stdlib/camlinternalOO.ml stdlib/camlinternalOO.mli \
+  stdlib/char.cmi stdlib/char.ml stdlib/char.mli \
+  stdlib/complex.cmi stdlib/complex.ml stdlib/complex.mli \
+  stdlib/digest.cmi stdlib/digest.ml stdlib/digest.mli \
+  stdlib/filename.cmi stdlib/filename.ml stdlib/filename.mli \
+  stdlib/format.cmi stdlib/format.ml stdlib/format.mli \
+  stdlib/gc.cmi stdlib/gc.ml stdlib/gc.mli \
+  stdlib/genlex.cmi stdlib/genlex.ml stdlib/genlex.mli \
+  stdlib/hashtbl.cmi stdlib/hashtbl.ml stdlib/hashtbl.mli \
+  stdlib/int32.cmi stdlib/int32.ml stdlib/int32.mli \
+  stdlib/int64.cmi stdlib/int64.ml stdlib/int64.mli \
+  stdlib/lazy.cmi stdlib/lazy.ml stdlib/lazy.mli \
+  stdlib/lexing.cmi stdlib/lexing.ml stdlib/lexing.mli \
+  stdlib/list.cmi stdlib/list.ml stdlib/list.mli \
+  stdlib/listLabels.cmi stdlib/listLabels.ml stdlib/listLabels.mli \
+  stdlib/map.cmi stdlib/map.ml stdlib/map.mli \
+  stdlib/marshal.cmi stdlib/marshal.ml stdlib/marshal.mli \
+  stdlib/moreLabels.cmi stdlib/moreLabels.ml stdlib/moreLabels.mli \
+  stdlib/nativeint.cmi stdlib/nativeint.ml stdlib/nativeint.mli \
+  stdlib/obj.cmi stdlib/obj.ml stdlib/obj.mli \
+  stdlib/oo.cmi stdlib/oo.ml stdlib/oo.mli \
+  stdlib/parsing.cmi stdlib/parsing.ml stdlib/parsing.mli \
+  stdlib/pervasives.cmi stdlib/pervasives.ml stdlib/pervasives.mli \
+  stdlib/printexc.cmi stdlib/printexc.ml stdlib/printexc.mli \
+  stdlib/printf.cmi stdlib/printf.ml stdlib/printf.mli \
+  stdlib/queue.cmi stdlib/queue.ml stdlib/queue.mli \
+  stdlib/random.cmi stdlib/random.ml stdlib/random.mli \
+  stdlib/scanf.cmi stdlib/scanf.ml stdlib/scanf.mli \
+  stdlib/sort.cmi stdlib/sort.ml stdlib/sort.mli \
+  stdlib/stack.cmi stdlib/stack.ml stdlib/stack.mli \
+  stdlib/stdLabels.cmi stdlib/stdLabels.ml stdlib/stdLabels.mli \
+  stdlib/stream.cmi stdlib/stream.ml stdlib/stream.mli \
+  stdlib/string.cmi stdlib/string.ml stdlib/string.mli \
+  stdlib/stringLabels.cmi stdlib/stringLabels.ml stdlib/stringLabels.mli \
+  stdlib/sys.cmi stdlib/sys.ml stdlib/sys.mli \
+  stdlib/weak.cmi stdlib/weak.ml stdlib/weak.mli \
+  stdlib/$set.cmi stdlib/$set.ml stdlib/$set.mli \
+ stdlib/arg.cmx stdlib/arg.p.cmx \
+ stdlib/array.cmx stdlib/array.p.cmx \
+ stdlib/arrayLabels.cmx stdlib/arrayLabels.p.cmx \
+ stdlib/buffer.cmx stdlib/buffer.p.cmx \
+ stdlib/callback.cmx stdlib/callback.p.cmx \
+ stdlib/camlinternalLazy.cmx stdlib/camlinternalLazy.p.cmx \
+ stdlib/camlinternalMod.cmx stdlib/camlinternalMod.p.cmx \
+ stdlib/camlinternalOO.cmx stdlib/camlinternalOO.p.cmx \
+ stdlib/char.cmx stdlib/char.p.cmx \
+ stdlib/complex.cmx stdlib/complex.p.cmx \
+ stdlib/digest.cmx stdlib/digest.p.cmx \
+ stdlib/filename.cmx stdlib/filename.p.cmx \
+ stdlib/format.cmx stdlib/format.p.cmx \
+ stdlib/gc.cmx stdlib/gc.p.cmx \
+ stdlib/genlex.cmx stdlib/genlex.p.cmx \
+ stdlib/hashtbl.cmx stdlib/hashtbl.p.cmx \
+ stdlib/int32.cmx stdlib/int32.p.cmx \
+ stdlib/int64.cmx stdlib/int64.p.cmx \
+ stdlib/lazy.cmx stdlib/lazy.p.cmx \
+ stdlib/lexing.cmx stdlib/lexing.p.cmx \
+ stdlib/list.cmx stdlib/list.p.cmx \
+ stdlib/listLabels.cmx stdlib/listLabels.p.cmx \
+ stdlib/map.cmx stdlib/map.p.cmx \
+ stdlib/marshal.cmx stdlib/marshal.p.cmx \
+ stdlib/moreLabels.cmx stdlib/moreLabels.p.cmx \
+ stdlib/nativeint.cmx stdlib/nativeint.p.cmx \
+ stdlib/obj.cmx stdlib/obj.p.cmx \
+ stdlib/oo.cmx stdlib/oo.p.cmx \
+ stdlib/parsing.cmx stdlib/parsing.p.cmx \
+ stdlib/pervasives.cmx stdlib/pervasives.p.cmx \
+ stdlib/printexc.cmx stdlib/printexc.p.cmx \
+ stdlib/printf.cmx stdlib/printf.p.cmx \
+ stdlib/queue.cmx stdlib/queue.p.cmx \
+ stdlib/random.cmx stdlib/random.p.cmx \
+ stdlib/scanf.cmx stdlib/scanf.p.cmx \
+ stdlib/sort.cmx stdlib/sort.p.cmx \
+ stdlib/stack.cmx stdlib/stack.p.cmx \
+ stdlib/stdLabels.cmx stdlib/stdLabels.p.cmx \
  stdlib/std_exit.cmx stdlib/std_exit.p.cmx stdlib/std_exit.$O stdlib/std_exit.p.$O \
- stdlib/stream.cmx stdlib/stream.p.cmx stdlib/stream.$O stdlib/stream.p.$O \
- stdlib/string.cmx stdlib/string.p.cmx stdlib/string.$O stdlib/string.p.$O \
- stdlib/stringLabels.cmx stdlib/stringLabels.p.cmx stdlib/stringLabels.$O stdlib/stringLabels.p.$O \
- stdlib/sys.cmx stdlib/sys.p.cmx stdlib/sys.$O stdlib/sys.p.$O \
- stdlib/weak.cmx stdlib/weak.p.cmx stdlib/weak.$O stdlib/weak.p.$O \
- stdlib/$set.cmx stdlib/$set.p.cmx stdlib/$set.$O stdlib/$set.p.$O \
+ stdlib/stream.cmx stdlib/stream.p.cmx \
+ stdlib/string.cmx stdlib/string.p.cmx \
+ stdlib/stringLabels.cmx stdlib/stringLabels.p.cmx \
+ stdlib/sys.cmx stdlib/sys.p.cmx \
+ stdlib/weak.cmx stdlib/weak.p.cmx \
+ stdlib/$set.cmx stdlib/$set.p.cmx \
   $LIBDIR
 
 installlibdir \
@@ -274,7 +275,6 @@ installbin tools/addlabels.byte $LIBDIR/addlabels
 installbin tools/scrapelabels.byte $LIBDIR/scrapelabels
 installbin otherlibs/dynlink/extract_crc.byte $LIBDIR/extract_crc
 installbin otherlibs/labltk/lib/labltk$EXE $BINDIR/labltk$EXE
-installbin otherlibs/labltk/compiler/tkcompiler$EXE $BINDIR/tkcompiler$EXE
 installbin otherlibs/labltk/browser/ocamlbrowser$EXE $BINDIR/ocamlbrowser$EXE
 installbin otherlibs/labltk/compiler/pp$EXE $LIBDIR/labltk/pp$EXE
 installbin otherlibs/labltk/lib/labltktop$EXE $LIBDIR/labltk/labltktop$EXE
@@ -290,6 +290,7 @@ installdir \
   otherlibs/"$WIN32"unix/unix.cma \
   otherlibs/bigarray/bigarray.cmxa \
   otherlibs/dbm/dbm.cmxa \
+  otherlibs/dynlink/dynlink.cmxa \
   otherlibs/"$WIN32"graph/graphics.cmxa \
   otherlibs/num/nums.cmxa \
   otherlibs/str/str.cmxa \
@@ -325,17 +326,17 @@ installdir \
   otherlibs/labltk/support/tkthread.cmi \
   otherlibs/labltk/support/tkthread.cmo \
   otherlibs/labltk/support/tkthread.$O \
-  otherlibs/labltk/labltk/*.mli \
+  otherlibs/labltk/support/tkthread.cmx \
+  otherlibs/labltk/labltk/[^_]*.mli \
   otherlibs/labltk/labltk/*.cmi \
   otherlibs/labltk/labltk/*.cmx \
-  otherlibs/labltk/camltk/*.mli \
+  otherlibs/labltk/camltk/[^_]*.mli \
   otherlibs/labltk/camltk/*.cmi \
   otherlibs/labltk/camltk/*.cmx \
   otherlibs/labltk/frx/frxlib.cma \
   otherlibs/labltk/frx/frxlib.cmxa \
-  otherlibs/labltk/frx/*.mli \
+  ../otherlibs/labltk/frx/*.mli \
   otherlibs/labltk/frx/*.cmi \
-  otherlibs/labltk/frx/*.cmx \
   otherlibs/labltk/jpf/jpflib.cma \
   otherlibs/labltk/jpf/jpflib.cmxa \
   otherlibs/labltk/jpf/*.mli \
@@ -343,20 +344,27 @@ installdir \
   otherlibs/labltk/jpf/*.cmx \
   otherlibs/labltk/lib/labltk.cma \
   otherlibs/labltk/lib/labltk.cmxa \
+  otherlibs/labltk/lib/labltk.cmx \
   otherlibs/labltk/tkanim/*.mli \
   otherlibs/labltk/tkanim/*.cmi \
   otherlibs/labltk/tkanim/tkanim.cma \
   otherlibs/labltk/tkanim/tkanim.cmxa \
+  otherlibs/labltk/compiler/tkcompiler \
   $LIBDIR/labltk
 
 installdir \
   otherlibs/systhreads/threads.cma \
   otherlibs/systhreads/threads.cmxa \
   otherlibs/systhreads/thread.cmi \
+  otherlibs/systhreads/thread.cmx \
   otherlibs/systhreads/mutex.cmi \
+  otherlibs/systhreads/mutex.cmx \
   otherlibs/systhreads/condition.cmi \
+  otherlibs/systhreads/condition.cmx \
   otherlibs/systhreads/event.cmi \
+  otherlibs/systhreads/event.cmx \
   otherlibs/systhreads/threadUnix.cmi \
+  otherlibs/systhreads/threadUnix.cmx \
   $LIBDIR/threads
 
 installdir \
@@ -420,50 +428,54 @@ installdir \
   toplevel/topdirs.cmi \
   toplevel/topmain.cmi \
   typing/outcometree.cmi \
+  typing/outcometree.mli \
   otherlibs/graph/graphicsX11.cmi \
+  otherlibs/graph/graphicsX11.mli \
   otherlibs/dynlink/dynlink.cmi \
+  otherlibs/dynlink/dynlink.mli \
   otherlibs/num/arith_status.cmi \
+  otherlibs/num/arith_status.mli \
   otherlibs/num/big_int.cmi \
+  otherlibs/num/big_int.mli \
   otherlibs/num/nat.cmi \
+  otherlibs/num/nat.mli \
   otherlibs/num/num.cmi \
+  otherlibs/num/num.mli \
   otherlibs/num/ratio.cmi \
+  otherlibs/num/ratio.mli \
   otherlibs/bigarray/bigarray.cmi \
+  otherlibs/bigarray/bigarray.mli \
   otherlibs/dbm/dbm.cmi \
+  otherlibs/dbm/dbm.mli \
+  otherlibs/dynlink/dynlink.cmx \
   otherlibs/"$WIN32"graph/graphics.cmi \
+  otherlibs/"$WIN32"graph/graphics.mli \
   otherlibs/str/str.cmi \
+  otherlibs/str/str.mli \
   otherlibs/"$WIN32"unix/unix.cmi \
+  otherlibs/"$WIN32"unix/unix.mli \
   otherlibs/"$WIN32"unix/unixLabels.cmi \
+  otherlibs/"$WIN32"unix/unixLabels.mli \
   otherlibs/num/arith_flags.cmx \
-  otherlibs/num/arith_flags.$O \
   otherlibs/num/int_misc.cmx \
-  otherlibs/num/int_misc.$O \
   otherlibs/num/arith_status.cmx \
-  otherlibs/num/arith_status.$O \
   otherlibs/num/big_int.cmx \
-  otherlibs/num/big_int.$O \
   otherlibs/num/nat.cmx \
-  otherlibs/num/nat.$O \
   otherlibs/num/num.cmx \
-  otherlibs/num/num.$O \
   otherlibs/num/ratio.cmx \
-  otherlibs/num/ratio.$O \
   otherlibs/bigarray/bigarray.cmx \
-  otherlibs/bigarray/bigarray.$O \
   otherlibs/dbm/dbm.cmx \
-  otherlibs/dbm/dbm.$O \
   otherlibs/"$WIN32"graph/graphics.cmx \
-  otherlibs/"$WIN32"graph/graphics.$O \
+  otherlibs/graph/graphicsX11.cmx \
   otherlibs/str/str.cmx \
-  otherlibs/str/str.$O \
   otherlibs/"$WIN32"unix/unix.cmx \
-  otherlibs/"$WIN32"unix/unix.$O \
   otherlibs/"$WIN32"unix/unixLabels.cmx \
-  otherlibs/"$WIN32"unix/unixLabels.$O \
   $LIBDIR
 
 installlibdir \
   otherlibs/bigarray/bigarray.$A \
   otherlibs/dbm/dbm.$A \
+  otherlibs/dynlink/dynlink.$A \
   otherlibs/"$WIN32"graph/graphics.$A \
   otherlibs/num/nums.$A \
   otherlibs/str/str.$A \
index c811a80e1ed0a0dc676443ee95a5ce9dd6e4ad21..360dc56c1de5ffca71cbf199ca097e170e97ea20 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id: myocamlbuild.ml,v 1.23.2.6 2009/05/26 12:49:16 ertai Exp $ *)
+(* $Id: myocamlbuild.ml,v 1.23.2.7 2009/06/04 11:33:21 doligez Exp $ *)
 
 open Ocamlbuild_plugin
 open Command
@@ -1073,14 +1073,18 @@ let labltk_lib_contents =
  @  "tk"
  :: labltk_generated_modules
  @  "cTk"
- :: camltk_generated_modules;;
+ :: camltk_generated_modules
+ @  ["labltk"; "camltk"];;
 
 let labltk_contents obj_ext =
     List.map (fun x -> "otherlibs/labltk/support"/x-.-obj_ext) labltk_support
  @  "otherlibs/labltk/labltk/tk"-.-obj_ext
  :: List.map (fun x -> "otherlibs/labltk/labltk"/x-.-obj_ext) labltk_generated_modules
  @  "otherlibs/labltk/camltk/cTk"-.-obj_ext
- :: List.map (fun x -> "otherlibs/labltk/camltk"/x-.-obj_ext) camltk_generated_modules;;
+ :: List.map (fun x -> "otherlibs/labltk/camltk"/x-.-obj_ext) camltk_generated_modules
+ @  ["otherlibs/labltk/labltk/labltk"-.-obj_ext;
+     "otherlibs/labltk/camltk/camltk"-.-obj_ext]
+;;
 
 let labltk_cma_contents = labltk_contents "cmo" in
 rule "labltk.cma"
index 46047ea89963900e4f2d4f1d9b3bf014900a10ef..3e25b238b140360a961997371e3a46cb6cca46e7 100644 (file)
@@ -12,7 +12,7 @@
 (*                                                                       *)
 (*************************************************************************)
 
-(* $Id: lexical.ml,v 1.15 2002/11/01 17:06:45 doligez Exp $ *)
+(* $Id: lexical.ml,v 1.15.32.1 2009/06/08 04:43:32 garrigue Exp $ *)
 
 open StdLabels
 open Tk
@@ -39,6 +39,8 @@ let tag ?(start=tstart) ?(stop=tend) tw =
   let tpos c = (Text.index tw ~index:start, [`Char c]) in
   let text = Text.get tw ~start ~stop in
   let buffer = Lexing.from_string text in
+  Location.init buffer "";
+  Location.input_name := "";
   List.iter tags
     ~f:(fun tag -> Text.tag_remove tw ~start ~stop ~tag);
   let last = ref (EOF, 0, 0) in
index 1518931ffee9d229247868e8ff23bc9397063a7b..05b2d9cb11b36329827e9c43c8358a3190437da8 100644 (file)
@@ -12,7 +12,7 @@
 (*                                                                       *)
 (*************************************************************************)
 
-(* $Id: typecheck.ml,v 1.16 2007/05/16 08:21:40 doligez Exp $ *)
+(* $Id: typecheck.ml,v 1.16.6.1 2009/06/08 04:43:32 garrigue Exp $ *)
 
 open StdLabels
 open Tk
@@ -46,8 +46,12 @@ let preprocess ~pp ~ext text =
 exception Outdated_version
 
 let parse_pp ~parse ~wrap ~ext text =
+  Location.input_name := "";
   match !Clflags.preprocessor with
-    None -> parse (Lexing.from_string text)
+    None ->
+      let buffer = Lexing.from_string text in
+      Location.init buffer "";
+      parse buffer
   | Some pp ->
       let tmpfile = preprocess ~pp ~ext text in
       let ast_magic =
@@ -72,7 +76,9 @@ let parse_pp ~parse ~wrap ~ext text =
             failwith "Ocaml and preprocessor have incompatible versions"
         | _ ->
             seek_in ic 0;
-            parse (Lexing.from_channel ic)
+            let buffer = Lexing.from_channel ic in
+            Location.init buffer "";
+            parse buffer
       in
       close_in ic;
       Sys.remove tmpfile;
index 46ff73fe263bf7d6e132b121bc4b2751ab331d99..882d0f3fb555a3fa18d10b311ab3383b365b365b 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id: mtype.ml,v 1.28 2007/10/19 13:25:21 garrigue Exp $ *)
+(* $Id: mtype.ml,v 1.28.4.1 2009/06/08 02:35:15 garrigue Exp $ *)
 
 (* Operations on module types *)
 
@@ -51,11 +51,13 @@ and strengthen_sig env sg p =
         match decl.type_manifest with
           Some ty when decl.type_private = Public -> decl
         | _ ->
-            { decl with
-              type_private = Public;
-              type_manifest =
-                Some(Btype.newgenty(Tconstr(Pdot(p, Ident.name id, nopos),
-                                            decl.type_params, ref Mnil))) }
+            let manif =
+              Some(Btype.newgenty(Tconstr(Pdot(p, Ident.name id, nopos),
+                                          decl.type_params, ref Mnil))) in
+            if decl.type_kind = Type_abstract then
+              { decl with type_private = Public; type_manifest = manif }
+            else
+              { decl with type_manifest = manif }
       in
       Tsig_type(id, newdecl, rs) :: strengthen_sig env rem p
   | (Tsig_exception(id, d) as sigelt) :: rem ->
index ee2f9cd22e98a02ea9fa45591d2f7607011cc386..6e546fedb5bd02d1ba9ea3a430837a75362eb378 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id: typedecl.ml,v 1.82.2.2 2009/04/19 08:42:43 xleroy Exp $ *)
+(* $Id: typedecl.ml,v 1.82.2.3 2009/06/08 04:08:14 garrigue Exp $ *)
 
 (**** Typing of type definitions ****)
 
@@ -41,6 +41,7 @@ type error =
   | Bad_variance of int * (bool * bool) * (bool * bool)
   | Unavailable_type_constructor of Path.t
   | Bad_fixed_type of string
+  | Unbound_type_var_exc of type_expr * type_expr
 
 exception Error of Location.t * error
 
@@ -686,10 +687,16 @@ let transl_type_decl env name_sdecl_list =
   (final_decls, final_env)
 
 (* Translate an exception declaration *)
+let transl_closed_type env sty =
+  let ty = transl_simple_type env true sty in
+  match Ctype.free_variables ty with
+  | []      -> ty
+  | tv :: _ -> raise (Error (sty.ptyp_loc, Unbound_type_var_exc (tv, ty)))
+
 let transl_exception env excdecl =
   reset_type_variables();
   Ctype.begin_def();
-  let types = List.map (transl_simple_type env true) excdecl in
+  let types = List.map (transl_closed_type env) excdecl in
   Ctype.end_def();
   List.iter Ctype.generalize types;
   types
@@ -808,6 +815,38 @@ let check_recmod_typedecl env loc recmod_ids path decl =
 
 open Format
 
+let explain_unbound ppf tv tl typ kwd lab =
+  try
+    let ti = List.find (fun ti -> Ctype.deep_occur tv (typ ti)) tl in
+    let ty0 = (* Hack to force aliasing when needed *)
+      Btype.newgenty (Tobject(tv, ref None)) in
+    Printtyp.reset_and_mark_loops_list [typ ti; ty0];
+    fprintf ppf
+      ".@.@[<hov2>In %s@ %s%a@;<1 -2>the variable %a is unbound@]"
+      kwd (lab ti) Printtyp.type_expr (typ ti) Printtyp.type_expr tv
+  with Not_found -> ()
+
+let explain_unbound_single ppf tv ty =
+  let trivial ty =
+    explain_unbound ppf tv [ty] (fun t -> t) "type" (fun _ -> "") in
+  match (Ctype.repr ty).desc with
+    Tobject(fi,_) ->
+      let (tl, rv) = Ctype.flatten_fields fi in
+      if rv == tv then trivial ty else
+      explain_unbound ppf tv tl (fun (_,_,t) -> t)
+        "method" (fun (lab,_,_) -> lab ^ ": ")
+  | Tvariant row ->
+      let row = Btype.row_repr row in
+      if row.row_more == tv then trivial ty else
+      explain_unbound ppf tv row.row_fields
+        (fun (l,f) -> match Btype.row_field_repr f with
+          Rpresent (Some t) -> t
+        | Reither (_,[t],_,_) -> t
+        | Reither (_,tl,_,_) -> Btype.newgenty (Ttuple tl)
+        | _ -> Btype.newgenty (Ttuple[]))
+        "case" (fun (lab,_) -> "`" ^ lab ^ " of ")
+  | _ -> trivial ty
+
 let report_error ppf = function
   | Repeated_parameter ->
       fprintf ppf "A type parameter occurs several times"
@@ -858,46 +897,20 @@ let report_error ppf = function
   | Unbound_type_var (ty, decl) ->
       fprintf ppf "A type variable is unbound in this type declaration";
       let ty = Ctype.repr ty in
-      let explain tl typ kwd lab =
-        let ti = List.find (fun ti -> Ctype.deep_occur ty (typ ti)) tl in
-        let ty0 = (* Hack to force aliasing when needed *)
-          Btype.newgenty (Tobject(ty, ref None)) in
-        Printtyp.reset_and_mark_loops_list [typ ti; ty0];
-        fprintf ppf
-          ".@.@[<hov2>In %s@ %s%a@;<1 -2>the variable %a is unbound@]"
-          kwd (lab ti) Printtyp.type_expr (typ ti) Printtyp.type_expr ty
-      in
-      begin try match decl.type_kind, decl.type_manifest with
+      begin match decl.type_kind, decl.type_manifest with
         Type_variant tl, _ ->
-          explain tl (fun (_,tl) -> Btype.newgenty (Ttuple tl))
+          explain_unbound ppf ty tl (fun (_,tl) -> Btype.newgenty (Ttuple tl))
             "case" (fun (lab,_) -> lab ^ " of ")
       | Type_record (tl, _), _ ->
-          explain tl (fun (_,_,t) -> t)
+          explain_unbound ppf ty tl (fun (_,_,t) -> t)
             "field" (fun (lab,_,_) -> lab ^ ": ")
       | Type_abstract, Some ty' ->
-          let trivial ty =
-            explain [ty] (fun t -> t) "definition" (fun _ -> "") in
-          begin match (Ctype.repr ty').desc with
-            Tobject(fi,_) ->
-              let (tl, rv) = Ctype.flatten_fields fi in
-              if rv == ty then trivial ty' else
-              explain tl (fun (_,_,t) -> t)
-                "method" (fun (lab,_,_) -> lab ^ ": ")
-          | Tvariant row ->
-              let row = Btype.row_repr row in
-              if row.row_more == ty then trivial ty' else
-              explain row.row_fields
-                (fun (l,f) -> match Btype.row_field_repr f with
-                  Rpresent (Some t) -> t
-                | Reither (_,[t],_,_) -> t
-                | Reither (_,tl,_,_) -> Btype.newgenty (Ttuple tl)
-                | _ -> Btype.newgenty (Ttuple[]))
-                "case" (fun (lab,_) -> "`" ^ lab ^ " of ")
-          | _ -> trivial ty'
-          end
+          explain_unbound_single ppf ty ty'
       | _ -> ()
-      with Not_found -> ()
       end
+  | Unbound_type_var_exc (tv, ty) ->
+      fprintf ppf "A type variable is unbound in this exception declaration";
+      explain_unbound_single ppf (Ctype.repr tv) ty
   | Unbound_exception lid ->
       fprintf ppf "Unbound exception constructor@ %a" Printtyp.longident lid
   | Not_an_exception lid ->
index 194c0133a5256136aa98aecfdd504971c52577f9..564524558df55689fba5dab52ce5da9134866e6f 100644 (file)
@@ -10,7 +10,7 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id: typedecl.mli,v 1.31 2007/10/09 10:29:37 weis Exp $ *)
+(* $Id: typedecl.mli,v 1.31.4.1 2009/06/08 04:08:14 garrigue Exp $ *)
 
 (* Typing of type definitions and primitive definitions *)
 
@@ -70,6 +70,7 @@ type error =
   | Bad_variance of int * (bool*bool) * (bool*bool)
   | Unavailable_type_constructor of Path.t
   | Bad_fixed_type of string
+  | Unbound_type_var_exc of type_expr * type_expr
 
 exception Error of Location.t * error
 
index dc9165f7515478d38c25a6deac5458cdc3014512..ec2b7ed8dfd639336c1896661b577b3c3dcc4b69 100644 (file)
@@ -355,12 +355,8 @@ let rec transl_type env policy styp =
           row_fixed = false; row_name = !name } in
       let static = Btype.static_row row in
       let row =
-        if static then row else
-        match policy with
-          Fixed ->
-            raise (Error (styp.ptyp_loc, Unbound_type_variable ".."))
-        | Extensible -> row
-        | Univars -> { row with row_more = new_pre_univar () }
+        if static || policy <> Univars then row
+        else { row with row_more = new_pre_univar () }
       in
       newty (Tvariant row)
   | Ptyp_poly(vars, st) ->
@@ -392,12 +388,8 @@ and transl_fields env policy =
   function
     [] ->
       newty Tnil
-  | ({pfield_desc = Pfield_var} as pf)::_ ->
-      begin match policy with
-        Fixed -> raise (Error (pf.pfield_loc, Unbound_type_variable ".."))
-      | Extensible -> newvar ()
-      | Univars -> new_pre_univar ()
-      end
+  | {pfield_desc = Pfield_var}::_ ->
+      if policy = Univars then new_pre_univar () else newvar ()
   | {pfield_desc = Pfield(s, e)}::l ->
       let ty1 = transl_type env policy e in
       let ty2 = transl_fields env policy l in