summaryrefslogtreecommitdiff
path: root/lang/ocaml/patches/patch-br
AgeCommit message (Collapse)AuthorFilesLines
2012-10-08Update to version 4.00.1. Renamed patches from two-letter system and addedjaapb1-22/+0
comments. Updated buildlink3.mk 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. Compilers: - 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, PR#5360). * 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. (PR#5487) - New tool: ocamloptp, the equivalent of ocamlcp for the native-code compiler. OCamldoc: - 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 generator * PR#5507: Use Location.t structures for locations. - fix: do not keep code when not told to keep code. Standard library: - Added float functions "hypot" and "copysign" (PR#3806, PR#4752, PR#5246) * Arg: options with empty doc strings are no longer included in the usage string (PR#5437) - 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.
2009-09-07Update lang/ocaml to 3.11.1 [PR pkg/41695]tonio1-12/+5
(Changes that can break existing programs are marked with a "*" ) Language features: - Addition of lazy patterns: "lazy <pat>" matches suspensions whose values, after forcing, match the pattern <pat>. - Introduction of private abbreviation types "type t = private <type-expr>", for abstracting the actual manifest type in type abbreviations. - Subtyping is now allowed between a private abbreviation and its definition, and between a polymorphic method and its monomorphic instance. Compilers: - The file name for a compilation unit should correspond to a valid identifier (Otherwise dynamic linking and other things can fail, and a warning is emitted.) * Revised -output-obj: the output name must now be provided; its extension must be one of .o/.obj, .so/.dll, or .c for the bytecode compiler. The compilers can now produce a shared library (with all the needed -ccopts/-ccobjs options) directly. - -dtypes renamed to -annot, records (in .annot files) which function calls are tail calls. - All compiler error messages now include a file name and location, for better interaction with Emacs' compilation mode. - Optimized compilation of "lazy e" when the argument "e" is already evaluated. - Optimized compilation of equality tests with a variant constant constructor. - The -dllib options recorded in libraries are no longer ignored when -use_runtime or -use_prims is used (unless -no_auto_link is explicitly used). - Check that at most one of -pack, -a, -shared, -c, -output-obj is given on the command line. - Optimized compilation of private types as regular manifest types (e.g. abbreviation to float, float array or record types with only float fields). Native-code compiler: - New port: Mac OS X / Intel in 64-bit mode (configure with -cc "gcc -m64"). - A new option "-shared" to produce a plugin that can be dynamically loaded with the native version of Dynlink. - A new option "-nodynlink" to enable optimizations valid only for code that is never dynlinked (no-op except for AMD64). - More aggressive unboxing of floats and boxed integers. - Can select which assembler and asm options to use at configuration time. Run-time system: - New implementation of the page table describing the heap (two-level array in 32 bits, sparse hashtable in 64 bits), fixes issues with address space randomization on 64-bit OS (PR#4448). - New "generational" API for registering global memory roots with the GC, enables faster scanning of global roots. (The functions are caml_*_generational_global_root in <caml/memory.h>.) - New function "caml_raise_with_args" to raise an exception with several arguments from C. - Changes in implementation of dynamic linking of C code: under Win32, use Alain Frisch's flexdll implementation of the dlopen API; under MacOSX, use dlopen API instead of MacOSX bundle API. - Programs may now choose a first-fit allocation policy instead of the default next-fit. First-fit reduces fragmentation but is slightly slower in some cases. Standard library: - Parsing library: new function "set_trace" to programmatically turn on or off the printing of a trace during parsing. - Printexc library: new functions "print_backtrace" and "get_backtrace" to obtain a stack backtrace of the most recently raised exception. New function "record_backtrace" to turn the exception backtrace mechanism on or off from within a program. - Scanf library: fine-tuning of meta format implementation; fscanf behaviour revisited: only one input buffer is allocated for any given input channel; the %n conversion does not count a lookahead character as read. Other libraries: - Dynlink: on some platforms, the Dynlink library is now available in native code. The boolean Dynlink.is_native allows the program to know whether it has been compiled in bytecode or in native code. - Bigarrays: added "unsafe_get" and "unsafe_set" (non-bound-checking versions of "get" and "set"). - Bigarrays: removed limitation "array dimension < 2^31". - Labltk: added support for TK 8.5. - Num: added conversions between big_int and int32, nativeint, int64. More efficient implementation of Num.quo_num and Num.mod_num. - Threads: improved efficiency of mutex and condition variable operations; improved interaction with Unix.fork (PR#4577). - Unix: added getsockopt_error returning type Unix.error. Added support for TCP_NODELAY and IPV6_ONLY socket options. - Win32 Unix: "select" now supports all kinds of file descriptors. Improved emulation of "lockf" (PR#4609). Tools: - ocamldebug now supported under Windows (MSVC and Mingw ports), but without the replay feature. (Contributed by Dmitry Bely and Sylvain Le Gall at OCamlCore with support from Lexifi.) - ocamldoc: new option -no-module-constraint-filter to include functions hidden by signature constraint in documentation. - ocamlmklib and ocamldep.opt now available under Windows ports. - ocamlmklib no longer supports the -implib option. - ocamlnat: an experimental native toplevel (not built by default). Camlp4: * programs linked with camlp4lib.cma now also need dynlink.cma.
2006-01-16Changes 3.09.1:adam1-5/+5
* Bug fixes * New features: - otherlibs/labltk: browser uses menu bars instead of menu buttons Changes 3.09.0: Language features: - Introduction of private row types, for abstracting the row in object and variant types. Type checking: - Polymorphic variants with at most one constructor [< `A of t] are no longer systematically promoted to the exact type [`A of t]. This was more confusing than useful, and created problems with private row types. Native-code compiler (ocamlopt): * Revised implementation of the -pack option (packing of several compilation units into one). The .cmx files that are to be packed with "ocamlopt -pack -o P.cmx" must be compiled with "ocamlopt -for-pack P". In exchange for this additional constraint, ocamlopt -pack is now available on all platforms (no need for binutils). * Fixed wrong evaluation order for arguments to certain inlined functions. * Other (see 'Changes')
2005-02-04- Update from 3.06 to 3.08.2adrianp1-5/+21
- Lots of changes/bugfixes - see Changes for all the details
2004-04-22Fix various issues with this package:tron1-0/+13
- split patches files - always enable threading which has various advantages - it fixes the build of the Tk library - it greatly simplifies the package list handling - it provides threading support under NetBSD 1.6/1.6.x - correct default dependence in "buildlink2.mk" to "build" Bump package revision because of all these changes.