pkgsrc-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: pkgsrc/lang/ocaml

Module Name:    pkgsrc
Committed By:   jaapb
Date:           Mon Oct  8 15:05:33 UTC 2012

Modified Files:
        pkgsrc/lang/ocaml: Makefile Makefile.common PLIST PLIST.natdynlink
            PLIST.opt PLIST.stub distinfo
Added Files:
        pkgsrc/lang/ocaml/patches: patch-Makefile patch-asmcomp_power_emit.mlp
            patch-asmrun_Makefile patch-asmrun_power-bsd.S
            patch-asmrun_signals_osdep.h patch-byterun_Makefile
            patch-camlp4_man_Makefile patch-configure
            patch-debugger_Makefile.shared patch-man_Makefile
            patch-ocamldoc_Makefile patch-otherlibs_Makefile.shared
            patch-otherlibs_threads_Makefile patch-stdlib_Makefile
            patch-stdlib_Makefile.shared patch-tools_Makefile.shared
Removed Files:
        pkgsrc/lang/ocaml/patches: patch-at patch-au patch-av patch-aw patch-ax
            patch-ay patch-az patch-bb patch-bc patch-bd patch-be patch-bf
            patch-bg patch-bh patch-bi patch-bo patch-bp patch-bq patch-br
            patch-bs patch-bt patch-bu patch-bv patch-bw patch-bx

Log Message:
Update to version 4.00.1. Renamed patches from two-letter system and added

Updated to default to a full dependency (more pertinent in most
cases; usually the standard library needs to be installed for an ocaml
program to run)

Changes from 3.12 to 4.00.1 include:
OCaml 4.00.1:
Various bug fixes.

OCaml 4.00.0:

(Changes that can break existing programs are marked with a "*")

- The official name of the language is now OCaml.

Language features:
- Added Generalized Algebraic Data Types (GADTs) to the language.
  See chapter "Language extensions" of the reference manual for documentation.
- It is now possible to omit type annotations when packing and unpacking
  first-class modules. The type-checker attempts to infer it from the context.
  Using the -principal option guarantees forward compatibility.
- New (module M) and (module M : S) syntax in patterns, for immediate
  unpacking of a first-class module.

