Age | Commit message (Collapse) | Author |
|
ETS bag tables have very poor performance on insertion if you have lots
of rows with duplicate keys, since it has to check each existing record
and make sure it's not inserting any duplicates. This can lead to some
pretty drastic slowdowns when inserting lots of rows into an Mnesia
table, IF you're introducing lots of duplicate values into an indexed
column.
As it turns out, we can fix this by switching to duplicate_bag tables
for storing Mnesia indexes on tables of type 'set', and it ultimately
makes no functional difference since we will never actually attempt to
insert any duplicate records anyway. (We would have to make some bigger
changes to make this work for Mnesia bag tables though, so that is left
as a possible enhancement for the future.)
|
|
* lh/otp-optims/OTP-11035:
Use erlang:demonitor's flush option on timeout
Don't lookup the node unless required in gen:call/{3,4}
|
|
|
|
* sverk/dets_remove_test_otp_9607:
stdlib: Fix unstable testcase ets_SUITE:delete_large_named_table
stdlib: Remove obsolete testcase dets_SUITE:otp_9607
|
|
* ks/hipe-cleanup-escaping/OTP-11031:
Loosen the assumptions of code that handles escaping functions
|
|
* mar/cover-fix/OTP-11028:
Delete ets tables when stopped
fix a race condition when there're several applications in apps directory
|
|
* sa/dialyzer-bitstring-fixes/OTP-11027:
Minor refactorings
Fix minor error in natively compiled module list
Fix notification for duplicate modules
Fix an error in the type inference of bitstring data
|
|
* siri/common_test/unexpected_io/OTP-10494:
[common_test] Add test for unexpected I/O
[common_test] Send unexpected logging to test_server's unexpected_io.log
[test_server] Add test_server_io:print_unexpected/1
|
|
|
|
* fredrik/stdlib/fix_broken_link:
Fixed broken links in sys.html
|
|
* anders/diameter/service_config/OTP-11017:
Fix handling of unknown options to diameter:start_service/2
|
|
* anders/diameter/release_notes/OTP-11014:
Fix faulty capitalization in generated release notes
|
|
* fredrik/ssh/ssh_daemon_pass_arg/OTP-10975:
ssh: If not valid expression, rather than generate a error, try to use the cmd.
|
|
* siri/cuddle-with-tests:
[reltool] Clean up work dir after test
[observer] Add debug printouts in ttb_SUITE
|
|
|
|
If it could not be decided which test case a certain log printout
belonged to, the common test framework log was earlier used. Such
printouts are now instead sent to unexpected_io.log in test_server so
that there is only one place to look for "missing" printouts.
|
|
To use from any process to print a string in the unexpected_io.log.
|
|
|
|
Even though dialyzer_typesig is the module doing most of the work, compiling it
to native code twice will not make it faster than the rest. :-)
|
|
Dialyzer fails when asked to analyze multiple modules with the same name, but
the error message was erroneous. With this patch Dialyzer generates a correct
error message.
Bug reported and patch submitted by Maxim Treskin.
|
|
Dialyzer was constraining bitstring data used in the construction of other
bitstring values too much. These constraints have now been relaxed.
|
|
|
|
* ia/ssl/crypto/PSK-SRP/doc:
ssl & crypto: Documentation enhancements
|
|
Diameter = the protocol
diameter = the Erlang application
|
|
{error, Reason} is now returned, instead of the options being ignored.
Note that diameter:add_transport/2 purposely ignores unknown options and
that the behaviour is documented. This is historic: some users depend on
it in order to store their own options for identifying transport config,
instead of using the reference returned by add_transport.
|
|
|
|
OTP-10450
|
|
|
|
* siri/test_server/hanging-io-request/OTP-10991:
[test_server] Don't hang due to invalid io request
|
|
* siri/common_test/force_stop-skip_rest/OTP-10856:
[common_test] Document '-force_stop skip_rest' option to ct_run
[common_test] Add tests for repeated testruns
[common_test] Add support for testing repeated testruns
[common_test] Add -force_stop skip_rest option when repeating tests
|
|
* sv/stdlib/sys-get-state/OTP-11013:
Removed ?line macro
add sys:get_state/1,2 and sys:replace_state/2,3
update sys:get_status/2,3 documentation for gen_event
|
|
|
|
|
|
* ia/ssl/PSK-SRP:
ssl: Use new SRP crypto API
crypto: New SRP API
CRYPTO: add algorithms/0 function that returns a list off compiled in crypto algorithms
ssl: Add option to list all available ciper suites and enhanced documentation
SSL: add documentation for PSK and SRP ciphers options
SSL: enable hash_size values for sha224, sha384 and sha512
SSL: add tests for PSK and SRP ciphers
SSL: add TLS-SRP (RFC 5054) cipher suites
CRYPTO: add support for RFC-2945 SRP-3 and RFC-5054 SRP-6a authentication
crypto: Refactor mod_exp_nif
SSL: add TLS PSK (RFC 4279 and RFC 5487) cipher suites
|
|
|
|
Adjust API to better fit in with similar funtions in crypto
|
|
algorithms
add algorithms/0 function that returns a list off compiled in crypto algorithms
and make tests suites with SHA226, SHA256, SHA384 and SHA512 conditional based
on that
|
|
|
|
* nox/fix-bc-optim/OTP-11005:
Add a new option +clint0 to the compiler
Fix optimization of some binary comprehensions
|
|
* nox/fix-snmp-gitignore/OTP-11004:
Fix SNMP gitignore files
|
|
|
|
At Erlang Factory 2013 there was discussion during one of the talks about
the sys:get_status functions and how useful they were for debugging. Geoff
Cant mentioned it would be very useful if the sys module also provided
functions to use while debugging to get just the state of a process and
also to be able to replace the state of a process, and many others in the
audience appeared to agree.
The sys:get_state/1,2 functions return the state of a gen_server, gen_fsm,
or gen_event process. The return value varies depending on the process
type: process state for a gen_server, state name and state data for a
gen_fsm, and handler module, handler id, and handler state for each handler
registered in a gen_event process.
The sys:replace_state/2,3 functions allow the state of a gen_server,
gen_fsm, or gen_event process to be replaced with a new state. These
functions take a function argument that updates or replaces the process
state; using a function to change the state eliminates the race condition
of first reading the state via sys:get_state/1 or sys:get_state/2, using
its return value to create a new state, and then replacing the old state
with the new state, since during that time the process might have received
other calls or messages that could have changed its state.
* For a gen_server process, the state replacement function takes the
process state as an argument and returns a new state.
* For a gen_fsm process, the state replacement function gets a tuple of
{StateName, StateData} and returns a similar tuple that specifies a new
state name, new state data, or both.
* For a gen_event process, the state replacement function is called for
each registered event handler. It gets a tuple {Module, Id, HandlerState}
and returns a similar tuple that specifies the same Module and Id values
but may specify a different value for HandlerState.
If the state replacement function crashes or results in an error, the
original state of a gen_server or gen_fsm process is maintained; if such a
crash occurs for a gen_event process, the original state of the event
handler for which the state replacement function was called is maintained,
but the states of other event handlers of the same gen_event process may
still be updated if no errors or crashes occur while replacing their
states.
Add documentation for sys:get_state/1,2 and sys:replace_state/2,3. The
documentation explicitly notes that the functions are intended for use
during debugging.
Add new tests for these functions to gen_server_SUITE, gen_fsm_SUITE, and
gen_event_SUITE.
|
|
* mh/emacs-package/OTP-10999:
erlang-mode: Add autoload cookies for file extension associations
|
|
* mh/dialyzer-scan-error/OTP-10996:
Improve Dialyzer output for scan errors
|
|
It is equivalent to the few lines removed, except more efficient.
|
|
Move some operations that aren't required for the happy path.
The operations were small, so they shouldn't show a big difference
in benchmarks except for systems with many active gen processes.
|
|
|
|
Modify the documentation for the sys:get_status/2,3 functions to reflect
that they also work on gen_event processes, and add a cross reference for
gen_event:format_status/2 to go along with the existing cross references
for gen_server and gen_fsm.
|
|
A bug has been fixed: when given the option {encoding,utf8} a list of
floating point numbers (in the correct interval) was mistakenly
returned as a string.
|
|
* hb/stdlib/unicode_bugfix/OTP-10990:
Fix a bug in the Erlang scanner
|