Age | Commit message (Collapse) | Author |
|
Don't build a record using the tuple syntax. It is bad in case
we would want to change the record definition later.
|
|
|
|
|
|
* bjorn/compiler/beam_dead/OTP-12393:
Update the comments that explain what beam_dead does
Improve optimization of bs_start_match2
Extend count_bits_matched/3 to handle the UTF instructions
misc_SUITE: Cover the exception handling code in beam_dead
Generalize optimizations using shortcut_rel_op/4
beam_dead: Optimize branches from relational conditionals
|
|
|
|
|
|
While we are, clean up the comments and rearrange the code for
clarity. Also add a test to cover the last uncovered line in
beam_dead.erl.
|
|
Amend the test suite to call beam_dead as originally intended (and not
beam_block), and modify the input data so that the exception will
occur within the try ... catch block in function/2.
|
|
Better optimizations with less code.
|
|
The BEAM compiler translates code such as:
is_hex_digit(D) when $0 =< D, D =< $9 -> true;
is_hex_digit(D) when $a =< D, D =< $z -> true;
is_hex_digit(D) when $A =< D, D =< $Z -> true;
is_hex_digit(_) -> false.
to something like this:
L0: test is_ge L1 {x,0} 48
test is_ge L1 57 {x,0}
move true {x,0}
return.
L1: test is_ge L2 {x,0} 97
test is_ge L2 122 {x,0}
move true {x,0}
return
L2: test is_ge L3 {x,0} 65
test is_ge L3 90 {x,0}
move true {x,0}
return
L3: move false {x,0}
return
We can see that tests will be repeated even if they cannot possibly
succeed. For instance, if we pass in {x,0} equal to 32, the first
test that {x,0} is greater than or equal to 48 at L0 will fail.
The control will transfer to L1, where it will be tested whether
{x,0} is greater than 97. That test will fail and control
will pass to L2, where again the test will fail.
The compiler can do better by short-circuiting repeating tests:
L0: test is_ge L3 {x,0} 48
test is_ge L1 57 {x,0}
move true {x,0}
return.
L1: test is_ge L2 {x,0} 97
test is_ge L3 122 {x,0}
move true {x,0}
return
L2: test is_ge L3 {x,0} 65
test is_ge L3 90 {x,0}
move true {x,0}
return
L3: move false {x,0}
return
|
|
|
|
* tombenner/doc_fixes:
Fix grammar and formatting issues
Fix typo ("to use to use")
Add a comma after "For example" when appropriate
Use colons before <code> when appropriate
Move periods inside parenthetical sentences
Add an apostrophe to contractions of "let us"
|
|
* derek121/mnesia-doc-fixes:
Fix grammar
|
|
* lemenkov/use_os_getenv_2:
fix missing include
Start using os:getenv/2 fun
Introduce os:getenv/2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* mikpe/fix-eacces-spelling:
fix eacces spelling
|
|
* arekinath/aes-evp/OTP-12380:
crypto: use EVP for AES-CBC
|
|
|
|
* lukas/erts/crashdump_improvements/OTP-12377:
erts: Make main thread safe from pipe closed event
erts: Improve crash dumps
erts: Rename sys_sigset to sys_signal
erts: Introduce thread suspend functions
erts: Remove usage of QUANTIFY signal
erts: Add support for thread names
ets: Increase data available in crash dumps and ets:info
erts: Start compilation of beam_emu earlier
|
|
|
|
This commit improves crash dumps in several ways:
* Suspends schedulers to get a current snapshot
* Dumps information about scheduler
* Dumps stack trace of current running process
(including Garbing processes)
|
|
Also removed old legacy fallback that is no longer used
|
|
These functions allow any thread to suspend any other thread
immediately and then resume all threads. This is useful when
doing a crash dump in order to get a more accurate picture
of what state the system is in.
|
|
|
|
|
|
OTP-12376
|
|
|
|
* hans/eldap/bad_return_close/OTP-12349:
eldap: Remove trailing white space.
eldap: Test cases for a few return values (open, close)
eldap: updated eldap:close in tests
eldap: Makes close/1 return as documented.
|
|
|
|
* hans/eldap/test_improvents/OTP-12355:
eldap: Corrects SSL over IPv6 test.
eldap: Removes eldap_misc_SUITE that is now included in eldap_basic_SUITE.
eldap: Add encode/decode tests.
eldap: Merge eldap_connections_SUITE into eldab_basic_SUITE
eldap: Adds ssl to connections test suite
eldap: Updates basic test suite - Splits one large testcase into smaller ones. - Makes tests independent - Adds some tests.
|
|
|
|
* haguenau/fix-endianness-speling:
Replaced "Endianess" with "Endianness" everywhere
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- Splits one large testcase into smaller ones.
- Makes tests independent
- Adds some tests.
|
|
|