Commits

camlspotter committed e668aeb

back to svn copy; 4.01.0 is too new

  • Participants
  • Parent commits fe8cf17
  • Branches custom

Comments (0)

Files changed (512)

 utils/terminfo.cmx : utils/terminfo.cmi
 utils/warnings.cmo : utils/warnings.cmi
 utils/warnings.cmx : utils/warnings.cmi
-parsing/asttypes.cmi :
+parsing/asttypes.cmi : parsing/location.cmi
 parsing/lexer.cmi : parsing/parser.cmi parsing/location.cmi
 parsing/location.cmi : utils/warnings.cmi
-parsing/locident.cmi : parsing/location.cmi
 parsing/longident.cmi :
 parsing/parse.cmi : parsing/parsetree.cmi
-parsing/parser.cmi : parsing/parsetree.cmi parsing/locident.cmi
+parsing/parser.cmi : parsing/parsetree.cmi parsing/longident.cmi \
+    parsing/location.cmi
 parsing/parsetree.cmi : parsing/longident.cmi parsing/location.cmi \
     parsing/asttypes.cmi
 parsing/printast.cmi : parsing/parsetree.cmi
     parsing/location.cmi parsing/lexer.cmi
 parsing/lexer.cmx : utils/warnings.cmx parsing/parser.cmx utils/misc.cmx \
     parsing/location.cmx parsing/lexer.cmi
-parsing/linenum.cmo : utils/misc.cmi
-parsing/linenum.cmx : utils/misc.cmx
 parsing/location.cmo : utils/warnings.cmi utils/terminfo.cmi \
     parsing/location.cmi
 parsing/location.cmx : utils/warnings.cmx utils/terminfo.cmx \
 parsing/parse.cmx : parsing/syntaxerr.cmx parsing/parser.cmx \
     parsing/location.cmx parsing/lexer.cmx parsing/parse.cmi
 parsing/parser.cmo : parsing/syntaxerr.cmi parsing/parsetree.cmi \
-    parsing/longident.cmi parsing/locident.cmi parsing/location.cmi \
-    utils/clflags.cmi parsing/asttypes.cmi parsing/parser.cmi
+    parsing/longident.cmi parsing/location.cmi utils/clflags.cmi \
+    parsing/asttypes.cmi parsing/parser.cmi
 parsing/parser.cmx : parsing/syntaxerr.cmx parsing/parsetree.cmi \
-    parsing/longident.cmx parsing/locident.cmi parsing/location.cmx \
-    utils/clflags.cmx parsing/asttypes.cmi parsing/parser.cmi
+    parsing/longident.cmx parsing/location.cmx utils/clflags.cmx \
+    parsing/asttypes.cmi parsing/parser.cmi
 parsing/printast.cmo : parsing/parsetree.cmi parsing/longident.cmi \
     parsing/location.cmi parsing/asttypes.cmi parsing/printast.cmi
 parsing/printast.cmx : parsing/parsetree.cmi parsing/longident.cmx \
 parsing/syntaxerr.cmx : parsing/location.cmx parsing/syntaxerr.cmi
 typing/annot.cmi : parsing/location.cmi
 typing/btype.cmi : typing/types.cmi typing/path.cmi parsing/asttypes.cmi
+typing/cmi_format.cmi : typing/types.cmi
+typing/cmt_format.cmi : typing/types.cmi typing/typedtree.cmi \
+    parsing/location.cmi typing/env.cmi typing/cmi_format.cmi
 typing/ctype.cmi : typing/types.cmi typing/path.cmi parsing/longident.cmi \
     typing/ident.cmi typing/env.cmi parsing/asttypes.cmi
-typing/datarepr.cmi : typing/types.cmi typing/path.cmi parsing/asttypes.cmi
+typing/datarepr.cmi : typing/types.cmi typing/path.cmi typing/ident.cmi \
+    parsing/asttypes.cmi
 typing/env.cmi : utils/warnings.cmi typing/types.cmi typing/path.cmi \
     parsing/longident.cmi parsing/location.cmi typing/ident.cmi \
     utils/consistbl.cmi typing/annot.cmi
 typing/ident.cmi :
-typing/includeclass.cmi : typing/types.cmi typing/typedtree.cmi \
-    typing/env.cmi typing/ctype.cmi
+typing/includeclass.cmi : typing/types.cmi typing/env.cmi typing/ctype.cmi
 typing/includecore.cmi : typing/types.cmi typing/typedtree.cmi \
     typing/ident.cmi typing/env.cmi
 typing/includemod.cmi : typing/types.cmi typing/typedtree.cmi \
     typing/env.cmi
 typing/oprint.cmi : typing/outcometree.cmi
 typing/outcometree.cmi : parsing/asttypes.cmi
-typing/parmatch.cmi : typing/types.cmi typing/typedtree.cmi \
-    parsing/parsetree.cmi parsing/location.cmi typing/env.cmi
+typing/parmatch.cmi : typing/types.cmi typing/typedtree.cmi typing/path.cmi \
+    parsing/parsetree.cmi parsing/longident.cmi parsing/location.cmi \
+    typing/env.cmi parsing/asttypes.cmi
 typing/path.cmi : typing/ident.cmi
 typing/predef.cmi : typing/types.cmi typing/path.cmi typing/ident.cmi
 typing/primitive.cmi :
 typing/printtyp.cmi : typing/types.cmi typing/path.cmi \
     typing/outcometree.cmi parsing/longident.cmi typing/ident.cmi
-typing/spot.cmi : typing/types.cmi typing/typedtree.cmi typing/path.cmi \
-    parsing/location.cmi typing/ident.cmi typing/env.cmi
+typing/printtyped.cmi : typing/typedtree.cmi
 typing/stypes.cmi : typing/typedtree.cmi parsing/location.cmi \
     typing/annot.cmi
 typing/subst.cmi : typing/types.cmi typing/path.cmi typing/ident.cmi
 typing/typecore.cmi : typing/types.cmi typing/typedtree.cmi typing/path.cmi \
     parsing/parsetree.cmi parsing/longident.cmi parsing/location.cmi \
     typing/ident.cmi typing/env.cmi parsing/asttypes.cmi typing/annot.cmi
-typing/typedecl.cmi : typing/types.cmi typing/path.cmi parsing/parsetree.cmi \
-    parsing/longident.cmi parsing/location.cmi typing/includecore.cmi \
-    typing/ident.cmi typing/env.cmi
+typing/typedecl.cmi : typing/types.cmi typing/typedtree.cmi typing/path.cmi \
+    parsing/parsetree.cmi parsing/longident.cmi parsing/location.cmi \
+    typing/includecore.cmi typing/ident.cmi typing/env.cmi \
+    parsing/asttypes.cmi
 typing/typedtree.cmi : typing/types.cmi typing/primitive.cmi typing/path.cmi \
     parsing/longident.cmi parsing/location.cmi typing/ident.cmi \
     typing/env.cmi parsing/asttypes.cmi
 typing/types.cmi : typing/primitive.cmi typing/path.cmi \
     parsing/longident.cmi parsing/location.cmi typing/ident.cmi \
     parsing/asttypes.cmi
-typing/typetexp.cmi : typing/types.cmi typing/path.cmi parsing/parsetree.cmi \
-    parsing/longident.cmi parsing/location.cmi typing/env.cmi
+typing/typetexp.cmi : typing/types.cmi typing/typedtree.cmi typing/path.cmi \
+    parsing/parsetree.cmi parsing/longident.cmi parsing/location.cmi \
+    typing/env.cmi parsing/asttypes.cmi
 typing/btype.cmo : typing/types.cmi typing/path.cmi utils/misc.cmi \
     typing/btype.cmi
 typing/btype.cmx : typing/types.cmx typing/path.cmx utils/misc.cmx \
     typing/btype.cmi
+typing/cmi_format.cmo : typing/types.cmi utils/misc.cmi parsing/location.cmi \
+    utils/config.cmi typing/cmi_format.cmi
+typing/cmi_format.cmx : typing/types.cmx utils/misc.cmx parsing/location.cmx \
+    utils/config.cmx typing/cmi_format.cmi
+typing/cmt_format.cmo : typing/types.cmi typing/typedtree.cmi utils/misc.cmi \
+    parsing/location.cmi parsing/lexer.cmi typing/env.cmi utils/config.cmi \
+    typing/cmi_format.cmi utils/clflags.cmi typing/cmt_format.cmi
+typing/cmt_format.cmx : typing/types.cmx typing/typedtree.cmx utils/misc.cmx \
+    parsing/location.cmx parsing/lexer.cmx typing/env.cmx utils/config.cmx \
+    typing/cmi_format.cmx utils/clflags.cmx typing/cmt_format.cmi
 typing/ctype.cmo : typing/types.cmi typing/subst.cmi typing/path.cmi \
     utils/misc.cmi parsing/longident.cmi parsing/location.cmi \
     typing/ident.cmi typing/env.cmi utils/clflags.cmi typing/btype.cmi \
     typing/ident.cmx typing/env.cmx utils/clflags.cmx typing/btype.cmx \
     parsing/asttypes.cmi typing/ctype.cmi
 typing/datarepr.cmo : typing/types.cmi typing/predef.cmi utils/misc.cmi \
-    typing/btype.cmi parsing/asttypes.cmi typing/datarepr.cmi
+    typing/ident.cmi typing/btype.cmi parsing/asttypes.cmi \
+    typing/datarepr.cmi
 typing/datarepr.cmx : typing/types.cmx typing/predef.cmx utils/misc.cmx \
-    typing/btype.cmx parsing/asttypes.cmi typing/datarepr.cmi
+    typing/ident.cmx typing/btype.cmx parsing/asttypes.cmi \
+    typing/datarepr.cmi
 typing/env.cmo : utils/warnings.cmi typing/types.cmi utils/tbl.cmi \
     typing/subst.cmi typing/predef.cmi typing/path.cmi utils/misc.cmi \
     parsing/longident.cmi parsing/location.cmi typing/ident.cmi \
     typing/datarepr.cmi utils/consistbl.cmi utils/config.cmi \
