Age | Commit message (Collapse) | Author |
|
Anywhere but the beam sources we shouldn't #include "erl_nif.h", because
what "erl_nif.h" does is: (1) fail to find it outside of -I dirs, (2)
then treat it as if it was written like <erl_nif.h>. Using <erl_nif.h>
skips (1).
More information can be found in 6.10.2 of the C standard.
Because the examples use "erl_nif.h", NIF projects in the Erlang
ecosystem copy this verbatim and make the same mistake.
|
|
* maint:
erts: Add nif_SUITE:t_on_load
erts: Improve nif_SUITE:upgrade test
Don't leak old code when loading a modules with an on_load function
Conflicts:
erts/preloaded/ebin/erts_code_purger.beam
erts/preloaded/ebin/erts_internal.beam
erts/preloaded/src/erts_code_purger.erl
|
|
* bjorn/erts/on_load/ERL-240/OTP-13893:
erts: Add nif_SUITE:t_on_load
erts: Improve nif_SUITE:upgrade test
Don't leak old code when loading a modules with an on_load function
|
|
* maint:
Ensure asserts are enabled in eunit.hrl
|
|
* richarl/eunit/fix-asserts/PR-1168/OTP-13892:
Ensure asserts are enabled in eunit.hrl
|
|
|
|
* peppe/common_test/docs-19.1:
Document functions for modifying and reading verbosity levels
|
|
|
|
Conflicts:
OTP_VERSION
|
|
|
|
|
|
maint
* tony612/erts/fix-doc-format-in-c_port/PR-1167/OTP-13885:
doc: Fix code format in tutorial/c_port
|
|
|
|
* mcherep/erts/fix-doc-typo/PR-1165/OTP-13886:
Typo in documentation fixed
|
|
* maint:
Update .gitignore
|
|
* egil/update-gitignore:
Update .gitignore
|
|
|
|
|
|
* rickard/gc-msgq-bin-fix/OTP-13890:
Ensure we dont use an invalid live heap fragment pointer
Update vheap size when moving msgq to heap after GC
|
|
|
|
* peppe/kernel/invalid_priv_dir/ERL-195/OTP-13758:
Fix incorrect priv_dir when adding app's ebin directory to path
OTP-13758
|
|
OTP-13841
|
|
|
|
|
|
|
|
to include upgrade from deleted (old) module instance
|
|
Normally, calling code:delete/1 before re-loading the code for a
module is unnecessary but causes no problem.
But there will be be problems if the new code has an on_load function.
Code with an on_load function will always be loaded as old code
to allowed it to be easily purged if the on_load function would fail.
If the on_load function succeeds, the old and current code will be
swapped.
So in the scenario where code:delete/1 has been called explicitly,
there is old code but no current code. Loading code with an
on_load function will cause the reference to the old code to be
overwritten. That will at best cause a memory leak, and at worst
an emulator crash (especially if NIFs are involved).
To avoid that situation, we will put the code with the on_load
function in a special, third slot in Module.
ERL-240
|
|
When asserts were moved out to a separate header file, the automatic
enabling of asserts when testing is enabled stopped working.
|
|
* maint:
beam_validator: Handle unreachable instructions
Turn off parallel make for start scripts Makefile
|
|
* bjorn/erts/start-scripts/ERL-250:
Turn off parallel make for start scripts Makefile
|
|
* bjorn/compiler/beam_validator/OTP-13863:
beam_validator: Handle unreachable instructions
|
|
* maint:
Ensure long enough sleep in driver_SUITE:timer_delay driver
|
|
* rickard/test-cuddle:
Ensure long enough sleep in driver_SUITE:timer_delay driver
|
|
* maint:
Updated OTP version
Prepare release
Fix crash due to heap fragments left after GC
Conflicts:
OTP_VERSION
erts/emulator/beam/erl_gc.c
|
|
|
|
|
|
* ingela/ssl/packet-tests:
ssl: Add timetrap scale calls
ssl: Add nodelay to packet=0|raw tests
|
|
|
|
|
|
* rickard/dist-map-gc-fix/OTP-13889:
Fix crash due to heap fragments left after GC
|
|
|
|
Do not decode distribution messages as part of the GC operation.
Distribution messages containing maps may generate heap fragments.
|
|
|
|
ab03678e introduced an optimization in the beam_z pass that could
introduce unreachable code in BEAM files (a 'jump' instruction is
removed after a 'raise' instruction, but the code following the
target of the 'jump' is not removed).
Since this situation happens very rarely, there is no point in adding
another pass that can remove unreachable code after beam_z. Instead we
will make sure that beam_validator can skip the unreachable code.
Skipping unreachable code is already done in valfun_1/2 (for
historical reasons), but we will also need to do it in val_dsetel/2.
|
|
Ignore make/make_emakefile
|
|
|
|
|
|
* maint:
parsetools: Suppress Dialyzer-warnings
|
|
* hasse/parsetools/suppress_dialyzer_warnings/OTP-13681:
parsetools: Suppress Dialyzer-warnings
|
|
|