summaryrefslogtreecommitdiff
path: root/stdlib/gc.ml
Commit message (Collapse)AuthorAgeFilesLines
* stdlib: enable compilation using dunePau Ruiz Safont2023-02-241-1/+1
| | | | | | | | | 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
* Correctly handle exception in Gc.call_alarmfabbing2023-02-171-2/+2
| | | | Co-authored-by: Guillaume Munch-Maccagnoni <gadmm@github>
* Re-register finaliser only after calling user alarm in Gc.create_alarmFabrice Buoro2023-02-171-1/+1
| | | | Fixes #12002
* Runtime_events tracing systemSadiq Jaffer2022-05-241-2/+3
|
* Make gc alarms atomicFlorian Angeletti2022-05-021-4/+4
| | | | This is required to allow deleting an alarm from any domains.
* Remove deprecated functions (#10867)Nicolás Ojeda Bär2022-01-121-7/+7
|
* remove get_bucket, get_credit and huge_fallback_countSadiq Jaffer2022-01-071-3/+0
|
* add some (rather confusing) documentationSadiq Jaffer2021-12-171-1/+1
|
* Add memprof to runtime build; add stdlib memprof interface; stub out memprof ↵Tom Kelly2021-03-251-2/+42
| | | | start/stop for now
* Remove promote_to from runtime and GC interfaceTom Kelly2021-03-111-2/+0
|
* Merge commit 'c4851b0ff0070bca3b5ebbb3ec51941a249031cc' into ↵Tom Kelly2021-03-041-3/+5
|\ | | | | | | parallel_minor_gc_4_12
| * Report full major collections in Gc statsLeo White2020-06-251-3/+5
| |
* | Merge commit '10561873487c185c0727f08b26706226dbb1a7b6' into ↵Tom Kelly2021-03-021-0/+2
|\ \ | |/ | | | | parallel_minor_gc_4_12
| * Rewrite the instrumented runtime to store traces in the CTF format.Enguerrand Decorne2020-04-301-0/+2
| | | | | | | | | | | | | | | | | | 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).
| * Gc.Memprof.start: take a record instead of 5 optional parametersGabriel Scherer2020-04-011-16/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * Memprof API: cannot be start if already running, cannot be stopped if not ↵Jacques-Henri Jourdan2020-01-141-21/+7
| | | | | | | | already running.
| * Drop support for tags in memprof.Jacques-Henri Jourdan2020-01-111-1/+0
| | | | | | | | 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.
| * New ephemeron-free API for Memprof.Jacques-Henri Jourdan2019-12-211-27/+44
| | | | | | | | | | | | | | | | 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.
* | Merge commit '9a0ebc18d444a8cdb08396ea694084d07249ec5d' into ↵Tom Kelly2020-04-301-1/+2
|\ \ | |/ | | | | parallel_minor_gc_4_10
| * [minor] typoGuillaume Munch-Maccagnoni2019-10-161-2/+2
| |
| * Memprof tracking of interned data.Jacques-Henri Jourdan2019-08-271-1/+1
| |
| * Statistical memory profiling of blocks allocated in the major heap.Jacques-Henri Jourdan2019-05-091-2/+34
| |
* | Merge commit '4c130cae87cd29621aa2ed8a36a68fc7eaa950a2' into ↵Tom Kelly2020-04-091-0/+3
|\ \ | |/ | | | | parallel_minor_gc_4_08
| * Add caml_alloc_custom_mem (#1738)Damien Doligez2018-11-061-0/+3
| | | | | | | | | | * add caml_alloc_custom_mem and corresponding GC parameters * fix a bug in tests/misc/ephetest2.ml
* | Bootstrap for 4.06.0 updatesKC Sivaramakrishnan2018-03-281-2/+2
|\ \ | |/
| * Fix Gc.minor_{words,free} by removing [@@noalloc]Stephen Dolan2017-03-091-2/+2
| |
* | Merge updates from 4.04.2KC Sivaramakrishnan2018-03-121-9/+9
|\ \ | |/
| * Add finalise_last without special case during minorFrançois Bobot2016-07-091-0/+2
| |
| * Declare the Gc.minor_words externalPierre Chambart2016-05-311-0/+2
| |
| * Merge tag 4.03.0 into trunk.Damien Doligez2016-04-281-25/+25
| |
| * Update headers for the new license.Damien Doligez2016-02-181-12/+14
| | | | | | | | Remains to be done: remove all headers in testsuite/tests.
| * GC latency improvementsDamien Doligez2015-12-211-11/+21
| |
* | make world now worksKC Sivaramakrishnan2018-03-091-4/+4
| |
* | Promote to 4.04.2 => bootstrap succeededKC Sivaramakrishnan2018-03-091-39/+54
| |
* | Expose explicit promotion as Gc.promote_to.Stephen Dolan2016-11-221-0/+1
|/ | | | Closes #36.
* remove all $Id keywordsDamien Doligez2012-10-151-2/+0
| | | | git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13013 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
* renaming of Objective Caml to OCaml and cleanup of copyright headersDamien Doligez2011-07-271-1/+1
| | | | git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@11156 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
* - Refactoring of otherlibs/systhreadsXavier Leroy2010-04-271-0/+1
| | | | | | | | | | | - 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
* merge changes from 3.10.2merged to 3.11.0Damien Doligez2008-12-031-0/+1
| | | | git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@9153 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
* finalisation dans l'ordreDamien Doligez2004-06-141-0/+1
| | | | git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@6403 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
* ajout Gc.quick_statDamien Doligez2004-01-301-0/+1
| | | | git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@6097 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
* depollution suite (et fin?) (PR#1914 et PR#1956)Damien Doligez2004-01-021-10/+10
| | | | git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@6047 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
* PR#1786Damien Doligez2003-08-071-2/+1
| | | | git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@5767 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
* byterun/finalise.c: support pour les lazy finalisesDamien Doligez2002-02-051-0/+1
| | | | | | | | | | | | | | | | | 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
* ajout Gc.top_heap_wordsDamien Doligez2002-02-011-5/+6
| | | | git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@4335 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
* MAJ en-tetes pour mentionner la 'special exception' sur la LGPLXavier Leroy2001-12-071-1/+2
| | | | git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@4144 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
* PR#497Damien Doligez2001-08-281-8/+11
| | | | git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@3674 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
* gc.ml, gc.mli: compteurs flottantsDamien Doligez2001-02-051-8/+27
| | | | | | | arg.ml: affichage option -help git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@3399 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
* bug dans allocated_bytesDamien Doligez2000-01-121-1/+1
| | | | git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2754 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
* finalisation de valeurs alloueesDamien Doligez2000-01-071-0/+2
| | | | git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2746 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02