-    utils/clflags.cmi typing/btype.cmi parsing/asttypes.cmi typing/annot.cmi \
-    typing/env.cmi
+    typing/cmi_format.cmi utils/clflags.cmi typing/btype.cmi \
+    parsing/asttypes.cmi typing/annot.cmi typing/env.cmi
 typing/env.cmx : utils/warnings.cmx typing/types.cmx utils/tbl.cmx \
     typing/subst.cmx typing/predef.cmx typing/path.cmx utils/misc.cmx \
     parsing/longident.cmx parsing/location.cmx typing/ident.cmx \
     typing/datarepr.cmx utils/consistbl.cmx utils/config.cmx \
-    utils/clflags.cmx typing/btype.cmx parsing/asttypes.cmi typing/annot.cmi \
-    typing/env.cmi
+    typing/cmi_format.cmx utils/clflags.cmx typing/btype.cmx \
+    parsing/asttypes.cmi typing/annot.cmi typing/env.cmi
 typing/ident.cmo : typing/ident.cmi
 typing/ident.cmx : typing/ident.cmi
 typing/includeclass.cmo : typing/types.cmi typing/printtyp.cmi \
     typing/oprint.cmx utils/misc.cmx parsing/longident.cmx typing/ident.cmx \
     typing/env.cmx typing/ctype.cmx utils/clflags.cmx typing/btype.cmx \
     parsing/asttypes.cmi typing/printtyp.cmi
-typing/spot.cmo : typing/types.cmi typing/typedtree.cmi typing/printtyp.cmi \
-    typing/path.cmi typing/mtype.cmi parsing/location.cmi typing/ident.cmi \
-    typing/env.cmi typing/ctype.cmi utils/config.cmi utils/clflags.cmi \
-    typing/spot.cmi
-typing/spot.cmx : typing/types.cmx typing/typedtree.cmx typing/printtyp.cmx \
-    typing/path.cmx typing/mtype.cmx parsing/location.cmx typing/ident.cmx \
-    typing/env.cmx typing/ctype.cmx utils/config.cmx utils/clflags.cmx \
-    typing/spot.cmi
+typing/printtyped.cmo : typing/typedtree.cmi typing/path.cmi \
+    parsing/longident.cmi parsing/location.cmi typing/ident.cmi \
+    parsing/asttypes.cmi typing/printtyped.cmi
+typing/printtyped.cmx : typing/typedtree.cmx typing/path.cmx \
+    parsing/longident.cmx parsing/location.cmx typing/ident.cmx \
+    parsing/asttypes.cmi typing/printtyped.cmi
 typing/stypes.cmo : typing/typedtree.cmi typing/printtyp.cmi \
     parsing/location.cmi utils/clflags.cmi typing/annot.cmi typing/stypes.cmi
 typing/stypes.cmx : typing/typedtree.cmx typing/printtyp.cmx \
     typing/subst.cmi
 typing/typeclass.cmo : utils/warnings.cmi typing/typetexp.cmi \
     typing/types.cmi typing/typedtree.cmi typing/typedecl.cmi \
-    typing/typecore.cmi typing/subst.cmi typing/stypes.cmi typing/spot.cmi \
+    typing/typecore.cmi typing/subst.cmi typing/stypes.cmi \
     typing/printtyp.cmi typing/predef.cmi typing/path.cmi \
     parsing/parsetree.cmi typing/parmatch.cmi utils/misc.cmi \
     parsing/longident.cmi parsing/location.cmi typing/includeclass.cmi \
-    typing/ident.cmi typing/env.cmi typing/ctype.cmi utils/clflags.cmi \
-    typing/btype.cmi parsing/asttypes.cmi typing/typeclass.cmi
+    typing/ident.cmi typing/env.cmi typing/ctype.cmi typing/cmt_format.cmi \
+    utils/clflags.cmi typing/btype.cmi parsing/asttypes.cmi \
+    typing/typeclass.cmi
 typing/typeclass.cmx : utils/warnings.cmx typing/typetexp.cmx \
     typing/types.cmx typing/typedtree.cmx typing/typedecl.cmx \
-    typing/typecore.cmx typing/subst.cmx typing/stypes.cmx typing/spot.cmx \
+    typing/typecore.cmx typing/subst.cmx typing/stypes.cmx \
     typing/printtyp.cmx typing/predef.cmx typing/path.cmx \
     parsing/parsetree.cmi typing/parmatch.cmx utils/misc.cmx \
     parsing/longident.cmx parsing/location.cmx typing/includeclass.cmx \
-    typing/ident.cmx typing/env.cmx typing/ctype.cmx utils/clflags.cmx \
-    typing/btype.cmx parsing/asttypes.cmi typing/typeclass.cmi
+    typing/ident.cmx typing/env.cmx typing/ctype.cmx typing/cmt_format.cmx \
+    utils/clflags.cmx typing/btype.cmx parsing/asttypes.cmi \
+    typing/typeclass.cmi
 typing/typecore.cmo : utils/warnings.cmi typing/typetexp.cmi \
     typing/types.cmi typing/typedtree.cmi typing/subst.cmi typing/stypes.cmi \
-    typing/spot.cmi typing/printtyp.cmi typing/primitive.cmi \
-    typing/predef.cmi typing/path.cmi parsing/parsetree.cmi \
-    typing/parmatch.cmi typing/oprint.cmi utils/misc.cmi \
-    parsing/longident.cmi parsing/location.cmi typing/ident.cmi \
-    typing/env.cmi typing/ctype.cmi utils/clflags.cmi typing/btype.cmi \
+    typing/printtyp.cmi typing/primitive.cmi typing/predef.cmi \
+    typing/path.cmi parsing/parsetree.cmi typing/parmatch.cmi \
+    typing/oprint.cmi utils/misc.cmi parsing/longident.cmi \
+    parsing/location.cmi typing/ident.cmi typing/env.cmi typing/ctype.cmi \
+    typing/cmt_format.cmi utils/clflags.cmi typing/btype.cmi \
     parsing/asttypes.cmi typing/annot.cmi typing/typecore.cmi
 typing/typecore.cmx : utils/warnings.cmx typing/typetexp.cmx \
     typing/types.cmx typing/typedtree.cmx typing/subst.cmx typing/stypes.cmx \
-    typing/spot.cmx typing/printtyp.cmx typing/primitive.cmx \
-    typing/predef.cmx typing/path.cmx parsing/parsetree.cmi \
-    typing/parmatch.cmx typing/oprint.cmx utils/misc.cmx \
-    parsing/longident.cmx parsing/location.cmx typing/ident.cmx \
-    typing/env.cmx typing/ctype.cmx utils/clflags.cmx typing/btype.cmx \
+    typing/printtyp.cmx typing/primitive.cmx typing/predef.cmx \
+    typing/path.cmx parsing/parsetree.cmi typing/parmatch.cmx \
+    typing/oprint.cmx utils/misc.cmx parsing/longident.cmx \
+    parsing/location.cmx typing/ident.cmx typing/env.cmx typing/ctype.cmx \
+    typing/cmt_format.cmx utils/clflags.cmx typing/btype.cmx \
     parsing/asttypes.cmi typing/annot.cmi typing/typecore.cmi
 typing/typedecl.cmo : utils/warnings.cmi typing/typetexp.cmi \
-    typing/types.cmi typing/typedtree.cmi typing/subst.cmi typing/spot.cmi \
+    typing/types.cmi typing/typedtree.cmi typing/subst.cmi \
     typing/printtyp.cmi typing/primitive.cmi typing/predef.cmi \
     typing/path.cmi parsing/parsetree.cmi utils/misc.cmi \
     parsing/longident.cmi parsing/location.cmi typing/includecore.cmi \
     utils/clflags.cmi typing/btype.cmi parsing/asttypes.cmi \
     typing/typedecl.cmi
 typing/typedecl.cmx : utils/warnings.cmx typing/typetexp.cmx \
-    typing/types.cmx typing/typedtree.cmx typing/subst.cmx typing/spot.cmx \
+    typing/types.cmx typing/typedtree.cmx typing/subst.cmx \
     typing/printtyp.cmx typing/primitive.cmx typing/predef.cmx \
     typing/path.cmx parsing/parsetree.cmi utils/misc.cmx \
     parsing/longident.cmx parsing/location.cmx typing/includecore.cmx \
     typing/ident.cmx typing/env.cmx parsing/asttypes.cmi typing/typedtree.cmi
 typing/typemod.cmo : utils/warnings.cmi typing/typetexp.cmi typing/types.cmi \
     typing/typedtree.cmi typing/typedecl.cmi typing/typecore.cmi \
-    typing/typeclass.cmi typing/subst.cmi typing/stypes.cmi typing/spot.cmi \
+    typing/typeclass.cmi typing/subst.cmi typing/stypes.cmi \
     typing/printtyp.cmi typing/path.cmi parsing/parsetree.cmi \
     typing/mtype.cmi utils/misc.cmi parsing/longident.cmi \
     parsing/location.cmi typing/includemod.cmi typing/ident.cmi \
-    typing/env.cmi typing/ctype.cmi utils/config.cmi utils/clflags.cmi \
-    typing/btype.cmi parsing/asttypes.cmi typing/annot.cmi typing/typemod.cmi
+    typing/env.cmi typing/ctype.cmi utils/config.cmi typing/cmt_format.cmi \
+    utils/clflags.cmi typing/btype.cmi parsing/asttypes.cmi typing/annot.cmi \
+    typing/typemod.cmi
 typing/typemod.cmx : utils/warnings.cmx typing/typetexp.cmx typing/types.cmx \
     typing/typedtree.cmx typing/typedecl.cmx typing/typecore.cmx \
