aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2015-01-12Add a new test case to test values in ValueTest.asn1Björn Gustavsson
We only tested that ValueTest.asn1 would compile, no that the values were correct.
2015-01-12Use the #objectclass{} record instead of a tupleBjörn Gustavsson
Don't build a record using the tuple syntax. It is bad in case we would want to change the record definition later.
2015-01-12Correct typo in an error messageBjörn Gustavsson
2015-01-12compiler: Rename util function to adhere to name policyBjörn-Egil Dahlberg
* beam_utils:joineven/1 -> beam_utils:join_even/1 * beam_utils:split_even/1 -> beam_utils:split_even/1
2015-01-12compiler: Remove get_map_elements label check in blocksBjörn-Egil Dahlberg
The get_map_elements instruction has been removed from all blocks by the mandatory beam_split pass and thus only needs handling by the outer loop.
2015-01-12Merge branch 'RoadRunnr/crypto-ecc-gen-key'Bruce Yinhe
OTP-12394 * RoadRunnr/crypto-ecc-gen-key: [crypto] enhance generate_key for ECC keys
2015-01-12Update primary bootstrapBjörn Gustavsson
2015-01-12Merge branch 'bjorn/compiler/beam_dead/OTP-12393'Björn Gustavsson
* 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
2015-01-12Update the comments that explain what beam_dead doesBjörn Gustavsson
2015-01-11hipe: fix ARM/Thumb interworkingMikael Pettersson
HiPE on ARM is currently severely broken if the rest of the VM is compiled to run in Thumb mode -- calling native code quickly ends up executing code in the wrong mode and crashing the VM. This is a problem on e.g. Ubuntu which configures its system GCC to generate Thumb by default. It can also be triggered by overriding CC or CFLAGS when compiling the VM. There were three issues that caused the breakage: 1. Assembly-coded functions in hipe_arm_glue.S weren't explicitly tagged as functions, preventing the linker from generating the correct mode-switching call instructions for calls from C to these functions. Fixed by tagging those symbols as functions. 2. A few BIF wrappers were so simple that they performed tailcalls to the C BIFs. This fails to switch mode when C is in Thumb. Fixed by performing ordinary recursive calls when C is in Thumb. 3. The assembly-coded source files weren't explicitly tagged as ARM. Tested with the HiPE testsuite on ARMv7, with the VM built as ARM and as Thumb. Also manually inspected the object code for the beam executable and checked that call sites from C to HiPE's ARM runtime code and vice versa used the correct mode-switching instructions.
2015-01-11hipe: rtl: fix phi_remove_pred/2 FP movesMikael Pettersson
hipe_rtl:phi_remove_pred/2 can produce a #move{} instruction with floating-point temporaries as operands, even though such moves MUST be #fmove{} instructions. Added type checks to the #move{} and #fmove{} constructor and setter functions to ensure that similar mishaps cannot happen again.
2015-01-11hipe: backends: correct #fconv{} translationMikael Pettersson
RTL can produce an #fconv{} instruction with an immediate operand, but the backends unconditionally access the operand as a temporary. This results in broken representation in the backends and eventually they crash.
2015-01-09compiler: Remove unnecassary guard for get_map_elementsBjörn-Egil Dahlberg
No need to check for fail label zero for get_map_elements in beam_split. get_map_elements is always used in pattern matching and never in a body.
2015-01-09compiler: Remove dead code in beam_flattenBjörn-Egil Dahlberg
The normalization in beam_flatten can never be reached for get_map_elements since it is always handled in the mandatory beam_split pass.
2015-01-09compiler: Increase Maps code coverageBjörn-Egil Dahlberg
This commit covers 'split_block_label_used' in the beam_bool pass for Maps.
2015-01-09Revert "Start using os:getenv/2 fun" in test_serverBjörn-Egil Dahlberg
This reverts changes in test_server from commit bb7fb3c31d1939ab39fb14322d11a59bc34d8f42.
2015-01-09Improve optimization of bs_start_match2Björn Gustavsson
2015-01-09Extend count_bits_matched/3 to handle the UTF instructionsBjörn Gustavsson
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.
2015-01-09misc_SUITE: Cover the exception handling code in beam_deadBjörn Gustavsson
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.
2015-01-09Generalize optimizations using shortcut_rel_op/4Björn Gustavsson
Better optimizations with less code.
2015-01-09beam_dead: Optimize branches from relational conditionalsBjörn Gustavsson
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
2015-01-09aligned implementation following last specsandreaP
2015-01-09finally fixed docsandreaP
2015-01-09fixed incorrect tagandreaP
2015-01-09proposal of documentationandreaP
2015-01-09fixes and testsandreaP
2015-01-09add aes ecb to crypto libraryandreaP
2015-01-08Fix "irregardless" -> "regardless"Loïc Hoguin
2015-01-07Merge branch 'maint'Marcus Arendt
2015-01-07Merge branch 'tombenner/doc_fixes' into maintMarcus Arendt
* 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"
2015-01-07Merge branch 'derek121/mnesia-doc-fixes' into maintMarcus Arendt
* derek121/mnesia-doc-fixes: Fix grammar
2015-01-02Properly parse URI fragmentsAnthony Ramine
This fixes a bug in httpc where redirection URIs could lead to bad requests if they contained fragments.
2014-12-29Merge branch 'lemenkov/use_os_getenv_2'Marcus Arendt
* lemenkov/use_os_getenv_2: fix missing include Start using os:getenv/2 fun Introduce os:getenv/2
2014-12-29fix bad format of error in epp_dodger:parse_file/3Richard Carlsson
2014-12-28Fix grammar and formatting issuesTom Benner
2014-12-28Fix typo ("to use to use")Tom Benner
2014-12-28Add a comma after "For example" when appropriateTom Benner
2014-12-28Use colons before <code> when appropriateTom Benner
2014-12-28Move periods inside parenthetical sentencesTom Benner
2014-12-27Add an apostrophe to contractions of "let us"Tom Benner
2014-12-26Fix grammarDerek Brown
2014-12-22Make Mnesia DCD dump behaviour available via APIUlf Wiger
If a DCD dump is desired on-demand, use the function mnesia_controller:snapshot_dcd(Tables). Tables must be a list of tables that have a local disc_copy, otherwise an error will be returned. Once the operation actually executes, any table that doesn't have a local disc_copy is ignored. Specifically, the dump_log worker record has been changed to allow an arity-0 fun instead of the default log dump. This fun will be executed as if it were a normal log dump, and must return 'dumped'. This could also be used to e.g. insert a backup operation between log dumps.
2014-12-22Make Mnesia DCD dump behaviour available via configurationUlf Wiger
Setting the new Mnesia parameter 'dump_disc_copies_at_startup' to 'false' will completely disable the DCD dumping while tables are being loaded. If it is set to 'true' (the default), the same test will now be performed as for normal dumps, i.e., using the 'dc_dump_limit' parameter. Previously, the test performed at load time was different from the one used at runtime, and caused a lot of unnecessary dumping which slowed down the startup.
2014-12-22[ct_cover] Fix paths of incl_dirs in cover specRafal Studnicki
It seems like the commit 5a3c4668908254ee930c8db2e5cf9741945f9b2b also broke the incl_dirs option and friends when given as relative paths. When a cover spec contains a relative path it is looked-up in the directory with the test results, not in the .cover file directory.
2014-12-22Remove support for Mnemosyne rulesRichard Carlsson
2014-12-22Remove support for mnemosyne-style record field accessRichard Carlsson
(The support in erl_parse got removed when 'packages' were removed, since the dot notation was overlaid on the existing mnemosyne access syntax.)
2014-12-22Merge branch 'maint'Bruce Yinhe
2014-12-22Merge branch 'mikpe/fix-eacces-spelling' into maintBruce Yinhe
* mikpe/fix-eacces-spelling: fix eacces spelling
2014-12-22Merge branch 'arekinath/aes-evp/OTP-12380'Marcus Arendt
* arekinath/aes-evp/OTP-12380: crypto: use EVP for AES-CBC
2014-12-19debugger: Fix debugger save options on macDan Gudmundsson
wxFileDialog:getPaths(FD) always return the empty list on mac when using file dialog.