Commit Graph

35 Commits

Author SHA1 Message Date
Anders Kaseorg
6920d8ca42 treewide: Simplify negated uses of versionAtLeast, versionOlder
Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2022-04-25 13:35:24 -07:00
Felix Buehler
103f0186e1 ocaml: rename name to pname 2022-03-01 14:55:45 +01:00
Vladimír Čunát
4757815068
Merge #150128: ocaml: enable parallel building
...into staging
2022-02-28 08:11:16 +01:00
Sergei Trofimovich
238d634e4b ocaml: enable parallel building
Enable parallel building for ocaml-4.08 and above. tested as:

    $ nix build -f. ocaml-ng.ocamlPackages_{4_{00_1,01_0,02,03,04,05,06,07,08,09,10,11,12,13},latest}.ocaml --keep-going

ocaml build system supports parallel building, but but for multiple
top-level targets at the same time as it usually spawns subprocess
$(MAKE) that occasionally conflict with one another. To work it around
we use tiny Makefile with a single rule that calls top-level targets
sequentially as makefile calls:

    nixpkgs_world_bootstrap_world_opt:
       $(MAKE) world
       $(MAKE) bootstrap
       $(MAKE) world.opt

On a 16-core machine ocaml-4.12 build speeds up from 6m55s to 1m35s.

Releases 4_00_1, 4_01_0, 4_04 and 4_05 still have some race in them.
Thus this change enables parallel builds only for ocaml-4.06 and above.

Adapted from #142723

upstreams's CI tests the parallel makefile: https://github.com/ocaml/ocaml/issues/10235#issuecomment-782100584
The limit was chosen to be 4.08 because it was released in 2019, not too
long before the above link.
2022-02-27 12:00:00 +00:00
Maximilian Bosch
bcf8aeff3c
ocaml 4.10/4.11: fix build w/glibc-2.34
Failing Hydra build: https://hydra.nixos.org/build/155189331
Applied a smaller patch from Fedora's fork[1] as it also applies on
older versions.

That said, these versions seem unmaintained anyways, so we should
probably drop them entirely.

[1] https://pagure.io/fedora-ocaml/c/dfb5e954a04f59b0456cc4c0ddf3acaf22e0ff07?branch=fedora-35-4.12.0
2022-02-27 10:25:39 +01:00
Maximilian Bosch
917b7e5fd2
ocaml: fix build w/glibc-2.34
ChangeLog: https://hydra.nixos.org/build/154122673
2022-02-27 10:25:39 +01:00
Robert Scott
dc523cbb80 ocaml: heed hardeningDisable flags set for individual versions
specifically this re-fixes ocaml 4.09 on clang by allowing its
hardeningDisable flags to take effect
2021-11-25 21:13:12 +00:00
Vikram Narayanan
528716bb8e ocaml: Fix aarch64-darwin build 2021-11-22 12:19:55 -08:00
Vincent Laporte
87843991ef ocaml: fix assembler on darwin 2021-11-11 11:30:19 +01:00
Guillaume Girol
6506d2ae4d pkgsStatic.ocaml: migrate some logic from static adapter to ocaml 2021-08-19 09:30:48 +02:00
Guillaume Girol
a2c566265e ocaml: add strictDeps = true 2021-08-19 09:30:46 +02:00
Guillaume Girol
061f70f8f7 ocaml: fix static compilation on recent versions 2021-08-19 09:29:55 +02:00
superherointj
805d252c3b ocaml: update meta.description 2021-06-03 11:16:27 -03:00
Ivan Babrou
2e1a7b94f3 ocamlPackages.ocaml: fix assembler detection for aarch64-darwin 2021-02-27 10:43:14 +01:00
Ben Siraphob
acc5f7b18a pkgs/development/compilers: stdenv.lib -> lib 2021-01-23 08:57:37 +07:00
Vincent Laporte
e40f4acb27 ocaml: minor refactoring 2020-11-25 07:55:44 +01:00
Symphorien Gibol
bddabe58fe ocaml: add spacetime support 2020-08-13 11:07:15 +02:00
Michael Reilly
84cf00f980
treewide: Per RFC45, remove all unquoted URLs 2020-04-10 17:54:53 +01:00
Vincent Laporte
80a7615300 OCaml: do not depend on X11 for OCaml ≥ 4.09 2020-03-23 09:12:50 +01:00
Merijn Broeren
133103d709
treewide: replace make/build/configure/patchFlags with nix lists 2019-12-30 12:58:11 +01:00
Vincent Laporte
120102de65 OCaml: optionally enable AFL support 2019-11-30 08:34:36 +00:00
Vincent Laporte
9b76c5e17a OCaml: fix configure flags for flambda support
The configure program for OCaml has been using a new set of command-line
arguments from version 4.08. This is a small refactoring to ease dealing with
the two sets.
2019-11-30 08:34:36 +00:00
volth
08f68313a4 treewide: remove redundant rec 2019-08-28 11:07:32 +00:00
Vincent Laporte
1753b20648 ocaml: init at 4.08.0+beta1 2019-02-19 09:44:04 +01:00
Lengyel Balazs
f4a53ff3bc treewide/xorg: replace *proto with xorgproto 2019-01-04 14:38:57 +01:00
Vincent Laporte
585b741cb7 ocaml: fix build when X11 is not available 2018-12-17 17:46:46 +00:00
Vincent Laporte
ce03af969e ocaml ≤ 4.05: mark as broken on Aarch64 (#47010) 2018-09-20 21:18:28 +02:00
Vincent Laporte
4f3868b72d
ocaml ≤ 4.05: mark as broken on Aarch64 2018-09-15 13:17:12 +00:00
John Ericson
ba52ae5048 treewide: isArm -> isAarch32
Following legacy packing conventions, `isArm` was defined just for
32-bit ARM instruction set. This is confusing to non packagers though,
because Aarch64 is an ARM instruction set.

The official ARM overview for ARMv8[1] is surprisingly not confusing,
given the overall state of affairs for ARM naming conventions, and
offers us a solution. It divides the nomenclature into three levels:

```
ISA:             ARMv8   {-A, -R, -M}
                 /    \
Mode:     Aarch32     Aarch64
             |         /   \
Encoding:   A64      A32   T32
```

At the top is the overall v8 instruction set archicture. Second are the
two modes, defined by bitwidth but differing in other semantics too, and
buttom are the encodings, (hopefully?) isomorphic if they encode the
same mode.

The 32 bit encodings are mostly backwards compatible with previous
non-Thumb and Thumb encodings, and if so we can pun the mode names to
instead mean "sets of compatable or isomorphic encodings", and then
voilà we have nice names for 32-bit and 64-bit arm instruction sets
which do not use the word ARM so as to not confused either laymen or
experienced ARM packages.

[1]: https://developer.arm.com/products/architecture/a-profile
2018-04-25 15:28:55 -04:00
Vincent Laporte
5c4ee2a3ab ocaml: init at 4.07.0+beta2 2018-04-25 18:19:57 +02:00
Vincent Laporte
efcb39233d ocaml: adds an argument to enable flambda 2017-12-29 10:49:13 +01:00
Vincent Laporte
82ab1f8408 ocaml: fix the meta.branch attribute 2017-01-24 21:13:00 +00:00
Vincent Laporte
ae047510bf ocaml: init at 4.04 2017-01-24 21:13:00 +00:00
Kirill Boltaev
e61663a233 treewide: move to ocaml-ng system 2016-09-26 02:36:49 +03:00
Théophane Hufschmitt
08b85f5f99 ocaml : add 4.03 compiler 2016-08-19 19:07:30 +02:00