-    typing/typeclass.cmx typing/subst.cmx typing/stypes.cmx typing/spot.cmx \
+    typing/typeclass.cmx typing/subst.cmx typing/stypes.cmx \
     typing/printtyp.cmx typing/path.cmx parsing/parsetree.cmi \
     typing/mtype.cmx utils/misc.cmx parsing/longident.cmx \
     parsing/location.cmx typing/includemod.cmx typing/ident.cmx \
-    typing/env.cmx typing/ctype.cmx utils/config.cmx utils/clflags.cmx \
-    typing/btype.cmx parsing/asttypes.cmi typing/annot.cmi typing/typemod.cmi
+    typing/env.cmx typing/ctype.cmx utils/config.cmx typing/cmt_format.cmx \
+    utils/clflags.cmx typing/btype.cmx parsing/asttypes.cmi typing/annot.cmi \
+    typing/typemod.cmi
 typing/types.cmo : typing/primitive.cmi typing/path.cmi utils/misc.cmi \
     parsing/longident.cmi parsing/location.cmi typing/ident.cmi \
     parsing/asttypes.cmi typing/types.cmi
 typing/types.cmx : typing/primitive.cmx typing/path.cmx utils/misc.cmx \
     parsing/longident.cmx parsing/location.cmx typing/ident.cmx \
     parsing/asttypes.cmi typing/types.cmi
-typing/typetexp.cmo : utils/warnings.cmi typing/types.cmi utils/tbl.cmi \
-    typing/spot.cmi typing/printtyp.cmi typing/path.cmi parsing/parsetree.cmi \
-    utils/misc.cmi parsing/longident.cmi parsing/location.cmi typing/env.cmi \
-    typing/ctype.cmi utils/clflags.cmi typing/btype.cmi parsing/asttypes.cmi \
-    typing/typetexp.cmi
-typing/typetexp.cmx : utils/warnings.cmx typing/types.cmx utils/tbl.cmx \
-    typing/spot.cmx typing/printtyp.cmx typing/path.cmx parsing/parsetree.cmi \
-    utils/misc.cmx parsing/longident.cmx parsing/location.cmx typing/env.cmx \
-    typing/ctype.cmx utils/clflags.cmx typing/btype.cmx parsing/asttypes.cmi \
-    typing/typetexp.cmi
+typing/typetexp.cmo : utils/warnings.cmi typing/types.cmi \
+    typing/typedtree.cmi utils/tbl.cmi typing/printtyp.cmi typing/path.cmi \
+    parsing/parsetree.cmi utils/misc.cmi parsing/longident.cmi \
+    parsing/location.cmi typing/env.cmi typing/ctype.cmi utils/clflags.cmi \
+    typing/btype.cmi parsing/asttypes.cmi typing/typetexp.cmi
+typing/typetexp.cmx : utils/warnings.cmx typing/types.cmx \
+    typing/typedtree.cmx utils/tbl.cmx typing/printtyp.cmx typing/path.cmx \
+    parsing/parsetree.cmi utils/misc.cmx parsing/longident.cmx \
+    parsing/location.cmx typing/env.cmx typing/ctype.cmx utils/clflags.cmx \
+    typing/btype.cmx parsing/asttypes.cmi typing/typetexp.cmi
 bytecomp/bytegen.cmi : bytecomp/lambda.cmi bytecomp/instruct.cmi
 bytecomp/bytelibrarian.cmi :
 bytecomp/bytelink.cmi : bytecomp/symtable.cmi bytecomp/cmo_format.cmi
     utils/clflags.cmx utils/ccomp.cmx bytecomp/bytesections.cmx \
     bytecomp/bytelink.cmi
 bytecomp/bytepackager.cmo : typing/typemod.cmi bytecomp/translmod.cmi \
-    typing/subst.cmi typing/spot.cmi typing/path.cmi utils/misc.cmi \
-    parsing/location.cmi bytecomp/instruct.cmi typing/ident.cmi \
-    typing/env.cmi bytecomp/emitcode.cmi utils/config.cmi \
-    bytecomp/cmo_format.cmi utils/clflags.cmi bytecomp/bytelink.cmi \
-    bytecomp/bytegen.cmi bytecomp/bytepackager.cmi
+    typing/subst.cmi typing/path.cmi utils/misc.cmi parsing/location.cmi \
+    bytecomp/instruct.cmi typing/ident.cmi typing/env.cmi \
+    bytecomp/emitcode.cmi utils/config.cmi bytecomp/cmo_format.cmi \
+    utils/clflags.cmi bytecomp/bytelink.cmi bytecomp/bytegen.cmi \
+    bytecomp/bytepackager.cmi
 bytecomp/bytepackager.cmx : typing/typemod.cmx bytecomp/translmod.cmx \
-    typing/subst.cmx typing/spot.cmx typing/path.cmx utils/misc.cmx \
-    parsing/location.cmx bytecomp/instruct.cmx typing/ident.cmx \
-    typing/env.cmx bytecomp/emitcode.cmx utils/config.cmx \
-    bytecomp/cmo_format.cmi utils/clflags.cmx bytecomp/bytelink.cmx \
-    bytecomp/bytegen.cmx bytecomp/bytepackager.cmi
+    typing/subst.cmx typing/path.cmx utils/misc.cmx parsing/location.cmx \
+    bytecomp/instruct.cmx typing/ident.cmx typing/env.cmx \
+    bytecomp/emitcode.cmx utils/config.cmx bytecomp/cmo_format.cmi \
+    utils/clflags.cmx bytecomp/bytelink.cmx bytecomp/bytegen.cmx \
+    bytecomp/bytepackager.cmi
 bytecomp/bytesections.cmo : utils/misc.cmi utils/config.cmi \
     bytecomp/bytesections.cmi
 bytecomp/bytesections.cmx : utils/misc.cmx utils/config.cmx \
 bytecomp/translcore.cmo : typing/types.cmi bytecomp/typeopt.cmi \
     typing/typedtree.cmi bytecomp/translobj.cmi typing/primitive.cmi \
     typing/predef.cmi typing/path.cmi typing/parmatch.cmi utils/misc.cmi \
-    bytecomp/matching.cmi parsing/location.cmi bytecomp/lambda.cmi \
-    typing/ident.cmi typing/env.cmi utils/config.cmi utils/clflags.cmi \
-    typing/btype.cmi parsing/asttypes.cmi bytecomp/translcore.cmi
+    bytecomp/matching.cmi parsing/longident.cmi parsing/location.cmi \
+    bytecomp/lambda.cmi typing/ident.cmi typing/env.cmi utils/config.cmi \
+    utils/clflags.cmi typing/btype.cmi parsing/asttypes.cmi \
+    bytecomp/translcore.cmi
 bytecomp/translcore.cmx : typing/types.cmx bytecomp/typeopt.cmx \
     typing/typedtree.cmx bytecomp/translobj.cmx typing/primitive.cmx \
     typing/predef.cmx typing/path.cmx typing/parmatch.cmx utils/misc.cmx \
-    bytecomp/matching.cmx parsing/location.cmx bytecomp/lambda.cmx \
-    typing/ident.cmx typing/env.cmx utils/config.cmx utils/clflags.cmx \
-    typing/btype.cmx parsing/asttypes.cmi bytecomp/translcore.cmi
+    bytecomp/matching.cmx parsing/longident.cmx parsing/location.cmx \
+    bytecomp/lambda.cmx typing/ident.cmx typing/env.cmx utils/config.cmx \
+    utils/clflags.cmx typing/btype.cmx parsing/asttypes.cmi \
+    bytecomp/translcore.cmi
 bytecomp/translmod.cmo : typing/types.cmi typing/typedtree.cmi \
     bytecomp/translobj.cmi bytecomp/translcore.cmi bytecomp/translclass.cmi \
     typing/printtyp.cmi typing/primitive.cmi typing/predef.cmi \
     asmcomp/cmx_format.cmi asmcomp/cmmgen.cmx utils/clflags.cmx \
     utils/ccomp.cmx asmcomp/asmgen.cmx asmcomp/asmlink.cmi
 asmcomp/asmpackager.cmo : typing/typemod.cmi bytecomp/translmod.cmi \
-    typing/spot.cmi utils/misc.cmi parsing/location.cmi bytecomp/lambda.cmi \
-    typing/ident.cmi typing/env.cmi utils/config.cmi asmcomp/compilenv.cmi \
+    utils/misc.cmi parsing/location.cmi bytecomp/lambda.cmi typing/ident.cmi \
+    typing/env.cmi utils/config.cmi asmcomp/compilenv.cmi \
     asmcomp/cmx_format.cmi utils/clflags.cmi asmcomp/clambda.cmi \
     utils/ccomp.cmi asmcomp/asmlink.cmi asmcomp/asmgen.cmi \
     asmcomp/asmpackager.cmi
 asmcomp/asmpackager.cmx : typing/typemod.cmx bytecomp/translmod.cmx \
-    typing/spot.cmx utils/misc.cmx parsing/location.cmx bytecomp/lambda.cmx \
-    typing/ident.cmx typing/env.cmx utils/config.cmx asmcomp/compilenv.cmx \
+    utils/misc.cmx parsing/location.cmx bytecomp/lambda.cmx typing/ident.cmx \
+    typing/env.cmx utils/config.cmx asmcomp/compilenv.cmx \
     asmcomp/cmx_format.cmi utils/clflags.cmx asmcomp/clambda.cmx \
     utils/ccomp.cmx asmcomp/asmlink.cmx asmcomp/asmgen.cmx \
     asmcomp/asmpackager.cmi
 driver/optmain.cmi :
 driver/pparse.cmi :
 driver/compile.cmo : utils/warnings.cmi typing/typemod.cmi \
