Age | Commit message (Collapse) | Author |
|
* vladdu/debugger/fixes:
remove warning for variable exported from case
remove useless match
remove unused parameter
|
|
* hsv/using_lists_droplast:
lib/mnesia/test/ - Replace reverse(tl(reverse(L))) with lists:droplast/1
lib/ssh - Replace reverse(tl(reverse(L))) with lists:droplast/1
lib/wx - Replace reverse(tl(reverse(L))) with lists:droplast/1
Use lists:droplast/1 in orber/orber_interceptors.erl
Import and use lists:droplast/1 in v3_core/v3_kernel
OTP-11678
OTP-11677
|
|
* hsv/add_droplast_to_lists:
Added documentation of lists:droplast/1
Added tests for lists:droplast/1 to stdlib/lists_SUITE
stdlib/lists: Add function droplast/1 This functions drops the last element of a non-empty list.
|
|
* egil/erts/fix-maps-beam_load:
compiler: Update map_SUITE with error case test
erts: Maps must fail on exact updates of empty Maps
erts: Fix Maps for beam_load
|
|
M#{ key := V } should fail when M is not a Map
|
|
Exact updates on empty Maps must fail directly.
|
|
* kostis/dialyzer-r17c0-fixes:
Shut off a dialyzer unmatched return warning
Add a spec for a function that does not return
|
|
* ia/ssl/unicode-adapt:
ssl: Unicode adaptions
|
|
* hb/doc/release_name:
Make the references to various Erlang/OTP releases verbose
|
|
* hb/dialyzer/fix_app_file:
Add app-test and correct dialyzer.app.src
|
|
* bjorn/erts/zlib-1.2.8/OTP-11669:
gzio.c: Remove unnecessary usage of the OF() macro
|
|
|
|
|
|
* nox/maps-absform:
Document maps-related abstract syntax trees
|
|
* nox/debugger/maps-support/OTP-11673:
debugger: Fix release_tests
Support maps in the debugger
|
|
|
|
|
|
* bjorn/compiler/applying-binary-crash/OTP-11672:
beam_bsm: Eliminate emulator crash when a binary is called
beam_validator: Validate the "fun" argument for a call_fun/1 instruction
|
|
* bjorn/compiler/optimizations/OTP-11584:
sys_core_fold: Prevent case expressions from being evaluated twice
sys_core_fold_SUITE: For cleanliness, move id/1 to the end
|
|
|
|
Map source may be anything, not only registers.
|
|
|
|
|
|
|
|
We must not do the delayed binary creation optimization if the
code attempts to call the matched out binary. Calling a matchstate
will crash the run-time system.
Reported-by: Loïc Hoguin
|
|
The fun argument for a call_fun/1 instruction was not validated.
|
|
* hans/ssh/known_hosts/OTP-11671:
ssh: fix 'known_hosts' bug in ssh_file
|
|
|
|
* hans/ssh/decode_error/OTP-11667:
Fix that result on stderr sent back to ssh:exec had length info present
|
|
|
|
* peppe/common_test/ts_mods:
Add more Common Test start arguments to the ts run interface
|
|
* bjorn/eep37/OTP-11537:
Issue a warning when a named fun is constructed but not used
|
|
|
|
Daniel Goertzen reported that commit 8a147a7365 broke building
of Erlang/OTP on Gentoo Linux because the macro OF() was missing.
Apparently, on Gentoo the OF() macro in zconf.h has been renamed
to _Z_OF() (to avoid polluting the global namespace).
Don't use the OF() macro in gzio.c since it no longer serves any
useful purpose (it provided compatibility with pre-ANSI/ISO C
compilers, but the rest of Erlang/OTP requires an ANSI/ISO C
compiler anyway).
|
|
* nox/syntax_tools/maps-support/OTP-11663:
Support maps in erl_prettypr
Complete support of maps in erl_syntax
|
|
In e12b7d5331c58b41db06cadfa4af75b78b62a2b1, a bug was introduced
that would cause case expressions to be evaluated more than once
if there were aliases in the pattern. Example:
X = Y = io:put_chars("some chars"),
{X,Y}
That would be rewritten to code similar to (but in Core Erlang):
X = io:put_chars("some chars"),
X = io:put_chars("some chars"),
{X,Y}
Make sure that we only evalute the expression once by doing a
transformation similar to (but in Core Erlang):
NewVar = io:put_chars("some chars"),
X = NewVar,
Y = NewVar,
{X,Y}
Reported-by: José Valim
Reported-by: Anthony Ramine
|
|
|
|
A test is commented-out in map_SUITE:t_update_exact/1, waiting for a fixed
maps:update/3 function with correct integer/float semantics.
|
|
* sverk/erts/binary_to_term-maps-bug:
erts: Fix bug in binary_to_term for maps
|
|
'maps_head' was not restored when yielding. Risk for crash increases with
size and number of maps in term.
|
|
|
|
* egil/compiler/strengthen-tests:
compiler: Teach beam_disasm has_map_field instruction
compiler: Fold binary Map key patterns to literals
compiler: Strengthen listings tests
compiler: Strengthen Maps tests
|
|
|
|
map_expr/1
map_expr/2
map_expr_argument/1
map_expr_fields/1
map_field_assoc/2
map_field_assoc_name/1
map_field_assoc_value/1
map_field_exact/2
map_field_exact_name/1
map_field_exact_value/1
|
|
{map,Loc,Fields}
{map,Loc,Argument,Fields}
{map_field_assoc,Loc,Name,Value}
{map_field_exact,Loc,Name,Value}
|
|
|
|
|
|
|
|
|
|
Dialyzer does not like list comprehensions for which the result is not
assigned to some variable (maybe anonymous). In this particular case,
the comprehension, containing only a filter but no generator, was used
to save some lines, but IMO this type of code, while "cute", is not so
easy to comprehend.
|