From c014d03a2b3a4cbba4b7b876037b540c820a1d4f Mon Sep 17 00:00:00 2001 From: Stephane Glondu Date: Mon, 28 Dec 2009 16:11:12 +0100 Subject: [PATCH] Imported Upstream version 3.11.2~rc1 --- Changes | 48 +- INSTALL | 15 +- Makefile | 11 +- Makefile.nt | 2 +- README | 2 +- VERSION | 4 +- _tags | 2 + asmcomp/alpha/arch.ml | 2 +- asmcomp/alpha/emit.mlp | 6 +- asmcomp/alpha/proc.ml | 2 +- asmcomp/alpha/reload.ml | 2 +- asmcomp/alpha/scheduling.ml | 2 +- asmcomp/alpha/selection.ml | 2 +- asmcomp/amd64/arch.ml | 2 +- asmcomp/amd64/emit.mlp | 50 +- asmcomp/amd64/emit_nt.mlp | 2 +- asmcomp/amd64/proc.ml | 5 +- asmcomp/amd64/proc_nt.ml | 2 +- asmcomp/amd64/reload.ml | 2 +- asmcomp/amd64/scheduling.ml | 2 +- asmcomp/amd64/selection.ml | 2 +- asmcomp/arm/arch.ml | 2 +- asmcomp/arm/emit.mlp | 5 +- asmcomp/arm/proc.ml | 2 +- asmcomp/arm/reload.ml | 2 +- asmcomp/arm/scheduling.ml | 2 +- asmcomp/arm/selection.ml | 2 +- asmcomp/asmgen.ml | 2 +- asmcomp/asmgen.mli | 2 +- asmcomp/asmlibrarian.ml | 2 +- asmcomp/asmlibrarian.mli | 2 +- asmcomp/asmlink.ml | 3 +- asmcomp/asmlink.mli | 2 +- asmcomp/asmpackager.ml | 2 +- asmcomp/asmpackager.mli | 2 +- asmcomp/clambda.ml | 2 +- asmcomp/clambda.mli | 2 +- asmcomp/closure.ml | 2 +- asmcomp/closure.mli | 2 +- asmcomp/cmm.ml | 2 +- asmcomp/cmm.mli | 2 +- asmcomp/cmmgen.ml | 2 +- asmcomp/cmmgen.mli | 2 +- asmcomp/codegen.ml | 2 +- asmcomp/codegen.mli | 2 +- asmcomp/coloring.ml | 2 +- asmcomp/coloring.mli | 2 +- asmcomp/comballoc.ml | 2 +- asmcomp/comballoc.mli | 2 +- asmcomp/compilenv.ml | 2 +- asmcomp/compilenv.mli | 2 +- asmcomp/emit.mli | 2 +- asmcomp/emitaux.ml | 23 +- asmcomp/emitaux.mli | 5 +- asmcomp/hppa/arch.ml | 2 +- asmcomp/hppa/emit.mlp | 10 +- asmcomp/hppa/proc.ml | 2 +- asmcomp/hppa/reload.ml | 2 +- asmcomp/hppa/scheduling.ml | 2 +- asmcomp/hppa/selection.ml | 2 +- asmcomp/i386/arch.ml | 2 +- asmcomp/i386/emit.mlp | 13 +- asmcomp/i386/emit_nt.mlp | 2 +- asmcomp/i386/proc.ml | 2 +- asmcomp/i386/proc_nt.ml | 2 +- asmcomp/i386/reload.ml | 2 +- asmcomp/i386/scheduling.ml | 2 +- asmcomp/i386/selection.ml | 2 +- asmcomp/ia64/arch.ml | 2 +- asmcomp/ia64/emit.mlp | 6 +- asmcomp/ia64/proc.ml | 2 +- asmcomp/ia64/reload.ml | 2 +- asmcomp/ia64/scheduling.ml | 2 +- asmcomp/ia64/selection.ml | 2 +- asmcomp/interf.ml | 2 +- asmcomp/interf.mli | 2 +- asmcomp/linearize.ml | 2 +- asmcomp/linearize.mli | 2 +- asmcomp/liveness.ml | 2 +- asmcomp/liveness.mli | 2 +- asmcomp/mach.ml | 2 +- asmcomp/mach.mli | 2 +- asmcomp/mips/arch.ml | 2 +- asmcomp/mips/emit.mlp | 7 +- asmcomp/mips/proc.ml | 2 +- asmcomp/mips/reload.ml | 2 +- asmcomp/mips/scheduling.ml | 2 +- asmcomp/mips/selection.ml | 2 +- asmcomp/power/arch.ml | 2 +- asmcomp/power/emit.mlp | 17 +- asmcomp/power/proc.ml | 2 +- asmcomp/power/reload.ml | 2 +- asmcomp/power/scheduling.ml | 2 +- asmcomp/power/selection.ml | 2 +- asmcomp/printcmm.ml | 2 +- asmcomp/printcmm.mli | 2 +- asmcomp/printlinear.ml | 2 +- asmcomp/printlinear.mli | 2 +- asmcomp/printmach.ml | 2 +- asmcomp/printmach.mli | 2 +- asmcomp/proc.mli | 2 +- asmcomp/reg.ml | 2 +- asmcomp/reg.mli | 2 +- asmcomp/reload.mli | 2 +- asmcomp/reloadgen.ml | 2 +- asmcomp/reloadgen.mli | 2 +- asmcomp/schedgen.ml | 2 +- asmcomp/schedgen.mli | 2 +- asmcomp/scheduling.mli | 2 +- asmcomp/selectgen.ml | 2 +- asmcomp/selectgen.mli | 2 +- asmcomp/selection.mli | 2 +- asmcomp/sparc/arch.ml | 2 +- asmcomp/sparc/emit.mlp | 9 +- asmcomp/sparc/proc.ml | 2 +- asmcomp/sparc/reload.ml | 2 +- asmcomp/sparc/scheduling.ml | 2 +- asmcomp/sparc/selection.ml | 2 +- asmcomp/spill.ml | 2 +- asmcomp/spill.mli | 2 +- asmcomp/split.ml | 2 +- asmcomp/split.mli | 2 +- asmrun/Makefile | 2 +- asmrun/Makefile.nt | 2 +- asmrun/alpha.S | 2 +- asmrun/amd64.S | 2 +- asmrun/amd64nt.asm | 2 +- asmrun/arm.S | 2 +- asmrun/backtrace.c | 2 +- asmrun/fail.c | 2 +- asmrun/hppa.S | 2 +- asmrun/i386.S | 2 +- asmrun/i386nt.asm | 2 +- asmrun/ia64.S | 15 +- asmrun/m68k.S | 2 +- asmrun/mips.s | 2 +- asmrun/power-aix.S | 2 +- asmrun/power-elf.S | 2 +- asmrun/power-rhapsody.S | 2 +- asmrun/roots.c | 2 +- asmrun/signals_asm.c | 2 +- asmrun/signals_osdep.h | 2 +- asmrun/sparc.S | 2 +- asmrun/stack.h | 2 +- asmrun/startup.c | 2 +- boot/.cvsignore | 1 + boot/ocamlc | Bin 1044084 -> 1045553 bytes boot/ocamldep | Bin 289193 -> 289555 bytes boot/ocamllex | Bin 165443 -> 165768 bytes build/boot-c-parts-windows.sh | 2 +- build/boot-c-parts.sh | 2 +- build/boot.sh | 2 +- build/camlp4-bootstrap.sh | 2 +- build/camlp4-byte-only.sh | 2 +- build/camlp4-native-only.sh | 2 +- build/camlp4-targets.sh | 2 +- build/distclean.sh | 2 +- build/fastworld.sh | 2 +- build/install.sh | 2 +- build/mkconfig.sh | 2 +- build/mkmyocamlbuild_config.sh | 2 +- build/mkruntimedef.sh | 2 +- build/myocamlbuild.sh | 2 +- build/ocamlbuild-byte-only.sh | 2 +- build/ocamlbuild-native-only.sh | 2 +- build/ocamlbuildlib-native-only.sh | 2 +- build/otherlibs-targets.sh | 2 +- build/partial-install.sh | 2 +- build/targets.sh | 2 +- build/world.all.sh | 2 +- build/world.byte.sh | 2 +- build/world.native.sh | 2 +- build/world.sh | 2 +- bytecomp/bytegen.ml | 2 +- bytecomp/bytegen.mli | 2 +- bytecomp/bytelibrarian.ml | 2 +- bytecomp/bytelibrarian.mli | 2 +- bytecomp/bytelink.ml | 86 +++- bytecomp/bytelink.mli | 2 +- bytecomp/bytepackager.ml | 2 +- bytecomp/bytepackager.mli | 2 +- bytecomp/bytesections.ml | 2 +- bytecomp/bytesections.mli | 2 +- bytecomp/cmo_format.mli | 2 +- bytecomp/dll.ml | 2 +- bytecomp/dll.mli | 2 +- bytecomp/emitcode.ml | 2 +- bytecomp/emitcode.mli | 2 +- bytecomp/instruct.ml | 2 +- bytecomp/instruct.mli | 2 +- bytecomp/lambda.ml | 2 +- bytecomp/lambda.mli | 2 +- bytecomp/matching.ml | 2 +- bytecomp/matching.mli | 2 +- bytecomp/meta.ml | 2 +- bytecomp/meta.mli | 2 +- bytecomp/printinstr.ml | 2 +- bytecomp/printinstr.mli | 2 +- bytecomp/printlambda.ml | 2 +- bytecomp/printlambda.mli | 2 +- bytecomp/runtimedef.mli | 2 +- bytecomp/simplif.ml | 2 +- bytecomp/simplif.mli | 2 +- bytecomp/symtable.ml | 16 +- bytecomp/symtable.mli | 2 +- bytecomp/translclass.ml | 2 +- bytecomp/translclass.mli | 2 +- bytecomp/translcore.ml | 2 +- bytecomp/translcore.mli | 2 +- bytecomp/translmod.ml | 2 +- bytecomp/translmod.mli | 2 +- bytecomp/translobj.ml | 2 +- bytecomp/translobj.mli | 2 +- bytecomp/typeopt.ml | 42 +- bytecomp/typeopt.mli | 2 +- byterun/.cvsignore | 2 + byterun/Makefile | 2 +- byterun/Makefile.common | 2 +- byterun/Makefile.nt | 2 +- byterun/alloc.c | 2 +- byterun/alloc.h | 2 +- byterun/array.c | 2 +- byterun/backtrace.c | 9 +- byterun/backtrace.h | 3 +- byterun/callback.c | 2 +- byterun/callback.h | 2 +- byterun/compact.c | 2 +- byterun/compact.h | 2 +- byterun/compare.c | 2 +- byterun/compare.h | 2 +- byterun/compatibility.h | 2 +- byterun/config.h | 2 +- byterun/custom.c | 2 +- byterun/custom.h | 2 +- byterun/debugger.c | 2 +- byterun/debugger.h | 2 +- byterun/dynlink.c | 2 +- byterun/dynlink.h | 2 +- byterun/exec.h | 2 +- byterun/extern.c | 2 +- byterun/fail.c | 2 +- byterun/fail.h | 2 +- byterun/finalise.c | 2 +- byterun/finalise.h | 2 +- byterun/fix_code.c | 2 +- byterun/fix_code.h | 2 +- byterun/floats.c | 2 +- byterun/freelist.c | 2 +- byterun/freelist.h | 2 +- byterun/gc.h | 2 +- byterun/gc_ctrl.c | 6 +- byterun/gc_ctrl.h | 2 +- byterun/globroots.c | 2 +- byterun/globroots.h | 2 +- byterun/hash.c | 2 +- byterun/instrtrace.c | 2 +- byterun/instrtrace.h | 2 +- byterun/instruct.h | 2 +- byterun/int64_emul.h | 2 +- byterun/int64_format.h | 2 +- byterun/int64_native.h | 2 +- byterun/intern.c | 2 +- byterun/interp.c | 2 +- byterun/interp.h | 2 +- byterun/intext.h | 2 +- byterun/ints.c | 2 +- byterun/io.c | 2 +- byterun/io.h | 2 +- byterun/lexing.c | 2 +- byterun/main.c | 2 +- byterun/major_gc.c | 4 +- byterun/major_gc.h | 2 +- byterun/md5.c | 2 +- byterun/md5.h | 2 +- byterun/memory.c | 2 +- byterun/memory.h | 2 +- byterun/meta.c | 2 +- byterun/minor_gc.c | 2 +- byterun/minor_gc.h | 2 +- byterun/misc.c | 2 +- byterun/misc.h | 2 +- byterun/mlvalues.h | 2 +- byterun/obj.c | 6 +- byterun/osdeps.h | 2 +- byterun/parsing.c | 2 +- byterun/prims.h | 2 +- byterun/printexc.c | 2 +- byterun/printexc.h | 2 +- byterun/reverse.h | 2 +- byterun/roots.c | 2 +- byterun/roots.h | 2 +- byterun/signals.c | 2 +- byterun/signals.h | 2 +- byterun/signals_byt.c | 2 +- byterun/signals_machdep.h | 2 +- byterun/stacks.c | 2 +- byterun/stacks.h | 2 +- byterun/startup.c | 34 +- byterun/startup.h | 2 +- byterun/str.c | 2 +- byterun/sys.c | 2 +- byterun/sys.h | 2 +- byterun/terminfo.c | 2 +- byterun/ui.h | 2 +- byterun/unix.c | 2 +- byterun/weak.c | 2 +- byterun/weak.h | 2 +- byterun/win32.c | 2 +- camlp4/Makefile.ml | 2 +- config/Makefile-templ | 12 +- config/Makefile.mingw | 2 +- config/Makefile.msvc | 2 +- config/Makefile.msvc64 | 2 +- config/auto-aux/align.c | 2 +- config/auto-aux/async_io.c | 2 +- config/auto-aux/bytecopy.c | 2 +- config/auto-aux/dblalign.c | 2 +- config/auto-aux/divmod.c | 2 +- config/auto-aux/elf.c | 2 +- config/auto-aux/endian.c | 2 +- config/auto-aux/getgroups.c | 2 +- config/auto-aux/gethostbyaddr.c | 2 +- config/auto-aux/gethostbyname.c | 2 +- config/auto-aux/ia32sse2.c | 2 +- config/auto-aux/int64align.c | 2 +- config/auto-aux/longlong.c | 2 +- config/auto-aux/schar.c | 2 +- config/auto-aux/schar2.c | 2 +- config/auto-aux/sighandler.c | 2 +- config/auto-aux/signals.c | 2 +- config/auto-aux/sizes.c | 2 +- config/auto-aux/stackov.c | 2 +- config/m-nt.h | 2 +- config/m-templ.h | 2 +- config/s-nt.h | 2 +- config/s-templ.h | 2 +- configure | 22 +- debugger/.depend | 24 +- debugger/Makefile | 2 +- debugger/Makefile.nt | 2 +- debugger/Makefile.shared | 6 +- debugger/breakpoints.ml | 2 +- debugger/breakpoints.mli | 2 +- debugger/checkpoints.ml | 2 +- debugger/checkpoints.mli | 2 +- debugger/command_line.ml | 36 +- debugger/command_line.mli | 2 +- debugger/debugcom.ml | 2 +- debugger/debugcom.mli | 2 +- debugger/debugger_config.ml | 2 +- debugger/debugger_config.mli | 2 +- debugger/dynlink.ml | 2 +- debugger/dynlink.mli | 2 +- debugger/envaux.ml | 2 +- debugger/envaux.mli | 2 +- debugger/eval.ml | 2 +- debugger/eval.mli | 2 +- debugger/events.ml | 2 +- debugger/events.mli | 2 +- debugger/exec.ml | 2 +- debugger/exec.mli | 2 +- debugger/frames.ml | 6 +- debugger/frames.mli | 6 +- debugger/history.ml | 2 +- debugger/history.mli | 2 +- debugger/input_handling.ml | 2 +- debugger/input_handling.mli | 2 +- debugger/int64ops.ml | 2 +- debugger/int64ops.mli | 2 +- debugger/lexer.mli | 2 +- debugger/lexer.mll | 2 +- debugger/loadprinter.ml | 2 +- debugger/loadprinter.mli | 2 +- debugger/main.ml | 38 +- debugger/parameters.ml | 2 +- debugger/parameters.mli | 2 +- debugger/parser.mly | 2 +- debugger/parser_aux.mli | 2 +- debugger/pattern_matching.ml | 2 +- debugger/pattern_matching.mli | 2 +- debugger/pos.ml | 2 +- debugger/pos.mli | 2 +- debugger/primitives.ml | 2 +- debugger/primitives.mli | 2 +- debugger/printval.ml | 2 +- debugger/printval.mli | 2 +- debugger/program_loading.ml | 2 +- debugger/program_loading.mli | 2 +- debugger/program_management.ml | 2 +- debugger/program_management.mli | 2 +- debugger/show_information.ml | 11 +- debugger/show_information.mli | 2 +- debugger/show_source.ml | 18 +- debugger/show_source.mli | 2 +- debugger/source.ml | 7 +- debugger/source.mli | 5 +- debugger/symbols.ml | 9 +- debugger/symbols.mli | 2 +- debugger/time_travel.ml | 2 +- debugger/time_travel.mli | 2 +- debugger/trap_barrier.ml | 2 +- debugger/trap_barrier.mli | 2 +- debugger/unix_tools.ml | 2 +- debugger/unix_tools.mli | 2 +- driver/compile.ml | 2 +- driver/compile.mli | 2 +- driver/errors.ml | 2 +- driver/errors.mli | 2 +- driver/main.ml | 2 +- driver/main.mli | 2 +- driver/main_args.ml | 2 +- driver/main_args.mli | 2 +- driver/optcompile.ml | 2 +- driver/optcompile.mli | 2 +- driver/opterrors.ml | 2 +- driver/opterrors.mli | 2 +- driver/optmain.ml | 2 +- driver/optmain.mli | 2 +- driver/pparse.ml | 2 +- driver/pparse.mli | 2 +- emacs/Makefile | 2 +- emacs/README | 2 +- emacs/caml-compat.el | 2 +- emacs/caml-emacs.el | 2 +- emacs/caml-font-old.el | 2 +- emacs/caml-help.el | 2 +- emacs/caml-hilit.el | 2 +- emacs/caml-types.el | 10 +- emacs/caml-xemacs.el | 2 +- emacs/caml.el | 2 +- emacs/camldebug.el | 2 +- emacs/inf-caml.el | 2 +- emacs/ocamltags.in | 4 +- lex/Makefile | 2 +- lex/Makefile.nt | 2 +- lex/compact.ml | 2 +- lex/compact.mli | 2 +- lex/cset.ml | 2 +- lex/cset.mli | 2 +- lex/lexer.mli | 2 +- lex/lexer.mll | 2 +- lex/lexgen.ml | 2 +- lex/lexgen.mli | 2 +- lex/main.ml | 2 +- lex/output.ml | 2 +- lex/output.mli | 2 +- lex/outputbis.ml | 2 +- lex/outputbis.mli | 2 +- lex/parser.mly | 2 +- lex/syntax.ml | 2 +- lex/syntax.mli | 2 +- man/Makefile | 2 +- man/ocaml.m | 2 +- man/ocamlc.m | 2 +- man/ocamlcp.m | 2 +- man/ocamldebug.m | 2 +- man/ocamldep.m | 2 +- man/ocamldoc.m | 2 +- man/ocamllex.m | 2 +- man/ocamlmktop.m | 2 +- man/ocamlopt.m | 2 +- man/ocamlprof.m | 2 +- man/ocamlrun.m | 2 +- man/ocamlyacc.m | 2 +- myocamlbuild.ml | 2 +- myocamlbuild_config.mli | 1 + ocamlbuild/_tags | 2 +- ocamlbuild/command.ml | 2 +- ocamlbuild/ocaml_specific.ml | 5 +- ocamlbuild/ocaml_utils.ml | 5 +- ocamlbuild/ocamlbuild-presentation.rslide | 2 +- ocamlbuild/ocamlbuild_plugin.ml | 1 + ocamlbuild/ocamlbuild_unix_plugin.ml | 1 + ocamlbuild/options.ml | 7 +- ocamlbuild/plugin.ml | 15 +- ocamlbuild/rule.ml | 5 +- ocamlbuild/rule.mli | 1 + ocamlbuild/signatures.mli | 4 + ocamldoc/.cvsignore | 1 + ocamldoc/Makefile | 2 +- ocamldoc/Makefile.nt | 2 +- ocamldoc/odoc.ml | 8 +- ocamldoc/odoc_analyse.ml | 2 +- ocamldoc/odoc_analyse.mli | 2 +- ocamldoc/odoc_args.ml | 2 +- ocamldoc/odoc_args.mli | 2 +- ocamldoc/odoc_ast.ml | 6 +- ocamldoc/odoc_ast.mli | 2 +- ocamldoc/odoc_class.ml | 4 +- ocamldoc/odoc_comments.ml | 2 +- ocamldoc/odoc_comments.mli | 2 +- ocamldoc/odoc_comments_global.ml | 4 +- ocamldoc/odoc_comments_global.mli | 2 +- ocamldoc/odoc_config.ml | 2 +- ocamldoc/odoc_config.mli | 2 +- ocamldoc/odoc_control.ml | 2 +- ocamldoc/odoc_cross.ml | 2 +- ocamldoc/odoc_cross.mli | 2 +- ocamldoc/odoc_dag2html.ml | 2 +- ocamldoc/odoc_dag2html.mli | 2 +- ocamldoc/odoc_dep.ml | 2 +- ocamldoc/odoc_dot.ml | 2 +- ocamldoc/odoc_env.ml | 4 +- ocamldoc/odoc_env.mli | 2 +- ocamldoc/odoc_exception.ml | 2 +- ocamldoc/odoc_global.ml | 2 +- ocamldoc/odoc_global.mli | 2 +- ocamldoc/odoc_html.ml | 2 +- ocamldoc/odoc_info.ml | 2 +- ocamldoc/odoc_info.mli | 2 +- ocamldoc/odoc_inherit.ml | 2 +- ocamldoc/odoc_latex.ml | 2 +- ocamldoc/odoc_latex_style.ml | 2 +- ocamldoc/odoc_lexer.mll | 2 +- ocamldoc/odoc_man.ml | 2 +- ocamldoc/odoc_merge.ml | 2 +- ocamldoc/odoc_merge.mli | 2 +- ocamldoc/odoc_messages.ml | 2 +- ocamldoc/odoc_misc.ml | 2 +- ocamldoc/odoc_misc.mli | 2 +- ocamldoc/odoc_module.ml | 2 +- ocamldoc/odoc_name.ml | 2 +- ocamldoc/odoc_name.mli | 2 +- ocamldoc/odoc_ocamlhtml.mll | 2 +- ocamldoc/odoc_parameter.ml | 2 +- ocamldoc/odoc_parser.mly | 2 +- ocamldoc/odoc_print.ml | 2 +- ocamldoc/odoc_print.mli | 2 +- ocamldoc/odoc_scan.ml | 2 +- ocamldoc/odoc_search.ml | 4 +- ocamldoc/odoc_search.mli | 2 +- ocamldoc/odoc_see_lexer.mll | 2 +- ocamldoc/odoc_sig.ml | 2 +- ocamldoc/odoc_sig.mli | 2 +- ocamldoc/odoc_str.ml | 4 +- ocamldoc/odoc_str.mli | 2 +- ocamldoc/odoc_test.ml | 2 +- ocamldoc/odoc_texi.ml | 2 +- ocamldoc/odoc_text.ml | 2 +- ocamldoc/odoc_text.mli | 2 +- ocamldoc/odoc_text_lexer.mll | 2 +- ocamldoc/odoc_text_parser.mly | 2 +- ocamldoc/odoc_to_text.ml | 2 +- ocamldoc/odoc_type.ml | 2 +- ocamldoc/odoc_types.ml | 2 +- ocamldoc/odoc_types.mli | 2 +- ocamldoc/odoc_value.ml | 2 +- ocamldoc/remove_DEBUG | 5 +- ocamldoc/runocamldoc | 2 +- otherlibs/Makefile | 2 +- otherlibs/Makefile.nt | 2 +- otherlibs/Makefile.shared | 2 +- otherlibs/bigarray/.cvsignore | 2 + otherlibs/bigarray/Makefile | 2 +- otherlibs/bigarray/Makefile.nt | 2 +- otherlibs/bigarray/bigarray.h | 2 +- otherlibs/bigarray/bigarray.ml | 2 +- otherlibs/bigarray/bigarray.mli | 2 +- otherlibs/bigarray/bigarray_stubs.c | 2 +- otherlibs/bigarray/mmap_unix.c | 2 +- otherlibs/bigarray/mmap_win32.c | 2 +- otherlibs/dbm/.cvsignore | 2 + otherlibs/dbm/Makefile | 2 +- otherlibs/dbm/cldbm.c | 2 +- otherlibs/dbm/dbm.ml | 2 +- otherlibs/dbm/dbm.mli | 2 +- otherlibs/dynlink/.cvsignore | 1 + otherlibs/dynlink/Makefile | 2 +- otherlibs/dynlink/Makefile.nt | 2 +- otherlibs/dynlink/dynlink.ml | 2 +- otherlibs/dynlink/dynlink.mli | 2 +- otherlibs/dynlink/extract_crc.ml | 2 +- otherlibs/dynlink/natdynlink.ml | 2 +- otherlibs/graph/.cvsignore | 2 + otherlibs/graph/Makefile | 2 +- otherlibs/graph/color.c | 2 +- otherlibs/graph/draw.c | 2 +- otherlibs/graph/dump_img.c | 2 +- otherlibs/graph/events.c | 2 +- otherlibs/graph/fill.c | 2 +- otherlibs/graph/graphics.ml | 2 +- otherlibs/graph/graphics.mli | 2 +- otherlibs/graph/graphicsX11.ml | 2 +- otherlibs/graph/graphicsX11.mli | 2 +- otherlibs/graph/image.c | 4 +- otherlibs/graph/image.h | 2 +- otherlibs/graph/libgraph.h | 2 +- otherlibs/graph/make_img.c | 2 +- otherlibs/graph/open.c | 2 +- otherlibs/graph/point_col.c | 2 +- otherlibs/graph/sound.c | 2 +- otherlibs/graph/subwindow.c | 2 +- otherlibs/graph/text.c | 2 +- otherlibs/labltk/browser/dummyUnix.mli | 2 +- otherlibs/labltk/browser/dummyWin.mli | 2 +- otherlibs/labltk/browser/editor.ml | 2 +- otherlibs/labltk/browser/editor.mli | 2 +- otherlibs/labltk/browser/fileselect.ml | 2 +- otherlibs/labltk/browser/fileselect.mli | 2 +- otherlibs/labltk/browser/jg_bind.ml | 2 +- otherlibs/labltk/browser/jg_bind.mli | 2 +- otherlibs/labltk/browser/jg_box.ml | 2 +- otherlibs/labltk/browser/jg_button.ml | 2 +- otherlibs/labltk/browser/jg_completion.ml | 2 +- otherlibs/labltk/browser/jg_completion.mli | 2 +- otherlibs/labltk/browser/jg_config.ml | 2 +- otherlibs/labltk/browser/jg_config.mli | 2 +- otherlibs/labltk/browser/jg_entry.ml | 2 +- otherlibs/labltk/browser/jg_memo.ml | 2 +- otherlibs/labltk/browser/jg_memo.mli | 2 +- otherlibs/labltk/browser/jg_menu.ml | 2 +- otherlibs/labltk/browser/jg_message.ml | 2 +- otherlibs/labltk/browser/jg_message.mli | 2 +- otherlibs/labltk/browser/jg_multibox.ml | 2 +- otherlibs/labltk/browser/jg_multibox.mli | 2 +- otherlibs/labltk/browser/jg_text.ml | 2 +- otherlibs/labltk/browser/jg_text.mli | 2 +- otherlibs/labltk/browser/jg_tk.ml | 2 +- otherlibs/labltk/browser/jg_toplevel.ml | 2 +- otherlibs/labltk/browser/lexical.ml | 2 +- otherlibs/labltk/browser/lexical.mli | 2 +- otherlibs/labltk/browser/list2.ml | 2 +- otherlibs/labltk/browser/main.ml | 2 +- otherlibs/labltk/browser/mytypes.mli | 2 +- otherlibs/labltk/browser/searchid.ml | 2 +- otherlibs/labltk/browser/searchid.mli | 2 +- otherlibs/labltk/browser/searchpos.ml | 2 +- otherlibs/labltk/browser/searchpos.mli | 2 +- otherlibs/labltk/browser/setpath.ml | 2 +- otherlibs/labltk/browser/setpath.mli | 2 +- otherlibs/labltk/browser/shell.ml | 2 +- otherlibs/labltk/browser/shell.mli | 2 +- otherlibs/labltk/browser/typecheck.ml | 2 +- otherlibs/labltk/browser/typecheck.mli | 2 +- otherlibs/labltk/browser/useunix.ml | 2 +- otherlibs/labltk/browser/useunix.mli | 2 +- otherlibs/labltk/browser/viewer.ml | 2 +- otherlibs/labltk/browser/viewer.mli | 2 +- otherlibs/labltk/builtin/LICENSE | 2 +- otherlibs/labltk/compiler/compile.ml | 2 +- otherlibs/labltk/compiler/intf.ml | 2 +- otherlibs/labltk/compiler/lexer.mll | 2 +- otherlibs/labltk/compiler/maincompile.ml | 2 +- otherlibs/labltk/compiler/parser.mly | 2 +- otherlibs/labltk/compiler/tables.ml | 2 +- otherlibs/labltk/compiler/tsort.ml | 2 +- otherlibs/labltk/examples_labltk/README | 2 +- otherlibs/labltk/examples_labltk/calc.ml | 2 +- otherlibs/labltk/examples_labltk/clock.ml | 2 +- otherlibs/labltk/examples_labltk/demo.ml | 2 +- otherlibs/labltk/examples_labltk/eyes.ml | 2 +- otherlibs/labltk/examples_labltk/hello.ml | 2 +- otherlibs/labltk/examples_labltk/taquin.ml | 2 +- otherlibs/labltk/examples_labltk/tetris.ml | 2 +- otherlibs/labltk/frx/.cvsignore | 1 + otherlibs/labltk/frx/frx_entry.ml | 2 +- otherlibs/labltk/frx/frx_fileinput.ml | 2 +- otherlibs/labltk/frx/frx_font.ml | 2 +- otherlibs/labltk/frx/frx_lbutton.ml | 2 +- otherlibs/labltk/frx/frx_listbox.ml | 2 +- otherlibs/labltk/frx/frx_req.ml | 2 +- otherlibs/labltk/frx/frx_text.ml | 2 +- otherlibs/labltk/frx/frx_widget.ml | 2 +- otherlibs/labltk/jpf/.cvsignore | 1 + otherlibs/labltk/jpf/balloon.ml | 2 +- otherlibs/labltk/jpf/balloon.mli | 2 +- otherlibs/labltk/jpf/balloontest.ml | 2 +- otherlibs/labltk/jpf/fileselect.ml | 2 +- otherlibs/labltk/jpf/fileselect.mli | 2 +- otherlibs/labltk/lib/.cvsignore | 2 +- otherlibs/labltk/support/.cvsignore | 2 + otherlibs/labltk/support/camltk.h | 2 +- otherlibs/labltk/support/cltkCaml.c | 2 +- otherlibs/labltk/support/cltkDMain.c | 2 +- otherlibs/labltk/support/cltkEval.c | 2 +- otherlibs/labltk/support/cltkEvent.c | 2 +- otherlibs/labltk/support/cltkFile.c | 2 +- otherlibs/labltk/support/cltkMain.c | 2 +- otherlibs/labltk/support/cltkMisc.c | 2 +- otherlibs/labltk/support/cltkTimer.c | 2 +- otherlibs/labltk/support/cltkUtf.c | 2 +- otherlibs/labltk/support/cltkVar.c | 2 +- otherlibs/labltk/support/cltkWait.c | 2 +- otherlibs/labltk/support/fileevent.ml | 2 +- otherlibs/labltk/support/fileevent.mli | 2 +- otherlibs/labltk/support/protocol.ml | 2 +- otherlibs/labltk/support/protocol.mli | 2 +- otherlibs/labltk/support/rawwidget.ml | 2 +- otherlibs/labltk/support/rawwidget.mli | 2 +- otherlibs/labltk/support/slave.ml | 2 +- otherlibs/labltk/support/support.ml | 2 +- otherlibs/labltk/support/support.mli | 2 +- otherlibs/labltk/support/textvariable.ml | 2 +- otherlibs/labltk/support/textvariable.mli | 2 +- otherlibs/labltk/support/timer.ml | 2 +- otherlibs/labltk/support/timer.mli | 2 +- otherlibs/labltk/support/tkthread.ml | 2 +- otherlibs/labltk/support/tkthread.mli | 2 +- otherlibs/labltk/support/tkwait.ml | 2 +- otherlibs/labltk/support/widget.ml | 2 +- otherlibs/labltk/support/widget.mli | 2 +- otherlibs/labltk/tkanim/.cvsignore | 2 + otherlibs/num/.cvsignore | 2 + otherlibs/num/Makefile | 2 +- otherlibs/num/Makefile.nt | 2 +- otherlibs/num/arith_flags.ml | 2 +- otherlibs/num/arith_flags.mli | 2 +- otherlibs/num/arith_status.ml | 2 +- otherlibs/num/arith_status.mli | 2 +- otherlibs/num/big_int.ml | 2 +- otherlibs/num/big_int.mli | 2 +- otherlibs/num/bng.c | 2 +- otherlibs/num/bng.h | 2 +- otherlibs/num/bng_alpha.c | 2 +- otherlibs/num/bng_amd64.c | 2 +- otherlibs/num/bng_digit.c | 2 +- otherlibs/num/bng_ia32.c | 2 +- otherlibs/num/bng_mips.c | 2 +- otherlibs/num/bng_ppc.c | 2 +- otherlibs/num/bng_sparc.c | 2 +- otherlibs/num/int_misc.ml | 2 +- otherlibs/num/int_misc.mli | 2 +- otherlibs/num/nat.h | 2 +- otherlibs/num/nat.ml | 2 +- otherlibs/num/nat.mli | 2 +- otherlibs/num/nat_stubs.c | 16 +- otherlibs/num/num.ml | 2 +- otherlibs/num/num.mli | 2 +- otherlibs/num/ratio.mli | 2 +- otherlibs/num/test/Makefile | 2 +- otherlibs/num/test/Makefile.nt | 2 +- otherlibs/num/test/test_bng.c | 2 +- otherlibs/str/.cvsignore | 2 + otherlibs/str/Makefile | 2 +- otherlibs/str/Makefile.nt | 2 +- otherlibs/str/str.ml | 2 +- otherlibs/str/str.mli | 2 +- otherlibs/str/strstubs.c | 2 +- otherlibs/systhreads/.cvsignore | 2 + otherlibs/systhreads/Makefile | 2 +- otherlibs/systhreads/Makefile.nt | 2 +- otherlibs/systhreads/condition.ml | 2 +- otherlibs/systhreads/condition.mli | 2 +- otherlibs/systhreads/event.ml | 2 +- otherlibs/systhreads/event.mli | 2 +- otherlibs/systhreads/mutex.ml | 2 +- otherlibs/systhreads/mutex.mli | 2 +- otherlibs/systhreads/posix.c | 2 +- otherlibs/systhreads/thread.mli | 2 +- otherlibs/systhreads/threadUnix.ml | 2 +- otherlibs/systhreads/threadUnix.mli | 2 +- otherlibs/systhreads/thread_posix.ml | 2 +- otherlibs/systhreads/thread_win32.ml | 2 +- otherlibs/systhreads/win32.c | 2 +- otherlibs/threads/.cvsignore | 2 + otherlibs/threads/Makefile | 2 +- otherlibs/threads/condition.ml | 2 +- otherlibs/threads/condition.mli | 2 +- otherlibs/threads/event.ml | 2 +- otherlibs/threads/event.mli | 2 +- otherlibs/threads/marshal.ml | 2 +- otherlibs/threads/mutex.ml | 2 +- otherlibs/threads/mutex.mli | 2 +- otherlibs/threads/pervasives.ml | 2 +- otherlibs/threads/scheduler.c | 2 +- otherlibs/threads/thread.ml | 2 +- otherlibs/threads/thread.mli | 2 +- otherlibs/threads/threadUnix.ml | 2 +- otherlibs/threads/threadUnix.mli | 2 +- otherlibs/threads/unix.ml | 2 +- otherlibs/unix/.cvsignore | 2 + otherlibs/unix/Makefile | 2 +- otherlibs/unix/accept.c | 2 +- otherlibs/unix/access.c | 2 +- otherlibs/unix/addrofstr.c | 2 +- otherlibs/unix/alarm.c | 2 +- otherlibs/unix/bind.c | 2 +- otherlibs/unix/chdir.c | 2 +- otherlibs/unix/chmod.c | 2 +- otherlibs/unix/chown.c | 2 +- otherlibs/unix/chroot.c | 2 +- otherlibs/unix/close.c | 2 +- otherlibs/unix/closedir.c | 2 +- otherlibs/unix/connect.c | 2 +- otherlibs/unix/cst2constr.c | 2 +- otherlibs/unix/cst2constr.h | 2 +- otherlibs/unix/cstringv.c | 2 +- otherlibs/unix/dup.c | 2 +- otherlibs/unix/dup2.c | 2 +- otherlibs/unix/envir.c | 2 +- otherlibs/unix/errmsg.c | 2 +- otherlibs/unix/execv.c | 2 +- otherlibs/unix/execve.c | 2 +- otherlibs/unix/execvp.c | 2 +- otherlibs/unix/exit.c | 2 +- otherlibs/unix/fchmod.c | 2 +- otherlibs/unix/fchown.c | 2 +- otherlibs/unix/fcntl.c | 2 +- otherlibs/unix/fork.c | 2 +- otherlibs/unix/ftruncate.c | 2 +- otherlibs/unix/getaddrinfo.c | 2 +- otherlibs/unix/getcwd.c | 2 +- otherlibs/unix/getegid.c | 2 +- otherlibs/unix/geteuid.c | 2 +- otherlibs/unix/getgid.c | 2 +- otherlibs/unix/getgr.c | 2 +- otherlibs/unix/getgroups.c | 2 +- otherlibs/unix/gethost.c | 2 +- otherlibs/unix/gethostname.c | 2 +- otherlibs/unix/getlogin.c | 2 +- otherlibs/unix/getnameinfo.c | 2 +- otherlibs/unix/getpeername.c | 2 +- otherlibs/unix/getpid.c | 2 +- otherlibs/unix/getppid.c | 2 +- otherlibs/unix/getproto.c | 2 +- otherlibs/unix/getpw.c | 2 +- otherlibs/unix/getserv.c | 2 +- otherlibs/unix/getsockname.c | 2 +- otherlibs/unix/gettimeofday.c | 2 +- otherlibs/unix/getuid.c | 2 +- otherlibs/unix/gmtime.c | 2 +- otherlibs/unix/isatty.c | 2 +- otherlibs/unix/itimer.c | 2 +- otherlibs/unix/kill.c | 2 +- otherlibs/unix/link.c | 2 +- otherlibs/unix/listen.c | 2 +- otherlibs/unix/lockf.c | 2 +- otherlibs/unix/lseek.c | 2 +- otherlibs/unix/mkdir.c | 2 +- otherlibs/unix/mkfifo.c | 2 +- otherlibs/unix/nice.c | 2 +- otherlibs/unix/open.c | 2 +- otherlibs/unix/opendir.c | 2 +- otherlibs/unix/pipe.c | 2 +- otherlibs/unix/putenv.c | 2 +- otherlibs/unix/read.c | 2 +- otherlibs/unix/readdir.c | 2 +- otherlibs/unix/readlink.c | 2 +- otherlibs/unix/rename.c | 2 +- otherlibs/unix/rewinddir.c | 2 +- otherlibs/unix/rmdir.c | 2 +- otherlibs/unix/select.c | 2 +- otherlibs/unix/sendrecv.c | 2 +- otherlibs/unix/setgid.c | 2 +- otherlibs/unix/setsid.c | 2 +- otherlibs/unix/setuid.c | 2 +- otherlibs/unix/shutdown.c | 2 +- otherlibs/unix/signals.c | 2 +- otherlibs/unix/sleep.c | 2 +- otherlibs/unix/socket.c | 2 +- otherlibs/unix/socketaddr.c | 8 +- otherlibs/unix/socketaddr.h | 2 +- otherlibs/unix/socketpair.c | 2 +- otherlibs/unix/sockopt.c | 2 +- otherlibs/unix/stat.c | 2 +- otherlibs/unix/strofaddr.c | 2 +- otherlibs/unix/symlink.c | 2 +- otherlibs/unix/termios.c | 2 +- otherlibs/unix/time.c | 2 +- otherlibs/unix/times.c | 2 +- otherlibs/unix/truncate.c | 2 +- otherlibs/unix/umask.c | 2 +- otherlibs/unix/unix.ml | 2 +- otherlibs/unix/unix.mli | 2 +- otherlibs/unix/unixLabels.ml | 2 +- otherlibs/unix/unixLabels.mli | 2 +- otherlibs/unix/unixsupport.c | 2 +- otherlibs/unix/unixsupport.h | 2 +- otherlibs/unix/unlink.c | 2 +- otherlibs/unix/utimes.c | 2 +- otherlibs/unix/wait.c | 2 +- otherlibs/unix/write.c | 2 +- otherlibs/win32graph/Makefile.nt | 2 +- otherlibs/win32graph/dib.c | 2 +- otherlibs/win32graph/draw.c | 2 +- otherlibs/win32graph/events.c | 2 +- otherlibs/win32graph/libgraph.h | 2 +- otherlibs/win32graph/open.c | 2 +- otherlibs/win32unix/Makefile.nt | 2 +- otherlibs/win32unix/accept.c | 2 +- otherlibs/win32unix/bind.c | 2 +- otherlibs/win32unix/channels.c | 7 +- otherlibs/win32unix/close.c | 2 +- otherlibs/win32unix/close_on.c | 2 +- otherlibs/win32unix/connect.c | 2 +- otherlibs/win32unix/createprocess.c | 2 +- otherlibs/win32unix/dup.c | 2 +- otherlibs/win32unix/dup2.c | 2 +- otherlibs/win32unix/errmsg.c | 2 +- otherlibs/win32unix/getpeername.c | 2 +- otherlibs/win32unix/getpid.c | 2 +- otherlibs/win32unix/getsockname.c | 2 +- otherlibs/win32unix/gettimeofday.c | 2 +- otherlibs/win32unix/link.c | 2 +- otherlibs/win32unix/listen.c | 2 +- otherlibs/win32unix/lockf.c | 2 +- otherlibs/win32unix/lseek.c | 2 +- otherlibs/win32unix/mkdir.c | 2 +- otherlibs/win32unix/nonblock.c | 84 ++-- otherlibs/win32unix/open.c | 2 +- otherlibs/win32unix/pipe.c | 2 +- otherlibs/win32unix/read.c | 2 +- otherlibs/win32unix/rename.c | 2 +- otherlibs/win32unix/select.c | 2 +- otherlibs/win32unix/sendrecv.c | 2 +- otherlibs/win32unix/shutdown.c | 2 +- otherlibs/win32unix/sleep.c | 2 +- otherlibs/win32unix/socket.c | 2 +- otherlibs/win32unix/socketaddr.h | 2 +- otherlibs/win32unix/sockopt.c | 2 +- otherlibs/win32unix/stat.c | 2 +- otherlibs/win32unix/system.c | 2 +- otherlibs/win32unix/unix.ml | 2 +- otherlibs/win32unix/unixsupport.c | 5 +- otherlibs/win32unix/unixsupport.h | 4 +- otherlibs/win32unix/windbug.c | 2 +- otherlibs/win32unix/windbug.h | 2 +- otherlibs/win32unix/windir.c | 2 +- otherlibs/win32unix/winlist.c | 2 +- otherlibs/win32unix/winlist.h | 2 +- otherlibs/win32unix/winwait.c | 2 +- otherlibs/win32unix/winworker.c | 2 +- otherlibs/win32unix/winworker.h | 2 +- otherlibs/win32unix/write.c | 4 +- parsing/asttypes.mli | 2 +- parsing/lexer.mli | 2 +- parsing/lexer.mll | 2 +- parsing/linenum.mli | 2 +- parsing/linenum.mll | 2 +- parsing/location.ml | 2 +- parsing/location.mli | 2 +- parsing/longident.ml | 2 +- parsing/longident.mli | 2 +- parsing/parse.ml | 2 +- parsing/parse.mli | 2 +- parsing/parser.mly | 8 +- parsing/parsetree.mli | 2 +- parsing/printast.ml | 2 +- parsing/printast.mli | 2 +- parsing/syntaxerr.ml | 2 +- parsing/syntaxerr.mli | 2 +- stdlib/.cvsignore | 1 + stdlib/.depend | 14 +- stdlib/Compflags | 2 +- stdlib/Makefile | 2 +- stdlib/Makefile.nt | 2 +- stdlib/Makefile.shared | 2 +- stdlib/StdlibModules | 2 +- stdlib/arg.ml | 2 +- stdlib/arg.mli | 2 +- stdlib/array.ml | 2 +- stdlib/array.mli | 2 +- stdlib/arrayLabels.ml | 2 +- stdlib/arrayLabels.mli | 2 +- stdlib/buffer.ml | 10 +- stdlib/buffer.mli | 11 +- stdlib/callback.ml | 2 +- stdlib/callback.mli | 2 +- stdlib/camlinternalLazy.ml | 2 +- stdlib/camlinternalLazy.mli | 2 +- stdlib/camlinternalMod.ml | 2 +- stdlib/camlinternalMod.mli | 2 +- stdlib/camlinternalOO.ml | 2 +- stdlib/camlinternalOO.mli | 2 +- stdlib/char.ml | 2 +- stdlib/char.mli | 2 +- stdlib/complex.ml | 2 +- stdlib/complex.mli | 2 +- stdlib/digest.ml | 2 +- stdlib/digest.mli | 2 +- stdlib/filename.ml | 14 +- stdlib/filename.mli | 11 +- stdlib/format.ml | 2 +- stdlib/format.mli | 130 +++--- stdlib/gc.ml | 2 +- stdlib/gc.mli | 2 +- stdlib/genlex.ml | 2 +- stdlib/genlex.mli | 2 +- stdlib/hashtbl.ml | 2 +- stdlib/hashtbl.mli | 2 +- stdlib/header.c | 2 +- stdlib/headernt.c | 2 +- stdlib/int32.ml | 2 +- stdlib/int32.mli | 2 +- stdlib/int64.ml | 2 +- stdlib/int64.mli | 2 +- stdlib/lazy.ml | 2 +- stdlib/lazy.mli | 2 +- stdlib/lexing.ml | 2 +- stdlib/lexing.mli | 2 +- stdlib/list.ml | 2 +- stdlib/list.mli | 2 +- stdlib/listLabels.ml | 2 +- stdlib/listLabels.mli | 2 +- stdlib/map.ml | 2 +- stdlib/map.mli | 2 +- stdlib/marshal.ml | 2 +- stdlib/marshal.mli | 2 +- stdlib/moreLabels.ml | 2 +- stdlib/moreLabels.mli | 2 +- stdlib/nativeint.ml | 2 +- stdlib/nativeint.mli | 2 +- stdlib/obj.ml | 5 +- stdlib/obj.mli | 7 +- stdlib/oo.ml | 2 +- stdlib/oo.mli | 2 +- stdlib/parsing.ml | 2 +- stdlib/parsing.mli | 2 +- stdlib/pervasives.ml | 7 +- stdlib/pervasives.mli | 16 +- stdlib/printexc.ml | 19 +- stdlib/printexc.mli | 12 +- stdlib/printf.ml | 54 +-- stdlib/printf.mli | 3 +- stdlib/queue.ml | 2 +- stdlib/queue.mli | 2 +- stdlib/random.ml | 2 +- stdlib/random.mli | 2 +- stdlib/scanf.ml | 270 ++++++----- stdlib/scanf.mli | 26 +- stdlib/set.ml | 2 +- stdlib/set.mli | 2 +- stdlib/sort.ml | 2 +- stdlib/sort.mli | 2 +- stdlib/stack.ml | 2 +- stdlib/stack.mli | 2 +- stdlib/stdLabels.ml | 2 +- stdlib/stdLabels.mli | 2 +- stdlib/std_exit.ml | 2 +- stdlib/stdlib.mllib | 69 +-- stdlib/stream.ml | 2 +- stdlib/stream.mli | 2 +- stdlib/string.ml | 2 +- stdlib/string.mli | 2 +- stdlib/stringLabels.ml | 2 +- stdlib/stringLabels.mli | 2 +- stdlib/sys.mli | 2 +- stdlib/sys.mlp | 2 +- stdlib/weak.ml | 2 +- stdlib/weak.mli | 2 +- tools/Characters | 2 +- tools/DoMake | 2 +- tools/MakeDepend | 2 +- tools/Makefile | 2 +- tools/Makefile.nt | 2 +- tools/Makefile.shared | 2 +- tools/addlabels.ml | 2 +- tools/checkstack.c | 2 +- tools/cvt_emit.mll | 2 +- tools/depend.ml | 2 +- tools/depend.mli | 2 +- tools/dumpapprox.ml | 2 +- tools/dumpobj.ml | 2 +- tools/keywords.r | 2 +- tools/lexer299.mll | 2 +- tools/lexer301.mll | 2 +- tools/make-package-macosx | 2 +- tools/objinfo.ml | 2 +- tools/ocaml-objcopy-macosx | 2 +- tools/ocaml299to3.ml | 2 +- tools/ocamlcp.ml | 2 +- tools/ocamldep.ml | 2 +- tools/ocamlmklib.mlp | 15 +- tools/ocamlmktop.ml | 2 +- tools/ocamlmktop.tpl | 2 +- tools/ocamlprof.ml | 2 +- tools/primreq.ml | 2 +- tools/profiling.ml | 2 +- tools/profiling.mli | 2 +- tools/scrapelabels.ml | 2 +- toplevel/expunge.ml | 2 +- toplevel/genprintval.ml | 2 +- toplevel/genprintval.mli | 2 +- toplevel/opttopdirs.ml | 2 +- toplevel/opttopdirs.mli | 2 +- toplevel/opttoploop.ml | 2 +- toplevel/opttoploop.mli | 2 +- toplevel/opttopmain.ml | 2 +- toplevel/opttopmain.mli | 2 +- toplevel/opttopstart.ml | 2 +- toplevel/topdirs.ml | 2 +- toplevel/topdirs.mli | 2 +- toplevel/toploop.ml | 2 +- toplevel/toploop.mli | 2 +- toplevel/topmain.ml | 2 +- toplevel/topmain.mli | 2 +- toplevel/topstart.ml | 2 +- toplevel/trace.ml | 2 +- toplevel/trace.mli | 2 +- typing/annot.mli | 2 +- typing/btype.ml | 2 +- typing/btype.mli | 2 +- typing/ctype.ml | 71 +-- typing/ctype.mli | 2 +- typing/datarepr.ml | 2 +- typing/datarepr.mli | 2 +- typing/env.ml | 2 +- typing/env.mli | 2 +- typing/ident.ml | 2 +- typing/ident.mli | 2 +- typing/includeclass.ml | 2 +- typing/includeclass.mli | 2 +- typing/includecore.ml | 5 +- typing/includecore.mli | 2 +- typing/includemod.ml | 2 +- typing/includemod.mli | 2 +- typing/mtype.ml | 2 +- typing/mtype.mli | 2 +- typing/oprint.ml | 2 +- typing/oprint.mli | 2 +- typing/outcometree.mli | 2 +- typing/parmatch.ml | 2 +- typing/parmatch.mli | 2 +- typing/path.ml | 2 +- typing/path.mli | 2 +- typing/predef.ml | 2 +- typing/predef.mli | 2 +- typing/primitive.ml | 2 +- typing/primitive.mli | 2 +- typing/printtyp.ml | 2 +- typing/printtyp.mli | 2 +- typing/stypes.ml | 2 +- typing/stypes.mli | 2 +- typing/subst.ml | 2 +- typing/subst.mli | 2 +- typing/typeclass.ml | 2 +- typing/typeclass.mli | 2 +- typing/typecore.ml | 4 +- typing/typecore.mli | 2 +- typing/typedecl.ml | 2 +- typing/typedecl.mli | 2 +- typing/typedtree.ml | 2 +- typing/typedtree.mli | 2 +- typing/typemod.ml | 2 +- typing/typemod.mli | 2 +- typing/types.ml | 2 +- typing/types.mli | 2 +- typing/typetexp.ml | 13 +- typing/typetexp.mli | 3 +- typing/unused_var.ml | 2 +- typing/unused_var.mli | 2 +- utils/ccomp.ml | 2 +- utils/ccomp.mli | 2 +- utils/clflags.ml | 2 +- utils/clflags.mli | 2 +- utils/config.mlbuild | 2 +- utils/config.mli | 2 +- utils/config.mlp | 2 +- utils/consistbl.ml | 2 +- utils/consistbl.mli | 2 +- utils/misc.ml | 2 +- utils/misc.mli | 2 +- utils/tbl.ml | 2 +- utils/tbl.mli | 2 +- utils/terminfo.ml | 2 +- utils/terminfo.mli | 2 +- utils/warnings.ml | 2 +- utils/warnings.mli | 2 +- win32caml/Makefile | 2 +- win32caml/editbuffer.h | 26 +- win32caml/inria.h | 2 +- win32caml/libgraph.h | 2 +- win32caml/menu.c | 56 +-- win32caml/ocaml.c | 2 +- win32caml/ocaml.rc | 510 ++++++++++----------- win32caml/resource.h | 32 +- win32caml/startocaml.c | 2 +- yacc/Makefile | 2 +- yacc/Makefile.nt | 2 +- yacc/closure.c | 2 +- yacc/defs.h | 2 +- yacc/error.c | 2 +- yacc/lalr.c | 2 +- yacc/lr0.c | 2 +- yacc/main.c | 2 +- yacc/mkpar.c | 2 +- yacc/output.c | 2 +- yacc/reader.c | 2 +- yacc/skeleton.c | 2 +- yacc/symtab.c | 2 +- yacc/verbose.c | 2 +- yacc/warshall.c | 2 +- 1182 files changed, 2446 insertions(+), 2023 deletions(-) create mode 100644 otherlibs/labltk/frx/.cvsignore create mode 100644 otherlibs/labltk/jpf/.cvsignore create mode 100644 otherlibs/labltk/support/.cvsignore diff --git a/Changes b/Changes index 336cf397..ac97c784 100644 --- a/Changes +++ b/Changes @@ -1,3 +1,47 @@ +Objective Caml 3.11.2: +---------------------- + +Bug fixes: +- PR#4151: better documentation for min and max w.r.t. NaN +- PR#4421: ocamlbuild uses wrong compiler for C files +- 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#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 +- PR#4818: missed opportunity for type-based optimization of bigarray accesses +- PR#4821: check for duplicate method names in classes +- PR#4823: build problem on Mac OS X +- PR#4836: spurious errors raised by Unix.single_write under Windows +- PR#4841, PR#4860, PR#4930: problem with ocamlopt -output-obj under Mac OS X +- PR#4847: C compiler error with ocamlc -output-obj under Win64 +- PR#4856: ocamlbuild uses ocamlrun to execute a native plugin +- PR#4867, PR#4760: ocamlopt -shared fails on Mac OS X 64bit +- PR#4873: ocamlbuild ignores "thread" tag when building a custom toplevel +- PR#4890: ocamlbuild tries to use native plugin on bytecode-only arch +- PR#4896: ocamlbuild should always pass -I to tools for external libraries +- PR#4900: small bug triggering automatic compaction even if max_overhead = 1M +- PR#4902: bug in %.0F printf format +- PR#4910: problem with format concatenation +- PR#4922: ocamlbuild recompiles too many files +- PR#4923: missing \xff for scanf %S +- PR#4933: functors not handling private types correctly +- Module Printf: the simple conversion %F (without width indication) was not + treated properly. +- Makefile: problem with cygwin, flexdll, and symbolic links + +Feature wishes: +- PR#9: (tentative implementation) make ocamldebug use #linenum annotations +- PR#123, PR#4477: custom exception printers +- PR#3456: Obj.double_field and Obj.set_double_field functions +- PR#4003: destination directory can be given to Filename.[open_]temp_file +- PR#4647: Buffer.blit function +- PR#4685: access to Filename.dir_sep +- PR#4703: support for debugging embedded applications +- PR#4723: "clear_rules" function to empty the set of ocamlbuild rules +- PR#4921: configure option to help cross-compilers + Objective Caml 3.11.1: ---------------------- @@ -53,6 +97,7 @@ Other changes: (contributed by Jonathan Davies, Citrix). - Support for 64-bit mode in Solaris/x86 (PR#4670). + Objective Caml 3.11.0: ---------------------- @@ -201,6 +246,7 @@ Bug fixes: - Small bugs in the make-package-macosx script - Bug in typing of polymorphic variants (reported on caml-list) + Objective Caml 3.10.1: ---------------------- @@ -2442,4 +2488,4 @@ Caml Special Light 1.06: * First public release. -$Id: Changes,v 1.183.2.18 2009/06/12 11:58:19 doligez Exp $ +$Id: Changes 9482 2009-12-22 13:32:12Z doligez $ diff --git a/INSTALL b/INSTALL index cdb3436f..ad24f4af 100644 --- a/INSTALL +++ b/INSTALL @@ -109,7 +109,7 @@ The "configure" script accepts the following options: -as (default: determined automatically) The assembler to use for assembling ocamlopt-generated code. --aspp (default: determined automatically> +-aspp (default: determined automatically) The assembler to use for assembling the parts of the run-time system manually written in assembly language. This assembler must preprocess its input with the C preprocessor. @@ -126,10 +126,13 @@ Examples: Installation in /usr, man pages in section "l": ./configure -bindir /usr/bin -libdir /usr/lib/ocaml -mandir /usr/man/manl - On a MacOSX/Intel Core 2 or MacOSX/PowerPC host, to build a 64-bit version - of OCaml: + On a MacOSX 10.5/Intel Core 2 or MacOSX 10.5/PowerPC host, + to build a 64-bit version of OCaml: ./configure -cc "gcc -m64" + On a MacOSX 10.6/Intel Core 2, to build a 32-bit version of OCaml: + ./configure -cc "gcc -m32" -as "as -arch i386" -aspp "gcc -m32 -c" + On a Linux x86/64 bits host, to build a 32-bit version of OCaml: ./configure -cc "gcc -m32" -as "as --32" -aspp "gcc -m32 -c" @@ -188,9 +191,9 @@ or: make opt > log.opt 2>&1 # in sh make opt >& log.opt # in csh -5- (Optional) If you want to compile fast versions of the Objective -Caml compilers, you can compile them with the native-code compiler -(they are compiled to bytecode by default). Just do: +5- Compile fast versions of the Objective Caml compilers, by +compiling them with the native-code compiler (you have only compiled +them to bytecode so far). Just do: make opt.opt diff --git a/Makefile b/Makefile index c33a2686..80c68242 100644 --- a/Makefile +++ b/Makefile @@ -10,7 +10,7 @@ # # ######################################################################### -# $Id: Makefile,v 1.222.2.3 2009/05/19 14:46:13 doligez Exp $ +# $Id: Makefile 9480 2009-12-18 23:04:13Z doligez $ # The main Makefile @@ -567,10 +567,11 @@ alldepend:: # The runtime system for the native-code compiler -runtimeopt: +runtimeopt: makeruntimeopt + cp asmrun/libasmrun.a stdlib/libasmrun.a + +makeruntimeopt: cd asmrun; $(MAKE) all - if test -f stdlib/libasmrun.a; then :; else \ - ln -s ../asmrun/libasmrun.a stdlib/libasmrun.a; fi clean:: cd asmrun; $(MAKE) clean @@ -762,6 +763,6 @@ distclean: .PHONY: ocamldoc.opt ocamllex ocamllex.opt ocamltools ocamltools.opt .PHONY: ocamlyacc opt-core opt opt.opt otherlibraries .PHONY: otherlibrariesopt package-macosx promote promote-cross -.PHONY: restore runtime runtimeopt world world.opt +.PHONY: restore runtime runtimeopt makeruntimeopt world world.opt include .depend diff --git a/Makefile.nt b/Makefile.nt index 4a605139..a157fbf1 100644 --- a/Makefile.nt +++ b/Makefile.nt @@ -10,7 +10,7 @@ # # ######################################################################### -# $Id: Makefile.nt,v 1.113.2.1 2008/11/10 16:13:20 ertai Exp $ +# $Id: Makefile.nt 9127 2008-11-10 16:13:20Z ertai $ # The main Makefile diff --git a/README b/README index aa54cbea..5252ab87 100644 --- a/README +++ b/README @@ -135,4 +135,4 @@ You can also contact the implementors directly at caml@inria.fr. ---- -$Id: README,v 1.44.14.1 2008/12/02 17:11:22 xleroy Exp $ +$Id: README 9146 2008-12-02 17:11:22Z xleroy $ diff --git a/VERSION b/VERSION index 24c85956..7798db3f 100644 --- a/VERSION +++ b/VERSION @@ -1,6 +1,6 @@ -3.11.1 +3.11.2+rc1 # 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.19 2009/06/12 11:58:19 doligez Exp $ +# $Id: VERSION 9500 2009-12-28 13:13:23Z doligez $ diff --git a/_tags b/_tags index 37ba928e..bb10f436 100644 --- a/_tags +++ b/_tags @@ -55,6 +55,7 @@ true: use_stdlib or : ocamlmklib : ocamlmklib : ocamlmklib +"otherlibs/threads/unix.cma": ocamlmklib : ocamlmklib : include_unix @@ -70,6 +71,7 @@ true: use_stdlib : otherlibs_bigarray : otherlibs_num : otherlibs_threads +"otherlibs/threads/unix.cma": -otherlibs_threads : otherlibs_systhreads : otherlibs_dbm : otherlibs_graph diff --git a/asmcomp/alpha/arch.ml b/asmcomp/alpha/arch.ml index 46eae60d..773397c1 100644 --- a/asmcomp/alpha/arch.ml +++ b/asmcomp/alpha/arch.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: arch.ml,v 1.10 2002/11/29 15:03:36 xleroy Exp $ *) +(* $Id: arch.ml 5304 2002-11-29 15:03:37Z xleroy $ *) (* Specific operations for the Alpha processor *) diff --git a/asmcomp/alpha/emit.mlp b/asmcomp/alpha/emit.mlp index 3ef5cd45..aa6003ac 100644 --- a/asmcomp/alpha/emit.mlp +++ b/asmcomp/alpha/emit.mlp @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: emit.mlp,v 1.42 2006/04/16 23:28:14 doligez Exp $ *) +(* $Id: emit.mlp 9314 2009-07-15 12:14:39Z xleroy $ *) module LabelSet = Set.Make(struct type t = Linearize.label let compare = compare end) @@ -793,9 +793,9 @@ let emit_item = function long decimal constants *) ` .quad 0x{emit_string(Nativeint.format "%x" n)}\n` | Csingle f -> - ` .float {emit_string f}\n` + emit_float32_directive ".long" f | Cdouble f -> - ` .double {emit_string f}\n` + emit_float64_directive ".quad" f | Csymbol_address s -> ` .quad {emit_symbol s}\n` | Clabel_address lbl -> diff --git a/asmcomp/alpha/proc.ml b/asmcomp/alpha/proc.ml index 2688b146..9d894358 100644 --- a/asmcomp/alpha/proc.ml +++ b/asmcomp/alpha/proc.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: proc.ml,v 1.7 2007/10/30 12:37:16 xleroy Exp $ *) +(* $Id: proc.ml 8462 2007-10-30 12:37:16Z xleroy $ *) (* Description of the Alpha processor *) diff --git a/asmcomp/alpha/reload.ml b/asmcomp/alpha/reload.ml index 17f0a371..e95a9909 100644 --- a/asmcomp/alpha/reload.ml +++ b/asmcomp/alpha/reload.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: reload.ml,v 1.3 1999/11/17 18:56:40 xleroy Exp $ *) +(* $Id: reload.ml 2553 1999-11-17 18:59:06Z xleroy $ *) (* Reloading for the Alpha *) diff --git a/asmcomp/alpha/scheduling.ml b/asmcomp/alpha/scheduling.ml index 47a6b92d..3f6ca8af 100644 --- a/asmcomp/alpha/scheduling.ml +++ b/asmcomp/alpha/scheduling.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: scheduling.ml,v 1.6 1999/11/17 18:56:40 xleroy Exp $ *) +(* $Id: scheduling.ml 2553 1999-11-17 18:59:06Z xleroy $ *) open Arch open Mach diff --git a/asmcomp/alpha/selection.ml b/asmcomp/alpha/selection.ml index 530c2f20..22a0ab45 100644 --- a/asmcomp/alpha/selection.ml +++ b/asmcomp/alpha/selection.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: selection.ml,v 1.12 2001/07/24 08:01:25 xleroy Exp $ *) +(* $Id: selection.ml 3593 2001-07-24 08:01:25Z xleroy $ *) (* Instruction selection for the Alpha processor *) diff --git a/asmcomp/amd64/arch.ml b/asmcomp/amd64/arch.ml index b0b5534e..fe52e54d 100644 --- a/asmcomp/amd64/arch.ml +++ b/asmcomp/amd64/arch.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: arch.ml,v 1.3 2007/01/01 13:07:35 xleroy Exp $ *) +(* $Id: arch.ml 7784 2007-01-01 13:07:35Z xleroy $ *) (* Machine-specific command-line options *) diff --git a/asmcomp/amd64/emit.mlp b/asmcomp/amd64/emit.mlp index a5b4643f..4a3f8448 100644 --- a/asmcomp/amd64/emit.mlp +++ b/asmcomp/amd64/emit.mlp @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: emit.mlp,v 1.16.2.4 2009/03/28 15:10:04 xleroy Exp $ *) +(* $Id: emit.mlp 9475 2009-12-16 10:04:38Z xleroy $ *) (* Emission of x86-64 (AMD 64) assembly code *) @@ -576,33 +576,26 @@ let emit_instr fallthrough i = end | Lswitch jumptbl -> let lbl = new_label() in - if !pic_code || !Clflags.dlcode then begin - (* PR#4424: r11 is known to be clobbered by the Lswitch, - meaning that no variable that is live across the Lswitch - is assigned to r11. However, the argument to Lswitch - can still be assigned to r11, so we need to special-case - this situation. *) - if i.arg.(0).loc = Reg 9 (* ie r11, cf amd64/proc.ml *) then begin - ` salq $3, %r11\n`; - ` pushq %r11\n`; - ` leaq {emit_label lbl}(%rip), %r11\n`; - ` addq 0(%rsp), %r11\n`; - ` addq $8, %rsp\n`; - ` jmp *(%r11)\n` - end else begin - ` leaq {emit_label lbl}(%rip), %r11\n`; - ` jmp *(%r11, {emit_reg i.arg.(0)}, 8)\n` - end - end else begin - ` jmp *{emit_label lbl}(, {emit_reg i.arg.(0)}, 8)\n` - end; + (* rax and rdx are clobbered by the Lswitch, + meaning that no variable that is live across the Lswitch + is assigned to rax or rdx. However, the argument to Lswitch + can still be assigned to one of these two registers, so + we must be careful not to clobber it before use. *) + let (tmp1, tmp2) = + if i.arg.(0).loc = Reg 0 (* rax *) + then (phys_reg 4 (*rdx*), phys_reg 0 (*rax*)) + else (phys_reg 0 (*rax*), phys_reg 4 (*rdx*)) in + ` leaq {emit_label lbl}(%rip), {emit_reg tmp1}\n`; + ` movslq ({emit_reg tmp1}, {emit_reg i.arg.(0)}, 4), {emit_reg tmp2}\n`; + ` addq {emit_reg tmp2}, {emit_reg tmp1}\n`; + ` jmp *{emit_reg tmp1}\n`; if macosx then ` .const\n` else ` .section .rodata\n`; - emit_align 8; + emit_align 4; `{emit_label lbl}:`; for i = 0 to Array.length jumptbl - 1 do - ` .quad {emit_label jumptbl.(i)}\n` + ` .long {emit_label jumptbl.(i)} - {emit_label lbl}\n` done; ` .text\n` | Lsetuptrap lbl -> @@ -635,7 +628,8 @@ let rec emit_all fallthrough i = (* Emission of the floating-point constants *) let emit_float_constant (lbl, cst) = - `{emit_label lbl}: .double {emit_string cst}\n` + `{emit_label lbl}:`; + emit_float64_directive ".quad" cst (* Emission of the profiling prelude *) @@ -668,7 +662,9 @@ let fundecl fundecl = bound_error_call := 0; ` .text\n`; emit_align 16; - if macosx && is_generic_function fundecl.fun_name + if macosx + && not !Clflags.output_c_object + && is_generic_function fundecl.fun_name then (* PR#4690 *) ` .private_extern {emit_symbol fundecl.fun_name}\n` else @@ -713,9 +709,9 @@ let emit_item = function | Cint n -> ` .quad {emit_nativeint n}\n` | Csingle f -> - ` .float {emit_string f}\n` + emit_float32_directive ".long" f | Cdouble f -> - ` .double {emit_string f}\n` + emit_float64_directive ".quad" f | Csymbol_address s -> ` .quad {emit_symbol s}\n` | Clabel_address lbl -> diff --git a/asmcomp/amd64/emit_nt.mlp b/asmcomp/amd64/emit_nt.mlp index cbe7f122..d1a06e6a 100644 --- a/asmcomp/amd64/emit_nt.mlp +++ b/asmcomp/amd64/emit_nt.mlp @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: emit_nt.mlp,v 1.7 2008/01/11 16:13:11 doligez Exp $ *) +(* $Id: emit_nt.mlp 8768 2008-01-11 16:13:18Z doligez $ *) (* Emission of x86-64 (AMD 64) assembly code, MASM syntax *) diff --git a/asmcomp/amd64/proc.ml b/asmcomp/amd64/proc.ml index d6766eee..35f938e4 100644 --- a/asmcomp/amd64/proc.ml +++ b/asmcomp/amd64/proc.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: proc.ml,v 1.5.4.1 2009/03/28 15:52:13 xleroy Exp $ *) +(* $Id: proc.ml 9342 2009-09-18 13:49:21Z xleroy $ *) (* Description of the AMD64 processor *) @@ -92,7 +92,6 @@ let phys_reg n = let rax = phys_reg 0 let rcx = phys_reg 5 let rdx = phys_reg 4 -let r11 = phys_reg 9 let rxmm15 = phys_reg 115 let stack_slot slot ty = @@ -170,7 +169,7 @@ let destroyed_at_oper = function | Iop(Istore(Single, _)) -> [| rxmm15 |] | Iop(Ialloc _ | Iintop(Icomp _) | Iintop_imm((Idiv|Imod|Icomp _), _)) -> [| rax |] - | Iswitch(_, _) when !pic_code || !Clflags.dlcode -> [| r11 |] + | Iswitch(_, _) -> [| rax; rdx |] | _ -> [||] let destroyed_at_raise = all_phys_regs diff --git a/asmcomp/amd64/proc_nt.ml b/asmcomp/amd64/proc_nt.ml index a8be92d7..3379b167 100644 --- a/asmcomp/amd64/proc_nt.ml +++ b/asmcomp/amd64/proc_nt.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: proc_nt.ml,v 1.4 2007/10/30 12:37:16 xleroy Exp $ *) +(* $Id: proc_nt.ml 8462 2007-10-30 12:37:16Z xleroy $ *) (* Description of the AMD64 processor with Win64 conventions *) diff --git a/asmcomp/amd64/reload.ml b/asmcomp/amd64/reload.ml index dc8222a6..2f742b90 100644 --- a/asmcomp/amd64/reload.ml +++ b/asmcomp/amd64/reload.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: reload.ml,v 1.6 2007/11/06 15:16:55 frisch Exp $ *) +(* $Id: reload.ml 8477 2007-11-06 15:16:56Z frisch $ *) open Cmm open Arch diff --git a/asmcomp/amd64/scheduling.ml b/asmcomp/amd64/scheduling.ml index 972c47c2..aeecf9e3 100644 --- a/asmcomp/amd64/scheduling.ml +++ b/asmcomp/amd64/scheduling.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: scheduling.ml,v 1.1 2003/06/30 08:28:44 xleroy Exp $ *) +(* $Id: scheduling.ml 5634 2003-06-30 08:28:48Z xleroy $ *) open Schedgen (* to create a dependency *) diff --git a/asmcomp/amd64/selection.ml b/asmcomp/amd64/selection.ml index 0d5acf84..143f7eba 100644 --- a/asmcomp/amd64/selection.ml +++ b/asmcomp/amd64/selection.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: selection.ml,v 1.7.4.1 2008/10/29 14:32:01 xleroy Exp $ *) +(* $Id: selection.ml 9114 2008-10-29 14:32:01Z xleroy $ *) (* Instruction selection for the AMD64 *) diff --git a/asmcomp/arm/arch.ml b/asmcomp/arm/arch.ml index a2b0027e..998fa4bb 100644 --- a/asmcomp/arm/arch.ml +++ b/asmcomp/arm/arch.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: arch.ml,v 1.9 2002/11/29 15:03:36 xleroy Exp $ *) +(* $Id: arch.ml 5304 2002-11-29 15:03:37Z xleroy $ *) (* Specific operations for the ARM processor *) diff --git a/asmcomp/arm/emit.mlp b/asmcomp/arm/emit.mlp index 73f5a38e..0f5255ad 100644 --- a/asmcomp/arm/emit.mlp +++ b/asmcomp/arm/emit.mlp @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: emit.mlp,v 1.19 2008/01/11 16:13:11 doligez Exp $ *) +(* $Id: emit.mlp 9314 2009-07-15 12:14:39Z xleroy $ *) (* Emission of ARM assembly code *) @@ -625,6 +625,9 @@ let emit_item = function | Csingle f -> ` .float {emit_string f}\n` | Cdouble f -> + (* FIXME: this version of the ARM port is mixed-endian, so we + use .double instead of emit_float64_directive. The next + version is little-endian, so we'll use emit_float64 then. *) ` .align 0\n`; ` .double {emit_string f}\n` | Csymbol_address s -> diff --git a/asmcomp/arm/proc.ml b/asmcomp/arm/proc.ml index 942a3a6e..ae0f4c12 100644 --- a/asmcomp/arm/proc.ml +++ b/asmcomp/arm/proc.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: proc.ml,v 1.9 2007/10/30 12:37:16 xleroy Exp $ *) +(* $Id: proc.ml 8462 2007-10-30 12:37:16Z xleroy $ *) (* Description of the ARM processor *) diff --git a/asmcomp/arm/reload.ml b/asmcomp/arm/reload.ml index 0ec090d1..09174387 100644 --- a/asmcomp/arm/reload.ml +++ b/asmcomp/arm/reload.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: reload.ml,v 1.4 1999/11/17 18:56:41 xleroy Exp $ *) +(* $Id: reload.ml 2553 1999-11-17 18:59:06Z xleroy $ *) (* Reloading for the ARM *) diff --git a/asmcomp/arm/scheduling.ml b/asmcomp/arm/scheduling.ml index 533a2175..930e1bc2 100644 --- a/asmcomp/arm/scheduling.ml +++ b/asmcomp/arm/scheduling.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: scheduling.ml,v 1.4 1999/11/17 18:56:41 xleroy Exp $ *) +(* $Id: scheduling.ml 2553 1999-11-17 18:59:06Z xleroy $ *) open Mach diff --git a/asmcomp/arm/selection.ml b/asmcomp/arm/selection.ml index 40c100a0..929f0347 100644 --- a/asmcomp/arm/selection.ml +++ b/asmcomp/arm/selection.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: selection.ml,v 1.7 2008/01/11 16:13:11 doligez Exp $ *) +(* $Id: selection.ml 8768 2008-01-11 16:13:18Z doligez $ *) (* Instruction selection for the ARM processor *) diff --git a/asmcomp/asmgen.ml b/asmcomp/asmgen.ml index f240ecf2..0fa0d9fb 100644 --- a/asmcomp/asmgen.ml +++ b/asmcomp/asmgen.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: asmgen.ml,v 1.22 2008/07/24 05:35:22 frisch Exp $ *) +(* $Id: asmgen.ml 8930 2008-07-24 05:35:22Z frisch $ *) (* From lambda to assembly code *) diff --git a/asmcomp/asmgen.mli b/asmcomp/asmgen.mli index 788e3263..19a79c84 100644 --- a/asmcomp/asmgen.mli +++ b/asmcomp/asmgen.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: asmgen.mli,v 1.8 2007/11/06 15:16:55 frisch Exp $ *) +(* $Id: asmgen.mli 8477 2007-11-06 15:16:56Z frisch $ *) (* From lambda to assembly code *) diff --git a/asmcomp/asmlibrarian.ml b/asmcomp/asmlibrarian.ml index b2ff5624..68f8b2f0 100644 --- a/asmcomp/asmlibrarian.ml +++ b/asmcomp/asmlibrarian.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: asmlibrarian.ml,v 1.14 2005/09/24 16:45:56 xleroy Exp $ *) +(* $Id: asmlibrarian.ml 7079 2005-09-24 16:45:56Z xleroy $ *) (* Build libraries of .cmx files *) diff --git a/asmcomp/asmlibrarian.mli b/asmcomp/asmlibrarian.mli index 9b60488d..0224d89a 100644 --- a/asmcomp/asmlibrarian.mli +++ b/asmcomp/asmlibrarian.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: asmlibrarian.mli,v 1.6 2000/04/21 08:10:27 weis Exp $ *) +(* $Id: asmlibrarian.mli 3123 2000-04-21 08:13:22Z weis $ *) (* Build libraries of .cmx files *) diff --git a/asmcomp/asmlink.ml b/asmcomp/asmlink.ml index 8ec81f56..b4e2ab9c 100644 --- a/asmcomp/asmlink.ml +++ b/asmcomp/asmlink.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: asmlink.ml,v 1.78 2008/01/31 09:13:07 frisch Exp $ *) +(* $Id: asmlink.ml 9338 2009-09-16 14:03:37Z garrigue $ *) (* Link a set of .cmx/.o files and produce an executable *) @@ -259,6 +259,7 @@ let link_shared ppf objfiles output_name = (fun (info, file_name, crc) -> check_consistency file_name info crc) units_tolink; Clflags.ccobjs := !Clflags.ccobjs @ !lib_ccobjs; + Clflags.ccopts := !lib_ccopts @ !Clflags.ccopts; let objfiles = List.rev (List.map object_file_name objfiles) @ !Clflags.ccobjs in diff --git a/asmcomp/asmlink.mli b/asmcomp/asmlink.mli index 77a0544e..301e9203 100644 --- a/asmcomp/asmlink.mli +++ b/asmcomp/asmlink.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: asmlink.mli,v 1.12 2007/11/06 15:16:55 frisch Exp $ *) +(* $Id: asmlink.mli 8477 2007-11-06 15:16:56Z frisch $ *) (* Link a set of .cmx/.o files and produce an executable or a plugin *) diff --git a/asmcomp/asmpackager.ml b/asmcomp/asmpackager.ml index a4152d99..8be1521c 100644 --- a/asmcomp/asmpackager.ml +++ b/asmcomp/asmpackager.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: asmpackager.ml,v 1.26 2007/11/15 16:09:57 frisch Exp $ *) +(* $Id: asmpackager.ml 8523 2007-11-15 16:09:57Z frisch $ *) (* "Package" a set of .cmx/.o files into one .cmx/.o file having the original compilation units as sub-modules. *) diff --git a/asmcomp/asmpackager.mli b/asmcomp/asmpackager.mli index 1e4e11d7..9d47e851 100644 --- a/asmcomp/asmpackager.mli +++ b/asmcomp/asmpackager.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: asmpackager.mli,v 1.2 2005/08/01 15:51:09 xleroy Exp $ *) +(* $Id: asmpackager.mli 7003 2005-08-01 15:51:09Z xleroy $ *) (* "Package" a set of .cmx/.o files into one .cmx/.o file having the original compilation units as sub-modules. *) diff --git a/asmcomp/clambda.ml b/asmcomp/clambda.ml index 2d264d14..ec836be1 100644 --- a/asmcomp/clambda.ml +++ b/asmcomp/clambda.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: clambda.ml,v 1.17 2007/01/29 12:10:50 xleroy Exp $ *) +(* $Id: clambda.ml 7812 2007-01-29 12:11:18Z xleroy $ *) (* A variant of the "lambda" code with direct / indirect calls explicit and closures explicit too *) diff --git a/asmcomp/clambda.mli b/asmcomp/clambda.mli index 2f752501..82d35600 100644 --- a/asmcomp/clambda.mli +++ b/asmcomp/clambda.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: clambda.mli,v 1.17 2007/01/29 12:10:50 xleroy Exp $ *) +(* $Id: clambda.mli 7812 2007-01-29 12:11:18Z xleroy $ *) (* A variant of the "lambda" code with direct / indirect calls explicit and closures explicit too *) diff --git a/asmcomp/closure.ml b/asmcomp/closure.ml index 30405234..544772a6 100644 --- a/asmcomp/closure.ml +++ b/asmcomp/closure.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: closure.ml,v 1.55 2008/08/01 12:52:14 xleroy Exp $ *) +(* $Id: closure.ml 8966 2008-08-01 12:52:14Z xleroy $ *) (* Introduction of closures, uncurrying, recognition of direct calls *) diff --git a/asmcomp/closure.mli b/asmcomp/closure.mli index eac7ce39..f0decfcf 100644 --- a/asmcomp/closure.mli +++ b/asmcomp/closure.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: closure.mli,v 1.5 1999/11/17 18:56:30 xleroy Exp $ *) +(* $Id: closure.mli 2553 1999-11-17 18:59:06Z xleroy $ *) (* Introduction of closures, uncurrying, recognition of direct calls *) diff --git a/asmcomp/cmm.ml b/asmcomp/cmm.ml index 1caa179c..234da9fa 100644 --- a/asmcomp/cmm.ml +++ b/asmcomp/cmm.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: cmm.ml,v 1.21 2007/01/29 12:10:50 xleroy Exp $ *) +(* $Id: cmm.ml 7812 2007-01-29 12:11:18Z xleroy $ *) type machtype_component = Addr diff --git a/asmcomp/cmm.mli b/asmcomp/cmm.mli index b2d29b81..79b00697 100644 --- a/asmcomp/cmm.mli +++ b/asmcomp/cmm.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: cmm.mli,v 1.21 2007/01/29 12:10:50 xleroy Exp $ *) +(* $Id: cmm.mli 7812 2007-01-29 12:11:18Z xleroy $ *) (* Second intermediate language (machine independent) *) diff --git a/asmcomp/cmmgen.ml b/asmcomp/cmmgen.ml index 9cf8c956..f17bdd40 100644 --- a/asmcomp/cmmgen.ml +++ b/asmcomp/cmmgen.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: cmmgen.ml,v 1.114.2.1 2009/01/26 17:06:10 xleroy Exp $ *) +(* $Id: cmmgen.ml 9167 2009-01-26 17:06:10Z xleroy $ *) (* Translation from closed lambda to C-- *) diff --git a/asmcomp/cmmgen.mli b/asmcomp/cmmgen.mli index a1804f50..4f5efc20 100644 --- a/asmcomp/cmmgen.mli +++ b/asmcomp/cmmgen.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: cmmgen.mli,v 1.16 2008/01/31 09:13:08 frisch Exp $ *) +(* $Id: cmmgen.mli 8800 2008-01-31 09:13:19Z frisch $ *) (* Translation from closed lambda to C-- *) diff --git a/asmcomp/codegen.ml b/asmcomp/codegen.ml index c737884d..2d9d750d 100644 --- a/asmcomp/codegen.ml +++ b/asmcomp/codegen.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: codegen.ml,v 1.7 2000/04/21 08:10:29 weis Exp $ *) +(* $Id: codegen.ml 3123 2000-04-21 08:13:22Z weis $ *) (* From C-- to assembly code *) diff --git a/asmcomp/codegen.mli b/asmcomp/codegen.mli index 51189632..06378ab0 100644 --- a/asmcomp/codegen.mli +++ b/asmcomp/codegen.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: codegen.mli,v 1.4 1999/11/17 18:56:31 xleroy Exp $ *) +(* $Id: codegen.mli 2553 1999-11-17 18:59:06Z xleroy $ *) (* From C-- to assembly code *) diff --git a/asmcomp/coloring.ml b/asmcomp/coloring.ml index 98d92200..64b5ea5f 100644 --- a/asmcomp/coloring.ml +++ b/asmcomp/coloring.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: coloring.ml,v 1.13 2004/08/12 13:34:42 xleroy Exp $ *) +(* $Id: coloring.ml 6592 2004-08-12 13:34:42Z xleroy $ *) (* Register allocation by coloring of the interference graph *) diff --git a/asmcomp/coloring.mli b/asmcomp/coloring.mli index 729a1d62..c92fd41b 100644 --- a/asmcomp/coloring.mli +++ b/asmcomp/coloring.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: coloring.mli,v 1.4 1999/11/17 18:56:31 xleroy Exp $ *) +(* $Id: coloring.mli 2553 1999-11-17 18:59:06Z xleroy $ *) (* Register allocation by coloring of the interference graph *) diff --git a/asmcomp/comballoc.ml b/asmcomp/comballoc.ml index 5888f864..b62a1b05 100644 --- a/asmcomp/comballoc.ml +++ b/asmcomp/comballoc.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: comballoc.ml,v 1.4 2007/01/29 12:10:50 xleroy Exp $ *) +(* $Id: comballoc.ml 7812 2007-01-29 12:11:18Z xleroy $ *) (* Combine heap allocations occurring in the same basic block *) diff --git a/asmcomp/comballoc.mli b/asmcomp/comballoc.mli index d0ff57ff..d6d72f58 100644 --- a/asmcomp/comballoc.mli +++ b/asmcomp/comballoc.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: comballoc.mli,v 1.2 1999/11/17 18:56:32 xleroy Exp $ *) +(* $Id: comballoc.mli 2553 1999-11-17 18:59:06Z xleroy $ *) (* Combine heap allocations occurring in the same basic block *) diff --git a/asmcomp/compilenv.ml b/asmcomp/compilenv.ml index 35b327c7..64171f88 100644 --- a/asmcomp/compilenv.ml +++ b/asmcomp/compilenv.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: compilenv.ml,v 1.24 2007/11/06 15:16:55 frisch Exp $ *) +(* $Id: compilenv.ml 8477 2007-11-06 15:16:56Z frisch $ *) (* Compilation environments for compilation units *) diff --git a/asmcomp/compilenv.mli b/asmcomp/compilenv.mli index 5d47fc3d..5bf8b165 100644 --- a/asmcomp/compilenv.mli +++ b/asmcomp/compilenv.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: compilenv.mli,v 1.17 2007/11/06 15:16:55 frisch Exp $ *) +(* $Id: compilenv.mli 8477 2007-11-06 15:16:56Z frisch $ *) (* Compilation environments for compilation units *) diff --git a/asmcomp/emit.mli b/asmcomp/emit.mli index 20fc1dfd..57b0066f 100644 --- a/asmcomp/emit.mli +++ b/asmcomp/emit.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: emit.mli,v 1.5 1999/11/17 18:56:32 xleroy Exp $ *) +(* $Id: emit.mli 2553 1999-11-17 18:59:06Z xleroy $ *) (* Generation of assembly code *) diff --git a/asmcomp/emitaux.ml b/asmcomp/emitaux.ml index fe8279a3..0cae6ddb 100644 --- a/asmcomp/emitaux.ml +++ b/asmcomp/emitaux.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: emitaux.ml,v 1.12.12.1 2009/01/26 17:06:10 xleroy Exp $ *) +(* $Id: emitaux.ml 9314 2009-07-15 12:14:39Z xleroy $ *) (* Common functions for emitting assembly code *) @@ -93,6 +93,27 @@ let emit_bytes_directive directive s = done; if !pos > 0 then emit_char '\n' +(* PR#4813: assemblers do strange things with float literals indeed, + so we convert to IEEE representation ourselves and emit float + literals as 32- or 64-bit integers. *) + +let emit_float64_directive directive f = + let x = Int64.bits_of_float (float_of_string f) in + emit_printf "\t%s\t0x%Lx\n" directive x + +let emit_float64_split_directive directive f = + let x = Int64.bits_of_float (float_of_string f) in + let lo = Int64.logand x 0xFFFF_FFFFL + and hi = Int64.shift_right_logical x 32 in + emit_printf "\t%s\t0x%Lx, 0x%Lx\n" + directive + (if Arch.big_endian then hi else lo) + (if Arch.big_endian then lo else hi) + +let emit_float32_directive directive f = + let x = Int32.bits_of_float (float_of_string f) in + emit_printf "\t%s\t0x%lx\n" directive x + (* Record live pointers at call points *) type frame_descr = diff --git a/asmcomp/emitaux.mli b/asmcomp/emitaux.mli index a63c8bab..88eac2f5 100644 --- a/asmcomp/emitaux.mli +++ b/asmcomp/emitaux.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: emitaux.mli,v 1.12.12.1 2009/01/26 17:06:10 xleroy Exp $ *) +(* $Id: emitaux.mli 9314 2009-07-15 12:14:39Z xleroy $ *) (* Common functions for emitting assembly code *) @@ -25,6 +25,9 @@ val emit_char: char -> unit val emit_string_literal: string -> unit val emit_string_directive: string -> string -> unit val emit_bytes_directive: string -> string -> unit +val emit_float64_directive: string -> string -> unit +val emit_float64_split_directive: string -> string -> unit +val emit_float32_directive: string -> string -> unit type frame_descr = { fd_lbl: int; (* Return address *) diff --git a/asmcomp/hppa/arch.ml b/asmcomp/hppa/arch.ml index 9a2e940c..33804321 100644 --- a/asmcomp/hppa/arch.ml +++ b/asmcomp/hppa/arch.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: arch.ml,v 1.7 2002/11/29 15:03:36 xleroy Exp $ *) +(* $Id: arch.ml 5304 2002-11-29 15:03:37Z xleroy $ *) (* Specific operations for the HP PA-RISC processor *) diff --git a/asmcomp/hppa/emit.mlp b/asmcomp/hppa/emit.mlp index b1fa3455..e6bf5a7d 100644 --- a/asmcomp/hppa/emit.mlp +++ b/asmcomp/hppa/emit.mlp @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: emit.mlp,v 1.20 2006/04/16 23:28:14 doligez Exp $ *) +(* $Id: emit.mlp 9475 2009-12-16 10:04:38Z xleroy $ *) (* Emission of HP PA-RISC assembly code *) @@ -299,7 +299,9 @@ let emit_float_constants () = ` .text\n`; emit_align 8; List.iter - (fun (lbl, cst) -> `{emit_label lbl}: .double {emit_string cst}\n`) + (fun (lbl, cst) -> + `{emit_label lbl}:`; + emit_float64_split_directive ".long" cst) !float_constants; float_constants := [] @@ -972,9 +974,9 @@ let emit_item = function | Cint n -> ` .long {emit_nativeint n}\n` | Csingle f -> - ` .float {emit_string f}\n` + emit_float32_directive ".long" f | Cdouble f -> - ` .double {emit_string f}\n` + emit_float64_split_directive ".long" f | Csymbol_address s -> use_symbol s; ` .long {emit_symbol s}\n` diff --git a/asmcomp/hppa/proc.ml b/asmcomp/hppa/proc.ml index 02a76499..3debb291 100644 --- a/asmcomp/hppa/proc.ml +++ b/asmcomp/hppa/proc.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: proc.ml,v 1.8 2007/10/30 12:37:16 xleroy Exp $ *) +(* $Id: proc.ml 8462 2007-10-30 12:37:16Z xleroy $ *) (* Description of the HP PA-RISC processor *) diff --git a/asmcomp/hppa/reload.ml b/asmcomp/hppa/reload.ml index 0016a90a..44371522 100644 --- a/asmcomp/hppa/reload.ml +++ b/asmcomp/hppa/reload.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: reload.ml,v 1.4 2008/01/11 16:13:11 doligez Exp $ *) +(* $Id: reload.ml 8768 2008-01-11 16:13:18Z doligez $ *) (* Reloading for the HPPA *) diff --git a/asmcomp/hppa/scheduling.ml b/asmcomp/hppa/scheduling.ml index 749fc604..8d2ed7cc 100644 --- a/asmcomp/hppa/scheduling.ml +++ b/asmcomp/hppa/scheduling.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: scheduling.ml,v 1.4 1999/11/17 18:56:42 xleroy Exp $ *) +(* $Id: scheduling.ml 2553 1999-11-17 18:59:06Z xleroy $ *) (* Instruction scheduling for the HPPA *) diff --git a/asmcomp/hppa/selection.ml b/asmcomp/hppa/selection.ml index 1119730b..67e9c0c9 100644 --- a/asmcomp/hppa/selection.ml +++ b/asmcomp/hppa/selection.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: selection.ml,v 1.6 2008/01/11 16:13:11 doligez Exp $ *) +(* $Id: selection.ml 8768 2008-01-11 16:13:18Z doligez $ *) (* Instruction selection for the HPPA processor *) diff --git a/asmcomp/i386/arch.ml b/asmcomp/i386/arch.ml index 3ccdb931..5bc296e7 100644 --- a/asmcomp/i386/arch.ml +++ b/asmcomp/i386/arch.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: arch.ml,v 1.13 2006/04/16 23:28:14 doligez Exp $ *) +(* $Id: arch.ml 7382 2006-04-16 23:28:22Z doligez $ *) (* Machine-specific command-line options *) diff --git a/asmcomp/i386/emit.mlp b/asmcomp/i386/emit.mlp index a073675f..2992f29c 100644 --- a/asmcomp/i386/emit.mlp +++ b/asmcomp/i386/emit.mlp @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: emit.mlp,v 1.41.2.4 2009/03/28 15:10:04 xleroy Exp $ *) +(* $Id: emit.mlp 9475 2009-12-16 10:04:38Z xleroy $ *) (* Emission of Intel 386 assembly code *) @@ -815,7 +815,8 @@ let rec emit_all fallthrough i = let emit_float_constant (lbl, cst) = ` .data\n`; - `{emit_label lbl}: .double {emit_string cst}\n` + `{emit_label lbl}:`; + emit_float64_split_directive ".long" cst (* Emission of external symbol references (for MacOSX) *) @@ -888,7 +889,9 @@ let fundecl fundecl = bound_error_call := 0; ` .text\n`; emit_align 16; - if macosx && is_generic_function fundecl.fun_name + if macosx + && not !Clflags.output_c_object + && is_generic_function fundecl.fun_name then (* PR#4690 *) ` .private_extern {emit_symbol fundecl.fun_name}\n` else @@ -928,9 +931,9 @@ let emit_item = function | Cint n -> ` .long {emit_nativeint n}\n` | Csingle f -> - ` .float {emit_string f}\n` + emit_float32_directive ".long" f | Cdouble f -> - ` .double {emit_string f}\n` + emit_float64_split_directive ".long" f | Csymbol_address s -> ` .long {emit_symbol s}\n` | Clabel_address lbl -> diff --git a/asmcomp/i386/emit_nt.mlp b/asmcomp/i386/emit_nt.mlp index 5195b21f..d75a60f3 100644 --- a/asmcomp/i386/emit_nt.mlp +++ b/asmcomp/i386/emit_nt.mlp @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: emit_nt.mlp,v 1.28.4.1 2009/03/21 16:15:47 xleroy Exp $ *) +(* $Id: emit_nt.mlp 9189 2009-03-21 16:15:47Z xleroy $ *) (* Emission of Intel 386 assembly code, MASM syntax. *) diff --git a/asmcomp/i386/proc.ml b/asmcomp/i386/proc.ml index b4a7dda5..0b802c4b 100644 --- a/asmcomp/i386/proc.ml +++ b/asmcomp/i386/proc.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: proc.ml,v 1.14 2007/10/30 12:37:16 xleroy Exp $ *) +(* $Id: proc.ml 8462 2007-10-30 12:37:16Z xleroy $ *) (* Description of the Intel 386 processor *) diff --git a/asmcomp/i386/proc_nt.ml b/asmcomp/i386/proc_nt.ml index 45b360ee..0489cd6c 100644 --- a/asmcomp/i386/proc_nt.ml +++ b/asmcomp/i386/proc_nt.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: proc_nt.ml,v 1.8 2008/01/11 16:13:11 doligez Exp $ *) +(* $Id: proc_nt.ml 8768 2008-01-11 16:13:18Z doligez $ *) (* Description of the Intel 386 processor, for Windows NT *) diff --git a/asmcomp/i386/reload.ml b/asmcomp/i386/reload.ml index c5291249..57e45cb7 100644 --- a/asmcomp/i386/reload.ml +++ b/asmcomp/i386/reload.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: reload.ml,v 1.6 2007/01/29 12:10:50 xleroy Exp $ *) +(* $Id: reload.ml 7812 2007-01-29 12:11:18Z xleroy $ *) open Cmm open Arch diff --git a/asmcomp/i386/scheduling.ml b/asmcomp/i386/scheduling.ml index bc90f0d2..61a107ea 100644 --- a/asmcomp/i386/scheduling.ml +++ b/asmcomp/i386/scheduling.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: scheduling.ml,v 1.3 2000/02/04 12:43:18 xleroy Exp $ *) +(* $Id: scheduling.ml 2779 2000-02-04 12:43:18Z xleroy $ *) open Schedgen (* to create a dependency *) diff --git a/asmcomp/i386/selection.ml b/asmcomp/i386/selection.ml index 5c2c3f05..1515592b 100644 --- a/asmcomp/i386/selection.ml +++ b/asmcomp/i386/selection.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: selection.ml,v 1.15 2007/01/29 12:10:50 xleroy Exp $ *) +(* $Id: selection.ml 7812 2007-01-29 12:11:18Z xleroy $ *) (* Instruction selection for the Intel x86 *) diff --git a/asmcomp/ia64/arch.ml b/asmcomp/ia64/arch.ml index 12b686bc..3c2a4c85 100644 --- a/asmcomp/ia64/arch.ml +++ b/asmcomp/ia64/arch.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: arch.ml,v 1.5 2002/11/29 15:03:36 xleroy Exp $ *) +(* $Id: arch.ml 5304 2002-11-29 15:03:37Z xleroy $ *) (* Specific operations for the IA64 processor *) diff --git a/asmcomp/ia64/emit.mlp b/asmcomp/ia64/emit.mlp index bfffcbe7..09a4de4b 100644 --- a/asmcomp/ia64/emit.mlp +++ b/asmcomp/ia64/emit.mlp @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: emit.mlp,v 1.17 2004/07/13 12:18:53 xleroy Exp $ *) +(* $Id: emit.mlp 9314 2009-07-15 12:14:39Z xleroy $ *) (* Emission of IA64 assembly code *) @@ -1287,9 +1287,9 @@ let emit_item = function | Cint n -> ` data8 {emit_nativeint n}\n` | Csingle f -> - ` real4 {emit_string f}\n` + emit_float32_directive "data4" f | Cdouble f -> - ` real8 {emit_string f}\n` + emit_float64_directive "data8" f | Csymbol_address s -> ` data8 {emit_symbol s}#\n` | Clabel_address lbl -> diff --git a/asmcomp/ia64/proc.ml b/asmcomp/ia64/proc.ml index ba773d46..3e425f89 100644 --- a/asmcomp/ia64/proc.ml +++ b/asmcomp/ia64/proc.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: proc.ml,v 1.6 2007/10/30 12:37:16 xleroy Exp $ *) +(* $Id: proc.ml 8462 2007-10-30 12:37:16Z xleroy $ *) (* Description of the IA64 processor *) diff --git a/asmcomp/ia64/reload.ml b/asmcomp/ia64/reload.ml index ca16e672..b9b9e6dd 100644 --- a/asmcomp/ia64/reload.ml +++ b/asmcomp/ia64/reload.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: reload.ml,v 1.2 2000/07/16 02:57:31 xleroy Exp $ *) +(* $Id: reload.ml 3235 2000-07-16 02:57:31Z xleroy $ *) (* Reloading for the IA64. *) diff --git a/asmcomp/ia64/scheduling.ml b/asmcomp/ia64/scheduling.ml index 9139c971..55a4e753 100644 --- a/asmcomp/ia64/scheduling.ml +++ b/asmcomp/ia64/scheduling.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: scheduling.ml,v 1.3 2000/07/16 02:57:31 xleroy Exp $ *) +(* $Id: scheduling.ml 3235 2000-07-16 02:57:31Z xleroy $ *) open Schedgen (* to create a dependency *) diff --git a/asmcomp/ia64/selection.ml b/asmcomp/ia64/selection.ml index 3944eb1c..43351089 100644 --- a/asmcomp/ia64/selection.ml +++ b/asmcomp/ia64/selection.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: selection.ml,v 1.7 2004/05/03 12:27:07 xleroy Exp $ *) +(* $Id: selection.ml 6276 2004-05-03 12:27:07Z xleroy $ *) (* Instruction selection for the IA64 processor *) diff --git a/asmcomp/interf.ml b/asmcomp/interf.ml index 7276ad03..b3e49df2 100644 --- a/asmcomp/interf.ml +++ b/asmcomp/interf.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: interf.ml,v 1.15 2007/01/29 12:10:50 xleroy Exp $ *) +(* $Id: interf.ml 7812 2007-01-29 12:11:18Z xleroy $ *) (* Construction of the interference graph. Annotate pseudoregs with interference lists and preference lists. *) diff --git a/asmcomp/interf.mli b/asmcomp/interf.mli index 91e805e4..f78f4059 100644 --- a/asmcomp/interf.mli +++ b/asmcomp/interf.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: interf.mli,v 1.4 1999/11/17 18:56:33 xleroy Exp $ *) +(* $Id: interf.mli 2553 1999-11-17 18:59:06Z xleroy $ *) (* Construction of the interference graph. Annotate pseudoregs with interference lists and preference lists. *) diff --git a/asmcomp/linearize.ml b/asmcomp/linearize.ml index b3281487..9a617fcd 100644 --- a/asmcomp/linearize.ml +++ b/asmcomp/linearize.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: linearize.ml,v 1.25 2007/01/29 12:10:50 xleroy Exp $ *) +(* $Id: linearize.ml 7812 2007-01-29 12:11:18Z xleroy $ *) (* Transformation of Mach code into a list of pseudo-instructions. *) diff --git a/asmcomp/linearize.mli b/asmcomp/linearize.mli index 926c3fa2..b85010f9 100644 --- a/asmcomp/linearize.mli +++ b/asmcomp/linearize.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: linearize.mli,v 1.14 2007/01/29 12:10:50 xleroy Exp $ *) +(* $Id: linearize.mli 7812 2007-01-29 12:11:18Z xleroy $ *) (* Transformation of Mach code into a list of pseudo-instructions. *) diff --git a/asmcomp/liveness.ml b/asmcomp/liveness.ml index f16fef53..9407f229 100644 --- a/asmcomp/liveness.ml +++ b/asmcomp/liveness.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: liveness.ml,v 1.15 2007/01/29 12:10:50 xleroy Exp $ *) +(* $Id: liveness.ml 7812 2007-01-29 12:11:18Z xleroy $ *) (* Liveness analysis. Annotate mach code with the set of regs live at each point. *) diff --git a/asmcomp/liveness.mli b/asmcomp/liveness.mli index bd791e18..de2509e8 100644 --- a/asmcomp/liveness.mli +++ b/asmcomp/liveness.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: liveness.mli,v 1.5 2000/04/21 08:10:33 weis Exp $ *) +(* $Id: liveness.mli 3123 2000-04-21 08:13:22Z weis $ *) (* Liveness analysis. Annotate mach code with the set of regs live at each point. *) diff --git a/asmcomp/mach.ml b/asmcomp/mach.ml index 67d0dc65..07ac1492 100644 --- a/asmcomp/mach.ml +++ b/asmcomp/mach.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: mach.ml,v 1.18 2007/01/29 12:10:50 xleroy Exp $ *) +(* $Id: mach.ml 7812 2007-01-29 12:11:18Z xleroy $ *) (* Representation of machine code by sequences of pseudoinstructions *) diff --git a/asmcomp/mach.mli b/asmcomp/mach.mli index ad28f3a7..30c510e8 100644 --- a/asmcomp/mach.mli +++ b/asmcomp/mach.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: mach.mli,v 1.18 2007/01/29 12:10:50 xleroy Exp $ *) +(* $Id: mach.mli 7812 2007-01-29 12:11:18Z xleroy $ *) (* Representation of machine code by sequences of pseudoinstructions *) diff --git a/asmcomp/mips/arch.ml b/asmcomp/mips/arch.ml index 8027e36c..411c9877 100644 --- a/asmcomp/mips/arch.ml +++ b/asmcomp/mips/arch.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: arch.ml,v 1.6 2002/11/29 15:03:36 xleroy Exp $ *) +(* $Id: arch.ml 5304 2002-11-29 15:03:37Z xleroy $ *) (* Specific operations for the Mips processor *) diff --git a/asmcomp/mips/emit.mlp b/asmcomp/mips/emit.mlp index a67d7fed..0899e2fc 100644 --- a/asmcomp/mips/emit.mlp +++ b/asmcomp/mips/emit.mlp @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: emit.mlp,v 1.18 2004/01/05 20:25:56 doligez Exp $ *) +(* $Id: emit.mlp 9314 2009-07-15 12:14:39Z xleroy $ *) (* Emission of Mips assembly code *) @@ -527,10 +527,9 @@ let emit_item = function | Cint n -> ` .word {emit_nativeint n}\n` | Csingle f -> - ` .float {emit_string f}\n` + emit_float32_directive ".word" f | Cdouble f -> - ` .align 0\n`; (* Prevent alignment on 8-byte boundary *) - ` .double {emit_string f}\n` + emit_float64_split_directive ".word" f | Csymbol_address s -> ` .word {emit_symbol s}\n` | Clabel_address lbl -> diff --git a/asmcomp/mips/proc.ml b/asmcomp/mips/proc.ml index 96221140..964ade46 100644 --- a/asmcomp/mips/proc.ml +++ b/asmcomp/mips/proc.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: proc.ml,v 1.7 2007/10/30 12:37:16 xleroy Exp $ *) +(* $Id: proc.ml 8462 2007-10-30 12:37:16Z xleroy $ *) (* Description of the Mips processor *) diff --git a/asmcomp/mips/reload.ml b/asmcomp/mips/reload.ml index de72414c..26a620b4 100644 --- a/asmcomp/mips/reload.ml +++ b/asmcomp/mips/reload.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: reload.ml,v 1.3 1999/11/17 18:56:45 xleroy Exp $ *) +(* $Id: reload.ml 2553 1999-11-17 18:59:06Z xleroy $ *) (* Reloading for the Mips *) diff --git a/asmcomp/mips/scheduling.ml b/asmcomp/mips/scheduling.ml index 7061cd39..273e20bd 100644 --- a/asmcomp/mips/scheduling.ml +++ b/asmcomp/mips/scheduling.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: scheduling.ml,v 1.2 1999/11/17 18:56:45 xleroy Exp $ *) +(* $Id: scheduling.ml 2553 1999-11-17 18:59:06Z xleroy $ *) open Schedgen (* to create a dependency *) diff --git a/asmcomp/mips/selection.ml b/asmcomp/mips/selection.ml index 690ef271..34be3c90 100644 --- a/asmcomp/mips/selection.ml +++ b/asmcomp/mips/selection.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: selection.ml,v 1.4 1999/11/17 18:56:46 xleroy Exp $ *) +(* $Id: selection.ml 2553 1999-11-17 18:59:06Z xleroy $ *) (* Instruction selection for the Mips processor *) diff --git a/asmcomp/power/arch.ml b/asmcomp/power/arch.ml index 4f5bb12c..33081429 100644 --- a/asmcomp/power/arch.ml +++ b/asmcomp/power/arch.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: arch.ml,v 1.12 2006/05/31 08:16:34 xleroy Exp $ *) +(* $Id: arch.ml 7430 2006-05-31 08:16:34Z xleroy $ *) (* Specific operations for the PowerPC processor *) diff --git a/asmcomp/power/emit.mlp b/asmcomp/power/emit.mlp index 5c2063d4..4b321993 100644 --- a/asmcomp/power/emit.mlp +++ b/asmcomp/power/emit.mlp @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: emit.mlp,v 1.26.4.1 2009/01/26 17:06:10 xleroy Exp $ *) +(* $Id: emit.mlp 9475 2009-12-16 10:04:38Z xleroy $ *) (* Emission of PowerPC assembly code *) @@ -835,7 +835,9 @@ let fundecl fundecl = call_gc_label := 0; float_literals := []; int_literals := []; - if Config.system = "rhapsody" && is_generic_function fundecl.fun_name + if Config.system = "rhapsody" + && not !Clflags.output_c_object + && is_generic_function fundecl.fun_name then (* PR#4690 *) ` .private_extern {emit_symbol fundecl.fun_name}\n` else @@ -871,7 +873,10 @@ let fundecl fundecl = ` .align 3\n`; List.iter (fun (f, lbl) -> - `{emit_label lbl}: .double 0d{emit_string f}\n`) + `{emit_label lbl}:`; + if ppc64 + then emit_float64_directive ".quad" f + else emit_float64_split_directive ".long" f) !float_literals; List.iter (fun (n, lbl) -> @@ -902,9 +907,11 @@ let emit_item = function | Cint n -> ` {emit_string datag} {emit_nativeint n}\n` | Csingle f -> - ` .float 0d{emit_string f}\n` + emit_float32_directive ".long" f | Cdouble f -> - ` .double 0d{emit_string f}\n` + if ppc64 + then emit_float64_directive ".quad" f + else emit_float64_split_directive ".long" f | Csymbol_address s -> ` {emit_string datag} {emit_symbol s}\n` | Clabel_address lbl -> diff --git a/asmcomp/power/proc.ml b/asmcomp/power/proc.ml index 5b540d94..510b9b1c 100644 --- a/asmcomp/power/proc.ml +++ b/asmcomp/power/proc.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: proc.ml,v 1.14 2007/10/30 12:37:16 xleroy Exp $ *) +(* $Id: proc.ml 8462 2007-10-30 12:37:16Z xleroy $ *) (* Description of the Power PC *) diff --git a/asmcomp/power/reload.ml b/asmcomp/power/reload.ml index e2ffd75c..abcac6c6 100644 --- a/asmcomp/power/reload.ml +++ b/asmcomp/power/reload.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: reload.ml,v 1.3 1999/11/17 18:56:46 xleroy Exp $ *) +(* $Id: reload.ml 2553 1999-11-17 18:59:06Z xleroy $ *) (* Reloading for the PowerPC *) diff --git a/asmcomp/power/scheduling.ml b/asmcomp/power/scheduling.ml index 7e760197..4312457b 100644 --- a/asmcomp/power/scheduling.ml +++ b/asmcomp/power/scheduling.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: scheduling.ml,v 1.6 2004/06/19 16:13:33 xleroy Exp $ *) +(* $Id: scheduling.ml 6423 2004-06-19 16:17:31Z xleroy $ *) (* Instruction scheduling for the Power PC *) diff --git a/asmcomp/power/selection.ml b/asmcomp/power/selection.ml index 622e84c2..d39ee518 100644 --- a/asmcomp/power/selection.ml +++ b/asmcomp/power/selection.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: selection.ml,v 1.8 2007/11/09 15:06:57 frisch Exp $ *) +(* $Id: selection.ml 8499 2007-11-09 15:06:57Z frisch $ *) (* Instruction selection for the Power PC processor *) diff --git a/asmcomp/printcmm.ml b/asmcomp/printcmm.ml index 73580836..0d0e1be7 100644 --- a/asmcomp/printcmm.ml +++ b/asmcomp/printcmm.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: printcmm.ml,v 1.25 2007/01/29 12:10:50 xleroy Exp $ *) +(* $Id: printcmm.ml 7812 2007-01-29 12:11:18Z xleroy $ *) (* Pretty-printing of C-- code *) diff --git a/asmcomp/printcmm.mli b/asmcomp/printcmm.mli index 4da8751b..f07a31db 100644 --- a/asmcomp/printcmm.mli +++ b/asmcomp/printcmm.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: printcmm.mli,v 1.6 2000/04/21 08:10:34 weis Exp $ *) +(* $Id: printcmm.mli 3123 2000-04-21 08:13:22Z weis $ *) (* Pretty-printing of C-- code *) diff --git a/asmcomp/printlinear.ml b/asmcomp/printlinear.ml index 24207ee2..941d6493 100644 --- a/asmcomp/printlinear.ml +++ b/asmcomp/printlinear.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: printlinear.ml,v 1.13 2007/01/29 12:10:50 xleroy Exp $ *) +(* $Id: printlinear.ml 7812 2007-01-29 12:11:18Z xleroy $ *) (* Pretty-printing of linearized machine code *) diff --git a/asmcomp/printlinear.mli b/asmcomp/printlinear.mli index 514f1100..dee1733f 100644 --- a/asmcomp/printlinear.mli +++ b/asmcomp/printlinear.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: printlinear.mli,v 1.5 2000/04/21 08:10:35 weis Exp $ *) +(* $Id: printlinear.mli 3123 2000-04-21 08:13:22Z weis $ *) (* Pretty-printing of linearized machine code *) diff --git a/asmcomp/printmach.ml b/asmcomp/printmach.ml index de93e380..87722121 100644 --- a/asmcomp/printmach.ml +++ b/asmcomp/printmach.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: printmach.ml,v 1.23 2007/01/29 12:10:50 xleroy Exp $ *) +(* $Id: printmach.ml 7812 2007-01-29 12:11:18Z xleroy $ *) (* Pretty-printing of pseudo machine code *) diff --git a/asmcomp/printmach.mli b/asmcomp/printmach.mli index 9dc483cd..edbda322 100644 --- a/asmcomp/printmach.mli +++ b/asmcomp/printmach.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: printmach.mli,v 1.6 2000/04/21 08:10:37 weis Exp $ *) +(* $Id: printmach.mli 3123 2000-04-21 08:13:22Z weis $ *) (* Pretty-printing of pseudo machine code *) diff --git a/asmcomp/proc.mli b/asmcomp/proc.mli index f15f256b..15086a44 100644 --- a/asmcomp/proc.mli +++ b/asmcomp/proc.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: proc.mli,v 1.16 1999/11/17 18:56:35 xleroy Exp $ *) +(* $Id: proc.mli 2553 1999-11-17 18:59:06Z xleroy $ *) (* Processor descriptions *) diff --git a/asmcomp/reg.ml b/asmcomp/reg.ml index ab16c615..3d996093 100644 --- a/asmcomp/reg.ml +++ b/asmcomp/reg.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: reg.ml,v 1.10 2000/06/29 11:44:06 xleroy Exp $ *) +(* $Id: reg.ml 3216 2000-06-29 11:44:06Z xleroy $ *) open Cmm diff --git a/asmcomp/reg.mli b/asmcomp/reg.mli index 7d93612c..b8ce2b64 100644 --- a/asmcomp/reg.mli +++ b/asmcomp/reg.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: reg.mli,v 1.7 1999/11/17 18:56:35 xleroy Exp $ *) +(* $Id: reg.mli 2553 1999-11-17 18:59:06Z xleroy $ *) (* Pseudo-registers *) diff --git a/asmcomp/reload.mli b/asmcomp/reload.mli index 11c8c047..154c4cc5 100644 --- a/asmcomp/reload.mli +++ b/asmcomp/reload.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: reload.mli,v 1.6 1999/11/17 18:56:35 xleroy Exp $ *) +(* $Id: reload.mli 2553 1999-11-17 18:59:06Z xleroy $ *) (* Insert load/stores for pseudoregs that got assigned to stack locations. *) diff --git a/asmcomp/reloadgen.ml b/asmcomp/reloadgen.ml index 693782d9..befc5c68 100644 --- a/asmcomp/reloadgen.ml +++ b/asmcomp/reloadgen.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: reloadgen.ml,v 1.6 2007/01/29 12:10:50 xleroy Exp $ *) +(* $Id: reloadgen.ml 7812 2007-01-29 12:11:18Z xleroy $ *) (* Insert load/stores for pseudoregs that got assigned to stack locations. *) diff --git a/asmcomp/reloadgen.mli b/asmcomp/reloadgen.mli index febb9367..80e90f79 100644 --- a/asmcomp/reloadgen.mli +++ b/asmcomp/reloadgen.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: reloadgen.mli,v 1.4 1999/11/17 18:56:36 xleroy Exp $ *) +(* $Id: reloadgen.mli 2553 1999-11-17 18:59:06Z xleroy $ *) class reload_generic : object method reload_operation : diff --git a/asmcomp/schedgen.ml b/asmcomp/schedgen.ml index 33f1570a..d89b448a 100644 --- a/asmcomp/schedgen.ml +++ b/asmcomp/schedgen.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: schedgen.ml,v 1.12 2007/01/29 12:10:50 xleroy Exp $ *) +(* $Id: schedgen.ml 7812 2007-01-29 12:11:18Z xleroy $ *) (* Instruction scheduling *) diff --git a/asmcomp/schedgen.mli b/asmcomp/schedgen.mli index 8c651548..73450659 100644 --- a/asmcomp/schedgen.mli +++ b/asmcomp/schedgen.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: schedgen.mli,v 1.6 1999/11/17 18:56:36 xleroy Exp $ *) +(* $Id: schedgen.mli 2553 1999-11-17 18:59:06Z xleroy $ *) (* Instruction scheduling *) diff --git a/asmcomp/scheduling.mli b/asmcomp/scheduling.mli index aef1f413..62c55741 100644 --- a/asmcomp/scheduling.mli +++ b/asmcomp/scheduling.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: scheduling.mli,v 1.3 1999/11/17 18:56:36 xleroy Exp $ *) +(* $Id: scheduling.mli 2553 1999-11-17 18:59:06Z xleroy $ *) (* Instruction scheduling *) diff --git a/asmcomp/selectgen.ml b/asmcomp/selectgen.ml index d170de48..705e501a 100644 --- a/asmcomp/selectgen.ml +++ b/asmcomp/selectgen.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: selectgen.ml,v 1.32 2007/01/29 12:10:50 xleroy Exp $ *) +(* $Id: selectgen.ml 7812 2007-01-29 12:11:18Z xleroy $ *) (* Selection of pseudo-instructions, assignment of pseudo-registers, sequentialization. *) diff --git a/asmcomp/selectgen.mli b/asmcomp/selectgen.mli index 2899d1ae..89edce67 100644 --- a/asmcomp/selectgen.mli +++ b/asmcomp/selectgen.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: selectgen.mli,v 1.8 2007/01/29 12:10:50 xleroy Exp $ *) +(* $Id: selectgen.mli 7812 2007-01-29 12:11:18Z xleroy $ *) (* Selection of pseudo-instructions, assignment of pseudo-registers, sequentialization. *) diff --git a/asmcomp/selection.mli b/asmcomp/selection.mli index e7a164e1..66abf607 100644 --- a/asmcomp/selection.mli +++ b/asmcomp/selection.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: selection.mli,v 1.6 1999/11/17 18:56:37 xleroy Exp $ *) +(* $Id: selection.mli 2553 1999-11-17 18:59:06Z xleroy $ *) (* Selection of pseudo-instructions, assignment of pseudo-registers, sequentialization. *) diff --git a/asmcomp/sparc/arch.ml b/asmcomp/sparc/arch.ml index c8a00be2..6bd9876f 100644 --- a/asmcomp/sparc/arch.ml +++ b/asmcomp/sparc/arch.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: arch.ml,v 1.8 2002/11/29 15:03:08 xleroy Exp $ *) +(* $Id: arch.ml 5303 2002-11-29 15:03:08Z xleroy $ *) (* Specific operations for the Sparc processor *) diff --git a/asmcomp/sparc/emit.mlp b/asmcomp/sparc/emit.mlp index cfecd1e6..c5cbe854 100644 --- a/asmcomp/sparc/emit.mlp +++ b/asmcomp/sparc/emit.mlp @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: emit.mlp,v 1.24 2006/04/16 23:28:15 doligez Exp $ *) +(* $Id: emit.mlp 9475 2009-12-16 10:04:38Z xleroy $ *) (* Emission of Sparc assembly code *) @@ -195,7 +195,8 @@ let float_constants = ref ([] : (int * string) list) let emit_float_constant (lbl, cst) = rodata (); ` .align 8\n`; - `{emit_label lbl}: .double 0r{emit_string cst}\n` + `{emit_label lbl}:`; + emit_float64_split_directive ".word" cst (* Emission of the profiling prelude *) let emit_profile () = @@ -723,9 +724,9 @@ let emit_item = function | Cint n -> ` .word {emit_nativeint n}\n` | Csingle f -> - ` .single 0r{emit_string f}\n` + emit_float32_directive ".word" f | Cdouble f -> - ` .double 0r{emit_string f}\n` + emit_float64_split_directive ".word" f | Csymbol_address s -> ` .word {emit_symbol s}\n` | Clabel_address lbl -> diff --git a/asmcomp/sparc/proc.ml b/asmcomp/sparc/proc.ml index 8127fc45..f21ac977 100644 --- a/asmcomp/sparc/proc.ml +++ b/asmcomp/sparc/proc.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: proc.ml,v 1.8 2007/10/30 12:37:16 xleroy Exp $ *) +(* $Id: proc.ml 8462 2007-10-30 12:37:16Z xleroy $ *) (* Description of the Sparc processor *) diff --git a/asmcomp/sparc/reload.ml b/asmcomp/sparc/reload.ml index 9d3898a5..a3558a7f 100644 --- a/asmcomp/sparc/reload.ml +++ b/asmcomp/sparc/reload.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: reload.ml,v 1.3 1999/11/17 18:56:47 xleroy Exp $ *) +(* $Id: reload.ml 2553 1999-11-17 18:59:06Z xleroy $ *) (* Reloading for the Sparc *) diff --git a/asmcomp/sparc/scheduling.ml b/asmcomp/sparc/scheduling.ml index ca8827fd..ebe9e7c2 100644 --- a/asmcomp/sparc/scheduling.ml +++ b/asmcomp/sparc/scheduling.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: scheduling.ml,v 1.5 2002/11/29 15:03:08 xleroy Exp $ *) +(* $Id: scheduling.ml 5303 2002-11-29 15:03:08Z xleroy $ *) open Cmm open Mach diff --git a/asmcomp/sparc/selection.ml b/asmcomp/sparc/selection.ml index 6af79721..37573ae4 100644 --- a/asmcomp/sparc/selection.ml +++ b/asmcomp/sparc/selection.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: selection.ml,v 1.8 2002/11/29 15:03:08 xleroy Exp $ *) +(* $Id: selection.ml 5303 2002-11-29 15:03:08Z xleroy $ *) (* Instruction selection for the Sparc processor *) diff --git a/asmcomp/spill.ml b/asmcomp/spill.ml index 2fba098f..93b32227 100644 --- a/asmcomp/spill.ml +++ b/asmcomp/spill.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: spill.ml,v 1.19 2007/01/29 12:10:50 xleroy Exp $ *) +(* $Id: spill.ml 7812 2007-01-29 12:11:18Z xleroy $ *) (* Insertion of moves to suggest possible spilling / reloading points before register allocation. *) diff --git a/asmcomp/spill.mli b/asmcomp/spill.mli index dfd5f1ee..a9fcd436 100644 --- a/asmcomp/spill.mli +++ b/asmcomp/spill.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: spill.mli,v 1.4 1999/11/17 18:56:38 xleroy Exp $ *) +(* $Id: spill.mli 2553 1999-11-17 18:59:06Z xleroy $ *) (* Insertion of moves to suggest possible spilling / reloading points before register allocation. *) diff --git a/asmcomp/split.ml b/asmcomp/split.ml index 74f2511c..391568d6 100644 --- a/asmcomp/split.ml +++ b/asmcomp/split.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: split.ml,v 1.10 2007/01/29 12:10:50 xleroy Exp $ *) +(* $Id: split.ml 7812 2007-01-29 12:11:18Z xleroy $ *) (* Renaming of registers at reload points to split live ranges. *) diff --git a/asmcomp/split.mli b/asmcomp/split.mli index 57c48d69..2cb16fda 100644 --- a/asmcomp/split.mli +++ b/asmcomp/split.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: split.mli,v 1.4 1999/11/17 18:56:38 xleroy Exp $ *) +(* $Id: split.mli 2553 1999-11-17 18:59:06Z xleroy $ *) (* Renaming of registers at reload points to split live ranges. *) diff --git a/asmrun/Makefile b/asmrun/Makefile index bc7cca2b..ac03dea5 100644 --- a/asmrun/Makefile +++ b/asmrun/Makefile @@ -11,7 +11,7 @@ # # ######################################################################### -# $Id: Makefile,v 1.59 2007/11/15 13:21:15 frisch Exp $ +# $Id: Makefile 8521 2007-11-15 13:21:15Z frisch $ include ../config/Makefile diff --git a/asmrun/Makefile.nt b/asmrun/Makefile.nt index c9b6061e..43f221cb 100644 --- a/asmrun/Makefile.nt +++ b/asmrun/Makefile.nt @@ -11,7 +11,7 @@ # # ######################################################################### -# $Id: Makefile.nt,v 1.28 2007/11/15 13:21:15 frisch Exp $ +# $Id: Makefile.nt 8521 2007-11-15 13:21:15Z frisch $ include ../config/Makefile diff --git a/asmrun/alpha.S b/asmrun/alpha.S index 1aa3a86d..98ce9139 100644 --- a/asmrun/alpha.S +++ b/asmrun/alpha.S @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: alpha.S,v 1.29 2004/01/03 12:51:18 doligez Exp $ */ +/* $Id: alpha.S 6050 2004-01-03 12:51:20Z doligez $ */ /* Asm part of the runtime system, Alpha processor */ diff --git a/asmrun/amd64.S b/asmrun/amd64.S index c9ce59d0..fe96110b 100644 --- a/asmrun/amd64.S +++ b/asmrun/amd64.S @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: amd64.S,v 1.12.2.1 2008/11/07 10:34:16 xleroy Exp $ */ +/* $Id: amd64.S 9119 2008-11-07 10:34:16Z xleroy $ */ /* Asm part of the runtime system, AMD64 processor */ /* Must be preprocessed by cpp */ diff --git a/asmrun/amd64nt.asm b/asmrun/amd64nt.asm index c441a275..caa4eb48 100644 --- a/asmrun/amd64nt.asm +++ b/asmrun/amd64nt.asm @@ -11,7 +11,7 @@ ; ;********************************************************************* -; $Id: amd64nt.asm,v 1.5 2007/03/01 10:26:51 xleroy Exp $ +; $Id: amd64nt.asm 7942 2007-03-01 10:26:51Z xleroy $ ; Asm part of the runtime system, AMD64 processor, Intel syntax diff --git a/asmrun/arm.S b/asmrun/arm.S index 985868eb..3a3a7323 100644 --- a/asmrun/arm.S +++ b/asmrun/arm.S @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: arm.S,v 1.16 2008/02/29 14:21:21 doligez Exp $ */ +/* $Id: arm.S 8823 2008-02-29 14:21:22Z doligez $ */ /* Asm part of the runtime system, ARM processor */ diff --git a/asmrun/backtrace.c b/asmrun/backtrace.c index 61e8d360..a875822b 100644 --- a/asmrun/backtrace.c +++ b/asmrun/backtrace.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: backtrace.c,v 1.4 2008/03/14 13:47:13 xleroy Exp $ */ +/* $Id: backtrace.c 8839 2008-03-14 13:47:24Z xleroy $ */ /* Stack backtrace for uncaught exceptions */ diff --git a/asmrun/fail.c b/asmrun/fail.c index 9cc5db24..0b2544cc 100644 --- a/asmrun/fail.c +++ b/asmrun/fail.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: fail.c,v 1.40 2008/09/18 11:23:28 xleroy Exp $ */ +/* $Id: fail.c 9030 2008-09-18 11:23:28Z xleroy $ */ /* Raising exceptions from C. */ diff --git a/asmrun/hppa.S b/asmrun/hppa.S index 0c0a8be1..e394ad47 100644 --- a/asmrun/hppa.S +++ b/asmrun/hppa.S @@ -11,7 +11,7 @@ ;* * ;********************************************************************* -; $Id: hppa.S,v 1.26 2006/04/16 23:28:15 doligez Exp $ +; $Id: hppa.S 7382 2006-04-16 23:28:22Z doligez $ ; Asm part of the runtime system for the HP PA-RISC processor. ; Must be preprocessed by cpp diff --git a/asmrun/i386.S b/asmrun/i386.S index 8aecc504..95198e0a 100644 --- a/asmrun/i386.S +++ b/asmrun/i386.S @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: i386.S,v 1.50 2008/08/01 08:04:57 xleroy Exp $ */ +/* $Id: i386.S 8962 2008-08-01 08:04:57Z xleroy $ */ /* Asm part of the runtime system, Intel 386 processor */ /* Must be preprocessed by cpp */ diff --git a/asmrun/i386nt.asm b/asmrun/i386nt.asm index 229ffc79..8f128919 100644 --- a/asmrun/i386nt.asm +++ b/asmrun/i386nt.asm @@ -11,7 +11,7 @@ ; ;********************************************************************* -; $Id: i386nt.asm,v 1.20 2007/01/29 12:10:52 xleroy Exp $ +; $Id: i386nt.asm 7812 2007-01-29 12:11:18Z xleroy $ ; Asm part of the runtime system, Intel 386 processor, Intel syntax diff --git a/asmrun/ia64.S b/asmrun/ia64.S index ad74a9f6..ca64ed55 100644 --- a/asmrun/ia64.S +++ b/asmrun/ia64.S @@ -10,9 +10,9 @@ /* */ /***********************************************************************/ -/* $Id: ia64.S,v 1.13 2004/01/03 12:51:19 doligez Exp $ */ +/* $Id: ia64.S 9341 2009-09-17 13:05:47Z xleroy $ */ -/* Asm part of the runtime system, Alpha processor */ +/* Asm part of the runtime system, IA64 processor */ #undef BROKEN_POSTINCREMENT @@ -68,15 +68,8 @@ caml_allocN: sub r4 = r4, r2 ;; cmp.ltu p0, p6 = r4, r5 (p6) br.ret.sptk b0 ;; - /* Stash return address at sp (in stack scratch area) */ - mov r3 = b0 ;; - st8 [sp] = r3 - /* Call GC */ - br.call.sptk b0 = caml_call_gc# ;; - /* Return to caller */ - ld8 r3 = [sp] ;; - mov b0 = r3 ;; - br.ret.sptk b0 + /* Fall through caml_call_gc */ + br.sptk.many caml_call_gc# .endp caml_allocN# diff --git a/asmrun/m68k.S b/asmrun/m68k.S index 8e6e9c3d..bf3cbfcb 100644 --- a/asmrun/m68k.S +++ b/asmrun/m68k.S @@ -11,7 +11,7 @@ |* * |*********************************************************************** -| $Id: m68k.S,v 1.15 2004/01/03 12:51:19 doligez Exp $ +| $Id: m68k.S 6050 2004-01-03 12:51:20Z doligez $ | Asm part of the runtime system, Motorola 68k processor diff --git a/asmrun/mips.s b/asmrun/mips.s index b5db5e03..2ce19ef2 100644 --- a/asmrun/mips.s +++ b/asmrun/mips.s @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: mips.s,v 1.12 2004/07/13 12:18:53 xleroy Exp $ */ +/* $Id: mips.s 6552 2004-07-13 12:19:15Z xleroy $ */ /* Asm part of the runtime system, Mips processor, IRIX n32 conventions */ diff --git a/asmrun/power-aix.S b/asmrun/power-aix.S index b8afea6f..0f0abf86 100644 --- a/asmrun/power-aix.S +++ b/asmrun/power-aix.S @@ -11,7 +11,7 @@ #* * #********************************************************************* -# $Id: power-aix.S,v 1.15 2004/01/03 12:51:19 doligez Exp $ +# $Id: power-aix.S 6050 2004-01-03 12:51:20Z doligez $ .csect .text[PR] diff --git a/asmrun/power-elf.S b/asmrun/power-elf.S index c890f46d..8a2f0011 100644 --- a/asmrun/power-elf.S +++ b/asmrun/power-elf.S @@ -11,7 +11,7 @@ /* */ /*********************************************************************/ -/* $Id: power-elf.S,v 1.18 2004/01/03 12:51:19 doligez Exp $ */ +/* $Id: power-elf.S 6050 2004-01-03 12:51:20Z doligez $ */ #define Addrglobal(reg,glob) \ addis reg, 0, glob@ha; \ diff --git a/asmrun/power-rhapsody.S b/asmrun/power-rhapsody.S index b7cfab59..48265379 100644 --- a/asmrun/power-rhapsody.S +++ b/asmrun/power-rhapsody.S @@ -11,7 +11,7 @@ /* */ /*********************************************************************/ -/* $Id: power-rhapsody.S,v 1.15 2007/01/29 12:10:52 xleroy Exp $ */ +/* $Id: power-rhapsody.S 7812 2007-01-29 12:11:18Z xleroy $ */ #ifdef __ppc64__ #define X(a,b) b diff --git a/asmrun/roots.c b/asmrun/roots.c index b375cf43..7953a961 100644 --- a/asmrun/roots.c +++ b/asmrun/roots.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: roots.c,v 1.45 2008/03/10 19:56:39 xleroy Exp $ */ +/* $Id: roots.c 8828 2008-03-10 19:56:39Z xleroy $ */ /* To walk the memory roots for garbage collection */ diff --git a/asmrun/signals_asm.c b/asmrun/signals_asm.c index d0b6e9cf..da4491d6 100644 --- a/asmrun/signals_asm.c +++ b/asmrun/signals_asm.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: signals_asm.c,v 1.6 2008/01/11 16:13:11 doligez Exp $ */ +/* $Id: signals_asm.c 8768 2008-01-11 16:13:18Z doligez $ */ /* Signal handling, code specific to the native-code compiler */ diff --git a/asmrun/signals_osdep.h b/asmrun/signals_osdep.h index 0422c2d1..102711d6 100644 --- a/asmrun/signals_osdep.h +++ b/asmrun/signals_osdep.h @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: signals_osdep.h,v 1.11.4.2 2009/03/28 15:18:31 xleroy Exp $ */ +/* $Id: signals_osdep.h 9194 2009-03-28 15:18:31Z xleroy $ */ /* Processor- and OS-dependent signal interface */ diff --git a/asmrun/sparc.S b/asmrun/sparc.S index 4ef6420f..d205c65e 100644 --- a/asmrun/sparc.S +++ b/asmrun/sparc.S @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: sparc.S,v 1.26 2004/10/06 06:33:25 garrigue Exp $ */ +/* $Id: sparc.S 6631 2004-10-06 06:33:25Z garrigue $ */ /* Asm part of the runtime system for the Sparc processor. */ /* Must be preprocessed by cpp */ diff --git a/asmrun/stack.h b/asmrun/stack.h index 82b41758..0b632406 100644 --- a/asmrun/stack.h +++ b/asmrun/stack.h @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: stack.h,v 1.35 2007/11/06 15:16:55 frisch Exp $ */ +/* $Id: stack.h 8477 2007-11-06 15:16:56Z frisch $ */ /* Machine-dependent interface with the asm code */ diff --git a/asmrun/startup.c b/asmrun/startup.c index b708c1e3..7508901d 100644 --- a/asmrun/startup.c +++ b/asmrun/startup.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: startup.c,v 1.36.2.1 2008/11/18 10:24:31 doligez Exp $ */ +/* $Id: startup.c 9131 2008-11-18 10:24:43Z doligez $ */ /* Start-up code */ diff --git a/boot/.cvsignore b/boot/.cvsignore index a0a2356c..5eeaef32 100644 --- a/boot/.cvsignore +++ b/boot/.cvsignore @@ -4,3 +4,4 @@ ocamlyacc camlheader myocamlbuild myocamlbuild.native +libcamlrun.a diff --git a/boot/ocamlc b/boot/ocamlc index 808d5b87f9a7d504617264bd59b130119b40fec7..ba7a52fd2c251035cf9dbf8ab2081b1a2d69e132 100755 GIT binary patch delta 174136 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 delta 173613 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 delta 63470 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 + close_out outchan; + remove_file outfile; + raise x + (* Output a bytecode executable as a C file *) let link_bytecode_as_c tolink outfile = let outchan = open_out outfile in - try + begin try (* The bytecode *) - output_string outchan "#include \n"; output_string outchan "\ -CAMLextern void caml_startup_code( - code_t code, asize_t code_size, - char *data, asize_t data_size, - char *section_table, asize_t section_table_size, +#ifdef __cplusplus\n\ +extern \"C\" {\n\ +#endif\n\ +#include \n\ +CAMLextern void caml_startup_code(\n\ + code_t code, asize_t code_size,\n\ + char *data, asize_t data_size,\n\ + char *section_table, asize_t section_table_size,\n\ char **argv);\n"; output_string outchan "static int caml_code[] = {\n"; Symtable.init(); Consistbl.clear crc_interfaces; - let output_fun = output_code_string outchan - and currpos_fun () = 0 in + let currpos = ref 0 in + let output_fun code = + output_code_string outchan code; + currpos := !currpos + String.length code + and currpos_fun () = !currpos in List.iter (link_file output_fun currpos_fun) tolink; (* The final STOP instruction *) Printf.fprintf outchan "\n0x%x};\n\n" Opcodes.opSTOP; @@ -415,25 +444,31 @@ CAMLextern void caml_startup_code( (* The table of primitives *) Symtable.output_primitive_table outchan; (* The entry point *) - output_string outchan "\n -void caml_startup(char ** argv) -{ - caml_startup_code(caml_code, sizeof(caml_code), - caml_data, sizeof(caml_data), - caml_sections, sizeof(caml_sections), - argv); -}\n"; + output_string outchan "\n\ +void caml_startup(char ** argv)\n\ +{\n\ + caml_startup_code(caml_code, sizeof(caml_code),\n\ + caml_data, sizeof(caml_data),\n\ + caml_sections, sizeof(caml_sections),\n\ + argv);\n\ +}\n\ +#ifdef __cplusplus\n\ +}\n\ +#endif\n"; close_out outchan with x -> close_out outchan; raise x + end; + if !Clflags.debug then + output_cds_file ((Filename.chop_extension outfile) ^ ".cds") (* Build a custom runtime *) let build_custom_runtime prim_name exec_name = - Ccomp.call_linker Ccomp.Exe exec_name + Ccomp.call_linker Ccomp.Exe exec_name ([prim_name] @ List.rev !Clflags.ccobjs @ ["-lcamlrun"]) - Config.bytecomp_c_libraries + (Clflags.std_include_flag "-I" ^ " " ^ Config.bytecomp_c_libraries) let append_bytecode_and_cleanup bytecode_name exec_name prim_name = let oc = open_out_gen [Open_wronly; Open_append; Open_binary] 0 exec_name in @@ -472,7 +507,20 @@ let link objfiles output_name = try link_bytecode tolink bytecode_name false; let poc = open_out prim_name in + output_string poc "\ + #ifdef __cplusplus\n\ + extern \"C\" {\n\ + #endif\n\ + #ifdef _WIN64\n\ + typedef __int64 value;\n\ + #else\n\ + typedef long value;\n\ + #endif\n"; Symtable.output_primitive_table poc; + output_string poc "\ + #ifdef __cplusplus\n\ + }\n\ + #endif\n"; close_out poc; let exec_name = fix_exec_name output_name in if not (build_custom_runtime prim_name exec_name) diff --git a/bytecomp/bytelink.mli b/bytecomp/bytelink.mli index bb59279f..99befe1b 100644 --- a/bytecomp/bytelink.mli +++ b/bytecomp/bytelink.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: bytelink.mli,v 1.12 2006/05/11 15:50:53 xleroy Exp $ *) +(* $Id: bytelink.mli 7422 2006-05-11 15:50:53Z xleroy $ *) (* Link .cmo files and produce a bytecode executable. *) diff --git a/bytecomp/bytepackager.ml b/bytecomp/bytepackager.ml index 7915aede..dc53e4df 100644 --- a/bytecomp/bytepackager.ml +++ b/bytecomp/bytepackager.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: bytepackager.ml,v 1.6.10.1 2009/04/02 09:06:32 xclerc Exp $ *) +(* $Id: bytepackager.ml 9221 2009-04-02 09:06:33Z xclerc $ *) (* "Package" a set of .cmo files into one .cmo file having the original compilation units as sub-modules. *) diff --git a/bytecomp/bytepackager.mli b/bytecomp/bytepackager.mli index 914cd59b..de5c0862 100644 --- a/bytecomp/bytepackager.mli +++ b/bytecomp/bytepackager.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: bytepackager.mli,v 1.1 2002/02/08 16:55:42 xleroy Exp $ *) +(* $Id: bytepackager.mli 4367 2002-02-08 16:55:44Z xleroy $ *) (* "Package" a set of .cmo files into one .cmo file having the original compilation units as sub-modules. *) diff --git a/bytecomp/bytesections.ml b/bytecomp/bytesections.ml index 1200a436..407aeec8 100644 --- a/bytecomp/bytesections.ml +++ b/bytecomp/bytesections.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: bytesections.ml,v 1.3 2004/02/22 15:07:50 xleroy Exp $ *) +(* $Id: bytesections.ml 6130 2004-02-22 15:07:51Z xleroy $ *) (* Handling of sections in bytecode executable files *) diff --git a/bytecomp/bytesections.mli b/bytecomp/bytesections.mli index 7d3d3155..a58ea59c 100644 --- a/bytecomp/bytesections.mli +++ b/bytecomp/bytesections.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: bytesections.mli,v 1.3 2004/02/22 15:07:50 xleroy Exp $ *) +(* $Id: bytesections.mli 6130 2004-02-22 15:07:51Z xleroy $ *) (* Handling of sections in bytecode executable files *) diff --git a/bytecomp/cmo_format.mli b/bytecomp/cmo_format.mli index 46f222c9..6d78f11e 100644 --- a/bytecomp/cmo_format.mli +++ b/bytecomp/cmo_format.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: cmo_format.mli,v 1.1 2006/05/11 15:50:53 xleroy Exp $ *) +(* $Id: cmo_format.mli 7422 2006-05-11 15:50:53Z xleroy $ *) (* Symbol table information for .cmo and .cma files *) diff --git a/bytecomp/dll.ml b/bytecomp/dll.ml index 65112a21..57e18232 100644 --- a/bytecomp/dll.ml +++ b/bytecomp/dll.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: dll.ml,v 1.13.14.1 2009/05/01 01:46:50 garrigue Exp $ *) +(* $Id: dll.ml 9249 2009-05-01 01:46:50Z garrigue $ *) (* Handling of dynamically-linked libraries *) diff --git a/bytecomp/dll.mli b/bytecomp/dll.mli index 46d162fe..1af28c40 100644 --- a/bytecomp/dll.mli +++ b/bytecomp/dll.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: dll.mli,v 1.6 2006/09/28 21:36:38 xleroy Exp $ *) +(* $Id: dll.mli 7656 2006-09-28 21:36:38Z xleroy $ *) (* Handling of dynamically-linked libraries *) diff --git a/bytecomp/emitcode.ml b/bytecomp/emitcode.ml index f607e7c0..755873d6 100644 --- a/bytecomp/emitcode.ml +++ b/bytecomp/emitcode.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: emitcode.ml,v 1.34 2008/07/24 05:35:22 frisch Exp $ *) +(* $Id: emitcode.ml 8930 2008-07-24 05:35:22Z frisch $ *) (* Generation of bytecode + relocation information *) diff --git a/bytecomp/emitcode.mli b/bytecomp/emitcode.mli index 5a09293d..6c78f046 100644 --- a/bytecomp/emitcode.mli +++ b/bytecomp/emitcode.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: emitcode.mli,v 1.15 2006/05/11 15:50:53 xleroy Exp $ *) +(* $Id: emitcode.mli 7422 2006-05-11 15:50:53Z xleroy $ *) (* Generation of bytecode for .cmo files *) diff --git a/bytecomp/instruct.ml b/bytecomp/instruct.ml index 2169ac74..59c1edba 100644 --- a/bytecomp/instruct.ml +++ b/bytecomp/instruct.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: instruct.ml,v 1.22.20.1 2009/04/02 09:06:32 xclerc Exp $ *) +(* $Id: instruct.ml 9221 2009-04-02 09:06:33Z xclerc $ *) open Lambda diff --git a/bytecomp/instruct.mli b/bytecomp/instruct.mli index ce97609f..89427c41 100644 --- a/bytecomp/instruct.mli +++ b/bytecomp/instruct.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: instruct.mli,v 1.22.20.1 2009/04/02 09:06:32 xclerc Exp $ *) +(* $Id: instruct.mli 9221 2009-04-02 09:06:33Z xclerc $ *) (* The type of the instructions of the abstract machine *) diff --git a/bytecomp/lambda.ml b/bytecomp/lambda.ml index 121f8898..10a7c2a6 100644 --- a/bytecomp/lambda.ml +++ b/bytecomp/lambda.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: lambda.ml,v 1.48 2008/08/01 16:57:10 mauny Exp $ *) +(* $Id: lambda.ml 8974 2008-08-01 16:57:10Z mauny $ *) open Misc open Path diff --git a/bytecomp/lambda.mli b/bytecomp/lambda.mli index 0476b874..68611e02 100644 --- a/bytecomp/lambda.mli +++ b/bytecomp/lambda.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: lambda.mli,v 1.46 2008/08/01 16:57:10 mauny Exp $ *) +(* $Id: lambda.mli 8974 2008-08-01 16:57:10Z mauny $ *) (* The "lambda" intermediate code *) diff --git a/bytecomp/matching.ml b/bytecomp/matching.ml index a9fbc46b..478af3b1 100644 --- a/bytecomp/matching.ml +++ b/bytecomp/matching.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: matching.ml,v 1.71 2008/08/01 16:57:10 mauny Exp $ *) +(* $Id: matching.ml 8974 2008-08-01 16:57:10Z mauny $ *) (* Compilation of pattern matching *) diff --git a/bytecomp/matching.mli b/bytecomp/matching.mli index 41b35963..5e258565 100644 --- a/bytecomp/matching.mli +++ b/bytecomp/matching.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: matching.mli,v 1.13 2008/08/01 16:57:10 mauny Exp $ *) +(* $Id: matching.mli 8974 2008-08-01 16:57:10Z mauny $ *) (* Compilation of pattern-matching *) diff --git a/bytecomp/meta.ml b/bytecomp/meta.ml index 08cf707b..3e2cdeb8 100644 --- a/bytecomp/meta.ml +++ b/bytecomp/meta.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: meta.ml,v 1.13 2004/04/16 13:46:20 starynke Exp $ *) +(* $Id: meta.ml 6224 2004-04-16 13:46:43Z starynke $ *) external global_data : unit -> Obj.t array = "caml_get_global_data" external realloc_global_data : int -> unit = "caml_realloc_global" diff --git a/bytecomp/meta.mli b/bytecomp/meta.mli index 0cbe85ab..a5bc0119 100644 --- a/bytecomp/meta.mli +++ b/bytecomp/meta.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: meta.mli,v 1.13 2004/04/16 13:46:27 starynke Exp $ *) +(* $Id: meta.mli 6224 2004-04-16 13:46:43Z starynke $ *) (* To control the runtime system and bytecode interpreter *) diff --git a/bytecomp/printinstr.ml b/bytecomp/printinstr.ml index c385ed09..1f0a095c 100644 --- a/bytecomp/printinstr.ml +++ b/bytecomp/printinstr.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: printinstr.ml,v 1.23 2005/08/25 15:35:16 doligez Exp $ *) +(* $Id: printinstr.ml 7031 2005-08-25 15:35:16Z doligez $ *) (* Pretty-print lists of instructions *) diff --git a/bytecomp/printinstr.mli b/bytecomp/printinstr.mli index 04250d8e..4b1efd69 100644 --- a/bytecomp/printinstr.mli +++ b/bytecomp/printinstr.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: printinstr.mli,v 1.5 2000/03/06 22:11:08 weis Exp $ *) +(* $Id: printinstr.mli 2908 2000-03-06 22:12:09Z weis $ *) (* Pretty-print lists of instructions *) diff --git a/bytecomp/printlambda.ml b/bytecomp/printlambda.ml index edb32d07..0c7fde69 100644 --- a/bytecomp/printlambda.ml +++ b/bytecomp/printlambda.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: printlambda.ml,v 1.55 2008/08/01 16:57:10 mauny Exp $ *) +(* $Id: printlambda.ml 8974 2008-08-01 16:57:10Z mauny $ *) open Format open Asttypes diff --git a/bytecomp/printlambda.mli b/bytecomp/printlambda.mli index 8493e599..4c0d5681 100644 --- a/bytecomp/printlambda.mli +++ b/bytecomp/printlambda.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: printlambda.mli,v 1.5 2000/03/06 22:11:10 weis Exp $ *) +(* $Id: printlambda.mli 2908 2000-03-06 22:12:09Z weis $ *) open Lambda diff --git a/bytecomp/runtimedef.mli b/bytecomp/runtimedef.mli index 38329db1..f89d192c 100644 --- a/bytecomp/runtimedef.mli +++ b/bytecomp/runtimedef.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: runtimedef.mli,v 1.4 1999/11/17 18:57:01 xleroy Exp $ *) +(* $Id: runtimedef.mli 2553 1999-11-17 18:59:06Z xleroy $ *) (* Values and functions known and/or provided by the runtime system *) diff --git a/bytecomp/simplif.ml b/bytecomp/simplif.ml index 3db3d489..7f087650 100644 --- a/bytecomp/simplif.ml +++ b/bytecomp/simplif.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: simplif.ml,v 1.25 2008/03/19 10:26:56 maranget Exp $ *) +(* $Id: simplif.ml 8850 2008-03-19 10:26:56Z maranget $ *) (* Elimination of useless Llet(Alias) bindings. Also transform let-bound references into variables. *) diff --git a/bytecomp/simplif.mli b/bytecomp/simplif.mli index 16b1562f..fd8eab74 100644 --- a/bytecomp/simplif.mli +++ b/bytecomp/simplif.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: simplif.mli,v 1.3 1999/11/17 18:57:01 xleroy Exp $ *) +(* $Id: simplif.mli 2553 1999-11-17 18:59:06Z xleroy $ *) (* Elimination of useless Llet(Alias) bindings *) diff --git a/bytecomp/symtable.ml b/bytecomp/symtable.ml index fd38b811..244e5886 100644 --- a/bytecomp/symtable.ml +++ b/bytecomp/symtable.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: symtable.ml,v 1.39 2006/05/11 15:50:53 xleroy Exp $ *) +(* $Id: symtable.ml 9347 2009-09-23 14:31:18Z xleroy $ *) (* To assign numbers to globals and primitives *) @@ -114,14 +114,10 @@ open Printf let output_primitive_table outchan = let prim = all_primitives() in - fprintf outchan "\ - #ifdef __cplusplus\n\ - extern \"C\" {\n\ - #endif\n"; for i = 0 to Array.length prim - 1 do - fprintf outchan "extern long %s();\n" prim.(i) + fprintf outchan "extern value %s();\n" prim.(i) done; - fprintf outchan "typedef long (*primitive)();\n"; + fprintf outchan "typedef value (*primitive)();\n"; fprintf outchan "primitive caml_builtin_cprim[] = {\n"; for i = 0 to Array.length prim - 1 do fprintf outchan " %s,\n" prim.(i) @@ -131,11 +127,7 @@ let output_primitive_table outchan = for i = 0 to Array.length prim - 1 do fprintf outchan " \"%s\",\n" prim.(i) done; - fprintf outchan " (char *) 0 };\n"; - fprintf outchan "\ - #ifdef __cplusplus\n\ - }\n\ - #endif\n" + fprintf outchan " (char *) 0 };\n" (* Initialization for batch linking *) diff --git a/bytecomp/symtable.mli b/bytecomp/symtable.mli index 5743a9b1..2b1583f2 100644 --- a/bytecomp/symtable.mli +++ b/bytecomp/symtable.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: symtable.mli,v 1.15 2006/05/11 15:50:53 xleroy Exp $ *) +(* $Id: symtable.mli 7422 2006-05-11 15:50:53Z xleroy $ *) (* Assign locations and numbers to globals and primitives *) diff --git a/bytecomp/translclass.ml b/bytecomp/translclass.ml index c883e188..6aec67cc 100644 --- a/bytecomp/translclass.ml +++ b/bytecomp/translclass.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: translclass.ml,v 1.43.4.1 2008/10/08 13:07:13 doligez Exp $ *) +(* $Id: translclass.ml 9079 2008-10-08 13:09:39Z doligez $ *) open Misc open Asttypes diff --git a/bytecomp/translclass.mli b/bytecomp/translclass.mli index ab813c10..135f8d86 100644 --- a/bytecomp/translclass.mli +++ b/bytecomp/translclass.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: translclass.mli,v 1.12 2006/04/05 02:28:12 garrigue Exp $ *) +(* $Id: translclass.mli 7372 2006-04-05 02:28:13Z garrigue $ *) open Typedtree open Lambda diff --git a/bytecomp/translcore.ml b/bytecomp/translcore.ml index d4be9aa9..edf8da93 100644 --- a/bytecomp/translcore.ml +++ b/bytecomp/translcore.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: translcore.ml,v 1.110 2008/08/27 10:23:21 garrigue Exp $ *) +(* $Id: translcore.ml 8992 2008-08-27 10:23:21Z garrigue $ *) (* Translation from typed abstract syntax to lambda terms, for the core language *) diff --git a/bytecomp/translcore.mli b/bytecomp/translcore.mli index 761c9e81..9f8e1ac2 100644 --- a/bytecomp/translcore.mli +++ b/bytecomp/translcore.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: translcore.mli,v 1.19 2007/05/16 08:21:40 doligez Exp $ *) +(* $Id: translcore.mli 8232 2007-05-16 08:21:41Z doligez $ *) (* Translation from typed abstract syntax to lambda terms, for the core language *) diff --git a/bytecomp/translmod.ml b/bytecomp/translmod.ml index 4a7a9700..c05e1867 100644 --- a/bytecomp/translmod.ml +++ b/bytecomp/translmod.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: translmod.ml,v 1.56 2008/07/24 05:35:22 frisch Exp $ *) +(* $Id: translmod.ml 8930 2008-07-24 05:35:22Z frisch $ *) (* Translation from typed abstract syntax to lambda terms, for the module language *) diff --git a/bytecomp/translmod.mli b/bytecomp/translmod.mli index b292c34c..39eaa076 100644 --- a/bytecomp/translmod.mli +++ b/bytecomp/translmod.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: translmod.mli,v 1.14 2008/07/24 05:35:22 frisch Exp $ *) +(* $Id: translmod.mli 8930 2008-07-24 05:35:22Z frisch $ *) (* Translation from typed abstract syntax to lambda terms, for the module language *) diff --git a/bytecomp/translobj.ml b/bytecomp/translobj.ml index 9133784f..5d042346 100644 --- a/bytecomp/translobj.ml +++ b/bytecomp/translobj.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: translobj.ml,v 1.9.26.1 2008/10/08 13:07:13 doligez Exp $ *) +(* $Id: translobj.ml 9079 2008-10-08 13:09:39Z doligez $ *) open Misc open Primitive diff --git a/bytecomp/translobj.mli b/bytecomp/translobj.mli index 7146d5ef..7a0749b0 100644 --- a/bytecomp/translobj.mli +++ b/bytecomp/translobj.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: translobj.mli,v 1.6.26.1 2008/10/08 13:07:13 doligez Exp $ *) +(* $Id: translobj.mli 9079 2008-10-08 13:09:39Z doligez $ *) open Lambda diff --git a/bytecomp/typeopt.ml b/bytecomp/typeopt.ml index 366bb3e9..c7b90034 100644 --- a/bytecomp/typeopt.ml +++ b/bytecomp/typeopt.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: typeopt.ml,v 1.13 2008/02/29 14:21:22 doligez Exp $ *) +(* $Id: typeopt.ml 9334 2009-09-16 09:44:33Z xleroy $ *) (* Auxiliaries for type-based optimizations, e.g. array kinds *) @@ -22,18 +22,17 @@ open Types open Typedtree open Lambda +let scrape env ty = + (Ctype.repr (Ctype.expand_head_opt env (Ctype.correct_levels ty))).desc + let has_base_type exp base_ty_path = - let exp_ty = - Ctype.expand_head_opt exp.exp_env (Ctype.correct_levels exp.exp_type) in - match Ctype.repr exp_ty with - {desc = Tconstr(p, _, _)} -> Path.same p base_ty_path + match scrape exp.exp_env exp.exp_type with + | Tconstr(p, _, _) -> Path.same p base_ty_path | _ -> false let maybe_pointer exp = - let exp_ty = - Ctype.expand_head_opt exp.exp_env (Ctype.correct_levels exp.exp_type) in - match (Ctype.repr exp_ty).desc with - Tconstr(p, args, abbrev) -> + match scrape exp.exp_env exp.exp_type with + | Tconstr(p, args, abbrev) -> not (Path.same p Predef.path_int) && not (Path.same p Predef.path_char) && begin try @@ -50,9 +49,8 @@ let maybe_pointer exp = | _ -> true let array_element_kind env ty = - let ty = Ctype.repr (Ctype.expand_head_opt env ty) in - match ty.desc with - Tvar | Tunivar -> + match scrape env ty with + | Tvar | Tunivar -> Pgenarray | Tconstr(p, args, abbrev) -> if Path.same p Predef.path_int || Path.same p Predef.path_char then @@ -85,9 +83,8 @@ let array_element_kind env ty = Paddrarray let array_kind_gen ty env = - let array_ty = Ctype.expand_head_opt env (Ctype.correct_levels ty) in - match (Ctype.repr array_ty).desc with - Tconstr(p, [elt_ty], _) | Tpoly({desc = Tconstr(p, [elt_ty], _)}, _) + match scrape env ty with + | Tconstr(p, [elt_ty], _) | Tpoly({desc = Tconstr(p, [elt_ty], _)}, _) when Path.same p Predef.path_array -> array_element_kind env elt_ty | _ -> @@ -98,9 +95,9 @@ let array_kind exp = array_kind_gen exp.exp_type exp.exp_env let array_pattern_kind pat = array_kind_gen pat.pat_type pat.pat_env -let bigarray_decode_type ty tbl dfl = - match (Ctype.repr ty).desc with - Tconstr(Pdot(Pident mod_id, type_name, _), [], _) +let bigarray_decode_type env ty tbl dfl = + match scrape env ty with + | Tconstr(Pdot(Pident mod_id, type_name, _), [], _) when Ident.name mod_id = "Bigarray" -> begin try List.assoc type_name tbl with Not_found -> dfl end | _ -> @@ -125,10 +122,9 @@ let layout_table = "fortran_layout", Pbigarray_fortran_layout] let bigarray_kind_and_layout exp = - let ty = Ctype.repr (Ctype.expand_head_opt exp.exp_env exp.exp_type) in - match ty.desc with - Tconstr(p, [caml_type; elt_type; layout_type], abbrev) -> - (bigarray_decode_type elt_type kind_table Pbigarray_unknown, - bigarray_decode_type layout_type layout_table Pbigarray_unknown_layout) + match scrape exp.exp_env exp.exp_type with + | Tconstr(p, [caml_type; elt_type; layout_type], abbrev) -> + (bigarray_decode_type exp.exp_env elt_type kind_table Pbigarray_unknown, + bigarray_decode_type exp.exp_env layout_type layout_table Pbigarray_unknown_layout) | _ -> (Pbigarray_unknown, Pbigarray_unknown_layout) diff --git a/bytecomp/typeopt.mli b/bytecomp/typeopt.mli index d057be61..e7d3a48d 100644 --- a/bytecomp/typeopt.mli +++ b/bytecomp/typeopt.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: typeopt.mli,v 1.4 2000/02/28 15:45:50 xleroy Exp $ *) +(* $Id: typeopt.mli 2873 2000-02-28 15:45:50Z xleroy $ *) (* Auxiliaries for type-based optimizations, e.g. array kinds *) diff --git a/byterun/.cvsignore b/byterun/.cvsignore index 9020f408..b4714b05 100644 --- a/byterun/.cvsignore +++ b/byterun/.cvsignore @@ -15,3 +15,5 @@ interp.a.lst *.[sd]obj *.lib .gdb_history +*.so +*.a diff --git a/byterun/Makefile b/byterun/Makefile index 221466a1..47172726 100644 --- a/byterun/Makefile +++ b/byterun/Makefile @@ -11,7 +11,7 @@ # # ######################################################################### -# $Id: Makefile,v 1.64.2.5 2009/05/25 12:25:25 doligez Exp $ +# $Id: Makefile 9280 2009-05-25 12:25:25Z doligez $ include Makefile.common diff --git a/byterun/Makefile.common b/byterun/Makefile.common index 9580b86b..be957f04 100755 --- a/byterun/Makefile.common +++ b/byterun/Makefile.common @@ -11,7 +11,7 @@ # # ######################################################################### -# $Id: Makefile.common,v 1.6.2.1 2009/05/25 12:25:25 doligez Exp $ +# $Id: Makefile.common 9280 2009-05-25 12:25:25Z doligez $ include ../config/Makefile diff --git a/byterun/Makefile.nt b/byterun/Makefile.nt index 7691e23e..bc25e819 100644 --- a/byterun/Makefile.nt +++ b/byterun/Makefile.nt @@ -11,7 +11,7 @@ # # ######################################################################### -# $Id: Makefile.nt,v 1.48.2.1 2008/11/26 13:26:53 xleroy Exp $ +# $Id: Makefile.nt 9142 2008-11-26 13:26:53Z xleroy $ include Makefile.common diff --git a/byterun/alloc.c b/byterun/alloc.c index 5eb8ec5c..1c1f11fa 100644 --- a/byterun/alloc.c +++ b/byterun/alloc.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: alloc.c,v 1.29 2007/02/09 13:31:15 doligez Exp $ */ +/* $Id: alloc.c 7849 2007-02-09 13:31:15Z doligez $ */ /* 1. Allocation functions doing the same work as the macros in the case where [Setup_for_gc] and [Restore_after_gc] are no-ops. diff --git a/byterun/alloc.h b/byterun/alloc.h index 5960539b..af81bee7 100644 --- a/byterun/alloc.h +++ b/byterun/alloc.h @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: alloc.h,v 1.18 2005/09/22 14:21:50 xleroy Exp $ */ +/* $Id: alloc.h 7064 2005-09-22 14:21:50Z xleroy $ */ #ifndef CAML_ALLOC_H #define CAML_ALLOC_H diff --git a/byterun/array.c b/byterun/array.c index 88f16229..e6fe6f32 100644 --- a/byterun/array.c +++ b/byterun/array.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: array.c,v 1.26 2008/09/08 09:43:28 frisch Exp $ */ +/* $Id: array.c 8995 2008-09-08 09:43:28Z frisch $ */ /* Operations on arrays */ diff --git a/byterun/backtrace.c b/byterun/backtrace.c index eb240fc3..304fe44a 100644 --- a/byterun/backtrace.c +++ b/byterun/backtrace.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: backtrace.c,v 1.25 2008/03/14 13:47:24 xleroy Exp $ */ +/* $Id: backtrace.c 9300 2009-06-18 11:17:16Z xclerc $ */ /* Stack backtrace for uncaught exceptions */ @@ -39,6 +39,7 @@ CAMLexport int caml_backtrace_active = 0; CAMLexport int caml_backtrace_pos = 0; CAMLexport code_t * caml_backtrace_buffer = NULL; CAMLexport value caml_backtrace_last_exn = Val_unit; +CAMLexport char * caml_cds_file = NULL; #define BACKTRACE_BUFFER_SIZE 1024 /* Location of fields in the Instruct.debug_event record */ @@ -135,7 +136,11 @@ static value read_debug_info(void) uint32 num_events, orig, i; value evl, l; - exec_name = caml_exe_name; + if (caml_cds_file != NULL) { + exec_name = caml_cds_file; + } else { + exec_name = caml_exe_name; + } fd = caml_attempt_open(&exec_name, &trail, 1); if (fd < 0) CAMLreturn(Val_false); caml_read_section_descriptors(fd, &trail); diff --git a/byterun/backtrace.h b/byterun/backtrace.h index 25fbfb21..f3327d0d 100644 --- a/byterun/backtrace.h +++ b/byterun/backtrace.h @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: backtrace.h,v 1.8 2008/03/14 13:47:24 xleroy Exp $ */ +/* $Id: backtrace.h 9300 2009-06-18 11:17:16Z xclerc $ */ #ifndef CAML_BACKTRACE_H #define CAML_BACKTRACE_H @@ -22,6 +22,7 @@ CAMLextern int caml_backtrace_active; CAMLextern int caml_backtrace_pos; CAMLextern code_t * caml_backtrace_buffer; CAMLextern value caml_backtrace_last_exn; +CAMLextern char * caml_cds_file; CAMLprim value caml_record_backtrace(value vflag); #ifndef NATIVE_CODE diff --git a/byterun/callback.c b/byterun/callback.c index 2a5ea816..c30716b3 100644 --- a/byterun/callback.c +++ b/byterun/callback.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: callback.c,v 1.24 2006/09/11 12:12:24 doligez Exp $ */ +/* $Id: callback.c 7596 2006-09-11 12:12:24Z doligez $ */ /* Callbacks from C to Caml */ diff --git a/byterun/callback.h b/byterun/callback.h index e7339473..9937832b 100644 --- a/byterun/callback.h +++ b/byterun/callback.h @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: callback.h,v 1.14 2006/09/11 12:12:24 doligez Exp $ */ +/* $Id: callback.h 7596 2006-09-11 12:12:24Z doligez $ */ /* Callbacks from C to Caml */ diff --git a/byterun/compact.c b/byterun/compact.c index 710c0969..b10b6353 100644 --- a/byterun/compact.c +++ b/byterun/compact.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: compact.c,v 1.26 2008/02/29 12:56:15 doligez Exp $ */ +/* $Id: compact.c 8822 2008-02-29 12:56:15Z doligez $ */ #include diff --git a/byterun/compact.h b/byterun/compact.h index 424fe3e6..155e7ce8 100644 --- a/byterun/compact.h +++ b/byterun/compact.h @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: compact.h,v 1.7 2003/12/31 14:20:35 doligez Exp $ */ +/* $Id: compact.h 6044 2003-12-31 14:20:40Z doligez $ */ #ifndef CAML_COMPACT_H #define CAML_COMPACT_H diff --git a/byterun/compare.c b/byterun/compare.c index c49316f3..a383724e 100644 --- a/byterun/compare.c +++ b/byterun/compare.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: compare.c,v 1.39 2008/01/11 16:13:16 doligez Exp $ */ +/* $Id: compare.c 8768 2008-01-11 16:13:18Z doligez $ */ #include #include diff --git a/byterun/compare.h b/byterun/compare.h index 5f29b1f9..603d52bc 100644 --- a/byterun/compare.h +++ b/byterun/compare.h @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: compare.h,v 1.2 2003/12/31 14:20:35 doligez Exp $ */ +/* $Id: compare.h 6044 2003-12-31 14:20:40Z doligez $ */ #ifndef CAML_COMPARE_H #define CAML_COMPARE_H diff --git a/byterun/compatibility.h b/byterun/compatibility.h index 3c2d775c..fdc87b7c 100644 --- a/byterun/compatibility.h +++ b/byterun/compatibility.h @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: compatibility.h,v 1.17 2008/07/28 11:59:55 doligez Exp $ */ +/* $Id: compatibility.h 8953 2008-07-28 11:59:55Z doligez $ */ /* definitions for compatibility with old identifiers */ diff --git a/byterun/config.h b/byterun/config.h index 265d92a4..4606261e 100644 --- a/byterun/config.h +++ b/byterun/config.h @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: config.h,v 1.42.4.1 2008/11/02 14:30:05 xleroy Exp $ */ +/* $Id: config.h 9117 2008-11-02 14:30:05Z xleroy $ */ #ifndef CAML_CONFIG_H #define CAML_CONFIG_H diff --git a/byterun/custom.c b/byterun/custom.c index c83ed970..44bb5535 100644 --- a/byterun/custom.c +++ b/byterun/custom.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: custom.c,v 1.15 2005/09/22 14:21:50 xleroy Exp $ */ +/* $Id: custom.c 7064 2005-09-22 14:21:50Z xleroy $ */ #include diff --git a/byterun/custom.h b/byterun/custom.h index a8fc63f4..cddc6e96 100644 --- a/byterun/custom.h +++ b/byterun/custom.h @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: custom.h,v 1.13 2005/09/22 14:21:50 xleroy Exp $ */ +/* $Id: custom.h 7064 2005-09-22 14:21:50Z xleroy $ */ #ifndef CAML_CUSTOM_H #define CAML_CUSTOM_H diff --git a/byterun/debugger.c b/byterun/debugger.c index dd201fe0..378158d0 100644 --- a/byterun/debugger.c +++ b/byterun/debugger.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: debugger.c,v 1.31 2008/07/29 08:31:41 xleroy Exp $ */ +/* $Id: debugger.c 8955 2008-07-29 08:31:41Z xleroy $ */ /* Interface with the debugger */ diff --git a/byterun/debugger.h b/byterun/debugger.h index e030f971..124a59b3 100644 --- a/byterun/debugger.h +++ b/byterun/debugger.h @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: debugger.h,v 1.10 2005/09/22 14:21:50 xleroy Exp $ */ +/* $Id: debugger.h 7064 2005-09-22 14:21:50Z xleroy $ */ /* Interface with the debugger */ diff --git a/byterun/dynlink.c b/byterun/dynlink.c index ef8dcc07..cd6e8f6b 100644 --- a/byterun/dynlink.c +++ b/byterun/dynlink.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: dynlink.c,v 1.18 2008/04/22 12:24:10 frisch Exp $ */ +/* $Id: dynlink.c 8873 2008-04-22 12:24:10Z frisch $ */ /* Dynamic loading of C primitives. */ diff --git a/byterun/dynlink.h b/byterun/dynlink.h index 6b4f3014..aed9c03e 100644 --- a/byterun/dynlink.h +++ b/byterun/dynlink.h @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: dynlink.h,v 1.8 2004/02/22 15:07:51 xleroy Exp $ */ +/* $Id: dynlink.h 6130 2004-02-22 15:07:51Z xleroy $ */ /* Dynamic loading of C primitives. */ diff --git a/byterun/exec.h b/byterun/exec.h index ac788cd3..d126ea84 100644 --- a/byterun/exec.h +++ b/byterun/exec.h @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: exec.h,v 1.14 2004/06/01 12:36:34 xleroy Exp $ */ +/* $Id: exec.h 6359 2004-06-01 12:36:34Z xleroy $ */ /* exec.h : format of executable bytecode files */ diff --git a/byterun/extern.c b/byterun/extern.c index 24c58336..0e7bc62e 100644 --- a/byterun/extern.c +++ b/byterun/extern.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: extern.c,v 1.64 2008/08/04 11:45:58 xleroy Exp $ */ +/* $Id: extern.c 8978 2008-08-04 11:45:58Z xleroy $ */ /* Structured output */ diff --git a/byterun/fail.c b/byterun/fail.c index 11146f46..72af1f0e 100644 --- a/byterun/fail.c +++ b/byterun/fail.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: fail.c,v 1.32 2008/09/18 11:23:28 xleroy Exp $ */ +/* $Id: fail.c 9030 2008-09-18 11:23:28Z xleroy $ */ /* Raising exceptions from C. */ diff --git a/byterun/fail.h b/byterun/fail.h index ab7b1908..438728f9 100644 --- a/byterun/fail.h +++ b/byterun/fail.h @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: fail.h,v 1.27 2008/09/18 11:23:28 xleroy Exp $ */ +/* $Id: fail.h 9030 2008-09-18 11:23:28Z xleroy $ */ #ifndef CAML_FAIL_H #define CAML_FAIL_H diff --git a/byterun/finalise.c b/byterun/finalise.c index f352f28a..c0042b76 100644 --- a/byterun/finalise.c +++ b/byterun/finalise.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: finalise.c,v 1.23.2.1 2009/05/18 09:37:46 doligez Exp $ */ +/* $Id: finalise.c 9259 2009-05-18 09:37:46Z doligez $ */ /* Handling of finalised values. */ diff --git a/byterun/finalise.h b/byterun/finalise.h index 1ed4925d..cca82a1f 100644 --- a/byterun/finalise.h +++ b/byterun/finalise.h @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: finalise.h,v 1.5 2004/01/02 19:23:21 doligez Exp $ */ +/* $Id: finalise.h 6047 2004-01-02 19:23:29Z doligez $ */ #ifndef CAML_FINALISE_H #define CAML_FINALISE_H diff --git a/byterun/fix_code.c b/byterun/fix_code.c index cf732755..ac6281f2 100644 --- a/byterun/fix_code.c +++ b/byterun/fix_code.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: fix_code.c,v 1.31 2004/05/26 11:10:51 garrigue Exp $ */ +/* $Id: fix_code.c 6331 2004-05-26 11:10:52Z garrigue $ */ /* Handling of blocks of bytecode (endianness switch, threading). */ diff --git a/byterun/fix_code.h b/byterun/fix_code.h index c0ec39b8..3a841bb9 100644 --- a/byterun/fix_code.h +++ b/byterun/fix_code.h @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: fix_code.h,v 1.17 2004/01/02 19:23:21 doligez Exp $ */ +/* $Id: fix_code.h 6047 2004-01-02 19:23:29Z doligez $ */ /* Handling of blocks of bytecode (endianness switch, threading). */ diff --git a/byterun/floats.c b/byterun/floats.c index cdaff761..86f027ee 100644 --- a/byterun/floats.c +++ b/byterun/floats.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: floats.c,v 1.50 2008/08/02 11:02:28 xleroy Exp $ */ +/* $Id: floats.c 8976 2008-08-02 11:02:28Z xleroy $ */ /* The interface of this file is in "mlvalues.h" and "alloc.h" */ diff --git a/byterun/freelist.c b/byterun/freelist.c index ae9f4ce1..4201dfd9 100644 --- a/byterun/freelist.c +++ b/byterun/freelist.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: freelist.c,v 1.20.4.1 2008/11/18 10:24:42 doligez Exp $ */ +/* $Id: freelist.c 9131 2008-11-18 10:24:43Z doligez $ */ #define FREELIST_DEBUG 0 #if FREELIST_DEBUG diff --git a/byterun/freelist.h b/byterun/freelist.h index 1ec93e91..930f6894 100644 --- a/byterun/freelist.h +++ b/byterun/freelist.h @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: freelist.h,v 1.13.4.1 2008/11/18 10:24:43 doligez Exp $ */ +/* $Id: freelist.h 9131 2008-11-18 10:24:43Z doligez $ */ /* Free lists of heap blocks. */ diff --git a/byterun/gc.h b/byterun/gc.h index 6f77fc46..7acaea82 100644 --- a/byterun/gc.h +++ b/byterun/gc.h @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: gc.h,v 1.15 2004/07/19 13:20:06 xleroy Exp $ */ +/* $Id: gc.h 6557 2004-07-19 13:20:06Z xleroy $ */ #ifndef CAML_GC_H #define CAML_GC_H diff --git a/byterun/gc_ctrl.c b/byterun/gc_ctrl.c index 69114da6..d38c704e 100644 --- a/byterun/gc_ctrl.c +++ b/byterun/gc_ctrl.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: gc_ctrl.c,v 1.53.4.2 2008/11/20 18:33:13 doligez Exp $ */ +/* $Id: gc_ctrl.c 9409 2009-11-04 12:24:35Z doligez $ */ #include "alloc.h" #include "compact.h" @@ -41,7 +41,7 @@ intnat caml_stat_minor_collections = 0, caml_stat_compactions = 0, caml_stat_heap_chunks = 0; -extern asize_t caml_major_heap_increment; /* bytes; see major_gc.c */ +extern uintnat caml_major_heap_increment; /* bytes; see major_gc.c */ extern uintnat caml_percent_free; /* see major_gc.c */ extern uintnat caml_percent_max; /* see compact.c */ extern uintnat caml_allocation_policy; /* see freelist.c */ @@ -419,7 +419,7 @@ static void test_and_compact (void) fp = 100.0 * caml_fl_cur_size / (Wsize_bsize (caml_stat_heap_size) - caml_fl_cur_size); - if (fp > 1000000.0) fp = 1000000.0; + if (fp > 999999.0) fp = 999999.0; caml_gc_message (0x200, "Estimated overhead (lower bound) = %" ARCH_INTNAT_PRINTF_FORMAT "u%%\n", (uintnat) fp); diff --git a/byterun/gc_ctrl.h b/byterun/gc_ctrl.h index 6c3d9ea8..512f986f 100644 --- a/byterun/gc_ctrl.h +++ b/byterun/gc_ctrl.h @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: gc_ctrl.h,v 1.16 2005/09/22 14:21:50 xleroy Exp $ */ +/* $Id: gc_ctrl.h 7064 2005-09-22 14:21:50Z xleroy $ */ #ifndef CAML_GC_CTRL_H #define CAML_GC_CTRL_H diff --git a/byterun/globroots.c b/byterun/globroots.c index 3f60e95d..38aac416 100644 --- a/byterun/globroots.c +++ b/byterun/globroots.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: globroots.c,v 1.11.2.1 2009/03/28 15:26:37 xleroy Exp $ */ +/* $Id: globroots.c 9195 2009-03-28 15:26:37Z xleroy $ */ /* Registration of global memory roots */ diff --git a/byterun/globroots.h b/byterun/globroots.h index faa23032..3f1e6c4b 100644 --- a/byterun/globroots.h +++ b/byterun/globroots.h @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: globroots.h,v 1.5 2008/03/10 19:56:39 xleroy Exp $ */ +/* $Id: globroots.h 8828 2008-03-10 19:56:39Z xleroy $ */ /* Registration of global memory roots */ diff --git a/byterun/hash.c b/byterun/hash.c index dc0d58dc..c25ffa98 100644 --- a/byterun/hash.c +++ b/byterun/hash.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: hash.c,v 1.26 2008/08/01 14:10:36 xleroy Exp $ */ +/* $Id: hash.c 8970 2008-08-01 14:10:36Z xleroy $ */ /* The generic hashing primitive */ diff --git a/byterun/instrtrace.c b/byterun/instrtrace.c index fbff0013..b301c455 100644 --- a/byterun/instrtrace.c +++ b/byterun/instrtrace.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: instrtrace.c,v 1.22 2008/01/03 09:37:09 xleroy Exp $ */ +/* $Id: instrtrace.c 8743 2008-01-03 09:37:10Z xleroy $ */ /* Trace the instructions executed */ diff --git a/byterun/instrtrace.h b/byterun/instrtrace.h index a9d1716c..1e7657bc 100644 --- a/byterun/instrtrace.h +++ b/byterun/instrtrace.h @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: instrtrace.h,v 1.9 2005/09/22 14:21:50 xleroy Exp $ */ +/* $Id: instrtrace.h 7064 2005-09-22 14:21:50Z xleroy $ */ /* Trace the instructions executed */ diff --git a/byterun/instruct.h b/byterun/instruct.h index 1e6cda78..c684dcf9 100644 --- a/byterun/instruct.h +++ b/byterun/instruct.h @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: instruct.h,v 1.20 2004/05/26 11:10:51 garrigue Exp $ */ +/* $Id: instruct.h 6331 2004-05-26 11:10:52Z garrigue $ */ /* The instruction set. */ diff --git a/byterun/int64_emul.h b/byterun/int64_emul.h index f788103c..a5a5024e 100644 --- a/byterun/int64_emul.h +++ b/byterun/int64_emul.h @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: int64_emul.h,v 1.5.18.1 2009/03/28 18:34:19 xleroy Exp $ */ +/* $Id: int64_emul.h 9202 2009-03-28 18:34:19Z xleroy $ */ /* Software emulation of 64-bit integer arithmetic, for C compilers that do not support it. */ diff --git a/byterun/int64_format.h b/byterun/int64_format.h index 71a1634f..a0a4f256 100644 --- a/byterun/int64_format.h +++ b/byterun/int64_format.h @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: int64_format.h,v 1.2 2003/12/15 18:10:47 doligez Exp $ */ +/* $Id: int64_format.h 6021 2003-12-15 18:10:51Z doligez $ */ /* printf-like formatting of 64-bit integers, in case the C library printf() function does not support them. */ diff --git a/byterun/int64_native.h b/byterun/int64_native.h index 9fe40cbf..3a437df3 100644 --- a/byterun/int64_native.h +++ b/byterun/int64_native.h @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: int64_native.h,v 1.5.18.1 2009/03/28 18:34:19 xleroy Exp $ */ +/* $Id: int64_native.h 9202 2009-03-28 18:34:19Z xleroy $ */ /* Wrapper macros around native 64-bit integer arithmetic, so that it has the same interface as the software emulation diff --git a/byterun/intern.c b/byterun/intern.c index 8cb25e6c..78972f6a 100644 --- a/byterun/intern.c +++ b/byterun/intern.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: intern.c,v 1.61 2008/01/11 16:13:16 doligez Exp $ */ +/* $Id: intern.c 8768 2008-01-11 16:13:18Z doligez $ */ /* Structured input, compact format */ diff --git a/byterun/interp.c b/byterun/interp.c index 7e997871..0a2f0438 100644 --- a/byterun/interp.c +++ b/byterun/interp.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: interp.c,v 1.97.2.1 2009/05/25 08:02:16 xleroy Exp $ */ +/* $Id: interp.c 9279 2009-05-25 08:03:14Z xleroy $ */ /* The bytecode interpreter */ #include diff --git a/byterun/interp.h b/byterun/interp.h index 299b0917..8b83903c 100644 --- a/byterun/interp.h +++ b/byterun/interp.h @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: interp.h,v 1.13 2004/04/26 14:08:22 basile Exp $ */ +/* $Id: interp.h 6257 2004-04-26 14:08:22Z basile $ */ /* The bytecode interpreter */ diff --git a/byterun/intext.h b/byterun/intext.h index 7d8eb4c0..de0ef684 100644 --- a/byterun/intext.h +++ b/byterun/intext.h @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: intext.h,v 1.32 2005/09/22 14:21:50 xleroy Exp $ */ +/* $Id: intext.h 7064 2005-09-22 14:21:50Z xleroy $ */ /* Structured input/output */ diff --git a/byterun/ints.c b/byterun/ints.c index f6c9d70c..268c6561 100644 --- a/byterun/ints.c +++ b/byterun/ints.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: ints.c,v 1.51.4.2 2009/03/28 18:43:08 xleroy Exp $ */ +/* $Id: ints.c 9203 2009-03-28 18:43:08Z xleroy $ */ #include #include diff --git a/byterun/io.c b/byterun/io.c index 04b97461..c72fc4d5 100644 --- a/byterun/io.c +++ b/byterun/io.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: io.c,v 1.77 2007/02/25 12:38:36 xleroy Exp $ */ +/* $Id: io.c 7919 2007-02-25 12:38:36Z xleroy $ */ /* Buffered input/output. */ diff --git a/byterun/io.h b/byterun/io.h index e0c5b367..e43d5ec3 100644 --- a/byterun/io.h +++ b/byterun/io.h @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: io.h,v 1.32 2008/09/27 21:16:29 weis Exp $ */ +/* $Id: io.h 9041 2008-09-27 21:16:29Z weis $ */ /* Buffered input/output */ diff --git a/byterun/lexing.c b/byterun/lexing.c index db134f52..4a6fd486 100644 --- a/byterun/lexing.c +++ b/byterun/lexing.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: lexing.c,v 1.27 2004/01/01 16:42:36 doligez Exp $ */ +/* $Id: lexing.c 6045 2004-01-01 16:42:43Z doligez $ */ /* The table-driven automaton for lexers generated by camllex. */ diff --git a/byterun/main.c b/byterun/main.c index 199b5085..ad7f5c5a 100644 --- a/byterun/main.c +++ b/byterun/main.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: main.c,v 1.37 2008/02/29 12:56:15 doligez Exp $ */ +/* $Id: main.c 8822 2008-02-29 12:56:15Z doligez $ */ /* Main entry point (can be overridden by a user-provided main() function that calls caml_main() later). */ diff --git a/byterun/major_gc.c b/byterun/major_gc.c index c6aebf3f..db9fa8a3 100644 --- a/byterun/major_gc.c +++ b/byterun/major_gc.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: major_gc.c,v 1.62.2.1 2008/11/12 12:53:07 doligez Exp $ */ +/* $Id: major_gc.c 9409 2009-11-04 12:24:35Z doligez $ */ #include @@ -30,7 +30,7 @@ #include "weak.h" uintnat caml_percent_free; -intnat caml_major_heap_increment; +uintnat caml_major_heap_increment; CAMLexport char *caml_heap_start; char *caml_gc_sweep_hp; int caml_gc_phase; /* always Phase_mark, Phase_sweep, or Phase_idle */ diff --git a/byterun/major_gc.h b/byterun/major_gc.h index bb31a6a9..588ea503 100644 --- a/byterun/major_gc.h +++ b/byterun/major_gc.h @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: major_gc.h,v 1.23 2008/01/11 11:55:36 doligez Exp $ */ +/* $Id: major_gc.h 8766 2008-01-11 11:55:36Z doligez $ */ #ifndef CAML_MAJOR_GC_H #define CAML_MAJOR_GC_H diff --git a/byterun/md5.c b/byterun/md5.c index 700b765b..5d1f7e96 100644 --- a/byterun/md5.c +++ b/byterun/md5.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: md5.c,v 1.20 2006/04/16 23:28:21 doligez Exp $ */ +/* $Id: md5.c 7382 2006-04-16 23:28:22Z doligez $ */ #include #include "alloc.h" diff --git a/byterun/md5.h b/byterun/md5.h index d3a72a38..6eff13a9 100644 --- a/byterun/md5.h +++ b/byterun/md5.h @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: md5.h,v 1.13 2005/09/22 14:21:50 xleroy Exp $ */ +/* $Id: md5.h 7064 2005-09-22 14:21:50Z xleroy $ */ /* MD5 message digest */ diff --git a/byterun/memory.c b/byterun/memory.c index 3ab37a42..e609796f 100644 --- a/byterun/memory.c +++ b/byterun/memory.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: memory.c,v 1.46.4.1 2008/11/02 14:30:05 xleroy Exp $ */ +/* $Id: memory.c 9117 2008-11-02 14:30:05Z xleroy $ */ #include #include diff --git a/byterun/memory.h b/byterun/memory.h index fd16351e..1edab765 100644 --- a/byterun/memory.h +++ b/byterun/memory.h @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: memory.h,v 1.59.4.1 2008/11/02 14:30:05 xleroy Exp $ */ +/* $Id: memory.h 9117 2008-11-02 14:30:05Z xleroy $ */ /* Allocation macros and functions */ diff --git a/byterun/meta.c b/byterun/meta.c index d3b0d94b..d28aa37e 100644 --- a/byterun/meta.c +++ b/byterun/meta.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: meta.c,v 1.33 2008/01/31 09:13:19 frisch Exp $ */ +/* $Id: meta.c 8800 2008-01-31 09:13:19Z frisch $ */ /* Primitives for the toplevel */ diff --git a/byterun/minor_gc.c b/byterun/minor_gc.c index f20411c4..84d51b20 100644 --- a/byterun/minor_gc.c +++ b/byterun/minor_gc.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: minor_gc.c,v 1.47 2008/07/28 12:03:55 doligez Exp $ */ +/* $Id: minor_gc.c 8954 2008-07-28 12:03:55Z doligez $ */ #include #include "config.h" diff --git a/byterun/minor_gc.h b/byterun/minor_gc.h index e3e9d8ab..c9751e0d 100644 --- a/byterun/minor_gc.h +++ b/byterun/minor_gc.h @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: minor_gc.h,v 1.18 2007/05/04 14:05:13 doligez Exp $ */ +/* $Id: minor_gc.h 8211 2007-05-04 14:05:13Z doligez $ */ #ifndef CAML_MINOR_GC_H #define CAML_MINOR_GC_H diff --git a/byterun/misc.c b/byterun/misc.c index be9e54b4..8c25b75e 100644 --- a/byterun/misc.c +++ b/byterun/misc.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: misc.c,v 1.29 2008/02/29 12:56:15 doligez Exp $ */ +/* $Id: misc.c 8822 2008-02-29 12:56:15Z doligez $ */ #include #include "config.h" diff --git a/byterun/misc.h b/byterun/misc.h index 8d82025b..336f7bb3 100644 --- a/byterun/misc.h +++ b/byterun/misc.h @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: misc.h,v 1.33 2008/02/29 12:56:15 doligez Exp $ */ +/* $Id: misc.h 8822 2008-02-29 12:56:15Z doligez $ */ /* Miscellaneous macros and variables. */ diff --git a/byterun/mlvalues.h b/byterun/mlvalues.h index 90635630..8f97458f 100644 --- a/byterun/mlvalues.h +++ b/byterun/mlvalues.h @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: mlvalues.h,v 1.58 2008/08/01 14:10:36 xleroy Exp $ */ +/* $Id: mlvalues.h 8970 2008-08-01 14:10:36Z xleroy $ */ #ifndef CAML_MLVALUES_H #define CAML_MLVALUES_H diff --git a/byterun/obj.c b/byterun/obj.c index f2c4b374..5a5ae701 100644 --- a/byterun/obj.c +++ b/byterun/obj.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: obj.c,v 1.42 2008/01/29 13:11:15 doligez Exp $ */ +/* $Id: obj.c 9350 2009-09-24 09:12:51Z doligez $ */ /* Operations on objects */ @@ -165,6 +165,10 @@ CAMLprim value caml_obj_truncate (value v, value newsize) return Val_unit; } +CAMLprim value caml_obj_add_offset (value v, value offset) +{ + return v + Int32_val (offset); +} /* The following functions are used in stdlib/lazy.ml. They are not written in O'Caml because they must be atomic with respect diff --git a/byterun/osdeps.h b/byterun/osdeps.h index 494e188b..3ad18e83 100644 --- a/byterun/osdeps.h +++ b/byterun/osdeps.h @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: osdeps.h,v 1.12 2008/04/22 12:24:10 frisch Exp $ */ +/* $Id: osdeps.h 8873 2008-04-22 12:24:10Z frisch $ */ /* Operating system - specific stuff */ diff --git a/byterun/parsing.c b/byterun/parsing.c index 49050672..1816d5bb 100644 --- a/byterun/parsing.c +++ b/byterun/parsing.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: parsing.c,v 1.21 2008/08/06 09:38:25 xleroy Exp $ */ +/* $Id: parsing.c 8983 2008-08-06 09:38:25Z xleroy $ */ /* The PDA automaton for parsers generated by camlyacc */ diff --git a/byterun/prims.h b/byterun/prims.h index f4e76f39..0f4112ea 100644 --- a/byterun/prims.h +++ b/byterun/prims.h @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: prims.h,v 1.10 2004/02/22 15:07:51 xleroy Exp $ */ +/* $Id: prims.h 6130 2004-02-22 15:07:51Z xleroy $ */ /* Interface with C primitives. */ diff --git a/byterun/printexc.c b/byterun/printexc.c index b0003f1c..c2490f1c 100644 --- a/byterun/printexc.c +++ b/byterun/printexc.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: printexc.c,v 1.17 2007/01/29 12:11:15 xleroy Exp $ */ +/* $Id: printexc.c 7812 2007-01-29 12:11:18Z xleroy $ */ /* Print an uncaught exception and abort */ diff --git a/byterun/printexc.h b/byterun/printexc.h index c050b27b..cc48f4b2 100644 --- a/byterun/printexc.h +++ b/byterun/printexc.h @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: printexc.h,v 1.5 2004/01/01 16:42:37 doligez Exp $ */ +/* $Id: printexc.h 6045 2004-01-01 16:42:43Z doligez $ */ #ifndef CAML_PRINTEXC_H #define CAML_PRINTEXC_H diff --git a/byterun/reverse.h b/byterun/reverse.h index 26c0e01a..eaacf1bb 100644 --- a/byterun/reverse.h +++ b/byterun/reverse.h @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: reverse.h,v 1.12 2003/12/15 18:10:48 doligez Exp $ */ +/* $Id: reverse.h 6021 2003-12-15 18:10:51Z doligez $ */ /* Swap byte-order in 16, 32, and 64-bit integers or floats */ diff --git a/byterun/roots.c b/byterun/roots.c index dabb0016..d5ae3cb7 100644 --- a/byterun/roots.c +++ b/byterun/roots.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: roots.c,v 1.30 2008/03/10 19:56:39 xleroy Exp $ */ +/* $Id: roots.c 8828 2008-03-10 19:56:39Z xleroy $ */ /* To walk the memory roots for garbage collection */ diff --git a/byterun/roots.h b/byterun/roots.h index ec6a2063..4e02be2f 100644 --- a/byterun/roots.h +++ b/byterun/roots.h @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: roots.h,v 1.19 2005/09/22 14:21:50 xleroy Exp $ */ +/* $Id: roots.h 7064 2005-09-22 14:21:50Z xleroy $ */ #ifndef CAML_ROOTS_H #define CAML_ROOTS_H diff --git a/byterun/signals.c b/byterun/signals.c index a7236218..1c001200 100644 --- a/byterun/signals.c +++ b/byterun/signals.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: signals.c,v 1.53 2007/02/23 09:29:45 xleroy Exp $ */ +/* $Id: signals.c 7904 2007-02-23 09:29:45Z xleroy $ */ /* Signal handling, code common to the bytecode and native systems */ diff --git a/byterun/signals.h b/byterun/signals.h index ba6b7dcf..96372b49 100644 --- a/byterun/signals.h +++ b/byterun/signals.h @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: signals.h,v 1.27 2007/02/23 09:29:45 xleroy Exp $ */ +/* $Id: signals.h 7904 2007-02-23 09:29:45Z xleroy $ */ #ifndef CAML_SIGNALS_H #define CAML_SIGNALS_H diff --git a/byterun/signals_byt.c b/byterun/signals_byt.c index 44adbeaf..13a1d04f 100644 --- a/byterun/signals_byt.c +++ b/byterun/signals_byt.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: signals_byt.c,v 1.1 2007/02/23 09:29:45 xleroy Exp $ */ +/* $Id: signals_byt.c 7904 2007-02-23 09:29:45Z xleroy $ */ /* Signal handling, code specific to the bytecode interpreter */ diff --git a/byterun/signals_machdep.h b/byterun/signals_machdep.h index 7980c6b4..d96c0174 100644 --- a/byterun/signals_machdep.h +++ b/byterun/signals_machdep.h @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: signals_machdep.h,v 1.3 2007/02/23 09:43:14 xleroy Exp $ */ +/* $Id: signals_machdep.h 7905 2007-02-23 09:43:14Z xleroy $ */ /* Processor-specific operation: atomic "read and clear" */ diff --git a/byterun/stacks.c b/byterun/stacks.c index 8ebaa241..de562254 100644 --- a/byterun/stacks.c +++ b/byterun/stacks.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: stacks.c,v 1.22 2005/09/22 14:21:50 xleroy Exp $ */ +/* $Id: stacks.c 7064 2005-09-22 14:21:50Z xleroy $ */ /* To initialize and resize the stacks */ diff --git a/byterun/stacks.h b/byterun/stacks.h index a4917373..6e8a2f5e 100644 --- a/byterun/stacks.h +++ b/byterun/stacks.h @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: stacks.h,v 1.14 2005/09/22 14:21:50 xleroy Exp $ */ +/* $Id: stacks.h 7064 2005-09-22 14:21:50Z xleroy $ */ /* structure of the stacks */ diff --git a/byterun/startup.c b/byterun/startup.c index 55be64ec..ecddfe40 100644 --- a/byterun/startup.c +++ b/byterun/startup.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: startup.c,v 1.70.2.1 2008/11/18 10:24:43 doligez Exp $ */ +/* $Id: startup.c 9300 2009-06-18 11:17:16Z xclerc $ */ /* Start-up code */ @@ -439,12 +439,18 @@ CAMLexport void caml_startup_code( char **argv) { value res; + char* cds_file; caml_init_ieee_floats(); caml_init_custom_operations(); #ifdef DEBUG caml_verb_gc = 63; #endif + cds_file = getenv("CAML_DEBUG_FILE"); + if (cds_file != NULL) { + caml_cds_file = caml_stat_alloc(strlen(cds_file) + 1); + strcpy(caml_cds_file, cds_file); + } parse_camlrunparam(); caml_external_raise = NULL; /* Initialize the abstract machine */ @@ -454,8 +460,17 @@ CAMLexport void caml_startup_code( init_atoms(); /* Initialize the interpreter */ caml_interprete(NULL, 0); + /* Initialize the debugger, if needed */ + caml_debugger_init(); /* Load the code */ caml_start_code = code; + caml_code_size = code_size; + if (caml_debugger_in_use) { + int len, i; + len = code_size / sizeof(opcode_t); + caml_saved_code = (unsigned char *) caml_stat_alloc(len); + for (i = 0; i < len; i++) caml_saved_code[i] = caml_start_code[i]; + } #ifdef THREADED_CODE caml_thread_code(caml_start_code, code_size); #endif @@ -469,10 +484,19 @@ CAMLexport void caml_startup_code( /* Record the sections (for caml_get_section_table in meta.c) */ caml_section_table = section_table; caml_section_table_size = section_table_size; - /* Run the code */ + /* Initialize system libraries */ caml_init_exceptions(); caml_sys_init("", argv); - res = caml_interprete(caml_start_code, code_size); - if (Is_exception_result(res)) - caml_fatal_uncaught_exception(Extract_exception(res)); + /* Execute the program */ + caml_debugger(PROGRAM_START); + res = caml_interprete(caml_start_code, caml_code_size); + if (Is_exception_result(res)) { + caml_exn_bucket = Extract_exception(res); + if (caml_debugger_in_use) { + caml_extern_sp = &caml_exn_bucket; /* The debugger needs the + exception value.*/ + caml_debugger(UNCAUGHT_EXC); + } + caml_fatal_uncaught_exception(caml_exn_bucket); + } } diff --git a/byterun/startup.h b/byterun/startup.h index b103faa6..a3ffb8b6 100644 --- a/byterun/startup.h +++ b/byterun/startup.h @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: startup.h,v 1.5 2004/02/22 15:07:51 xleroy Exp $ */ +/* $Id: startup.h 6130 2004-02-22 15:07:51Z xleroy $ */ #ifndef CAML_STARTUP_H #define CAML_STARTUP_H diff --git a/byterun/str.c b/byterun/str.c index eda1db5b..c2fb7d9c 100644 --- a/byterun/str.c +++ b/byterun/str.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: str.c,v 1.28 2007/01/30 09:52:08 xleroy Exp $ */ +/* $Id: str.c 7819 2007-01-30 09:52:08Z xleroy $ */ /* Operations on strings */ diff --git a/byterun/sys.c b/byterun/sys.c index 446d54f9..458d3172 100644 --- a/byterun/sys.c +++ b/byterun/sys.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: sys.c,v 1.83 2007/03/01 13:37:39 xleroy Exp $ */ +/* $Id: sys.c 7944 2007-03-01 13:37:39Z xleroy $ */ /* Basic system calls */ diff --git a/byterun/sys.h b/byterun/sys.h index 1c7e2c80..ef56d94a 100644 --- a/byterun/sys.h +++ b/byterun/sys.h @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: sys.h,v 1.16 2007/02/25 12:38:36 xleroy Exp $ */ +/* $Id: sys.h 7919 2007-02-25 12:38:36Z xleroy $ */ #ifndef CAML_SYS_H #define CAML_SYS_H diff --git a/byterun/terminfo.c b/byterun/terminfo.c index 1525de3c..ac982d6e 100644 --- a/byterun/terminfo.c +++ b/byterun/terminfo.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: terminfo.c,v 1.23 2004/01/01 16:42:38 doligez Exp $ */ +/* $Id: terminfo.c 6045 2004-01-01 16:42:43Z doligez $ */ /* Read and output terminal commands */ diff --git a/byterun/ui.h b/byterun/ui.h index 8df391dc..2c213fdb 100644 --- a/byterun/ui.h +++ b/byterun/ui.h @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: ui.h,v 1.5 2003/12/15 18:10:49 doligez Exp $ */ +/* $Id: ui.h 6021 2003-12-15 18:10:51Z doligez $ */ /* Function declarations for non-Unix user interfaces */ diff --git a/byterun/unix.c b/byterun/unix.c index 457f88c3..77cb9e9d 100644 --- a/byterun/unix.c +++ b/byterun/unix.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: unix.c,v 1.35.2.1 2008/12/03 12:39:44 xleroy Exp $ */ +/* $Id: unix.c 9147 2008-12-03 12:39:44Z xleroy $ */ /* Unix-specific stuff */ diff --git a/byterun/weak.c b/byterun/weak.c index 09a10f9c..9661db61 100644 --- a/byterun/weak.c +++ b/byterun/weak.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: weak.c,v 1.29 2008/09/17 14:55:30 doligez Exp $ */ +/* $Id: weak.c 9028 2008-09-17 14:55:30Z doligez $ */ /* Operations on weak arrays */ diff --git a/byterun/weak.h b/byterun/weak.h index 9b37a982..5b4a02d0 100644 --- a/byterun/weak.h +++ b/byterun/weak.h @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: weak.h,v 1.7 2004/01/01 16:42:38 doligez Exp $ */ +/* $Id: weak.h 6045 2004-01-01 16:42:43Z doligez $ */ /* Operations on weak arrays */ diff --git a/byterun/win32.c b/byterun/win32.c index 418104d0..78bb8d67 100644 --- a/byterun/win32.c +++ b/byterun/win32.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: win32.c,v 1.36 2008/04/22 12:24:10 frisch Exp $ */ +/* $Id: win32.c 8873 2008-04-22 12:24:10Z frisch $ */ /* Win32-specific stuff */ diff --git a/camlp4/Makefile.ml b/camlp4/Makefile.ml index 543c9f14..32d212be 100644 --- a/camlp4/Makefile.ml +++ b/camlp4/Makefile.ml @@ -90,7 +90,7 @@ let may_define_unix = if windows then [] else ["-D UNIX"] let () = !options.ocaml_Flags ^= "-w Ale -warn-error Ale"^^ - (if getenv "DTYPES" "" <> "" then "-dtypes" + (if getenv "DTYPES" "" <> "" then "-annot" else ""); !options.ocaml_P4 := camlp4boot_may_debug may_define_unix; !options.ocaml_P4_opt := camlp4boot_may_debug ("-D OPT" :: may_define_unix); diff --git a/config/Makefile-templ b/config/Makefile-templ index f672be16..bf514217 100644 --- a/config/Makefile-templ +++ b/config/Makefile-templ @@ -11,7 +11,7 @@ # # ######################################################################### -# $Id: Makefile-templ,v 1.31 2007/10/30 12:37:16 xleroy Exp $ +# $Id: Makefile-templ 9313 2009-07-15 12:13:31Z xleroy $ ### Compile-time configuration @@ -78,10 +78,14 @@ SHARPBANGSCRIPTS=true # Under FreeBSD: #CPP=cpp -P +### Magic declarations for ocamlbuild -- leave unchanged +#ml let syslib x = "-l"^x;; +#ml let mklib out files opts = Printf.sprintf "ar rc %s %s %s; ranlib %s" out opts files out;; + ### How to invoke ranlib -# BSD-style: -#RANLIB=ranlib -#RANLIBCMD=ranlib +RANLIB=ranlib +RANLIBCMD=ranlib + # If ranlib is not needed: #RANLIB=ar rs #RANLIBCMD= diff --git a/config/Makefile.mingw b/config/Makefile.mingw index a94f6932..5c08ee82 100644 --- a/config/Makefile.mingw +++ b/config/Makefile.mingw @@ -11,7 +11,7 @@ # # ######################################################################### -# $Id: Makefile.mingw,v 1.27.2.1 2008/11/09 09:44:24 xleroy Exp $ +# $Id: Makefile.mingw 9124 2008-11-09 09:44:24Z xleroy $ # Configuration for Windows, Mingw compiler diff --git a/config/Makefile.msvc b/config/Makefile.msvc index 044f4b7c..284a478e 100644 --- a/config/Makefile.msvc +++ b/config/Makefile.msvc @@ -11,7 +11,7 @@ # # ######################################################################### -# $Id: Makefile.msvc,v 1.30.2.1 2008/11/10 15:24:51 xleroy Exp $ +# $Id: Makefile.msvc 9126 2008-11-10 15:24:51Z xleroy $ # Configuration for Windows, Visual C++ compiler diff --git a/config/Makefile.msvc64 b/config/Makefile.msvc64 index d409347c..e8bc54e9 100644 --- a/config/Makefile.msvc64 +++ b/config/Makefile.msvc64 @@ -11,7 +11,7 @@ # # ######################################################################### -# $Id: Makefile.msvc64,v 1.13 2008/07/29 08:31:41 xleroy Exp $ +# $Id: Makefile.msvc64 8955 2008-07-29 08:31:41Z xleroy $ # Configuration for Windows, Visual C++ compiler diff --git a/config/auto-aux/align.c b/config/auto-aux/align.c index 160d33ec..b98e33da 100644 --- a/config/auto-aux/align.c +++ b/config/auto-aux/align.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: align.c,v 1.7 2001/12/07 13:39:41 xleroy Exp $ */ +/* $Id: align.c 4144 2001-12-07 13:41:02Z xleroy $ */ #include #include diff --git a/config/auto-aux/async_io.c b/config/auto-aux/async_io.c index 7d141dd7..10aaa764 100644 --- a/config/auto-aux/async_io.c +++ b/config/auto-aux/async_io.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: async_io.c,v 1.8 2003/02/11 14:05:36 xleroy Exp $ */ +/* $Id: async_io.c 5393 2003-02-11 14:05:36Z xleroy $ */ #include #include diff --git a/config/auto-aux/bytecopy.c b/config/auto-aux/bytecopy.c index 537c4f7b..a16f3978 100644 --- a/config/auto-aux/bytecopy.c +++ b/config/auto-aux/bytecopy.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: bytecopy.c,v 1.7 2001/12/07 13:39:43 xleroy Exp $ */ +/* $Id: bytecopy.c 4144 2001-12-07 13:41:02Z xleroy $ */ char buffer[27]; diff --git a/config/auto-aux/dblalign.c b/config/auto-aux/dblalign.c index 9cf6956e..76c021b7 100644 --- a/config/auto-aux/dblalign.c +++ b/config/auto-aux/dblalign.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: dblalign.c,v 1.9 2001/12/07 13:39:43 xleroy Exp $ */ +/* $Id: dblalign.c 4144 2001-12-07 13:41:02Z xleroy $ */ #include #include diff --git a/config/auto-aux/divmod.c b/config/auto-aux/divmod.c index fb579c5e..c4ddf861 100644 --- a/config/auto-aux/divmod.c +++ b/config/auto-aux/divmod.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: divmod.c,v 1.3 2003/12/30 23:59:47 doligez Exp $ */ +/* $Id: divmod.c 6043 2003-12-31 00:00:57Z doligez $ */ /* Test semantics of division and modulus for negative arguments */ diff --git a/config/auto-aux/elf.c b/config/auto-aux/elf.c index 63ade0a5..e0f6653a 100644 --- a/config/auto-aux/elf.c +++ b/config/auto-aux/elf.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: elf.c,v 1.4 2001/12/07 13:39:43 xleroy Exp $ */ +/* $Id: elf.c 4144 2001-12-07 13:41:02Z xleroy $ */ #include diff --git a/config/auto-aux/endian.c b/config/auto-aux/endian.c index fad4b9d8..d3b622a0 100644 --- a/config/auto-aux/endian.c +++ b/config/auto-aux/endian.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: endian.c,v 1.8 2001/12/07 13:39:43 xleroy Exp $ */ +/* $Id: endian.c 4144 2001-12-07 13:41:02Z xleroy $ */ #include "m.h" diff --git a/config/auto-aux/getgroups.c b/config/auto-aux/getgroups.c index 6a1ee687..547d5e4a 100644 --- a/config/auto-aux/getgroups.c +++ b/config/auto-aux/getgroups.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: getgroups.c,v 1.8 2001/12/07 13:39:43 xleroy Exp $ */ +/* $Id: getgroups.c 4144 2001-12-07 13:41:02Z xleroy $ */ #include #include diff --git a/config/auto-aux/gethostbyaddr.c b/config/auto-aux/gethostbyaddr.c index 60c34e25..c11bb019 100644 --- a/config/auto-aux/gethostbyaddr.c +++ b/config/auto-aux/gethostbyaddr.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: gethostbyaddr.c,v 1.2 2002/05/06 08:29:52 xleroy Exp $ */ +/* $Id: gethostbyaddr.c 4771 2002-05-06 08:29:52Z xleroy $ */ #ifndef _REENTRANT /* This helps detection on Digital Unix... */ diff --git a/config/auto-aux/gethostbyname.c b/config/auto-aux/gethostbyname.c index f1830aa7..270905f2 100644 --- a/config/auto-aux/gethostbyname.c +++ b/config/auto-aux/gethostbyname.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: gethostbyname.c,v 1.2 2002/05/06 08:29:52 xleroy Exp $ */ +/* $Id: gethostbyname.c 4771 2002-05-06 08:29:52Z xleroy $ */ #ifndef _REENTRANT /* This helps detection on Digital Unix... */ diff --git a/config/auto-aux/ia32sse2.c b/config/auto-aux/ia32sse2.c index 20d3a160..41d62017 100644 --- a/config/auto-aux/ia32sse2.c +++ b/config/auto-aux/ia32sse2.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: ia32sse2.c,v 1.2 2005/03/24 17:20:53 doligez Exp $ */ +/* $Id: ia32sse2.c 6824 2005-03-24 17:20:54Z doligez $ */ /* Test whether IA32 assembler supports SSE2 instructions */ diff --git a/config/auto-aux/int64align.c b/config/auto-aux/int64align.c index 5f83e68c..482fad10 100644 --- a/config/auto-aux/int64align.c +++ b/config/auto-aux/int64align.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: int64align.c,v 1.2 2001/12/07 13:39:43 xleroy Exp $ */ +/* $Id: int64align.c 4144 2001-12-07 13:41:02Z xleroy $ */ #include #include diff --git a/config/auto-aux/longlong.c b/config/auto-aux/longlong.c index 40abd085..fd77588d 100644 --- a/config/auto-aux/longlong.c +++ b/config/auto-aux/longlong.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: longlong.c,v 1.4 2002/05/25 08:33:26 xleroy Exp $ */ +/* $Id: longlong.c 4833 2002-05-25 08:33:26Z xleroy $ */ #include #include diff --git a/config/auto-aux/schar.c b/config/auto-aux/schar.c index 209b4906..2499f537 100644 --- a/config/auto-aux/schar.c +++ b/config/auto-aux/schar.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: schar.c,v 1.8 2001/12/07 13:39:44 xleroy Exp $ */ +/* $Id: schar.c 4144 2001-12-07 13:41:02Z xleroy $ */ char foo[]="\377"; diff --git a/config/auto-aux/schar2.c b/config/auto-aux/schar2.c index 9b28c626..ef913aa5 100644 --- a/config/auto-aux/schar2.c +++ b/config/auto-aux/schar2.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: schar2.c,v 1.8 2001/12/07 13:39:44 xleroy Exp $ */ +/* $Id: schar2.c 4144 2001-12-07 13:41:02Z xleroy $ */ signed char foo[]="\377"; diff --git a/config/auto-aux/sighandler.c b/config/auto-aux/sighandler.c index 5ab79d7c..e27d4820 100644 --- a/config/auto-aux/sighandler.c +++ b/config/auto-aux/sighandler.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: sighandler.c,v 1.7 2001/12/07 13:39:44 xleroy Exp $ */ +/* $Id: sighandler.c 4144 2001-12-07 13:41:02Z xleroy $ */ #include diff --git a/config/auto-aux/signals.c b/config/auto-aux/signals.c index ffafd521..7f51be85 100644 --- a/config/auto-aux/signals.c +++ b/config/auto-aux/signals.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: signals.c,v 1.7 2001/12/07 13:39:44 xleroy Exp $ */ +/* $Id: signals.c 4144 2001-12-07 13:41:02Z xleroy $ */ /* To determine the semantics of signal handlers (System V: signal is reset to default behavior on entrance to the handler diff --git a/config/auto-aux/sizes.c b/config/auto-aux/sizes.c index 5ed0a3d2..b6014ce7 100644 --- a/config/auto-aux/sizes.c +++ b/config/auto-aux/sizes.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: sizes.c,v 1.9 2001/12/07 13:39:44 xleroy Exp $ */ +/* $Id: sizes.c 4144 2001-12-07 13:41:02Z xleroy $ */ #include diff --git a/config/auto-aux/stackov.c b/config/auto-aux/stackov.c index 2ef87130..15c74ab0 100644 --- a/config/auto-aux/stackov.c +++ b/config/auto-aux/stackov.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: stackov.c,v 1.5 2008/01/11 16:13:16 doligez Exp $ */ +/* $Id: stackov.c 8768 2008-01-11 16:13:18Z doligez $ */ #include #include diff --git a/config/m-nt.h b/config/m-nt.h index f89fb863..d56ab817 100644 --- a/config/m-nt.h +++ b/config/m-nt.h @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: m-nt.h,v 1.12 2006/05/09 16:01:26 xleroy Exp $ */ +/* $Id: m-nt.h 7408 2006-05-09 16:02:09Z xleroy $ */ /* Machine configuration, Intel x86 processors, Win32, Visual C++ or Mingw compiler */ diff --git a/config/m-templ.h b/config/m-templ.h index 71848b98..8245ba18 100644 --- a/config/m-templ.h +++ b/config/m-templ.h @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: m-templ.h,v 1.15 2005/09/22 14:21:50 xleroy Exp $ */ +/* $Id: m-templ.h 7064 2005-09-22 14:21:50Z xleroy $ */ /* Processor dependencies */ diff --git a/config/s-nt.h b/config/s-nt.h index 368ea7ea..1017e933 100644 --- a/config/s-nt.h +++ b/config/s-nt.h @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: s-nt.h,v 1.12 2002/06/18 13:00:55 xleroy Exp $ */ +/* $Id: s-nt.h 4933 2002-06-18 13:01:53Z xleroy $ */ /* Operating system dependencies, Intel x86 processors, Windows NT */ diff --git a/config/s-templ.h b/config/s-templ.h index edc3860e..0e473e98 100644 --- a/config/s-templ.h +++ b/config/s-templ.h @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: s-templ.h,v 1.22 2004/05/18 08:50:22 xleroy Exp $ */ +/* $Id: s-templ.h 6304 2004-05-18 08:50:22Z xleroy $ */ /* Operating system and standard library dependencies. */ diff --git a/configure b/configure index 166ceafb..1797b0c2 100755 --- a/configure +++ b/configure @@ -13,7 +13,7 @@ # # ######################################################################### -# $Id: configure,v 1.266.2.5 2009/05/20 15:33:09 weis Exp $ +# $Id: configure 9414 2009-11-17 13:28:44Z weis $ configure_options="$*" prefix=/usr/local @@ -95,6 +95,8 @@ while : ; do pthread_wanted=no;; -no-tk|--no-tk) tk_wanted=no;; + -partialld|--partialld) + partialld="$2"; shift;; -tkdefs*|--tkdefs*) tk_defs=$2; shift;; -tklibs*|--tklibs*) @@ -303,14 +305,16 @@ case "$bytecc,$host" in gcc*,*-*-cygwin*) bytecccompopts="-fno-defer-pop $gcc_warnings -U_WIN32" dllccompopts="-D_WIN32 -DCAML_DLL" - flexlink="flexlink -chain cygwin -merge-manifest" - flexdir=`$flexlink -where | dos2unix` - if test -z "$flexdir"; then - echo "flexlink not found: native shared libraries won't be available" - withsharedlibs=no - else - iflexdir="-I\"$flexdir\"" - mkexe="$flexlink -exe" + if test $withsharedlibs = yes; then + flexlink="flexlink -chain cygwin -merge-manifest" + flexdir=`$flexlink -where | dos2unix` + if test -z "$flexdir"; then + echo "flexlink not found: native shared libraries won't be available" + withsharedlibs=no + else + iflexdir="-I\"$flexdir\"" + mkexe="$flexlink -exe" + fi fi exe=".exe" ostype="Cygwin";; diff --git a/debugger/.depend b/debugger/.depend index f71fcbef..8aa21ba6 100644 --- a/debugger/.depend +++ b/debugger/.depend @@ -121,13 +121,13 @@ loadprinter.cmx: ../typing/types.cmx ../bytecomp/symtable.cmx printval.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 \ - show_information.cmi question.cmi program_management.cmi parameters.cmi \ - ../utils/misc.cmi input_handling.cmi frames.cmi exec.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 \ - show_information.cmx question.cmx program_management.cmx parameters.cmx \ - ../utils/misc.cmx input_handling.cmx frames.cmx exec.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 \ command_line.cmx ../utils/clflags.cmx checkpoints.cmx parameters.cmo: primitives.cmi envaux.cmi debugger_config.cmi \ @@ -172,10 +172,10 @@ program_management.cmx: unix_tools.cmx ../otherlibs/unix/unix.cmx \ debugger_config.cmx breakpoints.cmx program_management.cmi question.cmo: primitives.cmi lexer.cmi input_handling.cmi question.cmi question.cmx: primitives.cmx lexer.cmx input_handling.cmx question.cmi -show_information.cmo: symbols.cmi show_source.cmi printval.cmi \ +show_information.cmo: symbols.cmi source.cmi show_source.cmi printval.cmi \ ../utils/misc.cmi ../bytecomp/instruct.cmi frames.cmi events.cmi \ debugcom.cmi checkpoints.cmi breakpoints.cmi show_information.cmi -show_information.cmx: symbols.cmx show_source.cmx printval.cmx \ +show_information.cmx: symbols.cmx source.cmx show_source.cmx printval.cmx \ ../utils/misc.cmx ../bytecomp/instruct.cmx frames.cmx events.cmx \ debugcom.cmx checkpoints.cmx breakpoints.cmx show_information.cmi show_source.cmo: source.cmi primitives.cmi parameters.cmi \ @@ -188,12 +188,12 @@ source.cmo: primitives.cmi ../utils/misc.cmi debugger_config.cmi \ ../utils/config.cmi source.cmi source.cmx: primitives.cmx ../utils/misc.cmx debugger_config.cmx \ ../utils/config.cmx source.cmi -symbols.cmo: ../bytecomp/symtable.cmi ../bytecomp/instruct.cmi events.cmi \ - debugger_config.cmi debugcom.cmi checkpoints.cmi \ - ../bytecomp/bytesections.cmi symbols.cmi -symbols.cmx: ../bytecomp/symtable.cmx ../bytecomp/instruct.cmx events.cmx \ - debugger_config.cmx debugcom.cmx checkpoints.cmx \ - ../bytecomp/bytesections.cmx symbols.cmi +symbols.cmo: ../bytecomp/symtable.cmi program_loading.cmi \ + ../bytecomp/instruct.cmi events.cmi debugger_config.cmi debugcom.cmi \ + checkpoints.cmi ../bytecomp/bytesections.cmi symbols.cmi +symbols.cmx: ../bytecomp/symtable.cmx program_loading.cmx \ + ../bytecomp/instruct.cmx events.cmx debugger_config.cmx debugcom.cmx \ + checkpoints.cmx ../bytecomp/bytesections.cmx symbols.cmi time_travel.cmo: trap_barrier.cmi symbols.cmi question.cmi \ program_loading.cmi primitives.cmi ../utils/misc.cmi int64ops.cmi \ ../bytecomp/instruct.cmi input_handling.cmi exec.cmi events.cmi \ diff --git a/debugger/Makefile b/debugger/Makefile index bc57cde2..cd623dcf 100644 --- a/debugger/Makefile +++ b/debugger/Makefile @@ -10,7 +10,7 @@ # # ######################################################################### -# $Id: Makefile,v 1.33 2008/07/29 08:31:41 xleroy Exp $ +# $Id: Makefile 8955 2008-07-29 08:31:41Z xleroy $ UNIXDIR=../otherlibs/unix include Makefile.shared diff --git a/debugger/Makefile.nt b/debugger/Makefile.nt index 523eb657..d179ac54 100644 --- a/debugger/Makefile.nt +++ b/debugger/Makefile.nt @@ -10,7 +10,7 @@ # # ######################################################################### -# $Id: Makefile.nt,v 1.1 2008/07/29 08:31:41 xleroy Exp $ +# $Id: Makefile.nt 8955 2008-07-29 08:31:41Z xleroy $ UNIXDIR=../otherlibs/win32unix include Makefile.shared diff --git a/debugger/Makefile.shared b/debugger/Makefile.shared index 1e97af45..2856dcbd 100644 --- a/debugger/Makefile.shared +++ b/debugger/Makefile.shared @@ -10,7 +10,7 @@ # # ######################################################################### -# $Id: Makefile.shared,v 1.1 2008/07/29 08:31:41 xleroy Exp $ +# $Id: Makefile.shared 9300 2009-06-18 11:17:16Z xclerc $ include ../config/Makefile @@ -60,11 +60,11 @@ OBJS=\ pos.cmo \ checkpoints.cmo \ events.cmo \ + program_loading.cmo \ symbols.cmo \ breakpoints.cmo \ trap_barrier.cmo \ history.cmo \ - program_loading.cmo \ printval.cmo \ show_source.cmo \ time_travel.cmo \ @@ -72,7 +72,7 @@ OBJS=\ frames.cmo \ eval.cmo \ show_information.cmo \ - loadprinter.cmo \ + loadprinter.cmo \ parser.cmo \ command_line.cmo \ main.cmo diff --git a/debugger/breakpoints.ml b/debugger/breakpoints.ml index 2c8d7253..f47101f8 100644 --- a/debugger/breakpoints.ml +++ b/debugger/breakpoints.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: breakpoints.ml,v 1.13.18.1 2009/04/02 09:44:21 xclerc Exp $ *) +(* $Id: breakpoints.ml 9226 2009-04-02 09:44:21Z xclerc $ *) (******************************* Breakpoints ***************************) diff --git a/debugger/breakpoints.mli b/debugger/breakpoints.mli index f3be8ec5..a4a1dc11 100644 --- a/debugger/breakpoints.mli +++ b/debugger/breakpoints.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: breakpoints.mli,v 1.2 1999/11/17 18:57:22 xleroy Exp $ *) +(* $Id: breakpoints.mli 2553 1999-11-17 18:59:06Z xleroy $ *) (******************************* Breakpoints ***************************) diff --git a/debugger/checkpoints.ml b/debugger/checkpoints.ml index 2f0fe622..28aa76cb 100644 --- a/debugger/checkpoints.ml +++ b/debugger/checkpoints.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: checkpoints.ml,v 1.4 2002/10/29 17:53:23 doligez Exp $ *) +(* $Id: checkpoints.ml 5200 2002-10-29 17:53:24Z doligez $ *) (*************************** Checkpoints *******************************) diff --git a/debugger/checkpoints.mli b/debugger/checkpoints.mli index cbd576a2..e489875d 100644 --- a/debugger/checkpoints.mli +++ b/debugger/checkpoints.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: checkpoints.mli,v 1.4 2002/10/29 17:53:23 doligez Exp $ *) +(* $Id: checkpoints.mli 5200 2002-10-29 17:53:24Z doligez $ *) (***************************** Checkpoints *****************************) diff --git a/debugger/command_line.ml b/debugger/command_line.ml index 280fbc01..74db2092 100644 --- a/debugger/command_line.ml +++ b/debugger/command_line.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: command_line.ml,v 1.25.2.2 2009/04/02 09:44:21 xclerc Exp $ *) +(* $Id: command_line.ml 9299 2009-06-17 08:15:39Z xclerc $ *) (************************ Reading and executing commands ***************) @@ -705,26 +705,30 @@ let instr_last ppf lexbuf = let instr_list ppf lexbuf = let (mo, beg, e) = list_arguments_eol Lexer.lexeme lexbuf in - let (curr_mod, point) = + let (curr_mod, line, column) = try selected_point () with | Not_found -> - ("", -1) + ("", -1, -1) in let mdle = convert_module (module_of_longident mo) in let pos = Lexing.dummy_pos in + let buffer = + try get_buffer pos mdle with + | Not_found -> error ("No source file for " ^ mdle ^ ".") in + let point = + if column <> -1 then + (point_of_coord buffer line 1) + column + else + -1 in let beginning = match beg with - | None when (mo <> None) || (point = -1) -> + | None when (mo <> None) || (line = -1) -> 1 | None -> - let buffer = - try get_buffer pos mdle with - | Not_found -> error ("No source file for " ^ mdle ^ ".") - in begin try - max 1 ((snd (line_of_pos buffer point)) - 10) + max 1 (line - 10) with Out_of_range -> 1 end @@ -861,11 +865,19 @@ let info_events ppf lexbuf = print_endline " Address Characters Kind Repr."; List.iter (function ev -> - Printf.printf + let start_char, end_char = + try + let buffer = get_buffer (Events.get_pos ev) ev.ev_module in + (snd (start_and_cnum buffer ev.ev_loc.Location.loc_start)), + (snd (start_and_cnum buffer ev.ev_loc.Location.loc_end)) + with _ -> + ev.ev_loc.Location.loc_start.Lexing.pos_cnum, + ev.ev_loc.Location.loc_end.Lexing.pos_cnum in + Printf.printf "%10d %6d-%-6d %10s %10s\n" ev.ev_pos - ev.ev_loc.Location.loc_start.Lexing.pos_cnum - ev.ev_loc.Location.loc_end.Lexing.pos_cnum + start_char + end_char ((match ev.ev_kind with Event_before -> "before" | Event_after _ -> "after" diff --git a/debugger/command_line.mli b/debugger/command_line.mli index aca2ffc7..24d720eb 100644 --- a/debugger/command_line.mli +++ b/debugger/command_line.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: command_line.mli,v 1.4 2000/03/07 18:22:14 weis Exp $ *) +(* $Id: command_line.mli 2919 2000-03-07 18:22:19Z weis $ *) (************************ Reading and executing commands ***************) diff --git a/debugger/debugcom.ml b/debugger/debugcom.ml index b4bf427e..5d595ca0 100644 --- a/debugger/debugcom.ml +++ b/debugger/debugcom.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: debugcom.ml,v 1.13 2008/07/29 08:31:41 xleroy Exp $ *) +(* $Id: debugcom.ml 8955 2008-07-29 08:31:41Z xleroy $ *) (* Low-level communication with the debuggee *) diff --git a/debugger/debugcom.mli b/debugger/debugcom.mli index ac26e45f..179595c2 100644 --- a/debugger/debugcom.mli +++ b/debugger/debugcom.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: debugcom.mli,v 1.8 2002/10/29 17:53:23 doligez Exp $ *) +(* $Id: debugcom.mli 5200 2002-10-29 17:53:24Z doligez $ *) (* Low-level communication with the debuggee *) diff --git a/debugger/debugger_config.ml b/debugger/debugger_config.ml index d8ed23de..acfadfed 100644 --- a/debugger/debugger_config.ml +++ b/debugger/debugger_config.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: debugger_config.ml,v 1.11.2.1 2009/04/02 09:06:32 xclerc Exp $ *) +(* $Id: debugger_config.ml 9221 2009-04-02 09:06:33Z xclerc $ *) (**************************** Configuration file ***********************) diff --git a/debugger/debugger_config.mli b/debugger/debugger_config.mli index befdba63..0d3b663d 100644 --- a/debugger/debugger_config.mli +++ b/debugger/debugger_config.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: debugger_config.mli,v 1.5.28.1 2009/04/02 09:06:32 xclerc Exp $ *) +(* $Id: debugger_config.mli 9221 2009-04-02 09:06:33Z xclerc $ *) (********************** Configuration file *****************************) diff --git a/debugger/dynlink.ml b/debugger/dynlink.ml index 9dec9333..03895885 100644 --- a/debugger/dynlink.ml +++ b/debugger/dynlink.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: dynlink.ml,v 1.2.14.1 2009/04/02 09:21:20 xclerc Exp $ *) +(* $Id: dynlink.ml 9222 2009-04-02 09:21:20Z xclerc $ *) (* Dynamic loading of .cmo files *) diff --git a/debugger/dynlink.mli b/debugger/dynlink.mli index bccfab74..31604dc5 100644 --- a/debugger/dynlink.mli +++ b/debugger/dynlink.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: dynlink.mli,v 1.1.14.1 2009/04/02 09:21:20 xclerc Exp $ *) +(* $Id: dynlink.mli 9222 2009-04-02 09:21:20Z xclerc $ *) (** Dynamic loading of object files. *) diff --git a/debugger/envaux.ml b/debugger/envaux.ml index d048bb1d..b0ca5a53 100644 --- a/debugger/envaux.ml +++ b/debugger/envaux.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: envaux.ml,v 1.7.38.1 2009/04/02 09:06:32 xclerc Exp $ *) +(* $Id: envaux.ml 9221 2009-04-02 09:06:33Z xclerc $ *) open Misc open Types diff --git a/debugger/envaux.mli b/debugger/envaux.mli index b8bfe75f..3b9d7715 100644 --- a/debugger/envaux.mli +++ b/debugger/envaux.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: envaux.mli,v 1.5 2000/03/06 22:11:20 weis Exp $ *) +(* $Id: envaux.mli 2908 2000-03-06 22:12:09Z weis $ *) open Format diff --git a/debugger/eval.ml b/debugger/eval.ml index 9e0a82dd..cd52cd08 100644 --- a/debugger/eval.ml +++ b/debugger/eval.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: eval.ml,v 1.30.4.5 2009/04/19 08:42:43 xleroy Exp $ *) +(* $Id: eval.ml 9236 2009-04-19 08:42:43Z xleroy $ *) open Misc open Path diff --git a/debugger/eval.mli b/debugger/eval.mli index 8e809253..f9888488 100644 --- a/debugger/eval.mli +++ b/debugger/eval.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: eval.mli,v 1.6 2000/03/06 22:11:21 weis Exp $ *) +(* $Id: eval.mli 2908 2000-03-06 22:12:09Z weis $ *) open Types open Parser_aux diff --git a/debugger/events.ml b/debugger/events.ml index de623554..c2988f04 100644 --- a/debugger/events.ml +++ b/debugger/events.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: events.ml,v 1.6.18.1 2009/04/02 09:44:21 xclerc Exp $ *) +(* $Id: events.ml 9226 2009-04-02 09:44:21Z xclerc $ *) (********************************* Events ******************************) diff --git a/debugger/events.mli b/debugger/events.mli index 63ad64e1..f12dd401 100644 --- a/debugger/events.mli +++ b/debugger/events.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: events.mli,v 1.4 2005/08/25 15:35:16 doligez Exp $ *) +(* $Id: events.mli 7031 2005-08-25 15:35:16Z doligez $ *) open Instruct diff --git a/debugger/exec.ml b/debugger/exec.ml index 2cf667e9..6390f2a5 100644 --- a/debugger/exec.ml +++ b/debugger/exec.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: exec.ml,v 1.5 2008/07/29 08:31:41 xleroy Exp $ *) +(* $Id: exec.ml 8955 2008-07-29 08:31:41Z xleroy $ *) (* Handling of keyboard interrupts *) diff --git a/debugger/exec.mli b/debugger/exec.mli index 679fab57..c6c3ab4f 100644 --- a/debugger/exec.mli +++ b/debugger/exec.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: exec.mli,v 1.4 1999/11/17 18:57:24 xleroy Exp $ *) +(* $Id: exec.mli 2553 1999-11-17 18:59:06Z xleroy $ *) (* Handling of keyboard interrupts *) diff --git a/debugger/frames.ml b/debugger/frames.ml index 3a43530f..fa36eff9 100644 --- a/debugger/frames.ml +++ b/debugger/frames.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: frames.ml,v 1.10.18.1 2009/04/02 09:44:21 xclerc Exp $ *) +(* $Id: frames.ml 9299 2009-06-17 08:15:39Z xclerc $ *) (***************************** Frames **********************************) @@ -33,7 +33,9 @@ let selected_point () = None -> raise Not_found | Some ev -> - (ev.ev_module, (Events.get_pos ev).Lexing.pos_cnum) + (ev.ev_module, + (Events.get_pos ev).Lexing.pos_lnum, + (Events.get_pos ev).Lexing.pos_cnum - (Events.get_pos ev).Lexing.pos_bol) let selected_event_is_before () = match !selected_event with diff --git a/debugger/frames.mli b/debugger/frames.mli index dd09b4f1..7767d126 100644 --- a/debugger/frames.mli +++ b/debugger/frames.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: frames.mli,v 1.3 1999/11/17 18:57:24 xleroy Exp $ *) +(* $Id: frames.mli 9299 2009-06-17 08:15:39Z xclerc $ *) (****************************** Frames *********************************) @@ -24,9 +24,9 @@ val current_frame : int ref (* Event at selected position. *) val selected_event : debug_event option ref -(* Selected position in source. *) +(* Selected position in source (module, line, column). *) (* Raise `Not_found' if not on an event. *) -val selected_point : unit -> string * int +val selected_point : unit -> string * int * int val selected_event_is_before : unit -> bool diff --git a/debugger/history.ml b/debugger/history.ml index ab9f54a1..b273b949 100644 --- a/debugger/history.ml +++ b/debugger/history.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: history.ml,v 1.5.28.1 2009/04/02 09:44:21 xclerc Exp $ *) +(* $Id: history.ml 9226 2009-04-02 09:44:21Z xclerc $ *) open Int64ops open Checkpoints diff --git a/debugger/history.mli b/debugger/history.mli index 9d805a12..2c217b77 100644 --- a/debugger/history.mli +++ b/debugger/history.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: history.mli,v 1.4 2002/10/29 17:53:24 doligez Exp $ *) +(* $Id: history.mli 5200 2002-10-29 17:53:24Z doligez $ *) val empty_history : unit -> unit diff --git a/debugger/input_handling.ml b/debugger/input_handling.ml index 480819b7..b9b9b450 100644 --- a/debugger/input_handling.ml +++ b/debugger/input_handling.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: input_handling.ml,v 1.5.14.1 2009/04/02 09:44:21 xclerc Exp $ *) +(* $Id: input_handling.ml 9226 2009-04-02 09:44:21Z xclerc $ *) (**************************** Input control ****************************) diff --git a/debugger/input_handling.mli b/debugger/input_handling.mli index e0b450eb..227ae833 100644 --- a/debugger/input_handling.mli +++ b/debugger/input_handling.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: input_handling.mli,v 1.3 2006/12/09 13:49:10 ertai Exp $ *) +(* $Id: input_handling.mli 7767 2006-12-09 13:49:10Z ertai $ *) (***************************** Input control ***************************) diff --git a/debugger/int64ops.ml b/debugger/int64ops.ml index d549aca7..667d6c07 100644 --- a/debugger/int64ops.ml +++ b/debugger/int64ops.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: int64ops.ml,v 1.1 2002/10/29 17:53:24 doligez Exp $ *) +(* $Id: int64ops.ml 5200 2002-10-29 17:53:24Z doligez $ *) (****************** arithmetic operators for Int64 *********************) diff --git a/debugger/int64ops.mli b/debugger/int64ops.mli index 4808590e..b6edfbc3 100644 --- a/debugger/int64ops.mli +++ b/debugger/int64ops.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: int64ops.mli,v 1.1 2002/10/29 17:53:24 doligez Exp $ *) +(* $Id: int64ops.mli 5200 2002-10-29 17:53:24Z doligez $ *) (****************** arithmetic operators for Int64 *********************) diff --git a/debugger/lexer.mli b/debugger/lexer.mli index df7cfad2..cc04aca8 100644 --- a/debugger/lexer.mli +++ b/debugger/lexer.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: lexer.mli,v 1.1 2004/06/13 12:46:11 xleroy Exp $ *) +(* $Id: lexer.mli 6394 2004-06-13 12:46:11Z xleroy $ *) val line: Lexing.lexbuf -> string val lexeme: Lexing.lexbuf -> Parser.token diff --git a/debugger/lexer.mll b/debugger/lexer.mll index 4737986b..b1b0246b 100644 --- a/debugger/lexer.mll +++ b/debugger/lexer.mll @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: lexer.mll,v 1.8.28.1 2009/04/02 09:44:21 xclerc Exp $ *) +(* $Id: lexer.mll 9226 2009-04-02 09:44:21Z xclerc $ *) { diff --git a/debugger/loadprinter.ml b/debugger/loadprinter.ml index bb861e0e..7ed5e44d 100644 --- a/debugger/loadprinter.ml +++ b/debugger/loadprinter.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: loadprinter.ml,v 1.19.20.1 2009/04/02 09:44:21 xclerc Exp $ *) +(* $Id: loadprinter.ml 9226 2009-04-02 09:44:21Z xclerc $ *) (* Loading and installation of user-defined printer functions *) diff --git a/debugger/loadprinter.mli b/debugger/loadprinter.mli index 21972fb8..ffc94a58 100644 --- a/debugger/loadprinter.mli +++ b/debugger/loadprinter.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: loadprinter.mli,v 1.4 2000/03/07 18:22:15 weis Exp $ *) +(* $Id: loadprinter.mli 2919 2000-03-07 18:22:19Z weis $ *) (* Loading and installation of user-defined printer functions *) diff --git a/debugger/main.ml b/debugger/main.ml index 8b6f3c21..02eb1822 100644 --- a/debugger/main.ml +++ b/debugger/main.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: main.ml,v 1.21.2.2 2009/04/02 09:44:21 xclerc Exp $ *) +(* $Id: main.ml 9310 2009-07-08 14:30:05Z xclerc $ *) open Input_handling open Question @@ -24,6 +24,7 @@ open Program_management open Frames open Show_information open Format +open Primitives let line_buffer = Lexing.from_function read_user_input @@ -107,7 +108,39 @@ let rec protect ppf restart loop = kill_program (); raise x -let toplevel_loop () = protect Format.std_formatter loop loop +let execute_file_if_any () = + let buffer = Buffer.create 128 in + begin + try + let base = ".ocamldebug" in + let file = + if Sys.file_exists base then + base + else + Filename.concat (Sys.getenv "HOME") base in + let ch = open_in file in + fprintf Format.std_formatter "Executing file %s@." file; + while true do + let line = string_trim (input_line ch) in + if line <> "" && line.[0] <> '#' then begin + Buffer.add_string buffer line; + Buffer.add_char buffer '\n' + end + done; + with _ -> () + end; + let len = Buffer.length buffer in + if len > 0 then + let commands = Buffer.sub buffer 0 (pred len) in + line_loop Format.std_formatter (Lexing.from_string commands) + +let toplevel_loop () = + interactif := false; + current_prompt := ""; + execute_file_if_any (); + interactif := true; + current_prompt := debugger_prompt; + protect Format.std_formatter loop loop (* Parsing of command-line arguments *) @@ -167,7 +200,6 @@ let main () = arguments := !arguments ^ " " ^ (Filename.quote Sys.argv.(j)) done end; - current_prompt := debugger_prompt; printf "\tObjective Caml Debugger version %s@.@." Config.version; Config.load_path := !default_load_path; Clflags.recursive_types := true; (* Allow recursive types. *) diff --git a/debugger/parameters.ml b/debugger/parameters.ml index 80dfb4ca..482c9709 100644 --- a/debugger/parameters.ml +++ b/debugger/parameters.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: parameters.ml,v 1.3.28.1 2009/04/02 09:06:32 xclerc Exp $ *) +(* $Id: parameters.ml 9221 2009-04-02 09:06:33Z xclerc $ *) (* Miscellaneous parameters *) diff --git a/debugger/parameters.mli b/debugger/parameters.mli index f392677e..e65d8dd2 100644 --- a/debugger/parameters.mli +++ b/debugger/parameters.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: parameters.mli,v 1.2.40.1 2009/04/02 09:06:32 xclerc Exp $ *) +(* $Id: parameters.mli 9221 2009-04-02 09:06:33Z xclerc $ *) (* Miscellaneous parameters *) diff --git a/debugger/parser.mly b/debugger/parser.mly index 40531b92..f32e0fe3 100644 --- a/debugger/parser.mly +++ b/debugger/parser.mly @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: parser.mly,v 1.7.28.4 2009/05/23 14:42:57 xclerc Exp $ */ +/* $Id: parser.mly 9275 2009-05-23 14:42:57Z xclerc $ */ %{ diff --git a/debugger/parser_aux.mli b/debugger/parser_aux.mli index 74da5529..4fca52e9 100644 --- a/debugger/parser_aux.mli +++ b/debugger/parser_aux.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: parser_aux.mli,v 1.4.40.1 2009/04/02 09:06:32 xclerc Exp $ *) +(* $Id: parser_aux.mli 9221 2009-04-02 09:06:33Z xclerc $ *) (*open Globals*) diff --git a/debugger/pattern_matching.ml b/debugger/pattern_matching.ml index ccec2cd0..bc6ad849 100644 --- a/debugger/pattern_matching.ml +++ b/debugger/pattern_matching.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: pattern_matching.ml,v 1.4 2000/12/28 13:03:41 weis Exp $ *) +(* $Id: pattern_matching.ml 3359 2000-12-28 13:07:42Z weis $ *) (************************ Simple pattern matching **********************) diff --git a/debugger/pattern_matching.mli b/debugger/pattern_matching.mli index c60a6fc7..b3862190 100644 --- a/debugger/pattern_matching.mli +++ b/debugger/pattern_matching.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: pattern_matching.mli,v 1.2 1999/11/17 18:57:26 xleroy Exp $ *) +(* $Id: pattern_matching.mli 2553 1999-11-17 18:59:06Z xleroy $ *) (************************ Simple pattern matching **********************) diff --git a/debugger/pos.ml b/debugger/pos.ml index 5e1bc277..f790ab6e 100644 --- a/debugger/pos.ml +++ b/debugger/pos.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: pos.ml,v 1.3 2006/12/09 13:49:10 ertai Exp $ *) +(* $Id: pos.ml 7767 2006-12-09 13:49:10Z ertai $ *) open Instruct;; open Lexing;; diff --git a/debugger/pos.mli b/debugger/pos.mli index 9cfbdd47..ee083272 100644 --- a/debugger/pos.mli +++ b/debugger/pos.mli @@ -10,6 +10,6 @@ (* *) (***********************************************************************) -(* $Id: pos.mli,v 1.1 2003/11/21 16:10:57 doligez Exp $ *) +(* $Id: pos.mli 5966 2003-11-21 16:10:57Z doligez $ *) val get_desc : Instruct.debug_event -> string;; diff --git a/debugger/primitives.ml b/debugger/primitives.ml index 96dbb03a..2040c7e4 100644 --- a/debugger/primitives.ml +++ b/debugger/primitives.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: primitives.ml,v 1.6.28.1 2009/04/02 09:44:21 xclerc Exp $ *) +(* $Id: primitives.ml 9226 2009-04-02 09:44:21Z xclerc $ *) (*********************** Basic functions and types *********************) diff --git a/debugger/primitives.mli b/debugger/primitives.mli index adf0ce95..60d15901 100644 --- a/debugger/primitives.mli +++ b/debugger/primitives.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: primitives.mli,v 1.2.40.1 2009/04/02 09:44:21 xclerc Exp $ *) +(* $Id: primitives.mli 9226 2009-04-02 09:44:21Z xclerc $ *) (********************* Basic functions and types ***********************) diff --git a/debugger/printval.ml b/debugger/printval.ml index e984b415..17dd7c63 100644 --- a/debugger/printval.ml +++ b/debugger/printval.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: printval.ml,v 1.21.28.1 2009/04/02 09:44:21 xclerc Exp $ *) +(* $Id: printval.ml 9226 2009-04-02 09:44:21Z xclerc $ *) (* To print values *) diff --git a/debugger/printval.mli b/debugger/printval.mli index 1488162a..38e48eb6 100644 --- a/debugger/printval.mli +++ b/debugger/printval.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: printval.mli,v 1.10 2001/07/03 11:04:09 xleroy Exp $ *) +(* $Id: printval.mli 3566 2001-07-03 11:04:10Z xleroy $ *) open Format diff --git a/debugger/program_loading.ml b/debugger/program_loading.ml index 4d5d368c..54b5a45f 100644 --- a/debugger/program_loading.ml +++ b/debugger/program_loading.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: program_loading.ml,v 1.8.2.1 2009/04/02 09:44:21 xclerc Exp $ *) +(* $Id: program_loading.ml 9226 2009-04-02 09:44:21Z xclerc $ *) (* Program loading *) diff --git a/debugger/program_loading.mli b/debugger/program_loading.mli index c858ecf5..48847ea1 100644 --- a/debugger/program_loading.mli +++ b/debugger/program_loading.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: program_loading.mli,v 1.3 1999/11/17 18:57:27 xleroy Exp $ *) +(* $Id: program_loading.mli 2553 1999-11-17 18:59:06Z xleroy $ *) (*** Debugging. ***) diff --git a/debugger/program_management.ml b/debugger/program_management.ml index 660ef292..7cc864cf 100644 --- a/debugger/program_management.ml +++ b/debugger/program_management.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: program_management.ml,v 1.13.2.1 2009/04/02 09:44:21 xclerc Exp $ *) +(* $Id: program_management.ml 9226 2009-04-02 09:44:21Z xclerc $ *) (* Manage the loading of the program *) diff --git a/debugger/program_management.mli b/debugger/program_management.mli index e2a4e92c..2ec0209e 100644 --- a/debugger/program_management.mli +++ b/debugger/program_management.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: program_management.mli,v 1.2 1999/11/17 18:57:27 xleroy Exp $ *) +(* $Id: program_management.mli 2553 1999-11-17 18:59:06Z xleroy $ *) (*** Program loading and initializations. ***) diff --git a/debugger/show_information.ml b/debugger/show_information.ml index 165fbf35..0c9ee2d0 100644 --- a/debugger/show_information.ml +++ b/debugger/show_information.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: show_information.ml,v 1.13.18.1 2009/04/02 09:44:21 xclerc Exp $ *) +(* $Id: show_information.ml 9299 2009-06-17 08:15:39Z xclerc $ *) open Instruct open Format @@ -20,6 +20,7 @@ open Checkpoints open Events open Symbols open Frames +open Source open Show_source open Breakpoints @@ -68,9 +69,15 @@ let show_current_event ppf = (* Display short information about one frame. *) let show_one_frame framenum ppf event = + let pos = Events.get_pos event in + let cnum = + try + let buffer = get_buffer pos event.ev_module in + snd (start_and_cnum buffer pos) + with _ -> pos.Lexing.pos_cnum in fprintf ppf "#%i Pc : %i %s char %i@." framenum event.ev_pos event.ev_module - (Events.get_pos event).Lexing.pos_cnum + cnum (* Display information about the current frame. *) (* --- `select frame' must have succeded before calling this function. *) diff --git a/debugger/show_information.mli b/debugger/show_information.mli index 711d7b4d..e7ef20e2 100644 --- a/debugger/show_information.mli +++ b/debugger/show_information.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: show_information.mli,v 1.3 2000/03/06 22:11:25 weis Exp $ *) +(* $Id: show_information.mli 2908 2000-03-06 22:12:09Z weis $ *) open Format;; diff --git a/debugger/show_source.ml b/debugger/show_source.ml index 1189b506..263caff1 100644 --- a/debugger/show_source.ml +++ b/debugger/show_source.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: show_source.ml,v 1.14.14.1 2009/04/02 09:44:21 xclerc Exp $ *) +(* $Id: show_source.ml 9299 2009-06-17 08:15:39Z xclerc $ *) open Debugger_config open Instruct @@ -45,13 +45,16 @@ let show_point ev selected = let before = (ev.ev_kind = Event_before) in if !emacs && selected then begin try + let buffer = get_buffer (Events.get_pos ev) mdle in let source = source_of_module ev.ev_loc.Location.loc_start mdle in printf "\026\026M%s:%i:%i" source - ev.ev_loc.Location.loc_start.Lexing.pos_cnum - ev.ev_loc.Location.loc_end.Lexing.pos_cnum; + (snd (start_and_cnum buffer ev.ev_loc.Location.loc_start)) + (snd (start_and_cnum buffer ev.ev_loc.Location.loc_end)); printf "%s\n" (if before then ":before" else ":after") with - Not_found -> (* get_buffer *) + Out_of_range -> (* point_of_coord *) + prerr_endline "Position out of range." + | Not_found -> (* Events.get_pos || get_buffer *) prerr_endline ("No source file for " ^ mdle ^ "."); show_no_point () end @@ -59,11 +62,10 @@ let show_point ev selected = begin try let pos = Events.get_pos ev in let buffer = get_buffer pos mdle in - let point = pos.Lexing.pos_cnum in - let (start, line_number) = line_of_pos buffer point in - ignore(print_line buffer line_number start point before) + let start, point = start_and_cnum buffer pos in + ignore(print_line buffer pos.Lexing.pos_lnum start point before) with - Out_of_range -> (* line_of_pos *) + Out_of_range -> (* point_of_coord *) prerr_endline "Position out of range." | Not_found -> (* Events.get_pos || get_buffer *) prerr_endline ("No source file for " ^ mdle ^ ".") diff --git a/debugger/show_source.mli b/debugger/show_source.mli index c3760f7c..0d4106fe 100644 --- a/debugger/show_source.mli +++ b/debugger/show_source.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: show_source.mli,v 1.5 2006/12/09 13:49:10 ertai Exp $ *) +(* $Id: show_source.mli 7767 2006-12-09 13:49:10Z ertai $ *) (* Print the line containing the point *) val show_point : Instruct.debug_event -> bool -> unit;; diff --git a/debugger/source.ml b/debugger/source.ml index 644fe845..1d8600c2 100644 --- a/debugger/source.ml +++ b/debugger/source.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: source.ml,v 1.8.14.1 2009/04/02 09:06:32 xclerc Exp $ *) +(* $Id: source.ml 9299 2009-06-17 08:15:39Z xclerc $ *) (************************ Source management ****************************) @@ -185,3 +185,8 @@ let pos_of_line buffer line = (* --- The first line and column are line 1 and column 1. *) let point_of_coord buffer line column = fst (pos_of_line buffer line) + (pred column) + +let start_and_cnum buffer pos = + let line_number = pos.Lexing.pos_lnum in + let start = point_of_coord buffer line_number 1 in + start, start + (pos.Lexing.pos_cnum - pos.Lexing.pos_bol) diff --git a/debugger/source.mli b/debugger/source.mli index 9cf01c04..5250313b 100644 --- a/debugger/source.mli +++ b/debugger/source.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: source.mli,v 1.3 2006/12/09 13:49:10 ertai Exp $ *) +(* $Id: source.mli 9299 2009-06-17 08:15:39Z xclerc $ *) (************************ Source management ****************************) @@ -56,3 +56,6 @@ val pos_of_line : buffer -> int -> position (* Convert a coordinate (line / column) into a position. *) (* --- The first line and column are line 1 and column 1. *) val point_of_coord : buffer -> int -> int -> int + +(* Return the offsets of both line start and cnum for the passed position. *) +val start_and_cnum : buffer -> Lexing.position -> (int * int) diff --git a/debugger/symbols.ml b/debugger/symbols.ml index 4b22d895..b3dda25b 100644 --- a/debugger/symbols.ml +++ b/debugger/symbols.ml @@ -11,12 +11,13 @@ (* *) (***********************************************************************) -(* $Id: symbols.ml,v 1.18.18.1 2009/04/02 09:44:21 xclerc Exp $ *) +(* $Id: symbols.ml 9300 2009-06-18 11:17:16Z xclerc $ *) (* Handling of symbol tables (globals and events) *) open Instruct open Debugger_config (* Toplevel *) +open Program_loading let modules = ref ([] : string list) @@ -61,6 +62,12 @@ let read_symbols' bytecode_file = List.iter (relocate_event orig) evl; eventlists := evl :: !eventlists done; + begin try + ignore (Bytesections.seek_section ic "CODE") + with Not_found -> + (* The file contains only debugging info, loading mode is forced to "manual" *) + set_launching_function (List.assoc "manual" loading_modes) + end; close_in_noerr ic; !eventlists diff --git a/debugger/symbols.mli b/debugger/symbols.mli index 6d53aa1a..f1ec0544 100644 --- a/debugger/symbols.mli +++ b/debugger/symbols.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: symbols.mli,v 1.7 2005/08/25 15:35:16 doligez Exp $ *) +(* $Id: symbols.mli 7031 2005-08-25 15:35:16Z doligez $ *) (* Modules used by the program. *) val modules : string list ref diff --git a/debugger/time_travel.ml b/debugger/time_travel.ml index 0d020246..855c7eca 100644 --- a/debugger/time_travel.ml +++ b/debugger/time_travel.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: time_travel.ml,v 1.21.14.1 2009/04/02 09:44:21 xclerc Exp $ *) +(* $Id: time_travel.ml 9226 2009-04-02 09:44:21Z xclerc $ *) (**************************** Time travel ******************************) diff --git a/debugger/time_travel.mli b/debugger/time_travel.mli index b37c99c9..c5d81154 100644 --- a/debugger/time_travel.mli +++ b/debugger/time_travel.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: time_travel.mli,v 1.6 2006/11/20 10:29:45 ertai Exp $ *) +(* $Id: time_travel.mli 7745 2006-11-20 10:29:45Z ertai $ *) (**************************** Time travel ******************************) diff --git a/debugger/trap_barrier.ml b/debugger/trap_barrier.ml index 59954f20..ecdfe893 100644 --- a/debugger/trap_barrier.ml +++ b/debugger/trap_barrier.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: trap_barrier.ml,v 1.3 1999/11/17 18:57:29 xleroy Exp $ *) +(* $Id: trap_barrier.ml 2553 1999-11-17 18:59:06Z xleroy $ *) (************************** Trap barrier *******************************) diff --git a/debugger/trap_barrier.mli b/debugger/trap_barrier.mli index 00a2ab2f..e72a9f7c 100644 --- a/debugger/trap_barrier.mli +++ b/debugger/trap_barrier.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: trap_barrier.mli,v 1.2 1999/11/17 18:57:29 xleroy Exp $ *) +(* $Id: trap_barrier.mli 2553 1999-11-17 18:59:06Z xleroy $ *) (************************* Trap barrier ********************************) diff --git a/debugger/unix_tools.ml b/debugger/unix_tools.ml index c9f233bb..a95dcc69 100644 --- a/debugger/unix_tools.ml +++ b/debugger/unix_tools.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: unix_tools.ml,v 1.9.2.1 2009/04/02 09:44:21 xclerc Exp $ *) +(* $Id: unix_tools.ml 9226 2009-04-02 09:44:21Z xclerc $ *) (****************** Tools for Unix *************************************) diff --git a/debugger/unix_tools.mli b/debugger/unix_tools.mli index bf2a9557..3a702b9d 100644 --- a/debugger/unix_tools.mli +++ b/debugger/unix_tools.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: unix_tools.mli,v 1.4 2002/11/02 22:36:45 doligez Exp $ *) +(* $Id: unix_tools.mli 5232 2002-11-02 22:36:46Z doligez $ *) (**************************** Tools for Unix ***************************) diff --git a/driver/compile.ml b/driver/compile.ml index c2e7074b..8e14272f 100644 --- a/driver/compile.ml +++ b/driver/compile.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: compile.ml,v 1.61 2008/10/06 13:53:54 doligez Exp $ *) +(* $Id: compile.ml 9074 2008-10-06 13:53:54Z doligez $ *) (* The batch compiler *) diff --git a/driver/compile.mli b/driver/compile.mli index 07286e0f..de9ebb26 100644 --- a/driver/compile.mli +++ b/driver/compile.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: compile.mli,v 1.8 2004/06/13 12:46:41 xleroy Exp $ *) +(* $Id: compile.mli 6395 2004-06-13 12:46:41Z xleroy $ *) (* Compile a .ml or .mli file *) diff --git a/driver/errors.ml b/driver/errors.ml index 0481b9cb..e7cd2648 100644 --- a/driver/errors.ml +++ b/driver/errors.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: errors.ml,v 1.27 2007/12/04 13:38:58 doligez Exp $ *) +(* $Id: errors.ml 8705 2007-12-04 13:38:58Z doligez $ *) (* WARNING: if you change something in this file, you must look at opterrors.ml and ocamldoc/odoc_analyse.ml diff --git a/driver/errors.mli b/driver/errors.mli index c8004280..7abc0d72 100644 --- a/driver/errors.mli +++ b/driver/errors.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: errors.mli,v 1.5 2000/03/06 22:11:31 weis Exp $ *) +(* $Id: errors.mli 2908 2000-03-06 22:12:09Z weis $ *) (* Error report *) open Format diff --git a/driver/main.ml b/driver/main.ml index 74968452..50e10eee 100644 --- a/driver/main.ml +++ b/driver/main.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: main.ml,v 1.71.2.2 2009/01/14 13:19:32 doligez Exp $ *) +(* $Id: main.ml 9164 2009-01-14 13:19:32Z doligez $ *) open Config open Clflags diff --git a/driver/main.mli b/driver/main.mli index e91c60c6..f7f414f7 100644 --- a/driver/main.mli +++ b/driver/main.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: main.mli,v 1.1 2000/01/07 16:03:04 doligez Exp $ *) +(* $Id: main.mli 2740 2000-01-07 16:03:04Z doligez $ *) (* this "empty" file is here to speed up garbage collection in ocamlc.opt diff --git a/driver/main_args.ml b/driver/main_args.ml index 7e1c23eb..5eb8adae 100644 --- a/driver/main_args.ml +++ b/driver/main_args.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: main_args.ml,v 1.50 2007/05/16 08:21:40 doligez Exp $ *) +(* $Id: main_args.ml 8232 2007-05-16 08:21:41Z doligez $ *) module Make_options (F : sig diff --git a/driver/main_args.mli b/driver/main_args.mli index f9a08c37..20f394b1 100644 --- a/driver/main_args.mli +++ b/driver/main_args.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: main_args.mli,v 1.27 2007/05/16 08:21:40 doligez Exp $ *) +(* $Id: main_args.mli 8232 2007-05-16 08:21:41Z doligez $ *) module Make_options (F : sig diff --git a/driver/optcompile.ml b/driver/optcompile.ml index c502c109..acbf223c 100644 --- a/driver/optcompile.ml +++ b/driver/optcompile.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: optcompile.ml,v 1.56.2.2 2008/10/17 14:01:35 doligez Exp $ *) +(* $Id: optcompile.ml 9094 2008-10-17 14:01:35Z doligez $ *) (* The batch compiler *) diff --git a/driver/optcompile.mli b/driver/optcompile.mli index 7f6f037e..47eb0656 100644 --- a/driver/optcompile.mli +++ b/driver/optcompile.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: optcompile.mli,v 1.8 2004/06/13 12:46:41 xleroy Exp $ *) +(* $Id: optcompile.mli 6395 2004-06-13 12:46:41Z xleroy $ *) (* Compile a .ml or .mli file *) diff --git a/driver/opterrors.ml b/driver/opterrors.ml index cea33b0a..ba83ab3c 100644 --- a/driver/opterrors.ml +++ b/driver/opterrors.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: opterrors.ml,v 1.20 2007/12/04 13:38:58 doligez Exp $ *) +(* $Id: opterrors.ml 8705 2007-12-04 13:38:58Z doligez $ *) (* WARNING: if you change something in this file, you must look at errors.ml to see if you need to make the same changes there. diff --git a/driver/opterrors.mli b/driver/opterrors.mli index 296ec689..44ea1dd3 100644 --- a/driver/opterrors.mli +++ b/driver/opterrors.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: opterrors.mli,v 1.5 2000/03/07 05:02:32 garrigue Exp $ *) +(* $Id: opterrors.mli 2910 2000-03-07 05:02:33Z garrigue $ *) (* Error report *) diff --git a/driver/optmain.ml b/driver/optmain.ml index 04fd6a4a..193ba4ae 100644 --- a/driver/optmain.ml +++ b/driver/optmain.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: optmain.ml,v 1.98.2.1 2008/10/15 08:48:51 xleroy Exp $ *) +(* $Id: optmain.ml 9084 2008-10-15 08:48:51Z xleroy $ *) open Config open Clflags diff --git a/driver/optmain.mli b/driver/optmain.mli index 8bd6aee5..08ca44ff 100644 --- a/driver/optmain.mli +++ b/driver/optmain.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: optmain.mli,v 1.1 2000/01/07 16:03:04 doligez Exp $ *) +(* $Id: optmain.mli 2740 2000-01-07 16:03:04Z doligez $ *) (* this "empty" file is here to speed up garbage collection in ocamlopt.opt diff --git a/driver/pparse.ml b/driver/pparse.ml index acdc08bd..1ce335b5 100644 --- a/driver/pparse.ml +++ b/driver/pparse.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: pparse.ml,v 1.3 2004/06/16 16:58:46 doligez Exp $ *) +(* $Id: pparse.ml 6415 2004-06-16 16:58:46Z doligez $ *) open Format diff --git a/driver/pparse.mli b/driver/pparse.mli index f8ff8fda..db2e5612 100644 --- a/driver/pparse.mli +++ b/driver/pparse.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: pparse.mli,v 1.1 2002/02/08 10:14:31 ddr Exp $ *) +(* $Id: pparse.mli 4365 2002-02-08 10:14:31Z ddr $ *) open Format diff --git a/emacs/Makefile b/emacs/Makefile index d67e2aac..1df717eb 100644 --- a/emacs/Makefile +++ b/emacs/Makefile @@ -10,7 +10,7 @@ # # ######################################################################### -# $Id: Makefile,v 1.17 2004/08/20 17:04:35 doligez Exp $ +# $Id: Makefile 6612 2004-08-20 17:04:35Z doligez $ include ../config/Makefile diff --git a/emacs/README b/emacs/README index 42a66d15..a1e4782a 100644 --- a/emacs/README +++ b/emacs/README @@ -1,4 +1,4 @@ - O'Caml emacs mode, snapshot of $Date: 2008/01/11 16:13:16 $ + O'Caml emacs mode, snapshot of $Date: 2008-01-11 17:13:18 +0100 (Fri, 11 Jan 2008) $ The files in this archive define a caml-mode for emacs, for editing Objective Caml and Objective Label programs, as well as an diff --git a/emacs/caml-compat.el b/emacs/caml-compat.el index d1ab815f..0071cf0d 100644 --- a/emacs/caml-compat.el +++ b/emacs/caml-compat.el @@ -10,7 +10,7 @@ ;(* *) ;(***********************************************************************) -;(* $Id: caml-compat.el,v 1.3 2004/08/20 17:04:35 doligez Exp $ *) +;(* $Id: caml-compat.el 6612 2004-08-20 17:04:35Z doligez $ *) ;; function definitions for old versions of emacs diff --git a/emacs/caml-emacs.el b/emacs/caml-emacs.el index c45d767f..c7eacfd1 100644 --- a/emacs/caml-emacs.el +++ b/emacs/caml-emacs.el @@ -10,7 +10,7 @@ ;(* *) ;(***********************************************************************) -;(* $Id: caml-emacs.el,v 1.7 2004/08/20 17:04:35 doligez Exp $ *) +;(* $Id: caml-emacs.el 6612 2004-08-20 17:04:35Z doligez $ *) ;; for caml-help.el (defalias 'caml-info-other-window 'info-other-window) diff --git a/emacs/caml-font-old.el b/emacs/caml-font-old.el index f226e1c9..4fbcd7cb 100644 --- a/emacs/caml-font-old.el +++ b/emacs/caml-font-old.el @@ -10,7 +10,7 @@ ;(* *) ;(***********************************************************************) -;(* $Id: caml-font-old.el,v 1.2 2008/01/11 16:13:16 doligez Exp $ *) +;(* $Id: caml-font-old.el 8768 2008-01-11 16:13:18Z doligez $ *) ;; useful colors diff --git a/emacs/caml-help.el b/emacs/caml-help.el index 84fc4206..29fde073 100644 --- a/emacs/caml-help.el +++ b/emacs/caml-help.el @@ -10,7 +10,7 @@ ;(* *) ;(***********************************************************************) -;(* $Id: caml-help.el,v 1.17 2004/08/20 17:04:35 doligez Exp $ *) +;(* $Id: caml-help.el 6612 2004-08-20 17:04:35Z doligez $ *) ;; caml-info.el --- contextual completion and help to caml-mode diff --git a/emacs/caml-hilit.el b/emacs/caml-hilit.el index eda9548b..8c973ff6 100644 --- a/emacs/caml-hilit.el +++ b/emacs/caml-hilit.el @@ -10,7 +10,7 @@ ;(* *) ;(***********************************************************************) -;(* $Id: caml-hilit.el,v 1.9 2004/08/20 17:04:35 doligez Exp $ *) +;(* $Id: caml-hilit.el 6612 2004-08-20 17:04:35Z doligez $ *) ; Highlighting patterns for hilit19 under caml-mode diff --git a/emacs/caml-types.el b/emacs/caml-types.el index 67237a31..38ffe0f3 100644 --- a/emacs/caml-types.el +++ b/emacs/caml-types.el @@ -10,7 +10,7 @@ ;(* *) ;(***********************************************************************) -;(* $Id: caml-types.el,v 1.38 2008/07/29 15:49:31 doligez Exp $ *) +;(* $Id: caml-types.el 9364 2009-10-02 12:31:37Z doligez $ *) ; An emacs-lisp complement to the "-annot" option of ocamlc and ocamlopt. @@ -256,9 +256,9 @@ See `caml-types-location-re' for annotation file format. (let* ((loc-re (concat caml-types-position-re " " caml-types-position-re)) (end-re (concat caml-types-position-re " --")) - (def-re (concat "def \\([^ ]\\)* " loc-re)) - (def-end-re (concat "def \\([^ ]\\)* " end-re)) - (internal-re (concat "int_ref \\([^ ]\\)* " loc-re)) + (def-re (concat "def \\([^ ]*\\) " loc-re)) + (def-end-re (concat "def \\([^ ]*\\) " end-re)) + (internal-re (concat "int_ref \\([^ ]*\\) " loc-re)) (external-re "ext_ref \\(.*\\)")) (cond ((string-match def-re kind) @@ -359,7 +359,7 @@ See `caml-types-location-re' for annotation file format. (expand-file-name "_build" project-dir))))) (if (equal project-dir (parent-dir project-dir)) (error (concat "No annotation file. " - "You should compile with option \"-dtypes\"."))) + "You should compile with option \"-annot\"."))) (setq project-dir (parent-dir project-dir))) type-path)))) diff --git a/emacs/caml-xemacs.el b/emacs/caml-xemacs.el index d662c0d2..9a9d8454 100644 --- a/emacs/caml-xemacs.el +++ b/emacs/caml-xemacs.el @@ -10,7 +10,7 @@ ;(* *) ;(***********************************************************************) -;(* $Id: caml-xemacs.el,v 1.7 2005/03/24 17:20:53 doligez Exp $ *) +;(* $Id: caml-xemacs.el 6824 2005-03-24 17:20:54Z doligez $ *) (require 'overlay) diff --git a/emacs/caml.el b/emacs/caml.el index 1f6d86bc..a7155b21 100644 --- a/emacs/caml.el +++ b/emacs/caml.el @@ -10,7 +10,7 @@ ;(* *) ;(***********************************************************************) -;(* $Id: caml.el,v 1.44.2.2 2008/12/03 16:16:43 doligez Exp $ *) +;(* $Id: caml.el 9150 2008-12-03 16:16:43Z doligez $ *) ;;; caml.el --- O'Caml code editing commands for Emacs diff --git a/emacs/camldebug.el b/emacs/camldebug.el index 528f6825..261e66a8 100644 --- a/emacs/camldebug.el +++ b/emacs/camldebug.el @@ -10,7 +10,7 @@ ;(* *) ;(***********************************************************************) -;(* $Id: camldebug.el,v 1.11 2005/10/26 13:23:12 doligez Exp $ *) +;(* $Id: camldebug.el 7169 2005-10-26 13:23:12Z doligez $ *) ;;; Run camldebug under Emacs ;;; Derived from gdb.el. diff --git a/emacs/inf-caml.el b/emacs/inf-caml.el index b32c940b..1a60a6e7 100644 --- a/emacs/inf-caml.el +++ b/emacs/inf-caml.el @@ -10,7 +10,7 @@ ;(* *) ;(***********************************************************************) -;(* $Id: inf-caml.el,v 1.11 2004/08/20 17:04:35 doligez Exp $ *) +;(* $Id: inf-caml.el 6612 2004-08-20 17:04:35Z doligez $ *) ;;; inf-caml.el --- run the Caml toplevel in an Emacs buffer diff --git a/emacs/ocamltags.in b/emacs/ocamltags.in index 9d7db13b..55edab33 100644 --- a/emacs/ocamltags.in +++ b/emacs/ocamltags.in @@ -12,7 +12,7 @@ ;(* *) ;(***********************************************************************) -;(* $Id: ocamltags.in,v 1.6 2004/08/20 17:04:35 doligez Exp $ *) +;(* $Id: ocamltags.in 6612 2004-08-20 17:04:35Z doligez $ *) ;; Copyright (C) 1998 Ian Zimmerman ;; This program is free software; you can redistribute it and/or @@ -24,7 +24,7 @@ ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. -;; $Id: ocamltags.in,v 1.6 2004/08/20 17:04:35 doligez Exp $ +;; $Id: ocamltags.in 6612 2004-08-20 17:04:35Z doligez $ (require 'caml) diff --git a/lex/Makefile b/lex/Makefile index 0d085496..25f32828 100644 --- a/lex/Makefile +++ b/lex/Makefile @@ -10,7 +10,7 @@ # # ######################################################################### -# $Id: Makefile,v 1.19 2004/11/29 14:49:24 doligez Exp $ +# $Id: Makefile 6708 2004-11-29 14:49:24Z doligez $ # The lexer generator CAMLC=../boot/ocamlrun ../boot/ocamlc -nostdlib -I ../boot diff --git a/lex/Makefile.nt b/lex/Makefile.nt index fa7abb25..7efed1f5 100644 --- a/lex/Makefile.nt +++ b/lex/Makefile.nt @@ -10,7 +10,7 @@ # # ######################################################################### -# $Id: Makefile.nt,v 1.9 2003/01/06 14:57:22 xleroy Exp $ +# $Id: Makefile.nt 5372 2003-01-06 14:57:22Z xleroy $ # The lexer generator diff --git a/lex/compact.ml b/lex/compact.ml index f6fe4a3b..7d7fbadd 100644 --- a/lex/compact.ml +++ b/lex/compact.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: compact.ml,v 1.7 2002/10/28 16:46:49 maranget Exp $ *) +(* $Id: compact.ml 5193 2002-10-28 16:46:50Z maranget $ *) (* Compaction of an automata *) diff --git a/lex/compact.mli b/lex/compact.mli index 3023db94..b91cf13e 100644 --- a/lex/compact.mli +++ b/lex/compact.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: compact.mli,v 1.4 2002/10/28 16:46:49 maranget Exp $ *) +(* $Id: compact.mli 5193 2002-10-28 16:46:50Z maranget $ *) (* Compaction of an automata *) type lex_tables = diff --git a/lex/cset.ml b/lex/cset.ml index 8a7515c9..0b1b2b11 100644 --- a/lex/cset.ml +++ b/lex/cset.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: cset.ml,v 1.3 2004/04/29 11:12:49 maranget Exp $ *) +(* $Id: cset.ml 6269 2004-04-29 11:12:49Z maranget $ *) exception Bad diff --git a/lex/cset.mli b/lex/cset.mli index 48496037..3fafeba4 100644 --- a/lex/cset.mli +++ b/lex/cset.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: cset.mli,v 1.3 2004/04/29 11:12:49 maranget Exp $ *) +(* $Id: cset.mli 6269 2004-04-29 11:12:49Z maranget $ *) (* Set of characters encoded as list of intervals *) diff --git a/lex/lexer.mli b/lex/lexer.mli index dfc3eca1..0a5dd257 100644 --- a/lex/lexer.mli +++ b/lex/lexer.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: lexer.mli,v 1.6 2004/04/21 23:26:05 doligez Exp $ *) +(* $Id: lexer.mli 6244 2004-04-21 23:26:06Z doligez $ *) val main: Lexing.lexbuf -> Parser.token diff --git a/lex/lexer.mll b/lex/lexer.mll index c039d917..46569beb 100644 --- a/lex/lexer.mll +++ b/lex/lexer.mll @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: lexer.mll,v 1.22 2006/01/04 16:55:49 doligez Exp $ *) +(* $Id: lexer.mll 7307 2006-01-04 16:55:50Z doligez $ *) (* The lexical analyzer for lexer definitions. Bootstrapped! *) diff --git a/lex/lexgen.ml b/lex/lexgen.ml index 93f3a113..2e1ff8e6 100644 --- a/lex/lexgen.ml +++ b/lex/lexgen.ml @@ -12,7 +12,7 @@ (* *) (***********************************************************************) -(* $Id: lexgen.ml,v 1.21 2008/03/07 15:24:48 maranget Exp $ *) +(* $Id: lexgen.ml 8827 2008-03-07 15:24:48Z maranget $ *) (* Compiling a lexer definition *) diff --git a/lex/lexgen.mli b/lex/lexgen.mli index 37e53b4c..3e43a049 100644 --- a/lex/lexgen.mli +++ b/lex/lexgen.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: lexgen.mli,v 1.6 2007/01/29 16:44:16 maranget Exp $ *) +(* $Id: lexgen.mli 7815 2007-01-29 16:44:16Z maranget $ *) (* raised when there are too many bindings (>= 254 memory cells) *) diff --git a/lex/main.ml b/lex/main.ml index e33da6f2..199ba861 100644 --- a/lex/main.ml +++ b/lex/main.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: main.ml,v 1.22 2004/08/20 17:04:35 doligez Exp $ *) +(* $Id: main.ml 6612 2004-08-20 17:04:35Z doligez $ *) (* The lexer generator. Command-line parsing. *) diff --git a/lex/output.ml b/lex/output.ml index e37d1811..e41c8f23 100644 --- a/lex/output.ml +++ b/lex/output.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: output.ml,v 1.26 2007/01/29 16:44:16 maranget Exp $ *) +(* $Id: output.ml 7815 2007-01-29 16:44:16Z maranget $ *) (* Output the DFA tables and its entry points *) diff --git a/lex/output.mli b/lex/output.mli index 2c763e98..46ef258b 100644 --- a/lex/output.mli +++ b/lex/output.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: output.mli,v 1.8 2002/12/09 10:44:46 maranget Exp $ *) +(* $Id: output.mli 5323 2002-12-09 10:44:46Z maranget $ *) (* Output the DFA tables and its entry points *) diff --git a/lex/outputbis.ml b/lex/outputbis.ml index f8e9315d..7675c7a7 100644 --- a/lex/outputbis.ml +++ b/lex/outputbis.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: outputbis.ml,v 1.6 2007/01/29 16:44:16 maranget Exp $ *) +(* $Id: outputbis.ml 7815 2007-01-29 16:44:16Z maranget $ *) (* Output the DFA tables and its entry points *) diff --git a/lex/outputbis.mli b/lex/outputbis.mli index 01192a5e..9c600413 100644 --- a/lex/outputbis.mli +++ b/lex/outputbis.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: outputbis.mli,v 1.3 2002/12/09 10:44:46 maranget Exp $ *) +(* $Id: outputbis.mli 5323 2002-12-09 10:44:46Z maranget $ *) val output_lexdef : string -> in_channel -> diff --git a/lex/parser.mly b/lex/parser.mly index cbe5a1f1..b821c7a7 100644 --- a/lex/parser.mly +++ b/lex/parser.mly @@ -10,7 +10,7 @@ /* */ /***********************************************************************/ -/* $Id: parser.mly,v 1.23 2007/01/29 16:44:16 maranget Exp $ */ +/* $Id: parser.mly 7815 2007-01-29 16:44:16Z maranget $ */ /* The grammar for lexer definitions */ diff --git a/lex/syntax.ml b/lex/syntax.ml index 2f491078..356c5612 100644 --- a/lex/syntax.ml +++ b/lex/syntax.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: syntax.ml,v 1.9 2007/01/29 16:44:16 maranget Exp $ *) +(* $Id: syntax.ml 7815 2007-01-29 16:44:16Z maranget $ *) (* This apparently useless implmentation file is in fact required by the pa_ocamllex syntax extension *) diff --git a/lex/syntax.mli b/lex/syntax.mli index ab90f632..19dbdcd1 100644 --- a/lex/syntax.mli +++ b/lex/syntax.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: syntax.mli,v 1.9 2007/01/29 16:44:16 maranget Exp $ *) +(* $Id: syntax.mli 7815 2007-01-29 16:44:16Z maranget $ *) (* The shallow abstract syntax *) diff --git a/man/Makefile b/man/Makefile index 7c6a1573..ebd058d1 100644 --- a/man/Makefile +++ b/man/Makefile @@ -10,7 +10,7 @@ # # ######################################################################### -# $Id: Makefile,v 1.3 2002/04/24 09:09:35 xleroy Exp $ +# $Id: Makefile 4733 2002-04-24 09:09:35Z xleroy $ include ../config/Makefile diff --git a/man/ocaml.m b/man/ocaml.m index 8087d747..ac760510 100644 --- a/man/ocaml.m +++ b/man/ocaml.m @@ -1,4 +1,4 @@ -\" $Id: ocaml.m,v 1.10.2.1 2009/01/13 15:17:09 doligez Exp $ +\" $Id: ocaml.m 9162 2009-01-13 15:17:09Z doligez $ .TH OCAML 1 diff --git a/man/ocamlc.m b/man/ocamlc.m index a7fae5d3..c1fda29a 100644 --- a/man/ocamlc.m +++ b/man/ocamlc.m @@ -1,4 +1,4 @@ -\" $Id: ocamlc.m,v 1.12.2.1 2008/10/29 12:38:52 doligez Exp $ +\" $Id: ocamlc.m 9111 2008-10-29 12:38:52Z doligez $ .TH OCAMLC 1 diff --git a/man/ocamlcp.m b/man/ocamlcp.m index 1b3cc52a..a7b6a574 100644 --- a/man/ocamlcp.m +++ b/man/ocamlcp.m @@ -1,4 +1,4 @@ -\" $Id: ocamlcp.m,v 1.4 2008/09/15 14:05:30 doligez Exp $ +\" $Id: ocamlcp.m 9025 2008-09-15 14:05:30Z doligez $ .TH OCAMLCP 1 diff --git a/man/ocamldebug.m b/man/ocamldebug.m index 1e81e896..b2e90343 100644 --- a/man/ocamldebug.m +++ b/man/ocamldebug.m @@ -1,4 +1,4 @@ -\" $Id: ocamldebug.m,v 1.2 2008/09/15 14:05:30 doligez Exp $ +\" $Id: ocamldebug.m 9025 2008-09-15 14:05:30Z doligez $ .TH OCAMLDEBUG 1 diff --git a/man/ocamldep.m b/man/ocamldep.m index 884ceb15..d6571abf 100644 --- a/man/ocamldep.m +++ b/man/ocamldep.m @@ -1,4 +1,4 @@ -\" $Id: ocamldep.m,v 1.6 2008/09/15 14:12:56 doligez Exp $ +\" $Id: ocamldep.m 9026 2008-09-15 14:12:56Z doligez $ .TH OCAMLDEP 1 diff --git a/man/ocamldoc.m b/man/ocamldoc.m index df807c7d..576eade5 100644 --- a/man/ocamldoc.m +++ b/man/ocamldoc.m @@ -1,4 +1,4 @@ -\" $Id: ocamldoc.m,v 1.5.2.1 2009/05/27 14:35:27 doligez Exp $ +\" $Id: ocamldoc.m 9282 2009-05-27 14:35:27Z doligez $ .TH OCAMLDOC 1 diff --git a/man/ocamllex.m b/man/ocamllex.m index 128dc56c..35151211 100644 --- a/man/ocamllex.m +++ b/man/ocamllex.m @@ -1,4 +1,4 @@ -\" $Id: ocamllex.m,v 1.5 2008/09/15 14:12:56 doligez Exp $ +\" $Id: ocamllex.m 9026 2008-09-15 14:12:56Z doligez $ .TH OCAMLLEX 1 .SH NAME diff --git a/man/ocamlmktop.m b/man/ocamlmktop.m index 7112d525..c70503ba 100644 --- a/man/ocamlmktop.m +++ b/man/ocamlmktop.m @@ -1,4 +1,4 @@ -\" $Id: ocamlmktop.m,v 1.3 2008/09/15 14:12:56 doligez Exp $ +\" $Id: ocamlmktop.m 9026 2008-09-15 14:12:56Z doligez $ .TH OCAMLMKTOP 1 .SH NAME diff --git a/man/ocamlopt.m b/man/ocamlopt.m index cdebf3d1..cdf5412a 100644 --- a/man/ocamlopt.m +++ b/man/ocamlopt.m @@ -1,4 +1,4 @@ -\" $Id: ocamlopt.m,v 1.10.2.1 2008/10/29 12:38:52 doligez Exp $ +\" $Id: ocamlopt.m 9111 2008-10-29 12:38:52Z doligez $ .TH OCAMLOPT 1 .SH NAME diff --git a/man/ocamlprof.m b/man/ocamlprof.m index 7b0fa104..c66ebede 100644 --- a/man/ocamlprof.m +++ b/man/ocamlprof.m @@ -1,4 +1,4 @@ -\" $Id: ocamlprof.m,v 1.6 2008/09/15 14:25:42 doligez Exp $ +\" $Id: ocamlprof.m 9027 2008-09-15 14:25:42Z doligez $ .TH OCAMLPROF 1 .SH NAME diff --git a/man/ocamlrun.m b/man/ocamlrun.m index a4c52de4..238ea559 100644 --- a/man/ocamlrun.m +++ b/man/ocamlrun.m @@ -1,4 +1,4 @@ -\" $Id: ocamlrun.m,v 1.6.2.1 2008/11/18 10:41:17 doligez Exp $ +\" $Id: ocamlrun.m 9133 2008-11-18 10:41:17Z doligez $ .TH OCAMLRUN 1 .SH NAME diff --git a/man/ocamlyacc.m b/man/ocamlyacc.m index 463891a0..af0cb6fb 100644 --- a/man/ocamlyacc.m +++ b/man/ocamlyacc.m @@ -1,4 +1,4 @@ -\" $Id: ocamlyacc.m,v 1.4 2008/09/15 14:12:56 doligez Exp $ +\" $Id: ocamlyacc.m 9026 2008-09-15 14:12:56Z doligez $ .TH OCAMLYACC 1 .SH NAME diff --git a/myocamlbuild.ml b/myocamlbuild.ml index 360dc56c..c27f0ac8 100644 --- a/myocamlbuild.ml +++ b/myocamlbuild.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: myocamlbuild.ml,v 1.23.2.7 2009/06/04 11:33:21 doligez Exp $ *) +(* $Id: myocamlbuild.ml 9290 2009-06-04 11:33:21Z doligez $ *) open Ocamlbuild_plugin open Command diff --git a/myocamlbuild_config.mli b/myocamlbuild_config.mli index ce82607f..28b22617 100644 --- a/myocamlbuild_config.mli +++ b/myocamlbuild_config.mli @@ -53,6 +53,7 @@ val ext_asm : string val ext_dll : string val o : string val a : string +val so : string val toolchain : string val ccomptype : string val extralibs : string diff --git a/ocamlbuild/_tags b/ocamlbuild/_tags index 215d1127..d0d8028a 100644 --- a/ocamlbuild/_tags +++ b/ocamlbuild/_tags @@ -1,6 +1,6 @@ # OCamlbuild tags file true: debug -<*.ml> or <*.mli>: warn_A, warn_error_A, warn_e, dtypes +<*.ml> or <*.mli>: warn_A, warn_error_A, warn_e, annot "discard_printf.ml": rectypes "ocamlbuildlib.cma" or "ocamlbuildlightlib.cma": linkall <*.byte> or <*.native> or <*.top>: use_unix diff --git a/ocamlbuild/command.ml b/ocamlbuild/command.ml index 40f4022a..2653116e 100644 --- a/ocamlbuild/command.ml +++ b/ocamlbuild/command.ml @@ -278,7 +278,7 @@ let execute_many ?(quiet=false) ?(pretend=false) cmds = | Some _ -> false :: acc_res, acc_exn end ([], None) konts in match opt_exn with - | Some(exn) -> Some(res, exn) + | Some(exn) -> Some(List.rev res, exn) | None -> None else My_unix.execute_many ~ticker ?max_jobs ~display konts diff --git a/ocamlbuild/ocaml_specific.ml b/ocamlbuild/ocaml_specific.ml index e5ad0a22..32b917b5 100644 --- a/ocamlbuild/ocaml_specific.ml +++ b/ocamlbuild/ocaml_specific.ml @@ -305,7 +305,8 @@ rule "ocaml C stubs: c -> o" begin fun env _build -> let c = env "%.c" in let o = env x_o in - let cc = Cmd(S[!Options.ocamlc; T(tags_of_pathname c++"c"++"compile"); A"-c"; Px c]) in + let comp = if Tags.mem "native" (tags_of_pathname c) then !Options.ocamlopt else !Options.ocamlc in + let cc = Cmd(S[comp; T(tags_of_pathname c++"c"++"compile"); A"-c"; Px c]) in if Pathname.dirname o = Pathname.current_dir_name then cc else Seq[cc; mv (Pathname.basename o) o] end;; @@ -416,6 +417,8 @@ flag ["ocaml"; "compile"; "thread"] (A "-thread");; flag ["ocaml"; "doc"; "thread"] (S[A"-I"; A"+threads"]);; flag ["ocaml"; "link"; "thread"; "native"; "program"] (S[A "threads.cmxa"; A "-thread"]);; flag ["ocaml"; "link"; "thread"; "byte"; "program"] (S[A "threads.cma"; A "-thread"]);; +flag ["ocaml"; "link"; "thread"; "native"; "toplevel"] (S[A "threads.cmxa"; A "-thread"]);; +flag ["ocaml"; "link"; "thread"; "byte"; "toplevel"] (S[A "threads.cma"; A "-thread"]);; flag ["ocaml"; "compile"; "nopervasives"] (A"-nopervasives");; flag ["ocaml"; "compile"; "nolabels"] (A"-nolabels");; diff --git a/ocamlbuild/ocaml_utils.ml b/ocamlbuild/ocaml_utils.ml index d42c884b..bbfe60e3 100644 --- a/ocamlbuild/ocaml_utils.ml +++ b/ocamlbuild/ocaml_utils.ml @@ -123,7 +123,10 @@ let ocaml_lib ?(extern=false) ?(byte=true) ?(native=true) ?dir ?tag_name libpath end; match dir with | None -> () - | Some dir -> flag ["ocaml"; tag_name; "compile"] (S[A"-I"; P dir]) + | Some dir -> + List.iter + (fun x -> flag ["ocaml"; tag_name; x] (S[A"-I"; P dir])) + ["compile"; "doc"; "infer_interface"] let cmi_of = Pathname.update_extensions "cmi" diff --git a/ocamlbuild/ocamlbuild-presentation.rslide b/ocamlbuild/ocamlbuild-presentation.rslide index 7fdec39f..30ba657b 100644 --- a/ocamlbuild/ocamlbuild-presentation.rslide +++ b/ocamlbuild/ocamlbuild-presentation.rslide @@ -166,7 +166,7 @@ slide "The tags, our way to specify exceptions", 'fragile=singleslide' do end code_tags do : "funny.ml": rectypes - ~<**/*.ml*>~: warn_A, warn_error_A, debug, dtypes + ~<**/*.ml*>~: warn_A, warn_error_A, debug, annot "foo.ml" or "bar.ml": warn_v, warn_error_v "vendor.ml": -warn_A, -warn_error_A : use_unix diff --git a/ocamlbuild/ocamlbuild_plugin.ml b/ocamlbuild/ocamlbuild_plugin.ml index 930ba17c..2aadca17 100644 --- a/ocamlbuild/ocamlbuild_plugin.ml +++ b/ocamlbuild/ocamlbuild_plugin.ml @@ -31,6 +31,7 @@ type env = Pathname.t -> Pathname.t type builder = Pathname.t list list -> (Pathname.t, exn) Ocamlbuild_pack.My_std.Outcome.t list type action = env -> builder -> Command.t let rule = Rule.rule +let clear_rules = Rule.clear_rules let dep = Command.dep let copy_rule = Rule.copy_rule let ocaml_lib = Ocamlbuild_pack.Ocaml_utils.ocaml_lib diff --git a/ocamlbuild/ocamlbuild_unix_plugin.ml b/ocamlbuild/ocamlbuild_unix_plugin.ml index 1e4efff4..c562d428 100644 --- a/ocamlbuild/ocamlbuild_unix_plugin.ml +++ b/ocamlbuild/ocamlbuild_unix_plugin.ml @@ -61,6 +61,7 @@ let stdout_isatty () = Unix.isatty Unix.stdout let execute_many = + let exit i = raise (My_std.Exit_with_code i) in let exit = function | Ocamlbuild_executor.Subcommand_failed -> exit Exit_codes.rc_executor_subcommand_failed | Ocamlbuild_executor.Subcommand_got_signal -> exit Exit_codes.rc_executor_subcommand_got_signal diff --git a/ocamlbuild/options.ml b/ocamlbuild/options.ml index 7e9bd5b3..11839c61 100644 --- a/ocamlbuild/options.ml +++ b/ocamlbuild/options.ml @@ -76,9 +76,10 @@ let program_to_execute = ref false let must_clean = ref false let show_documentation = ref false let recursive = ref false -let ext_lib = ref "a" -let ext_obj = ref "o" -let ext_dll = ref "so" +let ext_lib = ref Ocamlbuild_Myocamlbuild_config.a +let ext_obj = ref Ocamlbuild_Myocamlbuild_config.o +let ext_dll = ref Ocamlbuild_Myocamlbuild_config.so +let exe = ref Ocamlbuild_Myocamlbuild_config.exe let targets_internal = ref [] let ocaml_libs_internal = ref [] diff --git a/ocamlbuild/plugin.ml b/ocamlbuild/plugin.ml index 97d76af0..8465ee77 100644 --- a/ocamlbuild/plugin.ml +++ b/ocamlbuild/plugin.ml @@ -30,7 +30,7 @@ module Make(U:sig end) = let we_have_a_config_file = sys_file_exists plugin_config_file let we_need_a_plugin = !Options.plugin && sys_file_exists plugin_file - let we_have_a_plugin = sys_file_exists (!Options.build_dir/plugin) + let we_have_a_plugin = sys_file_exists ((!Options.build_dir/plugin)^(!Options.exe)) let we_have_a_config_file_interface = sys_file_exists plugin_config_file_interface let up_to_date_or_copy fn = @@ -56,6 +56,12 @@ module Make(U:sig end) = () (* Up to date *) (* FIXME: remove ocamlbuild_config.ml in _build/ if removed in parent *) else begin + if !Options.native_plugin + && not (sys_file_exists ((!Ocamlbuild_where.libdir)/"ocamlbuildlib.cmxa")) then + begin + Options.native_plugin := false; + eprintf "Warning: Won't be able to compile a native plugin" + end; let plugin_config = if we_have_a_config_file then if we_have_a_config_file_interface then @@ -83,10 +89,10 @@ module Make(U:sig end) = let cmd = Cmd(S[compiler; A"-I"; P dir; libs; more_options; P(dir/ocamlbuildlib); plugin_config; P plugin_file; - P(dir/ocamlbuild); A"-o"; Px plugin]) + P(dir/ocamlbuild); A"-o"; Px (plugin^(!Options.exe))]) in Shell.chdir !Options.build_dir; - Shell.rm_f plugin; + Shell.rm_f (plugin^(!Options.exe)); Command.execute cmd end @@ -96,7 +102,8 @@ module Make(U:sig end) = rebuild_plugin_if_needed (); Shell.chdir Pathname.pwd; if not !Options.just_plugin then - let spec = S[!Options.ocamlrun; P(!Options.build_dir/plugin); + let runner = if !Options.native_plugin then N else !Options.ocamlrun in + let spec = S[runner; P(!Options.build_dir/plugin^(!Options.exe)); A"-no-plugin"; atomize (List.tl (Array.to_list Sys.argv))] in let () = Log.finish () in raise (Exit_silently_with_code (sys_command (Command.string_of_command_spec spec))) diff --git a/ocamlbuild/rule.ml b/ocamlbuild/rule.ml index bf217e7d..ac0f0c8b 100644 --- a/ocamlbuild/rule.ml +++ b/ocamlbuild/rule.ml @@ -227,7 +227,7 @@ let call builder r = then thunk () else List.iter (fun x -> Resource.Cache.suspend_resource x action.command thunk r.prods) r.prods -let (get_rules, add_rule) = +let (get_rules, add_rule, clear_rules) = let rules = ref [] in (fun () -> !rules), begin fun pos r -> @@ -248,7 +248,8 @@ let (get_rules, add_rule) = List.fold_right begin fun x acc -> if x.name = s then r :: x :: acc else x :: acc end !rules [] - end + end, + (fun () -> rules := []) let rule name ?(tags=[]) ?(prods=[]) ?(deps=[]) ?prod ?dep ?stamp ?(insert = `bottom) code = let res_add import xs xopt = diff --git a/ocamlbuild/rule.mli b/ocamlbuild/rule.mli index 9be718e2..16af0f6f 100644 --- a/ocamlbuild/rule.mli +++ b/ocamlbuild/rule.mli @@ -73,6 +73,7 @@ val print_rule_name : Format.formatter -> 'a gen_rule -> unit val print_rule_contents : 'a rule_printer val get_rules : unit -> rule_scheme list +val clear_rules : unit -> unit val call : builder -> rule -> unit diff --git a/ocamlbuild/signatures.mli b/ocamlbuild/signatures.mli index 4304d749..40923b69 100644 --- a/ocamlbuild/signatures.mli +++ b/ocamlbuild/signatures.mli @@ -397,6 +397,7 @@ module type OPTIONS = sig val ext_obj : string ref val ext_lib : string ref val ext_dll : string ref + val exe : string ref end module type ARCH = sig @@ -520,6 +521,9 @@ module type PLUGIN = sig ?insert:[`top | `before of string | `after of string | `bottom] -> string -> string -> unit + (** Empties the list of rules of the ocamlbuild engine. *) + val clear_rules : unit -> unit + (** [dep tags deps] Will build [deps] when all [tags] will be activated. *) val dep : Tags.elt list -> Pathname.t list -> unit diff --git a/ocamldoc/.cvsignore b/ocamldoc/.cvsignore index 720ee641..0372a098 100644 --- a/ocamldoc/.cvsignore +++ b/ocamldoc/.cvsignore @@ -14,3 +14,4 @@ stdlib_man test_stdlib test_latex test +*.a diff --git a/ocamldoc/Makefile b/ocamldoc/Makefile index 66f9fddc..a252bfb1 100644 --- a/ocamldoc/Makefile +++ b/ocamldoc/Makefile @@ -9,7 +9,7 @@ #(* *) #(***********************************************************************) -# $Id: Makefile,v 1.66.4.1 2009/04/09 13:56:38 guesdon Exp $ +# $Id: Makefile 9229 2009-04-09 13:56:38Z guesdon $ include ../config/Makefile diff --git a/ocamldoc/Makefile.nt b/ocamldoc/Makefile.nt index ec7504dd..d11dcccc 100644 --- a/ocamldoc/Makefile.nt +++ b/ocamldoc/Makefile.nt @@ -9,7 +9,7 @@ #(* *) #(***********************************************************************) -# $Id: Makefile.nt,v 1.27.4.2 2009/05/20 12:07:05 doligez Exp $ +# $Id: Makefile.nt 9272 2009-05-20 12:07:05Z doligez $ include ../config/Makefile diff --git a/ocamldoc/odoc.ml b/ocamldoc/odoc.ml index 97c70f3f..996aa019 100644 --- a/ocamldoc/odoc.ml +++ b/ocamldoc/odoc.ml @@ -9,7 +9,7 @@ (* *) (***********************************************************************) -(* $Id: odoc.ml,v 1.9.14.1 2009/04/09 13:56:38 guesdon Exp $ *) +(* $Id: odoc.ml 9371 2009-10-16 12:40:04Z doligez $ *) (** Main module for bytecode. *) @@ -81,11 +81,11 @@ let _ = prerr_endline (Odoc_messages.load_file_error file "Not_found"); exit 1 | Sys_error s - | Failure s -> + | Failure s -> prerr_endline (Odoc_messages.load_file_error file s); exit 1 -let _ = print_DEBUG "Fin du chargement dynamique éventuel" +let _ = print_DEBUG "Fin du chargement dynamique eventuel" let default_html_generator = new Odoc_html.html let default_latex_generator = new Odoc_latex.latex @@ -147,4 +147,4 @@ let _ = exit 0 -(* eof $Id: odoc.ml,v 1.9.14.1 2009/04/09 13:56:38 guesdon Exp $ *) +(* eof $Id: odoc.ml 9371 2009-10-16 12:40:04Z doligez $ *) diff --git a/ocamldoc/odoc_analyse.ml b/ocamldoc/odoc_analyse.ml index 24cb064f..d266190f 100644 --- a/ocamldoc/odoc_analyse.ml +++ b/ocamldoc/odoc_analyse.ml @@ -9,7 +9,7 @@ (* *) (***********************************************************************) -(* $Id: odoc_analyse.ml,v 1.15 2007/12/04 13:38:58 doligez Exp $ *) +(* $Id: odoc_analyse.ml 8705 2007-12-04 13:38:58Z doligez $ *) (** Analysis of source files. This module is strongly inspired from driver/main.ml :-) *) diff --git a/ocamldoc/odoc_analyse.mli b/ocamldoc/odoc_analyse.mli index d7f20fb9..d99f677e 100644 --- a/ocamldoc/odoc_analyse.mli +++ b/ocamldoc/odoc_analyse.mli @@ -9,7 +9,7 @@ (* *) (***********************************************************************) -(* $Id: odoc_analyse.mli,v 1.4 2004/08/20 17:04:35 doligez Exp $ *) +(* $Id: odoc_analyse.mli 6612 2004-08-20 17:04:35Z doligez $ *) (** Analysis of source files. *) diff --git a/ocamldoc/odoc_args.ml b/ocamldoc/odoc_args.ml index d9ba9324..4f98c065 100644 --- a/ocamldoc/odoc_args.ml +++ b/ocamldoc/odoc_args.ml @@ -9,7 +9,7 @@ (* *) (***********************************************************************) -(* cvsid $Id: odoc_args.ml,v 1.22.2.1 2009/04/09 13:56:38 guesdon Exp $ *) +(* cvsid $Id: odoc_args.ml 9229 2009-04-09 13:56:38Z guesdon $ *) (** Command-line arguments. *) diff --git a/ocamldoc/odoc_args.mli b/ocamldoc/odoc_args.mli index f2fd6b39..0f0947f7 100644 --- a/ocamldoc/odoc_args.mli +++ b/ocamldoc/odoc_args.mli @@ -9,7 +9,7 @@ (* *) (***********************************************************************) -(* $Id: odoc_args.mli,v 1.17.2.1 2009/04/09 13:56:38 guesdon Exp $ *) +(* $Id: odoc_args.mli 9229 2009-04-09 13:56:38Z guesdon $ *) (** Analysis of the command line arguments. *) diff --git a/ocamldoc/odoc_ast.ml b/ocamldoc/odoc_ast.ml index c44f204d..8870fe01 100644 --- a/ocamldoc/odoc_ast.ml +++ b/ocamldoc/odoc_ast.ml @@ -9,7 +9,7 @@ (* *) (***********************************************************************) -(* $Id: odoc_ast.ml,v 1.32 2008/07/25 13:28:23 guesdon Exp $ *) +(* $Id: odoc_ast.ml 9371 2009-10-16 12:40:04Z doligez $ *) (** Analysis of implementation files. *) open Misc @@ -332,7 +332,7 @@ module Analyser = in (new_param, func_body2) | _ -> - print_DEBUG3 "Pas le bon filtre pour le paramètre optionnel avec valeur par défaut."; + print_DEBUG3 "Pas le bon filtre pour le parametre optionnel avec valeur par defaut."; (parameter, func_body) ) ) @@ -477,7 +477,7 @@ module Analyser = in (new_param, body2) | _ -> - print_DEBUG3 "Pas le bon filtre pour le paramètre optionnel avec valeur par défaut."; + print_DEBUG3 "Pas le bon filtre pour le parametre optionnel avec valeur par defaut."; (parameter, body) ) ) diff --git a/ocamldoc/odoc_ast.mli b/ocamldoc/odoc_ast.mli index b68b7774..9b5196ac 100644 --- a/ocamldoc/odoc_ast.mli +++ b/ocamldoc/odoc_ast.mli @@ -9,7 +9,7 @@ (* *) (***********************************************************************) -(* $Id: odoc_ast.mli,v 1.4 2003/11/24 10:39:29 starynke Exp $ *) +(* $Id: odoc_ast.mli 5973 2003-11-24 10:44:07Z starynke $ *) (** The module for analysing the typed abstract syntax tree and source code and creating modules, classes, ..., elements.*) diff --git a/ocamldoc/odoc_class.ml b/ocamldoc/odoc_class.ml index c2848b8b..49c507f7 100644 --- a/ocamldoc/odoc_class.ml +++ b/ocamldoc/odoc_class.ml @@ -9,7 +9,7 @@ (* *) (***********************************************************************) -(* $Id: odoc_class.ml,v 1.5 2004/03/26 15:57:02 guesdon Exp $ *) +(* $Id: odoc_class.ml 6174 2004-03-26 15:57:03Z guesdon $ *) (** Representation and manipulation of classes and class types.*) @@ -250,4 +250,4 @@ let class_type_parameter_text_by_name clt label = None -(* eof $Id: odoc_class.ml,v 1.5 2004/03/26 15:57:02 guesdon Exp $ *) +(* eof $Id: odoc_class.ml 6174 2004-03-26 15:57:03Z guesdon $ *) diff --git a/ocamldoc/odoc_comments.ml b/ocamldoc/odoc_comments.ml index ad22bb64..4986bff2 100644 --- a/ocamldoc/odoc_comments.ml +++ b/ocamldoc/odoc_comments.ml @@ -9,7 +9,7 @@ (* *) (***********************************************************************) -(* $Id: odoc_comments.ml,v 1.6 2006/09/20 11:14:36 doligez Exp $ *) +(* $Id: odoc_comments.ml 7619 2006-09-20 11:14:37Z doligez $ *) (** Analysis of comments. *) diff --git a/ocamldoc/odoc_comments.mli b/ocamldoc/odoc_comments.mli index 6a51b88f..6e1a3768 100644 --- a/ocamldoc/odoc_comments.mli +++ b/ocamldoc/odoc_comments.mli @@ -9,7 +9,7 @@ (* *) (***********************************************************************) -(* $Id: odoc_comments.mli,v 1.5 2006/09/20 11:14:36 doligez Exp $ *) +(* $Id: odoc_comments.mli 7619 2006-09-20 11:14:37Z doligez $ *) (** Analysis of comments. *) diff --git a/ocamldoc/odoc_comments_global.ml b/ocamldoc/odoc_comments_global.ml index 92846af1..d26d91c4 100644 --- a/ocamldoc/odoc_comments_global.ml +++ b/ocamldoc/odoc_comments_global.ml @@ -9,7 +9,7 @@ (* *) (***********************************************************************) -(* $Id: odoc_comments_global.ml,v 1.2 2003/11/24 10:39:30 starynke Exp $ *) +(* $Id: odoc_comments_global.ml 5973 2003-11-24 10:44:07Z starynke $ *) (** The global variables used by the special comment parser.*) @@ -45,4 +45,4 @@ let init () = return_value := None ; customs := [] -(* eof $Id: odoc_comments_global.ml,v 1.2 2003/11/24 10:39:30 starynke Exp $ *) +(* eof $Id: odoc_comments_global.ml 5973 2003-11-24 10:44:07Z starynke $ *) diff --git a/ocamldoc/odoc_comments_global.mli b/ocamldoc/odoc_comments_global.mli index c29d074f..736d8d83 100644 --- a/ocamldoc/odoc_comments_global.mli +++ b/ocamldoc/odoc_comments_global.mli @@ -9,7 +9,7 @@ (* *) (***********************************************************************) -(* $Id: odoc_comments_global.mli,v 1.2 2003/11/24 10:39:30 starynke Exp $ *) +(* $Id: odoc_comments_global.mli 5973 2003-11-24 10:44:07Z starynke $ *) (** The global variables used by the special comment parser.*) diff --git a/ocamldoc/odoc_config.ml b/ocamldoc/odoc_config.ml index f854b8d9..038b1caa 100644 --- a/ocamldoc/odoc_config.ml +++ b/ocamldoc/odoc_config.ml @@ -9,7 +9,7 @@ (* *) (***********************************************************************) -(* $Id: odoc_config.ml,v 1.2 2007/10/08 14:19:34 doligez Exp $ *) +(* $Id: odoc_config.ml 8416 2007-10-08 14:19:34Z doligez $ *) let custom_generators_path = Filename.concat Config.standard_library diff --git a/ocamldoc/odoc_config.mli b/ocamldoc/odoc_config.mli index eaadd909..f67a6117 100644 --- a/ocamldoc/odoc_config.mli +++ b/ocamldoc/odoc_config.mli @@ -9,7 +9,7 @@ (* *) (***********************************************************************) -(* $Id: odoc_config.mli,v 1.2 2007/10/08 14:19:34 doligez Exp $ *) +(* $Id: odoc_config.mli 8416 2007-10-08 14:19:34Z doligez $ *) (** Ocamldoc configuration contants. *) diff --git a/ocamldoc/odoc_control.ml b/ocamldoc/odoc_control.ml index 979b9ad0..07bf335d 100644 --- a/ocamldoc/odoc_control.ml +++ b/ocamldoc/odoc_control.ml @@ -9,5 +9,5 @@ (* *) (***********************************************************************) -(* $Id: odoc_control.ml,v 1.2 2003/11/24 10:39:30 starynke Exp $ *) +(* $Id: odoc_control.ml 5973 2003-11-24 10:44:07Z starynke $ *) diff --git a/ocamldoc/odoc_cross.ml b/ocamldoc/odoc_cross.ml index 9b7974db..a0244a17 100644 --- a/ocamldoc/odoc_cross.ml +++ b/ocamldoc/odoc_cross.ml @@ -9,7 +9,7 @@ (* *) (***********************************************************************) -(* $Id: odoc_cross.ml,v 1.18 2007/10/09 10:29:36 weis Exp $ *) +(* $Id: odoc_cross.ml 8418 2007-10-09 10:29:37Z weis $ *) (** Cross referencing. *) diff --git a/ocamldoc/odoc_cross.mli b/ocamldoc/odoc_cross.mli index f70170a8..35e70b6a 100644 --- a/ocamldoc/odoc_cross.mli +++ b/ocamldoc/odoc_cross.mli @@ -9,7 +9,7 @@ (* *) (***********************************************************************) -(* $Id: odoc_cross.mli,v 1.3 2006/09/20 11:14:36 doligez Exp $ *) +(* $Id: odoc_cross.mli 7619 2006-09-20 11:14:37Z doligez $ *) (** Cross-referencing. *) diff --git a/ocamldoc/odoc_dag2html.ml b/ocamldoc/odoc_dag2html.ml index cbe82409..4daf0f95 100644 --- a/ocamldoc/odoc_dag2html.ml +++ b/ocamldoc/odoc_dag2html.ml @@ -9,7 +9,7 @@ (* *) (***********************************************************************) -(* $Id: odoc_dag2html.ml,v 1.4 2004/12/03 14:42:09 guesdon Exp $ *) +(* $Id: odoc_dag2html.ml 6723 2004-12-03 14:42:09Z guesdon $ *) (** The types and functions to create a html table representing a dag. Thanks to Daniel De Rauglaudre. *) diff --git a/ocamldoc/odoc_dag2html.mli b/ocamldoc/odoc_dag2html.mli index a1bbf49f..1886d830 100644 --- a/ocamldoc/odoc_dag2html.mli +++ b/ocamldoc/odoc_dag2html.mli @@ -9,7 +9,7 @@ (* *) (***********************************************************************) -(* $Id: odoc_dag2html.mli,v 1.3 2003/11/24 10:39:31 starynke Exp $ *) +(* $Id: odoc_dag2html.mli 5973 2003-11-24 10:44:07Z starynke $ *) (** The types and functions to create a html table representing a dag. Thanks to Daniel de Rauglaudre. *) diff --git a/ocamldoc/odoc_dep.ml b/ocamldoc/odoc_dep.ml index f975cbdc..2ef7a88b 100644 --- a/ocamldoc/odoc_dep.ml +++ b/ocamldoc/odoc_dep.ml @@ -9,7 +9,7 @@ (* *) (***********************************************************************) -(* $Id: odoc_dep.ml,v 1.7 2007/10/09 10:29:36 weis Exp $ *) +(* $Id: odoc_dep.ml 8418 2007-10-09 10:29:37Z weis $ *) (** Top modules dependencies. *) diff --git a/ocamldoc/odoc_dot.ml b/ocamldoc/odoc_dot.ml index d442fcd4..e6c73fad 100644 --- a/ocamldoc/odoc_dot.ml +++ b/ocamldoc/odoc_dot.ml @@ -9,7 +9,7 @@ (* *) (***********************************************************************) -(* $Id: odoc_dot.ml,v 1.7 2006/09/20 11:14:36 doligez Exp $ *) +(* $Id: odoc_dot.ml 7619 2006-09-20 11:14:37Z doligez $ *) (** Definition of a class which outputs a dot file showing top modules dependencies.*) diff --git a/ocamldoc/odoc_env.ml b/ocamldoc/odoc_env.ml index 6845ce2c..bc81855e 100644 --- a/ocamldoc/odoc_env.ml +++ b/ocamldoc/odoc_env.ml @@ -9,7 +9,7 @@ (* *) (***********************************************************************) -(* $Id: odoc_env.ml,v 1.7 2004/06/12 08:55:46 xleroy Exp $ *) +(* $Id: odoc_env.ml 6386 2004-06-12 08:55:49Z xleroy $ *) (** Environment for finding complete names from relative names. *) @@ -242,4 +242,4 @@ let subst_class_type env t = in iter t -(* eof $Id: odoc_env.ml,v 1.7 2004/06/12 08:55:46 xleroy Exp $ *) +(* eof $Id: odoc_env.ml 6386 2004-06-12 08:55:49Z xleroy $ *) diff --git a/ocamldoc/odoc_env.mli b/ocamldoc/odoc_env.mli index 4e2cbe9e..ae96a976 100644 --- a/ocamldoc/odoc_env.mli +++ b/ocamldoc/odoc_env.mli @@ -9,7 +9,7 @@ (* *) (***********************************************************************) -(* $Id: odoc_env.mli,v 1.3 2003/11/24 10:39:31 starynke Exp $ *) +(* $Id: odoc_env.mli 5973 2003-11-24 10:44:07Z starynke $ *) (** Environment for finding complete names from relative names. *) diff --git a/ocamldoc/odoc_exception.ml b/ocamldoc/odoc_exception.ml index 015915aa..e6bf02d6 100644 --- a/ocamldoc/odoc_exception.ml +++ b/ocamldoc/odoc_exception.ml @@ -9,7 +9,7 @@ (* *) (***********************************************************************) -(* $Id: odoc_exception.ml,v 1.3 2003/11/24 10:39:31 starynke Exp $ *) +(* $Id: odoc_exception.ml 5973 2003-11-24 10:44:07Z starynke $ *) (** Representation and manipulation of exceptions. *) diff --git a/ocamldoc/odoc_global.ml b/ocamldoc/odoc_global.ml index de5fdd8b..45d7906e 100644 --- a/ocamldoc/odoc_global.ml +++ b/ocamldoc/odoc_global.ml @@ -9,7 +9,7 @@ (* *) (***********************************************************************) -(* $Id: odoc_global.ml,v 1.3 2003/11/24 10:41:03 starynke Exp $ *) +(* $Id: odoc_global.ml 5973 2003-11-24 10:44:07Z starynke $ *) (** Global variables. *) diff --git a/ocamldoc/odoc_global.mli b/ocamldoc/odoc_global.mli index 1c8c2194..4889056b 100644 --- a/ocamldoc/odoc_global.mli +++ b/ocamldoc/odoc_global.mli @@ -9,7 +9,7 @@ (* *) (***********************************************************************) -(* $Id: odoc_global.mli,v 1.2 2003/11/24 10:41:03 starynke Exp $ *) +(* $Id: odoc_global.mli 5973 2003-11-24 10:44:07Z starynke $ *) (** Global variables. *) diff --git a/ocamldoc/odoc_html.ml b/ocamldoc/odoc_html.ml index 21294cb0..3467af84 100644 --- a/ocamldoc/odoc_html.ml +++ b/ocamldoc/odoc_html.ml @@ -9,7 +9,7 @@ (* *) (***********************************************************************) -(* $Id: odoc_html.ml,v 1.64.2.1 2008/11/10 13:03:55 guesdon Exp $ *) +(* $Id: odoc_html.ml 9125 2008-11-10 13:03:55Z guesdon $ *) (** Generation of html documentation.*) diff --git a/ocamldoc/odoc_info.ml b/ocamldoc/odoc_info.ml index 55f20259..3eddaff3 100644 --- a/ocamldoc/odoc_info.ml +++ b/ocamldoc/odoc_info.ml @@ -9,7 +9,7 @@ (* *) (***********************************************************************) -(* $Id: odoc_info.ml,v 1.24 2007/10/08 14:19:34 doligez Exp $ *) +(* $Id: odoc_info.ml 8416 2007-10-08 14:19:34Z doligez $ *) (** Interface for analysing documented OCaml source files and to the collected information. *) diff --git a/ocamldoc/odoc_info.mli b/ocamldoc/odoc_info.mli index 375f4754..2fca47f2 100644 --- a/ocamldoc/odoc_info.mli +++ b/ocamldoc/odoc_info.mli @@ -9,7 +9,7 @@ (* *) (***********************************************************************) -(* $Id: odoc_info.mli,v 1.45 2008/07/25 13:28:23 guesdon Exp $ *) +(* $Id: odoc_info.mli 8932 2008-07-25 13:28:23Z guesdon $ *) (** Interface to the information collected in source files. *) diff --git a/ocamldoc/odoc_inherit.ml b/ocamldoc/odoc_inherit.ml index 915b4cb0..5582ce98 100644 --- a/ocamldoc/odoc_inherit.ml +++ b/ocamldoc/odoc_inherit.ml @@ -9,5 +9,5 @@ (* *) (***********************************************************************) -(* $Id: odoc_inherit.ml,v 1.2 2003/11/24 10:41:04 starynke Exp $ *) +(* $Id: odoc_inherit.ml 5973 2003-11-24 10:44:07Z starynke $ *) diff --git a/ocamldoc/odoc_latex.ml b/ocamldoc/odoc_latex.ml index 58571c26..bf047554 100644 --- a/ocamldoc/odoc_latex.ml +++ b/ocamldoc/odoc_latex.ml @@ -9,7 +9,7 @@ (* *) (***********************************************************************) -(* $Id: odoc_latex.ml,v 1.41 2007/10/09 10:29:36 weis Exp $ *) +(* $Id: odoc_latex.ml 8418 2007-10-09 10:29:37Z weis $ *) (** Generation of LaTeX documentation. *) diff --git a/ocamldoc/odoc_latex_style.ml b/ocamldoc/odoc_latex_style.ml index 6b791c87..578751da 100644 --- a/ocamldoc/odoc_latex_style.ml +++ b/ocamldoc/odoc_latex_style.ml @@ -11,7 +11,7 @@ (** The content of the LaTeX style to generate when generating LaTeX code. *) -(* $Id: odoc_latex_style.ml,v 1.5 2004/06/11 14:25:50 guesdon Exp $ *) +(* $Id: odoc_latex_style.ml 6378 2004-06-11 14:25:50Z guesdon $ *) let content =" %% Support macros for LaTeX documentation generated by ocamldoc. diff --git a/ocamldoc/odoc_lexer.mll b/ocamldoc/odoc_lexer.mll index 034767d0..d4772994 100644 --- a/ocamldoc/odoc_lexer.mll +++ b/ocamldoc/odoc_lexer.mll @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: odoc_lexer.mll,v 1.5 2008/07/23 11:14:22 guesdon Exp $ *) +(* $Id: odoc_lexer.mll 8928 2008-07-23 11:14:22Z guesdon $ *) (** The lexer for special comments. *) diff --git a/ocamldoc/odoc_man.ml b/ocamldoc/odoc_man.ml index 2e495b18..028fd7a7 100644 --- a/ocamldoc/odoc_man.ml +++ b/ocamldoc/odoc_man.ml @@ -9,7 +9,7 @@ (* *) (***********************************************************************) -(* $Id: odoc_man.ml,v 1.28.2.1 2008/10/29 11:58:35 guesdon Exp $ *) +(* $Id: odoc_man.ml 9109 2008-10-29 11:58:35Z guesdon $ *) (** The man pages generator. *) open Odoc_info diff --git a/ocamldoc/odoc_merge.ml b/ocamldoc/odoc_merge.ml index 15838d41..bbf8de10 100644 --- a/ocamldoc/odoc_merge.ml +++ b/ocamldoc/odoc_merge.ml @@ -9,7 +9,7 @@ (* *) (***********************************************************************) -(* $Id: odoc_merge.ml,v 1.13 2007/10/09 10:29:36 weis Exp $ *) +(* $Id: odoc_merge.ml 8418 2007-10-09 10:29:37Z weis $ *) (** Merge of information from [.ml] and [.mli] for a module.*) diff --git a/ocamldoc/odoc_merge.mli b/ocamldoc/odoc_merge.mli index 904d62c7..aaf42c19 100644 --- a/ocamldoc/odoc_merge.mli +++ b/ocamldoc/odoc_merge.mli @@ -9,7 +9,7 @@ (* *) (***********************************************************************) -(* $Id: odoc_merge.mli,v 1.3 2003/11/24 10:41:05 starynke Exp $ *) +(* $Id: odoc_merge.mli 5973 2003-11-24 10:44:07Z starynke $ *) (** Merge of information from [.ml] and [.mli] for a module.*) diff --git a/ocamldoc/odoc_messages.ml b/ocamldoc/odoc_messages.ml index cadca59a..c634bdb2 100644 --- a/ocamldoc/odoc_messages.ml +++ b/ocamldoc/odoc_messages.ml @@ -9,7 +9,7 @@ (* *) (***********************************************************************) -(* $Id: odoc_messages.ml,v 1.32.2.1 2009/04/09 13:56:38 guesdon Exp $ *) +(* $Id: odoc_messages.ml 9229 2009-04-09 13:56:38Z guesdon $ *) (** The messages of the application. *) diff --git a/ocamldoc/odoc_misc.ml b/ocamldoc/odoc_misc.ml index c6634151..0c6510a7 100644 --- a/ocamldoc/odoc_misc.ml +++ b/ocamldoc/odoc_misc.ml @@ -9,7 +9,7 @@ (* *) (***********************************************************************) -(* $Id: odoc_misc.ml,v 1.21 2006/07/06 07:19:06 pouillar Exp $ *) +(* $Id: odoc_misc.ml 7470 2006-07-06 07:19:06Z pouillar $ *) let no_blanks s = let len = String.length s in diff --git a/ocamldoc/odoc_misc.mli b/ocamldoc/odoc_misc.mli index 83f94ef5..06b66fc3 100644 --- a/ocamldoc/odoc_misc.mli +++ b/ocamldoc/odoc_misc.mli @@ -9,7 +9,7 @@ (* *) (***********************************************************************) -(* $Id: odoc_misc.mli,v 1.13 2006/01/04 16:55:50 doligez Exp $ *) +(* $Id: odoc_misc.mli 7307 2006-01-04 16:55:50Z doligez $ *) (** Miscelaneous functions *) diff --git a/ocamldoc/odoc_module.ml b/ocamldoc/odoc_module.ml index a9696516..caeffeb4 100644 --- a/ocamldoc/odoc_module.ml +++ b/ocamldoc/odoc_module.ml @@ -9,7 +9,7 @@ (* *) (***********************************************************************) -(* $Id: odoc_module.ml,v 1.12 2006/09/20 11:14:37 doligez Exp $ *) +(* $Id: odoc_module.ml 7619 2006-09-20 11:14:37Z doligez $ *) (** Representation and manipulation of modules and module types. *) diff --git a/ocamldoc/odoc_name.ml b/ocamldoc/odoc_name.ml index a8459747..049dea58 100644 --- a/ocamldoc/odoc_name.ml +++ b/ocamldoc/odoc_name.ml @@ -9,7 +9,7 @@ (* *) (***********************************************************************) -(* $Id: odoc_name.ml,v 1.10.14.1 2009/03/12 18:21:08 doligez Exp $ *) +(* $Id: odoc_name.ml 9185 2009-03-12 18:21:08Z doligez $ *) (** Representation of element names. *) diff --git a/ocamldoc/odoc_name.mli b/ocamldoc/odoc_name.mli index 539dfbaa..58eeff45 100644 --- a/ocamldoc/odoc_name.mli +++ b/ocamldoc/odoc_name.mli @@ -9,7 +9,7 @@ (* *) (***********************************************************************) -(* $Id: odoc_name.mli,v 1.4 2004/03/26 09:09:50 guesdon Exp $ *) +(* $Id: odoc_name.mli 6173 2004-03-26 09:09:50Z guesdon $ *) (** Representation of element names. *) diff --git a/ocamldoc/odoc_ocamlhtml.mll b/ocamldoc/odoc_ocamlhtml.mll index e7c5c77c..e2279508 100644 --- a/ocamldoc/odoc_ocamlhtml.mll +++ b/ocamldoc/odoc_ocamlhtml.mll @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: odoc_ocamlhtml.mll,v 1.10.4.1 2008/11/10 13:03:55 guesdon Exp $ *) +(* $Id: odoc_ocamlhtml.mll 9125 2008-11-10 13:03:55Z guesdon $ *) (** Generation of html code to display OCaml code. *) open Lexing diff --git a/ocamldoc/odoc_parameter.ml b/ocamldoc/odoc_parameter.ml index 51c442a8..2d2af1f7 100644 --- a/ocamldoc/odoc_parameter.ml +++ b/ocamldoc/odoc_parameter.ml @@ -9,7 +9,7 @@ (* *) (***********************************************************************) -(* $Id: odoc_parameter.ml,v 1.8 2004/04/02 15:10:57 guesdon Exp $ *) +(* $Id: odoc_parameter.ml 6185 2004-04-02 15:10:58Z guesdon $ *) (** Representation and manipulation of method / function / class parameters. *) diff --git a/ocamldoc/odoc_parser.mly b/ocamldoc/odoc_parser.mly index 550ded05..d885e2a5 100644 --- a/ocamldoc/odoc_parser.mly +++ b/ocamldoc/odoc_parser.mly @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: odoc_parser.mly,v 1.3 2003/11/24 10:43:11 starynke Exp $ *) +(* $Id: odoc_parser.mly 5973 2003-11-24 10:44:07Z starynke $ *) open Odoc_types open Odoc_comments_global diff --git a/ocamldoc/odoc_print.ml b/ocamldoc/odoc_print.ml index 5be5cfeb..116d22b9 100644 --- a/ocamldoc/odoc_print.ml +++ b/ocamldoc/odoc_print.ml @@ -9,7 +9,7 @@ (* *) (***********************************************************************) -(* $Id: odoc_print.ml,v 1.3 2004/05/18 13:28:00 garrigue Exp $ *) +(* $Id: odoc_print.ml 6307 2004-05-18 13:28:00Z garrigue $ *) open Format diff --git a/ocamldoc/odoc_print.mli b/ocamldoc/odoc_print.mli index e825b6e4..69e7526f 100644 --- a/ocamldoc/odoc_print.mli +++ b/ocamldoc/odoc_print.mli @@ -9,7 +9,7 @@ (* *) (***********************************************************************) -(* $Id: odoc_print.mli,v 1.2 2004/03/26 09:09:50 guesdon Exp $ *) +(* $Id: odoc_print.mli 6173 2004-03-26 09:09:50Z guesdon $ *) (** Printing functions. *) diff --git a/ocamldoc/odoc_scan.ml b/ocamldoc/odoc_scan.ml index 1b669e15..d7d694f8 100644 --- a/ocamldoc/odoc_scan.ml +++ b/ocamldoc/odoc_scan.ml @@ -9,7 +9,7 @@ (* *) (***********************************************************************) -(* $Id: odoc_scan.ml,v 1.3 2003/11/24 10:43:11 starynke Exp $ *) +(* $Id: odoc_scan.ml 5973 2003-11-24 10:44:07Z starynke $ *) (** Scanning of modules and elements. diff --git a/ocamldoc/odoc_search.ml b/ocamldoc/odoc_search.ml index e863fcb2..c5d7eff1 100644 --- a/ocamldoc/odoc_search.ml +++ b/ocamldoc/odoc_search.ml @@ -9,7 +9,7 @@ (* *) (***********************************************************************) -(* $Id: odoc_search.ml,v 1.7 2006/01/04 16:55:50 doligez Exp $ *) +(* $Id: odoc_search.ml 7307 2006-01-04 16:55:50Z doligez $ *) (** Research of elements through modules. *) @@ -632,4 +632,4 @@ let find_section mods regexp = Res_section (_,t) -> t | _ -> assert false -(* eof $Id: odoc_search.ml,v 1.7 2006/01/04 16:55:50 doligez Exp $ *) +(* eof $Id: odoc_search.ml 7307 2006-01-04 16:55:50Z doligez $ *) diff --git a/ocamldoc/odoc_search.mli b/ocamldoc/odoc_search.mli index 4254af07..9b4f2f5e 100644 --- a/ocamldoc/odoc_search.mli +++ b/ocamldoc/odoc_search.mli @@ -9,7 +9,7 @@ (* *) (***********************************************************************) -(* $Id: odoc_search.mli,v 1.4 2003/11/24 10:43:12 starynke Exp $ *) +(* $Id: odoc_search.mli 5973 2003-11-24 10:44:07Z starynke $ *) (** Research of elements through modules. *) diff --git a/ocamldoc/odoc_see_lexer.mll b/ocamldoc/odoc_see_lexer.mll index fe16fee2..799678a4 100644 --- a/ocamldoc/odoc_see_lexer.mll +++ b/ocamldoc/odoc_see_lexer.mll @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: odoc_see_lexer.mll,v 1.3 2003/11/24 10:43:12 starynke Exp $ *) +(* $Id: odoc_see_lexer.mll 5973 2003-11-24 10:44:07Z starynke $ *) let print_DEBUG2 s = print_string s ; print_newline () diff --git a/ocamldoc/odoc_sig.ml b/ocamldoc/odoc_sig.ml index 329e23b4..a9b3f34f 100644 --- a/ocamldoc/odoc_sig.ml +++ b/ocamldoc/odoc_sig.ml @@ -9,7 +9,7 @@ (* *) (***********************************************************************) -(* $Id: odoc_sig.ml,v 1.41 2008/07/23 08:55:36 guesdon Exp $ *) +(* $Id: odoc_sig.ml 8927 2008-07-23 08:55:36Z guesdon $ *) (** Analysis of interface files. *) diff --git a/ocamldoc/odoc_sig.mli b/ocamldoc/odoc_sig.mli index 9802e928..d1518a81 100644 --- a/ocamldoc/odoc_sig.mli +++ b/ocamldoc/odoc_sig.mli @@ -9,7 +9,7 @@ (* *) (***********************************************************************) -(* $Id: odoc_sig.mli,v 1.6 2004/11/03 09:31:19 guesdon Exp $ *) +(* $Id: odoc_sig.mli 6661 2004-11-03 09:31:19Z guesdon $ *) (** The module for analysing a signature and source code and creating modules, classes, ..., elements.*) diff --git a/ocamldoc/odoc_str.ml b/ocamldoc/odoc_str.ml index 2aad6fb3..6ca8cccb 100644 --- a/ocamldoc/odoc_str.ml +++ b/ocamldoc/odoc_str.ml @@ -9,7 +9,7 @@ (* *) (***********************************************************************) -(* $Id: odoc_str.ml,v 1.13 2008/07/23 08:55:36 guesdon Exp $ *) +(* $Id: odoc_str.ml 8927 2008-07-23 08:55:36Z guesdon $ *) (** The functions to get a string from different kinds of elements (types, modules, ...). *) @@ -274,4 +274,4 @@ let string_of_method m = None -> "" | Some i -> Odoc_misc.string_of_info i) -(* eof $Id: odoc_str.ml,v 1.13 2008/07/23 08:55:36 guesdon Exp $ *) +(* eof $Id: odoc_str.ml 8927 2008-07-23 08:55:36Z guesdon $ *) diff --git a/ocamldoc/odoc_str.mli b/ocamldoc/odoc_str.mli index 7f67c31a..b70c9817 100644 --- a/ocamldoc/odoc_str.mli +++ b/ocamldoc/odoc_str.mli @@ -9,7 +9,7 @@ (* *) (***********************************************************************) -(* $Id: odoc_str.mli,v 1.6 2004/08/20 17:04:35 doligez Exp $ *) +(* $Id: odoc_str.mli 6612 2004-08-20 17:04:35Z doligez $ *) (** The functions to get a string from different kinds of elements (types, modules, ...). *) diff --git a/ocamldoc/odoc_test.ml b/ocamldoc/odoc_test.ml index 8c2d020e..49d98e2f 100644 --- a/ocamldoc/odoc_test.ml +++ b/ocamldoc/odoc_test.ml @@ -9,7 +9,7 @@ (* *) (***********************************************************************) -(* $Id: odoc_test.ml,v 1.1 2004/02/20 16:28:27 guesdon Exp $ *) +(* $Id: odoc_test.ml 6127 2004-02-20 16:28:27Z guesdon $ *) (** Custom generator to perform test on ocamldoc. *) diff --git a/ocamldoc/odoc_texi.ml b/ocamldoc/odoc_texi.ml index 1c7d5fd2..414a86ab 100644 --- a/ocamldoc/odoc_texi.ml +++ b/ocamldoc/odoc_texi.ml @@ -8,7 +8,7 @@ (* under the terms of the Q Public License version 1.0. *) (***********************************************************************) -(* $Id: odoc_texi.ml,v 1.24 2008/07/23 08:55:36 guesdon Exp $ *) +(* $Id: odoc_texi.ml 8927 2008-07-23 08:55:36Z guesdon $ *) (** Generation of Texinfo documentation. *) diff --git a/ocamldoc/odoc_text.ml b/ocamldoc/odoc_text.ml index 57dd461a..234c2eec 100644 --- a/ocamldoc/odoc_text.ml +++ b/ocamldoc/odoc_text.ml @@ -9,7 +9,7 @@ (* *) (***********************************************************************) -(* $Id: odoc_text.ml,v 1.6 2006/01/04 16:55:50 doligez Exp $ *) +(* $Id: odoc_text.ml 7307 2006-01-04 16:55:50Z doligez $ *) exception Text_syntax of int * int * string (* line, char, string *) diff --git a/ocamldoc/odoc_text.mli b/ocamldoc/odoc_text.mli index 6dca491a..cea7d50e 100644 --- a/ocamldoc/odoc_text.mli +++ b/ocamldoc/odoc_text.mli @@ -9,7 +9,7 @@ (* *) (***********************************************************************) -(* $Id: odoc_text.mli,v 1.3 2003/11/24 21:20:51 guesdon Exp $ *) +(* $Id: odoc_text.mli 5974 2003-11-24 21:20:51Z guesdon $ *) (** A module with a function to parse strings to obtain a [Odoc_types.text] value. *) diff --git a/ocamldoc/odoc_text_lexer.mll b/ocamldoc/odoc_text_lexer.mll index d9015f87..34a8dfe4 100644 --- a/ocamldoc/odoc_text_lexer.mll +++ b/ocamldoc/odoc_text_lexer.mll @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: odoc_text_lexer.mll,v 1.9 2006/01/04 16:55:50 doligez Exp $ *) +(* $Id: odoc_text_lexer.mll 7307 2006-01-04 16:55:50Z doligez $ *) (** The lexer for string to build text structures. *) diff --git a/ocamldoc/odoc_text_parser.mly b/ocamldoc/odoc_text_parser.mly index e1e30398..4972f5b3 100644 --- a/ocamldoc/odoc_text_parser.mly +++ b/ocamldoc/odoc_text_parser.mly @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: odoc_text_parser.mly,v 1.5 2006/01/04 16:55:50 doligez Exp $ *) +(* $Id: odoc_text_parser.mly 7307 2006-01-04 16:55:50Z doligez $ *) open Odoc_types diff --git a/ocamldoc/odoc_to_text.ml b/ocamldoc/odoc_to_text.ml index 0c636e1c..b02b0edc 100644 --- a/ocamldoc/odoc_to_text.ml +++ b/ocamldoc/odoc_to_text.ml @@ -9,7 +9,7 @@ (* *) (***********************************************************************) -(* $Id: odoc_to_text.ml,v 1.17 2008/07/23 08:55:36 guesdon Exp $ *) +(* $Id: odoc_to_text.ml 8927 2008-07-23 08:55:36Z guesdon $ *) (** Text generation. diff --git a/ocamldoc/odoc_type.ml b/ocamldoc/odoc_type.ml index 3d4a663e..9d92e51b 100644 --- a/ocamldoc/odoc_type.ml +++ b/ocamldoc/odoc_type.ml @@ -9,7 +9,7 @@ (* *) (***********************************************************************) -(* $Id: odoc_type.ml,v 1.7 2008/05/21 05:56:39 guesdon Exp $ *) +(* $Id: odoc_type.ml 8883 2008-05-21 05:56:39Z guesdon $ *) (** Representation and manipulation of a type, but not class nor module type.*) diff --git a/ocamldoc/odoc_types.ml b/ocamldoc/odoc_types.ml index fb48721b..c469015e 100644 --- a/ocamldoc/odoc_types.ml +++ b/ocamldoc/odoc_types.ml @@ -9,7 +9,7 @@ (* *) (***********************************************************************) -(* $Id: odoc_types.ml,v 1.9 2006/01/04 16:55:50 doligez Exp $ *) +(* $Id: odoc_types.ml 7307 2006-01-04 16:55:50Z doligez $ *) type ref_kind = RK_module diff --git a/ocamldoc/odoc_types.mli b/ocamldoc/odoc_types.mli index cad2bcc3..3b9b2589 100644 --- a/ocamldoc/odoc_types.mli +++ b/ocamldoc/odoc_types.mli @@ -9,7 +9,7 @@ (* *) (***********************************************************************) -(* $Id: odoc_types.mli,v 1.6 2006/01/04 16:55:50 doligez Exp $ *) +(* $Id: odoc_types.mli 7307 2006-01-04 16:55:50Z doligez $ *) (** Types for the information collected in comments. *) diff --git a/ocamldoc/odoc_value.ml b/ocamldoc/odoc_value.ml index 05714faa..c88c0d37 100644 --- a/ocamldoc/odoc_value.ml +++ b/ocamldoc/odoc_value.ml @@ -9,7 +9,7 @@ (* *) (***********************************************************************) -(* $Id: odoc_value.ml,v 1.7 2008/07/23 08:55:36 guesdon Exp $ *) +(* $Id: odoc_value.ml 8927 2008-07-23 08:55:36Z guesdon $ *) (** Representation and manipulation of values, class attributes and class methods. *) diff --git a/ocamldoc/remove_DEBUG b/ocamldoc/remove_DEBUG index da94ce04..be5a4987 100755 --- a/ocamldoc/remove_DEBUG +++ b/ocamldoc/remove_DEBUG @@ -11,11 +11,12 @@ #(* *) #(***********************************************************************) -# $Id: remove_DEBUG,v 1.3 2004/04/15 16:18:52 doligez Exp $ +# $Id: remove_DEBUG 9312 2009-07-09 17:09:48Z doligez $ # usage: remove_DEBUG # remove from every line that contains the string "DEBUG", # respecting the cpp # line annotation conventions echo "# 1 \"$1\"" -LC_ALL=C sed -e '/DEBUG/s/.*//' "$1" +LC_ALL=C sed -e '/DEBUG/c\ +(* DEBUG statement removed *)' "$1" diff --git a/ocamldoc/runocamldoc b/ocamldoc/runocamldoc index 606baa70..5638297b 100644 --- a/ocamldoc/runocamldoc +++ b/ocamldoc/runocamldoc @@ -1,5 +1,5 @@ #!/bin/sh -# $Id: runocamldoc,v 1.6 2002/07/23 14:11:53 doligez Exp $ +# $Id: runocamldoc 5029 2002-07-23 14:12:03Z doligez $ case "$1" in true) shift diff --git a/otherlibs/Makefile b/otherlibs/Makefile index 2c4afdcc..e769c161 100644 --- a/otherlibs/Makefile +++ b/otherlibs/Makefile @@ -11,7 +11,7 @@ # # ######################################################################### -# $Id: Makefile,v 1.4 2007/11/08 09:17:47 frisch Exp $ +# $Id: Makefile 8489 2007-11-08 09:17:48Z frisch $ # Common Makefile for otherlibs on the Unix ports diff --git a/otherlibs/Makefile.nt b/otherlibs/Makefile.nt index 7ea9d4f3..97c50894 100644 --- a/otherlibs/Makefile.nt +++ b/otherlibs/Makefile.nt @@ -11,7 +11,7 @@ # # ######################################################################### -# $Id: Makefile.nt,v 1.3 2007/11/08 09:17:48 frisch Exp $ +# $Id: Makefile.nt 8489 2007-11-08 09:17:48Z frisch $ # Common Makefile for otherlibs on the Win32/MinGW ports diff --git a/otherlibs/Makefile.shared b/otherlibs/Makefile.shared index 527cb6b7..b235cc3d 100644 --- a/otherlibs/Makefile.shared +++ b/otherlibs/Makefile.shared @@ -11,7 +11,7 @@ # # ######################################################################### -# $Id: Makefile.shared,v 1.3 2008/07/15 15:31:32 frisch Exp $ +# $Id: Makefile.shared 8916 2008-07-15 15:31:32Z frisch $ # Common Makefile for otherlibs diff --git a/otherlibs/bigarray/.cvsignore b/otherlibs/bigarray/.cvsignore index c54b3a35..52db225e 100644 --- a/otherlibs/bigarray/.cvsignore +++ b/otherlibs/bigarray/.cvsignore @@ -1,3 +1,5 @@ *.o *.x so_locations +*.so +*.a diff --git a/otherlibs/bigarray/Makefile b/otherlibs/bigarray/Makefile index 9a323c94..81f5aef2 100644 --- a/otherlibs/bigarray/Makefile +++ b/otherlibs/bigarray/Makefile @@ -11,7 +11,7 @@ # # ######################################################################### -# $Id: Makefile,v 1.25 2008/01/04 09:52:27 xleroy Exp $ +# $Id: Makefile 8748 2008-01-04 09:52:27Z xleroy $ LIBNAME=bigarray EXTRACFLAGS=-I../unix -DIN_OCAML_BIGARRAY -DCAML_NAME_SPACE diff --git a/otherlibs/bigarray/Makefile.nt b/otherlibs/bigarray/Makefile.nt index 7a43f5f6..94ef9ddd 100644 --- a/otherlibs/bigarray/Makefile.nt +++ b/otherlibs/bigarray/Makefile.nt @@ -11,7 +11,7 @@ # # ######################################################################### -# $Id: Makefile.nt,v 1.13 2008/01/04 15:01:48 xleroy Exp $ +# $Id: Makefile.nt 8754 2008-01-04 15:01:48Z xleroy $ LIBNAME=bigarray EXTRACFLAGS=-I../win32unix -DIN_OCAML_BIGARRAY -DCAML_NAME_SPACE diff --git a/otherlibs/bigarray/bigarray.h b/otherlibs/bigarray/bigarray.h index 7fc10e63..2078a4f1 100644 --- a/otherlibs/bigarray/bigarray.h +++ b/otherlibs/bigarray/bigarray.h @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: bigarray.h,v 1.9.14.1 2008/11/09 09:03:50 xleroy Exp $ */ +/* $Id: bigarray.h 9123 2008-11-09 09:03:51Z xleroy $ */ #ifndef CAML_BIGARRAY_H #define CAML_BIGARRAY_H diff --git a/otherlibs/bigarray/bigarray.ml b/otherlibs/bigarray/bigarray.ml index 4c2960f1..201e69da 100644 --- a/otherlibs/bigarray/bigarray.ml +++ b/otherlibs/bigarray/bigarray.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: bigarray.ml,v 1.20 2008/07/14 09:09:53 xleroy Exp $ *) +(* $Id: bigarray.ml 8911 2008-07-14 09:09:53Z xleroy $ *) (* Module [Bigarray]: large, multi-dimensional, numerical arrays *) diff --git a/otherlibs/bigarray/bigarray.mli b/otherlibs/bigarray/bigarray.mli index ed77a6a4..0c6cb05a 100644 --- a/otherlibs/bigarray/bigarray.mli +++ b/otherlibs/bigarray/bigarray.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: bigarray.mli,v 1.27.2.1 2008/10/08 13:07:13 doligez Exp $ *) +(* $Id: bigarray.mli 9079 2008-10-08 13:09:39Z doligez $ *) (** Large, multi-dimensional, numerical arrays. diff --git a/otherlibs/bigarray/bigarray_stubs.c b/otherlibs/bigarray/bigarray_stubs.c index d1d19d9b..9e4774ee 100644 --- a/otherlibs/bigarray/bigarray_stubs.c +++ b/otherlibs/bigarray/bigarray_stubs.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: bigarray_stubs.c,v 1.23.4.1 2008/11/09 09:03:51 xleroy Exp $ */ +/* $Id: bigarray_stubs.c 9123 2008-11-09 09:03:51Z xleroy $ */ #include #include diff --git a/otherlibs/bigarray/mmap_unix.c b/otherlibs/bigarray/mmap_unix.c index 06631051..cc8b4333 100644 --- a/otherlibs/bigarray/mmap_unix.c +++ b/otherlibs/bigarray/mmap_unix.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: mmap_unix.c,v 1.11 2008/01/04 15:01:48 xleroy Exp $ */ +/* $Id: mmap_unix.c 8754 2008-01-04 15:01:48Z xleroy $ */ #include #include diff --git a/otherlibs/bigarray/mmap_win32.c b/otherlibs/bigarray/mmap_win32.c index 6256fb60..b1a024cd 100644 --- a/otherlibs/bigarray/mmap_win32.c +++ b/otherlibs/bigarray/mmap_win32.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: mmap_win32.c,v 1.12 2008/01/15 14:55:15 frisch Exp $ */ +/* $Id: mmap_win32.c 8773 2008-01-15 14:55:15Z frisch $ */ #include #include diff --git a/otherlibs/dbm/.cvsignore b/otherlibs/dbm/.cvsignore index 074dd28a..29fea472 100644 --- a/otherlibs/dbm/.cvsignore +++ b/otherlibs/dbm/.cvsignore @@ -1 +1,3 @@ so_locations +*.so +*.a diff --git a/otherlibs/dbm/Makefile b/otherlibs/dbm/Makefile index 71fe0ba1..dbfb1b1b 100644 --- a/otherlibs/dbm/Makefile +++ b/otherlibs/dbm/Makefile @@ -11,7 +11,7 @@ # # ######################################################################### -# $Id: Makefile,v 1.26.4.1 2009/03/31 11:33:25 xleroy Exp $ +# $Id: Makefile 9214 2009-03-31 11:33:25Z xleroy $ # Makefile for the ndbm library diff --git a/otherlibs/dbm/cldbm.c b/otherlibs/dbm/cldbm.c index b899b158..9fa5be2b 100644 --- a/otherlibs/dbm/cldbm.c +++ b/otherlibs/dbm/cldbm.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: cldbm.c,v 1.8 2003/07/08 13:50:31 xleroy Exp $ */ +/* $Id: cldbm.c 5670 2003-07-08 13:50:31Z xleroy $ */ #include #include diff --git a/otherlibs/dbm/dbm.ml b/otherlibs/dbm/dbm.ml index 771e286f..7ecc0c4f 100644 --- a/otherlibs/dbm/dbm.ml +++ b/otherlibs/dbm/dbm.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: dbm.ml,v 1.10 2001/12/07 13:39:51 xleroy Exp $ *) +(* $Id: dbm.ml 4144 2001-12-07 13:41:02Z xleroy $ *) type t diff --git a/otherlibs/dbm/dbm.mli b/otherlibs/dbm/dbm.mli index e4ae6029..059c8588 100644 --- a/otherlibs/dbm/dbm.mli +++ b/otherlibs/dbm/dbm.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: dbm.mli,v 1.15 2001/12/07 13:39:51 xleroy Exp $ *) +(* $Id: dbm.mli 4144 2001-12-07 13:41:02Z xleroy $ *) (** Interface to the NDBM database. *) diff --git a/otherlibs/dynlink/.cvsignore b/otherlibs/dynlink/.cvsignore index 5ea9775e..29b3102d 100644 --- a/otherlibs/dynlink/.cvsignore +++ b/otherlibs/dynlink/.cvsignore @@ -1 +1,2 @@ extract_crc +*.a diff --git a/otherlibs/dynlink/Makefile b/otherlibs/dynlink/Makefile index bcfe3319..c7c06624 100644 --- a/otherlibs/dynlink/Makefile +++ b/otherlibs/dynlink/Makefile @@ -11,7 +11,7 @@ # # ######################################################################### -# $Id: Makefile,v 1.34 2008/04/16 06:50:31 frisch Exp $ +# $Id: Makefile 8868 2008-04-16 06:50:31Z frisch $ # Makefile for the dynamic link library diff --git a/otherlibs/dynlink/Makefile.nt b/otherlibs/dynlink/Makefile.nt index eca546e6..8dc4aee6 100644 --- a/otherlibs/dynlink/Makefile.nt +++ b/otherlibs/dynlink/Makefile.nt @@ -11,7 +11,7 @@ # # ######################################################################### -# $Id: Makefile.nt,v 1.17 2007/11/06 15:16:56 frisch Exp $ +# $Id: Makefile.nt 8477 2007-11-06 15:16:56Z frisch $ # Makefile for the dynamic link library diff --git a/otherlibs/dynlink/dynlink.ml b/otherlibs/dynlink/dynlink.ml index cbea1175..e3406157 100644 --- a/otherlibs/dynlink/dynlink.ml +++ b/otherlibs/dynlink/dynlink.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: dynlink.ml,v 1.36 2008/04/22 12:24:10 frisch Exp $ *) +(* $Id: dynlink.ml 8873 2008-04-22 12:24:10Z frisch $ *) (* Dynamic loading of .cmo files *) diff --git a/otherlibs/dynlink/dynlink.mli b/otherlibs/dynlink/dynlink.mli index 25d6414a..c0285939 100644 --- a/otherlibs/dynlink/dynlink.mli +++ b/otherlibs/dynlink/dynlink.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: dynlink.mli,v 1.23 2008/04/22 12:24:10 frisch Exp $ *) +(* $Id: dynlink.mli 8873 2008-04-22 12:24:10Z frisch $ *) (** Dynamic loading of object files. *) diff --git a/otherlibs/dynlink/extract_crc.ml b/otherlibs/dynlink/extract_crc.ml index 3a548b2c..3884239e 100644 --- a/otherlibs/dynlink/extract_crc.ml +++ b/otherlibs/dynlink/extract_crc.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: extract_crc.ml,v 1.10 2004/04/09 13:26:41 xleroy Exp $ *) +(* $Id: extract_crc.ml 6195 2004-04-09 13:26:41Z xleroy $ *) (* Print the digests of unit interfaces *) diff --git a/otherlibs/dynlink/natdynlink.ml b/otherlibs/dynlink/natdynlink.ml index 9015c739..4291bcc0 100644 --- a/otherlibs/dynlink/natdynlink.ml +++ b/otherlibs/dynlink/natdynlink.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: natdynlink.ml,v 1.6 2008/08/28 22:17:51 frisch Exp $ *) +(* $Id: natdynlink.ml 8993 2008-08-28 22:17:51Z frisch $ *) (* Dynamic loading of .cmx files *) diff --git a/otherlibs/graph/.cvsignore b/otherlibs/graph/.cvsignore index 074dd28a..29fea472 100644 --- a/otherlibs/graph/.cvsignore +++ b/otherlibs/graph/.cvsignore @@ -1 +1,3 @@ so_locations +*.so +*.a diff --git a/otherlibs/graph/Makefile b/otherlibs/graph/Makefile index 9a6c7ee1..fac25018 100644 --- a/otherlibs/graph/Makefile +++ b/otherlibs/graph/Makefile @@ -11,7 +11,7 @@ # # ######################################################################### -# $Id: Makefile,v 1.42 2007/11/08 09:23:06 frisch Exp $ +# $Id: Makefile 8490 2007-11-08 09:23:06Z frisch $ # Makefile for the portable graphics library diff --git a/otherlibs/graph/color.c b/otherlibs/graph/color.c index b24b44bb..fa00f3e3 100644 --- a/otherlibs/graph/color.c +++ b/otherlibs/graph/color.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: color.c,v 1.18 2004/05/17 17:10:00 doligez Exp $ */ +/* $Id: color.c 6299 2004-05-17 17:10:00Z doligez $ */ #include "libgraph.h" #include diff --git a/otherlibs/graph/draw.c b/otherlibs/graph/draw.c index 6c52a279..c5c5578b 100644 --- a/otherlibs/graph/draw.c +++ b/otherlibs/graph/draw.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: draw.c,v 1.19 2004/05/30 14:11:41 xleroy Exp $ */ +/* $Id: draw.c 6351 2004-05-30 14:11:41Z xleroy $ */ #include "libgraph.h" #include diff --git a/otherlibs/graph/dump_img.c b/otherlibs/graph/dump_img.c index 1407cae6..484901c8 100644 --- a/otherlibs/graph/dump_img.c +++ b/otherlibs/graph/dump_img.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: dump_img.c,v 1.11 2004/03/24 15:02:04 starynke Exp $ */ +/* $Id: dump_img.c 6171 2004-03-24 15:02:06Z starynke $ */ #include "libgraph.h" #include "image.h" diff --git a/otherlibs/graph/events.c b/otherlibs/graph/events.c index 7c9319af..6e8a9ce4 100644 --- a/otherlibs/graph/events.c +++ b/otherlibs/graph/events.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: events.c,v 1.18 2005/08/13 20:59:37 doligez Exp $ */ +/* $Id: events.c 7019 2005-08-13 20:59:37Z doligez $ */ #include #include "libgraph.h" diff --git a/otherlibs/graph/fill.c b/otherlibs/graph/fill.c index a33eccde..67777057 100644 --- a/otherlibs/graph/fill.c +++ b/otherlibs/graph/fill.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: fill.c,v 1.14 2004/05/30 14:11:41 xleroy Exp $ */ +/* $Id: fill.c 6351 2004-05-30 14:11:41Z xleroy $ */ #include "libgraph.h" #include diff --git a/otherlibs/graph/graphics.ml b/otherlibs/graph/graphics.ml index 2a64b3d0..050638ad 100644 --- a/otherlibs/graph/graphics.ml +++ b/otherlibs/graph/graphics.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: graphics.ml,v 1.26 2005/08/13 20:59:37 doligez Exp $ *) +(* $Id: graphics.ml 7019 2005-08-13 20:59:37Z doligez $ *) exception Graphic_failure of string diff --git a/otherlibs/graph/graphics.mli b/otherlibs/graph/graphics.mli index f61b7b57..e25e742f 100644 --- a/otherlibs/graph/graphics.mli +++ b/otherlibs/graph/graphics.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: graphics.mli,v 1.37 2005/08/13 20:59:37 doligez Exp $ *) +(* $Id: graphics.mli 7019 2005-08-13 20:59:37Z doligez $ *) (** Machine-independent graphics primitives. *) diff --git a/otherlibs/graph/graphicsX11.ml b/otherlibs/graph/graphicsX11.ml index 07528af3..8ef04cbf 100644 --- a/otherlibs/graph/graphicsX11.ml +++ b/otherlibs/graph/graphicsX11.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: graphicsX11.ml,v 1.3 2004/03/24 15:02:06 starynke Exp $ *) +(* $Id: graphicsX11.ml 6171 2004-03-24 15:02:06Z starynke $ *) (* Module [GraphicsX11]: additional graphics primitives for the X Windows system *) diff --git a/otherlibs/graph/graphicsX11.mli b/otherlibs/graph/graphicsX11.mli index 12d0cbfe..8f55d11a 100644 --- a/otherlibs/graph/graphicsX11.mli +++ b/otherlibs/graph/graphicsX11.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: graphicsX11.mli,v 1.4 2001/12/07 13:39:54 xleroy Exp $ *) +(* $Id: graphicsX11.mli 4144 2001-12-07 13:41:02Z xleroy $ *) (** Additional graphics primitives for the X Windows system. *) diff --git a/otherlibs/graph/image.c b/otherlibs/graph/image.c index 302b4136..7bace1ee 100644 --- a/otherlibs/graph/image.c +++ b/otherlibs/graph/image.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: image.c,v 1.13 2004/03/24 15:02:05 starynke Exp $ */ +/* $Id: image.c 6171 2004-03-24 15:02:06Z starynke $ */ #include "libgraph.h" #include "image.h" @@ -104,4 +104,4 @@ value caml_gr_draw_image(value im, value vx, value vy) return Val_unit; } -/* eof $Id: image.c,v 1.13 2004/03/24 15:02:05 starynke Exp $ */ +/* eof $Id: image.c 6171 2004-03-24 15:02:06Z starynke $ */ diff --git a/otherlibs/graph/image.h b/otherlibs/graph/image.h index 72f41efd..a373a2b6 100644 --- a/otherlibs/graph/image.h +++ b/otherlibs/graph/image.h @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: image.h,v 1.8 2004/03/24 15:02:06 starynke Exp $ */ +/* $Id: image.h 6171 2004-03-24 15:02:06Z starynke $ */ struct grimage { int width, height; /* Dimensions of the image */ diff --git a/otherlibs/graph/libgraph.h b/otherlibs/graph/libgraph.h index 86b0eca1..ec13f1dc 100644 --- a/otherlibs/graph/libgraph.h +++ b/otherlibs/graph/libgraph.h @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: libgraph.h,v 1.23 2004/05/30 10:25:08 xleroy Exp $ */ +/* $Id: libgraph.h 6350 2004-05-30 10:25:08Z xleroy $ */ #include #include diff --git a/otherlibs/graph/make_img.c b/otherlibs/graph/make_img.c index a68773a5..7a7f531f 100644 --- a/otherlibs/graph/make_img.c +++ b/otherlibs/graph/make_img.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: make_img.c,v 1.13 2004/03/24 15:02:05 starynke Exp $ */ +/* $Id: make_img.c 6171 2004-03-24 15:02:06Z starynke $ */ #include "libgraph.h" #include "image.h" diff --git a/otherlibs/graph/open.c b/otherlibs/graph/open.c index 11542a2e..5039aa59 100644 --- a/otherlibs/graph/open.c +++ b/otherlibs/graph/open.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: open.c,v 1.34 2005/08/13 20:59:37 doligez Exp $ */ +/* $Id: open.c 7019 2005-08-13 20:59:37Z doligez $ */ #include #include diff --git a/otherlibs/graph/point_col.c b/otherlibs/graph/point_col.c index a0f4a96b..0decdf7b 100644 --- a/otherlibs/graph/point_col.c +++ b/otherlibs/graph/point_col.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: point_col.c,v 1.8 2004/03/24 15:02:05 starynke Exp $ */ +/* $Id: point_col.c 6171 2004-03-24 15:02:06Z starynke $ */ #include "libgraph.h" diff --git a/otherlibs/graph/sound.c b/otherlibs/graph/sound.c index f032d953..1d9dc67a 100644 --- a/otherlibs/graph/sound.c +++ b/otherlibs/graph/sound.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: sound.c,v 1.9 2004/03/24 15:02:05 starynke Exp $ */ +/* $Id: sound.c 6171 2004-03-24 15:02:06Z starynke $ */ #include "libgraph.h" diff --git a/otherlibs/graph/subwindow.c b/otherlibs/graph/subwindow.c index 7ecaa85a..a7c2bae9 100644 --- a/otherlibs/graph/subwindow.c +++ b/otherlibs/graph/subwindow.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: subwindow.c,v 1.6 2004/03/24 15:02:05 starynke Exp $ */ +/* $Id: subwindow.c 6171 2004-03-24 15:02:06Z starynke $ */ #include "libgraph.h" diff --git a/otherlibs/graph/text.c b/otherlibs/graph/text.c index 9e00f0f6..af63fe64 100644 --- a/otherlibs/graph/text.c +++ b/otherlibs/graph/text.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: text.c,v 1.15 2004/03/24 15:02:06 starynke Exp $ */ +/* $Id: text.c 6171 2004-03-24 15:02:06Z starynke $ */ #include "libgraph.h" #include diff --git a/otherlibs/labltk/browser/dummyUnix.mli b/otherlibs/labltk/browser/dummyUnix.mli index 4d394f11..1f6df582 100644 --- a/otherlibs/labltk/browser/dummyUnix.mli +++ b/otherlibs/labltk/browser/dummyUnix.mli @@ -12,7 +12,7 @@ (* *) (*************************************************************************) -(* $Id: dummyUnix.mli,v 1.4 2003/12/29 22:15:01 doligez Exp $ *) +(* $Id: dummyUnix.mli 6041 2003-12-29 22:15:02Z doligez $ *) module Mutex : sig type t diff --git a/otherlibs/labltk/browser/dummyWin.mli b/otherlibs/labltk/browser/dummyWin.mli index ddaa4eff..d25f81d4 100644 --- a/otherlibs/labltk/browser/dummyWin.mli +++ b/otherlibs/labltk/browser/dummyWin.mli @@ -12,4 +12,4 @@ (* *) (*************************************************************************) -(* $Id: dummyWin.mli,v 1.2 2001/12/07 13:39:55 xleroy Exp $ *) +(* $Id: dummyWin.mli 4144 2001-12-07 13:41:02Z xleroy $ *) diff --git a/otherlibs/labltk/browser/editor.ml b/otherlibs/labltk/browser/editor.ml index 1fffd3ba..f5d45030 100644 --- a/otherlibs/labltk/browser/editor.ml +++ b/otherlibs/labltk/browser/editor.ml @@ -12,7 +12,7 @@ (* *) (*************************************************************************) -(* $Id: editor.ml,v 1.41 2006/01/04 16:55:50 doligez Exp $ *) +(* $Id: editor.ml 7307 2006-01-04 16:55:50Z doligez $ *) open StdLabels open Tk diff --git a/otherlibs/labltk/browser/editor.mli b/otherlibs/labltk/browser/editor.mli index 2d72a8e4..c284bb10 100644 --- a/otherlibs/labltk/browser/editor.mli +++ b/otherlibs/labltk/browser/editor.mli @@ -12,7 +12,7 @@ (* *) (*************************************************************************) -(* $Id: editor.mli,v 1.5 2001/12/07 13:39:57 xleroy Exp $ *) +(* $Id: editor.mli 4144 2001-12-07 13:41:02Z xleroy $ *) open Widget diff --git a/otherlibs/labltk/browser/fileselect.ml b/otherlibs/labltk/browser/fileselect.ml index 2ee04fb0..32e15071 100644 --- a/otherlibs/labltk/browser/fileselect.ml +++ b/otherlibs/labltk/browser/fileselect.ml @@ -12,7 +12,7 @@ (* *) (*************************************************************************) -(* $Id: fileselect.ml,v 1.21 2005/01/28 16:13:11 doligez Exp $ *) +(* $Id: fileselect.ml 6757 2005-01-28 16:13:11Z doligez $ *) (* file selection box *) diff --git a/otherlibs/labltk/browser/fileselect.mli b/otherlibs/labltk/browser/fileselect.mli index d500ec61..00a52ac8 100644 --- a/otherlibs/labltk/browser/fileselect.mli +++ b/otherlibs/labltk/browser/fileselect.mli @@ -12,7 +12,7 @@ (* *) (*************************************************************************) -(* $Id: fileselect.mli,v 1.7 2002/04/26 12:15:33 furuse Exp $ *) +(* $Id: fileselect.mli 4745 2002-04-26 12:16:26Z furuse $ *) val f : title:string -> diff --git a/otherlibs/labltk/browser/jg_bind.ml b/otherlibs/labltk/browser/jg_bind.ml index dcc594a0..0a0bbfac 100644 --- a/otherlibs/labltk/browser/jg_bind.ml +++ b/otherlibs/labltk/browser/jg_bind.ml @@ -12,7 +12,7 @@ (* *) (*************************************************************************) -(* $Id: jg_bind.ml,v 1.7 2001/12/07 13:39:57 xleroy Exp $ *) +(* $Id: jg_bind.ml 4144 2001-12-07 13:41:02Z xleroy $ *) open Tk diff --git a/otherlibs/labltk/browser/jg_bind.mli b/otherlibs/labltk/browser/jg_bind.mli index 8fd60905..a3a1907d 100644 --- a/otherlibs/labltk/browser/jg_bind.mli +++ b/otherlibs/labltk/browser/jg_bind.mli @@ -12,7 +12,7 @@ (* *) (*************************************************************************) -(* $Id: jg_bind.mli,v 1.5 2001/12/07 13:39:57 xleroy Exp $ *) +(* $Id: jg_bind.mli 4144 2001-12-07 13:41:02Z xleroy $ *) open Widget diff --git a/otherlibs/labltk/browser/jg_box.ml b/otherlibs/labltk/browser/jg_box.ml index a6c5bafd..e62388eb 100644 --- a/otherlibs/labltk/browser/jg_box.ml +++ b/otherlibs/labltk/browser/jg_box.ml @@ -12,7 +12,7 @@ (* *) (*************************************************************************) -(* $Id: jg_box.ml,v 1.8 2001/12/07 13:39:58 xleroy Exp $ *) +(* $Id: jg_box.ml 4144 2001-12-07 13:41:02Z xleroy $ *) open Tk diff --git a/otherlibs/labltk/browser/jg_button.ml b/otherlibs/labltk/browser/jg_button.ml index bb960394..0adff9a6 100644 --- a/otherlibs/labltk/browser/jg_button.ml +++ b/otherlibs/labltk/browser/jg_button.ml @@ -12,7 +12,7 @@ (* *) (*************************************************************************) -(* $Id: jg_button.ml,v 1.8 2001/12/07 13:39:58 xleroy Exp $ *) +(* $Id: jg_button.ml 4144 2001-12-07 13:41:02Z xleroy $ *) open Tk diff --git a/otherlibs/labltk/browser/jg_completion.ml b/otherlibs/labltk/browser/jg_completion.ml index ecc7dfa7..bdf1ea82 100644 --- a/otherlibs/labltk/browser/jg_completion.ml +++ b/otherlibs/labltk/browser/jg_completion.ml @@ -12,7 +12,7 @@ (* *) (*************************************************************************) -(* $Id: jg_completion.ml,v 1.10 2001/12/07 13:39:58 xleroy Exp $ *) +(* $Id: jg_completion.ml 4144 2001-12-07 13:41:02Z xleroy $ *) let lt_string ?(nocase=false) s1 s2 = if nocase then String.lowercase s1 < String.lowercase s2 else s1 < s2 diff --git a/otherlibs/labltk/browser/jg_completion.mli b/otherlibs/labltk/browser/jg_completion.mli index ead4ba7a..2cffc8b8 100644 --- a/otherlibs/labltk/browser/jg_completion.mli +++ b/otherlibs/labltk/browser/jg_completion.mli @@ -12,7 +12,7 @@ (* *) (*************************************************************************) -(* $Id: jg_completion.mli,v 1.6 2001/12/07 13:39:58 xleroy Exp $ *) +(* $Id: jg_completion.mli 4144 2001-12-07 13:41:02Z xleroy $ *) val lt_string : ?nocase:bool -> string -> string -> bool diff --git a/otherlibs/labltk/browser/jg_config.ml b/otherlibs/labltk/browser/jg_config.ml index c1aa70c3..4d456189 100644 --- a/otherlibs/labltk/browser/jg_config.ml +++ b/otherlibs/labltk/browser/jg_config.ml @@ -12,7 +12,7 @@ (* *) (*************************************************************************) -(* $Id: jg_config.ml,v 1.10 2001/12/07 13:39:58 xleroy Exp $ *) +(* $Id: jg_config.ml 4144 2001-12-07 13:41:02Z xleroy $ *) open StdLabels open Jg_tk diff --git a/otherlibs/labltk/browser/jg_config.mli b/otherlibs/labltk/browser/jg_config.mli index 7548d5b8..3e583490 100644 --- a/otherlibs/labltk/browser/jg_config.mli +++ b/otherlibs/labltk/browser/jg_config.mli @@ -12,6 +12,6 @@ (* *) (*************************************************************************) -(* $Id: jg_config.mli,v 1.5 2001/12/07 13:39:58 xleroy Exp $ *) +(* $Id: jg_config.mli 4144 2001-12-07 13:41:02Z xleroy $ *) val init: unit -> unit diff --git a/otherlibs/labltk/browser/jg_entry.ml b/otherlibs/labltk/browser/jg_entry.ml index 5c4640da..58fa7f2e 100644 --- a/otherlibs/labltk/browser/jg_entry.ml +++ b/otherlibs/labltk/browser/jg_entry.ml @@ -12,7 +12,7 @@ (* *) (*************************************************************************) -(* $Id: jg_entry.ml,v 1.7 2001/12/07 13:39:58 xleroy Exp $ *) +(* $Id: jg_entry.ml 4144 2001-12-07 13:41:02Z xleroy $ *) open Tk diff --git a/otherlibs/labltk/browser/jg_memo.ml b/otherlibs/labltk/browser/jg_memo.ml index e5237b72..abdfe075 100644 --- a/otherlibs/labltk/browser/jg_memo.ml +++ b/otherlibs/labltk/browser/jg_memo.ml @@ -12,7 +12,7 @@ (* *) (*************************************************************************) -(* $Id: jg_memo.ml,v 1.8 2001/12/07 13:39:58 xleroy Exp $ *) +(* $Id: jg_memo.ml 4144 2001-12-07 13:41:02Z xleroy $ *) type ('a, 'b) assoc_list = Nil diff --git a/otherlibs/labltk/browser/jg_memo.mli b/otherlibs/labltk/browser/jg_memo.mli index 3378683f..1b9396ee 100644 --- a/otherlibs/labltk/browser/jg_memo.mli +++ b/otherlibs/labltk/browser/jg_memo.mli @@ -12,7 +12,7 @@ (* *) (*************************************************************************) -(* $Id: jg_memo.mli,v 1.7 2001/12/07 13:39:59 xleroy Exp $ *) +(* $Id: jg_memo.mli 4144 2001-12-07 13:41:02Z xleroy $ *) val fast : f:('a -> 'b) -> 'a -> 'b (* "fast" memoizer: uses a List.assq like function *) diff --git a/otherlibs/labltk/browser/jg_menu.ml b/otherlibs/labltk/browser/jg_menu.ml index 574708a6..b0ef967c 100644 --- a/otherlibs/labltk/browser/jg_menu.ml +++ b/otherlibs/labltk/browser/jg_menu.ml @@ -12,7 +12,7 @@ (* *) (*************************************************************************) -(* $Id: jg_menu.ml,v 1.9 2006/01/04 16:55:50 doligez Exp $ *) +(* $Id: jg_menu.ml 7307 2006-01-04 16:55:50Z doligez $ *) open Tk diff --git a/otherlibs/labltk/browser/jg_message.ml b/otherlibs/labltk/browser/jg_message.ml index cae25b3b..8925216e 100644 --- a/otherlibs/labltk/browser/jg_message.ml +++ b/otherlibs/labltk/browser/jg_message.ml @@ -12,7 +12,7 @@ (* *) (*************************************************************************) -(* $Id: jg_message.ml,v 1.18 2002/07/26 00:04:05 garrigue Exp $ *) +(* $Id: jg_message.ml 5045 2002-07-26 00:04:05Z garrigue $ *) open StdLabels open Tk diff --git a/otherlibs/labltk/browser/jg_message.mli b/otherlibs/labltk/browser/jg_message.mli index fa3facc1..6cf581de 100644 --- a/otherlibs/labltk/browser/jg_message.mli +++ b/otherlibs/labltk/browser/jg_message.mli @@ -12,7 +12,7 @@ (* *) (*************************************************************************) -(* $Id: jg_message.mli,v 1.10 2002/07/26 00:04:05 garrigue Exp $ *) +(* $Id: jg_message.mli 5045 2002-07-26 00:04:05Z garrigue $ *) open Widget diff --git a/otherlibs/labltk/browser/jg_multibox.ml b/otherlibs/labltk/browser/jg_multibox.ml index ec1f1488..94b6334b 100644 --- a/otherlibs/labltk/browser/jg_multibox.ml +++ b/otherlibs/labltk/browser/jg_multibox.ml @@ -12,7 +12,7 @@ (* *) (*************************************************************************) -(* $Id: jg_multibox.ml,v 1.11 2001/12/07 13:39:59 xleroy Exp $ *) +(* $Id: jg_multibox.ml 4144 2001-12-07 13:41:02Z xleroy $ *) open StdLabels diff --git a/otherlibs/labltk/browser/jg_multibox.mli b/otherlibs/labltk/browser/jg_multibox.mli index 124d1e59..e122edcf 100644 --- a/otherlibs/labltk/browser/jg_multibox.mli +++ b/otherlibs/labltk/browser/jg_multibox.mli @@ -12,7 +12,7 @@ (* *) (*************************************************************************) -(* $Id: jg_multibox.mli,v 1.6 2001/12/07 13:39:59 xleroy Exp $ *) +(* $Id: jg_multibox.mli 4144 2001-12-07 13:41:02Z xleroy $ *) class c : cols:int -> texts:string list -> diff --git a/otherlibs/labltk/browser/jg_text.ml b/otherlibs/labltk/browser/jg_text.ml index ee1fab9a..84dae4d8 100644 --- a/otherlibs/labltk/browser/jg_text.ml +++ b/otherlibs/labltk/browser/jg_text.ml @@ -12,7 +12,7 @@ (* *) (*************************************************************************) -(* $Id: jg_text.ml,v 1.11 2002/08/09 10:34:44 garrigue Exp $ *) +(* $Id: jg_text.ml 5094 2002-08-09 10:34:44Z garrigue $ *) open StdLabels open Tk diff --git a/otherlibs/labltk/browser/jg_text.mli b/otherlibs/labltk/browser/jg_text.mli index 289c31c0..a498eed6 100644 --- a/otherlibs/labltk/browser/jg_text.mli +++ b/otherlibs/labltk/browser/jg_text.mli @@ -12,7 +12,7 @@ (* *) (*************************************************************************) -(* $Id: jg_text.mli,v 1.7 2001/12/07 13:40:00 xleroy Exp $ *) +(* $Id: jg_text.mli 4144 2001-12-07 13:41:02Z xleroy $ *) open Widget diff --git a/otherlibs/labltk/browser/jg_tk.ml b/otherlibs/labltk/browser/jg_tk.ml index a4d46322..6441caeb 100644 --- a/otherlibs/labltk/browser/jg_tk.ml +++ b/otherlibs/labltk/browser/jg_tk.ml @@ -12,7 +12,7 @@ (* *) (*************************************************************************) -(* $Id: jg_tk.ml,v 1.7 2001/12/07 13:40:00 xleroy Exp $ *) +(* $Id: jg_tk.ml 4144 2001-12-07 13:41:02Z xleroy $ *) open Tk diff --git a/otherlibs/labltk/browser/jg_toplevel.ml b/otherlibs/labltk/browser/jg_toplevel.ml index f53ada2f..c26f76fc 100644 --- a/otherlibs/labltk/browser/jg_toplevel.ml +++ b/otherlibs/labltk/browser/jg_toplevel.ml @@ -12,7 +12,7 @@ (* *) (*************************************************************************) -(* $Id: jg_toplevel.ml,v 1.8 2001/12/07 13:40:00 xleroy Exp $ *) +(* $Id: jg_toplevel.ml 4144 2001-12-07 13:41:02Z xleroy $ *) open Tk diff --git a/otherlibs/labltk/browser/lexical.ml b/otherlibs/labltk/browser/lexical.ml index 3e25b238..3d48ef45 100644 --- a/otherlibs/labltk/browser/lexical.ml +++ b/otherlibs/labltk/browser/lexical.ml @@ -12,7 +12,7 @@ (* *) (*************************************************************************) -(* $Id: lexical.ml,v 1.15.32.1 2009/06/08 04:43:32 garrigue Exp $ *) +(* $Id: lexical.ml 9293 2009-06-08 04:43:32Z garrigue $ *) open StdLabels open Tk diff --git a/otherlibs/labltk/browser/lexical.mli b/otherlibs/labltk/browser/lexical.mli index bbfa5e78..e2a02d2d 100644 --- a/otherlibs/labltk/browser/lexical.mli +++ b/otherlibs/labltk/browser/lexical.mli @@ -12,7 +12,7 @@ (* *) (*************************************************************************) -(* $Id: lexical.mli,v 1.6 2001/12/07 13:40:00 xleroy Exp $ *) +(* $Id: lexical.mli 4144 2001-12-07 13:41:02Z xleroy $ *) open Widget diff --git a/otherlibs/labltk/browser/list2.ml b/otherlibs/labltk/browser/list2.ml index 1e012e54..2dd4bb1a 100644 --- a/otherlibs/labltk/browser/list2.ml +++ b/otherlibs/labltk/browser/list2.ml @@ -12,7 +12,7 @@ (* *) (*************************************************************************) -(* $Id: list2.ml,v 1.9 2001/12/07 13:40:00 xleroy Exp $ *) +(* $Id: list2.ml 4144 2001-12-07 13:41:02Z xleroy $ *) open StdLabels diff --git a/otherlibs/labltk/browser/main.ml b/otherlibs/labltk/browser/main.ml index 653212b4..1b7027c7 100644 --- a/otherlibs/labltk/browser/main.ml +++ b/otherlibs/labltk/browser/main.ml @@ -12,7 +12,7 @@ (* *) (*************************************************************************) -(* $Id: main.ml,v 1.34 2006/04/16 23:28:21 doligez Exp $ *) +(* $Id: main.ml 7382 2006-04-16 23:28:22Z doligez $ *) open StdLabels module Unix = UnixLabels diff --git a/otherlibs/labltk/browser/mytypes.mli b/otherlibs/labltk/browser/mytypes.mli index 233d0ff2..d7eb8856 100644 --- a/otherlibs/labltk/browser/mytypes.mli +++ b/otherlibs/labltk/browser/mytypes.mli @@ -12,7 +12,7 @@ (* *) (*************************************************************************) -(* $Id: mytypes.mli,v 1.7 2007/05/16 08:21:40 doligez Exp $ *) +(* $Id: mytypes.mli 8232 2007-05-16 08:21:41Z doligez $ *) open Widget diff --git a/otherlibs/labltk/browser/searchid.ml b/otherlibs/labltk/browser/searchid.ml index 22877350..c787fe00 100644 --- a/otherlibs/labltk/browser/searchid.ml +++ b/otherlibs/labltk/browser/searchid.ml @@ -12,7 +12,7 @@ (* *) (*************************************************************************) -(* $Id: searchid.ml,v 1.25 2008/07/09 14:03:08 mauny Exp $ *) +(* $Id: searchid.ml 8907 2008-07-09 14:03:08Z mauny $ *) open StdLabels open Location diff --git a/otherlibs/labltk/browser/searchid.mli b/otherlibs/labltk/browser/searchid.mli index 33ab6a1d..07fefec8 100644 --- a/otherlibs/labltk/browser/searchid.mli +++ b/otherlibs/labltk/browser/searchid.mli @@ -12,7 +12,7 @@ (* *) (*************************************************************************) -(* $Id: searchid.mli,v 1.6 2002/07/25 22:51:47 garrigue Exp $ *) +(* $Id: searchid.mli 5044 2002-07-25 22:51:47Z garrigue $ *) val start_env : Env.t ref val module_list : string list ref diff --git a/otherlibs/labltk/browser/searchpos.ml b/otherlibs/labltk/browser/searchpos.ml index e32ea84b..7700ad3e 100644 --- a/otherlibs/labltk/browser/searchpos.ml +++ b/otherlibs/labltk/browser/searchpos.ml @@ -12,7 +12,7 @@ (* *) (*************************************************************************) -(* $Id: searchpos.ml,v 1.52 2008/07/09 14:03:08 mauny Exp $ *) +(* $Id: searchpos.ml 8907 2008-07-09 14:03:08Z mauny $ *) open StdLabels open Support diff --git a/otherlibs/labltk/browser/searchpos.mli b/otherlibs/labltk/browser/searchpos.mli index d04dac6e..0beb0985 100644 --- a/otherlibs/labltk/browser/searchpos.mli +++ b/otherlibs/labltk/browser/searchpos.mli @@ -12,7 +12,7 @@ (* *) (*************************************************************************) -(* $Id: searchpos.mli,v 1.13 2007/05/16 08:21:40 doligez Exp $ *) +(* $Id: searchpos.mli 8232 2007-05-16 08:21:41Z doligez $ *) open Widget diff --git a/otherlibs/labltk/browser/setpath.ml b/otherlibs/labltk/browser/setpath.ml index 93bf99ba..b7000b85 100644 --- a/otherlibs/labltk/browser/setpath.ml +++ b/otherlibs/labltk/browser/setpath.ml @@ -12,7 +12,7 @@ (* *) (*************************************************************************) -(* $Id: setpath.ml,v 1.16 2002/04/26 12:15:34 furuse Exp $ *) +(* $Id: setpath.ml 4745 2002-04-26 12:16:26Z furuse $ *) open StdLabels open Tk diff --git a/otherlibs/labltk/browser/setpath.mli b/otherlibs/labltk/browser/setpath.mli index 6bf8fe1d..2ad7ed8e 100644 --- a/otherlibs/labltk/browser/setpath.mli +++ b/otherlibs/labltk/browser/setpath.mli @@ -12,7 +12,7 @@ (* *) (*************************************************************************) -(* $Id: setpath.mli,v 1.6 2001/12/07 13:40:02 xleroy Exp $ *) +(* $Id: setpath.mli 4144 2001-12-07 13:41:02Z xleroy $ *) open Widget diff --git a/otherlibs/labltk/browser/shell.ml b/otherlibs/labltk/browser/shell.ml index 4afec1e6..5b009b3f 100644 --- a/otherlibs/labltk/browser/shell.ml +++ b/otherlibs/labltk/browser/shell.ml @@ -12,7 +12,7 @@ (* *) (*************************************************************************) -(* $Id: shell.ml,v 1.41 2006/01/18 13:26:03 garrigue Exp $ *) +(* $Id: shell.ml 7327 2006-01-18 13:26:03Z garrigue $ *) open StdLabels module Unix = UnixLabels diff --git a/otherlibs/labltk/browser/shell.mli b/otherlibs/labltk/browser/shell.mli index d5866442..a2c4c250 100644 --- a/otherlibs/labltk/browser/shell.mli +++ b/otherlibs/labltk/browser/shell.mli @@ -12,7 +12,7 @@ (* *) (*************************************************************************) -(* $Id: shell.mli,v 1.8 2002/07/25 22:51:47 garrigue Exp $ *) +(* $Id: shell.mli 5044 2002-07-25 22:51:47Z garrigue $ *) class ['a] history : unit -> diff --git a/otherlibs/labltk/browser/typecheck.ml b/otherlibs/labltk/browser/typecheck.ml index 05b2d9cb..4fa4a4a1 100644 --- a/otherlibs/labltk/browser/typecheck.ml +++ b/otherlibs/labltk/browser/typecheck.ml @@ -12,7 +12,7 @@ (* *) (*************************************************************************) -(* $Id: typecheck.ml,v 1.16.6.1 2009/06/08 04:43:32 garrigue Exp $ *) +(* $Id: typecheck.ml 9293 2009-06-08 04:43:32Z garrigue $ *) open StdLabels open Tk diff --git a/otherlibs/labltk/browser/typecheck.mli b/otherlibs/labltk/browser/typecheck.mli index 05a7bd42..d7569189 100644 --- a/otherlibs/labltk/browser/typecheck.mli +++ b/otherlibs/labltk/browser/typecheck.mli @@ -12,7 +12,7 @@ (* *) (*************************************************************************) -(* $Id: typecheck.mli,v 1.5 2001/12/07 13:40:02 xleroy Exp $ *) +(* $Id: typecheck.mli 4144 2001-12-07 13:41:02Z xleroy $ *) open Widget open Mytypes diff --git a/otherlibs/labltk/browser/useunix.ml b/otherlibs/labltk/browser/useunix.ml index 7ad96d1a..00ac1fb4 100644 --- a/otherlibs/labltk/browser/useunix.ml +++ b/otherlibs/labltk/browser/useunix.ml @@ -12,7 +12,7 @@ (* *) (*************************************************************************) -(* $Id: useunix.ml,v 1.13 2002/08/09 10:34:44 garrigue Exp $ *) +(* $Id: useunix.ml 5094 2002-08-09 10:34:44Z garrigue $ *) open StdLabels open UnixLabels diff --git a/otherlibs/labltk/browser/useunix.mli b/otherlibs/labltk/browser/useunix.mli index 95ecd723..c0059b80 100644 --- a/otherlibs/labltk/browser/useunix.mli +++ b/otherlibs/labltk/browser/useunix.mli @@ -12,7 +12,7 @@ (* *) (*************************************************************************) -(* $Id: useunix.mli,v 1.6 2002/08/09 10:34:44 garrigue Exp $ *) +(* $Id: useunix.mli 5094 2002-08-09 10:34:44Z garrigue $ *) (* Unix utilities *) diff --git a/otherlibs/labltk/browser/viewer.ml b/otherlibs/labltk/browser/viewer.ml index 1c1ba14b..97511bcf 100644 --- a/otherlibs/labltk/browser/viewer.ml +++ b/otherlibs/labltk/browser/viewer.ml @@ -12,7 +12,7 @@ (* *) (*************************************************************************) -(* $Id: viewer.ml,v 1.33 2006/01/04 16:55:50 doligez Exp $ *) +(* $Id: viewer.ml 7307 2006-01-04 16:55:50Z doligez $ *) open StdLabels open Tk diff --git a/otherlibs/labltk/browser/viewer.mli b/otherlibs/labltk/browser/viewer.mli index 09ef045b..fdab185b 100644 --- a/otherlibs/labltk/browser/viewer.mli +++ b/otherlibs/labltk/browser/viewer.mli @@ -12,7 +12,7 @@ (* *) (*************************************************************************) -(* $Id: viewer.mli,v 1.7 2002/07/11 13:49:51 garrigue Exp $ *) +(* $Id: viewer.mli 4990 2002-07-11 13:49:51Z garrigue $ *) (* Module viewer *) open Widget diff --git a/otherlibs/labltk/builtin/LICENSE b/otherlibs/labltk/builtin/LICENSE index a95e32cc..3098bdf7 100644 --- a/otherlibs/labltk/builtin/LICENSE +++ b/otherlibs/labltk/builtin/LICENSE @@ -14,6 +14,6 @@ (* *) (*************************************************************************) -(* $Id: LICENSE,v 1.2 2001/12/07 13:40:03 xleroy Exp $ *) +(* $Id: LICENSE 4144 2001-12-07 13:41:02Z xleroy $ *) All the files in this directory are subject to the above copyright notice. \ No newline at end of file diff --git a/otherlibs/labltk/compiler/compile.ml b/otherlibs/labltk/compiler/compile.ml index 865f787f..d3b19446 100644 --- a/otherlibs/labltk/compiler/compile.ml +++ b/otherlibs/labltk/compiler/compile.ml @@ -14,7 +14,7 @@ (* *) (***********************************************************************) -(* $Id: compile.ml,v 1.32 2005/01/28 16:13:11 doligez Exp $ *) +(* $Id: compile.ml 6757 2005-01-28 16:13:11Z doligez $ *) open StdLabels open Tables diff --git a/otherlibs/labltk/compiler/intf.ml b/otherlibs/labltk/compiler/intf.ml index b1633893..f1baae32 100644 --- a/otherlibs/labltk/compiler/intf.ml +++ b/otherlibs/labltk/compiler/intf.ml @@ -14,7 +14,7 @@ (* *) (***********************************************************************) -(* $Id: intf.ml,v 1.20 2002/07/23 14:11:55 doligez Exp $ *) +(* $Id: intf.ml 5029 2002-07-23 14:12:03Z doligez $ *) open StdLabels diff --git a/otherlibs/labltk/compiler/lexer.mll b/otherlibs/labltk/compiler/lexer.mll index 248b1b87..bc28c1d4 100644 --- a/otherlibs/labltk/compiler/lexer.mll +++ b/otherlibs/labltk/compiler/lexer.mll @@ -14,7 +14,7 @@ (* *) (***********************************************************************) -(* $Id: lexer.mll,v 1.14 2002/07/23 14:11:55 doligez Exp $ *) +(* $Id: lexer.mll 5029 2002-07-23 14:12:03Z doligez $ *) { open StdLabels diff --git a/otherlibs/labltk/compiler/maincompile.ml b/otherlibs/labltk/compiler/maincompile.ml index d703c87c..817e4b64 100644 --- a/otherlibs/labltk/compiler/maincompile.ml +++ b/otherlibs/labltk/compiler/maincompile.ml @@ -14,7 +14,7 @@ (* *) (***********************************************************************) -(* $Id: maincompile.ml,v 1.20 2005/01/28 16:13:11 doligez Exp $ *) +(* $Id: maincompile.ml 6757 2005-01-28 16:13:11Z doligez $ *) open StdLabels open Support diff --git a/otherlibs/labltk/compiler/parser.mly b/otherlibs/labltk/compiler/parser.mly index 0284cc3d..72cca469 100644 --- a/otherlibs/labltk/compiler/parser.mly +++ b/otherlibs/labltk/compiler/parser.mly @@ -14,7 +14,7 @@ /* */ /***********************************************************************/ -/* $Id: parser.mly,v 1.9 2003/03/27 15:04:44 furuse Exp $ */ +/* $Id: parser.mly 5464 2003-03-27 15:04:44Z furuse $ */ %{ diff --git a/otherlibs/labltk/compiler/tables.ml b/otherlibs/labltk/compiler/tables.ml index 4904295a..2ccd0fd1 100644 --- a/otherlibs/labltk/compiler/tables.ml +++ b/otherlibs/labltk/compiler/tables.ml @@ -14,7 +14,7 @@ (* *) (***********************************************************************) -(* $Id: tables.ml,v 1.20 2002/04/26 12:15:48 furuse Exp $ *) +(* $Id: tables.ml 4745 2002-04-26 12:16:26Z furuse $ *) open StdLabels open Support diff --git a/otherlibs/labltk/compiler/tsort.ml b/otherlibs/labltk/compiler/tsort.ml index 25fab204..e8074ae8 100644 --- a/otherlibs/labltk/compiler/tsort.ml +++ b/otherlibs/labltk/compiler/tsort.ml @@ -14,7 +14,7 @@ (* *) (***********************************************************************) -(* $Id: tsort.ml,v 1.12 2002/04/26 12:15:48 furuse Exp $ *) +(* $Id: tsort.ml 4745 2002-04-26 12:16:26Z furuse $ *) open StdLabels diff --git a/otherlibs/labltk/examples_labltk/README b/otherlibs/labltk/examples_labltk/README index bb80b114..88eaccda 100644 --- a/otherlibs/labltk/examples_labltk/README +++ b/otherlibs/labltk/examples_labltk/README @@ -1,4 +1,4 @@ -$Id: README,v 1.2 2002/04/26 12:15:57 furuse Exp $ +$Id: README 4745 2002-04-26 12:16:26Z furuse $ Some examples for LablTk. They are written in classic mode, except testris.ml which uses label diff --git a/otherlibs/labltk/examples_labltk/calc.ml b/otherlibs/labltk/examples_labltk/calc.ml index 9e1f239a..b334f67b 100644 --- a/otherlibs/labltk/examples_labltk/calc.ml +++ b/otherlibs/labltk/examples_labltk/calc.ml @@ -14,7 +14,7 @@ (* *) (***********************************************************************) -(* $Id: calc.ml,v 1.3 2002/10/11 18:56:18 doligez Exp $ *) +(* $Id: calc.ml 5175 2002-10-11 19:01:19Z doligez $ *) (* A simple calculator demonstrating OO programming with O'Labl and LablTk. diff --git a/otherlibs/labltk/examples_labltk/clock.ml b/otherlibs/labltk/examples_labltk/clock.ml index cdb55888..9e5227b9 100644 --- a/otherlibs/labltk/examples_labltk/clock.ml +++ b/otherlibs/labltk/examples_labltk/clock.ml @@ -14,7 +14,7 @@ (* *) (***********************************************************************) -(* $Id: clock.ml,v 1.2 2002/04/26 12:15:58 furuse Exp $ *) +(* $Id: clock.ml 4745 2002-04-26 12:16:26Z furuse $ *) (* Clock/V, a simple clock. Reverts every time you push the right button. diff --git a/otherlibs/labltk/examples_labltk/demo.ml b/otherlibs/labltk/examples_labltk/demo.ml index 85541be2..6c9daed8 100644 --- a/otherlibs/labltk/examples_labltk/demo.ml +++ b/otherlibs/labltk/examples_labltk/demo.ml @@ -14,7 +14,7 @@ (* *) (***********************************************************************) -(* $Id: demo.ml,v 1.2 2002/04/26 12:15:58 furuse Exp $ *) +(* $Id: demo.ml 4745 2002-04-26 12:16:26Z furuse $ *) (* Some CamlTk4 Demonstration by JPF *) diff --git a/otherlibs/labltk/examples_labltk/eyes.ml b/otherlibs/labltk/examples_labltk/eyes.ml index 692d3d64..c33f6264 100644 --- a/otherlibs/labltk/examples_labltk/eyes.ml +++ b/otherlibs/labltk/examples_labltk/eyes.ml @@ -14,7 +14,7 @@ (* *) (***********************************************************************) -(* $Id: eyes.ml,v 1.2 2002/04/26 12:15:58 furuse Exp $ *) +(* $Id: eyes.ml 4745 2002-04-26 12:16:26Z furuse $ *) open Tk diff --git a/otherlibs/labltk/examples_labltk/hello.ml b/otherlibs/labltk/examples_labltk/hello.ml index a751e063..4bb4f3a4 100644 --- a/otherlibs/labltk/examples_labltk/hello.ml +++ b/otherlibs/labltk/examples_labltk/hello.ml @@ -14,7 +14,7 @@ (* *) (***********************************************************************) -(* $Id: hello.ml,v 1.2 2002/04/26 12:15:58 furuse Exp $ *) +(* $Id: hello.ml 4745 2002-04-26 12:16:26Z furuse $ *) (* LablTk4 Demonstration by JPF *) diff --git a/otherlibs/labltk/examples_labltk/taquin.ml b/otherlibs/labltk/examples_labltk/taquin.ml index a2ccb7a0..2b2fd6a1 100644 --- a/otherlibs/labltk/examples_labltk/taquin.ml +++ b/otherlibs/labltk/examples_labltk/taquin.ml @@ -14,7 +14,7 @@ (* *) (***********************************************************************) -(* $Id: taquin.ml,v 1.2 2002/04/26 12:15:59 furuse Exp $ *) +(* $Id: taquin.ml 4745 2002-04-26 12:16:26Z furuse $ *) open Tk;; diff --git a/otherlibs/labltk/examples_labltk/tetris.ml b/otherlibs/labltk/examples_labltk/tetris.ml index b9af0d1b..641909c0 100644 --- a/otherlibs/labltk/examples_labltk/tetris.ml +++ b/otherlibs/labltk/examples_labltk/tetris.ml @@ -14,7 +14,7 @@ (* *) (***********************************************************************) -(* $Id: tetris.ml,v 1.4 2004/06/12 03:20:00 garrigue Exp $ *) +(* $Id: tetris.ml 6385 2004-06-12 03:20:00Z garrigue $ *) (* A Tetris game for LablTk *) (* written by Jun P. Furuse *) diff --git a/otherlibs/labltk/frx/.cvsignore b/otherlibs/labltk/frx/.cvsignore new file mode 100644 index 00000000..10301e28 --- /dev/null +++ b/otherlibs/labltk/frx/.cvsignore @@ -0,0 +1 @@ +*.a diff --git a/otherlibs/labltk/frx/frx_entry.ml b/otherlibs/labltk/frx/frx_entry.ml index 4b760fcf..6af349c7 100644 --- a/otherlibs/labltk/frx/frx_entry.ml +++ b/otherlibs/labltk/frx/frx_entry.ml @@ -15,7 +15,7 @@ (***********************************************************************) open Camltk -let version = "$Id: frx_entry.ml,v 1.2 2002/04/26 12:16:02 furuse Exp $" +let version = "$Id: frx_entry.ml 4745 2002-04-26 12:16:26Z furuse $" (* * Tk 4.0 has emacs bindings for entry widgets diff --git a/otherlibs/labltk/frx/frx_fileinput.ml b/otherlibs/labltk/frx/frx_fileinput.ml index a12d09a8..83cbffaa 100644 --- a/otherlibs/labltk/frx/frx_fileinput.ml +++ b/otherlibs/labltk/frx/frx_fileinput.ml @@ -15,7 +15,7 @@ (***********************************************************************) open Camltk -let version = "$Id: frx_fileinput.ml,v 1.2 2002/04/26 12:16:03 furuse Exp $" +let version = "$Id: frx_fileinput.ml 4745 2002-04-26 12:16:26Z furuse $" (* * Simple spooling for fileinput callbacks diff --git a/otherlibs/labltk/frx/frx_font.ml b/otherlibs/labltk/frx/frx_font.ml index 7948bffa..7e28523a 100644 --- a/otherlibs/labltk/frx/frx_font.ml +++ b/otherlibs/labltk/frx/frx_font.ml @@ -16,7 +16,7 @@ open Camltk open Widget -let version = "$Id: frx_font.ml,v 1.3 2002/07/23 14:11:56 doligez Exp $" +let version = "$Id: frx_font.ml 5029 2002-07-23 14:12:03Z doligez $" (* * Finding fonts. Inspired by code in Ical by Sanjay Ghemawat. diff --git a/otherlibs/labltk/frx/frx_lbutton.ml b/otherlibs/labltk/frx/frx_lbutton.ml index 61bd5dc9..b9447616 100644 --- a/otherlibs/labltk/frx/frx_lbutton.ml +++ b/otherlibs/labltk/frx/frx_lbutton.ml @@ -18,7 +18,7 @@ open Camltk open Widget -let version = "$Id: frx_lbutton.ml,v 1.2 2002/04/26 12:16:05 furuse Exp $" +let version = "$Id: frx_lbutton.ml 4745 2002-04-26 12:16:26Z furuse $" (* * Simulate a button with a bitmap AND a label diff --git a/otherlibs/labltk/frx/frx_listbox.ml b/otherlibs/labltk/frx/frx_listbox.ml index 35e610cf..bc1c6bde 100644 --- a/otherlibs/labltk/frx/frx_listbox.ml +++ b/otherlibs/labltk/frx/frx_listbox.ml @@ -15,7 +15,7 @@ (***********************************************************************) open Camltk -let version = "$Id: frx_listbox.ml,v 1.3 2002/07/23 14:11:56 doligez Exp $" +let version = "$Id: frx_listbox.ml 5029 2002-07-23 14:12:03Z doligez $" (* * Link a scrollbar and a listbox diff --git a/otherlibs/labltk/frx/frx_req.ml b/otherlibs/labltk/frx/frx_req.ml index 10c55ea4..29dce64c 100644 --- a/otherlibs/labltk/frx/frx_req.ml +++ b/otherlibs/labltk/frx/frx_req.ml @@ -20,7 +20,7 @@ open Camltk * jargon). *) -let version = "$Id: frx_req.ml,v 1.3 2002/07/23 14:11:58 doligez Exp $" +let version = "$Id: frx_req.ml 5029 2002-07-23 14:12:03Z doligez $" (* * Simple requester diff --git a/otherlibs/labltk/frx/frx_text.ml b/otherlibs/labltk/frx/frx_text.ml index 60f4c821..11b4335c 100644 --- a/otherlibs/labltk/frx/frx_text.ml +++ b/otherlibs/labltk/frx/frx_text.ml @@ -15,7 +15,7 @@ (***********************************************************************) open Camltk -let version = "$Id: frx_text.ml,v 1.3 2002/07/23 14:11:58 doligez Exp $" +let version = "$Id: frx_text.ml 5029 2002-07-23 14:12:03Z doligez $" (* * convert an integer to an absolute index diff --git a/otherlibs/labltk/frx/frx_widget.ml b/otherlibs/labltk/frx/frx_widget.ml index 534a13f8..cb61fff3 100644 --- a/otherlibs/labltk/frx/frx_widget.ml +++ b/otherlibs/labltk/frx/frx_widget.ml @@ -16,7 +16,7 @@ open Camltk open Widget -let version = "$Id: frx_widget.ml,v 1.2 2002/04/26 12:16:10 furuse Exp $" +let version = "$Id: frx_widget.ml 4745 2002-04-26 12:16:26Z furuse $" (* Make a window (toplevel widget) resizeable *) let resizeable t = update_idletasks(); (* wait until layout is computed *) diff --git a/otherlibs/labltk/jpf/.cvsignore b/otherlibs/labltk/jpf/.cvsignore new file mode 100644 index 00000000..10301e28 --- /dev/null +++ b/otherlibs/labltk/jpf/.cvsignore @@ -0,0 +1 @@ +*.a diff --git a/otherlibs/labltk/jpf/balloon.ml b/otherlibs/labltk/jpf/balloon.ml index 7caab2d5..288e0194 100644 --- a/otherlibs/labltk/jpf/balloon.ml +++ b/otherlibs/labltk/jpf/balloon.ml @@ -14,7 +14,7 @@ (* *) (***********************************************************************) -(* $Id: balloon.ml,v 1.15 2002/04/26 12:16:12 furuse Exp $ *) +(* $Id: balloon.ml 4745 2002-04-26 12:16:26Z furuse $ *) open StdLabels diff --git a/otherlibs/labltk/jpf/balloon.mli b/otherlibs/labltk/jpf/balloon.mli index 6bd8bcd7..42a1d107 100644 --- a/otherlibs/labltk/jpf/balloon.mli +++ b/otherlibs/labltk/jpf/balloon.mli @@ -14,7 +14,7 @@ (* *) (***********************************************************************) -(* $Id: balloon.mli,v 1.7 2002/04/26 12:16:12 furuse Exp $ *) +(* $Id: balloon.mli 4745 2002-04-26 12:16:26Z furuse $ *) (* easy balloon help facility *) open Widget diff --git a/otherlibs/labltk/jpf/balloontest.ml b/otherlibs/labltk/jpf/balloontest.ml index 0cca5354..4f04e894 100644 --- a/otherlibs/labltk/jpf/balloontest.ml +++ b/otherlibs/labltk/jpf/balloontest.ml @@ -14,7 +14,7 @@ (* *) (***********************************************************************) -(* $Id: balloontest.ml,v 1.8 2002/04/26 12:16:12 furuse Exp $ *) +(* $Id: balloontest.ml 4745 2002-04-26 12:16:26Z furuse $ *) open Tk open Widget diff --git a/otherlibs/labltk/jpf/fileselect.ml b/otherlibs/labltk/jpf/fileselect.ml index f58c25dd..f03064db 100644 --- a/otherlibs/labltk/jpf/fileselect.ml +++ b/otherlibs/labltk/jpf/fileselect.ml @@ -14,7 +14,7 @@ (* *) (***********************************************************************) -(* $Id: fileselect.ml,v 1.21 2005/01/28 16:13:11 doligez Exp $ *) +(* $Id: fileselect.ml 6757 2005-01-28 16:13:11Z doligez $ *) (* file selection box *) diff --git a/otherlibs/labltk/jpf/fileselect.mli b/otherlibs/labltk/jpf/fileselect.mli index dc2ae04f..fe8f5945 100644 --- a/otherlibs/labltk/jpf/fileselect.mli +++ b/otherlibs/labltk/jpf/fileselect.mli @@ -14,7 +14,7 @@ (* *) (***********************************************************************) -(* $Id: fileselect.mli,v 1.7 2002/04/26 12:16:12 furuse Exp $ *) +(* $Id: fileselect.mli 4745 2002-04-26 12:16:26Z furuse $ *) (* This file selecter works only under the OS with the full unix support. For the portability, Tk.getOpenFile and Tk.getSaveFile are recommended. *) diff --git a/otherlibs/labltk/lib/.cvsignore b/otherlibs/labltk/lib/.cvsignore index 80df4415..02d049a4 100644 --- a/otherlibs/labltk/lib/.cvsignore +++ b/otherlibs/labltk/lib/.cvsignore @@ -5,4 +5,4 @@ labltktop labltk mltktop mltk modules labltk.cma labltk.cmxa - +*.a diff --git a/otherlibs/labltk/support/.cvsignore b/otherlibs/labltk/support/.cvsignore new file mode 100644 index 00000000..56d9c77a --- /dev/null +++ b/otherlibs/labltk/support/.cvsignore @@ -0,0 +1,2 @@ +*.so +*.a diff --git a/otherlibs/labltk/support/camltk.h b/otherlibs/labltk/support/camltk.h index ba52fd1d..e14b6f61 100644 --- a/otherlibs/labltk/support/camltk.h +++ b/otherlibs/labltk/support/camltk.h @@ -14,7 +14,7 @@ /* */ /*************************************************************************/ -/* $Id: camltk.h,v 1.13 2008/09/26 07:35:24 garrigue Exp $ */ +/* $Id: camltk.h 9036 2008-09-26 07:35:24Z garrigue $ */ #if defined(_WIN32) && defined(CAML_DLL) && defined(IN_CAMLTKSUPPORT) #define CAMLTKextern CAMLexport diff --git a/otherlibs/labltk/support/cltkCaml.c b/otherlibs/labltk/support/cltkCaml.c index 00a4d016..2f5fe100 100644 --- a/otherlibs/labltk/support/cltkCaml.c +++ b/otherlibs/labltk/support/cltkCaml.c @@ -14,7 +14,7 @@ /* */ /***********************************************************************/ -/* $Id: cltkCaml.c,v 1.10 2008/09/26 07:35:24 garrigue Exp $ */ +/* $Id: cltkCaml.c 9036 2008-09-26 07:35:24Z garrigue $ */ #include #include diff --git a/otherlibs/labltk/support/cltkDMain.c b/otherlibs/labltk/support/cltkDMain.c index 1790e4e7..7561ec77 100644 --- a/otherlibs/labltk/support/cltkDMain.c +++ b/otherlibs/labltk/support/cltkDMain.c @@ -14,7 +14,7 @@ /* */ /*************************************************************************/ -/* $Id: cltkDMain.c,v 1.7 2008/07/01 09:55:52 weis Exp $ */ +/* $Id: cltkDMain.c 8899 2008-07-01 09:55:52Z weis $ */ #include #include diff --git a/otherlibs/labltk/support/cltkEval.c b/otherlibs/labltk/support/cltkEval.c index 9dd212e0..08bbd1be 100644 --- a/otherlibs/labltk/support/cltkEval.c +++ b/otherlibs/labltk/support/cltkEval.c @@ -14,7 +14,7 @@ /* */ /***********************************************************************/ -/* $Id: cltkEval.c,v 1.15 2008/07/01 09:55:52 weis Exp $ */ +/* $Id: cltkEval.c 8899 2008-07-01 09:55:52Z weis $ */ #include #include diff --git a/otherlibs/labltk/support/cltkEvent.c b/otherlibs/labltk/support/cltkEvent.c index dbda7514..5b875af5 100644 --- a/otherlibs/labltk/support/cltkEvent.c +++ b/otherlibs/labltk/support/cltkEvent.c @@ -14,7 +14,7 @@ /* */ /***********************************************************************/ -/* $Id: cltkEvent.c,v 1.8 2002/04/26 12:16:17 furuse Exp $ */ +/* $Id: cltkEvent.c 4745 2002-04-26 12:16:26Z furuse $ */ #include #include diff --git a/otherlibs/labltk/support/cltkFile.c b/otherlibs/labltk/support/cltkFile.c index 8989d108..ff159ad8 100644 --- a/otherlibs/labltk/support/cltkFile.c +++ b/otherlibs/labltk/support/cltkFile.c @@ -14,7 +14,7 @@ /* */ /***********************************************************************/ -/* $Id: cltkFile.c,v 1.12 2002/04/26 12:16:17 furuse Exp $ */ +/* $Id: cltkFile.c 4745 2002-04-26 12:16:26Z furuse $ */ #ifdef __CYGWIN__ #define _WIN32 diff --git a/otherlibs/labltk/support/cltkMain.c b/otherlibs/labltk/support/cltkMain.c index f4cf1e08..1d948a3f 100644 --- a/otherlibs/labltk/support/cltkMain.c +++ b/otherlibs/labltk/support/cltkMain.c @@ -14,7 +14,7 @@ /* */ /***********************************************************************/ -/* $Id: cltkMain.c,v 1.15 2008/07/01 09:55:52 weis Exp $ */ +/* $Id: cltkMain.c 8899 2008-07-01 09:55:52Z weis $ */ #include #include diff --git a/otherlibs/labltk/support/cltkMisc.c b/otherlibs/labltk/support/cltkMisc.c index 7397da4f..8d77fb00 100644 --- a/otherlibs/labltk/support/cltkMisc.c +++ b/otherlibs/labltk/support/cltkMisc.c @@ -14,7 +14,7 @@ /* */ /***********************************************************************/ -/* $Id: cltkMisc.c,v 1.10 2002/07/23 14:11:59 doligez Exp $ */ +/* $Id: cltkMisc.c 5029 2002-07-23 14:12:03Z doligez $ */ #include #include diff --git a/otherlibs/labltk/support/cltkTimer.c b/otherlibs/labltk/support/cltkTimer.c index 3f3efa80..2d31a1ac 100644 --- a/otherlibs/labltk/support/cltkTimer.c +++ b/otherlibs/labltk/support/cltkTimer.c @@ -14,7 +14,7 @@ /* */ /***********************************************************************/ -/* $Id: cltkTimer.c,v 1.9 2002/04/26 12:16:19 furuse Exp $ */ +/* $Id: cltkTimer.c 4745 2002-04-26 12:16:26Z furuse $ */ #include #include diff --git a/otherlibs/labltk/support/cltkUtf.c b/otherlibs/labltk/support/cltkUtf.c index e94c29e2..5654c7e5 100644 --- a/otherlibs/labltk/support/cltkUtf.c +++ b/otherlibs/labltk/support/cltkUtf.c @@ -14,7 +14,7 @@ /* */ /***********************************************************************/ -/* $Id: cltkUtf.c,v 1.2 2002/04/26 12:16:19 furuse Exp $ */ +/* $Id: cltkUtf.c 4745 2002-04-26 12:16:26Z furuse $ */ #include #include diff --git a/otherlibs/labltk/support/cltkVar.c b/otherlibs/labltk/support/cltkVar.c index 8a8de64e..d9bbf3cc 100644 --- a/otherlibs/labltk/support/cltkVar.c +++ b/otherlibs/labltk/support/cltkVar.c @@ -14,7 +14,7 @@ /* */ /***********************************************************************/ -/* $Id: cltkVar.c,v 1.9 2002/07/23 14:11:59 doligez Exp $ */ +/* $Id: cltkVar.c 5029 2002-07-23 14:12:03Z doligez $ */ /* Alternative to tkwait variable */ #include diff --git a/otherlibs/labltk/support/cltkWait.c b/otherlibs/labltk/support/cltkWait.c index f194d56a..eb819b12 100644 --- a/otherlibs/labltk/support/cltkWait.c +++ b/otherlibs/labltk/support/cltkWait.c @@ -14,7 +14,7 @@ /* */ /***********************************************************************/ -/* $Id: cltkWait.c,v 1.9 2002/07/23 14:11:59 doligez Exp $ */ +/* $Id: cltkWait.c 5029 2002-07-23 14:12:03Z doligez $ */ #include #include diff --git a/otherlibs/labltk/support/fileevent.ml b/otherlibs/labltk/support/fileevent.ml index a6ffc8b6..6cbac085 100644 --- a/otherlibs/labltk/support/fileevent.ml +++ b/otherlibs/labltk/support/fileevent.ml @@ -14,7 +14,7 @@ (* *) (***********************************************************************) -(* $Id: fileevent.ml,v 1.12 2002/04/26 12:16:19 furuse Exp $ *) +(* $Id: fileevent.ml 4745 2002-04-26 12:16:26Z furuse $ *) open Unix open Support diff --git a/otherlibs/labltk/support/fileevent.mli b/otherlibs/labltk/support/fileevent.mli index 48ed9430..fa3e8be2 100644 --- a/otherlibs/labltk/support/fileevent.mli +++ b/otherlibs/labltk/support/fileevent.mli @@ -14,7 +14,7 @@ (* *) (***********************************************************************) -(* $Id: fileevent.mli,v 1.7 2002/04/26 12:16:20 furuse Exp $ *) +(* $Id: fileevent.mli 4745 2002-04-26 12:16:26Z furuse $ *) open Unix diff --git a/otherlibs/labltk/support/protocol.ml b/otherlibs/labltk/support/protocol.ml index 79a103c8..636bfefe 100644 --- a/otherlibs/labltk/support/protocol.ml +++ b/otherlibs/labltk/support/protocol.ml @@ -14,7 +14,7 @@ (* *) (***********************************************************************) -(* $Id: protocol.ml,v 1.21 2005/12/21 05:29:08 garrigue Exp $ *) +(* $Id: protocol.ml 7283 2005-12-21 05:29:08Z garrigue $ *) open Support open Widget diff --git a/otherlibs/labltk/support/protocol.mli b/otherlibs/labltk/support/protocol.mli index 1e419115..02c3636a 100644 --- a/otherlibs/labltk/support/protocol.mli +++ b/otherlibs/labltk/support/protocol.mli @@ -14,7 +14,7 @@ (* *) (***********************************************************************) -(* $Id: protocol.mli,v 1.12 2005/12/21 05:29:08 garrigue Exp $ *) +(* $Id: protocol.mli 7283 2005-12-21 05:29:08Z garrigue $ *) open Widget diff --git a/otherlibs/labltk/support/rawwidget.ml b/otherlibs/labltk/support/rawwidget.ml index 7eb7b4c1..3e220be7 100644 --- a/otherlibs/labltk/support/rawwidget.ml +++ b/otherlibs/labltk/support/rawwidget.ml @@ -14,7 +14,7 @@ (* *) (***********************************************************************) -(* $Id: rawwidget.ml,v 1.3 2002/07/23 14:11:59 doligez Exp $ *) +(* $Id: rawwidget.ml 5029 2002-07-23 14:12:03Z doligez $ *) open Support diff --git a/otherlibs/labltk/support/rawwidget.mli b/otherlibs/labltk/support/rawwidget.mli index 9e03dee8..d698d118 100644 --- a/otherlibs/labltk/support/rawwidget.mli +++ b/otherlibs/labltk/support/rawwidget.mli @@ -14,7 +14,7 @@ (* *) (***********************************************************************) -(* $Id: rawwidget.mli,v 1.2 2002/04/26 12:16:20 furuse Exp $ *) +(* $Id: rawwidget.mli 4745 2002-04-26 12:16:26Z furuse $ *) (* Support for widget manipulations *) diff --git a/otherlibs/labltk/support/slave.ml b/otherlibs/labltk/support/slave.ml index 334088ab..5e078842 100644 --- a/otherlibs/labltk/support/slave.ml +++ b/otherlibs/labltk/support/slave.ml @@ -14,7 +14,7 @@ (* *) (***********************************************************************) -(* $Id: slave.ml,v 1.5 2002/04/26 12:16:21 furuse Exp $ *) +(* $Id: slave.ml 4745 2002-04-26 12:16:26Z furuse $ *) (* The code run on initialisation, in addition to normal Tk code * NOTE: camltk has not fully been initialised yet diff --git a/otherlibs/labltk/support/support.ml b/otherlibs/labltk/support/support.ml index 1c5994c9..66d65e51 100644 --- a/otherlibs/labltk/support/support.ml +++ b/otherlibs/labltk/support/support.ml @@ -14,7 +14,7 @@ (* *) (***********************************************************************) -(* $Id: support.ml,v 1.9 2002/04/26 12:16:21 furuse Exp $ *) +(* $Id: support.ml 4745 2002-04-26 12:16:26Z furuse $ *) (* Parsing results of Tcl *) (* List.split a string according to char_sep predicate *) diff --git a/otherlibs/labltk/support/support.mli b/otherlibs/labltk/support/support.mli index 8551aed5..351e5fc2 100644 --- a/otherlibs/labltk/support/support.mli +++ b/otherlibs/labltk/support/support.mli @@ -14,7 +14,7 @@ (* *) (***********************************************************************) -(* $Id: support.mli,v 1.8 2002/04/26 12:16:21 furuse Exp $ *) +(* $Id: support.mli 4745 2002-04-26 12:16:26Z furuse $ *) val split_str : pred:(char -> bool) -> string -> string list val may : ('a -> 'b) -> 'a option -> 'b option diff --git a/otherlibs/labltk/support/textvariable.ml b/otherlibs/labltk/support/textvariable.ml index 087ff87d..e6d49bab 100644 --- a/otherlibs/labltk/support/textvariable.ml +++ b/otherlibs/labltk/support/textvariable.ml @@ -14,7 +14,7 @@ (* *) (***********************************************************************) -(* $Id: textvariable.ml,v 1.16 2002/07/23 14:11:59 doligez Exp $ *) +(* $Id: textvariable.ml 5029 2002-07-23 14:12:03Z doligez $ *) open Support open Protocol diff --git a/otherlibs/labltk/support/textvariable.mli b/otherlibs/labltk/support/textvariable.mli index 7d101bc7..c3a5adaf 100644 --- a/otherlibs/labltk/support/textvariable.mli +++ b/otherlibs/labltk/support/textvariable.mli @@ -14,7 +14,7 @@ (* *) (***********************************************************************) -(* $Id: textvariable.mli,v 1.10 2002/04/26 12:16:21 furuse Exp $ *) +(* $Id: textvariable.mli 4745 2002-04-26 12:16:26Z furuse $ *) (* Support for Tk -textvariable option *) open Widget diff --git a/otherlibs/labltk/support/timer.ml b/otherlibs/labltk/support/timer.ml index 65eb50e7..face27c0 100644 --- a/otherlibs/labltk/support/timer.ml +++ b/otherlibs/labltk/support/timer.ml @@ -14,7 +14,7 @@ (* *) (***********************************************************************) -(* $Id: timer.ml,v 1.10 2002/09/12 10:12:26 furuse Exp $ *) +(* $Id: timer.ml 5128 2002-09-12 10:12:26Z furuse $ *) (* Timers *) open Support diff --git a/otherlibs/labltk/support/timer.mli b/otherlibs/labltk/support/timer.mli index 435e6e9c..bf65f657 100644 --- a/otherlibs/labltk/support/timer.mli +++ b/otherlibs/labltk/support/timer.mli @@ -14,7 +14,7 @@ (* *) (***********************************************************************) -(* $Id: timer.mli,v 1.8 2002/04/26 12:16:21 furuse Exp $ *) +(* $Id: timer.mli 4745 2002-04-26 12:16:26Z furuse $ *) type t diff --git a/otherlibs/labltk/support/tkthread.ml b/otherlibs/labltk/support/tkthread.ml index d4a03ee2..6bcadfd0 100644 --- a/otherlibs/labltk/support/tkthread.ml +++ b/otherlibs/labltk/support/tkthread.ml @@ -12,7 +12,7 @@ (* *) (***********************************************************************) -(* $Id: tkthread.ml,v 1.3 2008/01/11 16:13:16 doligez Exp $ *) +(* $Id: tkthread.ml 8768 2008-01-11 16:13:18Z doligez $ *) let jobs : (unit -> unit) Queue.t = Queue.create () let m = Mutex.create () diff --git a/otherlibs/labltk/support/tkthread.mli b/otherlibs/labltk/support/tkthread.mli index 6fef9129..2ee96ec9 100644 --- a/otherlibs/labltk/support/tkthread.mli +++ b/otherlibs/labltk/support/tkthread.mli @@ -12,7 +12,7 @@ (* *) (***********************************************************************) -(* $Id: tkthread.mli,v 1.4 2008/01/11 16:13:16 doligez Exp $ *) +(* $Id: tkthread.mli 8768 2008-01-11 16:13:18Z doligez $ *) (* Helper functions for using LablTk with threads. To use, add tkthread.cmo or tkthread.cmx to your command line *) diff --git a/otherlibs/labltk/support/tkwait.ml b/otherlibs/labltk/support/tkwait.ml index 35749666..3bf095b5 100644 --- a/otherlibs/labltk/support/tkwait.ml +++ b/otherlibs/labltk/support/tkwait.ml @@ -14,7 +14,7 @@ (* *) (***********************************************************************) -(* $Id: tkwait.ml,v 1.7 2002/04/26 12:16:21 furuse Exp $ *) +(* $Id: tkwait.ml 4745 2002-04-26 12:16:26Z furuse $ *) external internal_tracevis : string -> string -> unit = "camltk_wait_vis" diff --git a/otherlibs/labltk/support/widget.ml b/otherlibs/labltk/support/widget.ml index d6320750..581c879e 100644 --- a/otherlibs/labltk/support/widget.ml +++ b/otherlibs/labltk/support/widget.ml @@ -14,7 +14,7 @@ (* *) (***********************************************************************) -(* $Id: widget.ml,v 1.16 2002/04/26 12:16:22 furuse Exp $ *) +(* $Id: widget.ml 4745 2002-04-26 12:16:26Z furuse $ *) (* Hack to permit having the different data type with the same name [widget] for CamlTk and LablTk. *) diff --git a/otherlibs/labltk/support/widget.mli b/otherlibs/labltk/support/widget.mli index 2023579b..14b3bdc9 100644 --- a/otherlibs/labltk/support/widget.mli +++ b/otherlibs/labltk/support/widget.mli @@ -14,7 +14,7 @@ (* *) (***********************************************************************) -(* $Id: widget.mli,v 1.7 2002/04/26 12:16:22 furuse Exp $ *) +(* $Id: widget.mli 4745 2002-04-26 12:16:26Z furuse $ *) (* Support for widget manipulations *) diff --git a/otherlibs/labltk/tkanim/.cvsignore b/otherlibs/labltk/tkanim/.cvsignore index e1c70145..38784098 100644 --- a/otherlibs/labltk/tkanim/.cvsignore +++ b/otherlibs/labltk/tkanim/.cvsignore @@ -1,2 +1,4 @@ gifanimtest gifanimtest-static +*.so +*.a diff --git a/otherlibs/num/.cvsignore b/otherlibs/num/.cvsignore index 7786c62f..02023cba 100644 --- a/otherlibs/num/.cvsignore +++ b/otherlibs/num/.cvsignore @@ -1,3 +1,5 @@ libnums.x *.c.x so_locations +*.so +*.a diff --git a/otherlibs/num/Makefile b/otherlibs/num/Makefile index 9c377caf..5c51f55e 100644 --- a/otherlibs/num/Makefile +++ b/otherlibs/num/Makefile @@ -11,7 +11,7 @@ # # ######################################################################### -# $Id: Makefile,v 1.37 2008/09/10 16:10:43 weis Exp $ +# $Id: Makefile 9021 2008-09-10 16:10:43Z weis $ # Makefile for the "num" (exact rational arithmetic) library diff --git a/otherlibs/num/Makefile.nt b/otherlibs/num/Makefile.nt index 00490e6d..98968652 100644 --- a/otherlibs/num/Makefile.nt +++ b/otherlibs/num/Makefile.nt @@ -11,7 +11,7 @@ # # ######################################################################### -# $Id: Makefile.nt,v 1.22 2007/11/06 15:16:56 frisch Exp $ +# $Id: Makefile.nt 8477 2007-11-06 15:16:56Z frisch $ # Makefile for the "num" (exact rational arithmetic) library diff --git a/otherlibs/num/arith_flags.ml b/otherlibs/num/arith_flags.ml index 19103ed9..4debbcfd 100644 --- a/otherlibs/num/arith_flags.ml +++ b/otherlibs/num/arith_flags.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: arith_flags.ml,v 1.4 2001/12/07 13:40:14 xleroy Exp $ *) +(* $Id: arith_flags.ml 4144 2001-12-07 13:41:02Z xleroy $ *) let error_when_null_denominator_flag = ref true;; diff --git a/otherlibs/num/arith_flags.mli b/otherlibs/num/arith_flags.mli index 30e5300c..a132ea41 100644 --- a/otherlibs/num/arith_flags.mli +++ b/otherlibs/num/arith_flags.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: arith_flags.mli,v 1.5 2001/12/07 13:40:14 xleroy Exp $ *) +(* $Id: arith_flags.mli 4144 2001-12-07 13:41:02Z xleroy $ *) val error_when_null_denominator_flag : bool ref val normalize_ratio_flag : bool ref diff --git a/otherlibs/num/arith_status.ml b/otherlibs/num/arith_status.ml index a15b5816..923ca00e 100644 --- a/otherlibs/num/arith_status.ml +++ b/otherlibs/num/arith_status.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: arith_status.ml,v 1.4 2001/12/07 13:40:14 xleroy Exp $ *) +(* $Id: arith_status.ml 4144 2001-12-07 13:41:02Z xleroy $ *) open Arith_flags;; diff --git a/otherlibs/num/arith_status.mli b/otherlibs/num/arith_status.mli index 76300eb8..aea83246 100644 --- a/otherlibs/num/arith_status.mli +++ b/otherlibs/num/arith_status.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: arith_status.mli,v 1.6 2001/12/07 13:40:14 xleroy Exp $ *) +(* $Id: arith_status.mli 4144 2001-12-07 13:41:02Z xleroy $ *) (** Flags that control rational arithmetic. *) diff --git a/otherlibs/num/big_int.ml b/otherlibs/num/big_int.ml index 669df773..71b8e180 100644 --- a/otherlibs/num/big_int.ml +++ b/otherlibs/num/big_int.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: big_int.ml,v 1.24.2.2 2009/05/24 19:46:44 xleroy Exp $ *) +(* $Id: big_int.ml 9277 2009-05-24 19:46:44Z xleroy $ *) open Int_misc open Nat diff --git a/otherlibs/num/big_int.mli b/otherlibs/num/big_int.mli index bd477f39..6fdb2a5a 100644 --- a/otherlibs/num/big_int.mli +++ b/otherlibs/num/big_int.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: big_int.mli,v 1.11 2008/01/04 13:15:52 xleroy Exp $ *) +(* $Id: big_int.mli 8751 2008-01-04 13:15:52Z xleroy $ *) (** Operations on arbitrary-precision integers. diff --git a/otherlibs/num/bng.c b/otherlibs/num/bng.c index 6baf3550..a14502e1 100644 --- a/otherlibs/num/bng.c +++ b/otherlibs/num/bng.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: bng.c,v 1.4 2005/09/22 14:21:50 xleroy Exp $ */ +/* $Id: bng.c 7064 2005-09-22 14:21:50Z xleroy $ */ #include "bng.h" #include "config.h" diff --git a/otherlibs/num/bng.h b/otherlibs/num/bng.h index d895bf51..bc8f4797 100644 --- a/otherlibs/num/bng.h +++ b/otherlibs/num/bng.h @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: bng.h,v 1.3 2005/09/22 14:21:50 xleroy Exp $ */ +/* $Id: bng.h 7064 2005-09-22 14:21:50Z xleroy $ */ #include #include "config.h" diff --git a/otherlibs/num/bng_alpha.c b/otherlibs/num/bng_alpha.c index 94168a38..82b21346 100644 --- a/otherlibs/num/bng_alpha.c +++ b/otherlibs/num/bng_alpha.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: bng_alpha.c,v 1.1 2003/10/24 09:17:32 xleroy Exp $ */ +/* $Id: bng_alpha.c 5880 2003-10-24 09:18:01Z xleroy $ */ /* Code specific to the Alpha architecture. */ diff --git a/otherlibs/num/bng_amd64.c b/otherlibs/num/bng_amd64.c index 85ee15e4..00a771af 100644 --- a/otherlibs/num/bng_amd64.c +++ b/otherlibs/num/bng_amd64.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: bng_amd64.c,v 1.1 2003/10/24 09:17:33 xleroy Exp $ */ +/* $Id: bng_amd64.c 5880 2003-10-24 09:18:01Z xleroy $ */ /* Code specific to the AMD x86_64 architecture. */ diff --git a/otherlibs/num/bng_digit.c b/otherlibs/num/bng_digit.c index 0095b439..bf1da7e7 100644 --- a/otherlibs/num/bng_digit.c +++ b/otherlibs/num/bng_digit.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: bng_digit.c,v 1.1 2003/10/24 09:17:33 xleroy Exp $ */ +/* $Id: bng_digit.c 5880 2003-10-24 09:18:01Z xleroy $ */ /**** Generic operations on digits ****/ diff --git a/otherlibs/num/bng_ia32.c b/otherlibs/num/bng_ia32.c index e19e5dbb..35035676 100644 --- a/otherlibs/num/bng_ia32.c +++ b/otherlibs/num/bng_ia32.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: bng_ia32.c,v 1.4 2005/08/13 20:59:37 doligez Exp $ */ +/* $Id: bng_ia32.c 7019 2005-08-13 20:59:37Z doligez $ */ /* Code specific to the Intel IA32 (x86) architecture. */ diff --git a/otherlibs/num/bng_mips.c b/otherlibs/num/bng_mips.c index d49b0333..0ee283e9 100644 --- a/otherlibs/num/bng_mips.c +++ b/otherlibs/num/bng_mips.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: bng_mips.c,v 1.1 2003/10/24 09:17:33 xleroy Exp $ */ +/* $Id: bng_mips.c 5880 2003-10-24 09:18:01Z xleroy $ */ /* Code specific to the MIPS architecture. */ diff --git a/otherlibs/num/bng_ppc.c b/otherlibs/num/bng_ppc.c index 0b4b5c7d..f566539e 100644 --- a/otherlibs/num/bng_ppc.c +++ b/otherlibs/num/bng_ppc.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: bng_ppc.c,v 1.3 2006/05/31 08:16:34 xleroy Exp $ */ +/* $Id: bng_ppc.c 7430 2006-05-31 08:16:34Z xleroy $ */ /* Code specific to the PowerPC architecture. */ diff --git a/otherlibs/num/bng_sparc.c b/otherlibs/num/bng_sparc.c index eb750ae2..55639f01 100644 --- a/otherlibs/num/bng_sparc.c +++ b/otherlibs/num/bng_sparc.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: bng_sparc.c,v 1.1 2003/10/24 09:17:34 xleroy Exp $ */ +/* $Id: bng_sparc.c 5880 2003-10-24 09:18:01Z xleroy $ */ /* Code specific to the SPARC (V8 and above) architecture. */ diff --git a/otherlibs/num/int_misc.ml b/otherlibs/num/int_misc.ml index 1c6f1b74..1560bf16 100644 --- a/otherlibs/num/int_misc.ml +++ b/otherlibs/num/int_misc.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: int_misc.ml,v 1.6 2002/05/27 12:06:49 weis Exp $ *) +(* $Id: int_misc.ml 4845 2002-05-27 12:06:49Z weis $ *) (* Some extra operations on integers *) diff --git a/otherlibs/num/int_misc.mli b/otherlibs/num/int_misc.mli index a7b4e10a..d20c56b0 100644 --- a/otherlibs/num/int_misc.mli +++ b/otherlibs/num/int_misc.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: int_misc.mli,v 1.4 2001/12/07 13:40:15 xleroy Exp $ *) +(* $Id: int_misc.mli 4144 2001-12-07 13:41:02Z xleroy $ *) (* Some extra operations on integers *) diff --git a/otherlibs/num/nat.h b/otherlibs/num/nat.h index d8988c7b..98bee6da 100644 --- a/otherlibs/num/nat.h +++ b/otherlibs/num/nat.h @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: nat.h,v 1.6 2003/10/24 09:17:34 xleroy Exp $ */ +/* $Id: nat.h 5880 2003-10-24 09:18:01Z xleroy $ */ /* Nats are represented as unstructured blocks with tag Custom_tag. */ diff --git a/otherlibs/num/nat.ml b/otherlibs/num/nat.ml index 36401d93..e1e0ae58 100644 --- a/otherlibs/num/nat.ml +++ b/otherlibs/num/nat.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: nat.ml,v 1.16 2008/01/04 13:15:52 xleroy Exp $ *) +(* $Id: nat.ml 8751 2008-01-04 13:15:52Z xleroy $ *) open Int_misc diff --git a/otherlibs/num/nat.mli b/otherlibs/num/nat.mli index 68142037..186239f8 100644 --- a/otherlibs/num/nat.mli +++ b/otherlibs/num/nat.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: nat.mli,v 1.12 2008/01/04 13:15:52 xleroy Exp $ *) +(* $Id: nat.mli 8751 2008-01-04 13:15:52Z xleroy $ *) (* Module [Nat]: operations on natural numbers *) diff --git a/otherlibs/num/nat_stubs.c b/otherlibs/num/nat_stubs.c index 2318ab3d..9c69e231 100644 --- a/otherlibs/num/nat_stubs.c +++ b/otherlibs/num/nat_stubs.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: nat_stubs.c,v 1.18 2008/01/11 16:13:16 doligez Exp $ */ +/* $Id: nat_stubs.c 9320 2009-07-22 15:36:28Z doligez $ */ #include "alloc.h" #include "config.h" @@ -368,14 +368,24 @@ static uintnat deserialize_nat(void * dst) #if defined(ARCH_SIXTYFOUR) && defined(ARCH_BIG_ENDIAN) { uint32 * p; mlsize_t i; - for (i = len, p = dst; i > 0; i -= 2, p += 2) { + for (i = len, p = dst; i > 1; i -= 2, p += 2) { p[1] = deserialize_uint_4(); /* low 32 bits of 64-bit digit */ p[0] = deserialize_uint_4(); /* high 32 bits of 64-bit digit */ } + if (i > 0){ + p[1] = deserialize_uint_4(); /* low 32 bits of 64-bit digit */ + p[0] = 0; /* high 32 bits of 64-bit digit */ + ++ len; + } } #else deserialize_block_4(dst, len); +#if defined(ARCH_SIXTYFOUR) + if (len & 1){ + ((uint32 *) dst)[len] = 0; + ++ len; + } +#endif #endif return len * 4; } - diff --git a/otherlibs/num/num.ml b/otherlibs/num/num.ml index 64eaed0e..e6565e02 100644 --- a/otherlibs/num/num.ml +++ b/otherlibs/num/num.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: num.ml,v 1.8 2008/09/10 16:12:05 weis Exp $ *) +(* $Id: num.ml 9022 2008-09-10 16:12:05Z weis $ *) open Int_misc open Nat diff --git a/otherlibs/num/num.mli b/otherlibs/num/num.mli index cd4d8ea2..88cd094b 100644 --- a/otherlibs/num/num.mli +++ b/otherlibs/num/num.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: num.mli,v 1.8 2001/12/28 23:15:23 guesdon Exp $ *) +(* $Id: num.mli 4199 2001-12-28 23:15:23Z guesdon $ *) (** Operation on arbitrary-precision numbers. diff --git a/otherlibs/num/ratio.mli b/otherlibs/num/ratio.mli index d6c2aff2..672abc34 100644 --- a/otherlibs/num/ratio.mli +++ b/otherlibs/num/ratio.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: ratio.mli,v 1.4 2001/12/07 13:40:16 xleroy Exp $ *) +(* $Id: ratio.mli 4144 2001-12-07 13:41:02Z xleroy $ *) (* Module [Ratio]: operations on rational numbers *) diff --git a/otherlibs/num/test/Makefile b/otherlibs/num/test/Makefile index 92f6a06f..7ee8570f 100644 --- a/otherlibs/num/test/Makefile +++ b/otherlibs/num/test/Makefile @@ -11,7 +11,7 @@ # # ######################################################################### -# $Id: Makefile,v 1.13 2008/09/10 16:02:52 weis Exp $ +# $Id: Makefile 9019 2008-09-10 16:02:52Z weis $ include ../../../config/Makefile diff --git a/otherlibs/num/test/Makefile.nt b/otherlibs/num/test/Makefile.nt index 3cb2e9c7..2858ee21 100644 --- a/otherlibs/num/test/Makefile.nt +++ b/otherlibs/num/test/Makefile.nt @@ -11,7 +11,7 @@ # # ######################################################################### -# $Id: Makefile.nt,v 1.9 2004/04/01 13:10:12 xleroy Exp $ +# $Id: Makefile.nt 6180 2004-04-01 13:10:12Z xleroy $ include ../../../config/Makefile diff --git a/otherlibs/num/test/test_bng.c b/otherlibs/num/test/test_bng.c index 7679f093..2d6a6e80 100644 --- a/otherlibs/num/test/test_bng.c +++ b/otherlibs/num/test/test_bng.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: test_bng.c,v 1.2 2003/11/07 07:59:10 xleroy Exp $ */ +/* $Id: test_bng.c 5900 2003-11-07 07:59:10Z xleroy $ */ /* Test harness for the BNG primitives. Use BigNum as a reference. */ diff --git a/otherlibs/str/.cvsignore b/otherlibs/str/.cvsignore index a37b133d..49c78e58 100644 --- a/otherlibs/str/.cvsignore +++ b/otherlibs/str/.cvsignore @@ -1,3 +1,5 @@ libstr.x *.c.x so_locations +*.so +*.a diff --git a/otherlibs/str/Makefile b/otherlibs/str/Makefile index 37388459..79ce0e57 100644 --- a/otherlibs/str/Makefile +++ b/otherlibs/str/Makefile @@ -11,7 +11,7 @@ # # ######################################################################### -# $Id: Makefile,v 1.35 2007/11/06 15:16:56 frisch Exp $ +# $Id: Makefile 8477 2007-11-06 15:16:56Z frisch $ # Makefile for the str library diff --git a/otherlibs/str/Makefile.nt b/otherlibs/str/Makefile.nt index d99abe21..34340739 100644 --- a/otherlibs/str/Makefile.nt +++ b/otherlibs/str/Makefile.nt @@ -11,7 +11,7 @@ # # ######################################################################### -# $Id: Makefile.nt,v 1.16 2007/11/06 15:16:56 frisch Exp $ +# $Id: Makefile.nt 8477 2007-11-06 15:16:56Z frisch $ # Makefile for the str library diff --git a/otherlibs/str/str.ml b/otherlibs/str/str.ml index a8453529..16832c7d 100644 --- a/otherlibs/str/str.ml +++ b/otherlibs/str/str.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: str.ml,v 1.22.2.1 2008/12/12 08:54:15 xleroy Exp $ *) +(* $Id: str.ml 9157 2008-12-12 08:54:15Z xleroy $ *) (** String utilities *) diff --git a/otherlibs/str/str.mli b/otherlibs/str/str.mli index 03c741d7..89d021e0 100644 --- a/otherlibs/str/str.mli +++ b/otherlibs/str/str.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: str.mli,v 1.24 2005/03/24 17:20:53 doligez Exp $ *) +(* $Id: str.mli 6824 2005-03-24 17:20:54Z doligez $ *) (** Regular expressions and high-level string processing *) diff --git a/otherlibs/str/strstubs.c b/otherlibs/str/strstubs.c index f4148d4c..5c1d8cad 100644 --- a/otherlibs/str/strstubs.c +++ b/otherlibs/str/strstubs.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: strstubs.c,v 1.27 2005/09/22 14:21:50 xleroy Exp $ */ +/* $Id: strstubs.c 7064 2005-09-22 14:21:50Z xleroy $ */ #include #include diff --git a/otherlibs/systhreads/.cvsignore b/otherlibs/systhreads/.cvsignore index b175e39d..1f1e6a38 100644 --- a/otherlibs/systhreads/.cvsignore +++ b/otherlibs/systhreads/.cvsignore @@ -1,3 +1,5 @@ *.x thread.ml so_locations +*.so +*.a diff --git a/otherlibs/systhreads/Makefile b/otherlibs/systhreads/Makefile index 2a768573..7887f03b 100644 --- a/otherlibs/systhreads/Makefile +++ b/otherlibs/systhreads/Makefile @@ -11,7 +11,7 @@ # # ######################################################################### -# $Id: Makefile,v 1.44 2008/07/15 15:31:32 frisch Exp $ +# $Id: Makefile 8916 2008-07-15 15:31:32Z frisch $ include ../../config/Makefile diff --git a/otherlibs/systhreads/Makefile.nt b/otherlibs/systhreads/Makefile.nt index b762ec9c..c9c0129a 100644 --- a/otherlibs/systhreads/Makefile.nt +++ b/otherlibs/systhreads/Makefile.nt @@ -11,7 +11,7 @@ # # ######################################################################### -# $Id: Makefile.nt,v 1.31 2007/11/06 15:16:56 frisch Exp $ +# $Id: Makefile.nt 8477 2007-11-06 15:16:56Z frisch $ include ../../config/Makefile diff --git a/otherlibs/systhreads/condition.ml b/otherlibs/systhreads/condition.ml index 08f64568..48055696 100644 --- a/otherlibs/systhreads/condition.ml +++ b/otherlibs/systhreads/condition.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: condition.ml,v 1.6 2001/12/07 13:40:18 xleroy Exp $ *) +(* $Id: condition.ml 4144 2001-12-07 13:41:02Z xleroy $ *) type t external create: unit -> t = "caml_condition_new" diff --git a/otherlibs/systhreads/condition.mli b/otherlibs/systhreads/condition.mli index 3edd9029..98dce638 100644 --- a/otherlibs/systhreads/condition.mli +++ b/otherlibs/systhreads/condition.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: condition.mli,v 1.6 2001/12/07 13:40:19 xleroy Exp $ *) +(* $Id: condition.mli 4144 2001-12-07 13:41:02Z xleroy $ *) (** Condition variables to synchronize between threads. diff --git a/otherlibs/systhreads/event.ml b/otherlibs/systhreads/event.ml index 174160c1..8d4a1c4e 100644 --- a/otherlibs/systhreads/event.ml +++ b/otherlibs/systhreads/event.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: event.ml,v 1.9 2001/12/07 13:40:19 xleroy Exp $ *) +(* $Id: event.ml 4144 2001-12-07 13:41:02Z xleroy $ *) (* Events *) type 'a basic_event = diff --git a/otherlibs/systhreads/event.mli b/otherlibs/systhreads/event.mli index 672fb78f..882ad889 100644 --- a/otherlibs/systhreads/event.mli +++ b/otherlibs/systhreads/event.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: event.mli,v 1.10 2006/01/12 03:24:56 garrigue Exp $ *) +(* $Id: event.mli 7322 2006-01-12 03:24:56Z garrigue $ *) (** First-class synchronous communication. diff --git a/otherlibs/systhreads/mutex.ml b/otherlibs/systhreads/mutex.ml index 4933f458..a7d1795a 100644 --- a/otherlibs/systhreads/mutex.ml +++ b/otherlibs/systhreads/mutex.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: mutex.ml,v 1.4 2001/12/07 13:40:19 xleroy Exp $ *) +(* $Id: mutex.ml 4144 2001-12-07 13:41:02Z xleroy $ *) type t external create: unit -> t = "caml_mutex_new" diff --git a/otherlibs/systhreads/mutex.mli b/otherlibs/systhreads/mutex.mli index 33bccae3..83c11bba 100644 --- a/otherlibs/systhreads/mutex.mli +++ b/otherlibs/systhreads/mutex.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: mutex.mli,v 1.6 2001/12/07 13:40:19 xleroy Exp $ *) +(* $Id: mutex.mli 4144 2001-12-07 13:41:02Z xleroy $ *) (** Locks for mutual exclusion. diff --git a/otherlibs/systhreads/posix.c b/otherlibs/systhreads/posix.c index 89a0b524..33f3b91e 100644 --- a/otherlibs/systhreads/posix.c +++ b/otherlibs/systhreads/posix.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: posix.c,v 1.58.2.2 2009/03/28 17:35:59 xleroy Exp $ */ +/* $Id: posix.c 9201 2009-03-28 17:35:59Z xleroy $ */ /* Thread interface for POSIX 1003.1c threads */ diff --git a/otherlibs/systhreads/thread.mli b/otherlibs/systhreads/thread.mli index 85fb1606..a7a81bbb 100644 --- a/otherlibs/systhreads/thread.mli +++ b/otherlibs/systhreads/thread.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: thread.mli,v 1.21 2008/01/11 16:13:16 doligez Exp $ *) +(* $Id: thread.mli 8768 2008-01-11 16:13:18Z doligez $ *) (** Lightweight threads for Posix [1003.1c] and Win32. *) diff --git a/otherlibs/systhreads/threadUnix.ml b/otherlibs/systhreads/threadUnix.ml index b83f5975..5b3fcfa5 100644 --- a/otherlibs/systhreads/threadUnix.ml +++ b/otherlibs/systhreads/threadUnix.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: threadUnix.ml,v 1.8 2001/12/07 13:40:20 xleroy Exp $ *) +(* $Id: threadUnix.ml 4144 2001-12-07 13:41:02Z xleroy $ *) (* Module [ThreadUnix]: thread-compatible system calls *) diff --git a/otherlibs/systhreads/threadUnix.mli b/otherlibs/systhreads/threadUnix.mli index fb1e67ac..bd03bad6 100644 --- a/otherlibs/systhreads/threadUnix.mli +++ b/otherlibs/systhreads/threadUnix.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: threadUnix.mli,v 1.19 2002/06/26 09:48:00 xleroy Exp $ *) +(* $Id: threadUnix.mli 4951 2002-06-26 09:48:00Z xleroy $ *) (** Thread-compatible system calls. diff --git a/otherlibs/systhreads/thread_posix.ml b/otherlibs/systhreads/thread_posix.ml index e362fa30..7c017975 100644 --- a/otherlibs/systhreads/thread_posix.ml +++ b/otherlibs/systhreads/thread_posix.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: thread_posix.ml,v 1.10 2005/07/31 12:32:41 xleroy Exp $ *) +(* $Id: thread_posix.ml 7000 2005-07-31 12:32:41Z xleroy $ *) (* User-level threads *) diff --git a/otherlibs/systhreads/thread_win32.ml b/otherlibs/systhreads/thread_win32.ml index 008fa068..6cd8690e 100644 --- a/otherlibs/systhreads/thread_win32.ml +++ b/otherlibs/systhreads/thread_win32.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: thread_win32.ml,v 1.9 2005/07/31 12:32:41 xleroy Exp $ *) +(* $Id: thread_win32.ml 7000 2005-07-31 12:32:41Z xleroy $ *) (* User-level threads *) diff --git a/otherlibs/systhreads/win32.c b/otherlibs/systhreads/win32.c index a84122cf..3875e4a6 100644 --- a/otherlibs/systhreads/win32.c +++ b/otherlibs/systhreads/win32.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: win32.c,v 1.45 2007/10/31 09:12:29 xleroy Exp $ */ +/* $Id: win32.c 8468 2007-10-31 09:12:29Z xleroy $ */ /* Thread interface for Win32 threads */ diff --git a/otherlibs/threads/.cvsignore b/otherlibs/threads/.cvsignore index fb2df562..c17596c7 100644 --- a/otherlibs/threads/.cvsignore +++ b/otherlibs/threads/.cvsignore @@ -1,3 +1,5 @@ marshal.mli pervasives.mli unix.mli +*.so +*.a diff --git a/otherlibs/threads/Makefile b/otherlibs/threads/Makefile index 6453f02d..94128849 100644 --- a/otherlibs/threads/Makefile +++ b/otherlibs/threads/Makefile @@ -11,7 +11,7 @@ # # ######################################################################### -# $Id: Makefile,v 1.61.2.1 2008/10/08 13:07:13 doligez Exp $ +# $Id: Makefile 9079 2008-10-08 13:09:39Z doligez $ include ../../config/Makefile diff --git a/otherlibs/threads/condition.ml b/otherlibs/threads/condition.ml index d6c6d426..cb6b05c8 100644 --- a/otherlibs/threads/condition.ml +++ b/otherlibs/threads/condition.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: condition.ml,v 1.8 2001/12/07 13:40:21 xleroy Exp $ *) +(* $Id: condition.ml 4144 2001-12-07 13:41:02Z xleroy $ *) type t = { mutable waiting: Thread.t list } diff --git a/otherlibs/threads/condition.mli b/otherlibs/threads/condition.mli index c54a3c27..98dce638 100644 --- a/otherlibs/threads/condition.mli +++ b/otherlibs/threads/condition.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: condition.mli,v 1.13 2001/12/07 13:40:21 xleroy Exp $ *) +(* $Id: condition.mli 4144 2001-12-07 13:41:02Z xleroy $ *) (** Condition variables to synchronize between threads. diff --git a/otherlibs/threads/event.ml b/otherlibs/threads/event.ml index 7fb5d53f..8d4a1c4e 100644 --- a/otherlibs/threads/event.ml +++ b/otherlibs/threads/event.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: event.ml,v 1.14 2001/12/07 13:40:21 xleroy Exp $ *) +(* $Id: event.ml 4144 2001-12-07 13:41:02Z xleroy $ *) (* Events *) type 'a basic_event = diff --git a/otherlibs/threads/event.mli b/otherlibs/threads/event.mli index 07e1bc90..882ad889 100644 --- a/otherlibs/threads/event.mli +++ b/otherlibs/threads/event.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: event.mli,v 1.15 2006/01/12 03:24:56 garrigue Exp $ *) +(* $Id: event.mli 7322 2006-01-12 03:24:56Z garrigue $ *) (** First-class synchronous communication. diff --git a/otherlibs/threads/marshal.ml b/otherlibs/threads/marshal.ml index 59f4cff5..90fc903b 100644 --- a/otherlibs/threads/marshal.ml +++ b/otherlibs/threads/marshal.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: marshal.ml,v 1.9 2004/05/27 15:28:05 doligez Exp $ *) +(* $Id: marshal.ml 6338 2004-05-27 15:28:05Z doligez $ *) type extern_flags = No_sharing diff --git a/otherlibs/threads/mutex.ml b/otherlibs/threads/mutex.ml index 3522a9d8..5b2e189b 100644 --- a/otherlibs/threads/mutex.ml +++ b/otherlibs/threads/mutex.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: mutex.ml,v 1.8 2001/12/07 13:40:22 xleroy Exp $ *) +(* $Id: mutex.ml 4144 2001-12-07 13:41:02Z xleroy $ *) type t = { mutable locked: bool; mutable waiting: Thread.t list } diff --git a/otherlibs/threads/mutex.mli b/otherlibs/threads/mutex.mli index 1ce82697..83c11bba 100644 --- a/otherlibs/threads/mutex.mli +++ b/otherlibs/threads/mutex.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: mutex.mli,v 1.11 2001/12/07 13:40:22 xleroy Exp $ *) +(* $Id: mutex.mli 4144 2001-12-07 13:41:02Z xleroy $ *) (** Locks for mutual exclusion. diff --git a/otherlibs/threads/pervasives.ml b/otherlibs/threads/pervasives.ml index cb8593eb..98ae5df5 100644 --- a/otherlibs/threads/pervasives.ml +++ b/otherlibs/threads/pervasives.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: pervasives.ml,v 1.52 2007/02/25 12:37:30 xleroy Exp $ *) +(* $Id: pervasives.ml 7918 2007-02-25 12:37:30Z xleroy $ *) (* Same as ../../stdlib/pervasives.ml, except that I/O functions have been redefined to not block the whole process, but only the calling diff --git a/otherlibs/threads/scheduler.c b/otherlibs/threads/scheduler.c index 36111313..0580b2d3 100644 --- a/otherlibs/threads/scheduler.c +++ b/otherlibs/threads/scheduler.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: scheduler.c,v 1.60 2005/09/22 14:21:50 xleroy Exp $ */ +/* $Id: scheduler.c 7064 2005-09-22 14:21:50Z xleroy $ */ /* The thread scheduler */ diff --git a/otherlibs/threads/thread.ml b/otherlibs/threads/thread.ml index 611cb069..c7df37cb 100644 --- a/otherlibs/threads/thread.ml +++ b/otherlibs/threads/thread.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: thread.ml,v 1.23 2003/03/20 16:23:04 xleroy Exp $ *) +(* $Id: thread.ml 5445 2003-03-20 16:23:04Z xleroy $ *) (* User-level threads *) diff --git a/otherlibs/threads/thread.mli b/otherlibs/threads/thread.mli index da687a53..4ea8e35d 100644 --- a/otherlibs/threads/thread.mli +++ b/otherlibs/threads/thread.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: thread.mli,v 1.28 2004/07/13 12:25:13 xleroy Exp $ *) +(* $Id: thread.mli 6553 2004-07-13 12:25:21Z xleroy $ *) (** Lightweight threads. *) diff --git a/otherlibs/threads/threadUnix.ml b/otherlibs/threads/threadUnix.ml index a2d697a8..9831db7e 100644 --- a/otherlibs/threads/threadUnix.ml +++ b/otherlibs/threads/threadUnix.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: threadUnix.ml,v 1.19 2004/07/13 12:25:13 xleroy Exp $ *) +(* $Id: threadUnix.ml 6553 2004-07-13 12:25:21Z xleroy $ *) (* Module [ThreadUnix]: thread-compatible system calls *) diff --git a/otherlibs/threads/threadUnix.mli b/otherlibs/threads/threadUnix.mli index 4bf00c93..0d45884b 100644 --- a/otherlibs/threads/threadUnix.mli +++ b/otherlibs/threads/threadUnix.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: threadUnix.mli,v 1.22 2004/07/13 12:25:14 xleroy Exp $ *) +(* $Id: threadUnix.mli 6553 2004-07-13 12:25:21Z xleroy $ *) (** Thread-compatible system calls. diff --git a/otherlibs/threads/unix.ml b/otherlibs/threads/unix.ml index 247cb109..6343b488 100644 --- a/otherlibs/threads/unix.ml +++ b/otherlibs/threads/unix.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: unix.ml,v 1.22 2008/08/01 16:29:44 mauny Exp $ *) +(* $Id: unix.ml 8972 2008-08-01 16:29:44Z mauny $ *) (* An alternate implementation of the Unix module from ../unix which is safe in conjunction with bytecode threads. *) diff --git a/otherlibs/unix/.cvsignore b/otherlibs/unix/.cvsignore index 074dd28a..29fea472 100644 --- a/otherlibs/unix/.cvsignore +++ b/otherlibs/unix/.cvsignore @@ -1 +1,3 @@ so_locations +*.so +*.a diff --git a/otherlibs/unix/Makefile b/otherlibs/unix/Makefile index 8b085196..d7211e88 100644 --- a/otherlibs/unix/Makefile +++ b/otherlibs/unix/Makefile @@ -11,7 +11,7 @@ # # ######################################################################### -# $Id: Makefile,v 1.46 2007/11/06 15:16:56 frisch Exp $ +# $Id: Makefile 8477 2007-11-06 15:16:56Z frisch $ # Makefile for the Unix interface library diff --git a/otherlibs/unix/accept.c b/otherlibs/unix/accept.c index 26fe03bb..64152a52 100644 --- a/otherlibs/unix/accept.c +++ b/otherlibs/unix/accept.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: accept.c,v 1.13 2005/03/24 17:20:53 doligez Exp $ */ +/* $Id: accept.c 6824 2005-03-24 17:20:54Z doligez $ */ #include #include diff --git a/otherlibs/unix/access.c b/otherlibs/unix/access.c index 52d3c7c0..f0c07ac7 100644 --- a/otherlibs/unix/access.c +++ b/otherlibs/unix/access.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: access.c,v 1.12 2008/01/11 16:13:16 doligez Exp $ */ +/* $Id: access.c 8768 2008-01-11 16:13:18Z doligez $ */ #include #include diff --git a/otherlibs/unix/addrofstr.c b/otherlibs/unix/addrofstr.c index ab2985f7..2fb125b9 100644 --- a/otherlibs/unix/addrofstr.c +++ b/otherlibs/unix/addrofstr.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: addrofstr.c,v 1.11 2004/04/09 13:25:20 xleroy Exp $ */ +/* $Id: addrofstr.c 6193 2004-04-09 13:25:23Z xleroy $ */ #include #include diff --git a/otherlibs/unix/alarm.c b/otherlibs/unix/alarm.c index 75a5d512..2cf2d019 100644 --- a/otherlibs/unix/alarm.c +++ b/otherlibs/unix/alarm.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: alarm.c,v 1.8 2005/03/24 17:20:53 doligez Exp $ */ +/* $Id: alarm.c 6824 2005-03-24 17:20:54Z doligez $ */ #include #include "unixsupport.h" diff --git a/otherlibs/unix/bind.c b/otherlibs/unix/bind.c index ccfa32a0..c02c6883 100644 --- a/otherlibs/unix/bind.c +++ b/otherlibs/unix/bind.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: bind.c,v 1.10 2005/03/24 17:20:53 doligez Exp $ */ +/* $Id: bind.c 6824 2005-03-24 17:20:54Z doligez $ */ #include #include diff --git a/otherlibs/unix/chdir.c b/otherlibs/unix/chdir.c index 4b66cc57..520891ae 100644 --- a/otherlibs/unix/chdir.c +++ b/otherlibs/unix/chdir.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: chdir.c,v 1.8 2001/12/07 13:40:24 xleroy Exp $ */ +/* $Id: chdir.c 4144 2001-12-07 13:41:02Z xleroy $ */ #include #include "unixsupport.h" diff --git a/otherlibs/unix/chmod.c b/otherlibs/unix/chmod.c index a85db5e3..443d54b6 100644 --- a/otherlibs/unix/chmod.c +++ b/otherlibs/unix/chmod.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: chmod.c,v 1.9 2001/12/07 13:40:26 xleroy Exp $ */ +/* $Id: chmod.c 4144 2001-12-07 13:41:02Z xleroy $ */ #include #include diff --git a/otherlibs/unix/chown.c b/otherlibs/unix/chown.c index 0ef4eada..15d89d5e 100644 --- a/otherlibs/unix/chown.c +++ b/otherlibs/unix/chown.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: chown.c,v 1.8 2001/12/07 13:40:26 xleroy Exp $ */ +/* $Id: chown.c 4144 2001-12-07 13:41:02Z xleroy $ */ #include #include "unixsupport.h" diff --git a/otherlibs/unix/chroot.c b/otherlibs/unix/chroot.c index 69e6b427..2ad88d44 100644 --- a/otherlibs/unix/chroot.c +++ b/otherlibs/unix/chroot.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: chroot.c,v 1.8 2001/12/07 13:40:26 xleroy Exp $ */ +/* $Id: chroot.c 4144 2001-12-07 13:41:02Z xleroy $ */ #include #include "unixsupport.h" diff --git a/otherlibs/unix/close.c b/otherlibs/unix/close.c index 17f7344e..043d3c74 100644 --- a/otherlibs/unix/close.c +++ b/otherlibs/unix/close.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: close.c,v 1.10 2001/12/07 13:40:26 xleroy Exp $ */ +/* $Id: close.c 4144 2001-12-07 13:41:02Z xleroy $ */ #include #include "unixsupport.h" diff --git a/otherlibs/unix/closedir.c b/otherlibs/unix/closedir.c index 1cb60553..a0ac5191 100644 --- a/otherlibs/unix/closedir.c +++ b/otherlibs/unix/closedir.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: closedir.c,v 1.9 2004/02/14 10:21:22 xleroy Exp $ */ +/* $Id: closedir.c 6113 2004-02-14 10:21:23Z xleroy $ */ #include #include "unixsupport.h" diff --git a/otherlibs/unix/connect.c b/otherlibs/unix/connect.c index 8c10253a..de0008ab 100644 --- a/otherlibs/unix/connect.c +++ b/otherlibs/unix/connect.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: connect.c,v 1.12 2005/03/24 17:20:53 doligez Exp $ */ +/* $Id: connect.c 6824 2005-03-24 17:20:54Z doligez $ */ #include #include diff --git a/otherlibs/unix/cst2constr.c b/otherlibs/unix/cst2constr.c index e85d9c9f..782ceed1 100644 --- a/otherlibs/unix/cst2constr.c +++ b/otherlibs/unix/cst2constr.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: cst2constr.c,v 1.7 2001/12/07 13:40:26 xleroy Exp $ */ +/* $Id: cst2constr.c 4144 2001-12-07 13:41:02Z xleroy $ */ #include #include diff --git a/otherlibs/unix/cst2constr.h b/otherlibs/unix/cst2constr.h index c6785e16..d404b007 100644 --- a/otherlibs/unix/cst2constr.h +++ b/otherlibs/unix/cst2constr.h @@ -11,6 +11,6 @@ /* */ /***********************************************************************/ -/* $Id: cst2constr.h,v 1.7 2004/04/09 13:25:21 xleroy Exp $ */ +/* $Id: cst2constr.h 6193 2004-04-09 13:25:23Z xleroy $ */ extern value cst_to_constr(int n, int * tbl, int size, int deflt); diff --git a/otherlibs/unix/cstringv.c b/otherlibs/unix/cstringv.c index a823f4f9..e4438b19 100644 --- a/otherlibs/unix/cstringv.c +++ b/otherlibs/unix/cstringv.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: cstringv.c,v 1.7 2001/12/07 13:40:27 xleroy Exp $ */ +/* $Id: cstringv.c 4144 2001-12-07 13:41:02Z xleroy $ */ #include #include diff --git a/otherlibs/unix/dup.c b/otherlibs/unix/dup.c index 5829d814..2a2e0099 100644 --- a/otherlibs/unix/dup.c +++ b/otherlibs/unix/dup.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: dup.c,v 1.8 2001/12/07 13:40:27 xleroy Exp $ */ +/* $Id: dup.c 4144 2001-12-07 13:41:02Z xleroy $ */ #include #include "unixsupport.h" diff --git a/otherlibs/unix/dup2.c b/otherlibs/unix/dup2.c index 8b4808f8..dec473e7 100644 --- a/otherlibs/unix/dup2.c +++ b/otherlibs/unix/dup2.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: dup2.c,v 1.9 2001/12/07 13:40:27 xleroy Exp $ */ +/* $Id: dup2.c 4144 2001-12-07 13:41:02Z xleroy $ */ #include #include "unixsupport.h" diff --git a/otherlibs/unix/envir.c b/otherlibs/unix/envir.c index 29932c53..b0291e88 100644 --- a/otherlibs/unix/envir.c +++ b/otherlibs/unix/envir.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: envir.c,v 1.10 2005/03/24 17:20:53 doligez Exp $ */ +/* $Id: envir.c 6824 2005-03-24 17:20:54Z doligez $ */ #include #include diff --git a/otherlibs/unix/errmsg.c b/otherlibs/unix/errmsg.c index a642779e..d1cd5a6e 100644 --- a/otherlibs/unix/errmsg.c +++ b/otherlibs/unix/errmsg.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: errmsg.c,v 1.12 2004/05/23 15:53:50 xleroy Exp $ */ +/* $Id: errmsg.c 6315 2004-05-23 15:53:50Z xleroy $ */ #include #include diff --git a/otherlibs/unix/execv.c b/otherlibs/unix/execv.c index 30163cd0..4ccc7887 100644 --- a/otherlibs/unix/execv.c +++ b/otherlibs/unix/execv.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: execv.c,v 1.8 2001/12/07 13:40:27 xleroy Exp $ */ +/* $Id: execv.c 4144 2001-12-07 13:41:02Z xleroy $ */ #include #include diff --git a/otherlibs/unix/execve.c b/otherlibs/unix/execve.c index a8d8101d..9aad005f 100644 --- a/otherlibs/unix/execve.c +++ b/otherlibs/unix/execve.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: execve.c,v 1.8 2001/12/07 13:40:27 xleroy Exp $ */ +/* $Id: execve.c 4144 2001-12-07 13:41:02Z xleroy $ */ #include #include diff --git a/otherlibs/unix/execvp.c b/otherlibs/unix/execvp.c index e2f64895..04555a73 100644 --- a/otherlibs/unix/execvp.c +++ b/otherlibs/unix/execvp.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: execvp.c,v 1.8 2001/12/07 13:40:27 xleroy Exp $ */ +/* $Id: execvp.c 4144 2001-12-07 13:41:02Z xleroy $ */ #include #include diff --git a/otherlibs/unix/exit.c b/otherlibs/unix/exit.c index 37fdab6d..21e2217e 100644 --- a/otherlibs/unix/exit.c +++ b/otherlibs/unix/exit.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: exit.c,v 1.9 2001/12/07 13:40:28 xleroy Exp $ */ +/* $Id: exit.c 4144 2001-12-07 13:41:02Z xleroy $ */ #include #include "unixsupport.h" diff --git a/otherlibs/unix/fchmod.c b/otherlibs/unix/fchmod.c index 857ad47f..76111409 100644 --- a/otherlibs/unix/fchmod.c +++ b/otherlibs/unix/fchmod.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: fchmod.c,v 1.10 2005/03/24 17:20:53 doligez Exp $ */ +/* $Id: fchmod.c 6824 2005-03-24 17:20:54Z doligez $ */ #include #include diff --git a/otherlibs/unix/fchown.c b/otherlibs/unix/fchown.c index e2e5cf6b..c2edb06c 100644 --- a/otherlibs/unix/fchown.c +++ b/otherlibs/unix/fchown.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: fchown.c,v 1.9 2005/03/24 17:20:53 doligez Exp $ */ +/* $Id: fchown.c 6824 2005-03-24 17:20:54Z doligez $ */ #include #include diff --git a/otherlibs/unix/fcntl.c b/otherlibs/unix/fcntl.c index b020b5ab..9cb6dca2 100644 --- a/otherlibs/unix/fcntl.c +++ b/otherlibs/unix/fcntl.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: fcntl.c,v 1.12 2005/03/24 17:20:53 doligez Exp $ */ +/* $Id: fcntl.c 6824 2005-03-24 17:20:54Z doligez $ */ #include #include diff --git a/otherlibs/unix/fork.c b/otherlibs/unix/fork.c index 8e6828fe..d4f3dc13 100644 --- a/otherlibs/unix/fork.c +++ b/otherlibs/unix/fork.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: fork.c,v 1.8 2001/12/07 13:40:28 xleroy Exp $ */ +/* $Id: fork.c 4144 2001-12-07 13:41:02Z xleroy $ */ #include #include "unixsupport.h" diff --git a/otherlibs/unix/ftruncate.c b/otherlibs/unix/ftruncate.c index 8830ad73..51560cc3 100644 --- a/otherlibs/unix/ftruncate.c +++ b/otherlibs/unix/ftruncate.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: ftruncate.c,v 1.11 2007/02/09 13:31:15 doligez Exp $ */ +/* $Id: ftruncate.c 7849 2007-02-09 13:31:15Z doligez $ */ #include #include diff --git a/otherlibs/unix/getaddrinfo.c b/otherlibs/unix/getaddrinfo.c index fb5ecd81..e390d18b 100644 --- a/otherlibs/unix/getaddrinfo.c +++ b/otherlibs/unix/getaddrinfo.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: getaddrinfo.c,v 1.3 2005/08/13 20:59:37 doligez Exp $ */ +/* $Id: getaddrinfo.c 7019 2005-08-13 20:59:37Z doligez $ */ #include #include diff --git a/otherlibs/unix/getcwd.c b/otherlibs/unix/getcwd.c index 9826c10b..a8c5b99b 100644 --- a/otherlibs/unix/getcwd.c +++ b/otherlibs/unix/getcwd.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: getcwd.c,v 1.15 2005/03/24 17:20:53 doligez Exp $ */ +/* $Id: getcwd.c 6824 2005-03-24 17:20:54Z doligez $ */ #include #include diff --git a/otherlibs/unix/getegid.c b/otherlibs/unix/getegid.c index a5e4daac..c76544bf 100644 --- a/otherlibs/unix/getegid.c +++ b/otherlibs/unix/getegid.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: getegid.c,v 1.9 2005/03/24 17:20:53 doligez Exp $ */ +/* $Id: getegid.c 6824 2005-03-24 17:20:54Z doligez $ */ #include #include "unixsupport.h" diff --git a/otherlibs/unix/geteuid.c b/otherlibs/unix/geteuid.c index f535f643..7b5fe2b2 100644 --- a/otherlibs/unix/geteuid.c +++ b/otherlibs/unix/geteuid.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: geteuid.c,v 1.9 2005/03/24 17:20:53 doligez Exp $ */ +/* $Id: geteuid.c 6824 2005-03-24 17:20:54Z doligez $ */ #include #include "unixsupport.h" diff --git a/otherlibs/unix/getgid.c b/otherlibs/unix/getgid.c index ff544b45..d2f8f4ba 100644 --- a/otherlibs/unix/getgid.c +++ b/otherlibs/unix/getgid.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: getgid.c,v 1.9 2005/03/24 17:20:53 doligez Exp $ */ +/* $Id: getgid.c 6824 2005-03-24 17:20:54Z doligez $ */ #include #include "unixsupport.h" diff --git a/otherlibs/unix/getgr.c b/otherlibs/unix/getgr.c index 62fb8ee6..1c61da11 100644 --- a/otherlibs/unix/getgr.c +++ b/otherlibs/unix/getgr.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: getgr.c,v 1.12 2001/12/07 13:40:29 xleroy Exp $ */ +/* $Id: getgr.c 4144 2001-12-07 13:41:02Z xleroy $ */ #include #include diff --git a/otherlibs/unix/getgroups.c b/otherlibs/unix/getgroups.c index ee733f43..ed07c8c6 100644 --- a/otherlibs/unix/getgroups.c +++ b/otherlibs/unix/getgroups.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: getgroups.c,v 1.11 2005/03/24 17:20:53 doligez Exp $ */ +/* $Id: getgroups.c 6824 2005-03-24 17:20:54Z doligez $ */ #include #include diff --git a/otherlibs/unix/gethost.c b/otherlibs/unix/gethost.c index e5be2594..714b5a7e 100644 --- a/otherlibs/unix/gethost.c +++ b/otherlibs/unix/gethost.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: gethost.c,v 1.27 2006/09/20 11:14:37 doligez Exp $ */ +/* $Id: gethost.c 7619 2006-09-20 11:14:37Z doligez $ */ #include #include diff --git a/otherlibs/unix/gethostname.c b/otherlibs/unix/gethostname.c index 9593f950..9f8c7c09 100644 --- a/otherlibs/unix/gethostname.c +++ b/otherlibs/unix/gethostname.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: gethostname.c,v 1.11 2005/03/24 17:20:53 doligez Exp $ */ +/* $Id: gethostname.c 6824 2005-03-24 17:20:54Z doligez $ */ #include #include diff --git a/otherlibs/unix/getlogin.c b/otherlibs/unix/getlogin.c index c0adb59f..afd3e2c8 100644 --- a/otherlibs/unix/getlogin.c +++ b/otherlibs/unix/getlogin.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: getlogin.c,v 1.9 2005/03/24 17:20:53 doligez Exp $ */ +/* $Id: getlogin.c 6824 2005-03-24 17:20:54Z doligez $ */ #include #include diff --git a/otherlibs/unix/getnameinfo.c b/otherlibs/unix/getnameinfo.c index 20742a04..8a49909e 100644 --- a/otherlibs/unix/getnameinfo.c +++ b/otherlibs/unix/getnameinfo.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: getnameinfo.c,v 1.2 2005/03/24 17:20:53 doligez Exp $ */ +/* $Id: getnameinfo.c 6824 2005-03-24 17:20:54Z doligez $ */ #include #include diff --git a/otherlibs/unix/getpeername.c b/otherlibs/unix/getpeername.c index 6985f0fb..e2d3463a 100644 --- a/otherlibs/unix/getpeername.c +++ b/otherlibs/unix/getpeername.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: getpeername.c,v 1.11 2005/03/24 17:20:53 doligez Exp $ */ +/* $Id: getpeername.c 6824 2005-03-24 17:20:54Z doligez $ */ #include #include diff --git a/otherlibs/unix/getpid.c b/otherlibs/unix/getpid.c index 01ab422b..891cc83f 100644 --- a/otherlibs/unix/getpid.c +++ b/otherlibs/unix/getpid.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: getpid.c,v 1.9 2005/03/24 17:20:53 doligez Exp $ */ +/* $Id: getpid.c 6824 2005-03-24 17:20:54Z doligez $ */ #include #include "unixsupport.h" diff --git a/otherlibs/unix/getppid.c b/otherlibs/unix/getppid.c index af798ecb..511e3f6d 100644 --- a/otherlibs/unix/getppid.c +++ b/otherlibs/unix/getppid.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: getppid.c,v 1.9 2005/03/24 17:20:53 doligez Exp $ */ +/* $Id: getppid.c 6824 2005-03-24 17:20:54Z doligez $ */ #include #include "unixsupport.h" diff --git a/otherlibs/unix/getproto.c b/otherlibs/unix/getproto.c index 73907505..696cb34e 100644 --- a/otherlibs/unix/getproto.c +++ b/otherlibs/unix/getproto.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: getproto.c,v 1.13 2005/03/24 17:20:53 doligez Exp $ */ +/* $Id: getproto.c 6824 2005-03-24 17:20:54Z doligez $ */ #include #include diff --git a/otherlibs/unix/getpw.c b/otherlibs/unix/getpw.c index 5aa9f6cb..d250cb8f 100644 --- a/otherlibs/unix/getpw.c +++ b/otherlibs/unix/getpw.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: getpw.c,v 1.12 2001/12/07 13:40:30 xleroy Exp $ */ +/* $Id: getpw.c 4144 2001-12-07 13:41:02Z xleroy $ */ #include #include diff --git a/otherlibs/unix/getserv.c b/otherlibs/unix/getserv.c index bec48ceb..55e13444 100644 --- a/otherlibs/unix/getserv.c +++ b/otherlibs/unix/getserv.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: getserv.c,v 1.14 2005/03/24 17:20:53 doligez Exp $ */ +/* $Id: getserv.c 6824 2005-03-24 17:20:54Z doligez $ */ #include #include diff --git a/otherlibs/unix/getsockname.c b/otherlibs/unix/getsockname.c index 5d93af7f..263cdd90 100644 --- a/otherlibs/unix/getsockname.c +++ b/otherlibs/unix/getsockname.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: getsockname.c,v 1.10 2005/03/24 17:20:53 doligez Exp $ */ +/* $Id: getsockname.c 6824 2005-03-24 17:20:54Z doligez $ */ #include #include diff --git a/otherlibs/unix/gettimeofday.c b/otherlibs/unix/gettimeofday.c index 6b6ea9d5..0575b2b2 100644 --- a/otherlibs/unix/gettimeofday.c +++ b/otherlibs/unix/gettimeofday.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: gettimeofday.c,v 1.8 2005/03/24 17:20:53 doligez Exp $ */ +/* $Id: gettimeofday.c 6824 2005-03-24 17:20:54Z doligez $ */ #include #include diff --git a/otherlibs/unix/getuid.c b/otherlibs/unix/getuid.c index 9acbc9af..a6f0efae 100644 --- a/otherlibs/unix/getuid.c +++ b/otherlibs/unix/getuid.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: getuid.c,v 1.9 2005/03/24 17:20:53 doligez Exp $ */ +/* $Id: getuid.c 6824 2005-03-24 17:20:54Z doligez $ */ #include #include "unixsupport.h" diff --git a/otherlibs/unix/gmtime.c b/otherlibs/unix/gmtime.c index b6d2091d..701a6fe3 100644 --- a/otherlibs/unix/gmtime.c +++ b/otherlibs/unix/gmtime.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: gmtime.c,v 1.17 2005/03/24 17:20:53 doligez Exp $ */ +/* $Id: gmtime.c 6824 2005-03-24 17:20:54Z doligez $ */ #include #include diff --git a/otherlibs/unix/isatty.c b/otherlibs/unix/isatty.c index 9d651aad..3b913bfd 100644 --- a/otherlibs/unix/isatty.c +++ b/otherlibs/unix/isatty.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: isatty.c,v 1.1 2006/09/21 13:54:26 xleroy Exp $ */ +/* $Id: isatty.c 7632 2006-09-21 13:54:26Z xleroy $ */ #include #include "unixsupport.h" diff --git a/otherlibs/unix/itimer.c b/otherlibs/unix/itimer.c index 4b96214d..f6ecb8b3 100644 --- a/otherlibs/unix/itimer.c +++ b/otherlibs/unix/itimer.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: itimer.c,v 1.14 2005/03/24 17:20:53 doligez Exp $ */ +/* $Id: itimer.c 6824 2005-03-24 17:20:54Z doligez $ */ #include #include diff --git a/otherlibs/unix/kill.c b/otherlibs/unix/kill.c index 0a08f450..78956d48 100644 --- a/otherlibs/unix/kill.c +++ b/otherlibs/unix/kill.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: kill.c,v 1.10 2001/12/07 13:40:31 xleroy Exp $ */ +/* $Id: kill.c 4144 2001-12-07 13:41:02Z xleroy $ */ #include #include diff --git a/otherlibs/unix/link.c b/otherlibs/unix/link.c index 81e78c0c..d24da919 100644 --- a/otherlibs/unix/link.c +++ b/otherlibs/unix/link.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: link.c,v 1.8 2001/12/07 13:40:31 xleroy Exp $ */ +/* $Id: link.c 4144 2001-12-07 13:41:02Z xleroy $ */ #include #include "unixsupport.h" diff --git a/otherlibs/unix/listen.c b/otherlibs/unix/listen.c index 215e6d53..cda2943e 100644 --- a/otherlibs/unix/listen.c +++ b/otherlibs/unix/listen.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: listen.c,v 1.11 2005/03/24 17:20:53 doligez Exp $ */ +/* $Id: listen.c 6824 2005-03-24 17:20:54Z doligez $ */ #include #include diff --git a/otherlibs/unix/lockf.c b/otherlibs/unix/lockf.c index 12f16736..d3a12d36 100644 --- a/otherlibs/unix/lockf.c +++ b/otherlibs/unix/lockf.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: lockf.c,v 1.14 2005/03/24 17:20:53 doligez Exp $ */ +/* $Id: lockf.c 6824 2005-03-24 17:20:54Z doligez $ */ #include #include diff --git a/otherlibs/unix/lseek.c b/otherlibs/unix/lseek.c index 14ba24b7..8d8d40c9 100644 --- a/otherlibs/unix/lseek.c +++ b/otherlibs/unix/lseek.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: lseek.c,v 1.10 2002/03/02 09:16:36 xleroy Exp $ */ +/* $Id: lseek.c 4474 2002-03-02 09:16:39Z xleroy $ */ #include #include diff --git a/otherlibs/unix/mkdir.c b/otherlibs/unix/mkdir.c index 469f688b..fc1606e9 100644 --- a/otherlibs/unix/mkdir.c +++ b/otherlibs/unix/mkdir.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: mkdir.c,v 1.9 2001/12/07 13:40:31 xleroy Exp $ */ +/* $Id: mkdir.c 4144 2001-12-07 13:41:02Z xleroy $ */ #include #include diff --git a/otherlibs/unix/mkfifo.c b/otherlibs/unix/mkfifo.c index 81c62ed3..8f2cfac5 100644 --- a/otherlibs/unix/mkfifo.c +++ b/otherlibs/unix/mkfifo.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: mkfifo.c,v 1.11 2005/03/24 17:20:53 doligez Exp $ */ +/* $Id: mkfifo.c 6824 2005-03-24 17:20:54Z doligez $ */ #include #include diff --git a/otherlibs/unix/nice.c b/otherlibs/unix/nice.c index c784ce82..5dc4caa7 100644 --- a/otherlibs/unix/nice.c +++ b/otherlibs/unix/nice.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: nice.c,v 1.11 2008/08/01 13:14:36 xleroy Exp $ */ +/* $Id: nice.c 8967 2008-08-01 13:14:36Z xleroy $ */ #include #include "unixsupport.h" diff --git a/otherlibs/unix/open.c b/otherlibs/unix/open.c index aa666042..c734e173 100644 --- a/otherlibs/unix/open.c +++ b/otherlibs/unix/open.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: open.c,v 1.12 2005/03/24 17:20:53 doligez Exp $ */ +/* $Id: open.c 6824 2005-03-24 17:20:54Z doligez $ */ #include #include diff --git a/otherlibs/unix/opendir.c b/otherlibs/unix/opendir.c index 467316a3..a5482308 100644 --- a/otherlibs/unix/opendir.c +++ b/otherlibs/unix/opendir.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: opendir.c,v 1.9 2004/02/14 10:21:22 xleroy Exp $ */ +/* $Id: opendir.c 6113 2004-02-14 10:21:23Z xleroy $ */ #include #include diff --git a/otherlibs/unix/pipe.c b/otherlibs/unix/pipe.c index 04b6023c..438b1332 100644 --- a/otherlibs/unix/pipe.c +++ b/otherlibs/unix/pipe.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: pipe.c,v 1.10 2005/03/24 17:20:53 doligez Exp $ */ +/* $Id: pipe.c 6824 2005-03-24 17:20:54Z doligez $ */ #include #include diff --git a/otherlibs/unix/putenv.c b/otherlibs/unix/putenv.c index f3d10aab..148d8fee 100644 --- a/otherlibs/unix/putenv.c +++ b/otherlibs/unix/putenv.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: putenv.c,v 1.9 2005/03/24 17:20:53 doligez Exp $ */ +/* $Id: putenv.c 6824 2005-03-24 17:20:54Z doligez $ */ #include #include diff --git a/otherlibs/unix/read.c b/otherlibs/unix/read.c index d68bb629..4479f6fc 100644 --- a/otherlibs/unix/read.c +++ b/otherlibs/unix/read.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: read.c,v 1.13 2001/12/07 13:40:32 xleroy Exp $ */ +/* $Id: read.c 4144 2001-12-07 13:41:02Z xleroy $ */ #include #include diff --git a/otherlibs/unix/readdir.c b/otherlibs/unix/readdir.c index 786a21f0..e7feb611 100644 --- a/otherlibs/unix/readdir.c +++ b/otherlibs/unix/readdir.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: readdir.c,v 1.12 2004/02/14 10:21:23 xleroy Exp $ */ +/* $Id: readdir.c 6113 2004-02-14 10:21:23Z xleroy $ */ #include #include diff --git a/otherlibs/unix/readlink.c b/otherlibs/unix/readlink.c index 980cee0c..7544eb7e 100644 --- a/otherlibs/unix/readlink.c +++ b/otherlibs/unix/readlink.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: readlink.c,v 1.11 2005/03/24 17:20:53 doligez Exp $ */ +/* $Id: readlink.c 6824 2005-03-24 17:20:54Z doligez $ */ #include #include diff --git a/otherlibs/unix/rename.c b/otherlibs/unix/rename.c index 26a24945..dac48a47 100644 --- a/otherlibs/unix/rename.c +++ b/otherlibs/unix/rename.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: rename.c,v 1.10 2001/12/07 13:40:33 xleroy Exp $ */ +/* $Id: rename.c 4144 2001-12-07 13:41:02Z xleroy $ */ #include #include diff --git a/otherlibs/unix/rewinddir.c b/otherlibs/unix/rewinddir.c index 6052b96e..61ce6af5 100644 --- a/otherlibs/unix/rewinddir.c +++ b/otherlibs/unix/rewinddir.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: rewinddir.c,v 1.12 2005/03/24 17:20:53 doligez Exp $ */ +/* $Id: rewinddir.c 6824 2005-03-24 17:20:54Z doligez $ */ #include #include diff --git a/otherlibs/unix/rmdir.c b/otherlibs/unix/rmdir.c index fe855b66..79d27c54 100644 --- a/otherlibs/unix/rmdir.c +++ b/otherlibs/unix/rmdir.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: rmdir.c,v 1.9 2001/12/07 13:40:33 xleroy Exp $ */ +/* $Id: rmdir.c 4144 2001-12-07 13:41:02Z xleroy $ */ #include #include "unixsupport.h" diff --git a/otherlibs/unix/select.c b/otherlibs/unix/select.c index 28dd8d96..5b63d273 100644 --- a/otherlibs/unix/select.c +++ b/otherlibs/unix/select.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: select.c,v 1.22 2005/03/24 17:20:53 doligez Exp $ */ +/* $Id: select.c 6824 2005-03-24 17:20:54Z doligez $ */ #include #include diff --git a/otherlibs/unix/sendrecv.c b/otherlibs/unix/sendrecv.c index 66d2eff4..bce164b6 100644 --- a/otherlibs/unix/sendrecv.c +++ b/otherlibs/unix/sendrecv.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: sendrecv.c,v 1.19 2005/03/24 17:20:53 doligez Exp $ */ +/* $Id: sendrecv.c 6824 2005-03-24 17:20:54Z doligez $ */ #include #include diff --git a/otherlibs/unix/setgid.c b/otherlibs/unix/setgid.c index 2de246f9..698e6e25 100644 --- a/otherlibs/unix/setgid.c +++ b/otherlibs/unix/setgid.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: setgid.c,v 1.8 2001/12/07 13:40:33 xleroy Exp $ */ +/* $Id: setgid.c 4144 2001-12-07 13:41:02Z xleroy $ */ #include #include "unixsupport.h" diff --git a/otherlibs/unix/setsid.c b/otherlibs/unix/setsid.c index d1315980..cfaa3e65 100644 --- a/otherlibs/unix/setsid.c +++ b/otherlibs/unix/setsid.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: setsid.c,v 1.6 2005/03/24 17:20:53 doligez Exp $ */ +/* $Id: setsid.c 6824 2005-03-24 17:20:54Z doligez $ */ #include #include diff --git a/otherlibs/unix/setuid.c b/otherlibs/unix/setuid.c index 8ac8a064..fb2a9ddc 100644 --- a/otherlibs/unix/setuid.c +++ b/otherlibs/unix/setuid.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: setuid.c,v 1.8 2001/12/07 13:40:33 xleroy Exp $ */ +/* $Id: setuid.c 4144 2001-12-07 13:41:02Z xleroy $ */ #include #include "unixsupport.h" diff --git a/otherlibs/unix/shutdown.c b/otherlibs/unix/shutdown.c index e325c59e..9a274529 100644 --- a/otherlibs/unix/shutdown.c +++ b/otherlibs/unix/shutdown.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: shutdown.c,v 1.11 2005/03/24 17:20:53 doligez Exp $ */ +/* $Id: shutdown.c 6824 2005-03-24 17:20:54Z doligez $ */ #include #include diff --git a/otherlibs/unix/signals.c b/otherlibs/unix/signals.c index 27c06499..7232739b 100644 --- a/otherlibs/unix/signals.c +++ b/otherlibs/unix/signals.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: signals.c,v 1.11 2008/01/11 16:13:16 doligez Exp $ */ +/* $Id: signals.c 8768 2008-01-11 16:13:18Z doligez $ */ #include #include diff --git a/otherlibs/unix/sleep.c b/otherlibs/unix/sleep.c index 93303f40..a5b97786 100644 --- a/otherlibs/unix/sleep.c +++ b/otherlibs/unix/sleep.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: sleep.c,v 1.9 2001/12/07 13:40:35 xleroy Exp $ */ +/* $Id: sleep.c 4144 2001-12-07 13:41:02Z xleroy $ */ #include #include diff --git a/otherlibs/unix/socket.c b/otherlibs/unix/socket.c index 1f547b6b..62f8428e 100644 --- a/otherlibs/unix/socket.c +++ b/otherlibs/unix/socket.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: socket.c,v 1.11 2005/03/24 17:20:53 doligez Exp $ */ +/* $Id: socket.c 6824 2005-03-24 17:20:54Z doligez $ */ #include #include diff --git a/otherlibs/unix/socketaddr.c b/otherlibs/unix/socketaddr.c index be5d467a..d3441252 100644 --- a/otherlibs/unix/socketaddr.c +++ b/otherlibs/unix/socketaddr.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: socketaddr.c,v 1.23 2005/03/24 17:20:53 doligez Exp $ */ +/* $Id: socketaddr.c 9377 2009-10-18 09:36:13Z xleroy $ */ #include #include @@ -80,6 +80,9 @@ void get_sockaddr(value mladr, adr->s_inet6.sin6_family = AF_INET6; adr->s_inet6.sin6_addr = GET_INET6_ADDR(Field(mladr, 0)); adr->s_inet6.sin6_port = htons(Int_val(Field(mladr, 1))); +#ifdef SIN6_LEN + adr->s_inet6.sin6_len = sizeof(struct sockaddr_in6); +#endif *adr_len = sizeof(struct sockaddr_in6); break; } @@ -88,6 +91,9 @@ void get_sockaddr(value mladr, adr->s_inet.sin_family = AF_INET; adr->s_inet.sin_addr = GET_INET_ADDR(Field(mladr, 0)); adr->s_inet.sin_port = htons(Int_val(Field(mladr, 1))); +#ifdef SIN6_LEN + adr->s_inet.sin_len = sizeof(struct sockaddr_in); +#endif *adr_len = sizeof(struct sockaddr_in); break; } diff --git a/otherlibs/unix/socketaddr.h b/otherlibs/unix/socketaddr.h index 6bdf1d91..9cc3a219 100644 --- a/otherlibs/unix/socketaddr.h +++ b/otherlibs/unix/socketaddr.h @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: socketaddr.h,v 1.16 2005/03/24 17:20:53 doligez Exp $ */ +/* $Id: socketaddr.h 6824 2005-03-24 17:20:54Z doligez $ */ #include #include diff --git a/otherlibs/unix/socketpair.c b/otherlibs/unix/socketpair.c index 7d6d60ad..9e5aeb0d 100644 --- a/otherlibs/unix/socketpair.c +++ b/otherlibs/unix/socketpair.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: socketpair.c,v 1.12 2005/03/24 17:20:53 doligez Exp $ */ +/* $Id: socketpair.c 6824 2005-03-24 17:20:54Z doligez $ */ #include #include diff --git a/otherlibs/unix/sockopt.c b/otherlibs/unix/sockopt.c index 78f5d3c4..524c2dd4 100644 --- a/otherlibs/unix/sockopt.c +++ b/otherlibs/unix/sockopt.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: sockopt.c,v 1.21 2008/08/01 13:46:08 xleroy Exp $ */ +/* $Id: sockopt.c 8968 2008-08-01 13:46:08Z xleroy $ */ #include #include diff --git a/otherlibs/unix/stat.c b/otherlibs/unix/stat.c index fbc55d2d..6c7470a1 100644 --- a/otherlibs/unix/stat.c +++ b/otherlibs/unix/stat.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: stat.c,v 1.15 2003/05/05 14:20:58 xleroy Exp $ */ +/* $Id: stat.c 5540 2003-05-05 14:20:58Z xleroy $ */ #include #include diff --git a/otherlibs/unix/strofaddr.c b/otherlibs/unix/strofaddr.c index 5d7a759f..51927873 100644 --- a/otherlibs/unix/strofaddr.c +++ b/otherlibs/unix/strofaddr.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: strofaddr.c,v 1.10 2005/03/24 17:20:53 doligez Exp $ */ +/* $Id: strofaddr.c 6824 2005-03-24 17:20:54Z doligez $ */ #include #include diff --git a/otherlibs/unix/symlink.c b/otherlibs/unix/symlink.c index 3a787aac..6fd7c1fd 100644 --- a/otherlibs/unix/symlink.c +++ b/otherlibs/unix/symlink.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: symlink.c,v 1.9 2005/03/24 17:20:53 doligez Exp $ */ +/* $Id: symlink.c 6824 2005-03-24 17:20:54Z doligez $ */ #include #include diff --git a/otherlibs/unix/termios.c b/otherlibs/unix/termios.c index 1df4e0f0..88e87870 100644 --- a/otherlibs/unix/termios.c +++ b/otherlibs/unix/termios.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: termios.c,v 1.15 2005/03/24 17:20:53 doligez Exp $ */ +/* $Id: termios.c 6824 2005-03-24 17:20:54Z doligez $ */ #include #include diff --git a/otherlibs/unix/time.c b/otherlibs/unix/time.c index 7c0e47d7..476abc3b 100644 --- a/otherlibs/unix/time.c +++ b/otherlibs/unix/time.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: time.c,v 1.10 2005/03/24 17:20:53 doligez Exp $ */ +/* $Id: time.c 6824 2005-03-24 17:20:54Z doligez $ */ #include #include diff --git a/otherlibs/unix/times.c b/otherlibs/unix/times.c index afa25278..e79f4ca0 100644 --- a/otherlibs/unix/times.c +++ b/otherlibs/unix/times.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: times.c,v 1.16 2006/04/16 23:28:21 doligez Exp $ */ +/* $Id: times.c 7382 2006-04-16 23:28:22Z doligez $ */ #include #include diff --git a/otherlibs/unix/truncate.c b/otherlibs/unix/truncate.c index 75ac4602..362b477e 100644 --- a/otherlibs/unix/truncate.c +++ b/otherlibs/unix/truncate.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: truncate.c,v 1.11 2007/02/09 13:31:15 doligez Exp $ */ +/* $Id: truncate.c 7849 2007-02-09 13:31:15Z doligez $ */ #include #include diff --git a/otherlibs/unix/umask.c b/otherlibs/unix/umask.c index 68d41e61..edd5cfae 100644 --- a/otherlibs/unix/umask.c +++ b/otherlibs/unix/umask.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: umask.c,v 1.9 2001/12/07 13:40:37 xleroy Exp $ */ +/* $Id: umask.c 4144 2001-12-07 13:41:02Z xleroy $ */ #include #include diff --git a/otherlibs/unix/unix.ml b/otherlibs/unix/unix.ml index 6f03043f..4e70ecc6 100644 --- a/otherlibs/unix/unix.ml +++ b/otherlibs/unix/unix.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: unix.ml,v 1.68 2008/08/01 13:46:08 xleroy Exp $ *) +(* $Id: unix.ml 8968 2008-08-01 13:46:08Z xleroy $ *) type error = E2BIG diff --git a/otherlibs/unix/unix.mli b/otherlibs/unix/unix.mli index 26d08a22..53d2c67e 100644 --- a/otherlibs/unix/unix.mli +++ b/otherlibs/unix/unix.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: unix.mli,v 1.89.2.1 2009/03/28 16:58:56 xleroy Exp $ *) +(* $Id: unix.mli 9200 2009-03-28 16:58:56Z xleroy $ *) (** Interface to the Unix system *) diff --git a/otherlibs/unix/unixLabels.ml b/otherlibs/unix/unixLabels.ml index f9be42b4..f69bef90 100644 --- a/otherlibs/unix/unixLabels.ml +++ b/otherlibs/unix/unixLabels.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: unixLabels.ml,v 1.3 2001/12/07 13:40:38 xleroy Exp $ *) +(* $Id: unixLabels.ml 4144 2001-12-07 13:41:02Z xleroy $ *) (* Module [UnixLabels]: labelled Unix module *) diff --git a/otherlibs/unix/unixLabels.mli b/otherlibs/unix/unixLabels.mli index 9af5f2d9..99b541d1 100644 --- a/otherlibs/unix/unixLabels.mli +++ b/otherlibs/unix/unixLabels.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: unixLabels.mli,v 1.19 2008/08/01 13:46:08 xleroy Exp $ *) +(* $Id: unixLabels.mli 8968 2008-08-01 13:46:08Z xleroy $ *) (** Interface to the Unix system. To use as replacement to default {!Unix} module, diff --git a/otherlibs/unix/unixsupport.c b/otherlibs/unix/unixsupport.c index 2e08fc5c..811b92c2 100644 --- a/otherlibs/unix/unixsupport.c +++ b/otherlibs/unix/unixsupport.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: unixsupport.c,v 1.18 2005/09/06 12:38:32 doligez Exp $ */ +/* $Id: unixsupport.c 7045 2005-09-06 12:38:32Z doligez $ */ #include #include diff --git a/otherlibs/unix/unixsupport.h b/otherlibs/unix/unixsupport.h index f2aa09cb..55c21f52 100644 --- a/otherlibs/unix/unixsupport.h +++ b/otherlibs/unix/unixsupport.h @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: unixsupport.h,v 1.8 2005/09/06 12:38:32 doligez Exp $ */ +/* $Id: unixsupport.h 7045 2005-09-06 12:38:32Z doligez $ */ #ifdef HAS_UNISTD #include diff --git a/otherlibs/unix/unlink.c b/otherlibs/unix/unlink.c index d2a4a92a..f1c9a058 100644 --- a/otherlibs/unix/unlink.c +++ b/otherlibs/unix/unlink.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: unlink.c,v 1.8 2001/12/07 13:40:39 xleroy Exp $ */ +/* $Id: unlink.c 4144 2001-12-07 13:41:02Z xleroy $ */ #include #include "unixsupport.h" diff --git a/otherlibs/unix/utimes.c b/otherlibs/unix/utimes.c index 5a07aa22..c424c2f4 100644 --- a/otherlibs/unix/utimes.c +++ b/otherlibs/unix/utimes.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: utimes.c,v 1.10 2005/03/24 17:20:53 doligez Exp $ */ +/* $Id: utimes.c 6824 2005-03-24 17:20:54Z doligez $ */ #include #include diff --git a/otherlibs/unix/wait.c b/otherlibs/unix/wait.c index 74d22dc5..d44d6ad2 100644 --- a/otherlibs/unix/wait.c +++ b/otherlibs/unix/wait.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: wait.c,v 1.19 2005/04/17 08:23:51 xleroy Exp $ */ +/* $Id: wait.c 6845 2005-04-17 08:23:51Z xleroy $ */ #include #include diff --git a/otherlibs/unix/write.c b/otherlibs/unix/write.c index 84f00380..bdc6d7de 100644 --- a/otherlibs/unix/write.c +++ b/otherlibs/unix/write.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: write.c,v 1.14 2004/07/13 12:25:15 xleroy Exp $ */ +/* $Id: write.c 6553 2004-07-13 12:25:21Z xleroy $ */ #include #include diff --git a/otherlibs/win32graph/Makefile.nt b/otherlibs/win32graph/Makefile.nt index 371507d5..92f244d5 100644 --- a/otherlibs/win32graph/Makefile.nt +++ b/otherlibs/win32graph/Makefile.nt @@ -11,7 +11,7 @@ # # ######################################################################### -# $Id: Makefile.nt,v 1.8 2007/11/06 15:16:56 frisch Exp $ +# $Id: Makefile.nt 8477 2007-11-06 15:16:56Z frisch $ LIBNAME=graphics COBJS=open.$(O) draw.$(O) events.$(O) dib.$(O) diff --git a/otherlibs/win32graph/dib.c b/otherlibs/win32graph/dib.c index 543b07e8..d6d0418d 100644 --- a/otherlibs/win32graph/dib.c +++ b/otherlibs/win32graph/dib.c @@ -10,7 +10,7 @@ /* */ /***********************************************************************/ -/* $Id: dib.c,v 1.3 2002/07/23 14:12:00 doligez Exp $ */ +/* $Id: dib.c 5029 2002-07-23 14:12:03Z doligez $ */ //----------------------------------------------------------------------------- // DIB.C diff --git a/otherlibs/win32graph/draw.c b/otherlibs/win32graph/draw.c index 50a2cda3..9e2e7ac4 100644 --- a/otherlibs/win32graph/draw.c +++ b/otherlibs/win32graph/draw.c @@ -10,7 +10,7 @@ /* */ /***********************************************************************/ -/* $Id: draw.c,v 1.11 2005/03/24 17:20:53 doligez Exp $ */ +/* $Id: draw.c 6824 2005-03-24 17:20:54Z doligez $ */ #include #include "mlvalues.h" diff --git a/otherlibs/win32graph/events.c b/otherlibs/win32graph/events.c index d439e8d1..e9482206 100755 --- a/otherlibs/win32graph/events.c +++ b/otherlibs/win32graph/events.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: events.c,v 1.2 2004/07/13 12:25:15 xleroy Exp $ */ +/* $Id: events.c 6553 2004-07-13 12:25:21Z xleroy $ */ #include "mlvalues.h" #include "alloc.h" diff --git a/otherlibs/win32graph/libgraph.h b/otherlibs/win32graph/libgraph.h index 6dc6e4ba..6fc2448d 100644 --- a/otherlibs/win32graph/libgraph.h +++ b/otherlibs/win32graph/libgraph.h @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: libgraph.h,v 1.9 2004/07/13 12:25:15 xleroy Exp $ */ +/* $Id: libgraph.h 6553 2004-07-13 12:25:21Z xleroy $ */ #include #include diff --git a/otherlibs/win32graph/open.c b/otherlibs/win32graph/open.c index a57a1472..1d260d77 100644 --- a/otherlibs/win32graph/open.c +++ b/otherlibs/win32graph/open.c @@ -10,7 +10,7 @@ /* */ /***********************************************************************/ -/* $Id: open.c,v 1.12 2007/11/06 15:16:56 frisch Exp $ */ +/* $Id: open.c 8477 2007-11-06 15:16:56Z frisch $ */ #include #include diff --git a/otherlibs/win32unix/Makefile.nt b/otherlibs/win32unix/Makefile.nt index d404c684..8c61587f 100644 --- a/otherlibs/win32unix/Makefile.nt +++ b/otherlibs/win32unix/Makefile.nt @@ -11,7 +11,7 @@ # # ######################################################################### -# $Id: Makefile.nt,v 1.37 2008/07/29 08:31:41 xleroy Exp $ +# $Id: Makefile.nt 8955 2008-07-29 08:31:41Z xleroy $ # Files in this directory WIN_FILES = accept.c bind.c channels.c close.c \ diff --git a/otherlibs/win32unix/accept.c b/otherlibs/win32unix/accept.c index d065885b..d0a7abd4 100644 --- a/otherlibs/win32unix/accept.c +++ b/otherlibs/win32unix/accept.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: accept.c,v 1.21 2006/10/18 08:26:54 xleroy Exp $ */ +/* $Id: accept.c 7697 2006-10-18 08:26:54Z xleroy $ */ #include #include diff --git a/otherlibs/win32unix/bind.c b/otherlibs/win32unix/bind.c index 6392db26..ba74ef7c 100644 --- a/otherlibs/win32unix/bind.c +++ b/otherlibs/win32unix/bind.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: bind.c,v 1.10 2002/04/30 15:00:45 xleroy Exp $ */ +/* $Id: bind.c 4765 2002-04-30 15:00:48Z xleroy $ */ #include #include "unixsupport.h" diff --git a/otherlibs/win32unix/channels.c b/otherlibs/win32unix/channels.c index d480cfdc..f719abbf 100644 --- a/otherlibs/win32unix/channels.c +++ b/otherlibs/win32unix/channels.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: channels.c,v 1.12 2006/09/21 09:41:04 xleroy Exp $ */ +/* $Id: channels.c 9450 2009-12-07 10:39:54Z xleroy $ */ #include #include @@ -82,7 +82,10 @@ CAMLprim value win_filedescr_of_channel(value vchan) CAMLprim value win_handle_fd(value vfd) { int crt_fd = Int_val(vfd); - value res = win_alloc_handle_or_socket((HANDLE) _get_osfhandle(crt_fd)); + /* PR#4750: do not use the _or_socket variant as it can cause performance + degradation and this function is only used with the standard + handles 0, 1, 2, which are not sockets. */ + value res = win_alloc_handle((HANDLE) _get_osfhandle(crt_fd)); CRT_fd_val(res) = crt_fd; return res; } diff --git a/otherlibs/win32unix/close.c b/otherlibs/win32unix/close.c index 77d70f38..4890ae0b 100644 --- a/otherlibs/win32unix/close.c +++ b/otherlibs/win32unix/close.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: close.c,v 1.5 2002/04/30 15:00:46 xleroy Exp $ */ +/* $Id: close.c 4765 2002-04-30 15:00:48Z xleroy $ */ #include #include "unixsupport.h" diff --git a/otherlibs/win32unix/close_on.c b/otherlibs/win32unix/close_on.c index 8a249356..69913608 100644 --- a/otherlibs/win32unix/close_on.c +++ b/otherlibs/win32unix/close_on.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: close_on.c,v 1.8 2001/12/07 13:40:43 xleroy Exp $ */ +/* $Id: close_on.c 4144 2001-12-07 13:41:02Z xleroy $ */ #include #include diff --git a/otherlibs/win32unix/connect.c b/otherlibs/win32unix/connect.c index c35985a0..a361d2ad 100644 --- a/otherlibs/win32unix/connect.c +++ b/otherlibs/win32unix/connect.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: connect.c,v 1.13 2006/10/18 08:26:54 xleroy Exp $ */ +/* $Id: connect.c 7697 2006-10-18 08:26:54Z xleroy $ */ #include #include diff --git a/otherlibs/win32unix/createprocess.c b/otherlibs/win32unix/createprocess.c index 6b439f78..ba405116 100644 --- a/otherlibs/win32unix/createprocess.c +++ b/otherlibs/win32unix/createprocess.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: createprocess.c,v 1.14.4.1 2009/06/02 13:12:53 xleroy Exp $ */ +/* $Id: createprocess.c 9284 2009-06-02 13:12:53Z xleroy $ */ #include #include diff --git a/otherlibs/win32unix/dup.c b/otherlibs/win32unix/dup.c index d187372a..0c4046b7 100644 --- a/otherlibs/win32unix/dup.c +++ b/otherlibs/win32unix/dup.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: dup.c,v 1.6 2002/04/30 15:00:46 xleroy Exp $ */ +/* $Id: dup.c 4765 2002-04-30 15:00:48Z xleroy $ */ #include #include "unixsupport.h" diff --git a/otherlibs/win32unix/dup2.c b/otherlibs/win32unix/dup2.c index 288d6df7..848c1869 100644 --- a/otherlibs/win32unix/dup2.c +++ b/otherlibs/win32unix/dup2.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: dup2.c,v 1.9 2006/09/21 09:43:58 xleroy Exp $ */ +/* $Id: dup2.c 7630 2006-09-21 09:43:58Z xleroy $ */ #include #include "unixsupport.h" diff --git a/otherlibs/win32unix/errmsg.c b/otherlibs/win32unix/errmsg.c index ba7eb3c3..08ef2c00 100644 --- a/otherlibs/win32unix/errmsg.c +++ b/otherlibs/win32unix/errmsg.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: errmsg.c,v 1.5 2003/12/31 00:00:14 doligez Exp $ */ +/* $Id: errmsg.c 6043 2003-12-31 00:00:57Z doligez $ */ #include #include diff --git a/otherlibs/win32unix/getpeername.c b/otherlibs/win32unix/getpeername.c index d734d964..ff1e634c 100644 --- a/otherlibs/win32unix/getpeername.c +++ b/otherlibs/win32unix/getpeername.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: getpeername.c,v 1.10 2005/03/24 17:20:53 doligez Exp $ */ +/* $Id: getpeername.c 6824 2005-03-24 17:20:54Z doligez $ */ #include #include "unixsupport.h" diff --git a/otherlibs/win32unix/getpid.c b/otherlibs/win32unix/getpid.c index 2bfbf1a7..92ba55af 100644 --- a/otherlibs/win32unix/getpid.c +++ b/otherlibs/win32unix/getpid.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: getpid.c,v 1.4 2001/12/07 13:40:44 xleroy Exp $ */ +/* $Id: getpid.c 4144 2001-12-07 13:41:02Z xleroy $ */ #include #include "unixsupport.h" diff --git a/otherlibs/win32unix/getsockname.c b/otherlibs/win32unix/getsockname.c index 1a21ad68..5b6ea300 100644 --- a/otherlibs/win32unix/getsockname.c +++ b/otherlibs/win32unix/getsockname.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: getsockname.c,v 1.8 2005/03/24 17:20:53 doligez Exp $ */ +/* $Id: getsockname.c 6824 2005-03-24 17:20:54Z doligez $ */ #include #include "unixsupport.h" diff --git a/otherlibs/win32unix/gettimeofday.c b/otherlibs/win32unix/gettimeofday.c index 971acdc9..622ef4dd 100644 --- a/otherlibs/win32unix/gettimeofday.c +++ b/otherlibs/win32unix/gettimeofday.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: gettimeofday.c,v 1.7 2007/03/01 13:51:24 xleroy Exp $ */ +/* $Id: gettimeofday.c 7946 2007-03-01 13:51:24Z xleroy $ */ #include #include diff --git a/otherlibs/win32unix/link.c b/otherlibs/win32unix/link.c index e66d4673..f0097e2a 100644 --- a/otherlibs/win32unix/link.c +++ b/otherlibs/win32unix/link.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: link.c,v 1.3 2001/12/07 13:40:44 xleroy Exp $ */ +/* $Id: link.c 4144 2001-12-07 13:41:02Z xleroy $ */ #include #include diff --git a/otherlibs/win32unix/listen.c b/otherlibs/win32unix/listen.c index 305250a5..cd61bdbd 100644 --- a/otherlibs/win32unix/listen.c +++ b/otherlibs/win32unix/listen.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: listen.c,v 1.9 2002/04/30 15:00:46 xleroy Exp $ */ +/* $Id: listen.c 4765 2002-04-30 15:00:48Z xleroy $ */ #include #include "unixsupport.h" diff --git a/otherlibs/win32unix/lockf.c b/otherlibs/win32unix/lockf.c index 821363ff..668932ae 100644 --- a/otherlibs/win32unix/lockf.c +++ b/otherlibs/win32unix/lockf.c @@ -13,7 +13,7 @@ /* */ /***********************************************************************/ -/* $Id: lockf.c,v 1.7.2.1 2008/10/08 13:05:42 xleroy Exp $ */ +/* $Id: lockf.c 9078 2008-10-08 13:05:48Z xleroy $ */ #include #include diff --git a/otherlibs/win32unix/lseek.c b/otherlibs/win32unix/lseek.c index 583b2871..95be0093 100644 --- a/otherlibs/win32unix/lseek.c +++ b/otherlibs/win32unix/lseek.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: lseek.c,v 1.7 2005/02/02 15:52:26 xleroy Exp $ */ +/* $Id: lseek.c 6774 2005-02-02 15:52:26Z xleroy $ */ #include #include diff --git a/otherlibs/win32unix/mkdir.c b/otherlibs/win32unix/mkdir.c index 3bafc899..d2895253 100644 --- a/otherlibs/win32unix/mkdir.c +++ b/otherlibs/win32unix/mkdir.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: mkdir.c,v 1.5 2001/12/07 13:40:45 xleroy Exp $ */ +/* $Id: mkdir.c 4144 2001-12-07 13:41:02Z xleroy $ */ #include #include "unixsupport.h" diff --git a/otherlibs/win32unix/nonblock.c b/otherlibs/win32unix/nonblock.c index 54664295..b5bc1471 100755 --- a/otherlibs/win32unix/nonblock.c +++ b/otherlibs/win32unix/nonblock.c @@ -1,42 +1,42 @@ -/***********************************************************************/ -/* */ -/* Objective Caml */ -/* */ -/* Xavier Leroy, projet Cristal, INRIA Rocquencourt */ -/* */ -/* Copyright 2002 Institut National de Recherche en Informatique et */ -/* en Automatique. All rights reserved. This file is distributed */ -/* under the terms of the GNU Library General Public License, with */ -/* the special exception on linking described in file ../../LICENSE. */ -/* */ -/***********************************************************************/ - -/* $Id: nonblock.c,v 1.1 2003/01/06 16:44:21 xleroy Exp $ */ - -#include -#include -#include "unixsupport.h" - -CAMLprim value unix_set_nonblock(socket) - value socket; -{ - u_long non_block = 1; - - if (ioctlsocket(Socket_val(socket), FIONBIO, &non_block) != 0) { - win32_maperr(WSAGetLastError()); - uerror("unix_set_nonblock", Nothing); - } - return Val_unit; -} - -CAMLprim value unix_clear_nonblock(socket) - value socket; -{ - u_long non_block = 0; - - if (ioctlsocket(Socket_val(socket), FIONBIO, &non_block) != 0) { - win32_maperr(WSAGetLastError()); - uerror("unix_clear_nonblock", Nothing); - } - return Val_unit; -} +/***********************************************************************/ +/* */ +/* Objective Caml */ +/* */ +/* Xavier Leroy, projet Cristal, INRIA Rocquencourt */ +/* */ +/* Copyright 2002 Institut National de Recherche en Informatique et */ +/* en Automatique. All rights reserved. This file is distributed */ +/* under the terms of the GNU Library General Public License, with */ +/* the special exception on linking described in file ../../LICENSE. */ +/* */ +/***********************************************************************/ + +/* $Id: nonblock.c 5375 2003-01-06 16:44:21Z xleroy $ */ + +#include +#include +#include "unixsupport.h" + +CAMLprim value unix_set_nonblock(socket) + value socket; +{ + u_long non_block = 1; + + if (ioctlsocket(Socket_val(socket), FIONBIO, &non_block) != 0) { + win32_maperr(WSAGetLastError()); + uerror("unix_set_nonblock", Nothing); + } + return Val_unit; +} + +CAMLprim value unix_clear_nonblock(socket) + value socket; +{ + u_long non_block = 0; + + if (ioctlsocket(Socket_val(socket), FIONBIO, &non_block) != 0) { + win32_maperr(WSAGetLastError()); + uerror("unix_clear_nonblock", Nothing); + } + return Val_unit; +} diff --git a/otherlibs/win32unix/open.c b/otherlibs/win32unix/open.c index ebcc9c81..60fa80bd 100644 --- a/otherlibs/win32unix/open.c +++ b/otherlibs/win32unix/open.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: open.c,v 1.10 2008/01/11 16:13:16 doligez Exp $ */ +/* $Id: open.c 8768 2008-01-11 16:13:18Z doligez $ */ #include #include diff --git a/otherlibs/win32unix/pipe.c b/otherlibs/win32unix/pipe.c index 9a7ced3c..765f1aa7 100644 --- a/otherlibs/win32unix/pipe.c +++ b/otherlibs/win32unix/pipe.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: pipe.c,v 1.7.28.1 2009/03/28 15:30:08 xleroy Exp $ */ +/* $Id: pipe.c 9196 2009-03-28 15:30:08Z xleroy $ */ #include #include diff --git a/otherlibs/win32unix/read.c b/otherlibs/win32unix/read.c index 944c72ad..2319cb67 100644 --- a/otherlibs/win32unix/read.c +++ b/otherlibs/win32unix/read.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: read.c,v 1.9 2006/10/18 08:26:54 xleroy Exp $ */ +/* $Id: read.c 7697 2006-10-18 08:26:54Z xleroy $ */ #include #include diff --git a/otherlibs/win32unix/rename.c b/otherlibs/win32unix/rename.c index 8e3a7fcb..d5280ffb 100644 --- a/otherlibs/win32unix/rename.c +++ b/otherlibs/win32unix/rename.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: rename.c,v 1.3 2004/07/13 12:25:15 xleroy Exp $ */ +/* $Id: rename.c 6553 2004-07-13 12:25:21Z xleroy $ */ #include #include diff --git a/otherlibs/win32unix/select.c b/otherlibs/win32unix/select.c index e919d359..9de11351 100644 --- a/otherlibs/win32unix/select.c +++ b/otherlibs/win32unix/select.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: select.c,v 1.14.2.2 2008/11/26 13:27:21 xleroy Exp $ */ +/* $Id: select.c 9143 2008-11-26 13:27:21Z xleroy $ */ #include #include diff --git a/otherlibs/win32unix/sendrecv.c b/otherlibs/win32unix/sendrecv.c index 054f8ba1..9141f3d0 100644 --- a/otherlibs/win32unix/sendrecv.c +++ b/otherlibs/win32unix/sendrecv.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: sendrecv.c,v 1.21 2006/10/18 08:26:54 xleroy Exp $ */ +/* $Id: sendrecv.c 7697 2006-10-18 08:26:54Z xleroy $ */ #include #include diff --git a/otherlibs/win32unix/shutdown.c b/otherlibs/win32unix/shutdown.c index 8c8e20ca..ae968727 100644 --- a/otherlibs/win32unix/shutdown.c +++ b/otherlibs/win32unix/shutdown.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: shutdown.c,v 1.9 2002/04/30 15:00:47 xleroy Exp $ */ +/* $Id: shutdown.c 4765 2002-04-30 15:00:48Z xleroy $ */ #include #include "unixsupport.h" diff --git a/otherlibs/win32unix/sleep.c b/otherlibs/win32unix/sleep.c index 969ed38c..e5054a6f 100644 --- a/otherlibs/win32unix/sleep.c +++ b/otherlibs/win32unix/sleep.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: sleep.c,v 1.5 2002/06/07 09:49:41 xleroy Exp $ */ +/* $Id: sleep.c 4899 2002-06-07 09:49:45Z xleroy $ */ #include #include diff --git a/otherlibs/win32unix/socket.c b/otherlibs/win32unix/socket.c index 6b155d76..15f0bafd 100644 --- a/otherlibs/win32unix/socket.c +++ b/otherlibs/win32unix/socket.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: socket.c,v 1.12 2002/04/30 15:00:47 xleroy Exp $ */ +/* $Id: socket.c 4765 2002-04-30 15:00:48Z xleroy $ */ #include #include "unixsupport.h" diff --git a/otherlibs/win32unix/socketaddr.h b/otherlibs/win32unix/socketaddr.h index 497133cd..0a05dfff 100644 --- a/otherlibs/win32unix/socketaddr.h +++ b/otherlibs/win32unix/socketaddr.h @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: socketaddr.h,v 1.8 2005/03/24 17:20:53 doligez Exp $ */ +/* $Id: socketaddr.h 6824 2005-03-24 17:20:54Z doligez $ */ #include diff --git a/otherlibs/win32unix/sockopt.c b/otherlibs/win32unix/sockopt.c index 2af9b002..9ffa315e 100644 --- a/otherlibs/win32unix/sockopt.c +++ b/otherlibs/win32unix/sockopt.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: sockopt.c,v 1.19 2008/08/01 13:46:08 xleroy Exp $ */ +/* $Id: sockopt.c 8968 2008-08-01 13:46:08Z xleroy $ */ #include #include diff --git a/otherlibs/win32unix/stat.c b/otherlibs/win32unix/stat.c index d5f9b52f..813788d5 100644 --- a/otherlibs/win32unix/stat.c +++ b/otherlibs/win32unix/stat.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: stat.c,v 1.3.14.1 2009/03/28 16:39:50 xleroy Exp $ */ +/* $Id: stat.c 9199 2009-03-28 16:39:50Z xleroy $ */ #include #include diff --git a/otherlibs/win32unix/system.c b/otherlibs/win32unix/system.c index cca39fca..5885e03b 100644 --- a/otherlibs/win32unix/system.c +++ b/otherlibs/win32unix/system.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: system.c,v 1.9 2006/09/21 08:03:56 xleroy Exp $ */ +/* $Id: system.c 7626 2006-09-21 08:03:56Z xleroy $ */ #include #include diff --git a/otherlibs/win32unix/unix.ml b/otherlibs/win32unix/unix.ml index 0d4b190e..8385ec51 100644 --- a/otherlibs/win32unix/unix.ml +++ b/otherlibs/win32unix/unix.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: unix.ml,v 1.48 2008/08/01 13:46:08 xleroy Exp $ *) +(* $Id: unix.ml 8968 2008-08-01 13:46:08Z xleroy $ *) (* Initialization *) diff --git a/otherlibs/win32unix/unixsupport.c b/otherlibs/win32unix/unixsupport.c index 792b424f..d01b228c 100644 --- a/otherlibs/win32unix/unixsupport.c +++ b/otherlibs/win32unix/unixsupport.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: unixsupport.c,v 1.21.12.1 2009/05/19 12:32:36 xleroy Exp $ */ +/* $Id: unixsupport.c 9450 2009-12-07 10:39:54Z xleroy $ */ #include #include @@ -65,6 +65,8 @@ value win_alloc_socket(SOCKET s) return res; } +#if 0 +/* PR#4750: this function is no longer used */ value win_alloc_handle_or_socket(HANDLE h) { value res = win_alloc_handle(h); @@ -74,6 +76,7 @@ value win_alloc_handle_or_socket(HANDLE h) Descr_kind_val(res) = KIND_SOCKET; return res; } +#endif /* Mapping of Windows error codes to POSIX error codes */ diff --git a/otherlibs/win32unix/unixsupport.h b/otherlibs/win32unix/unixsupport.h index 07fc8017..faeb5c18 100644 --- a/otherlibs/win32unix/unixsupport.h +++ b/otherlibs/win32unix/unixsupport.h @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: unixsupport.h,v 1.19 2007/02/07 14:45:46 doligez Exp $ */ +/* $Id: unixsupport.h 9450 2009-12-07 10:39:54Z xleroy $ */ #define WIN32_LEAN_AND_MEAN #include @@ -36,7 +36,7 @@ struct filedescr { #define Descr_kind_val(v) (((struct filedescr *) Data_custom_val(v))->kind) #define CRT_fd_val(v) (((struct filedescr *) Data_custom_val(v))->crt_fd) -extern value win_alloc_handle_or_socket(HANDLE); +/* extern value win_alloc_handle_or_socket(HANDLE); */ extern value win_alloc_handle(HANDLE); extern value win_alloc_socket(SOCKET); extern int win_CRT_fd_of_filedescr(value handle); diff --git a/otherlibs/win32unix/windbug.c b/otherlibs/win32unix/windbug.c index 8f022cc9..313f2aff 100644 --- a/otherlibs/win32unix/windbug.c +++ b/otherlibs/win32unix/windbug.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: windbug.c,v 1.2.2.2 2008/11/26 13:41:01 xleroy Exp $ */ +/* $Id: windbug.c 9144 2008-11-26 13:41:01Z xleroy $ */ #include #include diff --git a/otherlibs/win32unix/windbug.h b/otherlibs/win32unix/windbug.h index 58066c73..d0c4f260 100644 --- a/otherlibs/win32unix/windbug.h +++ b/otherlibs/win32unix/windbug.h @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: windbug.h,v 1.2.2.1 2008/11/26 13:27:21 xleroy Exp $ */ +/* $Id: windbug.h 9143 2008-11-26 13:27:21Z xleroy $ */ /*#define DBUG*/ diff --git a/otherlibs/win32unix/windir.c b/otherlibs/win32unix/windir.c index f0f78a4b..23ce8c22 100644 --- a/otherlibs/win32unix/windir.c +++ b/otherlibs/win32unix/windir.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: windir.c,v 1.13 2002/07/23 14:12:01 doligez Exp $ */ +/* $Id: windir.c 5029 2002-07-23 14:12:03Z doligez $ */ #include #include diff --git a/otherlibs/win32unix/winlist.c b/otherlibs/win32unix/winlist.c index af5000df..52a9525c 100644 --- a/otherlibs/win32unix/winlist.c +++ b/otherlibs/win32unix/winlist.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: winlist.c,v 1.2 2008/07/31 12:09:18 xleroy Exp $ */ +/* $Id: winlist.c 8961 2008-07-31 12:09:18Z xleroy $ */ /* Basic list function in C. */ diff --git a/otherlibs/win32unix/winlist.h b/otherlibs/win32unix/winlist.h index aa838756..6f86c1b2 100644 --- a/otherlibs/win32unix/winlist.h +++ b/otherlibs/win32unix/winlist.h @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: winlist.h,v 1.2 2008/07/31 12:09:18 xleroy Exp $ */ +/* $Id: winlist.h 8961 2008-07-31 12:09:18Z xleroy $ */ #ifndef _WINLIST_H #define _WINLIST_H diff --git a/otherlibs/win32unix/winwait.c b/otherlibs/win32unix/winwait.c index fa5cbe36..4de4818c 100644 --- a/otherlibs/win32unix/winwait.c +++ b/otherlibs/win32unix/winwait.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: winwait.c,v 1.20 2008/01/11 16:13:16 doligez Exp $ */ +/* $Id: winwait.c 8768 2008-01-11 16:13:18Z doligez $ */ #include #include diff --git a/otherlibs/win32unix/winworker.c b/otherlibs/win32unix/winworker.c index 5c5909e6..0b66892e 100644 --- a/otherlibs/win32unix/winworker.c +++ b/otherlibs/win32unix/winworker.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: winworker.c,v 1.2.2.2 2008/11/26 13:41:01 xleroy Exp $ */ +/* $Id: winworker.c 9144 2008-11-26 13:41:01Z xleroy $ */ #include "winworker.h" #include "winlist.h" diff --git a/otherlibs/win32unix/winworker.h b/otherlibs/win32unix/winworker.h index 2f841c02..6597619a 100644 --- a/otherlibs/win32unix/winworker.h +++ b/otherlibs/win32unix/winworker.h @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: winworker.h,v 1.2 2008/07/31 12:09:18 xleroy Exp $ */ +/* $Id: winworker.h 8961 2008-07-31 12:09:18Z xleroy $ */ #ifndef _WINWORKER_H #define _WINWORKER_H diff --git a/otherlibs/win32unix/write.c b/otherlibs/win32unix/write.c index c1f1916a..e739f4ba 100644 --- a/otherlibs/win32unix/write.c +++ b/otherlibs/win32unix/write.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: write.c,v 1.11 2006/10/18 08:26:54 xleroy Exp $ */ +/* $Id: write.c 9315 2009-07-15 12:19:12Z xleroy $ */ #include #include @@ -66,7 +66,7 @@ CAMLprim value unix_single_write(value fd, value buf, value vofs, value vlen) intnat ofs, len, written; DWORD numbytes, numwritten; char iobuf[UNIX_BUFFER_SIZE]; - DWORD err; + DWORD err = 0; Begin_root (buf); ofs = Long_val(vofs); diff --git a/parsing/asttypes.mli b/parsing/asttypes.mli index 020c00ce..cd6d8c12 100644 --- a/parsing/asttypes.mli +++ b/parsing/asttypes.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: asttypes.mli,v 1.9 2003/04/25 12:27:30 xleroy Exp $ *) +(* $Id: asttypes.mli 5510 2003-04-25 12:27:31Z xleroy $ *) (* Auxiliary a.s.t. types used by parsetree and typedtree. *) diff --git a/parsing/lexer.mli b/parsing/lexer.mli index 2a2f7080..2e6ff1bc 100644 --- a/parsing/lexer.mli +++ b/parsing/lexer.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: lexer.mli,v 1.14 2003/11/21 16:01:13 xleroy Exp $ *) +(* $Id: lexer.mli 5961 2003-11-21 16:01:13Z xleroy $ *) (* The lexical analyzer *) diff --git a/parsing/lexer.mll b/parsing/lexer.mll index 6ddbb5ce..a5b0fd37 100644 --- a/parsing/lexer.mll +++ b/parsing/lexer.mll @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: lexer.mll,v 1.73.24.1 2008/10/08 13:07:13 doligez Exp $ *) +(* $Id: lexer.mll 9079 2008-10-08 13:09:39Z doligez $ *) (* The lexer definition *) diff --git a/parsing/linenum.mli b/parsing/linenum.mli index 6e3ba472..0dc4978d 100644 --- a/parsing/linenum.mli +++ b/parsing/linenum.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: linenum.mli,v 1.2 1999/11/17 18:58:17 xleroy Exp $ *) +(* $Id: linenum.mli 2553 1999-11-17 18:59:06Z xleroy $ *) (* An auxiliary lexer for determining the line number corresponding to a file position, honoring the directives # linenum "filename" *) diff --git a/parsing/linenum.mll b/parsing/linenum.mll index 1225f8c9..13924738 100644 --- a/parsing/linenum.mll +++ b/parsing/linenum.mll @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: linenum.mll,v 1.7 1999/11/17 18:58:17 xleroy Exp $ *) +(* $Id: linenum.mll 2553 1999-11-17 18:59:06Z xleroy $ *) (* An auxiliary lexer for determining the line number corresponding to a file position, honoring the directives # linenum "filename" *) diff --git a/parsing/location.ml b/parsing/location.ml index 2cbe917c..a9b73597 100644 --- a/parsing/location.ml +++ b/parsing/location.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: location.ml,v 1.50 2008/01/11 16:13:16 doligez Exp $ *) +(* $Id: location.ml 8768 2008-01-11 16:13:18Z doligez $ *) open Lexing diff --git a/parsing/location.mli b/parsing/location.mli index 8218946a..9ca64c1f 100644 --- a/parsing/location.mli +++ b/parsing/location.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: location.mli,v 1.17 2007/12/04 13:38:58 doligez Exp $ *) +(* $Id: location.mli 8705 2007-12-04 13:38:58Z doligez $ *) (* Source code locations (ranges of positions), used in parsetree. *) diff --git a/parsing/longident.ml b/parsing/longident.ml index dac8a5b6..a54a33c6 100644 --- a/parsing/longident.ml +++ b/parsing/longident.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: longident.ml,v 1.4 2000/03/25 18:55:44 xleroy Exp $ *) +(* $Id: longident.ml 2990 2000-03-25 18:55:45Z xleroy $ *) type t = Lident of string diff --git a/parsing/longident.mli b/parsing/longident.mli index d4e71bc0..fd360c44 100644 --- a/parsing/longident.mli +++ b/parsing/longident.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: longident.mli,v 1.7 2000/03/25 18:55:44 xleroy Exp $ *) +(* $Id: longident.mli 2990 2000-03-25 18:55:45Z xleroy $ *) (* Long identifiers, used in parsetree. *) diff --git a/parsing/parse.ml b/parsing/parse.ml index 7f9a028e..0ec6abf0 100644 --- a/parsing/parse.ml +++ b/parsing/parse.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: parse.ml,v 1.15 2002/11/01 17:06:46 doligez Exp $ *) +(* $Id: parse.ml 5224 2002-11-01 17:06:47Z doligez $ *) (* Entry points in the parser *) diff --git a/parsing/parse.mli b/parsing/parse.mli index 2f8444a5..8fc222c5 100644 --- a/parsing/parse.mli +++ b/parsing/parse.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: parse.mli,v 1.6 1999/11/17 18:58:19 xleroy Exp $ *) +(* $Id: parse.mli 2553 1999-11-17 18:59:06Z xleroy $ *) (* Entry points in the parser *) diff --git a/parsing/parser.mly b/parsing/parser.mly index 9971af7e..65b9ca34 100644 --- a/parsing/parser.mly +++ b/parsing/parser.mly @@ -10,7 +10,7 @@ /* */ /***********************************************************************/ -/* $Id: parser.mly,v 1.131 2008/07/14 09:09:53 xleroy Exp $ */ +/* $Id: parser.mly 9412 2009-11-09 11:42:39Z weis $ */ /* The parser definition */ @@ -1403,7 +1403,13 @@ signed_constant: | MINUS INT32 { Const_int32(Int32.neg $2) } | MINUS INT64 { Const_int64(Int64.neg $2) } | MINUS NATIVEINT { Const_nativeint(Nativeint.neg $2) } + | PLUS INT { Const_int $2 } + | PLUS FLOAT { Const_float $2 } + | PLUS INT32 { Const_int32 $2 } + | PLUS INT64 { Const_int64 $2 } + | PLUS NATIVEINT { Const_nativeint $2 } ; + /* Identifiers and long identifiers */ ident: diff --git a/parsing/parsetree.mli b/parsing/parsetree.mli index cad68268..3d6ceef9 100644 --- a/parsing/parsetree.mli +++ b/parsing/parsetree.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: parsetree.mli,v 1.45 2008/07/09 13:03:37 mauny Exp $ *) +(* $Id: parsetree.mli 8906 2008-07-09 13:03:38Z mauny $ *) (* Abstract syntax tree produced by parsing *) diff --git a/parsing/printast.ml b/parsing/printast.ml index 181f91e1..aa5b1fd1 100644 --- a/parsing/printast.ml +++ b/parsing/printast.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: printast.ml,v 1.34 2008/07/09 13:03:37 mauny Exp $ *) +(* $Id: printast.ml 8906 2008-07-09 13:03:38Z mauny $ *) open Asttypes;; open Format;; diff --git a/parsing/printast.mli b/parsing/printast.mli index 502d06fa..4a33e3fe 100644 --- a/parsing/printast.mli +++ b/parsing/printast.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: printast.mli,v 1.2 2000/03/06 22:11:39 weis Exp $ *) +(* $Id: printast.mli 2908 2000-03-06 22:12:09Z weis $ *) open Parsetree;; open Format;; diff --git a/parsing/syntaxerr.ml b/parsing/syntaxerr.ml index c5617357..ddaf72ce 100644 --- a/parsing/syntaxerr.ml +++ b/parsing/syntaxerr.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: syntaxerr.ml,v 1.9 2007/12/04 13:38:58 doligez Exp $ *) +(* $Id: syntaxerr.ml 8705 2007-12-04 13:38:58Z doligez $ *) (* Auxiliary type for reporting syntax errors *) diff --git a/parsing/syntaxerr.mli b/parsing/syntaxerr.mli index f129010c..4aa715a2 100644 --- a/parsing/syntaxerr.mli +++ b/parsing/syntaxerr.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: syntaxerr.mli,v 1.4 2000/03/06 22:11:40 weis Exp $ *) +(* $Id: syntaxerr.mli 2908 2000-03-06 22:12:09Z weis $ *) (* Auxiliary type for reporting syntax errors *) diff --git a/stdlib/.cvsignore b/stdlib/.cvsignore index 343f6abd..6aa0cd42 100644 --- a/stdlib/.cvsignore +++ b/stdlib/.cvsignore @@ -4,3 +4,4 @@ labelled-* caml *.annot sys.ml +*.a diff --git a/stdlib/.depend b/stdlib/.depend index faa33821..e3bbebea 100644 --- a/stdlib/.depend +++ b/stdlib/.depend @@ -10,7 +10,7 @@ char.cmi: complex.cmi: digest.cmi: filename.cmi: -format.cmi: buffer.cmi +format.cmi: pervasives.cmi buffer.cmi gc.cmi: genlex.cmi: stream.cmi hashtbl.cmi: @@ -98,8 +98,8 @@ moreLabels.cmo: set.cmi map.cmi hashtbl.cmi moreLabels.cmi moreLabels.cmx: set.cmx map.cmx hashtbl.cmx moreLabels.cmi nativeint.cmo: sys.cmi pervasives.cmi nativeint.cmi nativeint.cmx: sys.cmx pervasives.cmx nativeint.cmi -obj.cmo: marshal.cmi obj.cmi -obj.cmx: marshal.cmx obj.cmi +obj.cmo: marshal.cmi array.cmi obj.cmi +obj.cmx: marshal.cmx array.cmx obj.cmi oo.cmo: camlinternalOO.cmi oo.cmi oo.cmx: camlinternalOO.cmx oo.cmi parsing.cmo: obj.cmi lexing.cmi array.cmi parsing.cmi @@ -108,10 +108,10 @@ pervasives.cmo: pervasives.cmi pervasives.cmx: pervasives.cmi printexc.cmo: printf.cmi obj.cmi buffer.cmi array.cmi printexc.cmi printexc.cmx: printf.cmx obj.cmx buffer.cmx array.cmx printexc.cmi -printf.cmo: string.cmi obj.cmi list.cmi char.cmi buffer.cmi array.cmi \ - printf.cmi -printf.cmx: string.cmx obj.cmx list.cmx char.cmx buffer.cmx array.cmx \ - printf.cmi +printf.cmo: string.cmi pervasives.cmi obj.cmi list.cmi char.cmi buffer.cmi \ + array.cmi printf.cmi +printf.cmx: string.cmx pervasives.cmx obj.cmx list.cmx char.cmx buffer.cmx \ + array.cmx printf.cmi queue.cmo: obj.cmi queue.cmi queue.cmx: obj.cmx queue.cmi random.cmo: string.cmi pervasives.cmi nativeint.cmi int64.cmi int32.cmi \ diff --git a/stdlib/Compflags b/stdlib/Compflags index b95a3257..deaef912 100755 --- a/stdlib/Compflags +++ b/stdlib/Compflags @@ -12,7 +12,7 @@ # # ######################################################################### -# $Id: Compflags,v 1.5 2004/11/25 00:04:15 doligez Exp $ +# $Id: Compflags 6694 2004-11-25 00:06:06Z doligez $ case $1 in pervasives.cm[iox]|pervasives.p.cmx) echo ' -nopervasives';; diff --git a/stdlib/Makefile b/stdlib/Makefile index 502905c6..fb66e0bf 100644 --- a/stdlib/Makefile +++ b/stdlib/Makefile @@ -11,7 +11,7 @@ # # ######################################################################### -# $Id: Makefile,v 1.91 2008/07/24 05:18:31 frisch Exp $ +# $Id: Makefile 8929 2008-07-24 05:18:31Z frisch $ include Makefile.shared diff --git a/stdlib/Makefile.nt b/stdlib/Makefile.nt index a586e770..bdf59c24 100644 --- a/stdlib/Makefile.nt +++ b/stdlib/Makefile.nt @@ -11,7 +11,7 @@ # # ######################################################################### -# $Id: Makefile.nt,v 1.46 2008/07/24 05:18:31 frisch Exp $ +# $Id: Makefile.nt 8929 2008-07-24 05:18:31Z frisch $ include Makefile.shared diff --git a/stdlib/Makefile.shared b/stdlib/Makefile.shared index d214c49a..78343ff4 100755 --- a/stdlib/Makefile.shared +++ b/stdlib/Makefile.shared @@ -11,7 +11,7 @@ # # ######################################################################### -# $Id: Makefile.shared,v 1.2 2008/08/01 16:57:10 mauny Exp $ +# $Id: Makefile.shared 8974 2008-08-01 16:57:10Z mauny $ include ../config/Makefile RUNTIME=../boot/ocamlrun diff --git a/stdlib/StdlibModules b/stdlib/StdlibModules index 498dcc28..5a5246a1 100644 --- a/stdlib/StdlibModules +++ b/stdlib/StdlibModules @@ -1,6 +1,6 @@ # This file lists all standard library modules. -*- Makefile -*- # It is used in particular to know what to expunge in toplevels. -# $Id: StdlibModules,v 1.4 2008/08/01 16:57:10 mauny Exp $ +# $Id: StdlibModules 8974 2008-08-01 16:57:10Z mauny $ STDLIB_MODULES=\ arg \ diff --git a/stdlib/arg.ml b/stdlib/arg.ml index 71706281..af6c9f28 100644 --- a/stdlib/arg.ml +++ b/stdlib/arg.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: arg.ml,v 1.36 2008/01/11 16:13:16 doligez Exp $ *) +(* $Id: arg.ml 8768 2008-01-11 16:13:18Z doligez $ *) type key = string type doc = string diff --git a/stdlib/arg.mli b/stdlib/arg.mli index f4687e74..778ef312 100644 --- a/stdlib/arg.mli +++ b/stdlib/arg.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: arg.mli,v 1.37 2008/01/11 16:13:16 doligez Exp $ *) +(* $Id: arg.mli 8768 2008-01-11 16:13:18Z doligez $ *) (** Parsing of command line arguments. diff --git a/stdlib/array.ml b/stdlib/array.ml index 67844b22..10cb9886 100644 --- a/stdlib/array.ml +++ b/stdlib/array.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: array.ml,v 1.24 2005/04/11 16:43:19 doligez Exp $ *) +(* $Id: array.ml 6834 2005-04-11 16:44:26Z doligez $ *) (* Array operations *) diff --git a/stdlib/array.mli b/stdlib/array.mli index 459a0df4..7ba565b5 100644 --- a/stdlib/array.mli +++ b/stdlib/array.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: array.mli,v 1.40 2005/10/25 18:34:07 doligez Exp $ *) +(* $Id: array.mli 7164 2005-10-25 18:34:07Z doligez $ *) (** Array operations. *) diff --git a/stdlib/arrayLabels.ml b/stdlib/arrayLabels.ml index 238f3a56..1ff61349 100644 --- a/stdlib/arrayLabels.ml +++ b/stdlib/arrayLabels.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: arrayLabels.ml,v 1.3 2001/12/07 13:40:49 xleroy Exp $ *) +(* $Id: arrayLabels.ml 4144 2001-12-07 13:41:02Z xleroy $ *) (* Module [ArrayLabels]: labelled Array module *) diff --git a/stdlib/arrayLabels.mli b/stdlib/arrayLabels.mli index 8bd10255..0b08227d 100644 --- a/stdlib/arrayLabels.mli +++ b/stdlib/arrayLabels.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: arrayLabels.mli,v 1.12 2007/01/22 08:06:09 garrigue Exp $ *) +(* $Id: arrayLabels.mli 7805 2007-01-22 08:06:09Z garrigue $ *) (** Array operations. *) diff --git a/stdlib/buffer.ml b/stdlib/buffer.ml index 666f563e..f43be1d0 100644 --- a/stdlib/buffer.ml +++ b/stdlib/buffer.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: buffer.ml,v 1.19 2008/09/09 08:50:39 weis Exp $ *) +(* $Id: buffer.ml 9340 2009-09-16 15:52:46Z xclerc $ *) (* Extensible buffers *) @@ -39,6 +39,14 @@ let sub b ofs len = end ;; +let blit src srcoff dst dstoff len = + if len < 0 || srcoff < 0 || srcoff > src.position - len + || dstoff < 0 || dstoff > (String.length dst) - len + then invalid_arg "Buffer.blit" + else + String.blit src.buffer srcoff dst dstoff len +;; + let nth b ofs = if ofs < 0 || ofs >= b.position then invalid_arg "Buffer.nth" diff --git a/stdlib/buffer.mli b/stdlib/buffer.mli index d8d74f90..831e9c3a 100644 --- a/stdlib/buffer.mli +++ b/stdlib/buffer.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: buffer.mli,v 1.21 2005/10/25 18:34:07 doligez Exp $ *) +(* $Id: buffer.mli 9340 2009-09-16 15:52:46Z xclerc $ *) (** Extensible string buffers. @@ -48,6 +48,15 @@ current contents of the buffer [b] starting at offset [off] of length [len] bytes. May raise [Invalid_argument] if out of bounds request. The buffer itself is unaffected. *) +val blit : t -> int -> string -> int -> int -> unit +(** [Buffer.blit src srcoff dst dstoff len] copies [len] characters from + the current contents of the buffer [src], starting at offset [srcoff] + to string [dst], starting at character [dstoff]. + + Raise [Invalid_argument] if [srcoff] and [len] do not designate a valid + substring of [src], or if [dstoff] and [len] do not designate a valid + substring of [dst]. *) + val nth : t -> int -> char (** get the n-th character of the buffer. Raise [Invalid_argument] if index out of bounds *) diff --git a/stdlib/callback.ml b/stdlib/callback.ml index 9a3c5db7..29a2031a 100644 --- a/stdlib/callback.ml +++ b/stdlib/callback.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: callback.ml,v 1.5 2003/12/31 14:20:39 doligez Exp $ *) +(* $Id: callback.ml 6044 2003-12-31 14:20:40Z doligez $ *) (* Registering Caml values with the C runtime for later callbacks *) diff --git a/stdlib/callback.mli b/stdlib/callback.mli index b7866fa4..ce0fdc93 100644 --- a/stdlib/callback.mli +++ b/stdlib/callback.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: callback.mli,v 1.6 2005/10/25 18:34:07 doligez Exp $ *) +(* $Id: callback.mli 7164 2005-10-25 18:34:07Z doligez $ *) (** Registering Caml values with the C runtime. diff --git a/stdlib/camlinternalLazy.ml b/stdlib/camlinternalLazy.ml index 2cd2ff64..820e20b4 100644 --- a/stdlib/camlinternalLazy.ml +++ b/stdlib/camlinternalLazy.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: camlinternalLazy.ml,v 1.1 2008/08/01 16:57:10 mauny Exp $ *) +(* $Id: camlinternalLazy.ml 8974 2008-08-01 16:57:10Z mauny $ *) (* Internals of forcing lazy values. *) diff --git a/stdlib/camlinternalLazy.mli b/stdlib/camlinternalLazy.mli index 31c260fa..019fce30 100644 --- a/stdlib/camlinternalLazy.mli +++ b/stdlib/camlinternalLazy.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: camlinternalLazy.mli,v 1.1 2008/08/01 16:57:10 mauny Exp $ *) +(* $Id: camlinternalLazy.mli 8974 2008-08-01 16:57:10Z mauny $ *) (* Internals of forcing lazy values *) diff --git a/stdlib/camlinternalMod.ml b/stdlib/camlinternalMod.ml index f9ba7c8e..e2e82031 100644 --- a/stdlib/camlinternalMod.ml +++ b/stdlib/camlinternalMod.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: camlinternalMod.ml,v 1.6 2008/01/11 16:13:16 doligez Exp $ *) +(* $Id: camlinternalMod.ml 8768 2008-01-11 16:13:18Z doligez $ *) type shape = | Function diff --git a/stdlib/camlinternalMod.mli b/stdlib/camlinternalMod.mli index 7d1c41cb..34006784 100644 --- a/stdlib/camlinternalMod.mli +++ b/stdlib/camlinternalMod.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: camlinternalMod.mli,v 1.1 2004/08/12 12:57:00 xleroy Exp $ *) +(* $Id: camlinternalMod.mli 6586 2004-08-12 12:57:00Z xleroy $ *) type shape = | Function diff --git a/stdlib/camlinternalOO.ml b/stdlib/camlinternalOO.ml index b48b59ed..e5ae4590 100644 --- a/stdlib/camlinternalOO.ml +++ b/stdlib/camlinternalOO.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: camlinternalOO.ml,v 1.16 2008/01/11 16:13:16 doligez Exp $ *) +(* $Id: camlinternalOO.ml 8768 2008-01-11 16:13:18Z doligez $ *) open Obj diff --git a/stdlib/camlinternalOO.mli b/stdlib/camlinternalOO.mli index fb6d4f2d..81113211 100644 --- a/stdlib/camlinternalOO.mli +++ b/stdlib/camlinternalOO.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: camlinternalOO.mli,v 1.10 2006/04/05 02:28:13 garrigue Exp $ *) +(* $Id: camlinternalOO.mli 7372 2006-04-05 02:28:13Z garrigue $ *) (** Run-time support for objects and classes. All functions in this module are for system use only, not for the diff --git a/stdlib/char.ml b/stdlib/char.ml index 91e8cac3..a6b8a5f7 100644 --- a/stdlib/char.ml +++ b/stdlib/char.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: char.ml,v 1.14 2007/04/16 11:06:51 weis Exp $ *) +(* $Id: char.ml 8189 2007-04-16 11:06:51Z weis $ *) (* Character operations *) diff --git a/stdlib/char.mli b/stdlib/char.mli index 4977245b..c3637ac8 100644 --- a/stdlib/char.mli +++ b/stdlib/char.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: char.mli,v 1.17 2005/10/25 18:34:07 doligez Exp $ *) +(* $Id: char.mli 7164 2005-10-25 18:34:07Z doligez $ *) (** Character operations. *) diff --git a/stdlib/complex.ml b/stdlib/complex.ml index 84fbc492..90d42331 100644 --- a/stdlib/complex.ml +++ b/stdlib/complex.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: complex.ml,v 1.6 2005/10/25 18:34:07 doligez Exp $ *) +(* $Id: complex.ml 7164 2005-10-25 18:34:07Z doligez $ *) (* Complex numbers *) diff --git a/stdlib/complex.mli b/stdlib/complex.mli index 84be0843..8c80b5e2 100644 --- a/stdlib/complex.mli +++ b/stdlib/complex.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: complex.mli,v 1.4 2005/10/25 18:34:07 doligez Exp $ *) +(* $Id: complex.mli 7164 2005-10-25 18:34:07Z doligez $ *) (** Complex numbers. diff --git a/stdlib/digest.ml b/stdlib/digest.ml index 39a8d3df..2d030666 100644 --- a/stdlib/digest.ml +++ b/stdlib/digest.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: digest.ml,v 1.10 2003/12/31 14:20:39 doligez Exp $ *) +(* $Id: digest.ml 6044 2003-12-31 14:20:40Z doligez $ *) (* Message digest (MD5) *) diff --git a/stdlib/digest.mli b/stdlib/digest.mli index 065d4864..d3359029 100644 --- a/stdlib/digest.mli +++ b/stdlib/digest.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: digest.mli,v 1.17 2005/10/25 18:34:07 doligez Exp $ *) +(* $Id: digest.mli 7164 2005-10-25 18:34:07Z doligez $ *) (** MD5 message digest. diff --git a/stdlib/filename.ml b/stdlib/filename.ml index b7849968..2fef43af 100644 --- a/stdlib/filename.ml +++ b/stdlib/filename.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: filename.ml,v 1.41.12.1 2008/11/20 18:36:52 doligez Exp $ *) +(* $Id: filename.ml 9339 2009-09-16 14:24:11Z xclerc $ *) let generic_quote quotequote s = let l = String.length s in @@ -194,14 +194,14 @@ external close_desc: int -> unit = "caml_sys_close" let prng = Random.State.make_self_init ();; -let temp_file_name prefix suffix = +let temp_file_name temp_dir prefix suffix = let rnd = (Random.State.bits prng) land 0xFFFFFF in - concat temp_dir_name (Printf.sprintf "%s%06x%s" prefix rnd suffix) + concat temp_dir (Printf.sprintf "%s%06x%s" prefix rnd suffix) ;; -let temp_file prefix suffix = +let temp_file ?(temp_dir=temp_dir_name) prefix suffix = let rec try_name counter = - let name = temp_file_name prefix suffix in + let name = temp_file_name temp_dir prefix suffix in try close_desc(open_desc name [Open_wronly; Open_creat; Open_excl] 0o600); name @@ -209,9 +209,9 @@ let temp_file prefix suffix = if counter >= 1000 then raise e else try_name (counter + 1) in try_name 0 -let open_temp_file ?(mode = [Open_text]) prefix suffix = +let open_temp_file ?(mode = [Open_text]) ?(temp_dir=temp_dir_name) prefix suffix = let rec try_name counter = - let name = temp_file_name prefix suffix in + let name = temp_file_name temp_dir prefix suffix in try (name, open_out_gen (Open_wronly::Open_creat::Open_excl::mode) 0o600 name) diff --git a/stdlib/filename.mli b/stdlib/filename.mli index a9c78379..7d93fd99 100644 --- a/stdlib/filename.mli +++ b/stdlib/filename.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: filename.mli,v 1.35 2007/01/09 13:42:17 doligez Exp $ *) +(* $Id: filename.mli 9339 2009-09-16 14:24:11Z xclerc $ *) (** Operations on file names. *) @@ -22,6 +22,9 @@ val parent_dir_name : string (** The conventional name for the parent of the current directory (e.g. [..] in Unix). *) +val dir_sep : string +(** The directory separator (e.g. [/] in Unix). *) + val concat : string -> string -> string (** [concat dir file] returns a file name that designates file [file] in directory [dir]. *) @@ -68,11 +71,13 @@ val basename : string -> string val dirname : string -> string (** See {!Filename.basename}. *) -val temp_file : string -> string -> string +val temp_file : ?temp_dir: string -> string -> string -> string (** [temp_file prefix suffix] returns the name of a fresh temporary file in the temporary directory. The base name of the temporary file is formed by concatenating [prefix], then a suitably chosen integer number, then [suffix]. + The optional argument [temp_dir] indicates the temporary directory + to use, defaulting to {!Filename.temp_dir_name}. The temporary file is created empty, with permissions [0o600] (readable and writable only by the file owner). The file is guaranteed to be different from any other file that existed when @@ -80,7 +85,7 @@ val temp_file : string -> string -> string *) val open_temp_file : - ?mode: open_flag list -> string -> string -> string * out_channel + ?mode: open_flag list -> ?temp_dir: string -> string -> string -> string * out_channel (** Same as {!Filename.temp_file}, but returns both the name of a fresh temporary file, and an output channel opened (atomically) on this file. This function is more secure than [temp_file]: there diff --git a/stdlib/format.ml b/stdlib/format.ml index 1a41375e..f3545f32 100644 --- a/stdlib/format.ml +++ b/stdlib/format.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: format.ml,v 1.74.2.1 2009/04/29 18:33:31 weis Exp $ *) +(* $Id: format.ml 9244 2009-04-29 18:33:31Z weis $ *) (* A pretty-printing facility and definition of formatters for ``parallel'' (i.e. unrelated or independent) pretty-printing on multiple out channels. *) diff --git a/stdlib/format.mli b/stdlib/format.mli index f0266e57..3af97b25 100644 --- a/stdlib/format.mli +++ b/stdlib/format.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: format.mli,v 1.74 2006/11/17 08:37:07 weis Exp $ *) +(* $Id: format.mli 9420 2009-11-19 10:17:41Z weis $ *) (** Pretty printing. @@ -72,7 +72,6 @@ the evaluation order of printing commands. *) - (** {6 Boxes} *) val open_box : int -> unit;; @@ -112,7 +111,6 @@ val print_char : char -> unit;; val print_bool : bool -> unit;; (** Prints a boolean in the current box. *) - (** {6 Break hints} *) val print_space : unit -> unit;; @@ -156,7 +154,6 @@ val print_if_newline : unit -> unit;; has just been split. Otherwise, ignore the next formatting command. *) - (** {6 Margin} *) val set_margin : int -> unit;; @@ -170,7 +167,6 @@ val set_margin : int -> unit;; val get_margin : unit -> int;; (** Returns the position of the right margin. *) - (** {6 Maximum indentation limit} *) val set_max_indent : int -> unit;; @@ -201,7 +197,6 @@ val get_max_boxes : unit -> int;; val over_max_boxes : unit -> bool;; (** Tests if the maximum number of boxes allowed have already been opened. *) - (** {6 Advanced formatting} *) val open_hbox : unit -> unit;; @@ -235,7 +230,6 @@ val open_hovbox : int -> unit;; When a new line is printed in the box, [d] is added to the current indentation. *) - (** {6 Tabulations} *) val open_tbox : unit -> unit;; @@ -260,8 +254,7 @@ val set_tab : unit -> unit;; (** Sets a tabulation mark at the current insertion point. *) val print_tab : unit -> unit;; -(** [print_tab ()] is equivalent to [print_tbreak (0,0)]. *) - +(** [print_tab ()] is equivalent to [print_tbreak 0 0]. *) (** {6 Ellipsis} *) @@ -272,14 +265,13 @@ val set_ellipsis_text : string -> unit;; val get_ellipsis_text : unit -> string;; (** Return the text of the ellipsis. *) - -(** {6 Tags} *) +(** {6 Semantics Tags} *) type tag = string;; -(** Tags are used to decorate printed entities for user's defined - purposes, e.g. setting font and giving size indications for a - display device, or marking delimitations of semantics entities +(** {i Semantics tags} (or simply {e tags}) are used to decorate printed + entities for user's defined purposes, e.g. setting font and giving size + indications for a display device, or marking delimitation of semantics entities (e.g. HTML or TeX elements or terminal escape sequences). By default, those tags do not influence line breaking calculation: @@ -293,7 +285,7 @@ type tag = string;; material or richer decorated output depending on the treatment of tags. By default, tags are not active, hence the output is not decorated with tag information. Once [set_tags] is set to [true], - the pretty printer engine honors tags and decorates the output + the pretty printer engine honours tags and decorates the output accordingly. When a tag has been opened (or closed), it is both and successively @@ -345,10 +337,9 @@ val get_print_tags : unit -> bool;; val get_mark_tags : unit -> bool;; (** Return the current status of tags printing and tags marking. *) +(** {6 Redirecting the standard formatter output} *) -(** {6 Redirecting formatter output} *) - -val set_formatter_out_channel : out_channel -> unit;; +val set_formatter_out_channel : Pervasives.out_channel -> unit;; (** Redirect the pretty-printer output to the given channel. *) val set_formatter_output_functions : @@ -356,17 +347,56 @@ val set_formatter_output_functions : (** [set_formatter_output_functions out flush] redirects the pretty-printer output to the functions [out] and [flush]. - The [out] function performs the pretty-printer output. It is called + The [out] function performs the pretty-printer string output. It is called with a string [s], a start position [p], and a number of characters [n]; it is supposed to output characters [p] to [p + n - 1] of [s]. The [flush] function is called whenever the pretty-printer is - flushed using [print_flush] or [print_newline]. *) + flushed (via conversion [%!], pretty-printing indications [@?] or [@.], + or using low level function [print_flush] or [print_newline]). *) val get_formatter_output_functions : unit -> (string -> int -> int -> unit) * (unit -> unit);; (** Return the current output functions of the pretty-printer. *) -(** {6 Changing the meaning of printing tags} *) +(** {6 Changing the meaning of standard formatter pretty printing} *) + +(** The [Format] module is versatile enough to let you completely redefine + the meaning of pretty printing: you may provide your own functions to define + how to handle indentation, line breaking, and even printing of all the + characters that have to be printed! *) + +val set_all_formatter_output_functions : + out:(string -> int -> int -> unit) -> + flush:(unit -> unit) -> + newline:(unit -> unit) -> + spaces:(int -> unit) -> + unit;; +(** [set_all_formatter_output_functions out flush outnewline outspace] + redirects the pretty-printer output to the functions [out] and + [flush] as described in [set_formatter_output_functions]. In + addition, the pretty-printer function that outputs a newline is set + to the function [outnewline] and the function that outputs + indentation spaces is set to the function [outspace]. + + This way, you can change the meaning of indentation (which can be + something else than just printing space characters) and the + meaning of new lines opening (which can be connected to any other + action needed by the application at hand). The two functions + [outspace] and [outnewline] are normally connected to [out] and + [flush]: respective default values for [outspace] and [outnewline] + are [out (String.make n ' ') 0 n] and [out "\n" 0 1]. *) + +val get_all_formatter_output_functions : + unit -> + (string -> int -> int -> unit) * + (unit -> unit) * + (unit -> unit) * + (int -> unit);; +(** Return the current output functions of the pretty-printer, + including line breaking and indentation functions. Useful to record the + current setting and restore it afterwards. *) + +(** {6 Changing the meaning of printing semantics tags} *) type formatter_tag_functions = { mark_open_tag : tag -> string; @@ -403,56 +433,22 @@ val get_formatter_tag_functions : unit -> formatter_tag_functions;; (** Return the current tag functions of the pretty-printer. *) -(** {6 Changing the meaning of pretty printing (indentation, line breaking, - and printing material)} *) - -val set_all_formatter_output_functions : - out:(string -> int -> int -> unit) -> - flush:(unit -> unit) -> - newline:(unit -> unit) -> - spaces:(int -> unit) -> - unit;; -(** [set_all_formatter_output_functions out flush outnewline outspace] - redirects the pretty-printer output to the functions [out] and - [flush] as described in [set_formatter_output_functions]. In - addition, the pretty-printer function that outputs a newline is set - to the function [outnewline] and the function that outputs - indentation spaces is set to the function [outspace]. - - This way, you can change the meaning of indentation (which can be - something else than just printing space characters) and the - meaning of new lines opening (which can be connected to any other - action needed by the application at hand). The two functions - [outspace] and [outnewline] are normally connected to [out] and - [flush]: respective default values for [outspace] and [outnewline] - are [out (String.make n ' ') 0 n] and [out "\n" 0 1]. *) - -val get_all_formatter_output_functions : - unit -> - (string -> int -> int -> unit) * - (unit -> unit) * - (unit -> unit) * - (int -> unit);; -(** Return the current output functions of the pretty-printer, - including line breaking and indentation functions. *) - - (** {6 Multiple formatted output} *) type formatter;; (** Abstract data type corresponding to a pretty-printer (also called a - formatter) and all its machinery. - Defining new pretty-printers permits the output of - material in parallel on several channels. - Parameters of a pretty-printer are local to this pretty-printer: - margin, maximum indentation limit, maximum number of boxes - simultaneously opened, ellipsis, and so on, are specific to - each pretty-printer and may be fixed independently. - Given an output channel [oc], a new formatter writing to - that channel is obtained by calling [formatter_of_out_channel oc]. - Alternatively, the [make_formatter] function allocates a new - formatter with explicit output and flushing functions - (convenient to output material to strings for instance). *) + formatter) and all its machinery. + Defining new pretty-printers permits the output of + material in parallel on several channels. + Parameters of a pretty-printer are local to this pretty-printer: + margin, maximum indentation limit, maximum number of boxes + simultaneously opened, ellipsis, and so on, are specific to + each pretty-printer and may be fixed independently. + Given an output channel [oc], a new formatter writing to + that channel is obtained by calling [formatter_of_out_channel oc]. + Alternatively, the [make_formatter] function allocates a new + formatter with explicit output and flushing functions + (convenient to output material to strings for instance). *) val formatter_of_out_channel : out_channel -> formatter;; (** [formatter_of_out_channel oc] returns a new formatter that diff --git a/stdlib/gc.ml b/stdlib/gc.ml index faed5cf9..ca97665b 100644 --- a/stdlib/gc.ml +++ b/stdlib/gc.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: gc.ml,v 1.20.24.1 2008/11/18 10:24:43 doligez Exp $ *) +(* $Id: gc.ml 9131 2008-11-18 10:24:43Z doligez $ *) type stat = { minor_words : float; diff --git a/stdlib/gc.mli b/stdlib/gc.mli index ee56196d..c399bcdd 100644 --- a/stdlib/gc.mli +++ b/stdlib/gc.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: gc.mli,v 1.44.4.1 2008/11/18 10:24:43 doligez Exp $ *) +(* $Id: gc.mli 9131 2008-11-18 10:24:43Z doligez $ *) (** Memory management control and statistics; finalised values. *) diff --git a/stdlib/genlex.ml b/stdlib/genlex.ml index c3dc50bb..12837de6 100644 --- a/stdlib/genlex.ml +++ b/stdlib/genlex.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: genlex.ml,v 1.9 2002/04/18 07:27:42 garrigue Exp $ *) +(* $Id: genlex.ml 4694 2002-04-18 07:27:47Z garrigue $ *) type token = Kwd of string diff --git a/stdlib/genlex.mli b/stdlib/genlex.mli index a9611596..c03ef294 100644 --- a/stdlib/genlex.mli +++ b/stdlib/genlex.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: genlex.mli,v 1.9 2005/10/25 18:34:07 doligez Exp $ *) +(* $Id: genlex.mli 7164 2005-10-25 18:34:07Z doligez $ *) (** A generic lexical analyzer. diff --git a/stdlib/hashtbl.ml b/stdlib/hashtbl.ml index 6e627449..b65c5dc4 100644 --- a/stdlib/hashtbl.ml +++ b/stdlib/hashtbl.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: hashtbl.ml,v 1.27 2005/10/25 18:34:07 doligez Exp $ *) +(* $Id: hashtbl.ml 7164 2005-10-25 18:34:07Z doligez $ *) (* Hash tables *) diff --git a/stdlib/hashtbl.mli b/stdlib/hashtbl.mli index 52c4994b..e66c4864 100644 --- a/stdlib/hashtbl.mli +++ b/stdlib/hashtbl.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: hashtbl.mli,v 1.39 2005/05/04 13:36:47 doligez Exp $ *) +(* $Id: hashtbl.mli 6854 2005-05-04 13:36:47Z doligez $ *) (** Hash tables and hash functions. diff --git a/stdlib/header.c b/stdlib/header.c index 9ec345d2..f3d8a983 100644 --- a/stdlib/header.c +++ b/stdlib/header.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: header.c,v 1.17 2001/12/07 13:40:52 xleroy Exp $ */ +/* $Id: header.c 4144 2001-12-07 13:41:02Z xleroy $ */ /* The launcher for bytecode executables (if #! is not working) */ diff --git a/stdlib/headernt.c b/stdlib/headernt.c index cf459fa5..6e742541 100644 --- a/stdlib/headernt.c +++ b/stdlib/headernt.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: headernt.c,v 1.20 2007/02/07 10:31:36 ertai Exp $ */ +/* $Id: headernt.c 7829 2007-02-07 10:31:36Z ertai $ */ #define STRICT #define WIN32_LEAN_AND_MEAN diff --git a/stdlib/int32.ml b/stdlib/int32.ml index a81acec0..3eb10285 100644 --- a/stdlib/int32.ml +++ b/stdlib/int32.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: int32.ml,v 1.10 2007/01/30 09:34:36 xleroy Exp $ *) +(* $Id: int32.ml 7818 2007-01-30 09:34:36Z xleroy $ *) (* Module [Int32]: 32-bit integers *) diff --git a/stdlib/int32.mli b/stdlib/int32.mli index 63c2ffd3..eef35333 100644 --- a/stdlib/int32.mli +++ b/stdlib/int32.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: int32.mli,v 1.19 2008/01/11 16:13:16 doligez Exp $ *) +(* $Id: int32.mli 8768 2008-01-11 16:13:18Z doligez $ *) (** 32-bit integers. diff --git a/stdlib/int64.ml b/stdlib/int64.ml index 58f71f40..6d7168a2 100644 --- a/stdlib/int64.ml +++ b/stdlib/int64.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: int64.ml,v 1.12 2007/01/30 09:34:36 xleroy Exp $ *) +(* $Id: int64.ml 7818 2007-01-30 09:34:36Z xleroy $ *) (* Module [Int64]: 64-bit integers *) diff --git a/stdlib/int64.mli b/stdlib/int64.mli index c50dd746..44fabfe3 100644 --- a/stdlib/int64.mli +++ b/stdlib/int64.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: int64.mli,v 1.20 2008/01/11 16:13:16 doligez Exp $ *) +(* $Id: int64.mli 8768 2008-01-11 16:13:18Z doligez $ *) (** 64-bit integers. diff --git a/stdlib/lazy.ml b/stdlib/lazy.ml index 57c41fd9..15becc85 100644 --- a/stdlib/lazy.ml +++ b/stdlib/lazy.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: lazy.ml,v 1.13 2008/08/01 16:57:10 mauny Exp $ *) +(* $Id: lazy.ml 8974 2008-08-01 16:57:10Z mauny $ *) (* Module [Lazy]: deferred computations *) diff --git a/stdlib/lazy.mli b/stdlib/lazy.mli index cb613e0d..6d929044 100644 --- a/stdlib/lazy.mli +++ b/stdlib/lazy.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: lazy.mli,v 1.11 2008/08/01 16:57:10 mauny Exp $ *) +(* $Id: lazy.mli 8974 2008-08-01 16:57:10Z mauny $ *) (** Deferred computations. *) diff --git a/stdlib/lexing.ml b/stdlib/lexing.ml index a82ae352..78b41517 100644 --- a/stdlib/lexing.ml +++ b/stdlib/lexing.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: lexing.ml,v 1.25 2008/01/22 16:27:53 doligez Exp $ *) +(* $Id: lexing.ml 8787 2008-01-22 16:27:53Z doligez $ *) (* The run-time library for lexers generated by camllex *) diff --git a/stdlib/lexing.mli b/stdlib/lexing.mli index 482d2cc8..591a74d0 100644 --- a/stdlib/lexing.mli +++ b/stdlib/lexing.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: lexing.mli,v 1.33.4.1 2008/10/08 13:07:13 doligez Exp $ *) +(* $Id: lexing.mli 9079 2008-10-08 13:09:39Z doligez $ *) (** The run-time library for lexers generated by [ocamllex]. *) diff --git a/stdlib/list.ml b/stdlib/list.ml index e51b0b76..80a76c49 100644 --- a/stdlib/list.ml +++ b/stdlib/list.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: list.ml,v 1.33 2006/09/11 12:18:00 doligez Exp $ *) +(* $Id: list.ml 7597 2006-09-11 12:18:00Z doligez $ *) (* List operations *) diff --git a/stdlib/list.mli b/stdlib/list.mli index 0ee4adca..26c53869 100644 --- a/stdlib/list.mli +++ b/stdlib/list.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: list.mli,v 1.47 2006/09/11 12:18:00 doligez Exp $ *) +(* $Id: list.mli 7597 2006-09-11 12:18:00Z doligez $ *) (** List operations. diff --git a/stdlib/listLabels.ml b/stdlib/listLabels.ml index e7f31fc2..896caf9b 100644 --- a/stdlib/listLabels.ml +++ b/stdlib/listLabels.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: listLabels.ml,v 1.3 2001/12/07 13:40:54 xleroy Exp $ *) +(* $Id: listLabels.ml 4144 2001-12-07 13:41:02Z xleroy $ *) (* Module [ListLabels]: labelled List module *) diff --git a/stdlib/listLabels.mli b/stdlib/listLabels.mli index 730a974f..b9f39366 100644 --- a/stdlib/listLabels.mli +++ b/stdlib/listLabels.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: listLabels.mli,v 1.12 2007/01/22 08:06:09 garrigue Exp $ *) +(* $Id: listLabels.mli 7805 2007-01-22 08:06:09Z garrigue $ *) (** List operations. diff --git a/stdlib/map.ml b/stdlib/map.ml index 9423ae85..fefbee68 100644 --- a/stdlib/map.ml +++ b/stdlib/map.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: map.ml,v 1.17 2005/08/13 20:59:37 doligez Exp $ *) +(* $Id: map.ml 7019 2005-08-13 20:59:37Z doligez $ *) module type OrderedType = sig diff --git a/stdlib/map.mli b/stdlib/map.mli index 877b0f9e..08290248 100644 --- a/stdlib/map.mli +++ b/stdlib/map.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: map.mli,v 1.33.18.1 2009/03/21 16:35:48 xleroy Exp $ *) +(* $Id: map.mli 9190 2009-03-21 16:35:48Z xleroy $ *) (** Association tables over ordered types. diff --git a/stdlib/marshal.ml b/stdlib/marshal.ml index 41f299c6..f2eaf00d 100644 --- a/stdlib/marshal.ml +++ b/stdlib/marshal.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: marshal.ml,v 1.9 2005/10/25 18:34:07 doligez Exp $ *) +(* $Id: marshal.ml 7164 2005-10-25 18:34:07Z doligez $ *) type extern_flags = No_sharing diff --git a/stdlib/marshal.mli b/stdlib/marshal.mli index a453708b..16ba32c1 100644 --- a/stdlib/marshal.mli +++ b/stdlib/marshal.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: marshal.mli,v 1.14 2005/10/25 18:34:07 doligez Exp $ *) +(* $Id: marshal.mli 7164 2005-10-25 18:34:07Z doligez $ *) (** Marshaling of data structures. diff --git a/stdlib/moreLabels.ml b/stdlib/moreLabels.ml index 19a97442..567c316f 100644 --- a/stdlib/moreLabels.ml +++ b/stdlib/moreLabels.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: moreLabels.ml,v 1.2 2001/12/07 13:40:55 xleroy Exp $ *) +(* $Id: moreLabels.ml 4144 2001-12-07 13:41:02Z xleroy $ *) (* Module [MoreLabels]: meta-module for compatibility labelled libraries *) diff --git a/stdlib/moreLabels.mli b/stdlib/moreLabels.mli index fa6b3550..96d98a29 100644 --- a/stdlib/moreLabels.mli +++ b/stdlib/moreLabels.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: moreLabels.mli,v 1.12 2004/04/23 10:01:34 xleroy Exp $ *) +(* $Id: moreLabels.mli 6250 2004-04-23 10:01:34Z xleroy $ *) (** Extra labeled libraries. diff --git a/stdlib/nativeint.ml b/stdlib/nativeint.ml index 83c2a9ba..126e4d38 100644 --- a/stdlib/nativeint.ml +++ b/stdlib/nativeint.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: nativeint.ml,v 1.11 2007/01/30 09:34:36 xleroy Exp $ *) +(* $Id: nativeint.ml 7818 2007-01-30 09:34:36Z xleroy $ *) (* Module [Nativeint]: processor-native integers *) diff --git a/stdlib/nativeint.mli b/stdlib/nativeint.mli index 19f7bb42..dd3fd7f7 100644 --- a/stdlib/nativeint.mli +++ b/stdlib/nativeint.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: nativeint.mli,v 1.18 2005/10/25 18:34:07 doligez Exp $ *) +(* $Id: nativeint.mli 7164 2005-10-25 18:34:07Z doligez $ *) (** Processor-native integers. diff --git a/stdlib/obj.ml b/stdlib/obj.ml index 86d06258..32154e56 100644 --- a/stdlib/obj.ml +++ b/stdlib/obj.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: obj.ml,v 1.24 2008/01/29 13:11:15 doligez Exp $ *) +(* $Id: obj.ml 9482 2009-12-22 13:32:12Z doligez $ *) (* Operations on internal representations of values *) @@ -27,9 +27,12 @@ external set_tag : t -> int -> unit = "caml_obj_set_tag" external size : t -> int = "%obj_size" external field : t -> int -> t = "%obj_field" external set_field : t -> int -> t -> unit = "%obj_set_field" +let double_field x i = Array.get (obj x : float array) i +let set_double_field x i v = Array.set (obj x : float array) i v external new_block : int -> int -> t = "caml_obj_block" external dup : t -> t = "caml_obj_dup" external truncate : t -> int -> unit = "caml_obj_truncate" +external add_offset : t -> int -> t = "caml_obj_add_offset" let marshal (obj : t) = Marshal.to_string obj [] diff --git a/stdlib/obj.mli b/stdlib/obj.mli index 1d693081..d3a8c064 100644 --- a/stdlib/obj.mli +++ b/stdlib/obj.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: obj.mli,v 1.30 2008/01/29 13:11:15 doligez Exp $ *) +(* $Id: obj.mli 9482 2009-12-22 13:32:12Z doligez $ *) (** Operations on internal representations of values. @@ -28,11 +28,14 @@ external is_int : t -> bool = "%obj_is_int" external tag : t -> int = "caml_obj_tag" external set_tag : t -> int -> unit = "caml_obj_set_tag" external size : t -> int = "%obj_size" -external truncate : t -> int -> unit = "caml_obj_truncate" external field : t -> int -> t = "%obj_field" external set_field : t -> int -> t -> unit = "%obj_set_field" +val double_field : t -> int -> float +val set_double_field : t -> int -> float -> unit external new_block : int -> int -> t = "caml_obj_block" external dup : t -> t = "caml_obj_dup" +external truncate : t -> int -> unit = "caml_obj_truncate" +external add_offset : t -> int -> t = "caml_obj_add_offset" val lazy_tag : int val closure_tag : int diff --git a/stdlib/oo.ml b/stdlib/oo.ml index 33245e3c..c7322c84 100644 --- a/stdlib/oo.ml +++ b/stdlib/oo.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: oo.ml,v 1.27 2004/05/26 11:10:52 garrigue Exp $ *) +(* $Id: oo.ml 6331 2004-05-26 11:10:52Z garrigue $ *) let copy = CamlinternalOO.copy external id : < .. > -> int = "%field1" diff --git a/stdlib/oo.mli b/stdlib/oo.mli index 623fe1eb..7ff2f1bc 100644 --- a/stdlib/oo.mli +++ b/stdlib/oo.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: oo.mli,v 1.28 2004/05/26 11:10:52 garrigue Exp $ *) +(* $Id: oo.mli 6331 2004-05-26 11:10:52Z garrigue $ *) (** Operations on objects *) diff --git a/stdlib/parsing.ml b/stdlib/parsing.ml index 476a04da..ce249174 100644 --- a/stdlib/parsing.ml +++ b/stdlib/parsing.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: parsing.ml,v 1.19.2.1 2009/01/13 15:17:51 doligez Exp $ *) +(* $Id: parsing.ml 9163 2009-01-13 15:17:51Z doligez $ *) (* The parsing engine *) diff --git a/stdlib/parsing.mli b/stdlib/parsing.mli index a546a092..250a10cf 100644 --- a/stdlib/parsing.mli +++ b/stdlib/parsing.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: parsing.mli,v 1.19 2008/08/06 09:38:21 xleroy Exp $ *) +(* $Id: parsing.mli 8983 2008-08-06 09:38:25Z xleroy $ *) (** The run-time library for parsers generated by [ocamlyacc]. *) diff --git a/stdlib/pervasives.ml b/stdlib/pervasives.ml index 01667568..1c8c3d4e 100644 --- a/stdlib/pervasives.ml +++ b/stdlib/pervasives.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: pervasives.ml,v 1.81 2006/11/17 08:34:01 weis Exp $ *) +(* $Id: pervasives.ml 9412 2009-11-09 11:42:39Z weis $ *) (* type 'a option = None | Some of 'a *) @@ -398,7 +398,7 @@ external incr: int ref -> unit = "%incr" external decr: int ref -> unit = "%decr" (* Formats *) -type ('a, 'b, 'c, 'd) format4 = ('a, 'b, 'c, 'c, 'c, 'd) format6 +type ('a, 'b, 'c, 'd) format4 = ('a, 'b, 'c, 'c, 'c, 'd) format6 type ('a, 'b, 'c) format = ('a, 'b, 'c, 'c) format4 @@ -416,7 +416,8 @@ let (( ^^ ) : ('f, 'b, 'c, 'e, 'g, 'h) format6 -> ('a, 'b, 'c, 'd, 'g, 'h) format6) = fun fmt1 fmt2 -> - string_to_format (format_to_string fmt1 ^ format_to_string fmt2);; + string_to_format (format_to_string fmt1 ^ "%," ^ format_to_string fmt2) +;; let string_of_format fmt = let s = format_to_string fmt in diff --git a/stdlib/pervasives.mli b/stdlib/pervasives.mli index 935db8de..e07eeda8 100644 --- a/stdlib/pervasives.mli +++ b/stdlib/pervasives.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: pervasives.mli,v 1.113.2.2 2009/04/30 09:05:57 weis Exp $ *) +(* $Id: pervasives.mli 9352 2009-09-24 09:17:01Z doligez $ *) (** The initially opened module. @@ -71,7 +71,7 @@ external ( >= ) : 'a -> 'a -> bool = "%greaterequal" The ordering is compatible with [(=)]. As in the case of [(=)], mutable structures are compared by contents. Comparison between functional values raises [Invalid_argument]. - Comparison between cyclic structures does not terminate. *) + Comparison between cyclic structures may not terminate. *) external compare : 'a -> 'a -> int = "%compare" (** [compare x y] returns [0] if [x] is equal to [y], @@ -93,10 +93,14 @@ external compare : 'a -> 'a -> int = "%compare" the {!List.sort} and {!Array.sort} functions. *) val min : 'a -> 'a -> 'a -(** Return the smaller of the two arguments. *) +(** Return the smaller of the two arguments. + The result is unspecified if one of the arguments contains + the float value [nan]. *) val max : 'a -> 'a -> 'a -(** Return the greater of the two arguments. *) +(** Return the greater of the two arguments. + The result is unspecified if one of the arguments contains + the float value [nan]. *) external ( == ) : 'a -> 'a -> bool = "%eq" (** [e1 == e2] tests for physical equality of [e1] and [e2]. @@ -226,8 +230,8 @@ external ( asr ) : int -> int -> int = "%asrint" [neg_infinity] for [-1.0 /. 0.0], and [nan] (``not a number'') for [0.0 /. 0.0]. These special numbers then propagate through floating-point computations as expected: for instance, - [1.0 /. infinity] is [0.0], and any operation with [nan] as - argument returns [nan] as result. + [1.0 /. infinity] is [0.0], and any arithmetic operation with [nan] + as argument returns [nan] as result. *) external ( ~-. ) : float -> float = "%negfloat" diff --git a/stdlib/printexc.ml b/stdlib/printexc.ml index 4cd0eeca..42dda408 100644 --- a/stdlib/printexc.ml +++ b/stdlib/printexc.ml @@ -11,10 +11,12 @@ (* *) (***********************************************************************) -(* $Id: printexc.ml,v 1.19 2008/03/14 13:47:24 xleroy Exp $ *) +(* $Id: printexc.ml 9335 2009-09-16 13:34:57Z xclerc $ *) open Printf;; +let printers = ref [] + let locfmt = format_of_string "File \"%s\", line %d, characters %d-%d: %s";; let field x i = @@ -48,9 +50,16 @@ let to_string = function | Assert_failure(file, line, char) -> sprintf locfmt file line char (char+6) "Assertion failed" | x -> - let x = Obj.repr x in - let constructor = (Obj.magic(Obj.field (Obj.field x 0) 0) : string) in - constructor ^ (fields x) + let rec conv = function + | hd :: tl -> + (match try hd x with _ -> None with + | Some s -> s + | None -> conv tl) + | [] -> + let x = Obj.repr x in + let constructor = (Obj.magic(Obj.field (Obj.field x 0) 0) : string) in + constructor ^ (fields x) in + conv !printers ;; let print fct arg = @@ -125,3 +134,5 @@ let get_backtrace () = external record_backtrace: bool -> unit = "caml_record_backtrace" external backtrace_status: unit -> bool = "caml_backtrace_status" +let register_printer fn = + printers := fn :: !printers diff --git a/stdlib/printexc.mli b/stdlib/printexc.mli index 32cdc67f..21d3e9af 100644 --- a/stdlib/printexc.mli +++ b/stdlib/printexc.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: printexc.mli,v 1.13 2008/03/14 13:47:24 xleroy Exp $ *) +(* $Id: printexc.mli 9335 2009-09-16 13:34:57Z xclerc $ *) (** Facilities for printing exceptions. *) @@ -57,3 +57,13 @@ val record_backtrace: bool -> unit val backtrace_status: unit -> bool (** [Printexc.backtrace_status()] returns [true] if exception backtraces are currently recorded, [false] if not. *) + +val register_printer : (exn -> string option) -> unit +(** [Printexc.register_printer fn] registers [fn] as an exception printer. + The printer should return [None] if it does not know how to convert + the passed exception, and [Some s] with [s] the resulting string if + it can convert the passed exception. + When converting an exception into a string, the printers will be invoked + in the reverse order of their registrations, until a printer returns + a [Some s] value (if no such printer exists, the runtime will use a + generic printer). *) diff --git a/stdlib/printf.ml b/stdlib/printf.ml index 920afdb4..bc50ca75 100644 --- a/stdlib/printf.ml +++ b/stdlib/printf.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: printf.ml,v 1.58.2.2 2009/04/29 19:02:05 weis Exp $ *) +(* $Id: printf.ml 9412 2009-11-09 11:42:39Z weis $ *) external format_float: string -> float -> string = "caml_format_float" @@ -39,8 +39,8 @@ module Sformat = struct let add_int_index i idx = index_of_int (i + int_of_index idx);; let succ_index = add_int_index 1;; - (* Litteral position are one-based (hence pred p instead of p). *) - let index_of_litteral_position p = index_of_int (pred p);; + (* Literal position are one-based (hence pred p instead of p). *) + let index_of_literal_position p = index_of_int (pred p);; external length : ('a, 'b, 'c, 'd, 'e, 'f) format6 -> int = "%string_length" @@ -122,12 +122,12 @@ let extract_format fmt start stop widths = let skip_positional_spec start = match Sformat.unsafe_get fmt start with | '0'..'9' -> - let rec skip_int_litteral i = + let rec skip_int_literal i = match Sformat.unsafe_get fmt i with - | '0'..'9' -> skip_int_litteral (succ i) + | '0'..'9' -> skip_int_literal (succ i) | '$' -> succ i | _ -> start in - skip_int_litteral (succ start) + skip_int_literal (succ start) | _ -> start in let start = skip_positional_spec (succ start) in let b = Buffer.create (stop - start + 10) in @@ -140,7 +140,7 @@ let extract_format fmt start stop widths = let i = skip_positional_spec (succ i) in fill_format i t | ('*', []) -> - assert false (* should not happen *) + assert false (* Should not happen since this is ill-typed. *) | (c, _) -> Buffer.add_char b c; fill_format (succ i) widths in @@ -161,7 +161,7 @@ let extract_format_float conv fmt start stop widths = let sfmt = extract_format fmt start stop widths in match conv with | 'F' -> - sfmt.[String.length sfmt - 1] <- 'f'; + sfmt.[String.length sfmt - 1] <- 'g'; sfmt | _ -> sfmt ;; @@ -169,7 +169,7 @@ let extract_format_float conv fmt start stop widths = (* Returns the position of the next character following the meta format string, starting from position [i], inside a given format [fmt]. According to the character [conv], the meta format string is - enclosed by the delimitors %{ and %} (when [conv = '{']) or %( and + enclosed by the delimiters %{ and %} (when [conv = '{']) or %( and %) (when [conv = '(']). Hence, [sub_format] returns the index of the character following the [')'] or ['}'] that ends the meta format, according to the character [conv]. *) @@ -215,7 +215,7 @@ let iter_on_format_args fmt add_conv add_char = and scan_conv skip i = if i > lim then incomplete_format fmt else match Sformat.unsafe_get fmt i with - | '%' | '!' -> succ i + | '%' | '!' | ',' -> succ i | 's' | 'S' | '[' -> add_conv skip i 's' | 'c' | 'C' -> add_conv skip i 'c' | 'd' | 'i' |'o' | 'u' | 'x' | 'X' | 'N' -> add_conv skip i 'i' @@ -307,6 +307,7 @@ let ac_of_format fmt = let count_arguments_of_format fmt = let ac = ac_of_format fmt in + (* For printing only regular arguments have to be counted. *) ac.ac_rglr ;; @@ -384,7 +385,7 @@ type positional_specification = Unfortunately, the type of a parameter specified via a [*$] positional specification should be the type of the corresponding argument to - [printf], hence this sould be the type of the $n$-th argument to [printf] + [printf], hence this should be the type of the $n$-th argument to [printf] with $n$ being the {\em value} of the integer argument defining [*]; we clearly cannot statically guess the value of this parameter in the general case. Put it another way: this means type dependency, which is completely @@ -393,19 +394,19 @@ type positional_specification = let scan_positional_spec fmt got_spec n i = match Sformat.unsafe_get fmt i with | '0'..'9' as d -> - let rec get_int_litteral accu j = + let rec get_int_literal accu j = match Sformat.unsafe_get fmt j with | '0'..'9' as d -> - get_int_litteral (10 * accu + (int_of_char d - 48)) (succ j) + get_int_literal (10 * accu + (int_of_char d - 48)) (succ j) | '$' -> if accu = 0 then failwith "printf: bad positional specification (0)." else - got_spec (Spec_index (Sformat.index_of_litteral_position accu)) (succ j) + got_spec (Spec_index (Sformat.index_of_literal_position accu)) (succ j) (* Not a positional specification: tell so the caller, and go back to scanning the format from the original [i] position we were called at first. *) | _ -> got_spec Spec_none i in - get_int_litteral (int_of_char d - 48) (succ i) + get_int_literal (int_of_char d - 48) (succ i) (* No positional specification: tell so the caller, and go back to scanning the format from the original [i] position. *) | _ -> got_spec Spec_none i @@ -427,15 +428,12 @@ let get_index spec n = | Spec_index p -> p ;; -(* Format a float argument as a valid Caml lexem. *) -let format_float_lexem = - let valid_float_lexem sfmt s = +(* Format a float argument as a valid Caml lexeme. *) +let format_float_lexeme = + let valid_float_lexeme sfmt s = let l = String.length s in if l = 0 then "nan" else - let add_dot sfmt s = - if s.[0] = ' ' || s.[0] = '+' || s.[0] = '0' - then String.sub s 1 (l - 1) ^ "." - else String.sub s 0 (l - 1) ^ "." in + let add_dot sfmt s = s ^ "." in let rec loop i = if i >= l then add_dot sfmt s else @@ -448,7 +446,7 @@ let format_float_lexem = (fun sfmt x -> let s = format_float sfmt x in match classify_float x with - | FP_normal | FP_subnormal | FP_zero -> valid_float_lexem sfmt s + | FP_normal | FP_subnormal | FP_zero -> valid_float_lexeme sfmt s | FP_nan | FP_infinite -> s) ;; @@ -470,8 +468,8 @@ let format_float_lexem = (* Note: here, rather than test explicitly against [Sformat.length fmt] to detect the end of the format, we use [Sformat.unsafe_get] and - rely on the fact that we'll get a "nul" character if we access - one past the end of the string. These "nul" characters are then + rely on the fact that we'll get a "null" character if we access + one past the end of the string. These "null" characters are then caught by the [_ -> bad_conversion] clauses below. Don't do this at home, kids. *) let scan_format fmt args n pos cont_s cont_a cont_t cont_f cont_m = @@ -502,7 +500,7 @@ let scan_format fmt args n pos cont_s cont_a cont_t cont_f cont_m = let (x : string) = get_arg spec n in let x = if conv = 's' then x else "\"" ^ String.escaped x ^ "\"" in let s = - (* optimize for common case %s *) + (* Optimize for common case %s *) if i = succ pos then x else format_string (extract_format fmt pos i widths) x in cont_s (next_index spec n) s (succ i) @@ -523,7 +521,8 @@ let scan_format fmt args n pos cont_s cont_a cont_t cont_f cont_m = | 'F' as conv -> let (x : float) = get_arg spec n in let s = - format_float_lexem (extract_format_float conv fmt pos i widths) x in + if widths = [] then Pervasives.string_of_float x else + format_float_lexeme (extract_format_float conv fmt pos i widths) x in cont_s (next_index spec n) s (succ i) | 'B' | 'b' -> let (x : bool) = get_arg spec n in @@ -560,6 +559,7 @@ let scan_format fmt args n pos cont_s cont_a cont_t cont_f cont_m = let s = format_int (extract_format_int 'n' fmt pos i widths) x in cont_s (next_index spec n) s (succ i) end + | ',' -> cont_s n "" (succ i) | '!' -> cont_f n (succ i) | '{' | '(' as conv (* ')' '}' *) -> let (xf : ('a, 'b, 'c, 'd, 'e, 'f) format6) = get_arg spec n in diff --git a/stdlib/printf.mli b/stdlib/printf.mli index 6249bcc0..450b497e 100644 --- a/stdlib/printf.mli +++ b/stdlib/printf.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: printf.mli,v 1.57 2008/09/27 20:50:01 weis Exp $ *) +(* $Id: printf.mli 9421 2009-11-19 10:21:42Z weis $ *) (** Formatted output functions. *) @@ -78,6 +78,7 @@ val fprintf : out_channel -> ('a, out_channel, unit) format -> 'a type as [fmt]. - [!]: take no argument and flush the output. - [%]: take no argument and output one [%] character. + - [,]: the no-op delimiter for conversion specifications. The optional [flags] are: - [-]: left-justify the output (default is right justification). diff --git a/stdlib/queue.ml b/stdlib/queue.ml index be4305a0..d7d66a84 100644 --- a/stdlib/queue.ml +++ b/stdlib/queue.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: queue.ml,v 1.10 2005/08/26 12:10:47 doligez Exp $ *) +(* $Id: queue.ml 7032 2005-08-26 12:10:47Z doligez $ *) exception Empty diff --git a/stdlib/queue.mli b/stdlib/queue.mli index f3466400..d8b802e9 100644 --- a/stdlib/queue.mli +++ b/stdlib/queue.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: queue.mli,v 1.16 2002/06/27 08:48:26 xleroy Exp $ *) +(* $Id: queue.mli 4956 2002-06-27 08:48:26Z xleroy $ *) (** First-in first-out queues. diff --git a/stdlib/random.ml b/stdlib/random.ml index acdb3343..f38a067e 100644 --- a/stdlib/random.ml +++ b/stdlib/random.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: random.ml,v 1.22 2003/12/16 18:09:43 doligez Exp $ *) +(* $Id: random.ml 6023 2003-12-16 18:09:44Z doligez $ *) (* "Linear feedback shift register" pseudo-random number generator. *) (* References: Robert Sedgewick, "Algorithms", Addison-Wesley *) diff --git a/stdlib/random.mli b/stdlib/random.mli index 37f05306..56785e0b 100644 --- a/stdlib/random.mli +++ b/stdlib/random.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: random.mli,v 1.17 2007/02/09 13:31:15 doligez Exp $ *) +(* $Id: random.mli 7849 2007-02-09 13:31:15Z doligez $ *) (** Pseudo-random number generators (PRNG). *) diff --git a/stdlib/scanf.ml b/stdlib/scanf.ml index 7ec4f83d..93c1ace8 100644 --- a/stdlib/scanf.ml +++ b/stdlib/scanf.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: scanf.ml,v 1.80.2.2 2009/04/29 18:27:37 weis Exp $ *) +(* $Id: scanf.ml 9417 2009-11-19 09:46:46Z weis $ *) (* The run-time library for scanners. *) @@ -47,16 +47,16 @@ val checked_peek_char : scanbuf -> char;; input buffer has reached an end of file, the function raises exception [End_of_file]. *) -val store_char : scanbuf -> char -> int -> int;; -(* [Scanning.store_char ib c lim] adds [c] to the token buffer +val store_char : int -> scanbuf -> char -> int;; +(* [Scanning.store_char lim ib c] adds [c] to the token buffer of the scanning buffer. It also advances the scanning buffer for one character and returns [lim - 1], indicating the new limit for the length of the current token. *) -val skip_char : scanbuf -> int -> int;; -(* [Scanning.skip_char ib lim] ignores the current character. *) +val skip_char : int -> scanbuf -> int;; +(* [Scanning.skip_char lim ib] ignores the current character. *) -val ignore_char : scanbuf -> int -> int;; +val ignore_char : int -> scanbuf -> int;; (* [Scanning.ignore_char ib lim] ignores the current character and decrements the limit. *) @@ -186,16 +186,16 @@ let token ib = let token_count ib = ib.token_count;; -let skip_char ib max = +let skip_char max ib = invalidate_current_char ib; max ;; -let ignore_char ib max = skip_char ib (max - 1);; +let ignore_char max ib = skip_char (max - 1) ib;; -let store_char ib c max = +let store_char max ib c = Buffer.add_char ib.tokbuf c; - ignore_char ib max + ignore_char max ib ;; let default_token_buffer_size = 1024;; @@ -379,8 +379,8 @@ let incomplete_format fmt = (Sformat.to_string fmt)) ;; -let bad_float () = bad_input "no dot or exponent part found in -float token" +let bad_float () = + bad_input "no dot or exponent part found in float token" ;; let character_mismatch_err c ci = @@ -407,11 +407,18 @@ let compatible_format_type fmt1 fmt2 = In this case, the character c has been explicitely specified in the format as being mandatory in the input; hence we should fail with End_of_file in case of end_of_input. - That's why we use checked_peek_char here. *) -let check_char ib c = + That's why we use checked_peek_char here. + We are also careful to treat "\r\n" in the input as a end of line marker: it + always matches a '\n' specification in the input format string. + *) +let rec check_char ib c = let ci = Scanning.checked_peek_char ib in - if ci = c then Scanning.invalidate_current_char ib else - character_mismatch c ci + if ci = c then Scanning.invalidate_current_char ib else begin + match ci with + | '\r' when c = '\n' -> + Scanning.invalidate_current_char ib; check_char ib '\n' + | _ -> character_mismatch c ci + end ;; (* Checks that the current char is indeed one of the stopper characters, @@ -500,10 +507,10 @@ let rec scan_decimal_digits max ib = if Scanning.eof ib then max else match c with | '0' .. '9' as c -> - let max = Scanning.store_char ib c max in + let max = Scanning.store_char max ib c in scan_decimal_digits max ib | '_' -> - let max = Scanning.ignore_char ib max in + let max = Scanning.ignore_char max ib in scan_decimal_digits max ib | _ -> max ;; @@ -512,7 +519,7 @@ let scan_decimal_digits_plus max ib = let c = Scanning.checked_peek_char ib in match c with | '0' .. '9' -> - let max = Scanning.store_char ib c max in + let max = Scanning.store_char max ib c in scan_decimal_digits max ib | c -> bad_input_char c ;; @@ -526,16 +533,16 @@ let scan_digits_plus digitp max ib = if Scanning.eof ib then max else match c with | c when digitp c -> - let max = Scanning.store_char ib c max in + let max = Scanning.store_char max ib c in scan_digits max | '_' -> - let max = Scanning.ignore_char ib max in + let max = Scanning.ignore_char max ib in scan_digits max | _ -> max in let c = Scanning.checked_peek_char ib in if digitp c then - let max = Scanning.store_char ib c max in + let max = Scanning.store_char max ib c in scan_digits max else bad_input_char c ;; @@ -567,8 +574,8 @@ let scan_unsigned_decimal_int = scan_decimal_digits_plus;; let scan_sign max ib = let c = Scanning.checked_peek_char ib in match c with - | '+' -> Scanning.store_char ib c max - | '-' -> Scanning.store_char ib c max + | '+' -> Scanning.store_char max ib c + | '-' -> Scanning.store_char max ib c | c -> max ;; @@ -584,14 +591,14 @@ let scan_optionally_signed_decimal_int max ib = let scan_unsigned_int max ib = match Scanning.checked_peek_char ib with | '0' as c -> - let max = Scanning.store_char ib c max in + let max = Scanning.store_char max ib c in if max = 0 then max else let c = Scanning.peek_char ib in if Scanning.eof ib then max else begin match c with - | 'x' | 'X' -> scan_hexadecimal_int (Scanning.store_char ib c max) ib - | 'o' -> scan_octal_int (Scanning.store_char ib c max) ib - | 'b' -> scan_binary_int (Scanning.store_char ib c max) ib + | 'x' | 'X' -> scan_hexadecimal_int (Scanning.store_char max ib c) ib + | 'o' -> scan_octal_int (Scanning.store_char max ib c) ib + | 'b' -> scan_binary_int (Scanning.store_char max ib c) ib | c -> scan_decimal_digits max ib end | c -> scan_unsigned_decimal_int max ib ;; @@ -620,7 +627,7 @@ let scan_frac_part max ib = if Scanning.eof ib then max else match c with | '0' .. '9' as c -> - scan_decimal_digits (Scanning.store_char ib c max) ib + scan_decimal_digits (Scanning.store_char max ib c) ib | _ -> max ;; @@ -631,7 +638,7 @@ let scan_exp_part max ib = if Scanning.eof ib then max else match c with | 'e' | 'E' as c -> - scan_optionally_signed_decimal_int (Scanning.store_char ib c max) ib + scan_optionally_signed_decimal_int (Scanning.store_char max ib c) ib | _ -> max ;; @@ -651,7 +658,7 @@ let scan_float max ib = if Scanning.eof ib then max else match c with | '.' -> - let max = Scanning.store_char ib c max in + let max = Scanning.store_char max ib c in let max = scan_frac_part max ib in scan_exp_part max ib | c -> scan_exp_part max ib @@ -664,7 +671,7 @@ let scan_Float max ib = if Scanning.eof ib then bad_float () else match c with | '.' -> - let max = Scanning.store_char ib c max in + let max = Scanning.store_char max ib c in let max = scan_frac_part max ib in scan_exp_part max ib | 'e' | 'E' -> @@ -683,15 +690,15 @@ let scan_string stp max ib = if stp = [] then match c with | ' ' | '\t' | '\n' | '\r' -> max - | c -> loop (Scanning.store_char ib c max) else - if List.memq c stp then Scanning.skip_char ib max else - loop (Scanning.store_char ib c max) in + | c -> loop (Scanning.store_char max ib c) else + if List.memq c stp then Scanning.skip_char max ib else + loop (Scanning.store_char max ib c) in loop max ;; (* Scan a char: peek strictly one character in the input, whatsoever. *) let scan_char max ib = - Scanning.store_char ib (Scanning.checked_peek_char ib) max + Scanning.store_char max ib (Scanning.checked_peek_char ib) ;; let char_for_backslash = function @@ -704,27 +711,58 @@ let char_for_backslash = function (* The integer value corresponding to the facial value of a valid decimal digit character. *) -let int_value_of_char c = int_of_char c - 48;; +let decimal_value_of_char c = int_of_char c - int_of_char '0';; let char_for_decimal_code c0 c1 c2 = let c = - 100 * int_value_of_char c0 + - 10 * int_value_of_char c1 + - int_value_of_char c2 in + 100 * decimal_value_of_char c0 + + 10 * decimal_value_of_char c1 + + decimal_value_of_char c2 in if c < 0 || c > 255 then bad_input (Printf.sprintf "bad char \\%c%c%c" c0 c1 c2) else char_of_int c ;; +(* The integer value corresponding to the facial value of a valid + hexadecimal digit character. *) +let hexadecimal_value_of_char c = + let d = int_of_char c in + (* Could also be: + if d <= int_of_char '9' then d - int_of_char '0' else + if d <= int_of_char 'F' then 10 + d - int_of_char 'A' else + if d <= int_of_char 'f' then 10 + d - int_of_char 'a' else assert false + *) + if d >= int_of_char 'a' then + d - 87 (* 10 + int_of_char c - int_of_char 'a' *) else + if d >= int_of_char 'A' then + d - 55 (* 10 + int_of_char c - int_of_char 'A' *) else + d - int_of_char '0' +;; + +let char_for_hexadecimal_code c1 c2 = + let c = + 16 * hexadecimal_value_of_char c1 + + hexadecimal_value_of_char c2 in + if c < 0 || c > 255 + then bad_input (Printf.sprintf "bad char \\%c%c" c1 c2) + else char_of_int c +;; + (* Called when encountering '\\' as starter of a char. Stops before the corresponding '\''. *) -let scan_backslash_char max ib = - if max = 0 then bad_input "a char" else +let check_next_char message max ib = + if max = 0 then bad_input message else let c = Scanning.peek_char ib in - if Scanning.eof ib then bad_input "a char" else - match c with - | '\\' | '\'' | '"' | 'n' | 't' | 'b' | 'r' (* '"' helping Emacs *) -> - Scanning.store_char ib (char_for_backslash c) max + if Scanning.eof ib then bad_input message else c +;; + +let check_next_char_for_char = check_next_char "a char";; +let check_next_char_for_string = check_next_char "a string";; + +let scan_backslash_char max ib = + match check_next_char_for_char max ib with + | '\\' | '\'' | '\"' | 'n' | 't' | 'b' | 'r' as c -> + Scanning.store_char max ib (char_for_backslash c) | '0' .. '9' as c -> let get_digit () = let c = Scanning.next_char ib in @@ -734,57 +772,69 @@ let scan_backslash_char max ib = let c0 = c in let c1 = get_digit () in let c2 = get_digit () in - Scanning.store_char ib (char_for_decimal_code c0 c1 c2) (max - 2) + Scanning.store_char (max - 2) ib (char_for_decimal_code c0 c1 c2) + | 'x' -> + let get_digit () = + let c = Scanning.next_char ib in + match c with + | '0' .. '9' | 'A' .. 'F' | 'a' .. 'f' as c -> c + | c -> bad_input_escape c in + let c1 = get_digit () in + let c2 = get_digit () in + Scanning.store_char (max - 2) ib (char_for_hexadecimal_code c1 c2) | c -> bad_input_char c ;; let scan_Char max ib = - let rec loop s max = - if max = 0 then bad_input "a char" else - let c = Scanning.checked_peek_char ib in - if Scanning.eof ib then bad_input "a char" else - match c, s with - (* Looking for the '\'' at the beginning of the delimited char. *) - | '\'', 3 -> loop 2 (Scanning.ignore_char ib max) - (* Looking for the '\'' at the end of the delimited char. *) - | '\'', 1 -> Scanning.ignore_char ib max - (* Any other char at the beginning or end of the delimited char should be - '\''. *) - | c, (3 | 1) -> character_mismatch '\'' c - (* Found a '\\': check and read this escape char. *) - | '\\', 2 -> loop 1 (scan_backslash_char (Scanning.ignore_char ib max) ib) - (* The regular case, remember the char, then look for the terminal '\\'. *) - | c, 2 -> loop 1 (Scanning.store_char ib c max) - (* Any other case is an error, *) - | c, _ -> bad_input_char c in - loop 3 max + + let rec find_start max = + match check_next_char_for_char max ib with + | '\'' -> find_char (Scanning.ignore_char max ib) + | c -> character_mismatch '\'' c + + and find_char max = + match check_next_char_for_char max ib with + | '\\' -> find_stop (scan_backslash_char (Scanning.ignore_char max ib) ib) + | c -> find_stop (Scanning.store_char max ib c) + + and find_stop max = + match check_next_char_for_char max ib with + | '\'' -> Scanning.ignore_char max ib + | c -> character_mismatch '\'' c in + + find_start max ;; let scan_String max ib = - let rec loop s max = - if max = 0 then bad_input "a string" else - let c = Scanning.checked_peek_char ib in - if Scanning.eof ib then bad_input "a string" else - match c, s with - | '"', true (* '"' helping Emacs *) -> - loop false (Scanning.ignore_char ib max) - | '"', false (* '"' helping Emacs *) -> - Scanning.ignore_char ib max - | '\\', false -> - skip_spaces true (Scanning.ignore_char ib max) - | c, false -> loop false (Scanning.store_char ib c max) - | c, _ -> bad_input_char c - and skip_spaces s max = - if max = 0 then bad_input "a string" else - let c = Scanning.checked_peek_char ib in - if Scanning.eof ib then bad_input "a string" else - match c, s with - | '\n', true - | ' ', false -> - skip_spaces false (Scanning.ignore_char ib max) - | c, false -> loop false max - | _, _ -> loop false (scan_backslash_char (max - 1) ib) in - loop true max + + let rec find_start max = + match check_next_char_for_string max ib with + | '\"' -> find_stop (Scanning.ignore_char max ib) + | c -> character_mismatch '\"' c + + and find_stop max = + match check_next_char_for_string max ib with + | '\"' -> Scanning.ignore_char max ib + | '\\' -> scan_backslash (Scanning.ignore_char max ib) + | c -> find_stop (Scanning.store_char max ib c) + + and scan_backslash max = + match check_next_char_for_string max ib with + | '\r' -> skip_newline (Scanning.ignore_char max ib) + | '\n' -> skip_spaces (Scanning.ignore_char max ib) + | c -> find_stop (scan_backslash_char max ib) + + and skip_newline max = + match check_next_char_for_string max ib with + | '\n' -> skip_spaces (Scanning.ignore_char max ib) + | _ -> find_stop (Scanning.store_char max ib '\r') + + and skip_spaces max = + match check_next_char_for_string max ib with + | ' ' -> skip_spaces (Scanning.ignore_char max ib) + | _ -> find_stop max in + + find_start max ;; let scan_bool max ib = @@ -964,49 +1014,49 @@ let scan_chars_in_char_set stp char_set max ib = let c = Scanning.peek_char ib in if Scanning.eof ib then max else if c == cp1 - then loop_pos1 cp1 (Scanning.store_char ib c max) + then loop_pos1 cp1 (Scanning.store_char max ib c) else max and loop_pos2 cp1 cp2 max = if max = 0 then max else let c = Scanning.peek_char ib in if Scanning.eof ib then max else if c == cp1 || c == cp2 - then loop_pos2 cp1 cp2 (Scanning.store_char ib c max) + then loop_pos2 cp1 cp2 (Scanning.store_char max ib c) else max and loop_pos3 cp1 cp2 cp3 max = if max = 0 then max else let c = Scanning.peek_char ib in if Scanning.eof ib then max else if c == cp1 || c == cp2 || c == cp3 - then loop_pos3 cp1 cp2 cp3 (Scanning.store_char ib c max) + then loop_pos3 cp1 cp2 cp3 (Scanning.store_char max ib c) else max and loop_neg1 cp1 max = if max = 0 then max else let c = Scanning.peek_char ib in if Scanning.eof ib then max else if c != cp1 - then loop_neg1 cp1 (Scanning.store_char ib c max) + then loop_neg1 cp1 (Scanning.store_char max ib c) else max and loop_neg2 cp1 cp2 max = if max = 0 then max else let c = Scanning.peek_char ib in if Scanning.eof ib then max else if c != cp1 && c != cp2 - then loop_neg2 cp1 cp2 (Scanning.store_char ib c max) + then loop_neg2 cp1 cp2 (Scanning.store_char max ib c) else max and loop_neg3 cp1 cp2 cp3 max = if max = 0 then max else let c = Scanning.peek_char ib in if Scanning.eof ib then max else if c != cp1 && c != cp2 && c != cp3 - then loop_neg3 cp1 cp2 cp3 (Scanning.store_char ib c max) + then loop_neg3 cp1 cp2 cp3 (Scanning.store_char max ib c) else max and loop setp max = if max = 0 then max else let c = Scanning.peek_char ib in if Scanning.eof ib then max else if setp c == 1 - then loop setp (Scanning.store_char ib c max) + then loop setp (Scanning.store_char max ib c) else max in let max = @@ -1175,25 +1225,27 @@ let scan_format ib ef fmt rv f = if ir > limr then assert false else let token = Obj.magic rv.(ir) ib in scan_fmt (succ ir) (stack f token) (succ i) - | 'l' | 'n' | 'L' as conv -> + | 'l' | 'n' | 'L' as conv0 -> let i = succ i in - if i > lim then scan_fmt ir (stack f (get_count conv ib)) i else begin + if i > lim then scan_fmt ir (stack f (get_count conv0 ib)) i else begin match Sformat.get fmt i with (* This is in fact an integer conversion (e.g. %ld, %ni, or %Lo). *) - | 'd' | 'i' | 'o' | 'u' | 'x' | 'X' as conv -> - let _x = scan_int_conv conv max ib in + | 'd' | 'i' | 'o' | 'u' | 'x' | 'X' as conv1 -> + let _x = scan_int_conv conv1 max ib in (* Look back to the character that triggered the integer conversion - (this character is either 'l', 'n' or 'L'), to find the + (this character is either 'l', 'n' or 'L') to find the conversion to apply to the integer token read. *) - begin match Sformat.get fmt (i - 1) with - | 'l' -> scan_fmt ir (stack f (token_int32 conv ib)) (succ i) - | 'n' -> scan_fmt ir (stack f (token_nativeint conv ib)) (succ i) - | _ -> scan_fmt ir (stack f (token_int64 conv ib)) (succ i) end + begin match conv0 with + | 'l' -> scan_fmt ir (stack f (token_int32 conv1 ib)) (succ i) + | 'n' -> scan_fmt ir (stack f (token_nativeint conv1 ib)) (succ i) + | _ -> scan_fmt ir (stack f (token_int64 conv1 ib)) (succ i) end (* This is not an integer conversion, but a regular %l, %n or %L. *) - | _ -> scan_fmt ir (stack f (get_count conv ib)) i end + | _ -> scan_fmt ir (stack f (get_count conv0 ib)) i end | '!' -> if Scanning.end_of_input ib then scan_fmt ir f (succ i) else bad_input "end of input not found" + | ',' -> + scan_fmt ir f (succ i) | '_' -> if i > lim then incomplete_format fmt else scan_conversion true max ir f (succ i) @@ -1202,10 +1254,10 @@ let scan_format ib ef fmt rv f = if i > lim then accu, i else match Sformat.get fmt i with | '0' .. '9' as c -> - let accu = 10 * accu + int_value_of_char c in + let accu = 10 * accu + decimal_value_of_char c in read_width accu (succ i) | _ -> accu, i in - let max, i = read_width (int_value_of_char conv) (succ i) in + let max, i = read_width (decimal_value_of_char conv) (succ i) in if i > lim then incomplete_format fmt else begin match Sformat.get fmt i with | '.' -> diff --git a/stdlib/scanf.mli b/stdlib/scanf.mli index ca4c0668..9f35a740 100644 --- a/stdlib/scanf.mli +++ b/stdlib/scanf.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: scanf.mli,v 1.79 2008/09/27 20:45:05 weis Exp $ *) +(* $Id: scanf.mli 9421 2009-11-19 10:21:42Z weis $ *) (** Formatted input functions. *) @@ -69,7 +69,7 @@ However, it is also largely different, simpler, and yet more powerful: the formatted input functions are higher-order functionals and the parameter passing mechanism is just the regular function application not - the variable assigment based mechanism which is typical for formatted + the variable assignment based mechanism which is typical for formatted input in imperative languages; the Caml format strings also feature useful additions to easily define complex tokens; as expected within a functional programming language, the formatted input functions also @@ -197,16 +197,19 @@ val bscanf : Scanning.scanbuf -> ('a, 'b, 'c, 'd) scanner;; (** {7 The space character in format strings} *) (** As mentioned above, a plain character in the format string is just - matched with the characters of the input; however, one character is a - special exception to this simple rule: the space character (ASCII code - 32) does not match a single space character, but any amount of + matched with the next character of the input; however, two characters are + special exceptions to this rule: the space character ([' '] or ASCII code + 32) and the line feed character (['\n'] or ASCII code 10). + A space does not match a single space character, but any amount of ``whitespace'' in the input. More precisely, a space inside the format string matches {e any number} of tab, space, line feed and carriage - return characters. + return characters. Similarly, a line feed character in the format string + matches either a single line feed or a carriage return followed by a line + feed. Matching {e any} amount of whitespace, a space in the format string also matches no amount of whitespace at all; hence, the call [bscanf ib - "Price = %d $" (fun p -> p)] succeds and returns [1] when reading an + "Price = %d $" (fun p -> p)] succeeds and returns [1] when reading an input with various whitespace in it, such as [Price = 1 $], [Price = 1 $], or even [Price=1$]. *) @@ -287,6 +290,7 @@ val bscanf : Scanning.scanbuf -> ('a, 'b, 'c, 'd) scanner;; - [N] or [L]: returns the number of tokens read so far. - [!]: matches the end of input condition. - [%]: matches one [%] character in the input. + - [,]: the no-op delimiter for conversion specifications. Following the [%] character that introduces a conversion, there may be the special flag [_]: the conversion that follows occurs as usual, @@ -303,7 +307,7 @@ val bscanf : Scanning.scanbuf -> ('a, 'b, 'c, 'd) scanner;; Notes: - - as mentioned above, a [%s] convertion always succeeds, even if there is + - as mentioned above, a [%s] conversion always succeeds, even if there is nothing to read in the input: it simply returns [""]. - in addition to the relevant digits, ['_'] characters may appear @@ -361,7 +365,7 @@ val bscanf : Scanning.scanbuf -> ('a, 'b, 'c, 'd) scanner;; [End_of_file]: if the end of input is reached the conversion succeeds and simply returns the characters read so far, or [""] if none were read. *) -(** {6 Specialized formatted input functions} *) +(** {6 Specialised formatted input functions} *) val fscanf : in_channel -> ('a, 'b, 'c, 'd) scanner;; (** Same as {!Scanf.bscanf}, but reads from the given channel. @@ -373,7 +377,7 @@ val fscanf : in_channel -> ('a, 'b, 'c, 'd) scanner;; primitives on the channel (reading characters, seeking the reading position, and so on). - As a consequence, never mixt direct low level reading and high level + As a consequence, never mix direct low level reading and high level scanning from the same input channel. *) val sscanf : string -> ('a, 'b, 'c, 'd) scanner;; @@ -397,7 +401,7 @@ val kscanf : val bscanf_format : Scanning.scanbuf -> ('a, 'b, 'c, 'd, 'e, 'f) format6 -> (('a, 'b, 'c, 'd, 'e, 'f) format6 -> 'g) -> 'g;; -(** [bscanf_format ib fmt f] reads a format string token from the scannning +(** [bscanf_format ib fmt f] reads a format string token from the scanning buffer [ib], according to the given format string [fmt], and applies [f] to the resulting format string value. Raise [Scan_failure] if the format string value read does not have the diff --git a/stdlib/set.ml b/stdlib/set.ml index 79797687..103595e3 100644 --- a/stdlib/set.ml +++ b/stdlib/set.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: set.ml,v 1.19 2004/11/25 00:04:15 doligez Exp $ *) +(* $Id: set.ml 6694 2004-11-25 00:06:06Z doligez $ *) (* Sets over ordered types *) diff --git a/stdlib/set.mli b/stdlib/set.mli index ad18a7af..d8317bc2 100644 --- a/stdlib/set.mli +++ b/stdlib/set.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: set.mli,v 1.33 2005/07/21 14:52:45 doligez Exp $ *) +(* $Id: set.mli 6974 2005-07-21 14:52:45Z doligez $ *) (** Sets over ordered types. diff --git a/stdlib/sort.ml b/stdlib/sort.ml index 70939016..4bc0b8f5 100644 --- a/stdlib/sort.ml +++ b/stdlib/sort.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: sort.ml,v 1.10 2005/10/25 18:34:07 doligez Exp $ *) +(* $Id: sort.ml 7164 2005-10-25 18:34:07Z doligez $ *) (* Merging and sorting *) diff --git a/stdlib/sort.mli b/stdlib/sort.mli index 8b0d9678..4a2a217b 100644 --- a/stdlib/sort.mli +++ b/stdlib/sort.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: sort.mli,v 1.14 2005/10/25 18:34:07 doligez Exp $ *) +(* $Id: sort.mli 7164 2005-10-25 18:34:07Z doligez $ *) (** Sorting and merging lists. diff --git a/stdlib/stack.ml b/stdlib/stack.ml index 56d4ba80..94008f5a 100644 --- a/stdlib/stack.ml +++ b/stdlib/stack.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: stack.ml,v 1.9 2002/06/27 08:48:26 xleroy Exp $ *) +(* $Id: stack.ml 4956 2002-06-27 08:48:26Z xleroy $ *) type 'a t = { mutable c : 'a list } diff --git a/stdlib/stack.mli b/stdlib/stack.mli index 2a41b150..dc305898 100644 --- a/stdlib/stack.mli +++ b/stdlib/stack.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: stack.mli,v 1.19 2005/10/25 18:34:07 doligez Exp $ *) +(* $Id: stack.mli 7164 2005-10-25 18:34:07Z doligez $ *) (** Last-in first-out stacks. diff --git a/stdlib/stdLabels.ml b/stdlib/stdLabels.ml index 05a11985..d0f9730a 100644 --- a/stdlib/stdLabels.ml +++ b/stdlib/stdLabels.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: stdLabels.ml,v 1.3 2001/12/07 13:40:59 xleroy Exp $ *) +(* $Id: stdLabels.ml 4144 2001-12-07 13:41:02Z xleroy $ *) (* Module [StdLabels]: meta-module for labelled libraries *) diff --git a/stdlib/stdLabels.mli b/stdlib/stdLabels.mli index 43200b57..325afd6b 100644 --- a/stdlib/stdLabels.mli +++ b/stdlib/stdLabels.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: stdLabels.mli,v 1.13 2004/11/25 00:04:15 doligez Exp $ *) +(* $Id: stdLabels.mli 6694 2004-11-25 00:06:06Z doligez $ *) (** Standard labeled libraries. diff --git a/stdlib/std_exit.ml b/stdlib/std_exit.ml index 7b045e7b..f000f4b4 100644 --- a/stdlib/std_exit.ml +++ b/stdlib/std_exit.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: std_exit.ml,v 1.5 2001/12/07 13:40:59 xleroy Exp $ *) +(* $Id: std_exit.ml 4144 2001-12-07 13:41:02Z xleroy $ *) (* Ensure that [at_exit] functions are called at the end of every program *) diff --git a/stdlib/stdlib.mllib b/stdlib/stdlib.mllib index c23f5045..0858e0aa 100644 --- a/stdlib/stdlib.mllib +++ b/stdlib/stdlib.mllib @@ -1,48 +1,49 @@ -# This file lists all standard library modules. +# This file lists all standard library modules +# (in the same order as Makefile.shared). # It is used in particular to know what to expunge in toplevels. -# $Id: stdlib.mllib,v 1.2 2008/08/01 16:57:10 mauny Exp $ +# $Id: stdlib.mllib 9353 2009-09-24 09:17:39Z doligez $ Pervasives -Arg Array -ArrayLabels -Buffer -Callback -CamlinternalLazy -CamlinternalMod -CamlinternalOO +List Char -Complex -Digest -Filename -Format -Gc -Genlex +String +Sys Hashtbl +Sort +Marshal +Obj Int32 Int64 -Lazy -Lexing -List -ListLabels -Map -Marshal -MoreLabels Nativeint -Obj -Oo +Lexing Parsing -Printexc -Printf -Queue -Random -Scanf Set -Sort +Map Stack -StdLabels +Queue +CamlinternalLazy +Lazy Stream -String -StringLabels -Sys +Buffer +Printf +Format +Scanf +Arg +Printexc +Gc +Digest +Random +Callback +CamlinternalOO +Oo +CamlinternalMod +Genlex Weak +Filename +Complex +ArrayLabels +ListLabels +StringLabels +MoreLabels +StdLabels diff --git a/stdlib/stream.ml b/stdlib/stream.ml index 755e7434..c1a74ac8 100644 --- a/stdlib/stream.ml +++ b/stdlib/stream.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: stream.ml,v 1.14 2008/06/18 15:35:02 mauny Exp $ *) +(* $Id: stream.ml 8893 2008-06-18 15:35:02Z mauny $ *) (* The fields of type t are not mutable to preserve polymorphism of the empty stream. This is type safe because the empty stream is never diff --git a/stdlib/stream.mli b/stdlib/stream.mli index 28f82ec5..05b9b523 100644 --- a/stdlib/stream.mli +++ b/stdlib/stream.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: stream.mli,v 1.25 2005/10/25 18:34:07 doligez Exp $ *) +(* $Id: stream.mli 7164 2005-10-25 18:34:07Z doligez $ *) (** Streams and parsers. *) diff --git a/stdlib/string.ml b/stdlib/string.ml index 908be652..63e2367d 100644 --- a/stdlib/string.ml +++ b/stdlib/string.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: string.ml,v 1.28.2.1 2008/11/12 10:53:47 doligez Exp $ *) +(* $Id: string.ml 9128 2008-11-12 10:55:15Z doligez $ *) (* String operations *) diff --git a/stdlib/string.mli b/stdlib/string.mli index 57ba2524..00d69ab1 100644 --- a/stdlib/string.mli +++ b/stdlib/string.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: string.mli,v 1.37.20.1 2008/10/08 13:07:13 doligez Exp $ *) +(* $Id: string.mli 9079 2008-10-08 13:09:39Z doligez $ *) (** String operations. Given a string [s] of length [l], we call character number in [s] diff --git a/stdlib/stringLabels.ml b/stdlib/stringLabels.ml index 77eb3451..86701dcc 100644 --- a/stdlib/stringLabels.ml +++ b/stdlib/stringLabels.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: stringLabels.ml,v 1.4 2004/01/03 22:08:38 doligez Exp $ *) +(* $Id: stringLabels.ml 6054 2004-01-03 22:08:38Z doligez $ *) (* Module [StringLabels]: labelled String module *) diff --git a/stdlib/stringLabels.mli b/stdlib/stringLabels.mli index 0489ba9f..3e16254c 100644 --- a/stdlib/stringLabels.mli +++ b/stdlib/stringLabels.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: stringLabels.mli,v 1.11 2007/01/22 08:06:09 garrigue Exp $ *) +(* $Id: stringLabels.mli 7805 2007-01-22 08:06:09Z garrigue $ *) (** String operations. *) diff --git a/stdlib/sys.mli b/stdlib/sys.mli index d209e705..eb1db4bf 100644 --- a/stdlib/sys.mli +++ b/stdlib/sys.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: sys.mli,v 1.49 2007/02/26 14:21:57 xleroy Exp $ *) +(* $Id: sys.mli 7927 2007-02-26 14:21:57Z xleroy $ *) (** System interface. *) diff --git a/stdlib/sys.mlp b/stdlib/sys.mlp index 97e7318c..03e2b91f 100644 --- a/stdlib/sys.mlp +++ b/stdlib/sys.mlp @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: sys.mlp,v 1.2 2007/02/26 14:21:57 xleroy Exp $ *) +(* $Id: sys.mlp 7927 2007-02-26 14:21:57Z xleroy $ *) (* WARNING: sys.ml is generated from sys.mlp. DO NOT EDIT sys.ml or your changes will be lost. diff --git a/stdlib/weak.ml b/stdlib/weak.ml index 8358d6e3..4799c74c 100644 --- a/stdlib/weak.ml +++ b/stdlib/weak.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: weak.ml,v 1.17 2008/02/29 14:21:22 doligez Exp $ *) +(* $Id: weak.ml 8823 2008-02-29 14:21:22Z doligez $ *) (** Weak array operations *) diff --git a/stdlib/weak.mli b/stdlib/weak.mli index b2dcf606..fdc561f2 100644 --- a/stdlib/weak.mli +++ b/stdlib/weak.mli @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: weak.mli,v 1.16.2.1 2008/11/13 10:39:46 doligez Exp $ *) +(* $Id: weak.mli 9130 2008-11-13 10:39:46Z doligez $ *) (** Arrays of weak pointers and hash tables of weak pointers. *) diff --git a/tools/Characters b/tools/Characters index 3c21adbf..2cd82df8 100644 --- a/tools/Characters +++ b/tools/Characters @@ -1,6 +1,6 @@ # Characters -# $Id: Characters,v 1.3 1999/11/29 19:04:21 doligez Exp $ +# $Id: Characters 2629 1999-11-29 19:04:21Z doligez $ # Usage: # Characters n1 to n2 diff --git a/tools/DoMake b/tools/DoMake index 28564909..87bd7ba3 100644 --- a/tools/DoMake +++ b/tools/DoMake @@ -1,6 +1,6 @@ # DoMake -# $Id: DoMake,v 1.5 1999/11/29 19:04:23 doligez Exp $ +# $Id: DoMake 2630 1999-11-29 19:04:23Z doligez $ # Execute the output of "Make -f Makefile.Mac -f Makefile.Mac.depend" # or "Make -f Makefile -f Makefile.depend" if "Makefile.Mac" does not exist diff --git a/tools/MakeDepend b/tools/MakeDepend index fb1e8a2e..0ca8e3d4 100644 --- a/tools/MakeDepend +++ b/tools/MakeDepend @@ -1,6 +1,6 @@ # MakeDepend -# $Id: MakeDepend,v 1.3 1999/11/29 19:04:25 doligez Exp $ +# $Id: MakeDepend 2631 1999-11-29 19:04:25Z doligez $ # Usage: MakeDepend fileÉ diff --git a/tools/Makefile b/tools/Makefile index 6d80e35c..f7997e85 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -10,7 +10,7 @@ # # ######################################################################### -# $Id: Makefile,v 1.66 2007/11/22 22:14:43 doligez Exp $ +# $Id: Makefile 8616 2007-11-22 22:14:43Z doligez $ include Makefile.shared diff --git a/tools/Makefile.nt b/tools/Makefile.nt index 0fc67a6a..66b4598e 100644 --- a/tools/Makefile.nt +++ b/tools/Makefile.nt @@ -10,7 +10,7 @@ # # ######################################################################### -# $Id: Makefile.nt,v 1.26 2007/11/07 10:14:21 frisch Exp $ +# $Id: Makefile.nt 8485 2007-11-07 10:14:21Z frisch $ include Makefile.shared diff --git a/tools/Makefile.shared b/tools/Makefile.shared index 9e847456..7ec1fa49 100644 --- a/tools/Makefile.shared +++ b/tools/Makefile.shared @@ -10,7 +10,7 @@ # # ######################################################################### -# $Id: Makefile.shared,v 1.5 2007/11/22 22:14:43 doligez Exp $ +# $Id: Makefile.shared 8616 2007-11-22 22:14:43Z doligez $ include ../config/Makefile diff --git a/tools/addlabels.ml b/tools/addlabels.ml index a89fbe51..9464a02b 100644 --- a/tools/addlabels.ml +++ b/tools/addlabels.ml @@ -1,4 +1,4 @@ -(* $Id: addlabels.ml,v 1.12 2008/07/09 13:03:37 mauny Exp $ *) +(* $Id: addlabels.ml 8906 2008-07-09 13:03:38Z mauny $ *) open StdLabels open Asttypes diff --git a/tools/checkstack.c b/tools/checkstack.c index 8abbd1e1..8a295800 100644 --- a/tools/checkstack.c +++ b/tools/checkstack.c @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: checkstack.c,v 1.3 2006/04/16 23:28:21 doligez Exp $ */ +/* $Id: checkstack.c 7382 2006-04-16 23:28:22Z doligez $ */ #include #include diff --git a/tools/cvt_emit.mll b/tools/cvt_emit.mll index de291abe..23ea61f4 100644 --- a/tools/cvt_emit.mll +++ b/tools/cvt_emit.mll @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: cvt_emit.mll,v 1.4 2000/10/02 14:17:55 maranget Exp $ *) +(* $Id: cvt_emit.mll 3304 2000-10-02 14:18:05Z maranget $ *) { let first_item = ref false diff --git a/tools/depend.ml b/tools/depend.ml index 0f33d18b..3936981b 100644 --- a/tools/depend.ml +++ b/tools/depend.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: depend.ml,v 1.13 2008/07/09 13:03:37 mauny Exp $ *) +(* $Id: depend.ml 8906 2008-07-09 13:03:38Z mauny $ *) open Format open Location diff --git a/tools/depend.mli b/tools/depend.mli index fc022b04..682d2c6d 100644 --- a/tools/depend.mli +++ b/tools/depend.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: depend.mli,v 1.2 2002/04/18 07:27:43 garrigue Exp $ *) +(* $Id: depend.mli 4694 2002-04-18 07:27:47Z garrigue $ *) (** Module dependencies. *) diff --git a/tools/dumpapprox.ml b/tools/dumpapprox.ml index 321de7ad..0021052e 100644 --- a/tools/dumpapprox.ml +++ b/tools/dumpapprox.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: dumpapprox.ml,v 1.15 2003/03/06 16:00:16 xleroy Exp $ *) +(* $Id: dumpapprox.ml 5423 2003-03-06 16:00:16Z xleroy $ *) (* Dump a .cmx file *) diff --git a/tools/dumpobj.ml b/tools/dumpobj.ml index 6132de6b..62fe18c8 100644 --- a/tools/dumpobj.ml +++ b/tools/dumpobj.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: dumpobj.ml,v 1.38 2008/09/10 12:53:05 doligez Exp $ *) +(* $Id: dumpobj.ml 9015 2008-09-10 12:53:05Z doligez $ *) (* Disassembler for executable and .cmo object files *) diff --git a/tools/keywords.r b/tools/keywords.r index 3c208b8b..1e849518 100644 --- a/tools/keywords.r +++ b/tools/keywords.r @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: keywords.r,v 1.3 2001/12/07 13:41:01 xleroy Exp $ */ +/* $Id: keywords.r 4144 2001-12-07 13:41:02Z xleroy $ */ type 'Odds' { longint; /* resource ID of corresponding 'Sods' */ diff --git a/tools/lexer299.mll b/tools/lexer299.mll index 871bd287..e85c73c3 100644 --- a/tools/lexer299.mll +++ b/tools/lexer299.mll @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: lexer299.mll,v 1.4 2005/06/22 13:52:36 doligez Exp $ *) +(* $Id: lexer299.mll 6924 2005-06-22 13:52:36Z doligez $ *) (* The lexer definition *) diff --git a/tools/lexer301.mll b/tools/lexer301.mll index a73cc343..c05db338 100644 --- a/tools/lexer301.mll +++ b/tools/lexer301.mll @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: lexer301.mll,v 1.5 2004/11/30 18:57:04 doligez Exp $ *) +(* $Id: lexer301.mll 6720 2004-11-30 18:57:04Z doligez $ *) (* The lexer definition *) diff --git a/tools/make-package-macosx b/tools/make-package-macosx index 2b9ee1fb..0c01190a 100755 --- a/tools/make-package-macosx +++ b/tools/make-package-macosx @@ -12,7 +12,7 @@ # # ######################################################################### -# $Id: make-package-macosx,v 1.16.4.1 2008/10/16 15:57:00 doligez Exp $ +# $Id: make-package-macosx 9093 2008-10-16 15:57:00Z doligez $ cd package-macosx rm -rf ocaml.pkg ocaml-rw.dmg diff --git a/tools/objinfo.ml b/tools/objinfo.ml index 4b262627..f5141686 100644 --- a/tools/objinfo.ml +++ b/tools/objinfo.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: objinfo.ml,v 1.11 2006/07/05 12:09:18 pouillar Exp $ *) +(* $Id: objinfo.ml 7469 2006-07-05 12:09:18Z pouillar $ *) (* Dump a compilation unit description *) diff --git a/tools/ocaml-objcopy-macosx b/tools/ocaml-objcopy-macosx index 23589f17..99279cf8 100755 --- a/tools/ocaml-objcopy-macosx +++ b/tools/ocaml-objcopy-macosx @@ -12,7 +12,7 @@ # # ######################################################################### -# $Id: ocaml-objcopy-macosx,v 1.2 2006/01/04 16:55:50 doligez Exp $ +# $Id: ocaml-objcopy-macosx 7307 2006-01-04 16:55:50Z doligez $ TMP="${TMPDIR=/tmp}" diff --git a/tools/ocaml299to3.ml b/tools/ocaml299to3.ml index 6727958e..e30d71c9 100644 --- a/tools/ocaml299to3.ml +++ b/tools/ocaml299to3.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: ocaml299to3.ml,v 1.6 2001/10/03 01:34:05 garrigue Exp $ *) +(* $Id: ocaml299to3.ml 3838 2001-10-03 01:34:05Z garrigue $ *) open Lexer299 diff --git a/tools/ocamlcp.ml b/tools/ocamlcp.ml index 2aff55b1..178a3b5e 100644 --- a/tools/ocamlcp.ml +++ b/tools/ocamlcp.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: ocamlcp.ml,v 1.41 2007/05/16 08:21:40 doligez Exp $ *) +(* $Id: ocamlcp.ml 8232 2007-05-16 08:21:41Z doligez $ *) open Printf diff --git a/tools/ocamldep.ml b/tools/ocamldep.ml index fc399f72..7d3c90c4 100644 --- a/tools/ocamldep.ml +++ b/tools/ocamldep.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: ocamldep.ml,v 1.44 2008/08/01 09:02:55 xleroy Exp $ *) +(* $Id: ocamldep.ml 8963 2008-08-01 09:02:55Z xleroy $ *) open Format open Location diff --git a/tools/ocamlmklib.mlp b/tools/ocamlmklib.mlp index cec48773..9b047123 100644 --- a/tools/ocamlmklib.mlp +++ b/tools/ocamlmklib.mlp @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: ocamlmklib.mlp,v 1.16 2008/01/08 15:39:47 doligez Exp $ *) +(* $Id: ocamlmklib.mlp 9365 2009-10-02 12:32:45Z doligez $ *) open Printf open Myocamlbuild_config @@ -123,9 +123,8 @@ let parse_arguments argv = done; List.iter (fun r -> r := List.rev !r) - [ bytecode_objs; native_objs; c_objs; caml_libs; caml_opts; + [ bytecode_objs; native_objs; caml_libs; caml_opts; c_libs; c_objs; c_opts; ld_opts; rpath ]; - (* On retourne deux fois c_objs ?? -- AF *) if !output_c = "" then output_c := !output @@ -184,7 +183,7 @@ let make_rpath flag = else flag ^ String.concat ":" (make_set !rpath) let make_rpath_ccopt flag = - if !rpath = [] || flag = "" + if !rpath = [] || flag = "" then "" else "-ccopt " ^ flag ^ String.concat ":" (make_set !rpath) @@ -200,10 +199,10 @@ let prepostfix pre name post = let transl_path s = match Sys.os_type with | "Win32" -> - let rec aux i = - if i = String.length s || s.[i] = ' ' then s - else (if s.[i] = '/' then s.[i] <- '\\'; aux (i + 1)) - in aux 0 + let rec aux i = + if i = String.length s || s.[i] = ' ' then s + else (if s.[i] = '/' then s.[i] <- '\\'; aux (i + 1)) + in aux 0 | _ -> s let build_libs () = diff --git a/tools/ocamlmktop.ml b/tools/ocamlmktop.ml index a64f50d5..8104607d 100644 --- a/tools/ocamlmktop.ml +++ b/tools/ocamlmktop.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: ocamlmktop.ml,v 1.6 2003/03/24 15:27:01 xleroy Exp $ *) +(* $Id: ocamlmktop.ml 5454 2003-03-24 15:27:01Z xleroy $ *) let _ = let args = Ccomp.quote_files (List.tl (Array.to_list Sys.argv)) in diff --git a/tools/ocamlmktop.tpl b/tools/ocamlmktop.tpl index 9ee3529b..f8395e94 100644 --- a/tools/ocamlmktop.tpl +++ b/tools/ocamlmktop.tpl @@ -11,6 +11,6 @@ # # ######################################################################### -# $Id: ocamlmktop.tpl,v 1.5 2004/02/22 14:52:50 xleroy Exp $ +# $Id: ocamlmktop.tpl 6128 2004-02-22 14:52:50Z xleroy $ exec %%BINDIR%%/ocamlc -linkall toplevellib.cma "$@" topstart.cmo diff --git a/tools/ocamlprof.ml b/tools/ocamlprof.ml index 7eeca94d..f1d6e557 100644 --- a/tools/ocamlprof.ml +++ b/tools/ocamlprof.ml @@ -11,7 +11,7 @@ (* *) (***********************************************************************) -(* $Id: ocamlprof.ml,v 1.42 2007/12/04 13:38:58 doligez Exp $ *) +(* $Id: ocamlprof.ml 8705 2007-12-04 13:38:58Z doligez $ *) open Printf diff --git a/tools/primreq.ml b/tools/primreq.ml index 81c68ad7..74b6aa36 100644 --- a/tools/primreq.ml +++ b/tools/primreq.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: primreq.ml,v 1.5 2006/07/05 12:09:18 pouillar Exp $ *) +(* $Id: primreq.ml 7469 2006-07-05 12:09:18Z pouillar $ *) (* Determine the set of C primitives required by the given .cmo and .cma files *) diff --git a/tools/profiling.ml b/tools/profiling.ml index b6339def..e9bd5f9f 100644 --- a/tools/profiling.ml +++ b/tools/profiling.ml @@ -12,7 +12,7 @@ (* *) (***********************************************************************) -(* $Id: profiling.ml,v 1.8 2006/11/28 15:59:35 doligez Exp $ *) +(* $Id: profiling.ml 7762 2006-11-28 15:59:35Z doligez $ *) (* Run-time library for profiled programs *) diff --git a/tools/profiling.mli b/tools/profiling.mli index b7b4d1ab..01dc1215 100644 --- a/tools/profiling.mli +++ b/tools/profiling.mli @@ -12,7 +12,7 @@ (* *) (***********************************************************************) -(* $Id: profiling.mli,v 1.6 2005/03/24 17:20:54 doligez Exp $ *) +(* $Id: profiling.mli 6824 2005-03-24 17:20:54Z doligez $ *) (* Run-time library for profiled programs *) diff --git a/tools/scrapelabels.ml b/tools/scrapelabels.ml index b17cab96..67bbc309 100644 --- a/tools/scrapelabels.ml +++ b/tools/scrapelabels.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: scrapelabels.ml,v 1.6 2001/10/04 01:55:02 garrigue Exp $ *) +(* $Id: scrapelabels.ml 3850 2001-10-04 01:55:02Z garrigue $ *) open StdLabels open Lexer301 diff --git a/toplevel/expunge.ml b/toplevel/expunge.ml index a78c5555..81800907 100644 --- a/toplevel/expunge.ml +++ b/toplevel/expunge.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: expunge.ml,v 1.16 2004/01/16 15:24:03 doligez Exp $ *) +(* $Id: expunge.ml 6074 2004-01-16 15:24:03Z doligez $ *) (* "Expunge" a toplevel by removing compiler modules from the global List.map. Usage: expunge *) diff --git a/toplevel/genprintval.ml b/toplevel/genprintval.ml index c108811e..52cf376d 100644 --- a/toplevel/genprintval.ml +++ b/toplevel/genprintval.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: genprintval.ml,v 1.39 2007/10/09 10:29:37 weis Exp $ *) +(* $Id: genprintval.ml 8418 2007-10-09 10:29:37Z weis $ *) (* To print values *) diff --git a/toplevel/genprintval.mli b/toplevel/genprintval.mli index 05a1c283..edb8a4a3 100644 --- a/toplevel/genprintval.mli +++ b/toplevel/genprintval.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: genprintval.mli,v 1.10 2002/04/18 07:27:44 garrigue Exp $ *) +(* $Id: genprintval.mli 4694 2002-04-18 07:27:47Z garrigue $ *) (* Printing of values *) diff --git a/toplevel/opttopdirs.ml b/toplevel/opttopdirs.ml index 7b389f32..4a39a283 100644 --- a/toplevel/opttopdirs.ml +++ b/toplevel/opttopdirs.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: opttopdirs.ml,v 1.2.4.1 2008/11/19 02:35:40 garrigue Exp $ *) +(* $Id: opttopdirs.ml 9134 2008-11-19 02:35:40Z garrigue $ *) (* Toplevel directives *) diff --git a/toplevel/opttopdirs.mli b/toplevel/opttopdirs.mli index da877169..77330bda 100644 --- a/toplevel/opttopdirs.mli +++ b/toplevel/opttopdirs.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: opttopdirs.mli,v 1.2 2007/11/06 15:16:56 frisch Exp $ *) +(* $Id: opttopdirs.mli 8477 2007-11-06 15:16:56Z frisch $ *) (* The toplevel directives. *) diff --git a/toplevel/opttoploop.ml b/toplevel/opttoploop.ml index aa5dcccc..95baaf79 100644 --- a/toplevel/opttoploop.ml +++ b/toplevel/opttoploop.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: opttoploop.ml,v 1.3 2007/12/04 13:38:58 doligez Exp $ *) +(* $Id: opttoploop.ml 8705 2007-12-04 13:38:58Z doligez $ *) (* The interactive toplevel loop *) diff --git a/toplevel/opttoploop.mli b/toplevel/opttoploop.mli index e1261b24..86363ba7 100644 --- a/toplevel/opttoploop.mli +++ b/toplevel/opttoploop.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: opttoploop.mli,v 1.3 2007/12/04 13:38:58 doligez Exp $ *) +(* $Id: opttoploop.mli 8705 2007-12-04 13:38:58Z doligez $ *) open Format diff --git a/toplevel/opttopmain.ml b/toplevel/opttopmain.ml index cb312d1f..76e41492 100644 --- a/toplevel/opttopmain.ml +++ b/toplevel/opttopmain.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: opttopmain.ml,v 1.2 2007/11/06 15:16:56 frisch Exp $ *) +(* $Id: opttopmain.ml 8477 2007-11-06 15:16:56Z frisch $ *) open Clflags diff --git a/toplevel/opttopmain.mli b/toplevel/opttopmain.mli index 70d24a5a..119cb000 100644 --- a/toplevel/opttopmain.mli +++ b/toplevel/opttopmain.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: opttopmain.mli,v 1.2 2007/11/06 15:16:56 frisch Exp $ *) +(* $Id: opttopmain.mli 8477 2007-11-06 15:16:56Z frisch $ *) (* Start the [ocaml] toplevel loop *) diff --git a/toplevel/opttopstart.ml b/toplevel/opttopstart.ml index 1071a683..c13cfcbb 100644 --- a/toplevel/opttopstart.ml +++ b/toplevel/opttopstart.ml @@ -10,6 +10,6 @@ (* *) (***********************************************************************) -(* $Id: opttopstart.ml,v 1.2 2007/11/06 15:16:56 frisch Exp $ *) +(* $Id: opttopstart.ml 8477 2007-11-06 15:16:56Z frisch $ *) let _ = Opttopmain.main() diff --git a/toplevel/topdirs.ml b/toplevel/topdirs.ml index 50cbc4ed..d45b4f72 100644 --- a/toplevel/topdirs.ml +++ b/toplevel/topdirs.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: topdirs.ml,v 1.66.14.1 2008/11/19 02:35:40 garrigue Exp $ *) +(* $Id: topdirs.ml 9134 2008-11-19 02:35:40Z garrigue $ *) (* Toplevel directives *) diff --git a/toplevel/topdirs.mli b/toplevel/topdirs.mli index 0dde52d1..1aa70859 100644 --- a/toplevel/topdirs.mli +++ b/toplevel/topdirs.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: topdirs.mli,v 1.12 2002/04/18 07:27:44 garrigue Exp $ *) +(* $Id: topdirs.mli 4694 2002-04-18 07:27:47Z garrigue $ *) (* The toplevel directives. *) diff --git a/toplevel/toploop.ml b/toplevel/toploop.ml index 42f4a848..2a6ff83f 100644 --- a/toplevel/toploop.ml +++ b/toplevel/toploop.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: toploop.ml,v 1.95 2007/12/04 13:38:58 doligez Exp $ *) +(* $Id: toploop.ml 8705 2007-12-04 13:38:58Z doligez $ *) (* The interactive toplevel loop *) diff --git a/toplevel/toploop.mli b/toplevel/toploop.mli index 06c7d71f..be9c27b8 100644 --- a/toplevel/toploop.mli +++ b/toplevel/toploop.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: toploop.mli,v 1.26 2007/12/04 13:38:58 doligez Exp $ *) +(* $Id: toploop.mli 8705 2007-12-04 13:38:58Z doligez $ *) open Format diff --git a/toplevel/topmain.ml b/toplevel/topmain.ml index 6abfdb26..95e6a051 100644 --- a/toplevel/topmain.ml +++ b/toplevel/topmain.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: topmain.ml,v 1.39 2005/01/28 17:52:58 doligez Exp $ *) +(* $Id: topmain.ml 6758 2005-01-28 17:52:58Z doligez $ *) open Clflags diff --git a/toplevel/topmain.mli b/toplevel/topmain.mli index 21591de3..c2a7c896 100644 --- a/toplevel/topmain.mli +++ b/toplevel/topmain.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: topmain.mli,v 1.1 2002/04/24 08:02:51 xleroy Exp $ *) +(* $Id: topmain.mli 4731 2002-04-24 08:02:51Z xleroy $ *) (* Start the [ocaml] toplevel loop *) diff --git a/toplevel/topstart.ml b/toplevel/topstart.ml index 367015bd..7d853f51 100644 --- a/toplevel/topstart.ml +++ b/toplevel/topstart.ml @@ -10,6 +10,6 @@ (* *) (***********************************************************************) -(* $Id: topstart.ml,v 1.1 2002/04/24 08:02:51 xleroy Exp $ *) +(* $Id: topstart.ml 4731 2002-04-24 08:02:51Z xleroy $ *) let _ = Topmain.main() diff --git a/toplevel/trace.ml b/toplevel/trace.ml index f5ca4ef0..a306d9b4 100644 --- a/toplevel/trace.ml +++ b/toplevel/trace.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: trace.ml,v 1.20 2001/04/19 08:34:20 garrigue Exp $ *) +(* $Id: trace.ml 3490 2001-04-19 08:34:21Z garrigue $ *) (* The "trace" facility *) diff --git a/toplevel/trace.mli b/toplevel/trace.mli index 22cf754b..853509af 100644 --- a/toplevel/trace.mli +++ b/toplevel/trace.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: trace.mli,v 1.9 2000/03/06 22:11:55 weis Exp $ *) +(* $Id: trace.mli 2908 2000-03-06 22:12:09Z weis $ *) (* The "trace" facility *) diff --git a/typing/annot.mli b/typing/annot.mli index 1dfdbaae..95e72437 100644 --- a/typing/annot.mli +++ b/typing/annot.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: annot.mli,v 1.2 2008/07/29 15:42:44 doligez Exp $ *) +(* $Id: annot.mli 8958 2008-07-29 15:42:44Z doligez $ *) (* Data types for annotations (Stypes.ml) *) diff --git a/typing/btype.ml b/typing/btype.ml index ab6ee5ef..70fa4486 100644 --- a/typing/btype.ml +++ b/typing/btype.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: btype.ml,v 1.42 2008/07/19 02:13:09 garrigue Exp $ *) +(* $Id: btype.ml 8922 2008-07-19 02:13:09Z garrigue $ *) (* Basic operations on core types *) diff --git a/typing/btype.mli b/typing/btype.mli index 96a0bcad..dad6c4a0 100644 --- a/typing/btype.mli +++ b/typing/btype.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: btype.mli,v 1.20 2008/07/19 02:13:09 garrigue Exp $ *) +(* $Id: btype.mli 8922 2008-07-19 02:13:09Z garrigue $ *) (* Basic operations on core types *) diff --git a/typing/ctype.ml b/typing/ctype.ml index d84f765c..9b9024bb 100644 --- a/typing/ctype.ml +++ b/typing/ctype.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: ctype.ml,v 1.216.2.5 2009/05/19 05:51:03 garrigue Exp $ *) +(* $Id: ctype.ml 9453 2009-12-07 13:04:54Z garrigue $ *) (* Operations on core types *) @@ -3336,39 +3336,29 @@ let nondep_type env id ty = let nondep_type_decl env mid id is_covariant decl = try let params = List.map (nondep_type_rec env mid) decl.type_params in - let decl = - { type_params = params; - type_arity = decl.type_arity; - type_kind = - begin try - match decl.type_kind with - Type_abstract -> - Type_abstract - | Type_variant cstrs -> - Type_variant(List.map - (fun (c, tl) -> (c, List.map (nondep_type_rec env mid) tl)) - cstrs) - | Type_record(lbls, rep) -> - Type_record( - List.map - (fun (c, mut, t) -> (c, mut, nondep_type_rec env mid t)) - lbls, - rep) - with Not_found when is_covariant -> - Type_abstract - end; - type_manifest = - begin try - match decl.type_manifest with - None -> None - | Some ty -> - Some (unroll_abbrev id params (nondep_type_rec env mid ty)) - with Not_found when is_covariant -> - None - end; - type_private = decl.type_private; - type_variance = decl.type_variance; - } + let tk = + try match decl.type_kind with + Type_abstract -> + Type_abstract + | Type_variant cstrs -> + Type_variant + (List.map + (fun (c, tl) -> (c, List.map (nondep_type_rec env mid) tl)) + cstrs) + | Type_record(lbls, rep) -> + Type_record + (List.map + (fun (c, mut, t) -> (c, mut, nondep_type_rec env mid t)) + lbls, + rep) + with Not_found when is_covariant -> Type_abstract + and tm = + try match decl.type_manifest with + None -> None + | Some ty -> + Some (unroll_abbrev id params (nondep_type_rec env mid ty)) + with Not_found when is_covariant -> + None in cleanup_types (); List.iter unmark_type decl.type_params; @@ -3383,7 +3373,18 @@ let nondep_type_decl env mid id is_covariant decl = None -> () | Some ty -> unmark_type ty end; - decl + let priv = + match tm with + | Some ty when Btype.has_constr_row ty -> Private + | _ -> decl.type_private + in + { type_params = params; + type_arity = decl.type_arity; + type_kind = tk; + type_manifest = tm; + type_private = priv; + type_variance = decl.type_variance; + } with Not_found -> cleanup_types (); raise Not_found diff --git a/typing/ctype.mli b/typing/ctype.mli index 9444d820..eea10b49 100644 --- a/typing/ctype.mli +++ b/typing/ctype.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: ctype.mli,v 1.55.4.2 2009/02/13 05:05:36 garrigue Exp $ *) +(* $Id: ctype.mli 9168 2009-02-13 05:05:36Z garrigue $ *) (* Operations on core types *) diff --git a/typing/datarepr.ml b/typing/datarepr.ml index 694f9123..157dd75e 100644 --- a/typing/datarepr.ml +++ b/typing/datarepr.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: datarepr.ml,v 1.13 2003/07/02 09:14:32 xleroy Exp $ *) +(* $Id: datarepr.ml 5643 2003-07-02 09:14:35Z xleroy $ *) (* Compute constructor and label descriptions from type declarations, determining their representation. *) diff --git a/typing/datarepr.mli b/typing/datarepr.mli index e87335a7..563d5f77 100644 --- a/typing/datarepr.mli +++ b/typing/datarepr.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: datarepr.mli,v 1.9 2003/07/02 09:14:32 xleroy Exp $ *) +(* $Id: datarepr.mli 5643 2003-07-02 09:14:35Z xleroy $ *) (* Compute constructor and label descriptions from type declarations, determining their representation. *) diff --git a/typing/env.ml b/typing/env.ml index 06c0ec69..2fcf9c1b 100644 --- a/typing/env.ml +++ b/typing/env.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: env.ml,v 1.66.2.1 2009/04/28 05:11:54 garrigue Exp $ *) +(* $Id: env.ml 9240 2009-04-28 05:11:54Z garrigue $ *) (* Environment handling *) diff --git a/typing/env.mli b/typing/env.mli index 76252ba6..5ee7af39 100644 --- a/typing/env.mli +++ b/typing/env.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: env.mli,v 1.35 2008/10/06 13:53:54 doligez Exp $ *) +(* $Id: env.mli 9074 2008-10-06 13:53:54Z doligez $ *) (* Environment handling *) diff --git a/typing/ident.ml b/typing/ident.ml index a30aa7a4..4cd5c811 100644 --- a/typing/ident.ml +++ b/typing/ident.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: ident.ml,v 1.23 2004/01/04 14:32:34 doligez Exp $ *) +(* $Id: ident.ml 6055 2004-01-04 14:32:34Z doligez $ *) open Format diff --git a/typing/ident.mli b/typing/ident.mli index 9f7372cb..a6d0a190 100644 --- a/typing/ident.mli +++ b/typing/ident.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: ident.mli,v 1.17 2004/01/04 14:32:34 doligez Exp $ *) +(* $Id: ident.mli 6055 2004-01-04 14:32:34Z doligez $ *) (* Identifiers (unique names) *) diff --git a/typing/includeclass.ml b/typing/includeclass.ml index 2f06f122..c722ae72 100644 --- a/typing/includeclass.ml +++ b/typing/includeclass.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: includeclass.ml,v 1.8.16.1 2009/04/19 08:42:43 xleroy Exp $ *) +(* $Id: includeclass.ml 9236 2009-04-19 08:42:43Z xleroy $ *) (* Inclusion checks for the class language *) diff --git a/typing/includeclass.mli b/typing/includeclass.mli index 5e584b05..8f9cdca1 100644 --- a/typing/includeclass.mli +++ b/typing/includeclass.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: includeclass.mli,v 1.3 2000/03/06 22:11:58 weis Exp $ *) +(* $Id: includeclass.mli 2908 2000-03-06 22:12:09Z weis $ *) (* Inclusion checks for the class language *) diff --git a/typing/includecore.ml b/typing/includecore.ml index ba4d1120..5b6d66fe 100644 --- a/typing/includecore.ml +++ b/typing/includecore.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: includecore.ml,v 1.35.4.2 2008/10/16 03:05:26 garrigue Exp $ *) +(* $Id: includecore.ml 9298 2009-06-13 10:26:05Z garrigue $ *) (* Inclusion checks for the core language *) @@ -40,7 +40,8 @@ let value_descriptions env vd1 vd2 = let private_flags decl1 decl2 = match decl1.type_private, decl2.type_private with | Private, Public -> - decl2.type_kind = Type_abstract && decl2.type_manifest = None + decl2.type_kind = Type_abstract && + (decl2.type_manifest = None || decl1.type_kind <> Type_abstract) | _, _ -> true (* Inclusion between manifest types (particularly for private row types) *) diff --git a/typing/includecore.mli b/typing/includecore.mli index d21f50ae..2336c028 100644 --- a/typing/includecore.mli +++ b/typing/includecore.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: includecore.mli,v 1.10 1999/11/17 18:58:54 xleroy Exp $ *) +(* $Id: includecore.mli 2553 1999-11-17 18:59:06Z xleroy $ *) (* Inclusion checks for the core language *) diff --git a/typing/includemod.ml b/typing/includemod.ml index fa7e2fd1..3d7efe1d 100644 --- a/typing/includemod.ml +++ b/typing/includemod.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: includemod.ml,v 1.39 2008/01/11 16:13:16 doligez Exp $ *) +(* $Id: includemod.ml 8768 2008-01-11 16:13:18Z doligez $ *) (* Inclusion checks for the module language *) diff --git a/typing/includemod.mli b/typing/includemod.mli index 1ea68be9..cc50b134 100644 --- a/typing/includemod.mli +++ b/typing/includemod.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: includemod.mli,v 1.13 2006/09/20 11:14:37 doligez Exp $ *) +(* $Id: includemod.mli 7619 2006-09-20 11:14:37Z doligez $ *) (* Inclusion checks for the module language *) diff --git a/typing/mtype.ml b/typing/mtype.ml index 882d0f3f..485b6be7 100644 --- a/typing/mtype.ml +++ b/typing/mtype.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: mtype.ml,v 1.28.4.1 2009/06/08 02:35:15 garrigue Exp $ *) +(* $Id: mtype.ml 9291 2009-06-08 02:35:15Z garrigue $ *) (* Operations on module types *) diff --git a/typing/mtype.mli b/typing/mtype.mli index be0f7577..855b35df 100644 --- a/typing/mtype.mli +++ b/typing/mtype.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: mtype.mli,v 1.10 2004/04/09 13:32:28 xleroy Exp $ *) +(* $Id: mtype.mli 6196 2004-04-09 13:32:28Z xleroy $ *) (* Operations on module types *) diff --git a/typing/oprint.ml b/typing/oprint.ml index dfc15639..63d31034 100644 --- a/typing/oprint.ml +++ b/typing/oprint.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: oprint.ml,v 1.26.4.1 2008/10/08 13:07:14 doligez Exp $ *) +(* $Id: oprint.ml 9079 2008-10-08 13:09:39Z doligez $ *) open Format open Outcometree diff --git a/typing/oprint.mli b/typing/oprint.mli index 6569cb8b..7687b999 100644 --- a/typing/oprint.mli +++ b/typing/oprint.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: oprint.mli,v 1.2 2002/04/18 07:27:45 garrigue Exp $ *) +(* $Id: oprint.mli 4694 2002-04-18 07:27:47Z garrigue $ *) open Format open Outcometree diff --git a/typing/outcometree.mli b/typing/outcometree.mli index 63b53caf..42d68d3d 100644 --- a/typing/outcometree.mli +++ b/typing/outcometree.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: outcometree.mli,v 1.15 2006/04/05 02:28:13 garrigue Exp $ *) +(* $Id: outcometree.mli 7372 2006-04-05 02:28:13Z garrigue $ *) (* Module [Outcometree]: results displayed by the toplevel *) diff --git a/typing/parmatch.ml b/typing/parmatch.ml index 48e9821b..518cd9eb 100644 --- a/typing/parmatch.ml +++ b/typing/parmatch.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: parmatch.ml,v 1.76.2.2 2009/03/16 04:24:05 garrigue Exp $ *) +(* $Id: parmatch.ml 9187 2009-03-16 04:24:05Z garrigue $ *) (* Detection of partial matches and unused match cases. *) diff --git a/typing/parmatch.mli b/typing/parmatch.mli index 29767c0f..3080749f 100644 --- a/typing/parmatch.mli +++ b/typing/parmatch.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: parmatch.mli,v 1.12 2008/07/09 13:03:37 mauny Exp $ *) +(* $Id: parmatch.mli 8906 2008-07-09 13:03:38Z mauny $ *) (* Detection of partial matches and unused match cases. *) open Types diff --git a/typing/path.ml b/typing/path.ml index 678fc406..aaadb873 100644 --- a/typing/path.ml +++ b/typing/path.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: path.ml,v 1.9 2003/07/01 13:05:43 xleroy Exp $ *) +(* $Id: path.ml 5640 2003-07-01 13:05:43Z xleroy $ *) type t = Pident of Ident.t diff --git a/typing/path.mli b/typing/path.mli index 12d36097..e4d06324 100644 --- a/typing/path.mli +++ b/typing/path.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: path.mli,v 1.8 2003/07/01 13:05:43 xleroy Exp $ *) +(* $Id: path.mli 5640 2003-07-01 13:05:43Z xleroy $ *) (* Access paths *) diff --git a/typing/predef.ml b/typing/predef.ml index ae452723..240f0734 100644 --- a/typing/predef.ml +++ b/typing/predef.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: predef.ml,v 1.32 2007/10/09 10:29:37 weis Exp $ *) +(* $Id: predef.ml 8418 2007-10-09 10:29:37Z weis $ *) (* Predefined type constructors (with special typing rules in typecore) *) diff --git a/typing/predef.mli b/typing/predef.mli index 34ff2a7e..3cf8b25d 100644 --- a/typing/predef.mli +++ b/typing/predef.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: predef.mli,v 1.16 2006/10/24 20:54:58 weis Exp $ *) +(* $Id: predef.mli 7702 2006-10-24 20:54:58Z weis $ *) (* Predefined type constructors (with special typing rules in typecore) *) diff --git a/typing/primitive.ml b/typing/primitive.ml index c14a1f3b..c7ff9528 100644 --- a/typing/primitive.ml +++ b/typing/primitive.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: primitive.ml,v 1.9 2008/07/24 05:35:22 frisch Exp $ *) +(* $Id: primitive.ml 8930 2008-07-24 05:35:22Z frisch $ *) (* Description of primitive functions *) diff --git a/typing/primitive.mli b/typing/primitive.mli index 8b39244c..70050229 100644 --- a/typing/primitive.mli +++ b/typing/primitive.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: primitive.mli,v 1.8 2008/07/24 05:35:22 frisch Exp $ *) +(* $Id: primitive.mli 8930 2008-07-24 05:35:22Z frisch $ *) (* Description of primitive functions *) diff --git a/typing/printtyp.ml b/typing/printtyp.ml index 32f3d571..571241d3 100644 --- a/typing/printtyp.ml +++ b/typing/printtyp.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: printtyp.ml,v 1.147 2008/07/19 02:13:09 garrigue Exp $ *) +(* $Id: printtyp.ml 8922 2008-07-19 02:13:09Z garrigue $ *) (* Printing functions *) diff --git a/typing/printtyp.mli b/typing/printtyp.mli index 2e2f7189..6f56d164 100644 --- a/typing/printtyp.mli +++ b/typing/printtyp.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: printtyp.mli,v 1.27 2006/04/16 23:28:22 doligez Exp $ *) +(* $Id: printtyp.mli 7382 2006-04-16 23:28:22Z doligez $ *) (* Printing functions *) diff --git a/typing/stypes.ml b/typing/stypes.ml index 23065daf..64028e10 100644 --- a/typing/stypes.ml +++ b/typing/stypes.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: stypes.ml,v 1.11 2008/07/29 15:42:44 doligez Exp $ *) +(* $Id: stypes.ml 8958 2008-07-29 15:42:44Z doligez $ *) (* Recording and dumping (partial) type information *) diff --git a/typing/stypes.mli b/typing/stypes.mli index 17663ec3..06aea2c1 100644 --- a/typing/stypes.mli +++ b/typing/stypes.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: stypes.mli,v 1.5 2008/07/29 15:42:44 doligez Exp $ *) +(* $Id: stypes.mli 8958 2008-07-29 15:42:44Z doligez $ *) (* Recording and dumping (partial) type information *) diff --git a/typing/subst.ml b/typing/subst.ml index dc3fb212..cff3c64f 100644 --- a/typing/subst.ml +++ b/typing/subst.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: subst.ml,v 1.52.4.1 2009/04/02 09:06:32 xclerc Exp $ *) +(* $Id: subst.ml 9221 2009-04-02 09:06:33Z xclerc $ *) (* Substitutions *) diff --git a/typing/subst.mli b/typing/subst.mli index bf9f0652..e0e91cf0 100644 --- a/typing/subst.mli +++ b/typing/subst.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: subst.mli,v 1.13.4.1 2009/04/02 09:06:33 xclerc Exp $ *) +(* $Id: subst.mli 9221 2009-04-02 09:06:33Z xclerc $ *) (* Substitutions *) diff --git a/typing/typeclass.ml b/typing/typeclass.ml index b18a0aa0..53bd1548 100644 --- a/typing/typeclass.ml +++ b/typing/typeclass.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: typeclass.ml,v 1.93.4.1 2009/04/19 08:42:43 xleroy Exp $ *) +(* $Id: typeclass.ml 9236 2009-04-19 08:42:43Z xleroy $ *) open Misc open Parsetree diff --git a/typing/typeclass.mli b/typing/typeclass.mli index f85f6ece..67acf896 100644 --- a/typing/typeclass.mli +++ b/typing/typeclass.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: typeclass.mli,v 1.19 2006/04/05 02:28:13 garrigue Exp $ *) +(* $Id: typeclass.mli 7372 2006-04-05 02:28:13Z garrigue $ *) open Asttypes open Types diff --git a/typing/typecore.ml b/typing/typecore.ml index 55e112b9..488a7b6d 100644 --- a/typing/typecore.ml +++ b/typing/typecore.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: typecore.ml,v 1.199.2.3 2009/04/19 09:21:08 xleroy Exp $ *) +(* $Id: typecore.ml 9412 2009-11-09 11:42:39Z weis $ *) (* Typechecking for the core language *) @@ -752,7 +752,7 @@ let type_format loc fmt = and scan_conversion i j = if j >= len then incomplete_format fmt else match fmt.[j] with - | '%' | '!' -> scan_format (j + 1) + | '%' | '!' | ',' -> scan_format (j + 1) | 's' | 'S' -> conversion j Predef.type_string | '[' -> let j = range_closing_index fmt j in diff --git a/typing/typecore.mli b/typing/typecore.mli index 7e8bea36..b7a6ebc0 100644 --- a/typing/typecore.mli +++ b/typing/typecore.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: typecore.mli,v 1.41 2008/01/11 16:13:16 doligez Exp $ *) +(* $Id: typecore.mli 8768 2008-01-11 16:13:18Z doligez $ *) (* Type inference for the core language *) diff --git a/typing/typedecl.ml b/typing/typedecl.ml index 6e546fed..c6dd602f 100644 --- a/typing/typedecl.ml +++ b/typing/typedecl.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: typedecl.ml,v 1.82.2.3 2009/06/08 04:08:14 garrigue Exp $ *) +(* $Id: typedecl.ml 9292 2009-06-08 04:08:14Z garrigue $ *) (**** Typing of type definitions ****) diff --git a/typing/typedecl.mli b/typing/typedecl.mli index 56452455..d6d6bb36 100644 --- a/typing/typedecl.mli +++ b/typing/typedecl.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: typedecl.mli,v 1.31.4.1 2009/06/08 04:08:14 garrigue Exp $ *) +(* $Id: typedecl.mli 9292 2009-06-08 04:08:14Z garrigue $ *) (* Typing of type definitions and primitive definitions *) diff --git a/typing/typedtree.ml b/typing/typedtree.ml index e2697d23..c6f6eed1 100644 --- a/typing/typedtree.ml +++ b/typing/typedtree.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: typedtree.ml,v 1.39 2008/07/09 13:03:38 mauny Exp $ *) +(* $Id: typedtree.ml 8906 2008-07-09 13:03:38Z mauny $ *) (* Abstract syntax tree after typing *) diff --git a/typing/typedtree.mli b/typing/typedtree.mli index dfd41711..9780b34c 100644 --- a/typing/typedtree.mli +++ b/typing/typedtree.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: typedtree.mli,v 1.37 2008/07/09 13:03:38 mauny Exp $ *) +(* $Id: typedtree.mli 8906 2008-07-09 13:03:38Z mauny $ *) (* Abstract syntax tree after typing *) diff --git a/typing/typemod.ml b/typing/typemod.ml index 85722ad3..be810851 100644 --- a/typing/typemod.ml +++ b/typing/typemod.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: typemod.ml,v 1.86.2.1 2008/10/08 13:07:14 doligez Exp $ *) +(* $Id: typemod.ml 9079 2008-10-08 13:09:39Z doligez $ *) (* Type-checking of the module language *) diff --git a/typing/typemod.mli b/typing/typemod.mli index 33d49c93..5f96f308 100644 --- a/typing/typemod.mli +++ b/typing/typemod.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: typemod.mli,v 1.27 2007/05/16 08:21:40 doligez Exp $ *) +(* $Id: typemod.mli 8232 2007-05-16 08:21:41Z doligez $ *) (* Type-checking of the module language *) diff --git a/typing/types.ml b/typing/types.ml index 1e9b762a..7a02a500 100644 --- a/typing/types.ml +++ b/typing/types.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: types.ml,v 1.29 2008/07/19 02:13:09 garrigue Exp $ *) +(* $Id: types.ml 8922 2008-07-19 02:13:09Z garrigue $ *) (* Representation of types and declarations *) diff --git a/typing/types.mli b/typing/types.mli index 8340d95b..3941bc98 100644 --- a/typing/types.mli +++ b/typing/types.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: types.mli,v 1.29 2008/07/19 02:13:09 garrigue Exp $ *) +(* $Id: types.mli 8922 2008-07-19 02:13:09Z garrigue $ *) (* Representation of types and declarations *) diff --git a/typing/typetexp.ml b/typing/typetexp.ml index ec2b7ed8..52046b66 100644 --- a/typing/typetexp.ml +++ b/typing/typetexp.ml @@ -39,6 +39,7 @@ type error = | Variant_tags of string * string | Invalid_variable_name of string | Cannot_quantify of string * type_expr + | Repeated_method_label of string exception Error of Location.t * error @@ -156,7 +157,7 @@ let rec transl_type env policy styp = end; constr | Ptyp_object fields -> - newobj (transl_fields env policy fields) + newobj (transl_fields env policy [] fields) | Ptyp_class(lid, stl, present) -> let (path, decl, is_variant) = try @@ -384,15 +385,16 @@ let rec transl_type env policy styp = unify_var env (newvar()) ty'; ty' -and transl_fields env policy = +and transl_fields env policy seen = function [] -> newty Tnil | {pfield_desc = Pfield_var}::_ -> if policy = Univars then new_pre_univar () else newvar () - | {pfield_desc = Pfield(s, e)}::l -> + | {pfield_desc = Pfield(s, e); pfield_loc = loc}::l -> + if List.mem s seen then raise (Error (loc, Repeated_method_label s)); let ty1 = transl_type env policy e in - let ty2 = transl_fields env policy l in + let ty2 = transl_fields env policy (s::seen) l in newty (Tfield (s, Fpresent, ty1, ty2)) @@ -557,3 +559,6 @@ let report_error ppf = function (if v.desc = Tvar then "it escapes this scope" else if v.desc = Tunivar then "it is aliased to another variable" else "it is not a variable") + | Repeated_method_label s -> + fprintf ppf "@[This is the second method `%s' of this object type.@ %s@]" + s "Multiple occurences are not allowed." diff --git a/typing/typetexp.mli b/typing/typetexp.mli index b7d3a559..52a32e9f 100644 --- a/typing/typetexp.mli +++ b/typing/typetexp.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: typetexp.mli,v 1.19 2003/05/19 09:21:17 garrigue Exp $ *) +(* $Id: typetexp.mli 9297 2009-06-12 12:40:55Z garrigue $ *) (* Typechecking of type expressions for the core language *) @@ -54,6 +54,7 @@ type error = | Variant_tags of string * string | Invalid_variable_name of string | Cannot_quantify of string * Types.type_expr + | Repeated_method_label of string exception Error of Location.t * error diff --git a/typing/unused_var.ml b/typing/unused_var.ml index 3d44a85f..d0c63a33 100644 --- a/typing/unused_var.ml +++ b/typing/unused_var.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: unused_var.ml,v 1.7 2008/07/09 13:03:38 mauny Exp $ *) +(* $Id: unused_var.ml 8906 2008-07-09 13:03:38Z mauny $ *) open Parsetree diff --git a/typing/unused_var.mli b/typing/unused_var.mli index 7945ef30..6d408686 100644 --- a/typing/unused_var.mli +++ b/typing/unused_var.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: unused_var.mli,v 1.2 2006/01/04 16:55:50 doligez Exp $ *) +(* $Id: unused_var.mli 7307 2006-01-04 16:55:50Z doligez $ *) val warn : Format.formatter -> Parsetree.structure -> Parsetree.structure;; (* Warn on unused variables; return the second argument. *) diff --git a/utils/ccomp.ml b/utils/ccomp.ml index 91a6a9d4..58e4947e 100644 --- a/utils/ccomp.ml +++ b/utils/ccomp.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: ccomp.ml,v 1.28.4.2 2008/10/16 15:57:00 doligez Exp $ *) +(* $Id: ccomp.ml 9093 2008-10-16 15:57:00Z doligez $ *) (* Compiling C files and building C libraries *) diff --git a/utils/ccomp.mli b/utils/ccomp.mli index 3843a6d4..47f15059 100644 --- a/utils/ccomp.mli +++ b/utils/ccomp.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: ccomp.mli,v 1.16 2008/01/11 16:13:18 doligez Exp $ *) +(* $Id: ccomp.mli 8768 2008-01-11 16:13:18Z doligez $ *) (* Compiling C files and building C libraries *) diff --git a/utils/clflags.ml b/utils/clflags.ml index 4ac0de8c..a4c58c43 100644 --- a/utils/clflags.ml +++ b/utils/clflags.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: clflags.ml,v 1.53.2.1 2008/10/15 08:48:51 xleroy Exp $ *) +(* $Id: clflags.ml 9084 2008-10-15 08:48:51Z xleroy $ *) (* Command-line parameters *) diff --git a/utils/clflags.mli b/utils/clflags.mli index eba4f9ee..6914904f 100644 --- a/utils/clflags.mli +++ b/utils/clflags.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: clflags.mli,v 1.4.2.1 2008/10/15 08:48:51 xleroy Exp $ *) +(* $Id: clflags.mli 9084 2008-10-15 08:48:51Z xleroy $ *) val objfiles : string list ref val ccobjs : string list ref diff --git a/utils/config.mlbuild b/utils/config.mlbuild index ee8e66a0..d49ff623 100644 --- a/utils/config.mlbuild +++ b/utils/config.mlbuild @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: config.mlbuild,v 1.3.4.4 2009/05/19 14:41:21 doligez Exp $ *) +(* $Id: config.mlbuild 9266 2009-05-19 14:41:21Z doligez $ *) (***********************************************************************) (** **) diff --git a/utils/config.mli b/utils/config.mli index b3b71ca1..92894b65 100644 --- a/utils/config.mli +++ b/utils/config.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: config.mli,v 1.41 2008/04/16 06:50:31 frisch Exp $ *) +(* $Id: config.mli 8868 2008-04-16 06:50:31Z frisch $ *) (* System configuration *) diff --git a/utils/config.mlp b/utils/config.mlp index ce6bc7d5..3f6d14ec 100644 --- a/utils/config.mlp +++ b/utils/config.mlp @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: config.mlp,v 1.208.2.2 2009/05/18 09:38:16 doligez Exp $ *) +(* $Id: config.mlp 9260 2009-05-18 09:38:16Z doligez $ *) (***********************************************************************) (** **) diff --git a/utils/consistbl.ml b/utils/consistbl.ml index 527de764..c9ffaf25 100644 --- a/utils/consistbl.ml +++ b/utils/consistbl.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: consistbl.ml,v 1.2 2002/11/18 10:41:26 xleroy Exp $ *) +(* $Id: consistbl.ml 5275 2002-11-18 10:41:26Z xleroy $ *) (* Consistency tables: for checking consistency of module CRCs *) diff --git a/utils/consistbl.mli b/utils/consistbl.mli index ca5f73ea..0e58dd57 100644 --- a/utils/consistbl.mli +++ b/utils/consistbl.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: consistbl.mli,v 1.2 2002/11/18 10:41:26 xleroy Exp $ *) +(* $Id: consistbl.mli 5275 2002-11-18 10:41:26Z xleroy $ *) (* Consistency tables: for checking consistency of module CRCs *) diff --git a/utils/misc.ml b/utils/misc.ml index 0ad0c0d7..04a07125 100644 --- a/utils/misc.ml +++ b/utils/misc.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: misc.ml,v 1.35 2007/02/23 13:44:51 ertai Exp $ *) +(* $Id: misc.ml 7909 2007-02-23 13:44:51Z ertai $ *) (* Errors *) diff --git a/utils/misc.mli b/utils/misc.mli index 2b4f7cf4..73af6fa9 100644 --- a/utils/misc.mli +++ b/utils/misc.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: misc.mli,v 1.26 2007/02/23 13:44:51 ertai Exp $ *) +(* $Id: misc.mli 7909 2007-02-23 13:44:51Z ertai $ *) (* Miscellaneous useful types and functions *) diff --git a/utils/tbl.ml b/utils/tbl.ml index eaa9f140..c6391279 100644 --- a/utils/tbl.ml +++ b/utils/tbl.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: tbl.ml,v 1.13.22.1 2009/04/02 09:06:33 xclerc Exp $ *) +(* $Id: tbl.ml 9221 2009-04-02 09:06:33Z xclerc $ *) type ('a, 'b) t = Empty diff --git a/utils/tbl.mli b/utils/tbl.mli index ee840dd4..e869f26e 100644 --- a/utils/tbl.mli +++ b/utils/tbl.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: tbl.mli,v 1.7.44.1 2009/04/02 09:06:33 xclerc Exp $ *) +(* $Id: tbl.mli 9221 2009-04-02 09:06:33Z xclerc $ *) (* Association tables from any ordered type to any type. We use the generic ordering to compare keys. *) diff --git a/utils/terminfo.ml b/utils/terminfo.ml index d2f98312..8f1d5af8 100644 --- a/utils/terminfo.ml +++ b/utils/terminfo.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: terminfo.ml,v 1.6 2004/01/01 16:42:42 doligez Exp $ *) +(* $Id: terminfo.ml 6045 2004-01-01 16:42:43Z doligez $ *) (* Basic interface to the terminfo database *) diff --git a/utils/terminfo.mli b/utils/terminfo.mli index d8a07651..9198c13b 100644 --- a/utils/terminfo.mli +++ b/utils/terminfo.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: terminfo.mli,v 1.7 2004/01/01 16:42:43 doligez Exp $ *) +(* $Id: terminfo.mli 6045 2004-01-01 16:42:43Z doligez $ *) (* Basic interface to the terminfo database *) diff --git a/utils/warnings.ml b/utils/warnings.ml index c0fbe9f2..37851593 100644 --- a/utils/warnings.ml +++ b/utils/warnings.ml @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: warnings.ml,v 1.28 2008/10/06 13:53:54 doligez Exp $ *) +(* $Id: warnings.ml 9074 2008-10-06 13:53:54Z doligez $ *) (* Please keep them in alphabetical order *) diff --git a/utils/warnings.mli b/utils/warnings.mli index 42af60cc..3e7a61e9 100644 --- a/utils/warnings.mli +++ b/utils/warnings.mli @@ -10,7 +10,7 @@ (* *) (***********************************************************************) -(* $Id: warnings.mli,v 1.19 2008/10/06 13:53:54 doligez Exp $ *) +(* $Id: warnings.mli 9074 2008-10-06 13:53:54Z doligez $ *) open Format diff --git a/win32caml/Makefile b/win32caml/Makefile index c803ace7..518ce9e7 100644 --- a/win32caml/Makefile +++ b/win32caml/Makefile @@ -11,7 +11,7 @@ # # ######################################################################### -# $Id: Makefile,v 1.12 2007/11/15 13:21:15 frisch Exp $ +# $Id: Makefile 8521 2007-11-15 13:21:15Z frisch $ include ../config/Makefile diff --git a/win32caml/editbuffer.h b/win32caml/editbuffer.h index ce8dccfd..91e2999c 100644 --- a/win32caml/editbuffer.h +++ b/win32caml/editbuffer.h @@ -31,17 +31,17 @@ typedef struct tagEditBuffer { int LineCount; struct tagLineList *Lines; BOOL isCorrect; -} EditBuffer; - -BOOL editbuffer_addline (EditBuffer* edBuf, char* line); -BOOL editbuffer_updateline (EditBuffer* edBuf, int idx, char* line); -BOOL editbuffer_updateoraddline (EditBuffer* edBuf, int idx, char* line); -BOOL editbuffer_removeline (EditBuffer* edBuf, int idx); -char* editbuffer_getasline (EditBuffer* edBuf); -char* editbuffer_getasbuffer (EditBuffer* edBuf); -char* editbuffer_lastline (EditBuffer* edBuf); -EditBuffer* editbuffer_copy (EditBuffer* edBuf); -void editbuffer_destroy (EditBuffer* edBuf); -EditBuffer* editbuffer_new (void); - +} EditBuffer; + +BOOL editbuffer_addline (EditBuffer* edBuf, char* line); +BOOL editbuffer_updateline (EditBuffer* edBuf, int idx, char* line); +BOOL editbuffer_updateoraddline (EditBuffer* edBuf, int idx, char* line); +BOOL editbuffer_removeline (EditBuffer* edBuf, int idx); +char* editbuffer_getasline (EditBuffer* edBuf); +char* editbuffer_getasbuffer (EditBuffer* edBuf); +char* editbuffer_lastline (EditBuffer* edBuf); +EditBuffer* editbuffer_copy (EditBuffer* edBuf); +void editbuffer_destroy (EditBuffer* edBuf); +EditBuffer* editbuffer_new (void); + #endif diff --git a/win32caml/inria.h b/win32caml/inria.h index 446c1fe1..7f8e6efb 100644 --- a/win32caml/inria.h +++ b/win32caml/inria.h @@ -10,7 +10,7 @@ /* */ /***********************************************************************/ -/* $Id: inria.h,v 1.6.4.1 2008/10/08 13:07:14 doligez Exp $ */ +/* $Id: inria.h 9079 2008-10-08 13:09:39Z doligez $ */ /*------------------------------------------------------------------------ Module: D:\lcc\inria\inria.h diff --git a/win32caml/libgraph.h b/win32caml/libgraph.h index 8423f225..f36c0752 100644 --- a/win32caml/libgraph.h +++ b/win32caml/libgraph.h @@ -11,7 +11,7 @@ /* */ /***********************************************************************/ -/* $Id: libgraph.h,v 1.3 2002/07/23 14:12:02 doligez Exp $ */ +/* $Id: libgraph.h 5029 2002-07-23 14:12:03Z doligez $ */ #include #include diff --git a/win32caml/menu.c b/win32caml/menu.c index f09c5cc6..ba7af01e 100644 --- a/win32caml/menu.c +++ b/win32caml/menu.c @@ -15,7 +15,7 @@ /* Began 14 Sept 2003 - watford@uiuc.edu */ /***********************************************************************/ -/* $Id: menu.c,v 1.8 2006/05/09 16:03:48 xleroy Exp $ */ +/* $Id: menu.c 7411 2006-05-09 16:03:48Z xleroy $ */ #include #include @@ -627,33 +627,33 @@ static void SaveML(char *fname) ------------------------------------------------------------------------*/ static void Add_Clipboard_To_Queue(void) { - if (IsClipboardFormatAvailable(CF_TEXT) && OpenClipboard(hwndMain)) - { - HANDLE hClipData = GetClipboardData(CF_TEXT); - - if (hClipData != NULL) - { - char *str = GlobalLock(hClipData); - - if (str != NULL) - { - while ((*str) != 0) - { - if (*str != '\r') - Add_Char_To_Queue(*str); - - str++; - } - - // added to fix odd errors - RefreshCurrentEditBuffer(); - } - - GlobalUnlock(hClipData); - } - - CloseClipboard(); - } + if (IsClipboardFormatAvailable(CF_TEXT) && OpenClipboard(hwndMain)) + { + HANDLE hClipData = GetClipboardData(CF_TEXT); + + if (hClipData != NULL) + { + char *str = GlobalLock(hClipData); + + if (str != NULL) + { + while ((*str) != 0) + { + if (*str != '\r') + Add_Char_To_Queue(*str); + + str++; + } + + // added to fix odd errors + RefreshCurrentEditBuffer(); + } + + GlobalUnlock(hClipData); + } + + CloseClipboard(); + } } /*------------------------------------------------------------------------ diff --git a/win32caml/ocaml.c b/win32caml/ocaml.c index 17ef689e..cd50cb9d 100644 --- a/win32caml/ocaml.c +++ b/win32caml/ocaml.c @@ -14,7 +14,7 @@ /* Began 14 Sept 2003 - watford@uiuc.edu */ /***********************************************************************/ -/* $Id: ocaml.c,v 1.9 2006/05/09 16:03:48 xleroy Exp $ */ +/* $Id: ocaml.c 7411 2006-05-09 16:03:48Z xleroy $ */ /*@@ Wedit generated application. Written Sat Jun 02 18:22:38 2001 @@header: D:\lcc\inria\inriares.h diff --git a/win32caml/ocaml.rc b/win32caml/ocaml.rc index c10ecdba..52ae9497 100644 --- a/win32caml/ocaml.rc +++ b/win32caml/ocaml.rc @@ -1,255 +1,255 @@ -// Microsoft Visual C++ generated resource script. -// -#include "resource.h" - -#define APSTUDIO_READONLY_SYMBOLS -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 2 resource. -// -#define APSTUDIO_HIDDEN_SYMBOLS -#include "windows.h" -#undef APSTUDIO_HIDDEN_SYMBOLS -#include "inriares.h" - -///////////////////////////////////////////////////////////////////////////// -#undef APSTUDIO_READONLY_SYMBOLS - -///////////////////////////////////////////////////////////////////////////// -// English (U.S.) resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) -#ifdef _WIN32 -LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US -#pragma code_page(1252) -#endif //_WIN32 - -///////////////////////////////////////////////////////////////////////////// -// -// Icon -// - -// Icon with lowest ID value placed first to ensure application icon -// remains consistent on all systems. -1000 ICON "ocaml.ico" - -///////////////////////////////////////////////////////////////////////////// -// -// Menu -// - -IDMAINMENU MENU -BEGIN - POPUP "&File" - BEGIN - MENUITEM "&Open...", IDM_OPEN - MENUITEM "&Save ML...", IDM_SAVE - MENUITEM "Save &Transcript...", IDM_SAVEAS - MENUITEM SEPARATOR - MENUITEM "&Print", IDM_PRINT, GRAYED - MENUITEM "P&rint Setup...", IDM_PRINTSU, GRAYED - MENUITEM SEPARATOR - MENUITEM "E&xit", IDM_EXIT - END - POPUP "&Edit" - BEGIN - MENUITEM "&Undo\tAlt+BkSp", IDM_EDITUNDO - MENUITEM SEPARATOR - MENUITEM "Cu&t\t Shift+Del", IDM_EDITCUT - MENUITEM "&Copy\tCtrl+Ins", IDM_EDITCOPY - MENUITEM "&Paste\tShift+Ins", IDM_EDITPASTE - END - POPUP "Workspace" - BEGIN - MENUITEM "&Font...", IDM_FONT - MENUITEM "Text &Color...", IDM_COLORTEXT - MENUITEM "&Background Color...", IDM_BACKCOLOR - MENUITEM SEPARATOR - MENUITEM "&History...", IDM_HISTORY - MENUITEM "&Garbage Collect", IDM_GC - MENUITEM "&Interrupt", IDCTRLC - END - POPUP "&Window", GRAYED - BEGIN - MENUITEM "&Tile", IDM_WINDOWTILE, INACTIVE - MENUITEM "&Cascade", IDM_WINDOWCASCADE, INACTIVE - MENUITEM "Arrange &Icons", IDM_WINDOWICONS, INACTIVE - MENUITEM "Close &All", IDM_WINDOWCLOSEALL, INACTIVE - END - POPUP "&Help" - BEGIN - MENUITEM "&About...", IDM_ABOUT - END -END - - -///////////////////////////////////////////////////////////////////////////// -// -// Accelerator -// - -BARMDI ACCELERATORS -BEGIN - "Q", IDM_EXIT, VIRTKEY, CONTROL -END - - -///////////////////////////////////////////////////////////////////////////// -// -// Dialog -// - -IDD_ABOUT DIALOGEX 7, 29, 236, 81 -STYLE DS_SETFONT | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | - WS_SYSMENU -EXSTYLE WS_EX_TOOLWINDOW | WS_EX_CLIENTEDGE -CAPTION "About OCamlWinPlus" -FONT 8, "MS Sans Serif", 0, 0, 0x1 -BEGIN - LTEXT "Objective Caml for Windows",101,75,7,90,12 - LTEXT "New Windows Interface 1.9RC4",102,68,15,104,12 - CTEXT "Copyright 1996-2001\nUpdated 2003",103,88,25,66,23 - CTEXT "Institut National de Recherche en Informatique et Automatique", - 104,16,46,211,10 - CTEXT "Réalisé par Jacob Navia 2001. Updated by Chris Watford 2003.\nwatford@uiuc.edu", - 105,18,54,207,19 -END - -IDD_HISTORY DIALOGEX 6, 18, 261, 184 -STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | - WS_SYSMENU | WS_THICKFRAME -EXSTYLE WS_EX_TOOLWINDOW -CAPTION "Session History" -FONT 8, "MS Sans Serif", 0, 0, 0x1 -BEGIN - LISTBOX IDLIST,7,7,247,173,LBS_USETABSTOPS | WS_VSCROLL | - WS_HSCROLL | WS_TABSTOP -END - - -#ifdef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// TEXTINCLUDE -// - -1 TEXTINCLUDE -BEGIN - "resource.h\0" -END - -2 TEXTINCLUDE -BEGIN - "#define APSTUDIO_HIDDEN_SYMBOLS\r\n" - "#include ""windows.h""\r\n" - "#undef APSTUDIO_HIDDEN_SYMBOLS\r\n" - "#include ""inriares.h""\r\n" - "\0" -END - -3 TEXTINCLUDE -BEGIN - "\r\n" - "\0" -END - -#endif // APSTUDIO_INVOKED - - -///////////////////////////////////////////////////////////////////////////// -// -// String Table -// - -STRINGTABLE -BEGIN - 3010 "Switches to " -END - -STRINGTABLE -BEGIN - 2000 "Create, open, save, or print documents" - 2010 "Get help" -END - -STRINGTABLE -BEGIN - 500 "Displays information about this application" -END - -STRINGTABLE -BEGIN - 440 "Closes all open windows" -END - -STRINGTABLE -BEGIN - 420 "Arranges windows as overlapping tiles" - 430 "Arranges minimized window icons" -END - -STRINGTABLE -BEGIN - 410 "Arranges windows as non-overlapping tiles" -END - -STRINGTABLE -BEGIN - 340 "Inserts the clipboard contents at the insertion point" - 350 "Removes the selection without putting it on the clipboard" -END - -STRINGTABLE -BEGIN - 320 "Cuts the selection and puts it on the clipboard" - 330 "Copies the selection and puts it on the clipboard" -END - -STRINGTABLE -BEGIN - 310 "Reverses the last action" -END - -STRINGTABLE -BEGIN - 260 "Changes the printer selection or configuration" - 270 "Quits this application" -END - -STRINGTABLE -BEGIN - 240 "Closes the active document" - 250 "Prints the active document" -END - -STRINGTABLE -BEGIN - 230 "Saves the active document under a different name" -END - -STRINGTABLE -BEGIN - 210 "Opens an existing document" - 220 "Saves the active document" -END - -STRINGTABLE -BEGIN - 200 "Creates a new session" -END - -#endif // English (U.S.) resources -///////////////////////////////////////////////////////////////////////////// - - - -#ifndef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 3 resource. -// - - -///////////////////////////////////////////////////////////////////////////// -#endif // not APSTUDIO_INVOKED - +// Microsoft Visual C++ generated resource script. +// +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#define APSTUDIO_HIDDEN_SYMBOLS +#include "windows.h" +#undef APSTUDIO_HIDDEN_SYMBOLS +#include "inriares.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (U.S.) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +#pragma code_page(1252) +#endif //_WIN32 + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +1000 ICON "ocaml.ico" + +///////////////////////////////////////////////////////////////////////////// +// +// Menu +// + +IDMAINMENU MENU +BEGIN + POPUP "&File" + BEGIN + MENUITEM "&Open...", IDM_OPEN + MENUITEM "&Save ML...", IDM_SAVE + MENUITEM "Save &Transcript...", IDM_SAVEAS + MENUITEM SEPARATOR + MENUITEM "&Print", IDM_PRINT, GRAYED + MENUITEM "P&rint Setup...", IDM_PRINTSU, GRAYED + MENUITEM SEPARATOR + MENUITEM "E&xit", IDM_EXIT + END + POPUP "&Edit" + BEGIN + MENUITEM "&Undo\tAlt+BkSp", IDM_EDITUNDO + MENUITEM SEPARATOR + MENUITEM "Cu&t\t Shift+Del", IDM_EDITCUT + MENUITEM "&Copy\tCtrl+Ins", IDM_EDITCOPY + MENUITEM "&Paste\tShift+Ins", IDM_EDITPASTE + END + POPUP "Workspace" + BEGIN + MENUITEM "&Font...", IDM_FONT + MENUITEM "Text &Color...", IDM_COLORTEXT + MENUITEM "&Background Color...", IDM_BACKCOLOR + MENUITEM SEPARATOR + MENUITEM "&History...", IDM_HISTORY + MENUITEM "&Garbage Collect", IDM_GC + MENUITEM "&Interrupt", IDCTRLC + END + POPUP "&Window", GRAYED + BEGIN + MENUITEM "&Tile", IDM_WINDOWTILE, INACTIVE + MENUITEM "&Cascade", IDM_WINDOWCASCADE, INACTIVE + MENUITEM "Arrange &Icons", IDM_WINDOWICONS, INACTIVE + MENUITEM "Close &All", IDM_WINDOWCLOSEALL, INACTIVE + END + POPUP "&Help" + BEGIN + MENUITEM "&About...", IDM_ABOUT + END +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Accelerator +// + +BARMDI ACCELERATORS +BEGIN + "Q", IDM_EXIT, VIRTKEY, CONTROL +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_ABOUT DIALOGEX 7, 29, 236, 81 +STYLE DS_SETFONT | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | + WS_SYSMENU +EXSTYLE WS_EX_TOOLWINDOW | WS_EX_CLIENTEDGE +CAPTION "About OCamlWinPlus" +FONT 8, "MS Sans Serif", 0, 0, 0x1 +BEGIN + LTEXT "Objective Caml for Windows",101,75,7,90,12 + LTEXT "New Windows Interface 1.9RC4",102,68,15,104,12 + CTEXT "Copyright 1996-2001\nUpdated 2003",103,88,25,66,23 + CTEXT "Institut National de Recherche en Informatique et Automatique", + 104,16,46,211,10 + CTEXT "Réalisé par Jacob Navia 2001. Updated by Chris Watford 2003.\nwatford@uiuc.edu", + 105,18,54,207,19 +END + +IDD_HISTORY DIALOGEX 6, 18, 261, 184 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | + WS_SYSMENU | WS_THICKFRAME +EXSTYLE WS_EX_TOOLWINDOW +CAPTION "Session History" +FONT 8, "MS Sans Serif", 0, 0, 0x1 +BEGIN + LISTBOX IDLIST,7,7,247,173,LBS_USETABSTOPS | WS_VSCROLL | + WS_HSCROLL | WS_TABSTOP +END + + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE +BEGIN + "#define APSTUDIO_HIDDEN_SYMBOLS\r\n" + "#include ""windows.h""\r\n" + "#undef APSTUDIO_HIDDEN_SYMBOLS\r\n" + "#include ""inriares.h""\r\n" + "\0" +END + +3 TEXTINCLUDE +BEGIN + "\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE +BEGIN + 3010 "Switches to " +END + +STRINGTABLE +BEGIN + 2000 "Create, open, save, or print documents" + 2010 "Get help" +END + +STRINGTABLE +BEGIN + 500 "Displays information about this application" +END + +STRINGTABLE +BEGIN + 440 "Closes all open windows" +END + +STRINGTABLE +BEGIN + 420 "Arranges windows as overlapping tiles" + 430 "Arranges minimized window icons" +END + +STRINGTABLE +BEGIN + 410 "Arranges windows as non-overlapping tiles" +END + +STRINGTABLE +BEGIN + 340 "Inserts the clipboard contents at the insertion point" + 350 "Removes the selection without putting it on the clipboard" +END + +STRINGTABLE +BEGIN + 320 "Cuts the selection and puts it on the clipboard" + 330 "Copies the selection and puts it on the clipboard" +END + +STRINGTABLE +BEGIN + 310 "Reverses the last action" +END + +STRINGTABLE +BEGIN + 260 "Changes the printer selection or configuration" + 270 "Quits this application" +END + +STRINGTABLE +BEGIN + 240 "Closes the active document" + 250 "Prints the active document" +END + +STRINGTABLE +BEGIN + 230 "Saves the active document under a different name" +END + +STRINGTABLE +BEGIN + 210 "Opens an existing document" + 220 "Saves the active document" +END + +STRINGTABLE +BEGIN + 200 "Creates a new session" +END + +#endif // English (U.S.) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// + + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/win32caml/resource.h b/win32caml/resource.h index 27bf5ea1..67625979 100644 --- a/win32caml/resource.h +++ b/win32caml/resource.h @@ -1,16 +1,16 @@ -//{{NO_DEPENDENCIES}} -// Microsoft Visual C++ generated include file. -// Used by ocaml.rc -// - -// Next default values for new objects -// -#ifdef APSTUDIO_INVOKED -#ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NO_MFC 1 -#define _APS_NEXT_RESOURCE_VALUE 101 -#define _APS_NEXT_COMMAND_VALUE 40001 -#define _APS_NEXT_CONTROL_VALUE 1000 -#define _APS_NEXT_SYMED_VALUE 101 -#endif -#endif +//{{NO_DEPENDENCIES}} +// Microsoft Visual C++ generated include file. +// Used by ocaml.rc +// + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NO_MFC 1 +#define _APS_NEXT_RESOURCE_VALUE 101 +#define _APS_NEXT_COMMAND_VALUE 40001 +#define _APS_NEXT_CONTROL_VALUE 1000 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif diff --git a/win32caml/startocaml.c b/win32caml/startocaml.c index 3f6dbaa3..8b0ae8c5 100644 --- a/win32caml/startocaml.c +++ b/win32caml/startocaml.c @@ -15,7 +15,7 @@ /* Began 14 Sept 2003 - watford@uiuc.edu */ /***********************************************************************/ -/* $Id: startocaml.c,v 1.11 2005/03/24 17:20:54 doligez Exp $ */ +/* $Id: startocaml.c 6824 2005-03-24 17:20:54Z doligez $ */ #include #include diff --git a/yacc/Makefile b/yacc/Makefile index bd153375..c51d0fc2 100644 --- a/yacc/Makefile +++ b/yacc/Makefile @@ -10,7 +10,7 @@ # # ######################################################################### -# $Id: Makefile,v 1.10 2007/02/07 14:49:42 doligez Exp $ +# $Id: Makefile 7833 2007-02-07 14:49:42Z doligez $ # Makefile for the parser generator. diff --git a/yacc/Makefile.nt b/yacc/Makefile.nt index 3ec232df..c90e17da 100644 --- a/yacc/Makefile.nt +++ b/yacc/Makefile.nt @@ -10,7 +10,7 @@ # # ######################################################################### -# $Id: Makefile.nt,v 1.11 2007/11/15 13:21:15 frisch Exp $ +# $Id: Makefile.nt 8521 2007-11-15 13:21:15Z frisch $ # Makefile for the parser generator. diff --git a/yacc/closure.c b/yacc/closure.c index 7ea396dc..dfb32be1 100644 --- a/yacc/closure.c +++ b/yacc/closure.c @@ -12,7 +12,7 @@ /* Based on public-domain code from Berkeley Yacc */ -/* $Id: closure.c,v 1.9 2001/07/12 12:54:22 doligez Exp $ */ +/* $Id: closure.c 3573 2001-07-12 12:54:24Z doligez $ */ #include "defs.h" diff --git a/yacc/defs.h b/yacc/defs.h index 7991b590..522c54c4 100644 --- a/yacc/defs.h +++ b/yacc/defs.h @@ -12,7 +12,7 @@ /* Based on public-domain code from Berkeley Yacc */ -/* $Id: defs.h,v 1.22 2004/04/21 23:26:05 doligez Exp $ */ +/* $Id: defs.h 6244 2004-04-21 23:26:06Z doligez $ */ #include #include diff --git a/yacc/error.c b/yacc/error.c index 9bc29a77..bae9c194 100644 --- a/yacc/error.c +++ b/yacc/error.c @@ -12,7 +12,7 @@ /* Based on public-domain code from Berkeley Yacc */ -/* $Id: error.c,v 1.15 2004/11/02 10:48:14 doligez Exp $ */ +/* $Id: error.c 6654 2004-11-02 10:48:14Z doligez $ */ /* routines for printing error messages */ diff --git a/yacc/lalr.c b/yacc/lalr.c index a89d8a3f..196fa37d 100644 --- a/yacc/lalr.c +++ b/yacc/lalr.c @@ -12,7 +12,7 @@ /* Based on public-domain code from Berkeley Yacc */ -/* $Id: lalr.c,v 1.8 2001/07/12 12:54:23 doligez Exp $ */ +/* $Id: lalr.c 3573 2001-07-12 12:54:24Z doligez $ */ #include "defs.h" diff --git a/yacc/lr0.c b/yacc/lr0.c index 55109bac..58bf42ef 100644 --- a/yacc/lr0.c +++ b/yacc/lr0.c @@ -12,7 +12,7 @@ /* Based on public-domain code from Berkeley Yacc */ -/* $Id: lr0.c,v 1.8 2001/07/12 12:54:23 doligez Exp $ */ +/* $Id: lr0.c 3573 2001-07-12 12:54:24Z doligez $ */ #include "defs.h" diff --git a/yacc/main.c b/yacc/main.c index 5d79e558..818be35e 100644 --- a/yacc/main.c +++ b/yacc/main.c @@ -12,7 +12,7 @@ /* Based on public-domain code from Berkeley Yacc */ -/* $Id: main.c,v 1.20 2006/04/16 23:28:22 doligez Exp $ */ +/* $Id: main.c 7382 2006-04-16 23:28:22Z doligez $ */ #include #include diff --git a/yacc/mkpar.c b/yacc/mkpar.c index 46dfb6d5..1086a632 100644 --- a/yacc/mkpar.c +++ b/yacc/mkpar.c @@ -12,7 +12,7 @@ /* Based on public-domain code from Berkeley Yacc */ -/* $Id: mkpar.c,v 1.11 2001/07/12 12:54:23 doligez Exp $ */ +/* $Id: mkpar.c 3573 2001-07-12 12:54:24Z doligez $ */ #include "defs.h" diff --git a/yacc/output.c b/yacc/output.c index 5b968785..b293ae74 100644 --- a/yacc/output.c +++ b/yacc/output.c @@ -12,7 +12,7 @@ /* Based on public-domain code from Berkeley Yacc */ -/* $Id: output.c,v 1.14 2002/11/02 22:36:46 doligez Exp $ */ +/* $Id: output.c 5232 2002-11-02 22:36:46Z doligez $ */ #include "defs.h" diff --git a/yacc/reader.c b/yacc/reader.c index a8f751d3..b4990585 100644 --- a/yacc/reader.c +++ b/yacc/reader.c @@ -12,7 +12,7 @@ /* Based on public-domain code from Berkeley Yacc */ -/* $Id: reader.c,v 1.32.18.1 2009/05/20 11:58:43 doligez Exp $ */ +/* $Id: reader.c 9271 2009-05-20 11:58:43Z doligez $ */ #include #include "defs.h" diff --git a/yacc/skeleton.c b/yacc/skeleton.c index fef9dbe6..7b12a633 100644 --- a/yacc/skeleton.c +++ b/yacc/skeleton.c @@ -12,7 +12,7 @@ /* Based on public-domain code from Berkeley Yacc */ -/* $Id: skeleton.c,v 1.13 2005/08/13 20:59:37 doligez Exp $ */ +/* $Id: skeleton.c 7019 2005-08-13 20:59:37Z doligez $ */ #include "defs.h" diff --git a/yacc/symtab.c b/yacc/symtab.c index e29ba390..92ad7d39 100644 --- a/yacc/symtab.c +++ b/yacc/symtab.c @@ -12,7 +12,7 @@ /* Based on public-domain code from Berkeley Yacc */ -/* $Id: symtab.c,v 1.8 2001/07/12 12:54:23 doligez Exp $ */ +/* $Id: symtab.c 3573 2001-07-12 12:54:24Z doligez $ */ #include #include "defs.h" diff --git a/yacc/verbose.c b/yacc/verbose.c index 2ab794f6..a1219793 100644 --- a/yacc/verbose.c +++ b/yacc/verbose.c @@ -12,7 +12,7 @@ /* Based on public-domain code from Berkeley Yacc */ -/* $Id: verbose.c,v 1.9 2001/07/12 12:54:23 doligez Exp $ */ +/* $Id: verbose.c 3573 2001-07-12 12:54:24Z doligez $ */ #include "defs.h" diff --git a/yacc/warshall.c b/yacc/warshall.c index 72b59402..f1caabb6 100644 --- a/yacc/warshall.c +++ b/yacc/warshall.c @@ -12,7 +12,7 @@ /* Based on public-domain code from Berkeley Yacc */ -/* $Id: warshall.c,v 1.8 2001/07/12 12:54:23 doligez Exp $ */ +/* $Id: warshall.c 3573 2001-07-12 12:54:24Z doligez $ */ #include "defs.h" -- 2.30.2