aboutsummaryrefslogtreecommitdiffstats
path: root/erts
AgeCommit message (Collapse)Author
2018-07-18Merge branch 'john/erts/fix-literal-map-elements/OTP-15184' into maint-21Erlang/OTP
* john/erts/fix-literal-map-elements/OTP-15184: Fix a rare crash when matching on literal maps
2018-07-18Fix node crash on passing bad arguments to file:read_file_info/2John Högberg
2018-07-18Merge pull request #1812 from michalmuskala/mm/make-fun-loaderJohn Högberg
Optimise creation of anonymous functions
2018-07-17maps:new/0 is no longer a BIFMichał Muskała
Implementing it in Erlang allows taking advantage of the literal pool optimisation, this means the function implemented in Erlang does no allocations, while the BIF had to allocate new map each time it was called. Benchmarks show the function is also slightly faster now.
2018-07-17Optimise creation of anonymous functionsMichał Muskała
This introduces a similar optimisation for normal funs to what was introduced for external funs in #1725. It is possible to allocate the fun as a literal, if it does not capture the environment (i.e. it does not close over any variables). Unfortunately it's not possible to do this in the compiler due to problems with representation of such functions in the `.beam` files. Fortunately, we can do this in the loader. Simple evaluation shows that functions that don't capture the enviornment consistute over 60% of all funs in the source code of Erlang/OTP itself. The only downside is that we lose a meningful value in the `pid` field of the fun. The goal of this field, beyond debugging, was to be able to identify the original node of a function. To be able to still do this, the functions that are created in the loader are assigned the init pid as the creator. To solve issues with staryp, initially set the `erts_init_process_id` to `ERTS_INVALID_PID` and skip the described optimisation if the value is still uninitialised.
2018-07-16Merge branch 'maint'Sverker Eriksson
2018-07-16erts: Clarify erl_nif docs of enif_*printf and %TSverker Eriksson
2018-07-16Merge branch 'maint'Sverker Eriksson
2018-07-16Merge branch 'sverker/crash-dump-crash-literals/OTP-15181' into maintSverker Eriksson
* sverker/crash-dump-crash-literals/OTP-15181: erts: Fix bug in crash dump generation
2018-07-16erts: Free udp buffer when getting EAGAINLukas Larsson
Only SCPT should keep the recv buffer when going into select. If UDP does it, it will result in many more memory allocations than there should be which can be very detrimental to performance.
2018-07-16Merge branch 'maint'Lukas Larsson
2018-07-16Merge branch 'lukas/clean_doc_xmldir/OTP-15190' into maintLukas Larsson
* lukas/clean_doc_xmldir/OTP-15190: docs: make clean all XMLDIR
2018-07-13erts: Fix bug where break would not trigger on windowsLukas Larsson
This bug was introduced in 988f5f5e8061ce2. The aux_thread needs to be poked as it is the thread that handles all break actions.
2018-07-13docs: make clean all XMLDIRLukas Larsson
2018-07-13Merge branch 'maint'Rickard Green
* maint: Updated OTP version Update release notes Update version numbers Fix trace_info/2 Provide build support for standalone corba repo Fix release notes for OTP-21.0.2 Move to a dirty scheduler even when we have pending system tasks
2018-07-13Merge branch 'maint-21' into maintRickard Green
* maint-21: Updated OTP version Update release notes Update version numbers Fix trace_info/2 Provide build support for standalone corba repo Fix release notes for OTP-21.0.2 Move to a dirty scheduler even when we have pending system tasks
2018-07-13Fix a rare crash when matching on literal mapsJohn Högberg
When matching on a literal map, the map is placed into the general scratch register first. This is fine in isolation, but when the key to be matched was in a Y register it would also be placed in the scratch register, overwriting the map and crashing the emulator.
2018-07-12Update release notesErlang/OTP
2018-07-12Update version numbersErlang/OTP
2018-07-12Merge branch 'john/erts/fix-dirty-reschedule-bug/OTP-15154' into maint-21Erlang/OTP
* john/erts/fix-dirty-reschedule-bug/OTP-15154: Move to a dirty scheduler even when we have pending system tasks
2018-07-12Merge branch 'john/erts/fix-21.0.2-release-notes' into maint-21Erlang/OTP
* john/erts/fix-21.0.2-release-notes: Fix release notes for OTP-21.0.2
2018-07-12Merge branch 'rickard/trace-info-bug/OTP-15183' into maint-21Erlang/OTP
* rickard/trace-info-bug/OTP-15183: Fix trace_info/2
2018-07-12Merge branch 'rickard/corba-build/OTP-15176' into maint-21Erlang/OTP
* rickard/corba-build/OTP-15176: Provide build support for standalone corba repo
2018-07-12Fix trace_info/2Rickard Green
2018-07-12Merge branch 'john/erts/adjust-fix-alloc-sizes'John Högberg
* john/erts/adjust-fix-alloc-sizes: Adjust fix_alloc sizes to guarantee they fit a dd block
2018-07-12erts: Fix bug in crash dump generationSverker Eriksson
Symptom: emulator core dumps during crash dump generation. Problem: erts_dump_lit_areas did not grow correctly to always be equal or larger than number of loaded modules. The comment about twice the size to include both curr and old did not seem right. The beam_ranges structure contains *all* loaded module instances until they are removed when purged.
2018-07-12Provide build support for standalone corba repoRickard Green
2018-07-11Merge branch 'maint'Sverker Eriksson
2018-07-11Merge branch 'sverker/erts/monitored_by-docs/ERL-648/OTP-15180' into maintSverker Eriksson
* sverker/erts/monitored_by-docs/ERL-648/OTP-15180: os_mon: Fix volatile test cpu_sup_SUITE:util_api erts: Fix spec and docs for process_info 'monitored_by'
2018-07-10Merge branch 'sverker/erts/cpool-simplify'Sverker Eriksson
* sverker/erts/cpool-simplify: erts: Simplify calc of allctr->cpool.abandon_limit erts: Simplify cpool_fetch
2018-07-10erts: Fix benign bug in cerl for valgrindSverker Eriksson
benign until valgrind version 4.* shows up.
2018-07-10erts: Fix buggy calls to erts_sys_explicit_8bit_getenvSverker Eriksson
Two of them only affect valgrind builds and the one for ERL_CRASH_DUMP_NICE seems benign. Return value changed in c2d70945dce9cb09d5d7120d6e9ddf7faac8d230 old -> new -1 -> 0 not found 0 -> 1 found ok 1 -> -1 found but too big
2018-07-09erts: Fix spec and docs for process_info 'monitored_by'Sverker Eriksson
to include ports and NIF resources. Added new opaque type 'nif_resource'.
2018-07-09Adjust fix_alloc sizes to guarantee they fit a dd blockJohn Högberg
This failed on 32-bit builds, and wasn't noticed because 32-bit debug builds didn't run during the test period.
2018-07-06Merge branch 'maint'Hans Bolinder
* maint: erts: Correct The Abstract Format
2018-07-06Merge branch 'hasse/erts/correct_absform' into maintHans Bolinder
* hasse/erts/correct_absform: erts: Correct The Abstract Format
2018-07-06Merge branch 'maint'Björn Gustavsson
* maint: Call test_lib:recompile/1 from init_per_suite/1 beam_debug: Fix printing of floating point registers
2018-07-05erts: Correct The Abstract FormatHans Bolinder
A minor correction regarding literal character types.
2018-07-05beam_debug: Fix printing of floating point registersBjörn Gustavsson
2018-07-05Merge branch 'sverker/master/purge-vfork'Sverker Eriksson
2018-07-05Merge branch 'maint'Sverker Eriksson
2018-07-05Merge branch 'sverker/purge-vfork' into maintSverker Eriksson
* sverker/purge-vfork: erts: Remove obsolete paragraph about ERL_NO_VFORK
2018-07-05erts: Simplify calc of allctr->cpool.abandon_limitSverker Eriksson
Remove check_limit_count and just recalculate when needed, that is when carriers are added/removed.
2018-07-05erts: Simplify cpool_fetchSverker Eriksson
and avoid faulty bumps of 'entrance_removed' stat.
2018-07-04Fix release notes for OTP-21.0.2John Högberg
The release notes generated in the README and notes.xml were out of sync, and notes.xml erroneously listed a fixed bug as open.
2018-07-04Merge branch 'maint'John Högberg
* maint: Updated OTP version Update release notes Update version numbers Eliminate a crash in the beam_jump pass stdlib: Fix a 'chars_limit' bug Fix a race condition when generating async operation ids Fix internal compiler error for map_get/2 beam_type: Fix unsafe optimization public_key: Remove moduli 5121 and 7167 Thoose were added by 598629aeba9de98e8cdf5637043eb34e5d407751 but are not universaly supported.
2018-07-04Merge branch 'maint-21' into maintJohn Högberg
* maint-21: Updated OTP version Update release notes Update version numbers Eliminate a crash in the beam_jump pass stdlib: Fix a 'chars_limit' bug Fix a race condition when generating async operation ids Fix internal compiler error for map_get/2 beam_type: Fix unsafe optimization public_key: Remove moduli 5121 and 7167 Thoose were added by 598629aeba9de98e8cdf5637043eb34e5d407751 but are not universaly supported.
2018-07-03Use fallback pollset for stdin and friends when using kqueueJohn Högberg
This is a hack to make the "noshell" option work; kqueue can poll these fds but will not report EV_EOF. This may be common to all all pipes but we have no way to tell whether an fd is a pipe or not.
2018-07-03Merge pull request #1854 from ↵John Högberg
jhogberg/john/erts/cross-type-carrier-migration/OTP-15063 Allow carrier migration between different allocator types
2018-07-02erts,runtime_tools: Remove some vfork residuesSverker Eriksson
The use of vfork was removed in OTP-19 with the introduction of the dedicated forker process.