aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2017-08-10Generalize optimization of "one-armed" casesBjörn Gustavsson
A 'case' expression will force a stack frame (essentially in the same way as a function call), unless it is at the end of a function. In sys_core_fold there is an optimization that can optimize one-armed cases such as: case Expr of Pat1 -> DoSomething; Pat2 -> erlang:error(bad) end, MoreCode. Because only one arm of the 'case' can succeed, the code after the case can be move into the successful arm: case Expr of Pat1 -> DoSomething, MoreCode; Pat2 -> erlang:error(bad) end. Thus, the 'case' is at the end of the function and it will no longer need a stack frame. However, the optimization in sys_core_fold would not be applied if there were more than one failing clause such as in this code: case Expr of Pat1 -> DoSomething, MoreCode; Pat2 -> erlang:error(bad); _ -> erlang:error(case_clause) end. Generalize the optimization to handle any number of failing clauses at the end of the case. Reported-by: bugs.erlang.org/browse/ERL-452
2017-07-28Merge branch 'maint'John Högberg
* maint: Updated OTP version Update release notes Update version numbers
2017-07-28Merge branch 'maint-19' into maintJohn Högberg
* maint-19: Updated OTP version Update release notes Update version numbers
2017-07-28Merge pull request #1519 from erszcz/fix-typo-listner-to-listenerRaimo Niskanen
Fix a proliferated typo in ssl
2017-07-28Merge branch 'maint'Raimo Niskanen
2017-07-28Merge pull request #1520 from NOMORECOFFEE/fix_array_spec_typoRaimo Niskanen
array: fix spec typo
2017-07-27Merge branch 'maint'John Högberg
* maint: Updated OTP version Update release notes Update version numbers Fix doc for the 'quiet' option; it defaults to false asn1: Fix missing quotes of external encoding call Add a dedicated close function for TCP ports to prevent issues like ERL-430/448 Close TCP ports properly on send timeout erts: Add missing release note
2017-07-27Merge branch 'maint-20' into maintJohn Högberg
* maint-20: Updated OTP version Update release notes Update version numbers Fix doc for the 'quiet' option; it defaults to false asn1: Fix missing quotes of external encoding call Add a dedicated close function for TCP ports to prevent issues like ERL-430/448 Close TCP ports properly on send timeout erts: Add missing release note
2017-07-26Updated OTP versionOTP-20.0.2Erlang/OTP
2017-07-26Update release notesErlang/OTP
2017-07-26Update version numbersErlang/OTP
2017-07-26Merge branch 'sverker/asn1/missing-quotes/OTP-14519' into maint-20Erlang/OTP
* sverker/asn1/missing-quotes/OTP-14519: asn1: Fix missing quotes of external encoding call
2017-07-26Merge branch 'sverker/big-bxor-bug/ERL-450/OTP-14514' into maint-20Erlang/OTP
* sverker/big-bxor-bug/ERL-450/OTP-14514: erts: Fix bug in bxor of a big negative number
2017-07-26Merge branch 'john/erts/fix-tcp-send-timeout/OTP-14509/ERL-448' into maint-20Erlang/OTP
* john/erts/fix-tcp-send-timeout/OTP-14509/ERL-448: Add a dedicated close function for TCP ports to prevent issues like ERL-430/448 Close TCP ports properly on send timeout
2017-07-26Merge branch 'john/kernel/fix-disk-log-docs/OTP-14498' into maint-20Erlang/OTP
* john/kernel/fix-disk-log-docs/OTP-14498: Fix doc for the 'quiet' option; it defaults to false
2017-07-26Merge branch 'sverker/missing-relnote/OTP-14494' into maint-20Erlang/OTP
* sverker/missing-relnote/OTP-14494: erts: Add missing release note
2017-07-26Fix doc for the 'quiet' option; it defaults to falseJohn Högberg
2017-07-25Merge branch 'maint'Sverker Eriksson
2017-07-25Merge branch 'sverker/enif_whereis-bug/OTP-14523' into maintSverker Eriksson
* sverker/enif_whereis-bug: erts: Fix bug in enif_whereis_pid/port
2017-07-25Merge branch 'maint'John Högberg
2017-07-25Merge branch 'john/erts/use-lock-flags-in-lc' into maintJohn Högberg
2017-07-25Updated OTP versionOTP-19.3.6.2Erlang/OTP
2017-07-25Update release notesErlang/OTP
2017-07-25Update version numbersErlang/OTP
2017-07-25Merge branch 'sverker/big-bxor-bug/ERL-450/OTP-14514' into maint-19Erlang/OTP
* sverker/big-bxor-bug/ERL-450/OTP-14514: erts: Fix bug in bxor of a big negative number
2017-07-25Merge branch 'john/erts/fix-tcp-send-timeout/OTP-14509/ERL-448' into maint-19Erlang/OTP
* john/erts/fix-tcp-send-timeout/OTP-14509/ERL-448: Add a dedicated close function for TCP ports to prevent issues like ERL-430/448 Close TCP ports properly on send timeout
2017-07-25Merge branch 'sverker/prealloc-race-bug/OTP-14491' into maint-19Erlang/OTP
* sverker/prealloc-race-bug/OTP-14491: erts: Fix bug in quick alloc
2017-07-24Fix array spec typoВеселов Андрей
2017-07-24Fix a proliferated typoRadek Szymczyszyn
2017-07-21Merge branch 'maint'Raimo Niskanen
2017-07-21Merge pull request #1513 from nroi/maintRaimo Niskanen
Fix typo in httpc.xml: http -> httpc
2017-07-21Merge branch 'maint'Raimo Niskanen
2017-07-21Merge branch 'raimo/kernel/fix-spec-for-inet-get_rc-0/ERL-454' into maintRaimo Niskanen
* raimo/kernel/fix-spec-for-inet-get_rc-0/ERL-454: Improve spec and doc for inet:get_rc/0
2017-07-21Merge branch 'maint'Raimo Niskanen
2017-07-21Merge branch 'raimo/stdlib/stop-deprecated-warn-crypto-rand_bytes-1/ERL-459' ↵Raimo Niskanen
into maint * raimo/stdlib/stop-deprecated-warn-crypto-rand_bytes-1/ERL-459: Change crypto:rand_bytes/1 deprecated -> removed
2017-07-20Merge branch 'maint'Sverker Eriksson
2017-07-20Merge branch 'sverker/crypto/valgrind-compile-errors' into maintSverker Eriksson
* sverker/crypto/valgrind-compile-errors: crypto: Fix compile errors for make target 'valgrind'
2017-07-20asn1: Fix missing quotes of external encoding callSverker Eriksson
introduced by 8e4a9864385242b962ce7446f7daa4f58cfecca5.
2017-07-20Improve spec and doc for inet:get_rc/0Raimo Niskanen
2017-07-20Change crypto:rand_bytes/1 deprecated -> removedRaimo Niskanen
2017-07-18lukas/erts/remove-non-smp/OTP-14518Lukas Larsson
Remove support for the non-smp emulators
2017-07-17Update HOWTO after non-smp removalLukas Larsson
2017-07-17Don't build or test plain emu in travis any moreLukas Larsson
2017-07-17erts: Replace usage of all erts_smp prefixes to just ertsLukas Larsson
2017-07-17Fix testcases after removal of non-smp emulatorLukas Larsson
2017-07-17erts: Cleanup alloc.types after non-smp removalLukas Larsson
2017-07-17erts: Cleanup configure and makefiles after non-smp removalLukas Larsson
2017-07-17erts: Cleanup removal of non-smp emulatorsLukas Larsson
2017-07-17erts: Remove ERTS_SMP and USE_THREAD definesLukas Larsson
This refactor was done using the unifdef tool like this: for file in $(find erts/ -name *.[ch]); do unifdef -t -f defile -o $file $file; done where defile contained: #define ERTS_SMP 1 #define USE_THREADS 1 #define DDLL_SMP 1 #define ERTS_HAVE_SMP_EMU 1 #define SMP 1 #define ERL_BITS_REENTRANT 1 #define ERTS_USE_ASYNC_READY_Q 1 #define FDBLOCK 1 #undef ERTS_POLL_NEED_ASYNC_INTERRUPT_SUPPORT #define ERTS_POLL_ASYNC_INTERRUPT_SUPPORT 0 #define ERTS_POLL_USE_WAKEUP_PIPE 1 #define ERTS_POLL_USE_UPDATE_REQUESTS_QUEUE 1 #undef ERTS_HAVE_PLAIN_EMU #undef ERTS_SIGNAL_STATE
2017-07-17erts: Remove usage of sys.h from etc toolsLukas Larsson