head 1.6; access; symbols pkgsrc-2013Q2:1.6.0.4 pkgsrc-2013Q2-base:1.6 pkgsrc-2012Q4:1.6.0.2 pkgsrc-2012Q4-base:1.6 pkgsrc-2012Q3:1.5.0.30 pkgsrc-2012Q3-base:1.5 pkgsrc-2012Q2:1.5.0.28 pkgsrc-2012Q2-base:1.5 pkgsrc-2012Q1:1.5.0.26 pkgsrc-2012Q1-base:1.5 pkgsrc-2011Q4:1.5.0.24 pkgsrc-2011Q4-base:1.5 pkgsrc-2011Q3:1.5.0.22 pkgsrc-2011Q3-base:1.5 pkgsrc-2011Q2:1.5.0.20 pkgsrc-2011Q2-base:1.5 pkgsrc-2011Q1:1.5.0.18 pkgsrc-2011Q1-base:1.5 pkgsrc-2010Q4:1.5.0.16 pkgsrc-2010Q4-base:1.5 pkgsrc-2010Q3:1.5.0.14 pkgsrc-2010Q3-base:1.5 pkgsrc-2010Q2:1.5.0.12 pkgsrc-2010Q2-base:1.5 pkgsrc-2010Q1:1.5.0.10 pkgsrc-2010Q1-base:1.5 pkgsrc-2009Q4:1.5.0.8 pkgsrc-2009Q4-base:1.5 pkgsrc-2009Q3:1.5.0.6 pkgsrc-2009Q3-base:1.5 pkgsrc-2009Q2:1.5.0.4 pkgsrc-2009Q2-base:1.5 pkgsrc-2009Q1:1.5.0.2 pkgsrc-2009Q1-base:1.5 pkgsrc-2008Q4:1.4.0.14 pkgsrc-2008Q4-base:1.4 pkgsrc-2008Q3:1.4.0.12 pkgsrc-2008Q3-base:1.4 cube-native-xorg:1.4.0.10 cube-native-xorg-base:1.4 pkgsrc-2008Q2:1.4.0.8 pkgsrc-2008Q2-base:1.4 pkgsrc-2008Q1:1.4.0.6 pkgsrc-2008Q1-base:1.4 pkgsrc-2007Q4:1.4.0.4 pkgsrc-2007Q4-base:1.4 pkgsrc-2007Q3:1.4.0.2 pkgsrc-2007Q3-base:1.4 pkgsrc-2007Q2:1.3.0.6 pkgsrc-2007Q2-base:1.3 pkgsrc-2007Q1:1.3.0.4 pkgsrc-2007Q1-base:1.3 pkgsrc-2006Q4:1.3.0.2 pkgsrc-2006Q4-base:1.3 pkgsrc-2006Q3:1.2.0.10 pkgsrc-2006Q3-base:1.2 pkgsrc-2006Q2:1.2.0.8 pkgsrc-2006Q2-base:1.2 pkgsrc-2006Q1:1.2.0.6 pkgsrc-2006Q1-base:1.2 pkgsrc-2005Q4:1.2.0.4 pkgsrc-2005Q4-base:1.2 pkgsrc-2005Q3:1.2.0.2 pkgsrc-2005Q3-base:1.2 pkgsrc-2005Q2:1.1.0.4 pkgsrc-2005Q2-base:1.1 pkgsrc-2005Q1:1.1.0.2 pkgsrc-2005Q1-base:1.1; locks; strict; comment @# @; 1.6 date 2012.10.08.15.05.33; author jaapb; state dead; branches; next 1.5; 1.5 date 2009.01.22.01.00.34; author he; state Exp; branches; next 1.4; 1.4 date 2007.09.14.15.34.12; author adam; state dead; branches 1.4.14.1; next 1.3; 1.3 date 2006.10.03.21.06.25; author adam; state Exp; branches; next 1.2; 1.2 date 2005.09.04.13.57.51; author tonio; state Exp; branches; next 1.1; 1.1 date 2005.02.04.21.35.51; author adrianp; state Exp; branches; next ; 1.4.14.1 date 2009.01.22.11.40.54; author tron; state Exp; branches; next ; desc @@ 1.6 log @Update to version 4.00.1. Renamed patches from two-letter system and added 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 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. @ text @$NetBSD: patch-bv,v 1.5 2009/01/22 01:00:34 he Exp $ --- ./asmrun/signals_osdep.h.orig 2007-11-26 17:58:51.000000000 +0100 +++ ./asmrun/signals_osdep.h @@@@ -158,10 +158,9 @@@@ #define CONTEXT_SP (CONTEXT_STATE.CONTEXT_REG(r1)) #define CONTEXT_FAULTING_ADDRESS ((char *) info->si_addr) -/****************** PowerPC, ELF (Linux) */ +/****************** PowerPC, ELF (Linux | NetBSD) */ #elif defined(TARGET_power) && defined(SYS_elf) - #define DECLARE_SIGNAL_HANDLER(name) \ static void name(int sig, struct sigcontext * context) @@@@ -169,11 +168,21 @@@@ sigact.sa_handler = (void (*)(int)) (name); \ sigact.sa_flags = 0 + #ifdef __NetBSD__ + typedef register_t context_reg; + #define CONTEXT_PC (context->sc_frame.srr0) + #define CONTEXT_EXCEPTION_POINTER (context->sc_frame.fixreg[29]) + #define CONTEXT_YOUNG_LIMIT (context->sc_frame.fixreg[30]) + #define CONTEXT_YOUNG_PTR (context->sc_frame.fixreg[31]) + + #else + typedef unsigned long context_reg; #define CONTEXT_PC (context->regs->nip) #define CONTEXT_EXCEPTION_POINTER (context->regs->gpr[29]) #define CONTEXT_YOUNG_LIMIT (context->regs->gpr[30]) #define CONTEXT_YOUNG_PTR (context->regs->gpr[31]) + #endif /* __NetBSD__ */ /****************** PowerPC, BSD */ @ 1.5 log @Add a patch so that this package builds for our powerpc ports as well. In this case, we fall into the SYS_elf branch together with Linux, but we need a few other specifics to access registers in the sigcontext. @ text @d1 1 a1 1 $NetBSD$ @ 1.4 log @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 @ text @d1 1 a1 1 $NetBSD: patch-bv,v 1.3 2006/10/03 21:06:25 adam Exp $ d3 35 a37 10 --- camlp4/compile/Makefile.orig 2006-09-12 10:58:10.000000000 +0200 +++ camlp4/compile/Makefile @@@@ -30,8 +30,8 @@@@ $D_fast.ml: compile.cmo $(SRC) OTOP=$(OTOP) EXE=$(EXE) ./compile.sh $(COMP_OPT) $(SRC) >> $D_fast.ml install: - if test -f camlp4$D.fast.opt; then cp camlp4$D.fast.opt $(BINDIR)/camlp4$D.opt$(EXE); fi - for TARG in pa_$D_fast.cmi pa_$D_fast.cmo pa_$D_fast.cmx pa_$D_fast.o ; do if test -f $$TARG; then cp $$TARG "$(LIBDIR)/camlp4/."; fi; done + if test -f camlp4$D.fast.opt; then ${BSD_INSTALL_DATA} camlp4$D.fast.opt $(BINDIR)/camlp4$D.opt$(EXE); fi + for TARG in pa_$D_fast.cmi pa_$D_fast.cmo pa_$D_fast.cmx pa_$D_fast.o ; do if test -f $$TARG; then ${BSD_INSTALL_DATA} $$TARG "$(LIBDIR)/camlp4/."; fi; done a38 2 clean:: rm -f *.cm* *.pp[io] *.o *.bak .*.bak *.out *.opt @ 1.4.14.1 log @Pullup ticket #2649 - requested by he ocaml: build fix for NetBSD/macppc Revisons pulled up: - lang/ocaml/Makefile 1.61 - lang/ocaml/distinfo 1.44 - lang/ocaml/patches/patch-bv 1.5 --- Module Name: pkgsrc Committed By: he Date: Thu Jan 22 01:00:34 UTC 2009 Modified Files: pkgsrc/lang/ocaml: Makefile distinfo Added Files: pkgsrc/lang/ocaml/patches: patch-bv Log Message: Add a patch so that this package builds for our powerpc ports as well. In this case, we fall into the SYS_elf branch together with Linux, but we need a few other specifics to access registers in the sigcontext. @ text @d1 1 a1 1 $NetBSD$ d3 10 a12 35 --- ./asmrun/signals_osdep.h.orig 2007-11-26 17:58:51.000000000 +0100 +++ ./asmrun/signals_osdep.h @@@@ -158,10 +158,9 @@@@ #define CONTEXT_SP (CONTEXT_STATE.CONTEXT_REG(r1)) #define CONTEXT_FAULTING_ADDRESS ((char *) info->si_addr) -/****************** PowerPC, ELF (Linux) */ +/****************** PowerPC, ELF (Linux | NetBSD) */ #elif defined(TARGET_power) && defined(SYS_elf) - #define DECLARE_SIGNAL_HANDLER(name) \ static void name(int sig, struct sigcontext * context) @@@@ -169,11 +168,21 @@@@ sigact.sa_handler = (void (*)(int)) (name); \ sigact.sa_flags = 0 + #ifdef __NetBSD__ + typedef register_t context_reg; + #define CONTEXT_PC (context->sc_frame.srr0) + #define CONTEXT_EXCEPTION_POINTER (context->sc_frame.fixreg[29]) + #define CONTEXT_YOUNG_LIMIT (context->sc_frame.fixreg[30]) + #define CONTEXT_YOUNG_PTR (context->sc_frame.fixreg[31]) + + #else + typedef unsigned long context_reg; #define CONTEXT_PC (context->regs->nip) #define CONTEXT_EXCEPTION_POINTER (context->regs->gpr[29]) #define CONTEXT_YOUNG_LIMIT (context->regs->gpr[30]) #define CONTEXT_YOUNG_PTR (context->regs->gpr[31]) + #endif /* __NetBSD__ */ /****************** PowerPC, BSD */ d14 2 @ 1.3 log @Changes 3.09.3: Bug fixes: - ocamldoc: -using modtype constraint to filter module elements displayed in doc - ocamldoc: error in merging of top dependencies of modules - ocamldoc: -dot-colors has no effect - ocamdloc: missing crossref in text from intro files - compilers: segfault with recursive modules - compilers: infinite loop when compiling objects - compilers: bad error message when signature mismatch - compilers: infinite loop with -rectypes - compilers: contravariance bug in private rows - compilers: unsafe cast with polymorphic exception - native compiler: bad assembly code generated for AMD64 - native compiler: stack alignment problems on MacOSX/i386 - stdlib: crash in marshalling - stdlib: crash when closing a channel twice - stdlib: memory leak in Sys.readdir - C interface: better definition of CAMLreturn - otherlibs/unix: crash in gethostbyname - tools: subtle problem with unset in makefile - camlp4: install pa_o_fast.o - camlp4: install more modules New features: - ocamldoc: name resolution in cross-referencing {!name}: if name is not found, then it is searched in the parent module/class, and in the parent of the parent, and so on until it is found. - ocamldoc: new option -short-functors to use a short form to display functors in html generator - ocamlprof: added "-version" option @ text @d1 1 a1 1 $NetBSD$ @ 1.2 log @Updating lang/ocaml to 3.08.4 (PR 31128) This is mainly a bug fix release, fixing code generation under amd64 and some OO compilation problems, among many others approved by adam@@ @ text @d1 1 a1 1 $NetBSD: patch-bv,v 1.1 2005/02/04 21:35:51 adrianp Exp $ d3 3 a5 3 --- camlp4/compile/Makefile.orig 2005-09-03 16:16:48.000000000 +0200 +++ camlp4/compile/Makefile 2005-09-03 16:18:35.000000000 +0200 @@@@ -30,8 +30,8 @@@@ d10 3 a12 3 - for TARG in pa_$D_fast.cmi pa_$D_fast.cmo pa_$D_fast.cmx ; do if test -f $$TARG; then cp $$TARG "$(LIBDIR)/camlp4/."; fi; done + if test -f camlp4$D.fast.opt; then ${BSD_INSTALL_PROGRAM} camlp4$D.fast.opt $(BINDIR)/camlp4$D.opt$(EXE); fi + for TARG in pa_$D_fast.cmi pa_$D_fast.cmo pa_$D_fast.cmx ; do if test -f $$TARG; then ${BSD_INSTALL_DATA} $$TARG "$(LIBDIR)/camlp4/."; fi; done @ 1.1 log @- Update from 3.06 to 3.08.2 - Lots of changes/bugfixes - see Changes for all the details @ text @d1 1 a1 1 $NetBSD$ d3 4 a6 4 --- camlp4/compile/Makefile.orig 2004-10-15 15:53:25.000000000 +0100 +++ camlp4/compile/Makefile 2004-10-15 15:55:06.000000000 +0100 @@@@ -29,8 +29,8 @@@@ OTOP=$(OTOP) EXE=$(EXE) ./compile.sh $(COMP_OPT) $(SRC) > $D_fast.ml @