- Revised simplification of let-alias (PR#5205, PR#5288)
- Better reporting of compiler version mismatch in .cmi files
* Warning 28 is now enabled by default.
- New option -absname to use absolute paths in error messages
- Optimize away compile-time beta-redexes, e.g. (fun x y -> e) a b.
- Added option -bin-annot to dump the AST with type annotations.
- Added lots of new warnings about unused variables, opens, fields,
  constructors, etc.
* New meaning for warning 7: it is now triggered when a method is overridden
  with the "method" keyword.  Use "method!" to avoid the warning.

Native-code compiler:
- Optimized handling of partially-applied functions (PR#5287)
- Small improvements in code generated for array bounds checks (PR#5345,
* New ARM backend (PR#5433):
    . Supports both Linux/EABI (armel) and Linux/EABI+VFPv3 (armhf).
    . Added support for the Thumb-2 instruction set with average code size
      savings of 28%.
    . Added support for position-independent code, natdynlink, profiling and
      exception backtraces.
- Generation of CFI information, and filename/line number debugging (with -g)
  annotations, enabling in particular precise stack backtraces with
  the gdb debugger. Currently supported for x86 32-bits and 64-bits only.
- New tool: ocamloptp, the equivalent of ocamlcp for the native-code compiler.

- PR#5645: ocamldoc doesn't handle module/type substitution in signatures
- PR#5544: improve HTML output (less formatting in html code)
- PR#5522: allow refering to record fields and variant constructors
- fix PR#5419 (error message in french)
- fix PR#5535 (no cross ref to class after dump+load)
* Use first class modules for custom generators, to be able to
  load various plugins incrementally adding features to the current
* PR#5507: Use Location.t structures for locations.
- fix: do not keep code when not told to keep code.

Standard library:
- Added float functions "hypot" and "copysign" (PR#3806, PR#4752, PR#5246)
* Arg: options with empty doc strings are no longer included in the usage string
- Array: faster implementations of "blit", "copy", "sub", "append" and "concat"
  (PR#2395, PR#2787, PR#4591)
* Hashtbl:
    . Statistically-better generic hash function based on Murmur 3 (PR#5225)
    . Fixed behavior of generic hash function w.r.t. -0.0 and NaN (PR#5222)
    . Added optional "random" parameter to Hashtbl.create to randomize
      collision patterns and improve security (PR#5572, CVE-2012-0839)
    . Added "randomize" function and "R" parameter to OCAMLRUNPARAM
      to turn randomization on by default (PR#5572, CVE-2012-0839)
    . Added new functorial interface "MakeSeeded" to support randomization
      with user-provided seeded hash functions.
    . Install new header <caml/hash.h> for C code.
- Filename: on-demand (lazy) initialization of the PRNG used by "temp_file".
- Marshal: marshalling of function values (flag Marshal.Closures) now
  also works for functions that come from dynamically-loaded modules (PR#5215)
- Random:
     . More random initialization (Random.self_init()), using /dev/urandom
       when available (e.g. Linux, FreeBSD, MacOS X, Solaris)
     * Faster implementation of Random.float (changes the generated sequences)
- Scanf: new function "unescaped" (PR#3888)
- Set and Map: more efficient implementation of "filter" and "partition"
- String: new function "map" (PR#3888)

Installation procedure:
- Compiler internals are now installed in `ocamlc -where`/compiler-libs.
  The files available there include the .cmi interfaces for all compiler
  modules, plus the following libraries:
      ocamlcommon.cma/.cmxa     modules common to ocamlc, ocamlopt, ocaml
      ocamlbytecomp.cma/.cmxa   modules for ocamlc and ocaml
      ocamloptcomp.cma/.cmxa    modules specific to ocamlopt

camltoplevel.cma         modules specific to ocaml
   (PR#1804, PR#4653, frequently-asked feature).
* Some .cmi for toplevel internals that used to be installed in
  `ocamlc -where` are now to be found in  `ocamlc -where`/compiler-libs.
  Add "-I +compiler-libs" where needed.
* toplevellib.cma is no longer installed because subsumed by
  ocamlcommon.cma ocamlbytecomp.cma ocamltoplevel.cma
- Added a configuration option (-with-debug-runtime) to compile and install
  a debug version of the runtime system, and a compiler option
  (-runtime-variant) to select the debug runtime.

and various bug fixes.

To generate a diff of this commit:
cvs rdiff -u -r1.79 -r1.80 pkgsrc/lang/ocaml/Makefile
cvs rdiff -u -r1.33 -r1.34 pkgsrc/lang/ocaml/Makefile.common
cvs rdiff -u -r1.23 -r1.24 pkgsrc/lang/ocaml/PLIST
cvs rdiff -u -r1.1 -r1.2 pkgsrc/lang/ocaml/PLIST.natdynlink
cvs rdiff -u -r1.18 -r1.19 pkgsrc/lang/ocaml/PLIST.opt
cvs rdiff -u -r1.5 -r1.6 pkgsrc/lang/ocaml/PLIST.stub
cvs rdiff -u -r1.26 -r1.27 pkgsrc/lang/ocaml/
cvs rdiff -u -r1.63 -r1.64 pkgsrc/lang/ocaml/distinfo
cvs rdiff -u -r0 -r1.1 pkgsrc/lang/ocaml/patches/patch-Makefile \
    pkgsrc/lang/ocaml/patches/patch-asmcomp_power_emit.mlp \
    pkgsrc/lang/ocaml/patches/patch-asmrun_Makefile \
    pkgsrc/lang/ocaml/patches/patch-asmrun_power-bsd.S \
    pkgsrc/lang/ocaml/patches/patch-asmrun_signals_osdep.h \
    pkgsrc/lang/ocaml/patches/patch-byterun_Makefile \
    pkgsrc/lang/ocaml/patches/patch-camlp4_man_Makefile \
    pkgsrc/lang/ocaml/patches/patch-configure \
    pkgsrc/lang/ocaml/patches/patch-debugger_Makefile.shared \
    pkgsrc/lang/ocaml/patches/patch-man_Makefile \
    pkgsrc/lang/ocaml/patches/patch-ocamldoc_Makefile \
    pkgsrc/lang/ocaml/patches/patch-otherlibs_Makefile.shared \
    pkgsrc/lang/ocaml/patches/patch-otherlibs_dynlink_Makefile \
    pkgsrc/lang/ocaml/patches/patch-otherlibs_labltk_browser_Makefile.shared \
    pkgsrc/lang/ocaml/patches/patch-otherlibs_labltk_camltk_Makefile \
    pkgsrc/lang/ocaml/patches/patch-otherlibs_labltk_compiler_Makefile \
    pkgsrc/lang/ocaml/patches/patch-otherlibs_labltk_frx_Makefile \
    pkgsrc/lang/ocaml/patches/patch-otherlibs_labltk_jpf_Makefile \
    pkgsrc/lang/ocaml/patches/patch-otherlibs_labltk_labltk_Makefile \
    pkgsrc/lang/ocaml/patches/patch-otherlibs_labltk_lib_Makefile \
    pkgsrc/lang/ocaml/patches/patch-otherlibs_labltk_support_Makefile \
    pkgsrc/lang/ocaml/patches/patch-otherlibs_systhreads_Makefile \
    pkgsrc/lang/ocaml/patches/patch-otherlibs_threads_Makefile \
    pkgsrc/lang/ocaml/patches/patch-stdlib_Makefile \
    pkgsrc/lang/ocaml/patches/patch-stdlib_Makefile.shared \
cvs rdiff -u -r1.28 -r0 pkgsrc/lang/ocaml/patches/patch-at
cvs rdiff -u -r1.4 -r0 pkgsrc/lang/ocaml/patches/patch-au \
    pkgsrc/lang/ocaml/patches/patch-ax pkgsrc/lang/ocaml/patches/patch-az \
    pkgsrc/lang/ocaml/patches/patch-bh pkgsrc/lang/ocaml/patches/patch-bq \
cvs rdiff -u -r1.2 -r0 pkgsrc/lang/ocaml/patches/patch-av \
    pkgsrc/lang/ocaml/patches/patch-bb pkgsrc/lang/ocaml/patches/patch-bg
cvs rdiff -u -r1.9 -r0 pkgsrc/lang/ocaml/patches/patch-aw
cvs rdiff -u -r1.3 -r0 pkgsrc/lang/ocaml/patches/patch-ay \
    pkgsrc/lang/ocaml/patches/patch-bc pkgsrc/lang/ocaml/patches/patch-bd \
    pkgsrc/lang/ocaml/patches/patch-be pkgsrc/lang/ocaml/patches/patch-bf \
    pkgsrc/lang/ocaml/patches/patch-bi pkgsrc/lang/ocaml/patches/patch-bo \
    pkgsrc/lang/ocaml/patches/patch-bp pkgsrc/lang/ocaml/patches/patch-bu
cvs rdiff -u -r1.8 -r0 pkgsrc/lang/ocaml/patches/patch-bs
cvs rdiff -u -r1.5 -r0 pkgsrc/lang/ocaml/patches/patch-bt \
cvs rdiff -u -r1.1 -r0 pkgsrc/lang/ocaml/patches/patch-bw \
cvs rdiff -u -r1.1 -r1.2 pkgsrc/lang/ocaml/patches/

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Home | Main Index | Thread Index | Old Index