Up to [NetBSD + pkgsrc-wip] / pkgsrc / lang / ocaml
Request diff between arbitrary revisions - Display revisions graphically
Keyword substitution: kv
Default branch: MAIN
Pass CFLAGS and LDFLAGS to the compiler (fixes problems e.g. on Mac OS X); pkglint clean-up
Pullup ticket #3287 - requested by is lang/ocaml: portability fix Revisions pulled up: - lang/ocaml/Makefile.common 1.27 - lang/ocaml/PLIST 1.23 - lang/ocaml/PLIST.opt 1.17 - lang/ocaml/distinfo 1.52 - lang/ocaml/patches/patch-aw 1.8 --- Module Name: pkgsrc Committed By: is Date: Sun Nov 28 08:41:33 UTC 2010 Modified Files: pkgsrc/lang/ocaml: Makefile.common PLIST PLIST.opt distinfo pkgsrc/lang/ocaml/patches: patch-aw Log Message: Make this package work again on architectures where we don't compile natively (that is, only to byte-code). This consists of two parts: a) a patch to ocamldoc/Makefile to make it create the man pages using the interpreted ocamldoc - this exists for both types of architectures, so is safe. (This will be sent up-stream). b) move a common shared library file to the common PLIST, and a lot of files (natively compiled versions of the ML modules and natively compiled versions of a few binaries) to PLIST.opt. This has been build-tested on i386 (cross-compiled from amd64) and on arm. unison builds and works. "make test" shows the same amount of passed and failed tests (mostly non-found libraries) as before; but this needs more investigation. An additional issue to solve (with upstream) is that there's no easy way to run the part of the test suite that would work on byte-code-only architectures.
Make this package work again on architectures where we don't compile natively (that is, only to byte-code). This consists of two parts: a) a patch to ocamldoc/Makefile to make it create the man pages using the interpreted ocamldoc - this exists for both types of architectures, so is safe. (This will be sent up-stream). b) move a common shared library file to the common PLIST, and a lot of files (natively compiled versions of the ML modules and natively compiled versions of a few binaries) to PLIST.opt. This has been build-tested on i386 (cross-compiled from amd64) and on arm. unison builds and works. "make test" shows the same amount of passed and failed tests (mostly non-found libraries) as before; but this needs more investigation. An additional issue to solve (with upstream) is that there's no easy way to run the part of the test suite that would work on byte-code-only architectures.
Update to O'Caml 3.12.0, add test target.
Some of the highlights in release 3.12 are:
* Polymorphic recursion is supported, using explicit type
declarations on the recursively-defined identifiers.
* First-class modules: module expressions can be embedded as
values of the core language, then manipulated like any other
first-class value, then projected back to the module level.
* New operator to modify a signature a posteriori: S with type
t := tau denotes signature S where the t type component is
removed and substituted by the type tau elsewhere.
* New notations for record expressions and record patterns:
{ lbl } as shorthand for { lbl = lbl }, and { ...; _ } marks
record patterns where some labels were intentionally omitted.
* Local open let open ... in ... now supported by popular demand.
* Type variables can be bound as type parameters to functions;
such types are treated like abstract types within the
function body, and like type variables (possibly generalized)
outside.
* The module type of construct enables to recover the module
type of a given module.
* Explicit method override using the method! keyword, with
associated warnings and errors.
Update lang/ocaml to 3.11.1 [PR pkg/41695] (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.
Changes 3.10.1:
* Bug fixes
* New features:
- made configure script work on PlayStation 3
- ARM port: brought up-to-date for Debian 4.0 (Etch)
- many other small changes and bugfixes in camlp4, ocamlbuild, labltk,
emacs files
Changes 3.10.0:
- New language features
- New tools
- Faster type-checking of functor applications.
- Referencing an interface compiled with -rectypes from a module
not compiled with -rectypes is now an error.
- Revised the "fragile matching" warning.
- Print a stack backtrace on an uncaught exception.
- Stack overflow detection on MS Windows 32 bits.
- Stack overflow detection on MacOS X PPC and Intel.
- Intel/AMD 64 bits: generate position-independent code by default.
- Fixed bug involving -for-pack and missing .cmx files.
- Fixed bug causing duplication of literals.
- C/Caml interface functions take "char const *" arguments
instead of "char *" when appropriate.
- Faster string comparisons (fast case if strings are ==).
- Other
Reorder PLIST components so that directories are removed in the correct
order. Remove "@unexec rmdir" lines made redundant by the reordering.
Also, use a more succinct way to match ${OPSYS} + ${MACHINE_ARCH} by
just checking ${MACHINE_PLATFORM}.
Changes 3.09.1: * 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')
Move some files that were mis-listed in PLIST into PLIST.opt. Those files are only built and installed if "opt" is passed as a build target. This fixes installation on platforms on which the native-code compiler is not supported, e.g. NetBSD/amd64.
Changes 3.08.3:
New features:
- support for ocamlopt -pack under Mac OS X (PR#2634, PR#3320)
- ignore unknown warning options for forward and backward compatibility
- runtime: export caml_compare_unordered (PR#3479)
- camlp4: install argl.* files (PR#3439)
- ocamldoc: add -man-section option
- labltk: add the "solid" relief option (PR#3343)
- compiler: ocamlc -i now prints variance annotations
Bug fixes:
- typing: fix unsoundness in type declaration variance inference.
Type parameters which are constrained must now have an explicit variant
annotation, otherwise they are invariant. This is not backward
compatible, so this might break code which either uses subtyping or
uses the relaxed value restriction (i.e. was not typable before 3.07)
- typing: erroneous partial match warning for polymorphic variants (PR#3424)
- runtime: handle the case of an empty command line (PR#3409, PR#3444)
- stdlib: make Sys.executable_name an absolute path in native code (PR#3303)
- runtime: fix memory leak in finalise.c
- runtime: auto-trigger compaction even if gc is called manually (PR#3392)
- stdlib: fix segfault in Obj.dup on zero-sized values (PR#3406)
- camlp4: correct parsing of the $ identifier (PR#3310, PR#3469)
- windows (MS tools): use link /lib instead of lib (PR#3333)
- windows (MS tools): change default install destination
- autoconf: better checking of SSE2 instructions (PR#3329, PR#3330)
- graphics: make close_graph close the X display as well as the window (PR#3312)
- num: fix big_int_of_string (empty string) (PR#3483)
- num: fix big bug on 64-bit architecture (PR#3299)
- str: better documentation of string_match and string_partial_match (PR#3395)
- unix: fix file descriptor leak in Unix.accept (PR#3423)
- unix: miscellaneous clean-ups
- unix: fix documentation of Unix.tm (PR#3341)
- graphics: fix problem when allocating lots of images under Windows (PR#3433)
- compiler: fix error message with -pack when .cmi is missing (PR#3028)
- cygwin: fix problem with compilation of camlheader (PR#3485)
- stdlib: Filename.basename doesn't return an empty string any more (PR#3451)
- stdlib: better documentation of Open_excl flag (PR#3450)
- ocamlcp: accept -thread option (PR#3511)
- ocamldep: handle spaces in file names (PR#3370)
- compiler: remove spurious warning in pattern-matching on variants (PR#3424)
- windows: better handling of InterpreterPath registry entry (PR#3334, PR#3432)
- Update from 3.06 to 3.08.2 - Lots of changes/bugfixes - see Changes for all the details
Do not depend on Tk nor X11. Two new packages will be added to provide the missing bits, namely labltk and ocaml-graphics, respectively. To simplify this, add a Makefile.common. Bump PKGREVISION to 8. Per discussion with wiz@ a while ago.
move a few files from PLIST to PLIST.opt
Two Darwin fixes: - split out the profiled libraries in the PLIST, because they don't get built on Darwin. - set INSTALL_UNSTRIPPED on Darwin for both ocaml itself and anything that directly depends on it, because the ocaml compiler generates binaries that don't strip properly.
* Use ".L" instead of "L" as label prefix on sparc * For consistency use SYS_bsd for system type on powerpc. We differ from SYS_elf (presumably Linux) on a few points here anyway. * Fix signal handling on powerpc which caused a seg fault when compiling native code version of coq. * Install ocamllex.opt, camlp4o.opt and camlp4r.opt too.
Update lang/ocaml to 3.06, using patch supplied by Martin Weber (ephaeton at gmx dot net) in PR pkg/18023. Besten Dank! Changes from 3.04 to 3.05 (abbreviated list, full list available at http://caml.inria.fr/archives/200207/msg00558.html): Language features: - Support for polymorphic methods and record fields. - Allows _ separators in integer and float literals, e.g. 1_000_000. Type-checker: - Fixed subtle typing bug with higher-order functors. - Fixed several complexity problems; - Fixed various bugs with objects and polymorphic variants. Bytecode compiler: - Fixed issue with ocamlc.opt and dynamic linking. Native-code compiler: - Fixed GC bug related to constant constructors of polymorphic variant types. - Fixed compilation bug for top-level "include" statements. Toplevel interactive system: - ocamlmktop: minimized possibility of name clashes with user-provided modules. Run-time system: - Better support for lazy data in the garbage collector. - Support for float formats that are neither big-endian nor little-endian - Fixed bug in callback*_exn functions in the exception-catching case. Standard library: - Protect against integer overflow in sub-string and sub-array bound checks. - New module Complex implementing arithmetic over complex numbers. - New module Scanf implementing format-based scanning a la scanf() in C. - various fixes and enhancements to existing modules Tools: - ocamldoc part of distribution - Debugger: now supports the option -I +dir. - ocamllex: supports the same identifiers as ocamlc; Changes from 3.05 to 3.06: Type-checking: - Apply value restriction to polymorphic record fields. Run-time system: - Fixed GC bug affecting lazy values. Both compilers: - Added option "-version" to print just the version number. - Fixed wrong dependencies in .cmi generated with the -pack option. Native-code compiler: - Fixed wrong return value for inline bigarray assignments. Libraries: - Unix.getsockopt: make sure result is a valid boolean. Tools: - ocamlbrowser: improved error reporting;
Merge from pkgsrc-current to buildlink2 branch.
Actually doing the commit: > Update to version 3.04 based on patches submitted in PR#16896 by > Marko Schuetz (MarcoSchuetz at web dot de) with minor modification by > me, closing that PR. (Pointed out by Takahiro Kambe)
Move pkg/ files into package's toplevel directory