summaryrefslogtreecommitdiff
path: root/erts/preloaded/ebin/erts_internal.beam
Commit message (Collapse)AuthorAgeFilesLines
* Redirect system_flag(scheduler_wall_time,_) to kernel_refcRickard Green2017-12-191-0/+0
|
* Merge branch 'lukas/stdlib/maps_iterators/OTP-14012'Lukas Larsson2017-11-201-0/+0
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lukas/stdlib/maps_iterators/OTP-14012: erts: Limit size of first iterator for hashmaps Update primary bootstrap Update preloaded modules erts: Remove erts_internal:maps_to_list/2 stdlib: Make io_lib and io_lib_pretty use maps iterator erts: Implement batching maps:iterator erts: Implement maps path iterator erts: Implement map iterator using a stack stdlib: Introduce maps iterator API Conflicts: bootstrap/lib/stdlib/ebin/io_lib.beam bootstrap/lib/stdlib/ebin/io_lib_pretty.beam erts/emulator/beam/bif.tab erts/preloaded/ebin/erlang.beam erts/preloaded/ebin/erts_internal.beam erts/preloaded/ebin/zlib.beam
| * Update preloaded modulesLukas Larsson2017-11-201-0/+0
| |
| * erts: Remove erts_internal:maps_to_list/2Lukas Larsson2017-11-201-0/+0
| | | | | | | | | | This function is no longer needed as maps:iterator has now been implemented.
| * erts: Implement batching maps:iteratorLukas Larsson2017-11-201-0/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | This iterator implementation fetches multiple elements to iterate over in one call to erts_internal:maps_next instead of one at a time. This means that the memory usage will go up for the iterator as we are buffering elements, but the usage is still bounded. In this implementation the max memory usage is 1000 words. Using this approach makes the iterator as fast as using maps:to_list, so maps:iterator/2 has been removed.
| * erts: Implement maps path iteratorLukas Larsson2017-10-131-0/+0
| |
* | Move new|abort_connection_id to erts_internalSverker Eriksson2017-11-151-0/+0
|/ | | | and drop _id suffix.
* Merge branch 'rickard/dist/OTP-14459' into rickard/dist/master/OTP-14459Rickard Green2017-08-281-0/+0
|\ | | | | | | | | | | | | | | | | | | | | Conflicts: erts/emulator/beam/bif.c erts/emulator/beam/dist.c erts/emulator/beam/dist.h erts/emulator/beam/erl_bif_info.c erts/emulator/beam/erl_node_tables.c erts/emulator/beam/erl_node_tables.h erts/emulator/beam/external.c
| * Support for distribution controller processesRickard Green2017-08-281-0/+0
|/
* Update preloaded modulesHans Nilsson2017-06-201-0/+0
|
* Update preloaded modulesRickard Green2017-06-141-0/+0
|
* Update preloaded modulesBjörn Gustavsson2017-05-041-0/+0
|
* Update preloaded modulesLukas Larsson2017-04-251-0/+0
|
* Update preloaded modulesLukas Larsson2017-04-101-0/+0
|
* Update preloaded erts_internal.beamBjörn-Egil Dahlberg2017-02-231-0/+0
|
* Teach make_preload to handle the new 'AtU8' chunkBjörn Gustavsson2017-02-171-0/+0
| | | | | | | | | | | | | 26b59dfe67 introduced the new 'AtU8' chunk to support Unicode atoms. make_preload strips the pre-loaded BEAM files so that they only contain essential chunks. It expects to find the old 'Atom' chunk. Teach make_preload to read the new 'AtU8' chunk instead of the old chunk. Also produce a nice error message if someone by mistake compiles the pre-loaded modules with an OTP 19 compiler.
* Update preloaded modulesLukas Larsson2016-12-201-0/+0
|
* Merge branch 'maint'Hans Bolinder2016-11-021-0/+0
|\ | | | | | | | | | | | | | | | | | | * maint: Update preloaded erts: Correct type declaration of match specification head Conflicts: erts/preloaded/ebin/erlang.beam erts/preloaded/ebin/erts_internal.beam
| * Update preloadedHans Bolinder2016-11-011-0/+0
| |
* | Merge branch 'maint'Björn Gustavsson2016-09-151-0/+0
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | * maint: erts: Add nif_SUITE:t_on_load erts: Improve nif_SUITE:upgrade test Don't leak old code when loading a modules with an on_load function Conflicts: erts/preloaded/ebin/erts_code_purger.beam erts/preloaded/ebin/erts_internal.beam erts/preloaded/src/erts_code_purger.erl
| * Don't leak old code when loading a modules with an on_load functionBjörn Gustavsson2016-09-141-0/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Normally, calling code:delete/1 before re-loading the code for a module is unnecessary but causes no problem. But there will be be problems if the new code has an on_load function. Code with an on_load function will always be loaded as old code to allowed it to be easily purged if the on_load function would fail. If the on_load function succeeds, the old and current code will be swapped. So in the scenario where code:delete/1 has been called explicitly, there is old code but no current code. Loading code with an on_load function will cause the reference to the old code to be overwritten. That will at best cause a memory leak, and at worst an emulator crash (especially if NIFs are involved). To avoid that situation, we will put the code with the on_load function in a special, third slot in Module. ERL-240
* | Update preloadedLukas Larsson2016-09-061-0/+0
| |
* | Remove old purge strategyRickard Green2016-08-311-0/+0
|/
* Perform check_process_code while process is executing dirtyRickard Green2016-08-291-0/+0
|
* Fix purge of codeRickard Green2016-08-291-0/+0
| | | | | | | | | | | | | | | | | | Ensure that we cannot get any dangling pointers into code that has been purged. This is done by a two phase purge. At first phase all fun entries pointing into the code to purge are marked for purge. All processes trying to call these funs will be suspended and by this we avoid getting new direct references into the code. When all processes has been checked, these processes are resumed. The new purge strategy now also completely ignore the existence of indirect references to the code (funs). If such exist, they will cause bad fun exceptions to the caller, but will not prevent a soft purge or cause a kill of a process having such live references during a hard purge. This since it is impossible to give any guarantees that no processes in the system have such indirect references. Even when the system is completely clean from such references, new ones can appear via distribution and/or disk.
* Reclaim literal area after purge has completedRickard Green2016-08-261-0/+0
|
* Update preloaded modulesHenrik Nord2016-06-201-0/+0
|
* Update preloaded modulesLukas Larsson2016-05-101-0/+0
|
* Update preloaded modulesBjörn-Egil Dahlberg2016-05-031-0/+0
|
* Update preloaded modulesLukas Larsson2016-04-151-0/+0
|
* Merge branch 'maint'Björn-Egil Dahlberg2016-02-251-0/+0
|\ | | | | | | | | | | | | | | Conflicts: erts/emulator/beam/erl_alloc.types erts/emulator/beam/erl_bif_info.c erts/emulator/beam/erl_process.c erts/preloaded/ebin/erts_internal.beam
| * Update preloaded erts_internal.beamBjörn-Egil Dahlberg2016-02-161-0/+0
| |
| * Update preloaded modulesHenrik Nord2015-12-141-0/+0
| |
* | Update preloaded modulesHans Bolinder2016-02-171-0/+0
| |
* | Merge branch 'sverk/safe-purging/OTP-13122'Sverker Eriksson2016-02-081-0/+0
|\ \ | | | | | | | | | | | | * sverk/safe-purging/OTP-13122: erts: Fix harmless dialyzer warnings
| * | erts: Fix harmless dialyzer warningsSverker Eriksson2016-01-251-0/+0
| | |
* | | Update preloaded modulesLukas Larsson2016-02-021-0/+0
| | |
* | | Update preloaded modulesLukas Larsson2016-01-261-0/+0
|/ /
* | erts: Optimize erlang:check_process_codeSverker Eriksson2016-01-131-0/+0
| | | | | | | | | | | | | | | | by ignoring literals. erts_internal:check_process_code will be called again anyway (with option {copy_literals, true}) before the module is actually purged. No need to check literals twice.
* | erts: Refactor check_process_code/3Sverker Eriksson2016-01-131-0/+0
| | | | | | | | Move impl from erlang to erts_internal. Cut and paste.
* | erts: Move copy_literals/2 from erlang to erts_internalSverker Eriksson2016-01-131-0/+0
| | | | | | | | as it's not a public interface.
* | erts: Make erlang:purge_module/1 safeSverker Eriksson2016-01-131-0/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | Problem: erlang:purge_module/1 is not safe in the sense that very bad things may happen if the code to be purged is still referred to by live processes. Introduce erts_internal:purge_module which is the same as the old erlang:purge_module BIF (except it returns false if no such old module). Implement erlang:purge_module in Erlang and let it invoke erts_code_purger for safe purging where all clogging processes first are killed.
* | Update preloaded modulesBjörn Gustavsson2015-12-161-0/+0
| |
* | Update preloaded modulesBjörn Gustavsson2015-12-161-0/+0
| |
* | Update preloaded modulesLukas Larsson2015-12-151-0/+0
| |
* | Update preloaded modulesBjörn-Egil Dahlberg2015-12-081-0/+0
| |
* | erts: Change erts_internal:map_type/1 into term_type/1Sverker Eriksson2015-12-071-0/+0
|/ | | | to support other terms, not just maps
* Save IO bytes in scheduler specific dataRickard Green2015-06-171-0/+0
|
* Update preloaded modulesRickard Green2015-05-121-0/+0
|
* Optimized timer implementationRickard Green2015-05-081-0/+0
|