aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator
AgeCommit message (Collapse)Author
2015-11-23Merge branch 'np/sharing-preserved-copy/OTP-12590'Björn-Egil Dahlberg
* np/sharing-preserved-copy/OTP-12590: (28 commits) Refactor have seq_trace token test Use sharing preserving copy error messages and exceptions Use sharing preserving copy in enif_make_copy Refactor sharing preserved copy flags Fix rebase of SHCOPY seq_tokens Fix erts_debug:copy_shared/1 prototype Update preloaded module erlang.beam Add erlang:copy_literals/2 spec Add copy_literals testcase Do not use GCC extensions in copy Use copy literal range check in message passing and purging Add BIF for setting internal copy literal range Copy literals in copy sharing Refactor copy sharing Add support for HAMT maps in preserved copy Fix Map preserved sharing copy implementation Fix Halfword removal Fix internal stacks Add support for maps in preserved copy Add --enable-sharing-preserving configure flag ...
2015-11-23Merge branch 'maint'Björn-Egil Dahlberg
Conflicts: erts/emulator/beam/external.c
2015-11-23Merge branch 'egil/18/fix-maps-binary_to_term/OTP-13125' into maintBjörn-Egil Dahlberg
* egil/18/fix-maps-binary_to_term/OTP-13125: erts: More testcases for map binary_to_term/1 erts: Fix maps decode in erlang:binary_to_term/1
2015-11-20erts: More testcases for map binary_to_term/1Björn-Egil Dahlberg
2015-11-20erts: Fix maps decode in erlang:binary_to_term/1Björn-Egil Dahlberg
Decoding a term with a large (HAMT) map in an small (FLAT) map could cause a critical error if the external format was not produced by beam.
2015-11-19Refactor have seq_trace token testBjörn-Egil Dahlberg
2015-11-18Use sharing preserving copy error messages and exceptionsBjörn-Egil Dahlberg
2015-11-18Use sharing preserving copy in enif_make_copyBjörn-Egil Dahlberg
2015-11-18Refactor sharing preserved copy flagsBjörn-Egil Dahlberg
The TMPBUF option is no longer needed due to is_literal test and NONE was only used for initial debugging. So we remove the entire option.
2015-11-18Fix rebase of SHCOPY seq_tokensBjörn-Egil Dahlberg
2015-11-17Fix erts_debug:copy_shared/1 prototypeBjörn-Egil Dahlberg
2015-11-17Add copy_literals testcaseBjörn-Egil Dahlberg
Repeatedly reload a literals module while sending the references literals around in a process ring. This will smoke test the non-copying literals message sending does not corrupt code unloading.
2015-11-17Do not use GCC extensions in copyBjörn-Egil Dahlberg
2015-11-17Use copy literal range check in message passing and purgingBjörn-Egil Dahlberg
2015-11-17Add BIF for setting internal copy literal rangeBjörn-Egil Dahlberg
2015-11-17Copy literals in copy sharingBjörn-Egil Dahlberg
2015-11-17Refactor copy sharingBjörn-Egil Dahlberg
2015-11-17Add support for HAMT maps in preserved copyBjörn-Egil Dahlberg
2015-11-17Fix Map preserved sharing copy implementationBjörn-Egil Dahlberg
The Map implementation has changed since initial preserved copy implementation.
2015-11-17Fix Halfword removalBjörn-Egil Dahlberg
Halfword is no longer present in the runtime system.
2015-11-17Fix internal stacksBjörn-Egil Dahlberg
The internal stacks has changed between releases.
2015-11-17Add support for maps in preserved copyNikolaos S. Papaspyrou
2015-11-17Add --enable-sharing-preserving configure flagYiannis Tsiouris
2015-11-17Add -debug +vc flag for debuging SHCOPYNikolaos S. Papaspyrou
This is very verbose, you have been warned. It should work with the copy-spy.py script, which may be a bit outdated.
2015-11-17Enable shcopy for spawning processesNikolaos S. Papaspyrou
2015-11-17Add machinery to enable SHCOPY dynamicallyNikolaos S. Papaspyrou
This commit is just for debugging purposes, will probably be reverted. It comes with a the erts_debug:copy_shared/1 BIF. If SHCOPY_DISABLE is defined, SHCOPY starts disabled and is dynamically enabled the first time that the BIF is called.
2015-11-17Remove DTrace Harddebug clutterBjörn-Egil Dahlberg
2015-11-17Enable shcopy for sending messagesNikolaos S. Papaspyrou
2015-11-17Add the BIF size_shared/1 and debug cleanupNikolaos S. Papaspyrou
2015-11-17Add all the main machineryNikolaos S. Papaspyrou
Add functions size_shared, copy_shared_calculate and copy_shared_perform. Add the infrastructure for making these communicate with each other. Add debug information to other places in the VM, to watch interaction with the sharing-preserving copy. CAUTION: If you define the SHCOPY_DEBUG macro (after SHCOPY is actually used in the VM) and make the whole OTP, there will be a lot of debugging messages during make (it will also be enabled in erlc). You have been warned...
2015-11-16Merge branch 'maint'Sverker Eriksson
2015-11-16Merge branch 'sverk/nif_SUITE-win64-long-bug' into maintSverker Eriksson
* sverk/nif_SUITE-win64-long-bug: erts: Fix nif_SUITE for win64
2015-11-16Merge branch 'sverk/binary-split-bug'Sverker Eriksson
* sverk/binary-split-bug: stdlib: Fix bug in binary:split for empty binary
2015-11-16An implementation of lightweight unbounded queuesNikolaos S. Papaspyrou
2015-11-16Merge branch 'maint'Henrik Nord
2015-11-16Merge branch 'zenhack/fix-erroneous-__uint32_t' into maintHenrik Nord
* zenhack/fix-erroneous-__uint32_t: Fix erroneous use of __uint32_t OTP-13105
2015-11-13stdlib: Fix bug in binary:split for empty binarySverker Eriksson
Bug introduced om master branch at b93e9b611056828a and reported in ERL-43.
2015-11-13Merge branch 'rickard/l2b-b2l-yield/OTP-13096'Rickard Green
* rickard/l2b-b2l-yield/OTP-13096: Improve yield strategy for list_to_binary()/binary_to_list()
2015-11-13Merge branch 'rickard/gc-bump-reds/OTP-13097'Rickard Green
* rickard/gc-bump-reds/OTP-13097: Bump reductions on GC
2015-11-13Merge branch 'rickard/gc-after-bif-cond/OTP-13098'Rickard Green
* rickard/gc-after-bif-cond/OTP-13098: Use the same conditions when triggering GC after BIF
2015-11-12Merge branch 'rickard/ohmq/OTP-13047'Rickard Green
* rickard/ohmq/OTP-13047: Fragmented young heap generation and off_heap_message_queue option Refactor GC Introduce literal tag Conflicts: erts/doc/src/erlang.xml erts/emulator/beam/erl_gc.c
2015-11-12Merge branch 'sverk/literal-memory-range'Rickard Green
* sverk/literal-memory-range: erts: Refactor line table in loaded beam code erts: Refactor header of loaded beam code fix check_process_code for separate literal area erts: Add support for fast erts_is_literal() erts: Refactor erl_mmap to allow several mapper instances erts: Add new allocator LITERAL erts: Fix strangeness in treatment of MSEG_ALIGN_BITS erts: Cleanup main carrier creation erts: Remove unused erts_have_erts_mmap erts: Refactor config test for posix_memalign
2015-11-12erts: Fix nif_SUITE for win64Sverker Eriksson
where type long is only 32-bit and can not hold a pointer unless your lucky.
2015-11-12Improve yield strategy for list_to_binary()/binary_to_list()Rickard Green
Avoid yield in the BIF when input is small. This either yielding before beginning to work in the BIF, or by allowing some more reductions before yielding.
2015-11-12Bump reductions on GCRickard Green
2015-11-12Use the same conditions when triggering GC after BIFRickard Green
2015-11-12Fragmented young heap generation and off_heap_message_queue optionRickard Green
* The youngest generation of the heap can now consist of multiple blocks. Heap fragments and message fragments are added to the youngest generation when needed without triggering a GC. After a GC the youngest generation is contained in one single block. * The off_heap_message_queue process flag has been added. When enabled all message data in the queue is kept off heap. When a message is selected from the queue, the message fragment (or heap fragment) containing the actual message is attached to the youngest generation. Messages stored off heap is not part of GC.
2015-11-12erts: Refactor line table in loaded beam codeSverker Eriksson
to use real C struct with correct types
2015-11-12Refactor GCRickard Green
2015-11-12erts: Refactor header of loaded beam codeSverker Eriksson
to use a real C struct instead of array.