-    typing/typedtree.cmi typing/typecore.cmi bytecomp/translmod.cmi \
-    typing/stypes.cmi typing/spot.cmi bytecomp/simplif.cmi \
-    typing/printtyp.cmi bytecomp/printlambda.cmi bytecomp/printinstr.cmi \
-    parsing/printast.cmi driver/pparse.cmi parsing/parse.cmi utils/misc.cmi \
-    parsing/location.cmi typing/includemod.cmi typing/ident.cmi \
+    typing/typedtree.cmi bytecomp/translmod.cmi typing/stypes.cmi \
+    bytecomp/simplif.cmi typing/printtyp.cmi bytecomp/printlambda.cmi \
+    bytecomp/printinstr.cmi parsing/printast.cmi driver/pparse.cmi \
+    parsing/parse.cmi utils/misc.cmi parsing/location.cmi typing/ident.cmi \
     typing/env.cmi bytecomp/emitcode.cmi utils/config.cmi utils/clflags.cmi \
     utils/ccomp.cmi bytecomp/bytegen.cmi driver/compile.cmi
 driver/compile.cmx : utils/warnings.cmx typing/typemod.cmx \
-    typing/typedtree.cmx typing/typecore.cmx bytecomp/translmod.cmx \
-    typing/stypes.cmx typing/spot.cmx bytecomp/simplif.cmx \
-    typing/printtyp.cmx bytecomp/printlambda.cmx bytecomp/printinstr.cmx \
-    parsing/printast.cmx driver/pparse.cmx parsing/parse.cmx utils/misc.cmx \
-    parsing/location.cmx typing/includemod.cmx typing/ident.cmx \
+    typing/typedtree.cmx bytecomp/translmod.cmx typing/stypes.cmx \
+    bytecomp/simplif.cmx typing/printtyp.cmx bytecomp/printlambda.cmx \
+    bytecomp/printinstr.cmx parsing/printast.cmx driver/pparse.cmx \
+    parsing/parse.cmx utils/misc.cmx parsing/location.cmx typing/ident.cmx \
     typing/env.cmx bytecomp/emitcode.cmx utils/config.cmx utils/clflags.cmx \
     utils/ccomp.cmx bytecomp/bytegen.cmx driver/compile.cmi
 driver/errors.cmo : utils/warnings.cmi typing/typetexp.cmi \
     bytecomp/translclass.cmi parsing/syntaxerr.cmi bytecomp/symtable.cmi \
     driver/pparse.cmi parsing/location.cmi parsing/lexer.cmi \
     typing/includemod.cmi typing/env.cmi typing/ctype.cmi \
-    bytecomp/bytepackager.cmi bytecomp/bytelink.cmi \
+    typing/cmi_format.cmi bytecomp/bytepackager.cmi bytecomp/bytelink.cmi \
     bytecomp/bytelibrarian.cmi driver/errors.cmi
 driver/errors.cmx : utils/warnings.cmx typing/typetexp.cmx \
     typing/typemod.cmx typing/typedecl.cmx typing/typecore.cmx \
     bytecomp/translclass.cmx parsing/syntaxerr.cmx bytecomp/symtable.cmx \
     driver/pparse.cmx parsing/location.cmx parsing/lexer.cmx \
     typing/includemod.cmx typing/env.cmx typing/ctype.cmx \
-    bytecomp/bytepackager.cmx bytecomp/bytelink.cmx \
+    typing/cmi_format.cmx bytecomp/bytepackager.cmx bytecomp/bytelink.cmx \
     bytecomp/bytelibrarian.cmx driver/errors.cmi
 driver/main.cmo : utils/warnings.cmi utils/misc.cmi driver/main_args.cmi \
     parsing/location.cmi driver/errors.cmi utils/config.cmi \
 driver/main_args.cmx : utils/warnings.cmx driver/main_args.cmi
 driver/optcompile.cmo : utils/warnings.cmi typing/typemod.cmi \
     typing/typedtree.cmi bytecomp/translmod.cmi typing/stypes.cmi \
-    typing/spot.cmi bytecomp/simplif.cmi typing/printtyp.cmi \
-    bytecomp/printlambda.cmi parsing/printast.cmi driver/pparse.cmi \
-    parsing/parse.cmi utils/misc.cmi parsing/location.cmi typing/ident.cmi \
-    typing/env.cmi utils/config.cmi asmcomp/compilenv.cmi utils/clflags.cmi \
-    utils/ccomp.cmi asmcomp/asmgen.cmi driver/optcompile.cmi
+    bytecomp/simplif.cmi typing/printtyp.cmi bytecomp/printlambda.cmi \
+    parsing/printast.cmi driver/pparse.cmi parsing/parse.cmi utils/misc.cmi \
+    parsing/location.cmi typing/ident.cmi typing/env.cmi utils/config.cmi \
+    asmcomp/compilenv.cmi utils/clflags.cmi utils/ccomp.cmi \
+    asmcomp/asmgen.cmi driver/optcompile.cmi
 driver/optcompile.cmx : utils/warnings.cmx typing/typemod.cmx \
     typing/typedtree.cmx bytecomp/translmod.cmx typing/stypes.cmx \
-    typing/spot.cmx bytecomp/simplif.cmx typing/printtyp.cmx \
-    bytecomp/printlambda.cmx parsing/printast.cmx driver/pparse.cmx \
-    parsing/parse.cmx utils/misc.cmx parsing/location.cmx typing/ident.cmx \
-    typing/env.cmx utils/config.cmx asmcomp/compilenv.cmx utils/clflags.cmx \
-    utils/ccomp.cmx asmcomp/asmgen.cmx driver/optcompile.cmi
+    bytecomp/simplif.cmx typing/printtyp.cmx bytecomp/printlambda.cmx \
+    parsing/printast.cmx driver/pparse.cmx parsing/parse.cmx utils/misc.cmx \
+    parsing/location.cmx typing/ident.cmx typing/env.cmx utils/config.cmx \
+    asmcomp/compilenv.cmx utils/clflags.cmx utils/ccomp.cmx \
+    asmcomp/asmgen.cmx driver/optcompile.cmi
 driver/opterrors.cmo : utils/warnings.cmi typing/typetexp.cmi \
     typing/typemod.cmi typing/typedecl.cmi typing/typecore.cmi \
     typing/typeclass.cmi bytecomp/translmod.cmi bytecomp/translcore.cmi \
     bytecomp/translclass.cmi parsing/syntaxerr.cmi driver/pparse.cmi \
     parsing/location.cmi parsing/lexer.cmi typing/includemod.cmi \
     typing/env.cmi typing/ctype.cmi asmcomp/compilenv.cmi \
-    asmcomp/asmpackager.cmi asmcomp/asmlink.cmi asmcomp/asmlibrarian.cmi \
-    asmcomp/asmgen.cmi driver/opterrors.cmi
+    typing/cmi_format.cmi asmcomp/asmpackager.cmi asmcomp/asmlink.cmi \
+    asmcomp/asmlibrarian.cmi asmcomp/asmgen.cmi driver/opterrors.cmi
 driver/opterrors.cmx : utils/warnings.cmx typing/typetexp.cmx \
     typing/typemod.cmx typing/typedecl.cmx typing/typecore.cmx \
     typing/typeclass.cmx bytecomp/translmod.cmx bytecomp/translcore.cmx \
     bytecomp/translclass.cmx parsing/syntaxerr.cmx driver/pparse.cmx \
     parsing/location.cmx parsing/lexer.cmx typing/includemod.cmx \
     typing/env.cmx typing/ctype.cmx asmcomp/compilenv.cmx \
-    asmcomp/asmpackager.cmx asmcomp/asmlink.cmx asmcomp/asmlibrarian.cmx \
-    asmcomp/asmgen.cmx driver/opterrors.cmi
+    typing/cmi_format.cmx asmcomp/asmpackager.cmx asmcomp/asmlink.cmx \
+    asmcomp/asmlibrarian.cmx asmcomp/asmgen.cmx driver/opterrors.cmi
 driver/optmain.cmo : utils/warnings.cmi asmcomp/printmach.cmi \
     driver/opterrors.cmi driver/optcompile.cmi utils/misc.cmi \
     driver/main_args.cmi parsing/location.cmi utils/config.cmi \
-91a9efbf952165d7c4d30aad3576ea777e11fe89 ocaml-4.01.0+dev2-12410
+34e8d4a2bd36612fbe437d550b0d119dc9f6bd1e ocaml-4.01.0+dev2-12410

0patches/0001-better-fix-for-PR-5090.patch

