Age | Commit message (Collapse) | Author |
|
|
|
* egil/erts/fix-profile_boot-flag/ERL-280/OTP-13955:
Update preloaded init.beam
erts: Fix -profile_boot 'true'|'false' parsing
|
|
|
|
Strictly speaking 'true' and 'false' arguments is not necessary,
but it should work if supplied.
|
|
|
|
* 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
|
|
* maint:
beam_bsm: Eliminate unsafe optimization
|
|
* bjorn/compiler/beam_bsm/ERL-268/OTP-13947:
beam_bsm: Eliminate unsafe optimization
|
|
|
|
* ingela/inets/httpc/ERL-253:
inets: httpc improve error handling
|
|
|
|
* kostis/inets-reference-record-types/PR-1188:
Replace ref() with reference() in inets files
|
|
|
|
* ingela/ssl/cipher-type-spec:
ssl: Adjust cipher type to conform to implementation
|
|
* maint:
New file erlang-edoc.el to support EDoc in erlang-mode
Allow reusing mnesia select continuations
Fix guard test for chardata
|
|
* dgud/wx/fix-unicode-chardata/ERL-270/OTP-13934:
Fix guard test for chardata
|
|
* dgud/mnesia/dirty_select_cont/PR-1184/OTP-13944:
Allow reusing mnesia select continuations
|
|
* dgud/tools/emacs/edoc-support/PR-1195/OTP-13945:
New file erlang-edoc.el to support EDoc in erlang-mode
|
|
* maint:
Update per review comments.
Fix reference to automatic `undefined` field declared types.
|
|
* rohrer/doc/undefined_fields/PR-1189:
Update per review comments.
Fix reference to automatic `undefined` field declared types.
|
|
- EDoc markup font-locking and tag completion
- EDoc comment indentation
|
|
Conflicts:
OTP_VERSION
|
|
|
|
|
|
|
|
* ingela/ssh/channel_exit_handling/OTP-13932:
ssh: Prepare release
ssh: Handle gen_server:call/3 exits properly
|
|
A continuation returned by mnesia:select/[14] should be reusable in
different, non-transactional activities. Aborting with
wrong_transaction doesn't make sense in a dirty context.
|
|
The following code causes a compiler failure:
first_after(Data, Offset) ->
case byte_size(Data) > Offset of
false ->
{First, Rest} = {ok, ok},
ok;
true ->
<<_:Offset/binary, Rest/binary>> = Data,
%% 'Rest' saved in y(0) before the call.
{First, _} = match_first(Data, Rest),
%% When beam_bsm sees the code, the following line
%% which uses y(0) has been optimized away.
{First, Rest} = {First, Rest},
First
end.
match_first(_, <<First:1/binary, Rest/binary>>) ->
{First, Rest}.
Here is the error message from beam_validator:
t: function first_after/2+15:
Internal consistency check failed - please report this bug.
Instruction: {call,2,{f,7}}
Error: {multiple_match_contexts,[{x,1},0]}:
Basically, what happens is that at time of code generation,
the variable 'Rest' is needed after the call to match_first/2
and is therefore saved in y(0). When beam_bsm (a late optimization
pass) sees the code, the use of y(0) following the call
to match_first/2 has been optimized away. beam_bsm therefore
assumes that the delayed sub-binary creation is safe. (Actually,
it is safe, but beam_validator does not realize it.)
The bug was caused by two separate commits:
e199e2471a reduced the number of special cases to handle in BEAM
optimization passed by breaking apart the tail-recursive call
instructions (call_only and call_last) into separate instructions.
Unfortunately, the special handling for tail calls was lost, which
resulted in worse code (i.e. the delayed sub-binary creation
optimization could not be applied).
e1aa422290 tried to compensate, but did so in a way that was not
always safe.
Teaching beam_validator that this kind of code is safe would be
expensive.
Instead, we will undo the damage caused by the two
commits. Re-introduce the special handling of tail-recursive calls in
beam_bsm that was lost in the first commit. (Effectively) revert the
change in the second commit.
ERL-268
|
|
|
|
* maint:
parsetools: Correct counting of newlines
|
|
Previously only accepted lists tough a call is made to
unicode:characters_to_binary/1, and the functions where specified to
handle chardata.
|
|
* hasse/parsetools/fix_leex_counting/ERL-263/OTP-13916:
parsetools: Correct counting of newlines
|
|
|
|
* maint:
wx: add wxWindowDragAcceptFiles
wx: Add simple dropfiles support
|
|
* dgud/wx/drop-files/OTP-13933:
wx: add wxWindowDragAcceptFiles
wx: Add simple dropfiles support
|
|
|
|
Handle all possible exit values that should be interpreted as {error,
closed}. Failing to do so could lead to unexpected crashes for users
of the ssh application.
|
|
Renamed the init function as the return semantics are changed.
|
|
* maint:
Update primary bootstrap
beam_block: Avoid unsafe inclusion of get_map_elements in blocks
|
|
|
|
* bjorn/compiler/beam_block/ERL-266/OTP-13931:
beam_block: Avoid unsafe inclusion of get_map_elements in blocks
|
|
c2035ebb8b restricted the get_map_elements instruction so that it
could only occur at the beginning of a block. It turns out that
including it anywhere in a block is unsafe.
Therefore, never put get_map_elements instruction in blocks.
(Also remove the beam_utils:join_even/2 function since it is no
longer used.)
ERL-266
|
|
* maint:
erlang-mode: do not configure require-final-newline
|
|
* dgud/emacs/do-not-require-final-newline/PR-1130:
erlang-mode: do not configure require-final-newline
|
|
|
|
* maint:
add info for param and returns tags
|
|
* cypherfox/edoc/add_doc/PR-1175:
add info for param and returns tags
|
|
|
|
* hizel/howto/win32-include-path-fix/PR-1187:
Fix build environment script in HOWTO INSTALL-WIN32
|
|
In 8ce35b287fb50a6845fccf6a13c672aae303dc91 automatic insertion of `undefined` for record fields without initializers was removed, but this was not noted in the documentation. Add a warning about this change using similar verbiage as the original docs.
|