Age | Commit message (Collapse) | Author |
|
* maint:
Fix documentation for erlang:is_map_key/2
|
|
Fix documentation for erlang:is_map_key/2
|
|
* maint:
Correct dump_log_write_threshold default value
|
|
Correct documentation on dump_log_write_threshold default value
|
|
* maint:
Handle clicking links more than once in Observer's "Expanded term"
|
|
* upstream/pr/2201:
Handle clicking links more than once in Observer's "Expanded term"
OTP-15980
|
|
* maint:
mnesia: Bump protocol version
mnesia: Introduce sync_asym_trans protocol
observer: Fixes for html viewers
observer: Support darkmode gui
|
|
* dgud/observer/fix-darkmode/OTP-15916:
observer: Fixes for html viewers
observer: Support darkmode gui
|
|
* dgud/mnesia/sticky-bug/ERL-768/OTP-15979:
mnesia: Bump protocol version
mnesia: Introduce sync_asym_trans protocol
|
|
* maint:
mnesia: Fix deadlock caused by add_table_copy
|
|
* dgud/mnesia/add_table_copy_deadlock/ERL-872/OTP-15933:
mnesia: Fix deadlock caused by add_table_copy
|
|
|
|
* maint:
Update primary bootstrap
|
|
|
|
* maint:
erts: Escape atoms in erlang:fun_to_list/1
|
|
* john/erts/fun_to_list-escaping/OTP-15975/ERL-1009:
erts: Escape atoms in erlang:fun_to_list/1
|
|
* john/compiler/fix-bs_skip-succeeded-oddity:
compiler: Fix awkward match context substitution
beam_ssa_lint: Use #b_var{} instead of variable names
|
|
* john/compiler/remove-dead-code-beam_ssa_type:
beam_ssa_type: Remove unreachable code
|
|
Expand and squeeze literal integers/utf8 bin segments
|
|
This worked out by accident since codegen never actually looks at
the arguments for 'succeeded'; it just assumes that they reference
the preceding instruction.
|
|
|
|
* maint:
Discard continuous delivery history
|
|
Repository grows too large.
|
|
* maint:
Update java doc
Print last lines of configure log
Force xenial builds in travis
|
|
Replace deprecated <tt> with <code>
|
|
So we can see in travis which applications or options that is disabled,
(and/or other config problems)
|
|
So we know that libwxgtk3.0 exists.
|
|
Now that impossible branches are skipped altogether, it's no
longer possible to encounter get_tuple_element with a 'none'
argument.
|
|
|
|
* lukas/os_mon/sscanf_Lu/OTP-15974:
os_mon: Fix sscanf to use %llu instead of gnu specific %Lu
|
|
|
|
* john/compiler/validator-improve-try_case-handling:
beam_validator: Disallow jumps to try_case handlers
|
|
* john/compiler/explicit-call-exceptions:
compiler: Simplify set_tuple_element optimization
compiler: Make 'succeeded' optimization more general
compiler: Simplify call type optimization
compiler: All calls may throw, so they all need success checks
erts_debug: Turn off unsafe optimizations in test case
|
|
For instance musl does not recognize the %L modifier.
|
|
* lukas/otp/add-dialyzer-make-target/OTP-15915:
otp: Add make dialyzer and make xmllint documentation
Add 'make dialyzer' target to top and apps
|
|
|
|
|
|
Fix syntax error in logger_disk_log_h.xml
|
|
|
|
By keeping track of the tag types in the exception handler list,
we can reject direct jumps to try_case handlers such as those
provoked by OTP-15945.
|
|
By removing 'succeeded' tests on setelement/3 when we know it
succeeds, all sequences that are eligible for set_tuple_element
will be nicely bundled in the same block, so we won't need to
bother with special try/catch handling.
The new version is slightly worse in the case where the first
setelement/3 is used to infer the tuple size as that call will
remain in its own block, but in practice this only occurs when
the user manually spells them out and I couldn't find any
examples of this in OTP or Elixir. It's equivalent for record
updates.
|
|
|
|
|
|
Only adding them when in try/catch worked, but made the exceptions
implicit and forced all later optimization passes to keep them in
mind. Making them explicit lets us simplify later passes.
|
|
The test case alters the return value of a function that the
compiler expects will never return, resulting in undefined
behavior.
Note that the debugger (which may change variables/return values)
is unaffected since the affected module is purged and "replaced"
with an interpreted variant.
|
|
|
|
erts: Do not use named no_cpuid label in asm
|
|
* maint:
Ensure that the stack slots are initialized when matching maps
|
|
* bjorn/compiler/fix-stack-init/ERL-1017/OTP-15968:
Ensure that the stack slots are initialized when matching maps
|
|
When matching a map, the compiler could fail to generate code that
would initialize all stack slots (Y registers) properly. Here is a
general outline of code that *could* cause this problem:
foo(Key, Map) ->
Res = case Map of
#{Key := Val} ->
%% Do something with Val here.
.
.
.
#{} ->
[]
end,
%% The stack slot for Val might not have been initialized
%% here if the key was not present in the map.
.
.
.
%% Use Res.
.
.
.
The code generator would wrongly assume that the map matching would
always initialize the stack slot, and if nothing else happened to
force that stack slot to be initialized, it would remain
uninitialized, which would likely crash the runtime system at the next
garbage collection.
`beam_validator` is supposed to find these kind of problems, but a bug
in `beam_validator` prevented it from detecting this problem.
https://bugs.erlang.org/browse/ERL-1017
|