Age | Commit message (Collapse) | Author |
|
|
|
* siri/unicode-in-release-handling/OTP-14463:
[sasl] Improve handling of unicode strings and atoms
[reltool] Improve handling of unicode strings and atoms
|
|
|
|
|
|
|
|
* siri/appups-21:
Update sasl/test/test_lib.hrl with recent versions of kernel and stdlib
Update appups in kernel, stdlib, and sasl for OTP-21.0
|
|
Introduce a new core pass called sys_core_alias
OTP-14505
|
|
|
|
|
|
|
|
|
|
|
|
* siri/sasl/remove-si-modules/OTP-14469:
[sasl] Remove out-dated modules si and si_sasl_supp
|
|
Introduce new_map_lit operation in the loader
OTP-14502
|
|
Update to Unicode 10
OTP-14503
|
|
|
|
|
|
|
|
|
|
The goal of this pass is to find values that are built from
patterns and generate aliases for those values to remove
pressure from the GC. For example, this code:
example({ok, Val}) ->
{ok, Val}.
shall become:
example({ok, Val} = Tuple) ->
Tuple.
Currently this pass aliases tuple and cons nodes made of literals,
variables and other cons. The tuple/cons may appear anywhere in the
pattern and it will be aliased if used later on.
Notice a tuple/cons made only of literals is not aliased as it may
be part of the literal pool.
|
|
Fix erl_epmd:port_please when using IPv6
|
|
fprof: Sum callers and callees
|
|
|
|
* john/erts/runtime-lcnt:
Document rt_mask and add warnings about copy_save
Add an emulator test suite for lock counting
Break erts_debug:lock_counters/1 into separate BIFs
Allow toggling lock counting at runtime
Move lock flags to a common header
Enable register_SUITE for lcnt builds
Enable lcnt smoke test on all builds that have lcnt enabled
Make lock counter info independent of the locks being counted
OTP-14412
OTP-13170
OTP-14413
|
|
|
|
OTP-14413
|
|
|
|
The implementation is still hidden behind ERTS_ENABLE_LOCK_COUNT, and
all categories are still enabled by default, but the actual counting can be
toggled at will.
OTP-13170
|
|
|
|
It was disabled for performance reasons, and the new implementation handles
it just fine (roughly half as fast as without lcnt).
|
|
|
|
|
|
* sverker/prealloc-race-bug/maint:
erts: Increase pre-allocated blocks #ifdef DEBUG
|
|
Take advantage of the fact that small maps have a tuple for keys.
When new map is constructed and all keys are literals, we can construct
the entire keys tuple as a literal.
This should reduce the memory of maps created with literal keys almost by half,
since they all can share the same keys tuple.
|
|
* maint:
macOS: Fix problems loading crypto
|
|
macOS: Fix problems loading crypto
OTP-14499
|
|
|
|
* kenneth/asn1/ERL-437:
Corrected behavior of option {n2n, EnumTypeName} when EnumTypeName contains a hypen like fore example Cause-Misc. This caused syntax errors when compiling the generated Erlang code.
OTP-14495
|
|
Make tuple calls opt-in
OTP-14497
|
|
* jv/dialyzer/no_support_19/OTP-14493/PR-1434:
No longer support OTP 19 beam files in Dialyzer
|
|
When sampling multiple processes and analyzing with totals true sum
together all caller and callee entries which concerns the same
function. Previous behaviour was to report each contributing entry.
|
|
On macOS, it was not possible to start crypto after running
observer. (ERL_251)
On the beta of macOS 10.13 (High Sierra), crypto does not work
at all. (ERL-439)
The problem is that the use of the -flat_namespace option when
linking dynamic drivers such as the one for crypto. With that
option, all function names must be unique among all linked
libraries and frameworks, or the wrong function could be called.
Resolve the problem by using the two-level namespace as recommended by
Apple. We need to use the -bundle_loader option to point out beam.smp
when building all drivers and NIF libraries.
https://bugs.erlang.org/browse/ERL-251
https://bugs.erlang.org/browse/ERL-439
|
|
Tuple calls is the ability to invoke a function on a tuple
as first argument:
1> Var = dict:new().
{dict,0,16,16,8,80,48,
{[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]},
{{[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]}}}
2> Var:size().
0
This behaviour is considered by most to be undesired and confusing,
especially when it comes to errors. For example, imagine you invoke
"Mod:new()" where a Mod is an atom and you accidentally pass {ok, dict}.
It raises:
{undef,[{ok,new,[{ok,dict}],[]},...]}
As it attempts to invoke ok:new/1, which is really hard to debug
as there is no call to new/1 on the source code.
Furthemore, this behaviour is implemented at the VM level, which
imposes such semantics on all languages running on BEAM.
Since we cannot remove the behaviour above, this proposal makes the
behaviour opt-in with a compiler flag:
-compile(tuple_calls).
This means that, if a codebase relies on this functionality, they
can keep compatibility by adding configuring their build tool to
always use the 'tuple_calls' flag or explicitly on each module.
As long as the compile attribute above is listed, the codebase will
work on old and new Erlang versions alike. The only downside of the
current implementation is that modules compiled on OTP 20 that rely
on 'tuple_calls' will have to be recompiled to run with 'tuple_calls'
on OTP 21+.
|
|
EnumTypeName contains a hypen like fore example Cause-Misc. This caused
syntax errors when compiling the generated Erlang code.
|
|
* maint:
stdlib: Accept all nowarn_deprecated_function options
|
|
* hasse/stdlib/deprecated_warning/OTP-14378:
stdlib: Accept all nowarn_deprecated_function options
|
|
* maint:
Updated OTP version
Update release notes
Update version numbers
erts: Fix bug in quick alloc
Fix old length usage in string
stdlib: Fix bug in proc_lib
Support arbitrary crash report in proc_lib.
|
|
* maint-20:
Updated OTP version
Update release notes
Update version numbers
erts: Fix bug in quick alloc
Fix old length usage in string
stdlib: Fix bug in proc_lib
Support arbitrary crash report in proc_lib.
|
|
This commit removes the old code branches that attempted
to translate Erlang Abstract Format to Core and relies
exclusively on the new debug_info chunk.
This is a follow up to #1367.
|
|
|