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.
This fixes the PLIST for architectures that do not use OCaml's native
compiler; other architectures should not be affected.
Thanks to Havard Eidnes and Martin Husemann for reporting the error.
Passing LDFLAGS verbatim no longer works, prefix each of them with -ccopt,
this seems to work across more ocaml binaries than -ldopt.
Tested across a number of packages that previously failed.
Patches for solaris and friends are reinstated (thanks jperkin@)
Also thanks to he@ for testing on powerpc and arm
Highlights for 4.10.0:
* A new best-fit allocator for the major heap which reducing both GC cost
and memory usage.
* Immutable strings are now enforced at configuration time
* User-defined indexing operators for multidimensional arrays
* Miscellaneous improvements to the manual
* A more precise exhaustiveness check for GADTs
* Many bug fixes
Highlights for 4.11.0:
* Statmemprof: a new statistical memory profiler
* A new instrumented runtime that logs runtime statistics in a standard
format
* A native backend for the RISC-V architecture
* Improved backtraces that refer to function names
* Suppport for recursive and yet unboxed types
* A quoted extension syntax for ppxs.
* Many quality of life improvements
* Many bug fixes.
4.11.1 is a bugfix release. Full details in the CHANGELOG included with
the distribution.
On NetBSD, the "thread scheduler" appears to just schedule two
threads out of 4 when all they in essence to is "yield", and not
do round-robin scheduling, causing the test to loop. Reduce the
number of threads in the test to 2.
Bump PKGREVISION.
OK'ed by jaapb@
On NetBSD 8.x, there will be issues with shared library
support, due to missing support for ADDR16_LO, ADDR16_HI
and ADDR16_HA relocations, available in newer code.
There are however other issues, text relocations, and
apparent missing REL24 relocation support(?!?).
The testyield.ml test appears to not terminate, only two
of the 4(?) threads ever get any CPU time, so has to be killed
to complete the selftests. Test result:
2438 tests passed
36 tests skipped
12 tests failed
108 tests not started (parent test skipped or failed)
8 unexpected errors
2602 tests considered
I'm sick and fed up of wasting my time fixing this package every time it is
updated, only for my work to be unceremoniously and silently reverted each
time (along with a bunch of other clearly incorrect changes).
Highlights of this release are:
* new optimisations, in particular for affine functions in matches;
* the graphics library was moved out of the main distribution;
* the vmthread library was removed;
* support for compiler plugins was removed;
* many bug fixes.
For more details see the Changes file in the distribution.
- Claimed shared library support. same as other ELF platforms, but
since it's not GNU ld, no -Wl,-E available.
- Change the PLIST vars based on what is actually built
- consider x86_64-*-solaris to be x86_64 and solaris. the arch=none
option doesn't build.
- Search for socket stuff in -lnsl -lsocket.
- for a POSIX prototype sigwait, we need to define _XOPEN_SOURCE to something
4.08.1 is a bugfix release, fixing compilation failures in presence of the
-pack option, and dynlinking failures.
Highlights in 4.08.0 are:
* Binding operators (let*, let+, and*, etc). They can be used to
streamline monadic code.
* open now applies to arbitrary module expression in structures and to
applicative paths in signatures.
* A new notion of (user-defined) "alerts" generalizes the deprecated
warning.
* New modules in the standard library: Fun, Bool, Int, Option, Result.
* A significant number of new functions in Float, including FMA support,
and a new Float.Array submodule.
* Source highlighting for errors and warnings in batch mode.
* Many error messages were improved.
* Improved AFL instrumentation for objects and lazy values.
A few patches to the configure script to recognise the combination of
NetBSD and aarch64, and a few changes to the Makefile to make sure we've
got the right combination of options for the PLIST. It now compiles on my
Pinebook.
MacOS before 10.13 lacks the POSIX-required clock_gettime(), and fails
to build some "instrumented runtime" files. Conditionalize the PLIST
and avoid expecting these on older MacOS.
Based almost entirely on a patch from Ryo Kogule on tech-pkg@, with
minor munging by me.
This breaks quite a few dependencies, more commits to follow.
There are many bugfixes and improvements (see the Changes file), I will
summarise the changes that may cause breakage:
* all standard library modules are now packed into the Stdlib module;
* Unix.isatty now works under the native Windows ports
* strings and bytes are distinguishable in bytecode
* Module aliases are no longer removed in 'module type of' and
'with module'
* soundness bugfix with non-generalised type variables and local modules
* Ident.t is now abstract and immutable
* only allow directives with filename and at the begining of the line