Commit Graph

20 Commits (master)

Author SHA1 Message Date
Xavier Leroy af48d9fe8f
Add a naked pointers dynamic checker (#9956)
This is selected at configure-time, option --enable-naked-pointers-checker.

The major GC warns when it detects out-of-heap pointers that could cause the no-naked-pointers runtime system to crash.

This is supported on x86-64 only, but on all ports (Unix and Windows).

Added tests involving naked pointers in tests/runtime-naked-pointers

Co-authored-by: KC Sivaramakrishnan <kc@kcsrk.info>
Co-authored-by: David Allsopp <david.allsopp@metastack.com>
Co-authored-by: Enguerrand Decorne <decorne.en@gmail.com>
2020-10-05 14:44:31 +02:00
Sadiq Jaffer c10217818f
Garbage collector colours change (#9756) 2020-09-17 17:24:04 +02:00
Antonin Décimo 873b31496b Represent eventlog_startup_pid as long int 2020-07-17 19:49:27 +02:00
Leo White dfd0c0cc77 Report full major collections in Gc stats 2020-06-25 14:24:41 +01:00
Enguerrand Decorne b7f0494df5 Rewrite the instrumented runtime to store traces in the CTF format.
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).
2020-04-30 10:32:01 +02:00
KC Sivaramakrishnan 6efd278286 Remove a level of indirection for accessing minor tables from Caml_state. 2019-08-23 09:50:05 +05:30
KC Sivaramakrishnan 8721dc4e89 Remove inclusion of config.h from the files that generate domain state table. 2019-08-23 09:50:05 +05:30
KC Sivaramakrishnan 2a0e607851 Fix copyright headers again 2019-08-23 09:50:05 +05:30
KC Sivaramakrishnan 316a5ff358 Copyright headers and attribution 2019-08-23 09:50:05 +05:30
KC Sivaramakrishnan 126383b2b2 Fix long lines 2019-08-23 09:50:05 +05:30
KC Sivaramakrishnan de5ef602fd Rename exn_handler to exception_pointer 2019-08-23 09:50:05 +05:30
KC Sivaramakrishnan cededf23b9 Move local_roots, compare unorderd and gc request variables to domain state 2019-08-23 09:50:05 +05:30
KC Sivaramakrishnan 3357490de0 Move native runtime globals used for roots to domain state 2019-08-23 09:50:05 +05:30
KC Sivaramakrishnan 111f6af469 Move bytecode global variables to domain state 2019-08-23 09:50:05 +05:30
KC Sivaramakrishnan c06038a0ee Move backtrace support global variables to domain state.
Since we cannot access backtrace position in cmmgen.ml anymore,
Cmm.raise_kind in removed. Instead, we use Lambda.raise_kind. When
assembly code is generated, we reset the backtrace position to 0 in the
case of regular raise. Importantly, the semantics remains the same.
2019-08-23 09:50:05 +05:30
KC Sivaramakrishnan 755f5444f1 Move all statistics variables to domain state 2019-08-23 09:50:05 +05:30
KC Sivaramakrishnan 28c5b9c860 Various minor heap pointers moved to domain state 2019-08-23 09:50:05 +05:30
KC Sivaramakrishnan 8e8b34d1db Reorder domain state fields 2019-08-23 09:50:05 +05:30
KC Sivaramakrishnan 45b1e18f59 young_ptr and young_limit are now in domain state 2019-08-23 09:50:05 +05:30
KC Sivaramakrishnan fc6f028492 Introduce domain state and steal exception pointer 2019-08-23 09:50:05 +05:30