./lang/ocaml, The latest implementation of the Caml dialect of ML

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 4.14.2, Package name: ocaml-4.14.2, Maintainer: jaapb

Objective Caml is the latest implementation of the Caml dialect of ML. The main
novelties compared with its ancestor, Caml Light, are:

* Full support for objects and classes -- here combined for the first time
with ML-style type reconstruction.
* A powerful module calculus in the style of Standard ML (but retaining
separate compilation).
* A high-performance native code compiler (in addition to a Caml
Light-style bytecode compiler).


Required to build:
[pkgtools/cwrappers]

Package options: pic

Master sites:

Filesize: 5375.135 KB

Version history: (Expand)


CVS history: (Expand)


   2024-11-30 02:34:47 by Greg Troxel | Files touched by this commit (1) | Package updated
Log message:
lang/ocaml: Caution against 5.x updates
   2024-11-30 02:10:52 by David A. Holland | Files touched by this commit (5) | Package updated
Log message:
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)
   2024-11-30 01:32:16 by Greg Troxel | Files touched by this commit (1)
Log message:
lang/ocaml/ocaml.mk: Also set MAKE_ENV for !DUNE_BUILD_PACKAGES

There is an if, and two build commands, which are mostly the same, but
with differences for [mysterious dune package stuff].  The
non-dune-package arm of the if didn't set the MAKE_ENV.  I'm calling
that a bug and adding it.

I've been running with this for a while, building various things, and
it seems ok.  Proposed on tech-pkg with no objections and one positive
comment.  If this breaks things for you, feel free to revert without
asking me, and then you get to be in charge of making ocaml work.
   2023-04-09 09:28:27 by Thomas Klausner | Files touched by this commit (4)
Log message:
ocaml: fix some pkglint
   2023-04-09 09:27:48 by Thomas Klausner | Files touched by this commit (4) | Package updated
Log message:
ocaml: update to 4.14.1.

OCaml 4.14.1 (20 December 2022)
------------------------------

### Bug fixes:

- #11803, #11808: on x86, the destination of an integer comparison must be
  a register, it cannot be a stack slot.
  (Vincent Laviron, review by Xavier Leroy, report by
   Emilio Jesús Gallego Arias)

OCaml 4.14.1
-----------------------------

### Compiler user-interface and warnings:

- #11184, #11670: Stop calling ranlib on created / installed libraries
  (Sébastien Hinderer and Xavier Leroy, review by the same)

### Build system:

- #11370, #11373: Don't pass CFLAGS to flexlink during configure.
  (David Allsopp, report by William Hu, review by Xavier Leroy and
   Sébastien Hinderer)

- #11487: Thwart FMA test optimization during configure
  (William Hu, review by David Allsopp and Sébastien Hinderer)

### Bug fixes:

- #10768, #11340: Fix typechecking regression when combining first class
  modules and GADTs.
  (Jacques Garrigue, report by François Thiré, review by Matthew Ryan)

- #11204: Fix regression introduced in 4.14.0 that would trigger Warning 17 when
  calling virtual methods introduced by constraining the self type from within
  the class definition.
  (Nicolás Ojeda Bär, review by Leo White)

- #11263, #11267: caml/{memory,misc}.h: check whether `_MSC_VER` is defined
  before using it to ensure that the headers can always be used in code which
  turns on -Wundef (or equivalent).
  (David Allsopp and Nicolás Ojeda Bär, review by Nicolás Ojeda Bär and
   Sébastien Hinderer)

- #11314, #11416: fix non-informative error message for module inclusion
  (Florian Angeletti, report by Thierry Martinez, review by Gabriel Scherer)

- #11358, #11379: Refactor the initialization of bytecode threading,
  This avoids a "dangling pointer" warning of GCC 12.1.
  (Xavier Leroy, report by Armaël Guéneau, review by Gabriel Scherer)

- #11387, module type with constraints no longer crash the compiler in presence
  of both shadowing warnings and the `-bin-annot` compiler flag.
  (Florian Angeletti, report by Christophe Raffalli, review by Gabriel Scherer)

- #11392, #11392: assertion failure with -rectypes and external definitions
  (Gabriel Scherer, review by Florian Angeletti, report by Dmitrii Kosarev)

- #11417: Fix regression allowing virtual methods in non-virtual classes.
  (Leo White, review by Florian Angeletti)

- #11468: Fix regression from #10186 (OCaml 4.13) detecting IPv6 on Windows for
  mingw-w64 i686 port.
  (David Allsopp, review by Xavier Leroy and Sébastien Hinderer)

- #11489, #11496: More prudent deallocation of alternate signal stack
  (Xavier Leroy, report by @rajdakin, review by Florian Angeletti)

- #11516, #11524: Fix the `deprecated_mutable` attribute.
  (Chris Casinghino, review by Nicolás Ojeda Bär and Florian Angeletti)

- #11194, #11609: Fix inconsistent type variable names in "unbound type \ 
var"
  messages
  (Ulysse Gérard and Florian Angeletti, review Florian Angeletti and
   Gabriel Scherer)

- #11622: Prevent stack overflow when printing a constructor or record
  mismatch error involving recursive types.
  (Florian Angeletti, review by Gabriel Scherer)

- #11732: Ensure that types from packed modules are always generalised
  (Stephen Dolan and Leo White, review by Jacques Garrigue)

- #11737: Fix segfault condition in Unix.stat under Windows in the presence of
  multiple threads.
  (Marc Lasson, Nicolás Ojeda Bär, review by Gabriel Scherer and David Allsopp)

- #11776: Extend environment with functor parameters in `strengthen_lazy`.
  (Chris Casinghino and Luke Maurer, review by Gabriel Scherer)

- #11533, #11534: follow synonyms again in #show_module_type
  (this had stopped working in 4.14.0)
  (Gabriel Scherer, review by Jacques Garrigue, report by Yaron Minsky)

- #11768, #11788: Fix crash at start-up of bytecode programs in
  no-naked-pointers mode caused by wrong initialization of caml_global_data
  (Xavier Leroy, report by Etienne Millon, review by Gabriel Scherer)
   2022-10-23 15:09:30 by Havard Eidnes | Files touched by this commit (1)
Log message:
lang/ocaml: let this build for NetBSD powerpc before 9.99.99 too.

...by enabling --enable-imprecise-c99-float-ops in those cases,
fma(3) was added to powerpc between 9.99.98 and 9.99.99.
   2022-10-08 13:11:16 by Nia Alarie | Files touched by this commit (1)
Log message:
ocaml: Needs imprecise-c99-float-ops to build on NetBSD/arm
   2022-06-24 14:30:09 by Greg Troxel | Files touched by this commit (1)
Log message:
lang/ocaml: Add workaround for NetBSD/i386 build

The build errored with:
  configure: error: fma does not work, enable emulation with \ 
--enable-imprecise-c99-float-ops
and thus that arg is passed to configure.

With the change, ocaml builds, and that unison builds and works.

(No change on any other platform.)