head 1.6; access; symbols pkgsrc-2026Q1:1.6.0.12 pkgsrc-2026Q1-base:1.6 pkgsrc-2025Q4:1.6.0.10 pkgsrc-2025Q4-base:1.6 pkgsrc-2025Q3:1.6.0.8 pkgsrc-2025Q3-base:1.6 pkgsrc-2025Q2:1.6.0.6 pkgsrc-2025Q2-base:1.6 pkgsrc-2025Q1:1.6.0.4 pkgsrc-2025Q1-base:1.6 pkgsrc-2024Q4:1.6.0.2 pkgsrc-2024Q4-base:1.6 pkgsrc-2024Q3:1.5.0.20 pkgsrc-2024Q3-base:1.5 pkgsrc-2024Q2:1.5.0.18 pkgsrc-2024Q2-base:1.5 pkgsrc-2024Q1:1.5.0.16 pkgsrc-2024Q1-base:1.5 pkgsrc-2023Q4:1.5.0.14 pkgsrc-2023Q4-base:1.5 pkgsrc-2023Q3:1.5.0.12 pkgsrc-2023Q3-base:1.5 pkgsrc-2023Q2:1.5.0.10 pkgsrc-2023Q2-base:1.5 pkgsrc-2023Q1:1.5.0.8 pkgsrc-2023Q1-base:1.5 pkgsrc-2022Q4:1.5.0.6 pkgsrc-2022Q4-base:1.5 pkgsrc-2022Q3:1.5.0.4 pkgsrc-2022Q3-base:1.5 pkgsrc-2022Q2:1.5.0.2 pkgsrc-2022Q2-base:1.5 pkgsrc-2022Q1:1.4.0.34 pkgsrc-2022Q1-base:1.4 pkgsrc-2021Q4:1.4.0.32 pkgsrc-2021Q4-base:1.4 pkgsrc-2021Q3:1.4.0.30 pkgsrc-2021Q3-base:1.4 pkgsrc-2021Q2:1.4.0.28 pkgsrc-2021Q2-base:1.4 pkgsrc-2021Q1:1.4.0.26 pkgsrc-2021Q1-base:1.4 pkgsrc-2020Q4:1.4.0.24 pkgsrc-2020Q4-base:1.4 pkgsrc-2020Q3:1.4.0.22 pkgsrc-2020Q3-base:1.4 pkgsrc-2020Q2:1.4.0.20 pkgsrc-2020Q2-base:1.4 pkgsrc-2020Q1:1.4.0.16 pkgsrc-2020Q1-base:1.4 pkgsrc-2019Q4:1.4.0.18 pkgsrc-2019Q4-base:1.4 pkgsrc-2019Q3:1.4.0.14 pkgsrc-2019Q3-base:1.4 pkgsrc-2019Q2:1.4.0.12 pkgsrc-2019Q2-base:1.4 pkgsrc-2019Q1:1.4.0.10 pkgsrc-2019Q1-base:1.4 pkgsrc-2018Q4:1.4.0.8 pkgsrc-2018Q4-base:1.4 pkgsrc-2018Q3:1.4.0.6 pkgsrc-2018Q3-base:1.4 pkgsrc-2018Q2:1.4.0.4 pkgsrc-2018Q2-base:1.4 pkgsrc-2018Q1:1.4.0.2 pkgsrc-2018Q1-base:1.4 pkgsrc-2017Q4:1.3.0.18 pkgsrc-2017Q4-base:1.3 pkgsrc-2017Q3:1.3.0.16 pkgsrc-2017Q3-base:1.3 pkgsrc-2017Q2:1.3.0.12 pkgsrc-2017Q2-base:1.3 pkgsrc-2017Q1:1.3.0.10 pkgsrc-2017Q1-base:1.3 pkgsrc-2016Q4:1.3.0.8 pkgsrc-2016Q4-base:1.3 pkgsrc-2016Q3:1.3.0.6 pkgsrc-2016Q3-base:1.3 pkgsrc-2016Q2:1.3.0.4 pkgsrc-2016Q2-base:1.3 pkgsrc-2016Q1:1.3.0.2 pkgsrc-2016Q1-base:1.3 pkgsrc-2015Q4:1.2.0.10 pkgsrc-2015Q4-base:1.2 pkgsrc-2015Q3:1.2.0.8 pkgsrc-2015Q3-base:1.2 pkgsrc-2015Q2:1.2.0.6 pkgsrc-2015Q2-base:1.2 pkgsrc-2015Q1:1.2.0.4 pkgsrc-2015Q1-base:1.2 pkgsrc-2014Q4:1.2.0.2 pkgsrc-2014Q4-base:1.2 pkgsrc-2014Q3:1.1.0.16 pkgsrc-2014Q3-base:1.1 pkgsrc-2014Q2:1.1.0.14 pkgsrc-2014Q2-base:1.1 pkgsrc-2014Q1:1.1.0.12 pkgsrc-2014Q1-base:1.1 pkgsrc-2013Q4:1.1.0.10 pkgsrc-2013Q4-base:1.1 pkgsrc-2013Q3:1.1.0.8 pkgsrc-2013Q3-base:1.1 pkgsrc-2013Q2:1.1.0.6 pkgsrc-2013Q2-base:1.1 pkgsrc-2013Q1:1.1.0.4 pkgsrc-2013Q1-base:1.1 pkgsrc-2012Q4:1.1.0.2 pkgsrc-2012Q4-base:1.1; locks; strict; comment @# @; 1.6 date 2024.11.30.01.10.52; author dholland; state Exp; branches; next 1.5; commitid JwsPu0dDqHXIGBzF; 1.5 date 2022.05.24.18.25.38; author jaapb; state Exp; branches; next 1.4; commitid ksXw2AZxQuOm0lFD; 1.4 date 2018.01.10.14.30.35; author jaapb; state Exp; branches; next 1.3; commitid YBpqd5MncdyfYkmA; 1.3 date 2015.12.29.23.34.53; author dholland; state Exp; branches; next 1.2; commitid J5mAcuIF0darSTOy; 1.2 date 2014.10.09.19.08.28; author jaapb; state Exp; branches; next 1.1; commitid azl1YSIpYeDjIyTx; 1.1 date 2012.10.08.15.05.33; author jaapb; state Exp; branches; next ; desc @@ 1.6 log @lang/ocaml: update to 4.14.2. pkgsrc changes: - Correct patch-runtime_sak.c, which had been doing the wrong thing to fix ctype abuse. - Makefile.common is no longer used by anything else; note that (removing it is for a future not-just-maintenance change) Upstream changes: Runtime system: #11764, #12577: Add prototypes to old-style C function definitions and declarations. (Antonin Décimo, review by Xavier Leroy and Nick Barnes) #11763, #11759, #11861, #12509, #12577: Use strict prototypes on primitives. (Antonin Décimo, review by Xavier Leroy, David Allsopp, Sébastien Hinderer and Nick Barnes) (breaking change) #10723: do not use -flat-namespace linking for macOS. (Carlo Cabrera, review by Damien Doligez) #11332, #12702: make sure Bool_val(v) has type bool in C++ (Xavier Leroy, report by ygrek, review by Gabriel Scherer) Build system: #11590: Allow installing to a destination path containing spaces. (Élie Brami, review by Sébastien Hinderer and David Allsopp) #12372: Pass option -no-execute-only to the linker for OpenBSD >= 7.3 so that code sections remain readable, as needed for closure marshaling. (Xavier Leroy and Anil Madhavapeddy, review by Anil Madhavapeddy and Sébastien Hinderer) #12903: Disable control flow integrity on OpenBSD >= 7.4 to avoid illegal instruction errors on certain CPUs. (Michael Hendricks, review by Miod Vallat) Bug fixes: #12061, #12063: don't add inconsistent equalities when computing high-level error messages for functor applications and inclusions. (Florian Angeletti, review by Gabriel Scherer) #12878: fix incorrect treatment of injectivity for private recursive types. (Jeremy Yallop, review by Gabriel Scherer and Jacques Garrigue) #12971, #12974: fix an uncaught Ctype.Escape exception on some invalid programs forming recursive types. (Gabriel Scherer, review by Florian Angeletti, report by Neven Villani) #12264, #12289: Fix compact_allocate to avoid a pathological case that causes very slow compaction. (Damien Doligez, report by Arseniy Alekseyev, review by Sadiq Jaffer) #12513, #12518: Automatically enable emulated fma for Visual Studio 2019+ to allow configuration with either pre-Haswell/pre-Piledriver CPUs or running in VirtualBox. Restores parity with the other Windows ports, which don't require explicit --enable-imprecise-c99-float-ops. (David Allsopp, report by Jonah Beckford and Kate Deplaix, review by Sébastien Hinderer) #11633, #11636: bugfix in caml_unregister_frametable (Frédéric Recoules, review by Gabriel Scherer) #12636, #12646: More prudent reinitialization of I/O mutexes after a fork() (Xavier Leroy, report by Zach Baylin, review by Enguerrand Decorne) (breaking change) #10845 Emit frametable size on amd64 BSD (OpenBSD, FreeBSD, NetBSD) systems (emitted for Linux in #8805) (Hannes Mehnert, review by Nicolás Ojeda Bär) #12958: Fix tail-modulo-cons compilation of try-with, && and || expressions. (Gabriel Scherer and Nicolás Ojeda Bär, report by Sylvain Boilard, review by Gabriel Scherer) #12116, #12993: explicitly build non PIE executables on x86 32bits architectures (Florian Angeletti, review by David Allsopp) #13018: Don't pass duplicate libraries to the linker when compiling ocamlc.opt and when using systhreads (new versions of lld emit a warning). (David Allsopp, review by Nicolás Ojeda Bär) @ text @$NetBSD: patch-man_Makefile,v 1.5 2022/05/24 18:25:38 jaapb Exp $ Use BSD_INSTALL_* instead of mkdir and cp --- man/Makefile.orig 2022-02-08 16:50:12.000000000 +0000 +++ man/Makefile @@@@ -22,5 +22,5 @@@@ MANPAGES = $(addsuffix .1,\ .PHONY: install install: - $(MKDIR) '$(INSTALL_PROGRAMS_MAN_DIR)' - $(INSTALL_DATA) $(MANPAGES) '$(INSTALL_PROGRAMS_MAN_DIR)' + $(BSD_INSTALL_MAN_DIR) '$(INSTALL_PROGRAMS_MAN_DIR)' + $(BSD_INSTALL_MAN) $(MANPAGES) '$(INSTALL_PROGRAMS_MAN_DIR)' @ 1.5 log @Updated lang/ocaml to version 4.14.0. This is a long-overdue update, so there are many changes. Details are in the Changes file in the distribution. The mk/ocaml file will be moved to lang/ocaml and the logic for selecting whether to use the native-code compiler will be factored out into native.mk to avoid duplications. This is the final version before OCaml 5.0 arrives, which has multicore support and should be a major change from the 4.x versions. @ text @d1 1 a1 1 $NetBSD$ d11 4 a14 4 - $(MKDIR) $(INSTALL_PROGRAMS_MAN_DIR) - $(INSTALL_DATA) $(MANPAGES) $(INSTALL_PROGRAMS_MAN_DIR) + $(BSD_INSTALL_MAN_DIR) $(INSTALL_PROGRAMS_MAN_DIR) + $(BSD_INSTALL_MAN) $(MANPAGES) $(INSTALL_PROGRAMS_MAN_DIR) @ 1.4 log @Updated package lang/ocaml to version 4.06. Changes are many and can be found at https://ocaml.org/releases/4.06.html One change that breaks a lot of packages is that the safe-string compiler option is now enabled by default, which means that all modules need to use immutable strings (or explicitly use the bytes type). @ text @d5 1 a5 1 --- man/Makefile.orig 2017-10-03 08:35:24.000000000 +0000 d7 1 a7 2 @@@@ -18,7 +18,7 @@@@ include ../config/Makefile INSTALL_DIR=$(DESTDIR)$(MANDIR)/man$(PROGRAMS_MAN_SECTION) d9 1 d11 4 a14 5 - for i in *.m; do cp \ + for i in *.m; do $(BSD_INSTALL_MAN) \ $$i $(INSTALL_DIR)/`basename $$i .m`.$(PROGRAMS_MAN_SECTION); done echo '.so man$(PROGRAMS_MAN_SECTION)/ocamlc.$(PROGRAMS_MAN_SECTION)' \ > $(INSTALL_DIR)/ocamlc.opt.$(PROGRAMS_MAN_SECTION) @ 1.3 log @Add patch comments. @ text @d1 1 a1 1 $NetBSD: patch-man_Makefile,v 1.2 2014/10/09 19:08:28 jaapb Exp $ d5 1 a5 1 --- man/Makefile.orig 2014-04-12 10:17:02.000000000 +0000 d7 2 a8 2 @@@@ -15,7 +15,7 @@@@ include ../config/Makefile INSTALL_DIR=$(DESTDIR)$(MANDIR)/man$(MANEXT) d11 5 a15 5 - for i in *.m; do cp $$i $(INSTALL_DIR)/`basename $$i .m`.$(MANEXT); done + for i in *.m; do $(BSD_INSTALL_MAN) $$i $(INSTALL_DIR)/`basename $$i .m`.$(MANEXT); done echo '.so man$(MANEXT)/ocamlc.$(MANEXT)' \ > $(INSTALL_DIR)/ocamlc.opt.$(MANEXT) echo '.so man$(MANEXT)/ocamlopt.$(MANEXT)' \ @ 1.2 log @Update to ocaml 4.02.0. Main changes (apart from ocamldoc and bugfixes, see also upstream changelog): Language features: - Attributes and extension nodes - Generative functors - Module aliases * Alternative syntax for string literals {id|...|id} (can break comments) - Separation between read-only strings (type string) and read-write byte sequences (type bytes). Activated by command-line option -safe-string. Build system for the OCaml distribution: - Use -bin-annot when building. - Use GNU make instead of portable makefiles. - Updated build instructions for 32-bit Mac OS X on Intel hardware. Shedding weight: * Removed Camlp4 from the distribution, now available as third-party software. * Removed Labltk from the distribution, now available as a third-party library. Type system: * Keep typing of pattern cases independent in principal mode - Allow opening a first-class module or applying a generative functor in the body of a generative functor. Allow it also in the body of an applicative functor if no types are created * Module aliases are now typed in a specific way, which remembers their identity. In particular this changes the signature inferred by "module type of" - Slight change in the criterion to distinguish private abbreviations and private row types: create a private abbreviation for closed objects and fixed polymorphic variants. * Compare first class module types structurally rather than nominally. Value subtyping allows module subtyping as long as the internal representation is unchanged. Compilers: - More aggressive constant propagation, including float and int32/int64/nativeint arithmetic. Constant propagation for floats can be turned off with option -no-float-const-prop, for codes that change FP rounding modes at run-time. - New back-end optimization pass: common subexpression elimination (CSE). (Reuses results of previous computations instead of recomputing them.) - New back-end optimization pass: dead code elimination. (Removes arithmetic and load instructions whose results are unused.) - Optimization of sequences of string patterns - Experimental native code generator for AArch64 (ARM 64 bits) - Optimization of integer division and modulus by constant divisors - Add "-open" command line flag for opening a single module before typing * "-o" now sets module name to the output file name up to the first "." (it also applies when "-o" is not given, i.e. the module name is then the input file name up to the first ".") * better sharing of structured constants - new flag to keep locations in cmi files - issue warning 3 when referring to a value marked with the [@@@@ocaml.deprecated] attribute - a new format implementation based on GADTs * Constant exception constructors no longer allocate - avoid unnecessary boxing in let - Better compilation of optional arguments with default values - ocamlopt -opaque option for incremental native compilation Toplevel interactive system: - New "#show_*" directives Runtime system: - New configure option "-no-naked-pointers" to improve performance by avoiding page table tests during block darkening and the marking phase of the major GC. In this mode, all out-of-heap pointers must point at things that look like OCaml values: in particular they must have a valid header. The colour of said headers should be black. - Fixed bug in native code version of [caml_raise_with_string] that could potentially lead to heap corruption. - Blocks initialized by [CAMLlocal*] and [caml_alloc] are now filled with [Val_unit] rather than zero. - Fixed a major performance problem on large heaps (~1GB) by making heap increments proportional to heap size by default - Structural equality treats exception specifically - efficient comparison/indexing of exceptions - avoid using unsafe C library functions (strcpy, strcat, sprintf) - An ISO C99-compliant C compiler and standard library is now assumed. (Plus special exceptions for MSVC.) In particular, emulation code for 64-bit integer arithmetic was removed, the C compiler must support a 64-bit integer type. Standard library: * Add new modules Bytes and BytesLabels for mutable byte sequences. - add List.sort_uniq and Set.of_list - a faster version of "raise" which does not maintain the backtrace - support "Unix.kill pid Sys.sigkill" under Windows - speed improvement for Buffer - efficient creation of uninitialized float arrays - Improve documentation regarding finalisers and multithreading - Trigger warning 3 for all values marked as deprecated in the documentation. @ text @d1 1 a1 1 $NetBSD$ d4 1 @ 1.1 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 @d4 1 a4 1 --- man/Makefile.orig 2012-03-16 15:53:07.000000000 +0000 d6 2 a7 2 @@@@ -17,7 +17,7 @@@@ include ../config/Makefile DIR=$(MANDIR)/man$(MANEXT) d10 5 a14 5 - for i in *.m; do cp $$i $(DIR)/`basename $$i .m`.$(MANEXT); done + for i in *.m; do $(BSD_INSTALL_MAN) $$i $(DIR)/`basename $$i .m`.$(MANEXT); done echo '.so man$(MANEXT)/ocamlc.$(MANEXT)' > $(DIR)/ocamlc.opt.$(MANEXT) echo '.so man$(MANEXT)/ocamlopt.$(MANEXT)' > $(DIR)/ocamlopt.opt.$(MANEXT) echo '.so man$(MANEXT)/ocamlcp.$(MANEXT)' > $(DIR)/ocamloptp.$(MANEXT) @