aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam
AgeCommit message (Collapse)Author
2013-08-15Workaround TR gnu/181328, GCC 4.2.1 20070831 on FreeBSD 9.1Patrik Nyblom
The bug manifests so that initialization of an automatic variable happens after a pointer to the variable is dereferenced, causing build_exec_return to take the wrong branch by default. The bug is verified to happen even outside the VM and is reported to FreeBSD as trouble ID gnu/181328. The workaround is a slight code rewrite which is optimized differently. Also removed two warnings about dereferencing type-punned pointers, which did not affect the bug.
2013-08-09Clarify relation between erts_iolist_{size|to_buf}Patrik Nyblom
Just some clarifying comments to future progremmers to keep the relation between error returns from the two functions.
2013-08-09Add match_limit and match_limit_recursion optionsPatrik Nyblom
Added to re:run and sets the corresponding fields in 'extra' struct for the PCRE match engine. The result can be viewed by also setting 'report_errors' when matching. Some housekeeping was also done... The offset option also did not properly check for offset's >= 0. Change nomatch to BADARG when pre-compiled mp() is faked: By constructing a 5-tuple with faked content but the right data types, you could do a re:run which returned nomatch when in fact the mp() was bad. The cheapest solution is to check the return from pcre_exec better. Remove unreachable code in erts_bif_re.c: Replaced tests for things that logically simply cannot happen with ASSERT.
2013-08-09Add return_errors option to re:run/3Patrik Nyblom
2013-08-09Add new options to Erlang re interface and mend dupnamesPatrik Nyblom
Add notempty_atstart, no_start_optimize, ucp and never_utf options from new PCRE version. Use the new notempty_atstart in global matching. Add inspect/2 function Correctly handle dupnames when capturing a name, as in Perl, get the leftmost matching occurence. Also added all_names, to get all the names in the pattern in alphabetical (name) order. To be able to use this in global matching, an inspect function that can dig out a namelist was added.
2013-08-06Handle CRLF correctly in global regexpPatrik Nyblom
2013-08-06Add erts_prefix to pcre_library and update erl_bif_rePatrik Nyblom
2013-07-12Merge branch 'maint'Rickard Green
* maint: Fix variable ‘rp_had_locks’ set but not used warning Fix ‘ethr_native_rwlock_destroy’ defined but not used warning Fix 'no previous prototype' warning for dtrace functions Conditionally skip process_SUITE tests that consume large amount of memory
2013-07-12Merge branch 'rickard/warning_fixes' into maintRickard Green
* rickard/warning_fixes: Fix variable ‘rp_had_locks’ set but not used warning Fix ‘ethr_native_rwlock_destroy’ defined but not used warning Fix 'no previous prototype' warning for dtrace functions
2013-07-11Fix variable ‘rp_had_locks’ set but not used warningRickard Green
2013-07-11Fix 'no previous prototype' warning for dtrace functionsRickard Green
2013-07-11Merge branch 'maint'Fredrik Gustafsson
2013-07-11Merge branch 'jw/fix-float-middle-endian/OTP-11201' into maintFredrik Gustafsson
* jw/fix-float-middle-endian/OTP-11201: Fix binary construction on floating point middle-endian machines Fix binary matching on floating point middle-endian machines Fix erlang:phash2() on floating point middle-endian machines Fix external term format BIFs on floating point middle-endian machines
2013-07-10Merge branch 'maint'Rickard Green
* maint: Add test cases for native atomics and jump table Refuse to build SMP runtime by default without native atomics Make information about use of jump table available via system_info BIF Make ethread library information available via system_info BIF Make emulator arguments available via the system_info BIF
2013-07-10Merge branch 'rickard/info/OTP-11196' into maintRickard Green
* rickard/info/OTP-11196: Add test cases for native atomics and jump table Refuse to build SMP runtime by default without native atomics Make information about use of jump table available via system_info BIF Make ethread library information available via system_info BIF Make emulator arguments available via the system_info BIF
2013-07-09Make information about use of jump table available via system_info BIFRickard Green
erlang:system_info(beam_jump_table)
2013-07-09Make ethread library information available via system_info BIFRickard Green
erlang:system_info(ethread_info)
2013-07-09Make emulator arguments available via the system_info BIFRickard Green
erlang:system_info(emu_args)
2013-06-20Merge branch 'maint'Sverker Eriksson
Conflicts: erts/vsn.mk lib/kernel/vsn.mk lib/stdlib/vsn.mk
2013-06-20Merge branch 'sverk/aoffcbf' into maintSverker Eriksson
* sverk/aoffcbf: erts: Make aoffcbf default when migration is enabled erts: Add new allocator strategy aoffcbf OTP-11174
2013-06-19erts: Make aoffcbf default when migration is enabledSverker Eriksson
2013-06-19erts: Add new allocator strategy aoffcbfSverker Eriksson
with better performance than aoffcaobf as we don't have to rearrange the search tree when there are blocks of equal size.
2013-06-17Merge branch 'maint'Sverker Eriksson
2013-06-14erts: Fix memory leak in term_to_binary/2 with compressed optionSverker Eriksson
2013-06-14Fix binary construction on floating point middle-endian machinesJohannes Weißl
This complements 933e701 (OTP-10209). Without this patch the test cases "in_guard/1" and "coerce_to_float/1" in bs_construct_SUITE fail. The added lines in bs_construct_SUITE cover all branches that were not covered before (small and big numbers if BIT_OFFSET(erts_bin_offset) != 0).
2013-06-14Fix binary matching on floating point middle-endian machinesJohannes Weißl
This complements 933e701 (OTP-10209). Without this patch the test case "bs_match_misc_SUITE:t_float/1" fails. Simple error example: 1> <<_,_,_,_,_,_,_,_>> = <<1.25/float>>. <<63,244,0,0,0,0,0,0>> 2> <<1.25/float>> = <<63,244,0,0,0,0,0,0>>. ** exception error: no match of right hand side value <<63,244,0,0,0,0,0,0>> The additional test case is added because in a former version of this patch the ERTS_FP_ERROR_THOROUGH check for NaN/infinity was mistakenly applied on the still word-switched double.
2013-06-14Fix erlang:phash2() on floating point middle-endian machinesJohannes Weißl
This complements 933e701 (OTP-10209). Without this patch the test case "hash_SUITE:test_phash2/1" fails. Simple error example: 1> 77147068 = erlang:phash2(1.0). ** exception error: no match of right hand side value 50524433
2013-06-14Fix external term format BIFs on floating point middle-endian machinesJohannes Weißl
This complements 933e701 (OTP-10209). Simple error example: 1> <<131,70,63,240,0,0,0,0,0,0>> = term_to_binary(1.0, [{minor_version,1}]). ** exception error: no match of right hand side value <<131,70,0,0,0,0,63,240,0,0>> 2> 1.0 = binary_to_term(<<131,70,63,240,0,0,0,0,0,0>>). ** exception error: no match of right hand side value 5.299808824e-315 But roundtrip always works: 3> 1.0 = binary_to_term(term_to_binary(1.0, [{minor_version,1}])). 1.0
2013-06-12Merge branch 'maint'Björn-Egil Dahlberg
2013-06-12Update copyright yearsBjörn-Egil Dahlberg
2013-06-12Merge branch 'maint'Rickard Green
* maint: erts: Add the +sfwi system flag
2013-06-12Merge branch 'rickard/+sfwi/OTP-11164' into maintRickard Green
* rickard/+sfwi/OTP-11164: erts: Add the +sfwi system flag
2013-06-12Merge branch 'maint'Sverker Eriksson
2013-06-11erts: Add the +sfwi system flagRickard Green
+sfwi Interval Set scheduler forced wakeup interval. All run queues will be scanned each Interval milliseconds. While there are sleeping schedulers in the system, one scheduler will be woken for each non-empty run queue found. An Interval of zero disables this feature, which also is the default. This feature has been introduced as a temporary workaround for lengthy executing native code, and native code that do not bump reductions properly in OTP. When these bugs have be fixed the +sfwi flag will be removed.
2013-06-11Merge branch 'pan/happi/yield_in_term_to_binary' into maintOTP_R16B01_RC1Patrik Nyblom
* pan/happi/yield_in_term_to_binary: Add testcase to stress extra_root term_to_binary: Remove debug code and set production trap levels Teach erl_gc:offset_rootset about extra_root Teach external.c to handle reallocs before compression Make all steps ofterm_to_binary work in chunks and yield Make term_to_binary yield (trap). OTP-11163
2013-06-10term_to_binary: Remove debug code and set production trap levelsPatrik Nyblom
2013-06-10Merge branch 'maint'Rickard Green
* maint: erts: Fix warning erts: Fix management of redirected carrier to deallocate
2013-06-10Merge branch 'rickard-sverker/carrier-migration/OTP-10279' into maintRickard Green
* rickard-sverker/carrier-migration/OTP-10279: erts: Fix warning erts: Fix management of redirected carrier to deallocate
2013-06-10Merge branch 'maint'Sverker Eriksson
2013-06-10Merge branch 'sverk/darwin-unlimited-select' into maintSverker Eriksson
* sverk/darwin-unlimited-select: erts: Fix dynamic select for darwin erts: Refactor unlimited select patch erts: Fix bug in unlimited fd_set patch Use _DARWIN_UNLIMITED_SELECT in erl_poll
2013-06-10Merge branch 'maint'Rickard Green
* maint: Fix bad fix of erts_stale_drv_select()
2013-06-10Merge branch 'rickard/stale-driver-select/OTP-11084' into maintRickard Green
* rickard/stale-driver-select/OTP-11084: Fix bad fix of erts_stale_drv_select()
2013-06-10Fix bad fix of erts_stale_drv_select()Rickard Green
2013-06-10Merge branch 'maint'Rickard Green
* maint: erts: Fix debug code in erts_ptab_test_next_id()
2013-06-10erts: Fix debug code in erts_ptab_test_next_id()Rickard Green
2013-06-10erts: Fix warningRickard Green
2013-06-10erts: Fix management of redirected carrier to deallocateRickard Green
2013-06-06Teach erl_gc:offset_rootset about extra_rootPatrik Nyblom
2013-06-05Teach external.c to handle reallocs before compressionPatrik Nyblom
2013-06-05Merge branch 'maint'Patrik Nyblom