Age | Commit message (Collapse) | Author |
|
bjorng/bjorn/stdlib/fix-file_lib-wildcard/ERL-1029/OTP-15987
Fix filelib:wildcard/1,2 for patterns containing ".." and/or "@"
|
|
`..` was broken and only worked when it was used in the beginning
of the pattern before any wildcard characters. For example:
1> filelib:wildcard("erts/..").
["erts/.."]
Using `..` preceded by wildcard characters would not work:
1> filelib:wildcard("*/..").
[]
`@` is not a wildcard character but is used internally in `filelib` as
an escape character and was not handled as other literal
characters. That could lead to performance degradation as it disabled
an optimization of the matching of the literal prefix of a pattern. It
would also cause the following example to fail:
1> filelib:wildcard("@/..").
[]
This commit corrects the handling `..` and also makes sure that the
use of `@` in a pattern does not degrade performance.
https://bugs.erlang.org/browse/ERL-1029
|
|
Code such as ets:fun2ms(fun({"foo" ++ X}) -> X end) works fine in
compiled code. Let's make it work when fun2ms is invoked from the
shell as well.
|
|
* rickard/pcre-8.43/OTP-15889:
Updated stdlib runtime dependency to erts
Convert generated re replace and split tests from latin1 to UTF8
Adjust generated re replacement and split tests
Generate new re replacement and split tests using perl 5.22.1
Update internal PCRE to version 8.43
|
|
`ordsets:union/1` is not especially efficient when calculating the
union of many ordsets. Rewrite it to use the highly optimized
`lists:umerge/1`.
|
|
|
|
rickard/re-unicode-validation/OTP-15831/OTP-15836/ERL-876
* rickard/re-yield-unicode-validation/OTP-15836/ERL-876:
Update runtime dependency from stdlib to erts
Yield when validating UTF8 for long subject in re:run()
Add yield_on_subject_validation() test
|
|
|
|
rickard/re-unicode-validation/OTP-15831/OTP-15836/ERL-876
* rickard/re-global-unicode-validation/OTP-15831/ERL-876:
Update runtime dependency from stdlib to erts
Only validate subject once when global is used in re:run()
Add global_unicode_validation() test
|
|
|
|
* hasse/stdlib/chars_limit_bug/OTP-15875/ERL-967:
stdlib: Fix a bug concerning io_lib option 'chars_limit'
# Conflicts:
# lib/stdlib/test/io_SUITE.erl
|
|
See also https://bugs.erlang.org/browse/ERL-967.
|
|
|
|
* hasse/stdlib/chars_limit_bug/OTP-15847/ERL-957:
stdlib: Fix a bug concerning io_lib option 'chars_limit'
# Conflicts:
# lib/stdlib/test/io_SUITE.erl
|
|
See also https://bugs.erlang.org/browse/ERL-957.
|
|
|
|
|
|
|
|
* maint:
Fix bad merge from maint-21
Fix bad merge from maint-21
Updated OTP version
Prepare release
# Conflicts:
# OTP_VERSION
# make/otp_version_tickets_in_merge
|
|
* hasse/stdlib/optimize_io_format/OTP-15705:
stdlib: Optimize pretty printing of strings with chars_limit
stdlib: Optimize printing of maps a bit
stdlib: Optimize pretty printing of lists slightly
|
|
* hasse/stdlib/check_spec_module/OTP-15563/ERL-845:
stdlib: Do not allow specs for functions in other modules
|
|
|
|
* raimo/stdlib/gen_statem-sync-timer-cancel/OTP-15295:
Rewrite to use synchronous timer cancel
|
|
See also https://bugs.erlang.org/browse/ERL-845.
[Kostis:]
My suggestion is that the compiler refuses to compile modules that
contain specs for functions that are not from this module. I do not
remember when / why this `feature' was introduced, but thinking about
it I see a lot of (ugly) semantics issues with it. For example, should
one be allowed to declare in the foo module that lists:flatten/1 takes
an integer() as an argument and returns a binary()? Should one be
allowed to declare a spec in some module m1 for a function of m2 that
is not defined in m2?
There are all kinds of checks that will need to be added to dialyzer
to protect itself from these semantics issues. The compiler already
refuses to compile modules that contain specs for non-existing
functions of the module. Similarly, it should refuse to compile
modules that contain specs for functions of other modules - unless it
can somehow check that these functions are indeed defined, but it is
not how the compiler currently works.
|
|
Avoid traversing all of string arguments when limiting the output with
the 'chars_limit' option.
|
|
|
|
|
|
Fixed bug in slice which wrongly could return <<>> for non-utf8 binary input.
Also give a better error reason when non-utf8 binaries are given as
input to some functions.
|
|
This reverts commit 425889ba69b69a9b6fb14bfbef121d51b78e853a.
|
|
|
|
|
|
Atomic elements such as atoms, '{}', '[]', and '<<>>' are output on
the same line in types, structs, lists, &c.
In particular types can be more compact, and easier to read.
A space is output after comma in tuples, to be more consistent.
|
|
* hasse/stdlib/erl_pp_quoted_atom_types/OTP-15756:
stdlib: Add option 'quote_singleton_atom_types' to erl_pp
|
|
The new option can be used by Dialyzer, which has traditionally quoted
singleton atom types.
The OTP team has decided not to use the convention in OTP
documentation, at least not for now. That is why the option is needed.
EDoc does not use the new option.
Syntax Tools does not have a similar option.
|
|
Issue an error for improper use of record_info/2 in a fun
OTP-15760
|
|
* hasse/stdlib/erl_pp_throw/OTP-15751:
stdlib: Fix a bug concerning exception class 'throw'
|
|
`record_info/2` is a pseudo-function that requires literal arguments
known at compile time. Therefore, the following usage is illegal:
f() -> fun record_info/2.
However, `erl_lint` did not issue a compilation error for this usage,
and the compiler would crash in a later pass.
https://bugs.erlang.org/browse/ERL-907
|
|
Since the introduction of the stack trace variable, the Erlang Pretty
Printer has left out the exception class 'throw' even when the stack
trace variable cannot be left out, which is not correct Erlang code.
The fix is to always include the exception class 'throw'.
An alternative is to exclude 'throw' exactly when the stack trace
variable is '_'.
|
|
An appliction outside of OTP may want to reuse then name of a module
that was previously included in OTP. Therefore, there should be
a way to suppress warnings for removed functions.
|
|
The warning would come out as:
Warning: call to rpc:safe_multi_server_call/2 will fail,
since it was removed in removed in OTP 19; use rpc:multi_server_call/2
^^^^^^^^^^^^^^^^^^
|
|
|
|
The entire overload module was removed in OTP 19. Stopping warning
for it now, since the module name could be used by code outside
OTP.
|
|
|
|
* maint:
Updated OTP version
Prepare release
# Conflicts:
# OTP_VERSION
# make/otp_version_tickets_in_merge
|
|
|
|
|
|
Jumping around in a compressed file is nowhere near as cheap as
for uncompressed files, as it requires reading and decompressing
up until the desired position. Using read_ahead will improve
performance slightly.
|
|
This reverts commit 0118046f9bda8dcf3594184fa439b79267db8017.
|
|
|
|
* bjorn/hipe-compilation/OTP-15596:
HiPE: Don't fail the compilation for unimplemented instructions
|