Commit Graph

20862 Commits (855c13cd6e42abdc778767adf358cb8a4e4ac0a3)

Author SHA1 Message Date
John Whitington 28f624b919 check-typo fixes 2020-07-27 15:53:57 +01:00
Xavier Leroy ba2b98608a
Merge pull request #9742 from jhjourdan/fix_7810
Make Ephemeron compatible with infix pointers.
2020-07-27 16:51:14 +02:00
John Whitington 902ca08055 Fix tools/unlabel to deal with Hashtbl injectivity 2020-07-27 15:44:35 +01:00
John Whitington e5e7b9591a Restore docstring variable brackets 2020-07-27 14:42:30 +01:00
John Whitington 22a158b7b2 Fix injectivity type 2020-07-27 14:32:48 +01:00
John Whitington 44403b16e8 Merge branch 'trunk' of https://github.com/johnwhitington/ocaml into trunk 2020-07-27 14:15:11 +01:00
John Whitington bec7f8ff3d Restore Hashtbl.rebuild in .mli, fix docstring 2020-07-27 14:12:54 +01:00
John Whitington d0263ac0e4
Merge branch 'trunk' into trunk 2020-07-27 13:53:52 +01:00
John Whitington 33fdfffd5f Resolving conflicts with injectivity work 2020-07-27 13:49:42 +01:00
John Whitington 7f922569c0 Replacing {!X.y} in doc comments with {!y} 2020-07-27 13:39:12 +01:00
David Allsopp b91415d47e Allow tools/unlabel to run from anywhere 2020-07-27 12:41:34 +01:00
David Allsopp 2b618ea026 Check that tools/unlabel is a no-op in CI 2020-07-27 12:41:21 +01:00
Florian Angeletti ea16b1c837
Merge pull request #9750 from Octachron/release_checklist_update
Reorganize release information
2020-07-27 09:37:50 +02:00
EduardoRFS cf6ecb7816 arm64: remove misleading comment 2020-07-26 21:21:37 +00:00
EduardoRFS f817b25c76 ios: memory leak when Sys.command failed
* as we raised an exception, caml_stat_free never happens

