Age | Commit message (Collapse) | Author |
|
to get a nice SIGILL crash.
For x86 and x86_64 only.
|
|
This is part of commit 1bd508921dd93086b05e7d0038b816b36c421d86.
I did not include the fun-checking as we have a new purge strategy
for funs in OTP 20. That remains to be solved some other way for hipe.
|
|
Just like the BEAM loader state (as returned by
erlang:prepare_loading/2), the HiPE loader state is contained in a magic
binary.
Eventually, we will separate HiPE loading into a prepare and a finalise
phase, like the BEAM loader, where the prepare phase will be implemented
by hipe_unified_loader and the finalise phase be implemented in C by
hipe_load.c and beam_load.c, making prepare side-effect free and
finalise atomic. The finalise phase will be exposed through the
erlang:finish_loading/1 API, just like the BEAM loader, as this will
allow HiPE and BEAM modules to be mixed in the same atomic "commit".
The usage of a loader state makes it easier to keep track of all
resources allocated during loading, and will not only make it easy to
prevent leaks when hipe_unified_loader crashes, but also paves the way
for proper, leak-free, unloading of HiPE modules.
|
|
Conflicts:
OTP_VERSION
|
|
|
|
|
|
|
|
* hans/ssh/harmful_badmatch/OTP-13966:
ssh: Removed matching of 'ok' after send which could cause error reports
ssh: ssh_protocol_SUITE test for handling of illegal info_lines
ssh: property test case for illegal infoline and close This tests an illegal client that sends an info line and closes 'immediatly'.
|
|
|
|
|
|
This tests an illegal client that sends an info line and closes 'immediatly'.
|
|
* maint:
dialyzer: Fix opaque bug
dialyzer: Fix opaque bugs
|
|
* hasse/dialyzer/fix_opaque_bugs/OTP-13693:
dialyzer: Fix opaque bug
dialyzer: Fix opaque bugs
|
|
* lukas/erts/beam_func_info_struct/OTP-13821:
erts: Fix some dtrace related compile issues
erts: Refactor rename Export.code[] to Export.beam[]
erts: Improve printouts for some etp commands
erts: Fix erts_debug:df with new func_info
erts: Refactor find_function_from_pc to return MFA
erts: Refactor out func_info into struct
|
|
and remove outdated min size adjustment.
The is similar to lost commit 31bc414dc9639ccf94f9011ed32
except we now assume and assert strict size equality.
|
|
|
|
to avoid scary merge errors.
|
|
Specifically etp-stacktrace/stackdump/process-info have been changed
|
|
|
|
|
|
This commit adds two new structs to be used to represent
erlang code in erts.
ErtsCodeInfo is used to describe the i_func_info header
that is part of all Export entries and the prelude of
each function. This replaces all the BeamInstr * that
were previously used to point to these locations.
After this change the code should never use BeamInstr *
with offsets to figure out different parts of the
func_info header.
ErtsCodeMFA is a struct that is used to descripe a
MFA in code. It is used within ErtsCodeInfo and also
in Process->current.
All function that previously took Eterm * or BeamInstr *
to identify a MFA now use the ErtsCodeMFA or ErtsCodeInfo
where appropriate.
The code has been tested to work when adding a new field to the
ErtsCodeInfo struct, but some updates are needed in ops.tab to
make it work.
|
|
* maint:
Update Dialyzer documentation
|
|
* xsipewe/dialyzer/doc_cleanup:
Update Dialyzer documentation
|
|
epp:default_encoding/0 returns 'utf8' and needs to be re-encoded
to "UTF-8" to be correct.
|
|
Conflicts:
lib/crypto/c_src/crypto.c
lib/ssl/src/ssl_cipher.erl
|
|
|
|
* github/pr/1199:
Correct a typo in mod_esi documentation
|
|
|
|
* ingela/ssl/algo-check/OTP-13959:
Properly filter ssl cipher suites reported as supported
|
|
* ingela/ssl/crl_SUITE:
ssl: Make sure test has correct input
|
|
Conflicts:
OTP_VERSION
|
|
|
|
|
|
* egil/erts/fix-profile_boot-flag/ERL-280/OTP-13955:
Update preloaded init.beam
erts: Fix -profile_boot 'true'|'false' parsing
|
|
Language cleaned up by the technical writer xsipewe from
Combitech. Proofreading and corrections by Hans Bolinder.
|
|
to get some coverage in beam_load.c:hash_internal_genop_arg().
|
|
|
|
|
|
Strictly speaking 'true' and 'false' arguments is not necessary,
but it should work if supplied.
|
|
|
|
with new function erts_pd_make_hx()
|
|
In the origin implementation, the hash value of atom term is retrieved
from the atom table. Reading the atom table is expensive since it is in
memory and leads to more cache missing.
The size of a process dictionary is usually small. The atom value (the
index) is unique and can be hash value for it. Using the atom value
directly should be more efficient.
|
|
|
|
|
|
maint-19
* hans/ssh/revert_nonblocking_sender_seq13199/OTP-13953:
Revert "ssh: Add non-blocking send" since it introduces Error Reports
|
|
This reverts commit 28baf1314b556bb592c24181f6967e1f324f44a7.
|
|
* sverker/load_nif-print-init-error:
crypto: Return source line number from failed load/upgrade
erts: Print error code from failed NIF load/upgrade/reload
|
|
and hipe_bifs:update_code_size
|
|
A step toward better integration of hipe load and purge
Highlights:
* code_server no longer needs to call hipe_unified_loader:post_beam_load/1
Instead new internal function hipe_redirect_to_module()
is called by loading BIFs to patch native call sites if needed.
* hipe_purge_module() is called by erts_internal:purge_module/2
to purge any native code.
* struct hipe_mfa_info redesigned and only used for exported
functions that are called from or implemented by native code.
A list of native call sites (struct hipe_ref) are kept for each hipe_mfa_info.
* struct hipe_sdesc used by hipe_find_mfa_from_ra()
to build native stack traces.
|
|
as they are lists of #fundef records
|