| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The <c>size/1</c> BIF is not optimized by the JIT, and its use can
result in worse types for Dialyzer.
When one knows that the value being tested must be a tuple,
<c>tuple_size/1</c> should always be preferred.
When one knows that the value being tested must be a binary,
<c>byte_size/1</c> should be preferred. However, <c>byte_size/1</c> also
accepts a bitstring (rounding up size to a whole number of bytes), so
one must make sure that the call to <c>byte_size/</c> is preceded by a
call to <c>is_binary/1</c> to ensure that bitstrings are rejected. Note
that the compiler removes redundant calls to <c>is_binary/1</c>, so if
one is not sure whether previous code had made sure that the argument is
a binary, it does not harm to add an <c>is_binary/1</c> test immediately
before the call to <c>byte_size/1</c>.
|
| |
|
|
|
|
| |
OTP-18179
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add a --enable-deterministic-build to the configure script,
which sets ERL_DETERMINISTIC=yes throughout the relevant
Makefiles, which then invoke the relevant build stages with the
+deterministic option.
This addresses absolute paths being included in generated .erl files
and compiled .beam files that resulted in builds from different source
directories generating different artefacts (which is a component of the
issue in erlang#4482).
I think it would make sense to make this the default at some stage, but
I've put the change behind a flag for now to decouple
making deterministic OTP builds possible from making them the default.
Having +deterministic set results in compiler options being
removed from the module info for modules where this options was used.
This may have other implications for users of OTP.
For tests themselves, +determinism is not set, since many test cases
depend on accessing the test module's compilation options, or other
features not available in deterministic mode, in order to configure
themselves. For tests of the determinism feature specifically,
+deterministic must be explicitly passed to the compiler within the
relevant test cases.
|
| |
|
|\
| |
| |
| |
| | |
* maint:
Compile time no longer available
|
| |
| |
| |
| |
| |
| |
| |
| | |
A few functions still attempted to extract the "compile time"
of each module. This info used to be available when calling
Module:module_info but was removed "a long time ago". A first
removal was done in OTP-15330 and this removes some remaining
leftover cases.
|
|/ |
|
| |
|
|
|
|
|
|
| |
This is mostly to simplify debugging.
OTP-17817
|
|
|
|
| |
OTP-17533
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The option 'inet_backend' is now handled to make it possible
to specifically configure the inet-backend (inet or socket).
Also found what must be a very old bug in the tcp-transport
handling of transports (linkdb). It was supposed to be a list
but was initially just the atom 'undefined'. Result improper
list. Which may not have been an issue in practice if you only
used one transport...
OTP-17533
|
|
|
|
|
|
|
| |
The option 'inet_backend' is now handled to make it possible
to specifically configure the inet-backend (inet or socket).
OTP-17533
|
| |
|
|
|
|
| |
OTP-17049
|
|\ |
|
| | |
|
|\ \
| |/
| |
| | |
OTP-17012
|
| |\
| | |
| | |
| | |
| | |
| | | |
into maint
OTP-17012
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
In version 3 of the standard its *allowed* to have an 'empty'
statistics descriptor. ABNF for version 3:
statisticsDescriptor = StatsToken [LBRKT statisticsParameter *(COMMA
statisticsParameter) RBRKT]
This differ from version 1 where the ABNF looks like this:
statisticsDescriptor = StatsToken LBRKT statisticsParameter
*(COMMA statisticsParameter ) RBRKT
Note that there is some conflict with, for instance, auditReturnItem,
which required "some tweaking".
OTP-17012 (ERL-1405)
|
| | | |
|
|\ \ \
| |/ /
| | |
| | | |
OTP-16836
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Updated the expected nnumber of yecc warnings for the
v2 and v3 parser's.
OTP-16836
|
|\ \ \
| |/ / |
|
| |\ \
| | | |
| | | |
| | | |
| | | |
| | | | |
* lars/megaco/v3_v2_ipv6_address_error/OTP-16818:
[megaco|test] Add Test cases
[megaco] V2/V3 text parser IPv6 address failure
|
| | |/
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The v2/v3 decoders could handle all kinds of IPv6 addresses.
The reason for this was that some of the chars (a and e)
in the short form was interpreted as 'AddToken' and 'EventsToken'
respectively, which the v2/v3 parsers could not handle.
ABNF for the mId (only the IPv6 version):
mId = (( domainAddress / domainName ) [":" portNumber]) /
mtpAddress / deviceName
domainAddress = "[" (IPv4address / IPv6address) "]"
IPv6address = hexpart [ ":" IPv4address ]
hexpart = hexseq "::" [ hexseq ] / "::" [ hexseq ] / hexseq
hexseq = hex4 *( ":" hex4)
hex4 = 1*4HEXDIG
HEXDIG = ( DIGIT / "A" / "B" / "C" / "D" / "E" / "F" )
DIGIT = %x30-39 ; 0-9
Example: [2409:8050:5005:1243:1011::a]
The final 'a' (or 'e') caused it to fail.
OTP-16818
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
These have just been lying there takeing up space for
not good reason...
OTP-16560
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Update the app file (removed all (deprecated) prev3 codec(s)).
Also changed the message when setting a removed version3
encoding config (from warning when they where deprecated to
error since they are now removed).
OTP-16560
|
| | |
| | |
| | |
| | | |
OTP-16560
|
| | |
| | |
| | |
| | | |
OTP-16560
|
|/ /
| |
| |
| | |
OTP-16560
|
|\ \
| | |
| | |
| | | |
OTP-16631
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The mini decoder could handle all kinds of IPv6 addresses.
The reason for this was that the som of the chars (a and e)
in the short form was interpreted as 'AddToken' and 'EventsToke'
respectively, which the mini parser could not handle.
ABNF for the mId (only the IPv6 version):
mId = (( domainAddress / domainName ) [":" portNumber]) /
mtpAddress / deviceName
domainAddress = "[" (IPv4address / IPv6address) "]"
IPv6address = hexpart [ ":" IPv4address ]
hexpart = hexseq "::" [ hexseq ] / "::" [ hexseq ] / hexseq
hexseq = hex4 *( ":" hex4)
hex4 = 1*4HEXDIG
HEXDIG = ( DIGIT / "A" / "B" / "C" / "D" / "E" / "F" )
DIGIT = %x30-39 ; 0-9
Example: [2409:8050:5005:1243:1011::a]
The final 'a' (or 'e') caused it to fail.
OTP-16631
|
|\ \
| |/
| |
| |
| | |
* maint:
Update copyright year
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The codec(s) prev3a, prev3b and prev3c has been deprecated.
Since they are never called directly by a user, there use
is dependent on encodeding config, which the user provides,
the reprecated attribute is not useful. Instead we rely
on documentation (basically) and comments in the code for
the eventual removal (in OTP 24).
Also, a warning message is issued whenever an encoding config
using the deprecated config is set:
{version3, prev3a | prev3b | prev3c}
OTP-16531
|
|\ \
| |/
| |
| | |
OTP-16449
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
An already documented (wrapper) function was acually missing.
The function megaco:get_sdp_record_from_PropertyGroup/2 was
documented but did not exist in the main interface module
(megaco.erl). It did exist inte the sdp module (megaco_sdp.erl).
So, instead of documenting the megaco_sdp module, we added
the missing wrapper function in the megaco module (so that
the documentation is, finally, correct).
OTP-16449
|
|/ |
|
|
|
|
|
|
|
| |
Improve the internal (format and formated) timestamp utility
functions.
OTP-16158
|
|
|
|
|
|
|
|
| |
The functions (is_enabled and is_reentrant_enabled) used
macro's defined during configure, which means they have
at any given (run-) time a defined value.
So, in order to satisfy dialyzer, the nowarn_function attribute
has been added.
|
|
|
|
|
|
| |
When cancel a (megaco) timer, a failure (that is, a timer that has
already expired) was converted to success. This in turn could
confuse the (timer) test suite.
|
|
|
|
| |
OTP-15882
|
|
|
|
|
|
|
|
|
|
|
| |
Add a "proper" behaviour module for the megaco_user behaviour.
This behaviour is not a proper behaviour since its possible to
configure megaco to add additional arguments to *all* of the
functions in the behaviour (with the user_args config option).
So, this behaviour only reflects the *default config* (whith
the user_args set to [], that is no extra args).
OTP-15882
|
|
|
|
|
|
|
|
| |
Made the behaviour definitions of megaco_encoder and
megaco_edist_compress follow "modern" standards (which
satisfies dialyzer).
OTP-15882
|
|
|
|
|
|
|
|
|
| |
Mostly added nowarn_function-attributes to silence dialyzer
(for functions that are "future" proofed).
But actually also found some errors (although the issues have
not been found for almost 15 years, so...).
OTP-15882
|
|
|
|
|
| |
In order to be able to handle runtime library path in crypto
also DED parts was broken out into a macro.
|
| |
|