Co-authored-by: Nicolás Ojeda Bär <n.oje.bar@gmail.com>q
2020-07-26 21:19:20 +00:00
Hongbo Zhang 820db1bd7a
[internal refactor] minor tweaking (#9792) 2020-07-26 19:25:09 +02:00
Florian Angeletti c99cbd1101 Reorganize release info 2020-07-26 17:45:35 +02:00
Xavier Leroy d374d7d230 tests/unwind: produce trace in case of failure 2020-07-26 11:52:46 +02:00
David Allsopp 6a4f9aef5f Report a diff for files differing by endings only 2020-07-25 10:36:24 +01:00
David Allsopp a651a82488 Fix handling of EOL-at-EOF in ocamltest 2020-07-25 10:04:31 +01:00
iOS Porting Team 83a06c3d15 On the iPhone simulator the machine context field has two underscores 2020-07-25 08:39:09 +00:00
EduardoRFS 69d4ab80d0 arm64: use Arch.macosx instead of is_macosx
Also remove the duplicated declaration from proc.ml and emit.mlp

Co-authored-by: Xavier Leroy <xavier.leroy@college-de-france.fr>
2020-07-25 08:38:11 +00:00
EduardoRFS 9a98d40b86 arm64: add reference to Apple ARM64 ABI 2020-07-25 08:37:39 +00:00
EduardoRFS 99664ee0a4 ios: dead lock on Sys.command
Co-authored-by: Anil Madhavapeddy <anil@recoil.org>
2020-07-25 08:37:39 +00:00
EduardoRFS 8c38ac6bf6 arm64: support ios shared library
* the stub on iOS also saves x8 and x9
* use x8 for ADDITIONAL_ARG
* use only 8 regs for calling args
2020-07-25 08:37:39 +00:00
EduardoRFS bdbd867c62 arm64 runtime: use additional arg only externally 2020-07-25 08:37:39 +00:00
EduardoRFS 5e7f7c77b0 ios: add support on configure script 2020-07-25 08:37:38 +00:00
EduardoRFS 8cd474f008 ios: Sys.command is not supported 2020-07-25 08:37:06 +00:00
iOS Porting Team d189dcef62 arm64 emitter: support apple variant of assembler 2020-07-25 08:36:23 +00:00
EduardoRFS f323d2ad67 arm64 runtime: apply ios assembler requirements 2020-07-25 08:36:23 +00:00
EduardoRFS 42943915a7 arm64 runtime: macro for global and local symbols 2020-07-25 08:36:22 +00:00
EduardoRFS cbcd76b4c8 arm64 runtime: remove .type, .size on local labels 2020-07-25 08:36:22 +00:00
EduardoRFS f6c799d08f arm64 runtime: macro pair for objects 2020-07-25 08:36:22 +00:00
EduardoRFS 32ab52c59a arm64 runtime: macro pair for functions 2020-07-25 08:36:22 +00:00
EduardoRFS bc1a664065 fix build when using clang
This is flagged (rightly so) by clang -Wimplicit-int-float-conversion.
2020-07-25 08:36:22 +00:00
EduardoRFS 4375fa82db arm64 runtime: use x17 instead of x18(reserved) 2020-07-25 08:36:22 +00:00
Xavier Leroy e41dc9c443
Merge pull request #9752 from xavierleroy/c-calling-conventions
Revised handing of calling conventions for external C functions
2020-07-25 09:50:42 +02:00
Xavier Leroy cc25fc9342 Changes entry for #9752 2020-07-24 17:39:27 +02:00
Xavier Leroy ed8f3b427c ARM64 back-end: support the iOS/macOS ABI for calling external C functions
Unboxed arguments of type `int32` that are passed on the stack
are passed in 32-bit words instead of 64-bit words as in the AAPCS64 ABI.

To support this, we introduce a new specific operation, `Imove32`,
that compiles down to 32-bit moves or 32-bit stack loads or 32-bit
stack stores.

In the Selection pass, method `insert_move_extcall_arg`,
we generate `Imove32` instructions when required, i.e. if the
argument is an unboxed `int32` and needs to be passed on stack.

We then update `Proc.loc_external_arguments` to use 32-bit stack words
for `int32` arguments.
2020-07-24 17:39:27 +02:00
Xavier Leroy 9fcb295b98 Revised passing of arguments to external C functions
Introduce the type Cmm.exttype to precisely describe arguments to
external C functions, especially unboxed numerical arguments.

Annotate Cmm.Cextcall with the types of the arguments (Cmm.exttype list).
An empty list means "all arguments have default type XInt".

Annotate Mach.Iextcall with the type of the result (Cmm.machtype)
and the types of the arguments (Cmm.exttype list).

Change (slightly) the API for describing calling conventions in Proc:
- loc_external_arguments now takes a Cmm.exttype list,
  in order to know more precisely the types of the arguments.
- loc_arguments, loc_parameters, loc_results, loc_external_results
  now take a Cmm.machype instead of an array of pseudoregisters.
  (Only the types of the pseudoregisters mattered anyway.)

Update the implementations of module Proc accordingly, in every port.

Introduce a new overridable method in Selectgen, insert_move_extcall_arg,
to produce the code that moves an argument of an external C function
to the locations returned by Proc.loc_external_arguments.

Revise the selection of external calls accordingly
(method emit_extcall_args in Selectgen).
2020-07-24 17:39:22 +02:00
Daniel Bünzli 80326033cb
ocamldep: do not process files during cli parsing. (#9795)
It leads to broken cli behaviour. Closes #9299.
2020-07-23 21:00:26 +02:00
John Whitington 1f2daa31d3 Added injectivity annots back (clash with GPR9781) 2020-07-23 19:08:46 +01:00
John Whitington f32c4df6df {!Unix.xxx} changed to {!xxx} in docstrings 2020-07-23 18:55:57 +01:00
David Allsopp b9a4de7b2d Eliminate typo 2020-07-23 15:06:52 +01:00
David Allsopp 8b80c57fb2 Remove use of ln -sf from ocamltest
Implemented ln -sfT exactly on Unix and almost exactly on Windows.
2020-07-23 15:05:00 +01:00
David Allsopp fc0abfaad8 Remove use of rm -rf from ocamltest 2020-07-23 15:04:49 +01:00
David Allsopp 9bc33d945a Add Ocamltest_stdlib.Unix.has_symlink
Replaces the duplicated C stub. Functions from Unix must be explictly
imported.
2020-07-23 14:55:36 +01:00
Nicolás Ojeda Bär f90f2b37d9
Merge pull request #9790 from dbuenzli/fix-dynlink-init
Fix dynlink init
2020-07-23 13:38:26 +02:00
Daniel Bünzli 33dcae9509 Promote failing Dynlink tests: stacktrace line numbers changed. 2020-07-23 11:38:39 +02:00
Daniel Bünzli 1578a359e0 Dynlink.*_unit functions: make sure they call the internal init ().
Otherwise they report inaccurate information before any load
occurs. Closes #9338.
2020-07-23 11:38:39 +02:00