| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
|
| |
The typedef was guarded by CAML_INTERNALS, but given its accidental use
in the public Is_young macro, mark the typedef as deprecated in case
CAML_INTERNALS is being defined "in the wild" to workaround this.
|
|
|
|
|
|
|
|
| |
This transformation is incorrect for certain large values of x,
as it can get the wrong value in the high bit. In certain cases
where the high bit is not used (esp. storing a byte into a string),
the transformation is kept intact.
Fixes #9028.
|
|\
| |
| | |
Int32 code generation improvements on 64 bit platforms: fewer sign extensions + faster AMD64 instruction sequence for zero extensions.
|
| | |
|
| | |
|
| | |
|
| | |
|
|\ \
| | |
| | | |
Add printf '%#F' to output floats in hexadecimal OCaml constants
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The previous mechanism worked for C calls that raise an exception, but not for C calls that call back into OCaml code which raises an exception.
This commit addresses the issue by saving the PC in the interpreter stack before a C call, so that the backtrace mechanism always sees it.
However, if an external is declared in the .ml file and exposed in the .mli file as a val, then ocamlc generates a wrapper that adds a spurious entry in the stack frame. In this PR, this change in behavior results in the re-declaration of Printexc.get_callstack as an external instead of a val, so that the spurious stack frame does not appear in call stacks obtained from Printexc.get_callstack.
|
|\ \ \
| | | |
| | | | |
Build system: use ocaml{c,opt}.opt instead of ocaml{c,opt} when available
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | |
| | | |
| | | |
| | | | |
On my machine, the sequential build time goes from 30s to 10s.
|
| | | |
| | | |
| | | |
| | | | |
On my machine the sequential build time goes from 3.7s to 1.3s
|
| | | |
| | | |
| | | |
| | | | |
On my machine the sequential build time goes from 7.5s to 3.5s.
|
| | | |
| | | |
| | | |
| | | |
| | | | |
On my machine, a sequential build of (make all allopt) goes from 31s
to 11s, and a parallel build (-j5) goes from 16s to 6s.
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
(make -C ocamltest) will run the first rule of the ocamltest Makefile,
which happens to be the 'all' rule. This is not robust to the addition
of new rules in some of the included Makefile, and indeed a previous
version of the previous commit broke it inadvertently.
|
| | | |
| | | |
| | | |
| | | | |
addr type is internal, but Is_young is not.
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | | |
Fixes to #8691
|
| | | | | |
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | | |
we can use [young_limit] to check for signals both in bytecode and native modes.
|
| | | | |
| | | | |
| | | | |
| | | | | |
to [caml_alloc_small_dispatch].
|
|/ / / / |
|
|\ \ \ \
| |/ / /
|/| | | |
Fix stack overflow detection with systhreads.
|
| | | |
| | | |
| | | |
| | | |
| | | | |
caml_alloc is now used allocate backtraces, which is safe now that
caml_alloc can't call async callbacks.
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | | |
type_pat: restrict the use of Need_backtrack
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| |_|_|/
|/| | | |
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | | |
Fix #8789
|
| | | | | |
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Allow development configure options to be stored in Git 🏅
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
The Git configuration value ocaml.configure-cache can be used to specify
a directory to keep autoconf cache files in, relative to the worktree
root (so `git config ocaml.configure-cache .` enables the feature, and
`git config --global ocaml.configure-cache ..` enables it for all
worktrees, assuming they're at the same level).
autoconf's --cache-file option speeds up future runs of configure by
caching the results of previous tests. The cache is invalidated if any
environment variables differ (e.g. LDFLAGS) or if the build-host-target
triplet differs. This is a nuisance on Windows, where configure is both
very slow and it's also common to build with multiple different --host
values.
This PR allows a tree to be quickly reconfigured from one Windows port
to another.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
The Git configuration value ocaml.configure is now passed to the
configure script's arguments before $@ if (and only if) OCaml is being
configured from a Git clone.
This allows, for example:
- Developer-specific preferences (e.g. `--disable-ocamldoc` or
`--disable-debug-runtime`)
- Automatic use of autoconf cach files (-C option)
It is implemented by inserting a test at the top of `configure`, which
is bypassed if `.git` doesn't exist.
|
|\ \ \ \ \ \
| |/ / / / /
|/| | | | | |
New configure option to disable building and installing library manpages
|
| | | | | | |
|
| | | | | | |
|
| | | | | | |
|
| | | | | |
| | | | | |
| | | | | | |
remove disambiguation for constructor map
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
(#1963)
|