Age | Commit message (Collapse) | Author |
|
This makes it clear that Apache 2.0 applies, without dropping the old LGPL
licensing, and makes all the EUnit file headers look the same as upstream.
|
|
|
|
again.
|
|
|
|
* maint:
Update etp-commands for dirty schedulers
Fix scheduling of system tasks on processes executing dirty
Fix call time tracing with dirty schedulers
Fix send of exit signal to process executing dirty
Fix dirty scheduler process priority
Fix alloc-util hard-debug
Silence debug warning when no beam jump table is used with dirty schedulers
Fix check_process_code() when NifExport is in use
Fix GC when NifExport is in use
Fix saving of original arguments when rescheduling via NifExport
Conflicts:
erts/emulator/beam/beam_bif_load.c
erts/emulator/beam/erl_nif.c
|
|
OTP-14051
* rickard/dirty-scheduling-fixes:
Update etp-commands for dirty schedulers
Fix scheduling of system tasks on processes executing dirty
Fix call time tracing with dirty schedulers
Fix send of exit signal to process executing dirty
Fix dirty scheduler process priority
Fix alloc-util hard-debug
Silence debug warning when no beam jump table is used with dirty schedulers
Conflicts:
erts/etc/unix/etp-commands.in
|
|
* rickard/nif-scheduling-fixes:
Fix check_process_code() when NifExport is in use - OTP-14048
Fix GC when NifExport is in use - OTP-14049
Fix saving of original arguments when rescheduling via NifExport - OTP-14050
|
|
|
|
* maint:
Update primary bootstrap
document {yield/nb_yield}() limitation
Suppress warnings from v3_kernel when inlining is turned on
|
|
|
|
* bjorn/compiler/fix-unwanted-warning/ERL-301/OTP-14040:
Suppress warnings from v3_kernel when inlining is turned on
|
|
* jimdigriz/kernel/rpc-doc/ERL-302/PR-1252:
document {yield/nb_yield}() limitation
|
|
* maint:
dialyzer: Substitute 'opacity' for 'opaqueness'
dialyzer: Improve a warning message
dialyzer: Improve a warning message
dialyzer: Correct a warnings message
|
|
* hasse/dialyzer/improve_messages/OTP-11403:
dialyzer: Substitute 'opacity' for 'opaqueness'
dialyzer: Improve a warning message
dialyzer: Improve a warning message
dialyzer: Correct a warnings message
|
|
* maint:
stdlib: Correct types of the abstract format
|
|
* hasse/stdlib/correct_types:
stdlib: Correct types of the abstract format
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The types in erl_parse.yrl are more in harmony with the description in
The Abstract Format (in ERTS User's Guide).
|
|
|
|
|
|
|
|
|
|
* sverker/erts/crash-dump-limit:
erts: Add env variable ERL_CRASH_DUMP_BYTES
erts: Add ErtsStrToSint64
erts: Refactor crash dumping with cbprintf
erts: Add cbprintf for Callback Printing
erts: Remove unused erl_crash_dump()
|
|
to limit crash dump size
|
|
|
|
* margnus1/hipe/refactor-rtl/PR-1243:
hipe_x86: Fix encoding of test instr w/ neg imm
hipe_tagscheme: Simplify test_two_fixnums with imm
hipe_icode: Always const-propagate if&call args
hipe_tagscheme: x86 lea+test for mask_and_compare
hipe_tagscheme: Improve fixnum_addsub with imm
hipe: Make realloc_binary fast case true branch
hipe_x86_postpass: Negate conditions in goto elim
hipe_tagscheme: Improve fixnum add on x86
hipe_rtl_to_x86: Use LEA only for immediate adds
hipe_x86: LeaToAdd peephole rule
hipe_sparc: move coalescing
hipe_ppc: better rlwinm pp
hipe_ppc: move coalescing
hipe_rtl: drop alub dest when unused
hipe_rtl: unify branch and alub
hipe_x86: Fix&activate ElimCmp0 peephole rule
hipe_{x86,amd64}: Finish test instr implementation
|
|
Suggested by Kostis.
|
|
Messages regarding guards with orelse/andalso could look
like "Clause guard cannot succeed. The variable A was matched
against the type any()". Now they look like as if or/and is
used: "Guard test is_integer(A::atom()) can never succeed".
|
|
Messages like "Invalid type specification for function
para3:exp_adt/0. The success typing is () -> 3" now look like
"The specification for para3:exp_adt/0 has an opaque subtype
para3_adt:exp1(para3_adt:exp2()) which is violated by the success
typing () -> 3".
The old message did not give any clue as to what invalidated the
contract, namely the opaque subtype.
|
|
Messages like "The attempt to match a term of type rec_api:f()
against the variable _ breaks the opaqueness of rec_adt:f()" now
look like "The attempt to match a term of type rec_adt:f()
against the record field 'f' with type rec_api:f() breaks the
opaqueness of the term".
|
|
|
|
* mm/stdlib/ord-docs/PR-1242:
Document the ordering used in ordsets and orddicts
|
|
Right now the exact order of elements is not specified, yet many
programs rely on the ordering being the obvious one - erlang term order.
It is only beneficial to make this an explicit part of the
documentation.
|
|
* maint:
Travis: Reduce memory consumption for dialyzer
|
|
* bjorn/travis-dialyzer:
Travis: Reduce memory consumption for dialyzer
|
|
9e06884c3a7db started to run Dialyzer in Travis.
After that, Travis has crashed several times because of the memory
limit of 2Gb has been exceeded. Try to fix that by analyzing only
three or four applications at a time.
|
|
* bjorn/compiler/guards/PR-1232/OTP-14042:
compile_SUITE: Make sure that guards are optimized
beam_dead: Remove redundant 'or' instruction
beam_dead: Remove redundant 'bif' instructions
Add test using LFE-generated Core Erlang modules
Remove beam_bool
v3_kernel: Generate optimized code for guards
sys_core_fold: Remove unnecessary calls to opt_bool_case/1
record_SUITE: Strengthen test of record access in guards
|
|
Guards should use the more efficient 'test' instructions, not 'bif'
instructions. Add a test to make sure that the optimizations don't
degrade.
We do have to keep an exception list for functions where we can't
replace all 'bif' calls with 'test' instructions. We try to keep
that list a short as practically possible.
|
|
In practice, this optimization will only apply to contrived guards
that are almost never used in real applications. The only reason we
add this optimization is to help approach the goal of zero tolerance
for 'bif' instructions instead of 'test' instructions in guards.
|
|
A 'bif' or 'gc_bif' instruction is redundant if it has the same
failure label as a 'jump' instruction immediately following it.
There is no need to test for liveness of the destination register,
because the code at the failure label cannot safely assume that
the destination register is initialized. See the comments in the
code for further details.
In practice, this optimization will only apply to contrived guards
that are almost never used in real applications. The only reason we
add this optimization is to help approach the goal of zero tolerance
for 'bif' instructions instead of 'test' instructions in guards.
|
|
Ensure that correct (not necessarily optimal) code is generated for
Core Erlang code not originating from v3_core.
|