Age | Commit message (Collapse) | Author |
|
* maint:
erts: Do not profile system profiler pid
test: system_profile profiler pid is not profiled
Remove line macros in system_profile_SUITE
|
|
* egil/system_profile-profiler-fix/OTP-9849:
erts: Do not profile system profiler pid
test: system_profile profiler pid is not profiled
Remove line macros in system_profile_SUITE
|
|
* maint:
Update primary bootstrap
Add the beam_except pass to optimize exceptions
Eliminate the match_fail primop in v3_kernel and later passes
|
|
|
|
* bjorn/compiler/match-fail/OTP-9842:
Add the beam_except pass to optimize exceptions
Eliminate the match_fail primop in v3_kernel and later passes
|
|
In order to save space, rewrite suitable calls to erlang:error/{1,2}
to special BEAM instructions.
This code is probably longer than the code taken out of v3_life and
v3_codegen in the previous commit, but it is much easier to
understand and maintain since the BEAM assembler format is better
understood than the v3_life format.
|
|
In the v3_life pass, it is assumed that a 'match_fail' primop
only occur at the top-level and at the end of a function.
But this code:
do_split_cases(A) ->
case A of
x ->
Z = dummy1;
_ ->
Z = dummy2,
a=b
end,
Z.
will be optimized by sys_core_fold to the following code:
'split_cases'/1 =
fun (_cor0) ->
let <_cor7,Z> =
case _cor0 of
<'x'> when 'true' ->
< 'dummy1','dummy1' >
<_cor6> when 'true' ->
%% Here follows a 'match_fail' primop inside
%% multiple return values:
< primop 'match_fail'({'badmatch','b'}),'dummy2' >
end
in
Z
moving the 'match_fail' primop into a "values" construction.
In the future, we would like to get rid of the v3_life pass (it is
there for historical reasons), so in the mean-time we prefer to not
add more code to it by generalizing the handling of 'match_fail'.
Since the 'match_fail' primop can be simulated by erlang:error/{1,2},
the simplest solution is to translate 'match_fail' to a call to
erlang:error/{1,2} in v3_kernel and remove the handling of
'match_fail' in v3_life and v3_codegen.
It is tempting to get rid of 'match_fail' also in the Core Erlang
format, but there are two issues:
- Removing the support for 'match_fail' completely may break tools
that generate Core Erlang code. We should not do that in a minor
release.
- There is no easy way to generate a 'function_clause' exception
that will remain correct if it will be inlined into another
function. (Calling "erlang:error(function_clause, Args)" is
fine only if it is not inlined into another function.) A good
solution probably involves introducing new instructions, which
is better done in a major release.
Noticed-by: Håkan Matsson
Minimized-test-case-by: Erik Søe Sørensen
|
|
|
|
* lukas/docfixes/OTP-9850:
Fix some broken links in documentation
|
|
|
|
|
|
|
|
|
|
|
|
Conflicts:
erts/vsn.mk
|
|
|
|
* rickard/no-smp-dev-poll-bug/OTP-9844:
Include wakeup pipe in /dev/poll poll-set also on non-SMP
|
|
* rickard/lwsync/OTP-9843:
Fix lwsync instruction feature test
|
|
A feature test for the lwsync instruction performed on PowerPC
hardware at runtime system startup got into an eternal loop if
the instruction was not supported. This bug was introduced in
erts-5.9/OTP-R15B.
|
|
I/O events could potentially be delayed for ever when enabling
kernel-poll on a non-SMP runtime system executing on Solaris. When
also combined with async-threads the runtime system hung before
completing the boot phase. This bug was introduced in
erts-5.9/OTP-R15B.
|
|
|
|
* raimo/opu-fixes:
inet_res_SUITE: Go back to old way to kill test name server
|
|
* maint:
Check that sys.config and relup have valid content when added to tar
Reject systools:make_script if kernel and stdlib are not permanent in .rel
Don't save child spec for temporary child if child's start func returns ignore
Generate links in C libraries correctly
|
|
* hb/erl_docgen/fix_links/OTP-9832:
Generate links in C libraries correctly
|
|
* siri/sasl/check-config-in-tar/OTP-9539:
Check that sys.config and relup have valid content when added to tar
|
|
* siri/sasl/require-kernel-start/OTP-9652:
Reject systools:make_script if kernel and stdlib are not permanent in .rel
|
|
* siri/stdlib/delete-temp-childspec-on-ignore/OTP-9782:
Don't save child spec for temporary child if child's start func returns ignore
|
|
systools:make_tar now does a minor check of the content of sys.config
and relup before adding them to the tar file. If the content is not
readable or in expected format, the function fails.
|
|
It should not be possible to create a .boot file unless kernel and
stdlib are stated as permanent applications in the .rel file. Note
that 'permanent' is the default start type, so not specifying a start
type for kernel and stdlib is, as always, ok.
|
|
Supervisor should never keep child specs for dead temporary children.
|
|
* maint: (25 commits)
Install example dictionaries
Move example code to examples/code
Move example dictionaries to examples/dict
Set name/prefix at compilation, not in dictionaries
Add RFC 4004 (MIP) dictionary
Add RFC 4740 (SIP) dictionary
Add RFC 4072 (EAP) dictionary
Add RFC 4006 (CC) dictionary
Add RFC 4005 (NAS) dictionary
Add standards testcase to compiler suite
Remove {init,end}_per_group workaround
Use new syntax for specifying ct group properties
Increase timetrap in compiler suite
Minor capx suite tweaks
Minor makefile tweak
Remove trailing whitespace
Update skip condition in gen_sctp suite
Reintroduce gen_sctp suite
Remove delay from connect in transport suite
Add codec testcase for decode of unknown AVPs
...
|
|
* anders/diameter/testsuites/OTP-9829: (21 commits)
Install example dictionaries
Move example code to examples/code
Move example dictionaries to examples/dict
Set name/prefix at compilation, not in dictionaries
Add RFC 4004 (MIP) dictionary
Add RFC 4740 (SIP) dictionary
Add RFC 4072 (EAP) dictionary
Add RFC 4006 (CC) dictionary
Add RFC 4005 (NAS) dictionary
Add standards testcase to compiler suite
Remove {init,end}_per_group workaround
Use new syntax for specifying ct group properties
Increase timetrap in compiler suite
Minor capx suite tweaks
Minor makefile tweak
Remove trailing whitespace
Update skip condition in gen_sctp suite
Reintroduce gen_sctp suite
Remove delay from connect in transport suite
Add codec testcase for decode of unknown AVPs
...
|
|
* anders/diameter/compilation_options/OTP-9826:
Allow module name mapping at dictionary compilation
Fix blunder that broke name/prefix compilation options
|
|
* anders/diameter/missed_events/OTP-9824:
Update watchdog suite
Ensure capabilities exchange can't fail too early
|
|
* maint:
Remove bad assert
|
|
It is possible also in non-SMP case:
1. The process receives an exit signal and is set in status exiting
and inserted into the run queue.
2. The distribution port exits before the process has been selected
for execution and cannot remove the link half on the process since
it is in status exiting.
3. Process is selected for execution and when removing this link half
the distribution channel is gone!
|
|
It is possible also in non-SMP case:
1. The process receives an exit signal and is set in status exiting
and inserted into the run queue.
2. The distribution port exits before the process has been selected
for execution and cannot remove the link half on the process since
it is in status exiting.
3. Process is selected for execution and when removing this link half
the distribution channel is gone!
|
|
|
|
|
|
|
|
|
|
|
|
To avoid inappropriate defaults if the dictionaries are reused.
|
|
|
|
|
|
|
|
|
|
|
|
To test compilation of example dictionaries from various standards.
|
|
This undoes commit 162c0d3ee30790ec5a75e20b0e2e8bc61ed92375.
|