aboutsummaryrefslogtreecommitdiffstats
path: root/erts
AgeCommit message (Collapse)Author
2015-03-12erts: Rewrite hashmap:to_list, keys and valuesSverker Eriksson
to use an iterator instead of foreach with callback. Will be easier to make yielding.
2015-03-12erts: Make WSTACK usable through pointerSverker Eriksson
2015-03-12erts: Make hashmap_merge use dynamic PSTACKSverker Eriksson
2015-03-12erts: Add PSTACKSverker Eriksson
A lightweight stack that can be used to store any type. PUSH and POP return pointers into stack slots.
2015-03-12erts: Cleanup hashmap_merge_2Sverker Eriksson
2015-03-12erts: Add term_to_binary for hashmapSverker Eriksson
2015-03-12erts: Add RESERVE and FAST_PUSH for ESTACK & WSTACKSverker Eriksson
2015-03-12erts: Add hashmap:update/3Sverker Eriksson
2015-03-12erts: Add hashmap:find/2Sverker Eriksson
2015-03-12erts: Refactor hashmap_to_list to use hashmap_do_foreachSverker Eriksson
2015-03-12erts: Refactor hashmap_do_foreachSverker Eriksson
to use a common struct hashmap_doer_state.
2015-03-12erts: Add missing parenthesis in MAKE_MAP_HEADERSverker Eriksson
2015-03-12First non-recursive version of hashmap:merge/2Sverker Eriksson
2015-03-12erts: First recursive version of hashmap:mergeSverker Eriksson
2015-03-12erts: Add matching of hashmapsSverker Eriksson
2015-03-12erts: Fix beam_load assertBjörn-Egil Dahlberg
2015-03-12erts: Fix bug in _make_header macroSverker Eriksson
Called with a signed int 'sz' argument on 64 bit would cause sign extension 'sz' was larger than 33554431.
2015-03-12hashmap: is_key/2, keys/1 and values/1Sverker Eriksson
2015-03-12Don't use modulus for power of 2Björn-Egil Dahlberg
2015-03-12Refactor hashmap_shiftBjörn-Egil Dahlberg
2015-03-12Add hashmap:remove/2Björn-Egil Dahlberg
2015-03-12Add hashmap:info/1Björn-Egil Dahlberg
2015-03-12Initial Persistent HAMT - Map frameworkBjörn-Egil Dahlberg
Conflicts: erts/emulator/Makefile.in erts/emulator/beam/bif.tab erts/emulator/beam/erl_gc.c erts/emulator/beam/erl_gc.h erts/emulator/beam/erl_printf_term.c erts/emulator/beam/erl_term.c erts/emulator/beam/erl_term.h
2015-03-12Merge branch 'nox/maps-match_specs-fixes/OTP-12270'Björn-Egil Dahlberg
* nox/maps-match_specs-fixes/OTP-12270: erts: Strengthen maps match spec compilation tests Properly collect variables in match specs with maps Fix compilation of match specs with maps
2015-03-12erts: Add missing binary offheap overhead in binary_to_termSverker Eriksson
Binary offheap overhead is used to trigger GC when a process is referring "too much" binary offheap data. Offheap binaries created from external format (binary_to_term, distributed messages or compacted ets tables) were not accounted for. Example: A process receiving a lot of binary data in distributed messages, while not building much terms on its heap, could cause an extensive memory consumption for garbage binaries.
2015-03-12Merge branch 'maint'Henrik Nord
Conflicts: erts/emulator/hipe/hipe_bif0.c
2015-03-12Merge branch 'mikpe/hipe-mfait-rwlock' into maintHenrik Nord
* mikpe/hipe-mfait-rwlock: hipe: change mfa_info_table lock to rwmutex OTP-12557
2015-03-12Merge branch 'mikpe/avoid-oversize-bignums' into maintHenrik Nord
* mikpe/avoid-oversize-bignums: don't leave a heap hole in erts_bs_get_integer_2 don't create oversize bignums in binary matching OTP-12556
2015-03-12Merge branch 'egil/beam/select_val/OTP-12555'Björn-Egil Dahlberg
* egil/beam/select_val/OTP-12555: erts: Use linear search for small select_val arrays
2015-03-12Merge branch 'egil/process_dictionary-initial-size/OTP-12535'Björn-Egil Dahlberg
* egil/process_dictionary-initial-size/OTP-12535: erts: Document option 'hpds' erts: Enable command line argument for initial pd size
2015-03-12Create new BIF ets:update_counter/4Anthony Ramine
Conflicts: erts/emulator/beam/bif.tab lib/stdlib/src/ets.erl
2015-03-12erts: Strengthen maps match spec compilation testsBjörn-Egil Dahlberg
2015-03-11Properly collect variables in match specs with mapsAnthony Ramine
2015-03-11Fix compilation of match specs with mapsAnthony Ramine
The previous compilation was just plain wrong with push/pop mismatches. Reported-by: Björn-Egil Dahlberg
2015-03-09Merge branch 'maint'Erland Schönbeck
Conflicts: erts/test/otp_SUITE.erl
2015-03-09Merge branch 'seriyps/zlib-inflate-bound'Henrik Nord
* seriyps/zlib-inflate-bound: Add zlib limited output buffer size functionality Conflicts: erts/preloaded/ebin/zlib.beam OTP-12548
2015-03-09Merge branch 'erland/ssh/time/OTP-12444' into maintErland Schönbeck
* erland/ssh/time/OTP-12444: Update misleading comment in ssh_basic_SUITE Update new time API and be back-compatible in ssh Use new time API and be back-compatible in ssh otp_SUITE: Ignore undefined functions in ssh
2015-03-07Correct typo in erlang(3) documentationNick Mills
2015-03-06Merge branch 'maint'Zandra Hird
2015-03-06Merge branch 'leoliu/master' into maintZandra Hird
* leoliu/master: Two minor fixes OTP-12545
2015-03-06Make access to control_flags safe in non-smp emulatorRickard Green
2015-03-05Merge branch 'maint'Björn-Egil Dahlberg
2015-03-05Merge branch 'egil/fix-break-printout/OTP-12537' into maintBjörn-Egil Dahlberg
* egil/fix-break-printout/OTP-12537: erts: Fix erroneous printout in crashdump
2015-03-04erts: Document option 'hpds'Björn-Egil Dahlberg
2015-03-04erts: Enable command line argument for initial pd sizeBjörn-Egil Dahlberg
Use '+hpds size' to set initial process dictionary size for spawned processes.
2015-03-03Update zlib:zwindowbits/0 type to accept 8 and -8Loïc Hoguin
Commit 7e8f5a776cbfa376e03369d058a90c8dd9f217fc (importing R11B-3) updated zlib, which had changed what values it accepts for window bits from 9-15 to 8-15. From deflate.c: - windowBits < 9 || windowBits > 15 || level < 0 || level > 9 || - strategy < 0 || strategy > Z_HUFFMAN_ONLY) { + windowBits < 8 || windowBits > 15 || level < 0 || level > 9 || + strategy < 0 || strategy > Z_FIXED) { return Z_STREAM_ERROR; } + if (windowBits == 8) windowBits = 9; /* until 256-byte window bug fixed */ In inflate.c 8 was already an accepted value. This commit updates OTP to also accept the values 8 and -8.
2015-03-03Export useful types from zlib moduleLoïc Hoguin
2015-02-27Two minor fixesLeo Liu
* Fix documentation on $char for unicode * Remove duplicate declaration for erts_encode_ext_dist_header_size
2015-02-26hipe: change mfa_info_table lock to rwmutexMikael Pettersson
The hipe_mfa_info_table lock is currently a mutex, causing unnecessary contention and serialization of lookups for apply-like constructs. - change the lock from a mutex to an rwmutex - split hipe_get_na_nofail_locked into a "try" path which only needs a read lock, and a "slow" path which requires a write lock - reimplement hipe_get_na_nofail (used by apply ops etc) to first call the "try" path with a read lock, and if that fails the "slow" path with a write lock - reimplement hipe_get_na_nofail_locked (used by maintenance code) to call the "try" path and then optionally the "slow" path, but without taking locks since its caller already has the write lock - adjust remaining lock ops to take/release full write lock - use _rwlocked as suffix on functions requiring a write lock - change hipe_mfa_get_trampoline to call get_locked not put_locked, allowing it to take a read lock instead of a write lock - change hipe_find_mfa_from_ra() to only take a read lock
2015-02-25Use new time API and be back-compatible in sshErland Schönbeck
otp_SUITE: Ignore undefined functions in ssh