| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
Change the order in which Fun.protect is called in gc.ml
Building using make compiles gc.ml without -no-labels, but other modules
in the library without it. Dune forces to compile all modules in the
library with -no-labels, hence forcing the order of parameters to match
the order of declaration
|
|
|
|
| |
Co-authored-by: Guillaume Munch-Maccagnoni <gadmm@github>
|
|
|
|
| |
Fixes #12002
|
| |
|
|
|
|
| |
This is required to allow deleting an alarm from any domains.
|
| |
|
| |
|
| |
|
|
|
|
| |
start/stop for now
|
| |
|
|\
| |
| |
| | |
parallel_minor_gc_4_12
|
| | |
|
|\ \
| |/
| |
| | |
parallel_minor_gc_4_12
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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).
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The Gc.Memprof module provides a low-level API, that will hopefully be
paired with user libraries that provide high-level instrumentation
choices.
A natural question is: how are the higher-level API going to expose
their choice of instrumentation to their users? With the current
Memprof.start API (before this patch), they would have to either
provide their own `start` function wrapping Memprof.start, or provide
a tuple of callbacks for to their users to pass to Memprof.start
themselves.
val start : params -> unit
(* or *)
val callback : params ->
((allocation -> foo option) * (allocation -> bar option) * ... )
With an explicit record, it is easier for libraries to expose an
instrumentation choice (possibility parametrized over
user-provided settings):
val tracker : params -> (foo, bar) Gc.Memprof.tracker
In addition, providing a record instead of optional parameters makes
it much easier to provide "default settings" (helper functions) that
instantiates the types `'minor` and `'ḿajor`, see for example
`simple_tracker` in this patch (which stores the same information for
the minor and major heap, and does not observe promotion), or to later
define checking predicates that can verify that a given choice of
callbacks is sensible (for example: providing a major-dealloc callback
but no promotion callback (dropping all tracked value on promotion) is
probably not a good idea).
Bootstrap: to avoid requiring an awkward bootstrap, this commit keeps
the (now unused) function caml_memprof_start_byt unchanged -- it is
used in the bootstrap binaries, so removing it would break the
build. The intention is to remove it in the following commit.
|
| |
| |
| |
| | |
already running.
|
| |
| |
| |
| | |
They are somewhat difficult to handle for native allocations, and it is not clear how useful they are. Moreover, they are easy to add back since [Gc.Memprof.allocation] is a private record.
|
| |
| |
| |
| |
| |
| |
| |
| | |
The user can register several callbacks, which are called for various
events during the block's lifetime. We need to maintain a data
structure for tracked blocks in the runtime. When using threads,
callbacks can be called concurrently in a reentrant way, so the
functions manipulating this data structure need to be reentrant.
|
|\ \
| |/
| |
| | |
parallel_minor_gc_4_10
|
| | |
|
| | |
|
| | |
|
|\ \
| |/
| |
| | |
parallel_minor_gc_4_08
|
| |
| |
| |
| |
| | |
* add caml_alloc_custom_mem and corresponding GC parameters
* fix a bug in tests/misc/ephetest2.ml
|
|\ \
| |/ |
|
| | |
|
|\ \
| |/ |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| | |
Remains to be done: remove all headers in testsuite/tests.
|
| | |
|
| | |
|
| | |
|
|/
|
|
| |
Closes #36.
|
|
|
|
| |
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13013 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
|
|
|
| |
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@11156 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
|
|
|
|
|
|
|
|
|
|
| |
- PR#4702: added C functions to register threads not created by Caml
- PR#5013: wrong implementation of condition variables under Win32
- PR#4979: wrong error code handling under Win32
- Added standard include <caml/threads.h>
- Added "stack_size" field in GC statistics.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@10315 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
|
|
|
| |
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@9153 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
|
|
|
| |
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@6403 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
|
|
|
| |
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@6097 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
|
|
|
| |
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@6047 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
|
|
|
| |
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@5767 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
byterun/gc_ctrl.c: ajout Gc.major_slice
byterun/major_gc.c: gros bug dans les valeurs finalisees + ajout Gc.major_slice
byterun/major_gc.h: gros bug dans les valeurs finalisees + ajout Gc.major_slice
byterun/memory.c: typo dans un commentaire
byterun/minor_gc.c: petit bug, ajout Gc.major_slice
parsing/parser.mly: plus de conflits; l'automate reste identique
stdlib/gc.ml: ajout Gc.major_slice
stdlib/gc.mli: ajout Gc.major_slice
stdlib/sys.ml: ajout Sys.ocaml_version
stdlib/sys.mli: ajout Sys.ocaml_version
utils/config.mlp: ajout Sys.ocaml_version
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@4357 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
|
|
|
| |
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@4335 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
|
|
|
| |
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@4144 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
|
|
|
| |
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@3674 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
|
|
|
|
|
|
| |
arg.ml: affichage option -help
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@3399 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
|
|
|
| |
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2754 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|
|
|
|
| |
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2746 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
|