aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2016-02-02Better list_to_integerDmytro Lytovchenko
Now tries to use whole width of signed long (Sint) and this halves amount of multiplications needed to parse long integers. New code is 2-3 times faster than the old code for large inputs (tens and hundreds of digits), behavior should not change for small inputs. Test ran 10k times with GC forced between attempts. Was (R17): 720 el base 10: 0.14682 sec; base 16: 0.192722 sec; base 36: 0.337118 sec. 2800 el base 10: 1.794133 sec; base 16: 2.735106 sec; base 36: 4.761108 sec. 6500 el base 10: 9.316434 sec; base 16: 14.109469 sec; base 36: 25.319263 sec. Now (R19 Dev) 720 el base 10: 0.10265 sec; base 16: 0.10851 sec; base 36: 0.160478 sec. 2800 el base 10: 1.002793 sec; base 16: 1.360649 sec; base 36: 2.174309 sec. 6500 el base 10: 4.722197 sec; base 16: 6.60522 sec; base 36: 10.552795 sec. Added test for corner cases and sign bit corruption. Replaced macros with inline and hid it inside C file to not pollute global namespace Old bug in #define LG2_LOOKUP: Replaced with inline function and table recalculated for all bases 2 to 36 (was 2 to 64)
2016-01-25Moved do_list_to_integer from bif.c to big.cDmytro Lytovchenko
2016-01-22Merge branch 'maint'Siri Hansen
2016-01-22Merge branch 'siri/document-path-flag/OTP-13060' into maintSiri Hansen
* siri/document-path-flag/OTP-13060: Add documentation of '-path' flag to 'erl'
2016-01-22Merge branch 'maint'Siri Hansen
2016-01-22Merge branch 'siri/cover/nofile/OTP-13200' into maintSiri Hansen
* siri/cover/nofile/OTP-13200: [cover] Don't crash when compiling beam without 'file' attribute [cover] Simplify module cc in cover test to avoid confusion
2016-01-22Merge branch 'maint'Rickard Green
* maint: Fix HL timer hard debug implementation Fix stack alignment problem in ethread test on arm Skip time_SUITE:timestamp on timewarp test
2016-01-22Merge branch 'rickard/test-fix' into maintRickard Green
* rickard/test-fix: Fix HL timer hard debug implementation Fix stack alignment problem in ethread test on arm Skip time_SUITE:timestamp on timewarp test
2016-01-22Merge branch 'maint'Björn Gustavsson
* maint: PER: Correct compilation of named INTEGERs
2016-01-22Merge branch 'bjorn/asn1/fix-per-crash/OTP-13257' into maintBjörn Gustavsson
* bjorn/asn1/fix-per-crash/OTP-13257: PER: Correct compilation of named INTEGERs
2016-01-21PER: Correct compilation of named INTEGERsBjörn Gustavsson
When a constrained INTEGER has more than 16536 values and named values, the compiler would crash when compiling to the PER format. Example: Longitude ::= INTEGER { oneMicrodegreeEast(10), oneMicrodegreeWest(-10), unavailable(1800000001) } (-1799999999..1800000001) Reported-by: Ingars
2016-01-21Merge branch 'bjorn/erts/clean-up-preloaded/OTP-13112'Björn Gustavsson
* bjorn/erts/clean-up-preloaded/OTP-13112: Update preloaded modules erl_prim_loader: Rename release_archives/0 erl_prim_loader: Correct timeout handling for efile erl_prim_loader: Correct purging of the archive cache erl_prim_loader: Remove unused 'cache' field
2016-01-21Update preloaded modulesBjörn Gustavsson
2016-01-21Merge branch 'maint'Ingela Anderton Andin
2016-01-21Merge branch 'ia/ssl/version_support_check' into maintIngela Anderton Andin
* ia/ssl/version_support_check: ssl: In interop tests always check if SSL/TLS version is supported by OpenSSL
2016-01-21ssl: In interop tests always check if SSL/TLS version is supported by OpenSSLIngela Anderton Andin
As sslv3 is being faced out we need to test for old version support as well as newer versions.
2016-01-20Merge branch 'sverk/safe-purging/OTP-13122'Sverker Eriksson
2016-01-20erts: Update docs for erlang:purge_module/1Sverker Eriksson
2016-01-20Merge branch 'hb/stdlib/refine_abstr_types/OTP-10292'Hans Bolinder
* hb/stdlib/refine_abstr_types/OTP-10292: tools: Fix a Dialyzer warning common_test: Fix a Dialyzer warning
2016-01-20tools: Fix a Dialyzer warningHans Bolinder
2016-01-20common_test: Fix a Dialyzer warningHans Bolinder
2016-01-20Merge branch 'hans/ssh/optimize/OTP-13175'Hans Nilsson
2016-01-20Merge branch 'hans/ssh/optimize/OTP-13131'Hans Nilsson
2016-01-20Merge branch 'hb/stdlib/refine_abstr_types/OTP-10292'Hans Bolinder
* hb/stdlib/refine_abstr_types/OTP-10292: dialyzer: Correct a test case
2016-01-20dialyzer: Correct a test caseHans Bolinder
2016-01-20erl_prim_loader: Rename release_archives/0Björn Gustavsson
Rename release_archives/0 to purge_archive_cache/0 to make it clearer what it does and what it doesn't do. Also add a comment about its intended purpose. Note that release_archives/0 is not documented and is part of the experimental archive feature. Furthermore, the only uses I could find were in the test suite. I did not find any uses in the external applications relx and rebar3 applications that are known to use archives. Therefore, I think that the increased clarity is worth the small risk of breaking code.
2016-01-20erl_prim_loader: Correct timeout handling for efileBjörn Gustavsson
The timeout routine for efile was never called. While at it, eliminate the n_timeouts field and simplify the logic.
2016-01-20erl_prim_loader: Correct purging of the archive cacheBjörn Gustavsson
prim_do_release_archives/3 can't make up its mind whether the primary archive should be released or not. The key in the process dictionary is kept, while #prim_state.primary_archive is cleared. It seems that intent was the primary archive should be preserved, because the function was intended to be called by a timeout routine every sixth minute (it is not because of a bug in setting up the timeout). Therefore, rewrite the code to preserve the primary archive and simplify it while at it. Also, rename prim_release_archives/1 to prim_purge_cache/0 to make it clearer what it is doing.
2016-01-20erl_prim_loader: Remove unused 'cache' fieldBjörn Gustavsson
The #prim_state.cache' field is unused. The actual cache is kept in the process dictionary.
2016-01-20Merge branch 'hb/stdlib/refine_abstr_types/OTP-10292'Hans Bolinder
* hb/stdlib/refine_abstr_types/OTP-10292: erts: Improve readability of The Abstract Format erts: Improve the documentation of the abstract format stdlib: Update erl_parse(3) stdlib: Refine the types of the abstract format compiler: Improve type and specs hipe: Improve types dialyzer: Improve a type doc: Update a refman example syntax_tools: Correct a type stdlib: Correct a type
2016-01-20Merge branch 'maint'Rickard Green
* maint: Fix dirty scheduler check in handle_aux_work
2016-01-20Merge branch 'vinoski/check-awdp-esdp' into maintRickard Green
* vinoski/check-awdp-esdp: Fix dirty scheduler check in handle_aux_work
2016-01-20erts: Improve readability of The Abstract FormatHans Bolinder
More verbose, but hopefully more readable than before.
2016-01-20erts: Improve the documentation of the abstract formatHans Bolinder
2016-01-20stdlib: Update erl_parse(3)Hans Bolinder
Calls to map_anno(), fold_anno(), and mapfold_anno() with lists of erl_parse trees have been replaced. Those functions accept lists of erl_parse trees, but it was not the intention when the functions were introduced, and it is not documented.
2016-01-20stdlib: Refine the types of the abstract formatHans Bolinder
2016-01-20compiler: Improve type and specsHans Bolinder
2016-01-20hipe: Improve typesHans Bolinder
2016-01-20dialyzer: Improve a typeHans Bolinder
2016-01-20doc: Update a refman exampleHans Bolinder
2016-01-20syntax_tools: Correct a typeHans Bolinder
2016-01-20stdlib: Correct a typeHans Bolinder
2016-01-19Merge branch 'maint'Sverker Eriksson
This is a dummy merge as the AES ECB multiblock bug vanished in EVP refactoring.
2016-01-19Merge branch 'sverk/crypto-aec-ecb-multiblock' into maintSverker Eriksson
OTP-13249 * sverk/crypto-aec-ecb-multiblock: crypto: Fix bug for multiple blocks for AES-ECB
2016-01-19Merge branch 'maint'Sverker Eriksson
2016-01-19Merge branch 'sverk/armata-memset-bug' into maintSverker Eriksson
* sverk/armata-memset-bug: erts: Workaround memset bug in test case
2016-01-19Merge branch 'sverk/safe-purging/OTP-13122'Sverker Eriksson
* sverk/safe-purging/OTP-13122: erts: Ignore unexpected messages to erts_code_purger erts: Optimize erlang:check_process_code erts: Refactor check_process_code/3 erts: Make copy_literals more fail safe erts: Move copy_literals/2 from erlang to erts_internal erts: Make erlang:purge_module/1 safe erts: Refactor code:purge/1 and code:soft_purge/1 erts: Introduce erts_code_purger
2016-01-19erts: Ignore unexpected messages to erts_code_purgerSverker Eriksson
2016-01-18Fix dirty scheduler check in handle_aux_workSteve Vinoski
2016-01-18ssh: Adjusted default packet and window sizesHans Nilsson