Age | Commit message (Collapse) | Author |
|
* bjorn/erts/refactor-beam_makeops:
Allow multiple types per argument for specific instructions
Modernize subroutine calls by removing '&'
Eliminate the -gen_dest macro flag
|
|
* bjorn/cuddle-with-tests:
code_SUITE: Remove unused functions
Eliminate warning for variable 'Config' being unused
compile_SUITE: Don't create a directory called 'core'
Don't crash in end_per_testcase/2 in code_SUITE:on_load_embedded/1
|
|
Improve bit syntax example page
|
|
Call get_stacktrace/0 in a safer way
|
|
Remove duplicate aes_gcm from a list of ciphers
|
|
Inroduce syntactic sugar so that we can write:
get_list xy xy xy
instead of:
get_list x x x
get_list x x y
get_list x y x
get_list x y y
get_list y x x
get_list y x y
get_list y y x
get_list y y y
|
|
In Perl 5, '&' on direct subroutine calls are optional.
|
|
Instructions that take a 'd' argument needs a -gen_dest flag in their
macros. For example:
%macro:put_list PutList -pack -gen_dest
put_list s s d
-gen_dest was needed when x(0) was stored in a register, since it is
not possible to take the address of a register. Now that x(0) is stored
in memory and we can take the address, we can eliminate gen_dest.
|
|
* ferd/kernel/shell-history-storage/OTP-14409:
Add persistence to history of the non-legacy shell
add option 'quiet' to disk_log
Fix type declaration for disk_log.hrl
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
because there is a bug in the client verification code for those algorithms
|
|
|
|
|
|
|
|
Conflicts:
lib/ssh/src/ssh_transport.erl
|
|
Conflicts:
lib/ssh/src/ssh_transport.erl
|
|
* dgud/observer/chunk-proc-info:
observer: Fix alpabetic ordering when sorting on Name
observer: Handle crash when node goes down
observer: listen on correct notebook change
observer: chunk process list info
|
|
* dgud/wx/fix-msvc-2015:
wx: Fix builds on VS-2017
|
|
This patch adds a mechanism by which shell history gets stored
persistently on disk and gets loaded whenever a new shell session
begins.
The log files are added to the user's cache directory, with multiple
files in it, although the location is configurable.
All Erlang instances on a given host will share the same log file.
There are two hook points in group.erl that are used: when instantiating
the buffer, where we fetch from disk, and when adding a line to the
buffer (gets stored).
This allows all shell instances to use the same base set of lines when
loaded, but to keep their history separate after the fact. As lines are
added as you go, a new shell session (with ^G -> s -> c) will have
access to previous sessions' lines.
The implementation makes use of the disk_log library with a rotating log
in order to store data, and allow automated repairs.
By default, the feature is disabled and must be turned on through OTP
environment variable part of the kernel application. The options
include:
| Option | Accepted values | Default | Description |
| ------------------------ | ----------------- |---------- | -------------------- |
| shell_history | enabled, disabled | disabled | turn feature on/off |
| shell_history_path | any string | user cache| where to put files |
| shell_history_file_bytes | 51200..N bytes | 512kb | max data size (>50kb)|
| shell_history_drop | ["q().", ...] | [] | blacklisted lines |
A version header is added to the disk_log configuration, allowing
changes in the storage format to be enacted in the future (i.e. adding
segmentation by node name in the same file, or encoding) without
conflict.
Log rotation is used with multiple log files to ensure proper
enforcement of resizing without too much data loss. Because disk_log
does not allow to just flush bits of content on rewrite (it truncates
any full file), we instead use a wrap log and try to divide the
configured size into up to 10 log files so that every time we rotate a
log, we lose only 10% of the data. This remains true for corrupted files
that cannot fully be repaired.
This many-logs-based approach in turn forces the use of a minimal log
size for the `shell_history_file_bytes` configuration, since it has to
be divided by 10.
The shell history is not loaded for the `user` process which, despite
running the group.erl module, does not actually require history as it
mostly just forwards IO protocol information.
|
|
This option allows to suppress output of info_msgs to error_logger when
recoverable errors are encountered in disk_log by setting the value to
'true'.
Defaults to 'false', the backwards compatible behaviour.
|
|
A specific type was given as an atom rather than an actual type
defintion.
|
|
proc_lib calls erlang:get_stacktrace/0 twice, which is unnecessary,
and potentially unsafe since there are calls to many functions
in between. Any of the calls could potentially cause and catch
an exception, invalidating the stacktrace.
Only call erlang:get_stacktrace/0 once, and pass the result to
the second place where it is needed.
|
|
It happens to work today, but it is potentially unsafe to call
io:format/2 before calling erlang:get_stacktrace/0. Make the
code safe by calling erlang:get_stacktrace/0 directly after
catching the exception.
|
|
Fix a few minor issues in the lcnt documentation
|
|
|
|
|
|
Simplify building a lock-counting emulator
|
|
A core dump can't be created with the name 'core' if there is
a directory named 'core'.
Rename the test case from core/1 to core_pp/1 so that the directory
name can be the same as the test case name. It also makes sense
to use a less generic name for the test case.
|
|
We generally avoid abbreviations such as "e.g." and "i.e." in
the documentation. We write "Erlang", not "erlang" (except when
referring to the erlang module).
|
|
|
|
When doing a Google search for "bit syntax", you could end up
on the programming examples page about bit syntax. The example
page has some reference material, but is far from complete.
Therefore, add a link to the page about bit syntax in the
Reference Manual.
https://bugs.erlang.org/browse/ERL-387
|
|
* ingela/dtls/opts:
ssl: Adopt setopts and getopts for DTLS
|
|
|
|
* lukas/erts/trace_recv_esdp_bug/OTP-14411:
erts: the esdp is not always available in matchspec
|
|
Revise minor notation in httpc:request/[4,5]
|
|
* ingela/remove-debug:
ssl: Remove debug printout
|
|
|
|
enif_monitor_process() typo
|
|
|
|
|
|
|
|
erts: Remove old unused functions
|
|
The functions have been found using: https://github.com/caolanm/callcatcher
|
|
erts: Make erts_schedule_proc2port_signal static
|