Commit Graph

19993 Commits (c14ba72deee655da33b40809393561a310d50d55)

Author SHA1 Message Date
Gabriel Scherer c14ba72dee HACKING.adoc: restructure the opam information and fix the cross-reference 2020-05-03 16:05:31 +02:00
Gabriel Scherer 9eb9d04751 fix the dune build 2020-05-03 10:11:47 +02:00
Gabriel Scherer 239de4d870 INSTALL.adoc: replace Makefile.common.in with Makefile.build_config.in 2020-05-03 09:55:02 +02:00
David Allsopp 6c8d79d1bd
Merge pull request #9526 from jberdine/docs
Fix ephemeron documentation typos
2020-05-03 08:06:52 +01:00
Josh Berdine a282c170f9
Update stdlib/ephemeron.mli
Co-authored-by: David Allsopp <david.allsopp@metastack.com>
2020-05-03 00:25:54 +01:00
Josh Berdine 5e2b28decc Fix ephemeron documentation typos
Signed-off-by: Josh Berdine <josh@berdine.net>
2020-05-02 22:46:48 +01:00
KC Sivaramakrishnan 9355b4e8f5
Initialise in caml_obj_block / Obj.new_block only when necessary (#9513)
caml_alloc returns initialised blocks for tag < No_scan_tag. Otherwise,
initialise the blocks as necessary.

For Abtract_tag, Double_tag and Double_array_tag, the initial contents
are irrelevant.

Uninitialised Custom_tag objects are difficult to use correctly. Hence,
reject custom block allocations through Obj.new_block.

For String_tag, the last byte encodes the string length. Hence, reject
zero-length string objects. Initialise the last byte which encodes the
length to ensure non-negative lengths for uninitialised strings.
2020-05-02 18:47:16 +02:00
Gabriel Scherer 78e12a9255
Merge pull request #8753 from gasche/ci-test-depend
add a new Travis CI check that 'make alldepend' is a no-op
2020-05-02 11:16:55 +02:00
Gabriel Scherer 876af2567e
Merge pull request #9493 from trefis/rematch-matcher-unification
pattern-matching refactoring: merge the two matchers
2020-05-02 08:46:50 +02:00
Gabriel Scherer cdccc0b1cb add a new Travis CI check that 'make alldepend' is a no-op 2020-05-01 22:23:28 +01:00
Gabriel Scherer a5b6fd198a Makefiles: require only the bootstrap compiler for BEST_OCAMLDEP 2020-05-01 22:23:28 +01:00
Gabriel Scherer acbe348228
Merge pull request #9518 from dra27/fix-win-deps
Specify C compiler flags correctly in win32unix Makefile
2020-05-01 22:35:09 +02:00
Florian Angeletti 3903f9fab5 parmatch: normalize_pat is not used anymore 2020-05-01 21:58:28 +02:00
Gabriel Scherer 3527653363 matching: add a comment suggested by Florian Angeletti's review 2020-05-01 21:58:28 +02:00
Gabriel Scherer 50fdc06fcd [minor] matching.ml: tune ~scopes handling 2020-05-01 21:56:27 +02:00
Gabriel Scherer ac1243cbd1 matching: use heads in the make_*_matching specialization calls 2020-05-01 21:56:27 +02:00
Gabriel Scherer ae4621c03c Changes 2020-05-01 21:56:15 +02:00
Gabriel Scherer a26e509c57 matching: finally, merge matcher and Context.ctx_matcher 2020-05-01 21:56:15 +02:00
Gabriel Scherer 387955e189 matching: refine the types in Context.ctx_matcher 2020-05-01 21:56:15 +02:00
Gabriel Scherer 0f5a1c4d1e matching: consolidate all matcher_ functions in a single matcher_head
This commit is delicate and needs a careful review.

The `matcher_of_pattern` function is a temporary measure to reduce the
invasiveness of the patch, and make it easier to review.

(Note for reviewers: in the previous version the Record case had
a funny handling of Any, but it is in fact equivalent to just adding
omegas as we now do in all cases.)

There are two obvious directions for improvement:

- Get rid of matcher_of_pattern and pass a head directly to the
  various make_matching_* functions.

- Try to factorize this code with ctx_matcher which, it is now
  obvious, does essentially the same thing.

Another, less immediate area of attack would be to consider
a presentation of Pattern_head.t where the Any case can be statically
ruled out -- maybe the description could have two levels, one
isomorphic to option (Any or not?) and one for non-any heads.
2020-05-01 21:56:15 +02:00
Gabriel Scherer 97caf289b5 matching: specialize_matrix uses non-empty rows 2020-05-01 21:56:15 +02:00
Gabriel Scherer 67c56e6ec8 matching: matcher_* take Simple.pattern arguments 2020-05-01 21:56:15 +02:00
David Allsopp c8dcbac5c9 Update Changes entry 2020-05-01 11:19:26 +01:00
David Allsopp 7cfd81073e Remove unnecessary -MG from systhreads
It's use in runtime/Makefile is also clarified.
2020-05-01 10:33:48 +01:00
David Allsopp e3c4ba9cb9 Fix win32unix Makefile
EXTRACFLAGS should in fact be EXTRACPPFLAGS, which is now introduced and
used.
2020-05-01 10:13:14 +01:00
David Allsopp 5efcc1b474 AppVeyor: test dependency generation on msvc64 2020-05-01 09:53:01 +01:00
David Allsopp e5c8bee85e
Merge pull request #9332 from dra27/ocaml-dyndepend
Cease storing C dependencies in the repository
2020-05-01 07:36:02 +01:00
Nicolás Ojeda Bär e20736dda0
unboxed-primitive-args: test does not require unix (#9517) 2020-04-30 18:26:24 +02:00
Nicolás Ojeda Bär f52f00d76c
Merge pull request #9516 from xavierleroy/riscv-abi
RISC-V: Update C calling conventions to use the ELF psABI
2020-04-30 17:49:16 +02:00
David Allsopp 42b8c20cce Fix instrumented-runtime test on OpenBSD 2020-04-30 15:52:50 +01:00
Xavier Leroy ea6896f9f1 Update C calling conventions to the RISC-V ELF psABI
The original implementation of loc_external_arguments and
loc_external_results was following an older ABI,
where an FP argument passed in an FP register "burns" an integer register.

In the ELF psABI, integer registers and FP registers are used independently,
as in the OCaml calling convention.  Plus, if all FP registers are used
but an integer register remains, the integer register is used to pass
the next FP argument.

Fixes: #9515
2020-04-30 16:20:46 +02:00
Xavier Leroy 16794b9405 Support FP reg -> int reg moves
Using instruction fmv.x.d.

This is necessary to implement the ELF psABI calling conventions,
whereas some FP arguments may have to be passed in integer registers.
2020-04-30 16:20:46 +02:00
David Allsopp c4684d9364 Add ocamlbuild to separated components 2020-04-30 13:38:52 +01:00
David Allsopp f5de44454f Configure GitHub issue tracker 2020-04-30 13:32:59 +01:00
David Allsopp 169aadbaa7 Add details of removed items to README.adoc 2020-04-30 13:32:49 +01:00
David Allsopp 1056187348
Merge pull request #9082 from Engil/eventlog_ctf
Eventlog tracing system
2020-04-30 12:24:38 +01:00
Enguerrand Decorne b7f0494df5 Rewrite the instrumented runtime to store traces in the CTF format.
The instrumentation code in the instrumented runtime was replaced
with new APIs to gather runtime statistics and output them in a new format
(Common Trace Format).
This commit also exposes new functions in the Gc module to pause or resume
instrumentation during a program execution (Gc.eventlog_pause and
Gc.eventlog_resume).
2020-04-30 10:32:01 +02:00
David Allsopp a9f7d74bcf Add snprintf_os 2020-04-30 10:31:30 +02:00
Jeremy Yallop 2e30946419
Support marshalling of bigarrays with dimensions that don't fit in 4 bytes (#8791)
Use a variable-length encoding (suggested by @stedolan) for dimensions that supports dimensions up to 2^64-1 each.

Change the marshalling identifier for bigarrays:_bigarray ~> _bigarr02
The identifier change reflects a change in the bigarray marshalling format.
2020-04-29 18:51:01 +02:00
Stephen Dolan 6923fd1590
fix module_coercion test on no-flat-floatarray mode (#9508) 2020-04-28 17:32:49 +01:00
Hannes Mehnert ec24f98bec
remove caml_init_ieee_floats() (#9506)
This used to call fpsetmask(0) on FreeBSD systems (< 4). FreeBSD 4 is not
anymore supported since 2007, it is safe to remove this code now.
2020-04-28 16:19:23 +02:00
Leo White f6e5592965
Merge pull request #9246 from lpw25/avoid-rechecking-functor-applications
Avoid rechecking functor applications
2020-04-28 12:04:47 +01:00
Stephen Dolan 81119c53d1
Merge pull request #9445 from jhjourdan/fix-statmemprof-flat-float-array
Alternative fix for statmemprof tests in `-disable-flat-float-array` mode
2020-04-28 09:54:52 +01:00
David Allsopp 9421eeae2c
Merge pull request #9507 from edwintorok/docs
Fix docs: runtime warnings are not enabled by default
2020-04-28 09:26:45 +01:00
Edwin Török f66e395c70 Fix docs: runtime warnings are not enabled by default
The docs on this are out of date: they say runtime warnings are enabled by
default, but the source code has a commit 6c90da4 pointing to
https://github.com/ocaml/ocaml/pull/210 that disables them by default.

It seems like enabling runtime warnings by default never made its way into a
release and the docs could just be updated to say that runtime warnings are
disabled by default.

Signed-off-by: Edwin Török <edvin.torok@citrix.com>
2020-04-27 21:38:58 +01:00
Jacques-Henri Jourdan 90871480d9 Fix statmemprof/callstacks.ml when --disable-flat-float-array is used.
We do this by using a specific reference file in the case this option is used.
2020-04-27 19:14:55 +02:00
Jacques-Henri Jourdan 687076d662 Remove redundancy in testsuite/tests/statmemprof/comballoc.ml 2020-04-27 18:45:16 +02:00
Stephen Dolan 8f85e002b2
Merge pull request #9096 from stedolan/backtrace-names
Print function names in backtraces
2020-04-27 14:51:15 +01:00
Stephen Dolan fa037cb0d6 Changes 2020-04-27 12:58:53 +01:00
Stephen Dolan fc2aee9429 Bootstrap 2020-04-27 12:58:53 +01:00