Age | Commit message (Collapse) | Author |
|
* bjorn/stdlib/filelib-wildcard/OTP-10812:
Remove special case handling "-" at the beginning of a charset
Optimize character sets using gb_sets
Clean up and simplify the inner matching loop
Only sort the result list once, just before returning
Replace filename:join/2 with '++'
Rethink the filelib:wildcard() functions
Don't redefine error/1
Don't allow binaries as the Cwd argument for filelib:wildcard()
Don't handle binaries from file:list_dir/1
Strengthen test suite
|
|
* bjorn/stdlib/types:
Make the file:filename() type more restrictive
c: Remove handling of binaries in return from file:list_dir/1
|
|
Make sure io_lib:fwrite() with a format string including "~ts" does
not crash when given binaries that cannot be interpreted as
UTF-8-encoded strings.
We want to avoid crashes caused by excessive use of the 't' modifier.
|
|
We don't need this special case, since "-" is only special between
two other characters.
|
|
|
|
Use list comprehensions and 'orelse' to make the code more concise.
Rename wildcard_5/2 to match_part/2 to make it clearer what it does.
If the pattern always matches, don't test it in every iteration of
the loop.
|
|
There does not seem to be any advantage of sorting the result of
file:list_dir/1 directly. Disadvantages are that we'll need to be
careful to keep the result sorted, and that we could waste time
sorting filenames that the pattern matching will discard anyway.
|
|
Under controlled circumstances (and we are in control of the
circumstances), filename:join/2 can be replaced with '++'.
'++' is faster because it is implmented in C, does not need to
look at the list elements it copies, and does not need to copy
its right operand.
|
|
Commit 70b5e24c9498225fadc08d19503269c8aad851bf broke
filelib:wildcard(Pattern, ".").
Over the years, the logic for filelib:wilcard() has become a mess
of special cases.
Probably because of premature optimization, filelib:wildcard(Pattern)
and filelib:wildcard(Pattern, Cwd) are handled differently.
They can be consolidated if we use a "." as the default Cwd argument.
We can also simplify things by compiling the Cwd argument into the
wildcard. We did not that in the initial implementation because it
used to be possible to pre-compile a wildcard and pass it to
filelib:wildcard/{1,2}. Since that is no longer possible, there is
no point in keeping the compiled wildcard "portable" (not dependent
on the Cwd argument).
|
|
It is confusing. Rename our own exception-generating function to
badpattern/1.
|
|
filelib:wildcard() will no longer support "raw filenames", so it
makes no sense for it to accept a binary Cwd argument.
|
|
In R16B, file:list_dir/1 will never return binaries.
|
|
The recommended type for filenames is a list of characters (which
may be Unicode characters greater than 255). Change the
file:filename() to reflect that.
For the filename module we still need a type that can be either
a string or a binary, so we need to introduce the type
file:filename_all().
|
|
file:list_dir/1 will no longer return binaries.
|
|
Binaries were pretty printed too often.
|
|
|
|
* bjorn/remove-tuple-funs/OTP-10170:
erl_eval: Don't allow evaluation of {M,F} in the shell
|
|
Tuples funs were removed in de7e01c958ff7c9e6da4034a53567a30a4ae5792,
but it was still possible to evaluate tuple funs in the shell.
|
|
|
|
|
|
Unicode related.
|
|
|
|
|
|
There are currently no keywords reserved for the future.
|
|
All guards BIFs are auto-imported. That can be verified like this:
[] = [{F,A} || {erlang,F,A} <- erlang:system_info(snifs),
erl_internal:guard_bif(F, A),
not erl_internal:bif(F, A)]
Therefore, calling a guard BIF in a guard without a module name
is always allowed (provided that there is not a local function or
an import with the same name), and therefore we can remove the
error reporting code. But keep an assertion so that we will find
out if any non-auto-imported guard BIFs are added in the future.
|
|
* bjorn/remove-tuple-funs/OTP-10170:
erl_lint: Removes vestiges of tuple fun support
|
|
* bjorn/remove-packages/OTP-10348:
erl_lint: Remove vestiges of package support
shell: Remove vestiges of package support
|
|
|
|
1c1649481025236cad29a7ee3cbd8f552757b2b6 dropped support for
packages in erl_lint, but did not remove the error message
for {bad_module_name,M}.
|
|
Remove the which/1 command which provides no useful information
for a non-package module.
Remove references to the deleted commands import/1, import_all/1,
use/1, and use_all/1 (removed in f31ee362c3421922518).
Remove code that handles {module,_} in bindings.
|
|
The warnings for deprecated tuple funs were removed in
de7e01c958ff7c9e6da4034a53567a30a4ae5792.
|
|
In order to simplify the testing of Unicode atoms a minor adjustment
has been made in io_lib_pretty. Unicode atoms will not be introduced
until R18 but it may come in handy to be able to pretty-print such
atoms in R16. This update affects ~p only; ~w already works.
|
|
|
|
The type erl_parse:token() used to be a two-tuple, but it can also be
a three-tuple.
|
|
|
|
The value of the undocumented unicode option is very limited. The option
will most likely be removed completely soon.
|
|
|
|
|
|
The code related to the introduction of unicode_string() and
unicode_char() has been removed. The types char() and string() have
been extended to include Unicode characters.
In fact char() was changed some time ago; this commit is about
cleaning up the documentation and introduce better names for some
functions.
|
|
Also minor corrections of the docs of io(3)
|
|
* bjorn/warnings-zero-tolerance:
Turn warnings to errors on selected applications
runtime_tools_sup: Eliminate warning
inet_parse: Eliminate a compiler warning
|
|
* sal/float_to_list_2/OTP-10752:
Text representation of a float formatted using given options.
|
|
* fh/shell_history_search/OTP-10739:
Add search to Erlang shell's history
|
|
|
|
* ae/stdlib/faster_queue/OTP-10722:
Fix bug in queue:out/1, queue:out_r/1 that makes it O(N^2) in worst case
|
|
* lh/forget-mnemosyne/OTP-10729:
Remove what remains of the Mnemosyne code
Remove support for the query keyword and query expressions
|
|
The type ascii_string() in the base64 module has been corrected.
The type file:file_info() has been cleaned up.
The type file:fd() has been made opaque in the documentation.
The type nodes() has been removed from erl_bif_types.erl.
|
|
This BIF solves a problem of float_to_list/1 that doesn't allow
specifying the number of digits after the decimal point when
formatting floats.
float_to_list(Float, Options) -> string()
Float = float()
Options = [Option]
Option = {decimals, Decimals::0..249} |
{scientific, Decimals::0..249} |
compact
Returns a string which corresponds to the text representation of
a `Float` formatted using given options.
When decimals option is specified the returned value will contain
at most `Decimals` number of digits past the decimal point.
When `compact` option is provided the trailing zeros at the end
of the list are truncated (this option is only meaningful together
with the `decimals` option). When `scientific` option is provided,
the float will be formatted using scientific notation with
`Decimals` digits of precision. If `Options` is `[]` the function
behaves like `float_to_list/1`. When using `decimals` option and
the number doesn't fit in the static internal buffer of 256 bytes
the function throws `badarg`.
|
|
Search mode can be entered by pressing ctrl-r. Enter terms and press
ctrl-r again to search backwards, or ctrl-s to then search forward (if
you terminal doesn't eat up that one). Press enter to execute the line,
or use tab, arrow keys, or other control sequences (^D, ^K, etc.) to
exit search mode while remaining on the last found line. Exiting is also
possible by pressing the escape key twice.
The search mode is a simpler version of the one available in bash or
zsh shells.
This adds a few modes to the shell (search, on top of none and meta) in
group.erl for history search, and a few more in edlin.erl to change the
meaning of control sequences while searching.
|
|
* nox/enable-silent-rules/OTP-10726:
Implement ./otp_build configure --enable-silent-rules
|