aboutsummaryrefslogtreecommitdiffstats
path: root/lib/sasl/src
AgeCommit message (Collapse)Author
2018-11-06Add a persistent term storageBjörn Gustavsson
Persistent terms are useful for storing Erlang terms that are never or infrequently updated. They have the following advantages: * Constant time access. A persistent term is not copied when it is looked up. The constant factor is lower than for ETS, and no locks are taken when looking up a term. * Persistent terms are not copied in garbage collections. * There is only ever one copy of a persistent term (until it is deleted). That makes them useful for storing configuration data that needs to be easily accessible by all processes. Persistent terms have the following drawbacks: * Updates are expensive. The hash table holding the keys for the persistent terms are updated whenever a persistent term is added, updated or deleted. * Updating or deleting a persistent term triggers a "global GC", which will schedule a heap scan of all processes to search the heap of all processes for the deleted term. If a process still holds a reference to the deleted term, the process will be garbage collected and the term copied to the heap of the process. This global GC can make the system less responsive for some time. Three BIFs (implemented in C in the emulator) is the entire interface to the persistent term functionality: * put(Key, Value) to store a persistent term. * get(Key) to look up a persistent term. * erase(Key) to delete a persistent term. There are also two additional BIFs to obtain information about persistent terms: * info() to return a map with information about persistent terms. * get() to return a list of a {Key,Value} tuples for all persistent terms. (The values are not copied.)
2018-09-27Update kernel, stdlib and sasl appups for OTP-21.2Siri Hansen
2018-06-18Update copyright yearHenrik Nord
2018-06-11[logger] Change default primary log level to 'notice'Siri Hansen
Log events issued via error_logger:info_msg or error_logger:info_report are now forwarded to Logger with level 'notice' instead of 'info'. Log events issued by gen_* behaviours are also changed from level 'info' to level 'notice'. Progress reports are still 'info', and can therefore easily be included/excluded by changing the primary log level. By default, they are not logged.
2018-06-08[logger] Change name of handler specific config field from ?MODULE to 'config'Siri Hansen
And add field 'module' in handler config.
2018-06-08[logger] Change base OTP domain from [beam,erlang,otp] to [otp]Siri Hansen
2018-05-23Rename module logger_simple to logger_simple_hSiri Hansen
Also, change HandlerId from logger_simple to simple.
2018-05-23Change handler id for sasl handler from sasl_h to saslSiri Hansen
2018-05-23Change Compare parameter to logger_filters:domain/2Siri Hansen
This configuration option has been removed. logger_formatter will read the utc_log configuration parameter and format the timestamp accordingly.
2018-05-21Add filter to sasl_h which stops log events with remote glSiri Hansen
2018-05-03Set single_line=true by default in logger_formatterSiri Hansen
2018-04-27Merge branch 'siri/kernel/logger/OTP-13295'Siri Hansen
* siri/kernel/logger/OTP-13295: Add documentation of the built-in logger handlers Catch badarg in logger:get_format_depth/0 Add chars_limit option to logger_formatter Don't kill logger process until all other processes are dead Set call timeout for logger_server to infinity Update primary bootstrap Test cuddle for logger Update cth_log_redirect to a logger handler Start using logger internally in kernel and stdlib Remove error_logger process and add logger process Add logger
2018-04-26Update appups in kernel, stdlib and sasl for OTP-21.0Siri Hansen
2018-04-26Remove error_logger process and add logger processSiri Hansen
2018-04-19Merge branch 'maint'Siri Hansen
* maint: Updated OTP version Prepare release Update appup file for sasl Fix bug in hybrid boot file used for restart_new_emulator Conflicts: OTP_VERSION lib/sasl/src/sasl.appup.src
2018-04-18Update appup file for saslSiri Hansen
2018-04-16Fix bug in hybrid boot file used for restart_new_emulatorSiri Hansen
The old hybrid did not update preloaded and mandatory module lists and kernel processes.
2018-03-21Implementation of true asynchronous signaling between processesRickard Green
Communication between Erlang processes has conceptually always been performed through asynchronous signaling. The runtime system implementation has however previously preformed most operation synchronously. In a system with only one true thread of execution, this is not problematic (often the opposite). In a system with multiple threads of execution (as current runtime system implementation with SMP support) it becomes problematic. This since it often involves locking of structures when updating them which in turn cause resource contention. Utilizing true asynchronous communication often avoids these resource contention issues. The case that triggered this change was contention on the link lock due to frequent updates of the monitor trees during communication with a frequently used server. The signal order delivery guarantees of the language makes it hard to change the implementation of only some signals to use true asynchronous signaling. Therefore the implementations of (almost) all signals have been changed. Currently the following signals have been implemented as true asynchronous signals: - Message signals - Exit signals - Monitor signals - Demonitor signals - Monitor triggered signals (DOWN, CHANGE, etc) - Link signals - Unlink signals - Group leader signals All of the above already defined as asynchronous signals in the language. The implementation of messages signals was quite asynchronous to begin with, but had quite strict delivery constraints due to the ordering guarantees of signals between a pair of processes. The previously used message queue partitioned into two halves has been replaced by a more general signal queue partitioned into three parts that service all kinds of signals. More details regarding the signal queue can be found in comments in the erl_proc_sig_queue.h file. The monitor and link implementations have also been completely replaced in order to fit the new asynchronous signaling implementation as good as possible. More details regarding the new monitor and link implementations can be found in the erl_monitor_link.h file.
2018-03-05Merge pull request #1560 from tsloughter/no_warn_sysconfigSiri Hansen
Include sys.config.src in release tar file OTP-14950
2018-01-14support sys.config.src in place of sys.config that is not verifiedTristan Sloughter
2017-11-30Add a mutable binary buffer type (prim_buffer)John Högberg
2017-10-23Merge branch 'maint'Siri Hansen
2017-10-17[rb] Don't fail for unexpected type of reportSiri Hansen
rb would fail to show an error_logger report which was not a list. This is now corrected and any term is allowed (as specified in the error_logger reference manual).
2017-09-20Merge branch 'maint'Dan Gudmundsson
* maint: erts, stdlib: Fix xmllint warning Update runtime deps to depend on new stdlib functionality
2017-09-20Merge branch 'dgud/update-runtime-deps' into maintDan Gudmundsson
* dgud/update-runtime-deps: Update runtime deps to depend on new stdlib functionality
2017-09-19Update runtime deps to depend on new stdlib functionalityDan Gudmundsson
~tw and new string functions are new since OTP-20 (stdlib-3.4)
2017-09-18Update appup in stdlib and sasl for OTP-20.1Siri Hansen
2017-09-15Merge branch 'siri/string-new-api'Siri Hansen
* siri/string-new-api: (28 commits) hipe (test): Do not use deprecated functions in string(3) dialyzer (test): Do not use deprecated functions in string(3) eunit (test): Do not use deprecated functions in string(3) system (test): Do not use deprecated functions in string(3) system (test): Do not use deprecated functions in string(3) mnesia (test): Do not use deprecated functions in string(3) Deprecate old string functions observer: Do not use deprecated functions in string(3) common_test: Do not use deprecated functions in string(3) eldap: Do not use deprecated functions in string(3) et: Do not use deprecated functions in string(3) os_mon: Do not use deprecated functions in string(3) debugger: Do not use deprecated functions in string(3) runtime_tools: Do not use deprecated functions in string(3) asn1: Do not use deprecated functions in string(3) compiler: Do not use deprecated functions in string(3) sasl: Do not use deprecated functions in string(3) reltool: Do not use deprecated functions in string(3) kernel: Do not use deprecated functions in string(3) hipe: Do not use deprecated functions in string(3) ... Conflicts: lib/eunit/src/eunit_lib.erl lib/observer/src/crashdump_viewer.erl lib/reltool/src/reltool_target.erl
2017-09-15sasl: Do not use deprecated functions in string(3)Hans Bolinder
2017-09-07Merge branch 'maint'Siri Hansen
2017-09-05sasl: set encoding of SASL report logSiri Hansen
This can now be explicitly set by the 'sasl_error_logger' configuration parameter, but if not set, the default encoding is now utf8. When printing to this log, the Unicode translation modifier, t, might be used in the format string.
2017-09-05sasl: Improve handling of UnicodeHans Bolinder
There is more to do.
2017-07-07Merge branch 'maint'Siri Hansen
2017-07-07[sasl] Improve handling of unicode strings and atomsSiri Hansen
2017-07-07Merge branch 'siri/appups-21'Siri Hansen
* siri/appups-21: Update sasl/test/test_lib.hrl with recent versions of kernel and stdlib Update appups in kernel, stdlib, and sasl for OTP-21.0
2017-06-29Update appups in kernel, stdlib, and sasl for OTP-21.0Siri Hansen
2017-06-22[sasl] Remove out-dated modules si and si_sasl_suppSiri Hansen
2017-06-19Update copyright yearHans Nilsson
2017-06-16[sasl] Improve handling of unicode in rbSiri Hansen
2017-06-16[sasl] Improve handling of unicode atomsSiri Hansen
2017-05-18kernel: Introcude error_logger:get_format_depth()Hans Bolinder
2017-05-04Update copyright yearRaimo Niskanen
2017-02-16Merge pull request #1323 from bitwalker/erl_tar2Björn Gustavsson
Update erl_tar to support PAX format (redux) OTP-14226
2017-02-16Update erl_tar to support PAX format, etc.Paul Schoenfelder
This commit introduces the following key changes: - Support for reading tar archives in formats currently in common use, such as v7, STAR, USTAR, PAX, and GNU tar's extensions to the STAR/USTAR format. - Support for writing PAX archives, only when necessary, using USTAR when possible for greater portability. These changes result in lifting of some prior restrictions: - Support for reading archives produced by modern tar implementations when other restrictions described below are present. - Support for filenames which exceed 100 bytes in length, or paths which exceed 255 bytes (see USTAR format specification for more details on this restriction). - Support for filenames of arbitrary length - Support for unicode metadata (the previous behaviour of erl_tar was actually violating the spec, by writing unicode-encoded data to fields which are defined to be 7-bit ASCII, even though this technically worked when using erl_tar at source and destination, it may not have worked with other tar utilities, and this implementation now conforms to the spec). - Support for uid/gid values which cannot be converted to octal integers.
2017-02-09Merge branch 'maint'Siri Hansen
Conflicts: lib/sasl/test/systools_SUITE.erl
2017-02-07[systools] Fix return value for warnings_as_errors + silentSiri Hansen
When both options 'warnings_as_errors' and 'silent' were given to systools:make_script or systools:make_relup, no error reason would be returned if warnings occured. Instead only the atom 'error' was returned. This is now corrected. Options 'warnings_as_errors' and 'no_warn_sasl' are now also allowed for systools:make_tar.
2016-11-11Merge branch 'siri/appups-20.0'Siri Hansen
* siri/appups-20.0: Update sasl/test/test_lib.hrl with recent versions of kernel and stdlib Update appups in kernel, stdlib and sasl for OTP-20
2016-11-09Accept default value of 'start_phases' and 'mod' in .appTristan Sloughter
The default value of 'mod' is '[]' and 'start_phases' is 'undefined' in .app, but this value was not accepted if given in the .app file. This is now corrected.
2016-09-27Update appups in kernel, stdlib and sasl for OTP-20Siri Hansen
2016-08-29Perform check_process_code while process is executing dirtyRickard Green