Skip to content
Success

Changes

Summary

  1. Unbox result of Unix.gettimeofday in unix and win32unix (#9561) (commit: a8e2f2b) (details)
  2. Remove Const_pointer from Lambda and Clambda (#9585) (commit: 0d44a6c) (details)
  3. Remove Const_pointer from Lambda and Clambda (#9585), bootstrap (commit: 0ca651b) (details)
Commit a8e2f2b1709b5786069ac285e0c89d0dd7112409 by noreply
Unbox result of Unix.gettimeofday in unix and win32unix (#9561)

This patch makes Unix.time and Unix.gettimeofday be unboxed and @noalloc, which makes them about 20% faster (as measured by a stupid benchmark that does them many times in a loop).

This removes the fallback and error-handling paths from gettimeofday.  Neither is needed according to Single Unix Specification and POSIX.

Fixes: #7446
(commit: a8e2f2b)
The file was modifiedotherlibs/unix/unix.ml (diff)
The file was modifiedotherlibs/unix/time.c (diff)
The file was modifiedChanges (diff)
The file was modifiedotherlibs/unix/gettimeofday.c (diff)
The file was modifiedotherlibs/win32unix/gettimeofday.c (diff)
The file was modifiedotherlibs/win32unix/unix.ml (diff)
Commit 0d44a6cfe6ac328165dced897f23e431f2e503b0 by xavier.leroy
Remove Const_pointer from Lambda and Clambda (#9585)

Lambda and Clambda distinguish Const_int from Const_pointer only so
that they can pass the information to Cmm. But now that that
Const_pointer is gone from Cmm (#9578), there's no need for the
distinction in Lambda either.

This PR requires a bootstrap, because the .cmo format changes:
Lambda.structured_constant has one fewer constructor.  The bootstrap
is in the following commit.
(commit: 0d44a6c)
The file was modifiedmiddle_end/flambda/flambda.mli (diff)
The file was modifiedmiddle_end/flambda/import_approx.ml (diff)
The file was modifiedlambda/translcore.ml (diff)
The file was modifiedmiddle_end/flambda/inline_and_simplify.ml (diff)
The file was modifiedmiddle_end/flambda/simplify_primitives.ml (diff)
The file was modifiedmiddle_end/flambda/export_info.mli (diff)
The file was modifiedlambda/translprim.ml (diff)
The file was modifiedbytecomp/emitcode.ml (diff)
The file was modifiedmiddle_end/clambda.ml (diff)
The file was modifiedmiddle_end/flambda/build_export_info.ml (diff)
The file was modifiedmiddle_end/flambda/export_info.ml (diff)
The file was modifiedmiddle_end/flambda/simple_value_approx.mli (diff)
The file was modifiedtestsuite/tests/basic-modules/anonymous.ocamlopt.flambda.reference (diff)
The file was modifiedlambda/lambda.ml (diff)
The file was modifiedtestsuite/tests/basic-modules/anonymous.ocamlopt.reference (diff)
The file was modifiedasmcomp/cmmgen.ml (diff)
The file was modifiedtestsuite/tests/translprim/ref_spec.compilers.reference (diff)
The file was modifiedlambda/printlambda.ml (diff)
The file was modifiedmiddle_end/flambda/export_info_for_pack.ml (diff)
The file was modifiedtools/dumpobj.ml (diff)
The file was modifiedmiddle_end/flambda/remove_unused_arguments.ml (diff)
The file was modifiedtestsuite/tests/basic/patmatch_split_no_or.ml (diff)
The file was modifiedbytecomp/symtable.ml (diff)
The file was modifiedlambda/translclass.ml (diff)
The file was modifiedmiddle_end/clambda.mli (diff)
The file was modifiedlambda/lambda.mli (diff)
The file was modifiedtestsuite/tests/translprim/comparison_table.compilers.reference (diff)
The file was modifiedmiddle_end/flambda/simplify_common.mli (diff)
The file was modifiedmiddle_end/closure/closure.ml (diff)
The file was modifiedmiddle_end/flambda/flambda_to_clambda.ml (diff)
The file was modifiedmiddle_end/printclambda.ml (diff)
The file was modifiedtestsuite/tests/basic-modules/anonymous.ocamlc.reference (diff)
The file was modifiedmiddle_end/flambda/flambda.ml (diff)
The file was modifiedmiddle_end/flambda/simple_value_approx.ml (diff)
The file was modifiedmiddle_end/flambda/closure_conversion.ml (diff)
The file was modifiedlambda/translmod.ml (diff)
The file was modifiedmiddle_end/flambda/simplify_common.ml (diff)
Commit 0ca651b95cbda5d58f7760f0fa1dba965d1f0828 by xavier.leroy
Remove Const_pointer from Lambda and Clambda (#9585), bootstrap

This is the bootstrap required by commit 0d44a6cfe.
(commit: 0ca651b)
The file was modifiedboot/ocamllex (diff)
The file was modifiedboot/ocamlc (diff)