Age | Commit message (Collapse) | Author |
|
Support hashing terms from NIF code
|
|
* sverker/refactor:
erts: Introduce struct binary_internals
erts: Introduce erts_bin_release
erts: Init refc=1 in erts_bin_drv_alloc*
erts: Init refc=1 in erts_bin_nrml_alloc
erts: Remove deliberate leak of hipe fun entries
erts: Remove hipe_bifs:remove_refs_from/1
Refactor hipe specific code to use ErtsCodeInfo
erts: Refactor ErtsCodeInfo.native
|
|
|
|
Allow for expanding support to 64-bit hashes without breaking the
interface.
|
|
|
|
A more generic hashing function which can also hash terms based on
`make_internal_hash'.
|
|
|
|
These allow one to hash VM terms from NIF code.
|
|
to replace macro ERTS_INTERNAL_BINARY_FIELDS
as header in Binary and friends.
|
|
* rickard/sched_type_tests:
Fix dirty scheduler type tests
|
|
|
|
|
|
into union with actual usage types.
|
|
Old test for dirty schedulers didn't work with Visual C++
|
|
|
|
|
|
|
|
Conflicts:
erts/emulator/beam/erl_binary.h
erts/emulator/beam/erl_monitors.c
erts/emulator/beam/erl_nif.c
erts/emulator/beam/global.h
erts/emulator/test/nif_SUITE_data/nif_SUITE.c
|
|
# Conflicts:
# erts/emulator/test/nif_SUITE_data/nif_SUITE.c
|
|
|
|
* sverker/enif_send-noproc-fix:
erts: Fix enif_send from noproc and no msg_env
|
|
A magic destructor can return 0 and thereby take control
and prolong the lifetime of a magic binary.
|
|
|
|
|
|
|
|
Magic references are *intentionally* indistinguishable from ordinary
references for the Erlang software. Magic references do not change
the language, and are intended as a pure runtime internal optimization.
An ordinary reference is typically used as a key in some table. A
magic reference has a direct pointer to a reference counted magic
binary. This makes it possible to implement various things without
having to do lookups in a table, but instead access the data directly.
Besides very fast lookups this can also improve scalability by
removing a potentially contended table. A couple of examples of
planned future usage of magic references are ETS table identifiers,
and BIF timer identifiers.
Besides future optimizations using magic references it should also
be possible to replace the exposed magic binary cludge with magic
references. That is, magic binaries that are exposed as empty
binaries to the Erlang software.
|
|
as it's not part of the API
|
|
A magic destructor can return 0 and thereby take control
and prolong the lifetime of a magic binary.
|
|
|
|
* rickard/ds-20-fix:
Fix unused warning
Change exception for enif_schedule_nif() with dirty flags
Remove double check of NifExport when checking process code
|
|
* sverker/ASSERT_IN_ENV:
erts: Add macro ERTS_PROC_LOCKS_HIGHER_THAN
erts: Cleanup and extra assertions in nif_SUITE.c
erts: Cleanup enif_make_reverse_list
erts: Add assertions for correct ErlNifEnv
erts: Make erts_dbg_within_proc available
# Conflicts:
# erts/emulator/beam/erl_gc.h
|
|
|
|
|
|
Only try direct allocation on receiver heap when called
in a real process context to avoid trylock on our own main lock.
|
|
|
|
when constructing container terms.
|
|
The support is somewhat primitive, since it is determined at
call time if trace on return or exception should be sent.
|
|
|
|
|
|
Can't use HAlloc as it might consume part of callers 'need'.
|
|
|
|
|
|
to be declared once in beam_load.h
and get rid of #ifdef kludge.
|
|
* sverker/nif-entry-abi-compat:
erts: Fix code_SUITE:api_2_0,upgrade crash on win64
erts: Add tests of nif API 2.0
erts: Change nif_SUITE to use binaries for raw pointers
erts: Use test groups to repeat for different APIs
erts: Add testing of old nif API
erts: Secure abi backward compat for tracer nifs
erts: Mend broken checks in nif_SUITE
|
|
and simplify the code by handling the compatibility stuff
at loading by creating modern struct copies in create_lib().
|
|
* maint:
Update etp-commands for dirty schedulers
Fix scheduling of system tasks on processes executing dirty
Fix call time tracing with dirty schedulers
Fix send of exit signal to process executing dirty
Fix dirty scheduler process priority
Fix alloc-util hard-debug
Silence debug warning when no beam jump table is used with dirty schedulers
Fix check_process_code() when NifExport is in use
Fix GC when NifExport is in use
Fix saving of original arguments when rescheduling via NifExport
Conflicts:
erts/emulator/beam/beam_bif_load.c
erts/emulator/beam/erl_nif.c
|
|
* rickard/nif-scheduling-fixes:
Fix check_process_code() when NifExport is in use - OTP-14048
Fix GC when NifExport is in use - OTP-14049
Fix saving of original arguments when rescheduling via NifExport - OTP-14050
|
|
|
|
|
|
|