-From 871d4945b9891e2be0d1c944c18eb876fc058c20 Mon Sep 17 00:00:00 2001
-From: doligez <doligez@f963ae5c-01c2-4b8c-9fe0-0dff7051ff02>
-Date: Fri, 13 Aug 2010 13:08:57 +0000
-Subject: [PATCH 1/3] better fix for PR#5090
-
-git-svn-id: http://caml.inria.fr/svn/ocaml/version/3.12@10644 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
----
- camlp4/Camlp4/Struct/Grammar/Tools.ml            |   72 ----------------------
- camlp4/Camlp4Parsers/Camlp4OCamlParser.ml        |    8 ++-
- camlp4/Camlp4Parsers/Camlp4OCamlRevisedParser.ml |    6 +-
- camlp4/Camlp4Top/Top.ml                          |   12 +++-
- 4 files changed, 20 insertions(+), 78 deletions(-)
-
-diff --git a/camlp4/Camlp4/Struct/Grammar/Tools.ml b/camlp4/Camlp4/Struct/Grammar/Tools.ml
-index 4dae7e7..26489d3 100644
---- a/camlp4/Camlp4/Struct/Grammar/Tools.ml
-+++ b/camlp4/Camlp4/Struct/Grammar/Tools.ml
-@@ -16,18 +16,6 @@
-  * - Daniel de Rauglaudre: initial version
-  * - Nicolas Pouillard: refactoring
-  *)
--
--(* BEGIN ugly hack.  See 15 lines down.  FIXME *)
--
--type prev_locs = {
--  pl_strm : mutable Obj.t;
--  pl_locs : mutable list (int * Obj.t)
--};
--
--value prev_locs = ref ([] : list prev_locs);
--
--(* END ugly hack FIXME *)
--
- module Make (Structure : Structure.S) = struct
-   open Structure;
- 
-@@ -38,64 +26,6 @@ module Make (Structure : Structure.S) = struct
-     [ [: ` x; strm :] -> [: ` (f x); stream_map f strm :]
-     | [: :] -> [: :] ];
- 
--(* ******************************************************************* *)
--(* Ugly hack to prevent PR#5090.  See how to do this properly after
--   the 3.12.0 release.  FIXME.
--*)
--
--value keep_prev_loc strm =
--  match Stream.peek strm with
--  [ None -> [: :]
--  | Some (_, init_loc) ->
--     let myrecord = { pl_strm = Obj.repr [: :];
--                      pl_locs = [(0, Obj.repr init_loc)] }
--     in
--     let rec go prev_loc = parser
--       [ [: `(tok, cur_loc); strm :] -> do {
--           myrecord.pl_locs := myrecord.pl_locs
--                               @ [ (Stream.count strm, Obj.repr cur_loc) ];
--           [: `(tok, {prev_loc; cur_loc}); go cur_loc strm :] }
--       | [: :] -> do {
--           prev_locs.val := List.filter ((!=) myrecord) prev_locs.val;
--           [: :] } ]
--     in
--     let result = go init_loc strm in
--     do {
--     prev_locs.val := [myrecord :: prev_locs.val];
--     myrecord.pl_strm := Obj.repr result;
--     result } ];
--
--value drop_prev_loc strm = stream_map (fun (tok,r) -> (tok,r)) strm;
--
--value get_cur_loc strm =
--  match Stream.peek strm with
--  [ Some (_,r) -> r.cur_loc
--  | None -> Loc.ghost ];
--
--value get_prev_loc strm =
--  let c = Stream.count strm in
--  let rec drop l =
--    match l with
--    [ [] -> []
--    | [(i, _) :: ll] -> if i < c then drop ll else l ]
--  in
--  let rec find l =
--    match l with
--    [ [] -> None
--    | [h::t] -> if h.pl_strm == Obj.repr strm then Some h else find t ]
--  in
--  match find prev_locs.val with
--  [ None -> Loc.ghost
--  | Some r -> do {
--      r.pl_locs := drop r.pl_locs;
--      match r.pl_locs with
--      [ [] -> Loc.ghost
--      | [(i, loc) :: _] ->
-- if i = c then (Obj.obj loc : Loc.t) else Loc.ghost ] } ];
--
--(* ******************************************************************* *)
--(* END of ugly hack.  This is the previous code.
--
-   value keep_prev_loc strm =
-     match Stream.peek strm with
-     [ None -> [: :]
-@@ -116,8 +46,6 @@ value get_prev_loc strm =
-     match Stream.peek strm with
-     [ Some (_,r) -> r.prev_loc
-     | None -> Loc.ghost ];
--*)
--
- 
-   value is_level_labelled n lev =
-     match lev.lname with
-diff --git a/camlp4/Camlp4Parsers/Camlp4OCamlParser.ml b/camlp4/Camlp4Parsers/Camlp4OCamlParser.ml
-index c7a510a..1bfdefc 100644
---- a/camlp4/Camlp4Parsers/Camlp4OCamlParser.ml
-+++ b/camlp4/Camlp4Parsers/Camlp4OCamlParser.ml
-@@ -616,11 +616,13 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct
-         | `UIDENT s -> s
-       ] ]
-     ;
-+    (* Fix for PR#5090: dummy tokens introduced by the toplevel's lexer
-+       to compensate for the lookahead done by the location-handling code *)
-     top_phrase:
--      [ [ "#"; n = a_LIDENT; dp = opt_expr; ";;" ->
-+      [ [ OPT "%%dummy"; "#"; n = a_LIDENT; dp = opt_expr; ";;" ->
-             Some <:str_item< # $n$ $dp$ >>
--        | l = LIST1 str_item; ";;" -> Some (Ast.stSem_of_list l)
--        | `EOI -> None
-+        | OPT "%%dummy"; l = LIST1 str_item; ";;" -> Some (Ast.stSem_of_list l)
-+        | OPT "%%dummy"; `EOI -> None
-       ] ]
-     ;
-   END;
-diff --git a/camlp4/Camlp4Parsers/Camlp4OCamlRevisedParser.ml b/camlp4/Camlp4Parsers/Camlp4OCamlRevisedParser.ml
-index 11fd025..f91e6ab 100644
---- a/camlp4/Camlp4Parsers/Camlp4OCamlRevisedParser.ml
-+++ b/camlp4/Camlp4Parsers/Camlp4OCamlRevisedParser.ml
-@@ -1614,9 +1614,11 @@ Very old (no more supported) syntax:\n\
-         | l = LIST0 [ st = str_item; semi -> st ] -> Ast.stSem_of_list l
-       ] ]
-     ;
-+    (* Fix for PR#5090: dummy tokens introduced by the toplevel's lexer
-+       to compensate for the lookahead done by the location-handling code *)
-     top_phrase:
--      [ [ ph = phrase -> Some ph
--        | `EOI -> None
-+      [ [ OPT "%% dummy %%"; ph = phrase -> Some ph
-+        | OPT "%% dummy %%"; `EOI -> None
-       ] ]
-     ;
-     use_file:
-diff --git a/camlp4/Camlp4Top/Top.ml b/camlp4/Camlp4Top/Top.ml
-index dcd3aa4..66b3022 100644
---- a/camlp4/Camlp4Top/Top.ml
-+++ b/camlp4/Camlp4Top/Top.ml
-@@ -62,6 +62,15 @@ end;
- 
- value lookup x xs = try Some (List.assq x xs) with [ Not_found -> None ];
- 
-+(* Fix for PR#5090: dummy tokens introduced by the toplevel's lexer
-+   to compensate for the lookahead done by the location-handling code *)
-+value rec add_dummies x =
-+  match x with parser
-+  [ [: `(KEYWORD x, l); strm :] ->
-+       [: `(KEYWORD x, l); `(KEYWORD "%% dummy %%", l); add_dummies strm :]
-+  | [: `x; strm :] -> [: `x; add_dummies strm :] ]
-+;
-+
- value wrap parse_fun =
-   let token_streams = ref [] in
-   let cleanup lb =
-@@ -101,7 +110,8 @@ value wrap parse_fun =
-         } ];
- 
- value toplevel_phrase token_stream =
--  match Gram.parse_tokens_after_filter Syntax.top_phrase token_stream with
-+  match Gram.parse_tokens_after_filter Syntax.top_phrase
-+                                       (add_dummies token_stream) with
-     [ Some str_item ->
-         let str_item =
-           AstFilters.fold_topphrase_filters (fun t filter -> filter t) str_item
--- 
-1.7.4.1
-

0patches/0002-another-fix-for-PR-5090-this-one-seems-to-work-corre.patch

-From 456719ae28d1bcffb2afdde4c1badfb195663485 Mon Sep 17 00:00:00 2001
-From: doligez <doligez@f963ae5c-01c2-4b8c-9fe0-0dff7051ff02>
-Date: Mon, 16 Aug 2010 14:14:10 +0000
-Subject: [PATCH 2/3] another fix for PR#5090; this one seems to work correctly
-
-git-svn-id: http://caml.inria.fr/svn/ocaml/version/3.12@10645 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
----
- camlp4/Camlp4/Struct/Grammar/Structure.ml        |    2 +
- camlp4/Camlp4/Struct/Grammar/Tools.ml            |   34 +++++++++++++++++----
- camlp4/Camlp4Parsers/Camlp4OCamlParser.ml        |    8 ++---
- camlp4/Camlp4Parsers/Camlp4OCamlRevisedParser.ml |    6 +--
- camlp4/Camlp4Top/Top.ml                          |   12 +-------
- 5 files changed, 35 insertions(+), 27 deletions(-)
-
-diff --git a/camlp4/Camlp4/Struct/Grammar/Structure.ml b/camlp4/Camlp4/Struct/Grammar/Structure.ml
-index c2afdd6..67b99fe 100644
---- a/camlp4/Camlp4/Struct/Grammar/Structure.ml
-+++ b/camlp4/Camlp4/Struct/Grammar/Structure.ml
-@@ -36,6 +36,7 @@ module type S = sig
- 
-   type token_info = { prev_loc : Loc.t
-                     ; cur_loc : Loc.t
-+                    ; prev_loc_only : bool
-                     };
- 
-   type token_stream = Stream.t (Token.t * token_info);
-@@ -126,6 +127,7 @@ module Make (Lexer  : Sig.Lexer) = struct
- 
-   type token_info = { prev_loc : Loc.t
-                     ; cur_loc : Loc.t
-+                    ; prev_loc_only : bool
-                     };
- 
-   type token_stream = Stream.t (Token.t * token_info);
-diff --git a/camlp4/Camlp4/Struct/Grammar/Tools.ml b/camlp4/Camlp4/Struct/Grammar/Tools.ml
-index 26489d3..31824eb 100644
---- a/camlp4/Camlp4/Struct/Grammar/Tools.ml
-+++ b/camlp4/Camlp4/Struct/Grammar/Tools.ml
-@@ -16,6 +16,10 @@
-  * - Daniel de Rauglaudre: initial version
-  * - Nicolas Pouillard: refactoring
-  *)
-+
-+(* PR#5090: don't do lookahead on get_prev_loc. *)
-+value get_prev_loc_only = ref False;
-+
- module Make (Structure : Structure.S) = struct
-   open Structure;
- 
-@@ -29,10 +33,17 @@ module Make (Structure : Structure.S) = struct
-   value keep_prev_loc strm =
-     match Stream.peek strm with
-     [ None -> [: :]
--    | Some (_,init_loc) ->
--      let rec go prev_loc = parser
--        [ [: `(tok,cur_loc); strm :] -> [: `(tok,{prev_loc;cur_loc}); go cur_loc strm :]
--        | [: :] -> [: :] ]
-+    | Some (tok0,init_loc) ->
-+      let rec go prev_loc strm1 =
-+        if get_prev_loc_only.val then
-+          [: `(tok0, {prev_loc; cur_loc = prev_loc; prev_loc_only = True});
-+             go prev_loc strm1 :]
-+        else
-+          match strm1 with parser
-+          [ [: `(tok,cur_loc); strm :] ->
-+              [: `(tok, {prev_loc; cur_loc; prev_loc_only = False});
-+                 go cur_loc strm :]
-+          | [: :] -> [: :] ]
-       in go init_loc strm ];
- 
-   value drop_prev_loc strm = stream_map (fun (tok,r) -> (tok,r.cur_loc)) strm;
-@@ -43,9 +54,18 @@ module Make (Structure : Structure.S) = struct
-     | None -> Loc.ghost ];
- 
-   value get_prev_loc strm =
--    match Stream.peek strm with
--    [ Some (_,r) -> r.prev_loc
--    | None -> Loc.ghost ];
-+    do {
-+      get_prev_loc_only.val := True;
-+      let result = match Stream.peek strm with
-+        [ Some (_, {prev_loc; prev_loc_only = True}) ->
-+            do {Stream.junk strm; prev_loc}
-+        | Some (_, {prev_loc; prev_loc_only = False}) -> prev_loc
-+        | None -> Loc.ghost ]
-+      in do {
-+        get_prev_loc_only.val := False;
-+        result
-+      }
-+    };
- 
-   value is_level_labelled n lev =
-     match lev.lname with
-diff --git a/camlp4/Camlp4Parsers/Camlp4OCamlParser.ml b/camlp4/Camlp4Parsers/Camlp4OCamlParser.ml
-index 1bfdefc..c7a510a 100644
---- a/camlp4/Camlp4Parsers/Camlp4OCamlParser.ml
-+++ b/camlp4/Camlp4Parsers/Camlp4OCamlParser.ml
-@@ -616,13 +616,11 @@ module Make (Syntax : Sig.Camlp4Syntax) = struct
-         | `UIDENT s -> s
-       ] ]
-     ;
--    (* Fix for PR#5090: dummy tokens introduced by the toplevel's lexer
--       to compensate for the lookahead done by the location-handling code *)
-     top_phrase:
--      [ [ OPT "%%dummy"; "#"; n = a_LIDENT; dp = opt_expr; ";;" ->
-+      [ [ "#"; n = a_LIDENT; dp = opt_expr; ";;" ->
-             Some <:str_item< # $n$ $dp$ >>
--        | OPT "%%dummy"; l = LIST1 str_item; ";;" -> Some (Ast.stSem_of_list l)
--        | OPT "%%dummy"; `EOI -> None
-+        | l = LIST1 str_item; ";;" -> Some (Ast.stSem_of_list l)
-+        | `EOI -> None
-       ] ]
-     ;
-   END;
-diff --git a/camlp4/Camlp4Parsers/Camlp4OCamlRevisedParser.ml b/camlp4/Camlp4Parsers/Camlp4OCamlRevisedParser.ml
-index f91e6ab..11fd025 100644
---- a/camlp4/Camlp4Parsers/Camlp4OCamlRevisedParser.ml
-+++ b/camlp4/Camlp4Parsers/Camlp4OCamlRevisedParser.ml
-@@ -1614,11 +1614,9 @@ Very old (no more supported) syntax:\n\
-         | l = LIST0 [ st = str_item; semi -> st ] -> Ast.stSem_of_list l
-       ] ]
-     ;
--    (* Fix for PR#5090: dummy tokens introduced by the toplevel's lexer
--       to compensate for the lookahead done by the location-handling code *)
-     top_phrase:
--      [ [ OPT "%% dummy %%"; ph = phrase -> Some ph
--        | OPT "%% dummy %%"; `EOI -> None
-+      [ [ ph = phrase -> Some ph
-+        | `EOI -> None
-       ] ]
-     ;
-     use_file:
-diff --git a/camlp4/Camlp4Top/Top.ml b/camlp4/Camlp4Top/Top.ml
-index 66b3022..dcd3aa4 100644
---- a/camlp4/Camlp4Top/Top.ml
-+++ b/camlp4/Camlp4Top/Top.ml
-@@ -62,15 +62,6 @@ end;
- 
- value lookup x xs = try Some (List.assq x xs) with [ Not_found -> None ];
- 
--(* Fix for PR#5090: dummy tokens introduced by the toplevel's lexer
--   to compensate for the lookahead done by the location-handling code *)
--value rec add_dummies x =
--  match x with parser
--  [ [: `(KEYWORD x, l); strm :] ->
--       [: `(KEYWORD x, l); `(KEYWORD "%% dummy %%", l); add_dummies strm :]
--  | [: `x; strm :] -> [: `x; add_dummies strm :] ]
--;
--
- value wrap parse_fun =
-   let token_streams = ref [] in
-   let cleanup lb =
-@@ -110,8 +101,7 @@ value wrap parse_fun =
-         } ];
- 
- value toplevel_phrase token_stream =
--  match Gram.parse_tokens_after_filter Syntax.top_phrase
--                                       (add_dummies token_stream) with
-+  match Gram.parse_tokens_after_filter Syntax.top_phrase token_stream with
-     [ Some str_item ->
-         let str_item =
-           AstFilters.fold_topphrase_filters (fun t filter -> filter t) str_item
--- 
-1.7.4.1
-

0patches/0003-PR-5090-better-style-of-code.patch

-From bad5f7a74d95b8377aa3f0b730a83a16ed8aa339 Mon Sep 17 00:00:00 2001
-From: doligez <doligez@f963ae5c-01c2-4b8c-9fe0-0dff7051ff02>
-Date: Mon, 16 Aug 2010 14:28:41 +0000
-Subject: [PATCH 3/3] PR#5090: better style of code
-
-git-svn-id: http://caml.inria.fr/svn/ocaml/version/3.12@10646 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
----
- camlp4/Camlp4/Struct/Grammar/Tools.ml |   14 ++++++--------
- 1 files changed, 6 insertions(+), 8 deletions(-)
-
-diff --git a/camlp4/Camlp4/Struct/Grammar/Tools.ml b/camlp4/Camlp4/Struct/Grammar/Tools.ml
-index 31824eb..cb63478 100644
---- a/camlp4/Camlp4/Struct/Grammar/Tools.ml
-+++ b/camlp4/Camlp4/Struct/Grammar/Tools.ml
-@@ -54,18 +54,16 @@ module Make (Structure : Structure.S) = struct
-     | None -> Loc.ghost ];
- 
-   value get_prev_loc strm =
--    do {
-+    begin
-       get_prev_loc_only.val := True;
-       let result = match Stream.peek strm with
-         [ Some (_, {prev_loc; prev_loc_only = True}) ->
--            do {Stream.junk strm; prev_loc}
-+            begin Stream.junk strm; prev_loc end
-         | Some (_, {prev_loc; prev_loc_only = False}) -> prev_loc
--        | None -> Loc.ghost ]
--      in do {
--        get_prev_loc_only.val := False;
--        result
--      }
--    };
-+        | None -> Loc.ghost ];
-+      get_prev_loc_only.val := False;
-+      result
-+    end;
- 
-   value is_level_labelled n lev =
-     match lev.lname with
--- 
-1.7.4.1
-

0patches/camlp4-lexer-plugin-0.5-for-3.11.2.patch

-diff -r 734e81f730d9 camlp4/Camlp4/Sig.ml
---- a/camlp4/Camlp4/Sig.ml	Thu Sep 17 18:16:35 2009 +0900
-+++ b/camlp4/Camlp4/Sig.ml	Mon Sep 14 10:49:43 2009 +0900
-@@ -1087,6 +1087,10 @@
-     value lex_string : Loc.t -> string
-                             -> not_filtered (Stream.t (Token.t * Loc.t));
- 
-+    value set_from_lexbuf : 
-+      (?quotations: bool -> Lexing.lexbuf -> Stream.t (Token.t * Loc.t)) 
-+    -> unit;
-+      
-     (** Filter a token stream using the {!Token.Filter} module *)
-     value filter : not_filtered (Stream.t (Token.t * Loc.t))
-                               -> Stream.t (Token.t * Loc.t);
-@@ -1121,6 +1125,12 @@
-       The lexer do not use global (mutable) variables: instantiations
-       of [Lexer.mk ()] do not perturb each other. *)
-   value mk : unit -> (Loc.t -> Stream.t char -> Stream.t (Token.t * Loc.t));
-+
-+  value from_lexbuf : 
-+    ?quotations: bool -> Lexing.lexbuf -> Stream.t (Token.t * Loc.t);
-+
-+  value set_from_lexbuf : 
-+    (?quotations: bool -> Lexing.lexbuf -> Stream.t (Token.t * Loc.t)) -> unit;
- end;
- 
- 
-diff -r 734e81f730d9 camlp4/Camlp4/Struct/Grammar/Static.ml
---- a/camlp4/Camlp4/Struct/Grammar/Static.ml	Thu Sep 17 18:16:35 2009 +0900
-+++ b/camlp4/Camlp4/Struct/Grammar/Static.ml	Mon Sep 14 10:49:43 2009 +0900
-@@ -59,6 +59,8 @@
- 
-   value lex_string loc str = lex loc (Stream.of_string str);
- 
-+  value set_from_lexbuf = Lexer.set_from_lexbuf;
-+
-   value filter ts = Token.Filter.filter gram.gfilter ts;
- 
-   value parse_tokens_after_filter entry ts = Entry.E.parse_tokens_after_filter entry ts;
-diff -r 734e81f730d9 camlp4/Camlp4/Struct/Lexer.mll
---- a/camlp4/Camlp4/Struct/Lexer.mll	Thu Sep 17 18:16:35 2009 +0900
-+++ b/camlp4/Camlp4/Struct/Lexer.mll	Mon Sep 14 10:49:43 2009 +0900
-@@ -448,7 +448,12 @@
-     in
-     self 0 s
- 
--  let from_context c =
-+  let from_context quotations lb =
-+    let c = { (default_context lb) with
-+              loc        = Loc.of_lexbuf lb;
-+              antiquots  = !Camlp4_config.antiquotations;
-+              quotations = quotations      }
-+    in
-     let next _ =
-       let tok = with_curr_loc token c in
-       let loc = Loc.of_lexbuf c.lexbuf in
-@@ -456,11 +461,19 @@
-     in Stream.from next
- 
-   let from_lexbuf ?(quotations = true) lb =
--    let c = { (default_context lb) with
--              loc        = Loc.of_lexbuf lb;
--              antiquots  = !Camlp4_config.antiquotations;
--              quotations = quotations      }
--    in from_context c
-+    from_context quotations lb
-+
-+  let from_lexbuf_ref = ref from_lexbuf
-+
-+  let set_from_lexbuf from_lexbuf = from_lexbuf_ref := from_lexbuf
-+
-+  let from_lexbuf ?(quotations = true) lb =
-+    let zstream = lazy (!from_lexbuf_ref ~quotations lb) in
-+    Stream.from (fun _ ->
-+      try
-+	Some (Stream.next (Lazy.force zstream))
-+      with
-+      | Stream.Failure -> None)
- 
-   let setup_loc lb loc =
-     let start_pos = Loc.start_pos loc in
-diff -r 734e81f730d9 camlp4/Camlp4Top/Top.ml
---- a/camlp4/Camlp4Top/Top.ml	Thu Sep 17 18:16:35 2009 +0900
-+++ b/camlp4/Camlp4Top/Top.ml	Mon Sep 14 10:49:43 2009 +0900
-@@ -50,7 +50,8 @@
- open Syntax;
- open Camlp4.Sig;
- module Ast2pt = Camlp4.Struct.Camlp4Ast2OCamlAst.Make Ast;
--module Lexer = Camlp4.Struct.Lexer.Make Token;
-+(* module Lexer = Camlp4.Struct.Lexer.Make Token; *)
-+module Lexer = PreCast.Lexer;
- 
- external not_filtered : 'a -> Gram.not_filtered 'a = "%identity";
- 

0scripts/0ADD-RELEASE-TAG

-#!/bin/sh
-set -e
-ver=`../ocamlspot/ocamlspot --version 2>&1`
-tag=`echo $ver | sed -r -e 's/ocamlspot ([^ ]+) for ocaml ([^ ]+)/ocamlspot-\1-for-\2/'`
-echo hg tag $tag
-
-
-

0scripts/0BUILD.sh

 #   If an argument is specified, use it as PREFIX, then install the system
 #   Otherwise, it uses $PREFIX, and does not perform installation.
 
-if [ "x$PREFIX" = "x" ]; then 
-  echo "Set PREFIX environment variable"
-  exit 1
-fi
-
 set -e
 
 if [ "$1" != "" ]; then
 ./configure --prefix $PREFIX
 make clean core coreboot
 ./build/mixed-boot.sh
-/bin/cp boot/myocamlbuild boot/myocamlbuild.boot
+cp boot/myocamlbuild boot/myocamlbuild.boot
 make world opt opt.opt
 
 if [ "$INSTALL" = "1" ]; then

0scripts/0CHECKOUT-SVN

 #!/bin/sh
-# rev 11110
-VERSION=3.12.1
+
+set -e
+
+# rev 12583
+VERSION=4.00.0+beta2
+
+# Move to the ocaml-svn-copy head
+hg update -C ocaml-svn-copy
 /bin/rm -rf [A-z]* \#*
-svn co http://caml.inria.fr/svn/ocaml/release/$VERSION/
-(cd $VERSION; tar cf - .) | tar xvf -
+
+# svn co http://caml.inria.fr/svn/ocaml/release/$VERSION/
+tar zxvf ../ocaml-$VERSION.tgz
+(cd $VERSION; tar cf - .) | tar xf -
 /bin/rm -rf $VERSION
+
 hg rm `hg status | grep '^!' | awk '{ print $2 }'`
 hg add [A-z]*
 echo OCaml $VERSION svn source is copied. Now ready to commit.

0scripts/0CONF.sh

-#!/bin/sh
-
-SVNREV=11094
-VERSION=3.12.1+rc1
-SPOTVERSION=1.3.0
-
-BIGVERSION=`echo $VERSION | sed -r -e 's/^([0-9]+\.[0-9]+)\..*$/\1/'`
-
-OCAMLSPOTVERSION=$VERSION-$SPOTVERSION
-
-# HG TAG FOR PURE OCAML
-HG_PURE_OCAML="ocaml-$VERSION-$SVNREV"

0scripts/0MAKERELEASE

-#!/bin/sh
-
-set -e 
-
-. ./0CONF.sh
-
-if [ "$RELEASE" = "" ]; then
-    echo "Specify \$RELEASE"
-    exit 1
-fi
-
-cd ..
-
-(cd ocamlspot; make clean)
-
-tgz="ocamlspotter-tmp.tgz"
-
-tar zcf $tgz --exclude='*~' --exclude='*.rej' --exclude='*.orig' ocamlspot
-
-dstdir="$RELEASE"
-rm -rf $dstdir
-mkdir $dstdir;
-
-hg diff -r $HG_PURE_OCAML -r $RELEASE -X "0*" -X ".hg[a-z]*" -X "ocamlspot" -X "boot" > $dstdir/compiler_patch.diff
-
-(cd $dstdir; tar zxf ../$tgz)
-
-cp ocamlspot/INSTALL-ocamlspot.txt ocamlspot/BRAIN_DEAD_INSTALL.sh ocamlspot/VERIFY.sh $dstdir
-
-rm $tgz
-
-
-
-
-

0scripts/0MAKESCRIPTS.sh

-#!/bin/sh
-
-set -e
-
-. ./0CONF.sh
-
-SED="sed -e s/%BIGVERSION%/$BIGVERSION/g -e s/%VERSION%/$VERSION/g -e s/%OCAMLSPOTVERSION%/$OCAMLSPOTVERSION/g -e s/%SVNREV%/$SVNREV/g"
-
-$SED INSTALL-ocamlspot.txt.in > ../ocamlspot/INSTALL-ocamlspot.txt
-$SED BRAIN_DEAD_INSTALL.sh.in > ../ocamlspot/BRAIN_DEAD_INSTALL.sh
-chmod +x ../ocamlspot/BRAIN_DEAD_INSTALL.sh
-$SED VERIFY.sh.in > ../ocamlspot/VERIFY.sh
-chmod +x ../ocamlspot/VERIFY.sh

0scripts/0README.txt

-Files here are small build scripts for Jun FURUSE. Just ignore them.

0scripts/0VERIFY.sh

-#!/bin/sh
-
-# This script checks that the patch extends ocaml compiler conservatively:
-# Object files created by the original and patched compilers are the same.
-
-set -e
-
-. ./0CONF.sh
-
-cd ..
-
-# build boot/myocamlbuild.boot
-
-make core coreboot
-./build/mixed-boot.sh
-cp boot/myocamlbuild boot/myocamlbuild.boot
-
-# recover the original compiler
-rm -rf patched-boot
-mkdir patched-boot
-mv boot/ocamlc boot/ocamldep boot/ocamllex patched-boot
-hg revert -r $HG_PURE_OCAML boot/ocamlc boot/ocamldep boot/ocamllex
-make world opt opt.opt
-
-rm -rf boot/Saved _build/boot/Saved
-find . -iregex '.*\.\(cm.*\|o\)' | sort | xargs md5sum > MD5-original
-
-make clean 
-mv patched-boot/* boot
-make world opt opt.opt
-rm -rf boot/Saved _build/boot/Saved
-find . -iregex '.*\.\(cm.*\|o\)' | sort | xargs md5sum > MD5-ocamlspot
-
-if cmp MD5-original MD5-ocamlspot; then
-    echo "All the object files are equal!"
-else
-    echo "Something different is created by compiler+ocamlspot!"
-fi

0scripts/0checkout

-svn co http://caml.inria.fr/svn/ocaml/release/3.12.0/

0scripts/BRAIN_DEAD_INSTALL.sh.in

-#!/bin/sh
-# No warranty, no question. Just for brain-dead people.
-set -e
-svn checkout http://caml.inria.fr/svn/ocaml/release/%VERSION% .
-svn update -r %SVNREV%
-patch -p1 < compiler_patch.diff
-./configure
-make core coreboot
-./build/mixed-boot.sh
-cp boot/myocamlbuild boot/myocamlbuild.boot
-make world opt opt.opt
-echo ===================== testing =======================
-(cd ocamlspot/tests; make; ./auto-test.pl  *.ml *.mli) 
-echo ===================== congrats ======================
-echo Now you can type make intall
-echo Do not forget to install the elisp file, ocamlspot/ocamlspot.el
-echo and configure your .emacs

0scripts/CHECKCHECK.sh

-#!/bin/sh
-
-set -e
-
-mkdir z
-cp -a ../.hg z/
-(cd z; hg update -C 848)
-mv z/* .
-mv z/.depend .
-
-patch -p1 < compiler_patch.diff
-./configure --prefix $HOME/.share/prefix-test
-make core coreboot
-./build/mixed-boot.sh
-cp boot/myocamlbuild boot/myocamlbuild.boot
-make world opt opt.opt
-echo ===================== testing =======================
-(cd ocamlspot/tests; make; ./auto-test.pl  *.ml *.mli) 
-echo ===================== congrats ======================
-echo Now you can type make intall
-echo Do not forget to install the elisp file, ocamlspot/ocamlspot.el
-echo and configure your .emacs

0scripts/INSTALL-ocamlspot.txt.in

-0. If you have no time to read the following, just try the script in the package:
-  
-    $ ./BRAIN_DEAD_INSTALL.sh
-
-  It will clone the official source of version %VERSION% in the current directory, then apply the patch, and compile with the default configuration. Jump to 8 for the emacs lisp installation.
-
-1. Ok, you are not brain dead. Download OCaml compiler version %VERSION%:
-
-  - grab it from http://caml.inria.fr/pub/distrib/ocaml-%BIGVERSION%/%VERSION%.tar.gz
-  - You can also use the SVN version
-    ( svn checkout http://caml.inria.fr/svn/ocaml/release/%VERSION% )
-
-2. Extract the compiler source.
-
-  - tar zxvf ocaml-%VERSION%.tar.gz
-  - cd ocaml-%VERSION%                 # do not forget this
-
-3. Extract ocamlspot.tgz and Apply the patch
-
-  - tar zxvf ocamlspotter-%OCAMLSPOTVERSION%.tgz
-  - mv ocamlspotter-%OCAMLSPOTVERSION%/* .
-  - patch -p1 < compiler_patch.diff
-
-  Check your patched source tree. It should have ocamlspot directory with the original files like INSTALL, LICENSE and VERSION.
-
-4. Build a bytecode compiler
-
-  - ./configure
-  - make core coreboot
-
-5. Manual ocamlbuild bootstrap:
-
-   Do not forget the following after make coreboot:
-
-  - ./build/mixed-boot.sh
-  - cp boot/myocamlbuild boot/myocamlbuild.boot
-
-6. Continue building
-
-  - make world
-  - make opt
-  - make opt.opt
-
-7. Check the patched compiler is compatible with the original
-
-  You can use VERIFY.sh to check that the patched compiler produces the same object files as the orignal compiler.
-
-8. Install it
-
-  - make install
-
-9. Emacs interface
-
-  Write the following into your .emacs:
-
-  ; load-path
-  (setq load-path (cons "WHERE-YOU-HAVE-INSTALLED-THE-ELISP" load-path))
- 
-  ; set the path of the ocamlspot binary
-  (setq ocamlspot-path "WHERE-YOU-HAVE-INSTALLED-THE-BINARIES/ocamlspot")
- 
-  ; autoload
-  (autoload 'ocamlspot-query "ocamlspot" "OCamlSpot")
- 
-  ; tuareg mode hook (use caml-mode-hook instead if you use caml-mode)
-    (add-hook 'tuareg-mode-hook 
-    	  '(lambda ()
-  	     (local-set-key "\C-c;" 'ocamlspot-query)
-  	     (local-set-key "\C-c\C-t" 'ocamlspot-type)
-             (local-set-key "\C-c\C-y" 'ocamlspot-type-and-copy)
-  	     (local-set-key "\C-c\C-u" 'ocamlspot-use)
-  	     (local-set-key "\C-ct" 'caml-types-show-type)))
- 
-10. How to use
-
-  Compiler your ML project by this patched compiler with -annot option to create .spot files. Open one of the source files in Emacs and place the cursor at the name whose definition is in question. Type C-c; will show you the defintion.
-
-11. bug report
-
-  Please report bugs to jun.furuse at gmail.

0scripts/Makefile

-.DEFAULT: BRAIN_DEAD_INSTALL.sh INSTALL-ocamlspot.txt VERIFY.sh
-
-BRAIN_DEAD_INSTALL.sh INSTALL-ocamlspot.txt VERIFY.sh: BRAIN_DEAD_INSTALL.sh.in INSTALL-ocamlspot.txt.in VERIFY.sh.in 0MAKESCRIPTS.sh
-	./0MAKESCRIPTS.sh
-

0scripts/VERIFY.sh.in

-#!/bin/sh
-
-# This script checks that the patch extends ocaml compiler conservatively:
-# Object files created by the original and patched compilers are the same.
-
-set -e
-rm -rf verify
-svn checkout http://caml.inria.fr/svn/ocaml/release/%VERSION% verify/
-cd verify
-svn update -r %SVNREV%
-./configure
-make clean core coreboot world opt opt.opt
-rm -rf boot/Saved _build/boot/Saved
-find . -iregex '.*\.\(cm.*\|o\)' | sort | xargs md5sum > MD5-original
-rm -rf boot/*
-cp ../boot/[a-z]* boot
-make clean world opt opt.opt
-rm -rf boot/Saved _build/boot/Saved
-find . -iregex '.*\.\(cm.*\|o\)' | sort | xargs md5sum > MD5-ocamlspot
-if cmp MD5-original MD5-ocamlspot; then
-    echo "All the object files are equal!"
-else
-    echo "Something different is created by compiler+ocamlspot!"
-fi
- 
-Next version
-------------
-
-Bug fixes:
-- PR#5551: Avoid repeated lookups for missing cmi files
-
 OCaml 4.00.0:
 -------------
 
 - The official name of the language is now OCaml.
 
 Language features:
-- Added Generalized Abstract Data Types (GADTs) to the language. See
-  testsuite/tests/typing-gadts for the syntax and some examples of
-  use. Please use -principal for testing.
+- Added Generalized Abstract Data Types (GADTs) to the language.
+  See chapter "Language extensions" of the reference manual for documentation.
 - It is now possible to omit type annotations when packing and unpacking
   first-class modules. The type-checker attempts to infer it from the context.
   Using the -principal option guarantees forward compatibility.
 * Warning 28 is now enabled by default.
 - New option -absname to use absolute paths in error messages
 - Optimize away compile-time beta-redexes, e.g. (fun x y -> e) a b.
+- Added option -bin-annot to dump the AST with type annotations.
+- Added lots of new warnings about unused variables, opens, fields,
+  constructors, etc.
+* New meaning for warning 7: it is now triggered when a method is overridden
+  with the "method" keyword.  Use "method!" to avoid the warning.
 
 Native-code compiler:
 - Optimized handling of partially-applied functions (PR#5287)
   number debugging annotations, enabling in particular precise stack
   backtraces with the gdb debugger. Currently supported for x86 32-bits
   and 64-bits only. (PR#5487)
+- New tool: ocamloptp, the equivalent of ocamlcp for the native-code compiler.
+
+OCamldoc:
+- PR#5544: improve HTML output (less formatting in html code)
+- PR#5522: allow refering to record fields and variant constructors
+- fix PR#5419 (error message in french)
+- fix PR#5535 (no cross ref to class after dump+load)
+* Use first class modules for custom generators, to be able to
+  load various plugins incrementally adding features to the current
+  generator
+* PR#5507: Use Location.t structures for locations.
+- fix: do not keep code when not told to keep code.
 
 Standard library:
 - Added float functions "hypot" and "copysign" (PR#3806, PR#4752, PR#5246)
       to turn randomization on by default (PR#5572, CVE-2012-0839)
     . Added new functorial interface "MakeSeeded" to support randomization
       with user-provided seeded hash functions.
+    . Install new header <caml/hash.h> for C code.
 - Filename: on-demand (lazy) initialization of the PRNG used by "temp_file".
 - Marshal: marshalling of function values (flag Marshal.Closures) now
   also works for functions that come from dynamically-loaded modules (PR#5215)
      . More random initialization (Random.self_init()), using /dev/urandom
        when available (e.g. Linux, FreeBSD, MacOS X, Solaris)
      . Faster implementation of Random.float
-- Format strings for formatted input/output revised to correct PR#5380
-    . Consistently treat %@ as a plain @ character
-    . Consistently treat %% as a plain % character
-- Scanf: width and precision for floating point numbers are now handled
 - Scanf: new function "unescaped" (PR#3888)
 - Set and Map: more efficient implementation of "filter" and "partition"
 - String: new function "map" (PR#3888)
 
-Other libraries:
-- Bigarray: added "release" functions that free memory and file mappings
-  just like GC finalization does eventually, but does it immediately.
+Installation procedure:
+- Compiler internals are now installed in `ocamlc -where`/compiler-libs.
+  The files available there include the .cmi interfaces for all compiler
+  modules, plus the following libraries:
+      ocamlcommon.cma/.cmxa     modules common to ocamlc, ocamlopt, ocaml
+      ocamlbytecomp.cma/.cmxa   modules for ocamlc and ocaml
+      ocamloptcomp.cma/.cmxa    modules specific to ocamlopt
+      ocamltoplevel.cma         modules specific to ocaml
+   (PR#1804, PR#4653, frequently-asked feature).
+* Some .cmi for toplevel internals that used to be installed in
+  `ocamlc -where` are now to be found in  `ocamlc -where`/compiler-libs.
+  Add "-I +compiler-libs" where needed.
+* toplevellib.cma is no longer installed because subsumed by
+  ocamlcommon.cma ocamlbytecomp.cma ocamltoplevel.cma
+- Added a configuration option (-with-debug-runtime) to compile and install
+  a debug version of the runtime system, and a compiler option
+  (-runtime-variant) to select the debug runtime.
 
 Bug Fixes:
 - PR#1643: functions of the Lazy module whose named started with 'lazy_' have
   been deprecated, and new ones without the prefix added
 - PR#3571: in Bigarrays, call msync() before unmapping to commit changes
+- PR#4292: various documentation problems
+- PR#4511, PR#4838: local modules remove polymorphism
 - PR#4549: Filename.dirname is not handling multiple / on Unix
 - PR#4688: (Windows) special floating-point values aren't converted to strings
   correctly
 - PR#4892: Array.set could raise "out of bounds" before evaluating 3rd arg
 - PR#4937: camlp4 incorrectly handle