If the versions of kernel or stdlib have changed, attempting to update the primary bootstrap (using "./otp_build update_primary") will fail during the rebuild of the start scripts. The problem is that the app files in bootstrap/lib/*/ebin/*.app will not be refreshed if they exist, because of missing dependencies. Ultimately the dependencies should be fixed, but since there already is a bootstrap_clean target to work around missing dependencies, fix bootstrap_clean to also remove bootstrap/lib/*/ebin/*.app.
The code for generating the string table (which is now only used for bit syntax matching) in a BEAM file is quite complicated and potentially expensive when compiling modules with many thousands of clauses doing bit syntax matching. Simplify and optimize the code using bit syntax and binary:match/2 instead of the list operations in the original code.
When configuring erlang with --enable-native-libs, some core modules are compiled with hipe, yet because they are loaded before the code server, their native code is not loaded. The fix consists in quietly trying to load the native code for all loaded modules just after the code server is started.
* egil/fix-edoc-deprecations/OTP-8749: Fix deprecated references to http:request/4 in edoc
* egil/clean-inviso-warnings/OTP-8747: Update guards to the modern interface
* egil/clean-erl_interface-warnings/OTP-8748: Fix compiler warnings in erl_interface
* sverker/halfword-heap-fixes/OTP-8745: Mending halfword heap emulator
* sverker/one_offheap_list/OTP-8737: One off-heap list, to eliminate two words per ETS object.
Merging the three off-heap lists (binaries, funs and externals) into one list. This reduces memory consumption by two words (pointers) per ETS object.
* sverker/ets_select_hang/OTP-8732: Fix ets:select hanging on ordered_set with empty list as key.
* sverker/full_INTEGER_EXT/OTP-8540: term_to_binary use all 32 bits of INTEGER_EXT
* sverker/driver_int64_bug/OTP-8716: Fix bug that caused faulty 64-bit integers from drivers.
* sverker/crypto_type_error/OTP-8718: Fix type spec error in crypto
* sverker/nif_send3_test/OTP-8719: nif_SUITE send3 stress test
erl_db_tree.c incorrectly used NIL (empty list) as "lastkey" to mark start of the iteration. A real NIL key could then cause a select or match iteration to be restarted over and over again if the last key before a trap happended to be NIL. Changed NIL to THE_NON_VALUE. Should be ok as the initial key value can never be put into any continuation tuple.