Age | Commit message (Collapse) | Author |
|
The problem is that the change in default encoding to utf8 in 17.0, in
commit 00e42967, changes the behaviour of erl_parse:abstract/1, which is
used by the dictionary compiler to turn terms into abstract code. In
particular, it transforms the orddict representation of a parsed
dictionary to contruct the return value of a dictionary module's dict/0
function. This orddict contains various lists, one of which is a list of
tuples of the form
{Name, Code, [VendorId], [Avp]}
where Name is an ASCII string and VendorId is a non-negative integer.
Using erl_parse:abstract/2 instead allows a string encoding to be
specified but regardless of what encoding is used, the result of
transforming our tuple might not be what we really want, which is for
Name to always be represented as a string form and [VendorId] to always
be represented as a cons form: the [VendorId] will always end up as a
string form if the integers are small enough. The only way around this
is to transform the tuple bit by bit, but modifying the code to do this
is quite a lot of work, for not much gain: it would be nice to produce
more readable output but nothing stops working without it.
This commit restores the pre-17.0 conversion by explicilty specifying
latin1 as the string encoding to erl_parse:abstract/2. The utf8 encoding
broke the compilation of some dictionares since unicode strings aren't
expected when writing the generated code to file.
Note that the latin1 encoding does reasonably well in practice, although
it mangles the Ericsson Vendor Id list [193] into a "LATIN CAPITAL
LETTER A WITH ACUTE". The utf8 encoding does worse, mangling the 3GPP
Vendor Id 10415 into "DESERET CAPITAL LETTER CHEE". An ascii encoding
would do better than latin1 but doesn't yet exist. (Encoding isn't
really what the option is. It's a string predicate: if the predicate is
true then represent as a string form, otherwise a cons form.)
|
|
* ia/inets/tests:
inets: Rewrite of test case to avoid timing issues in test code
|
|
* ia/ssl/openssl-1.0.1e:
ssl: Add workaround in test code for openssl s_client bug
|
|
* nox/syntax-tools-named-fun-fixes/OTP-11651:
Fix representation of named funs in syntax_tools
|
|
|
|
* peppe/common_test/telnet_logging_system:
Add verification terms for the unix_telnet test case
Add documentation about logging in the ct_telnet module
Make temporary fix of problem that sometimes causes the ct_util server to die
Fix remaining problems using raw telnet logging for parallel test cases
Make it possible to use raw telnet logs in parallel test case groups
Implement tests for logging traffic for multiple telnet connections
Add and improve test cases
Implement new telnet logging system
OTP-11440
|
|
A named fun's name is a variable name, its type in syntax_tools is named_fun_expr.
|
|
|
|
|
|
* egil/maps/OTP-11616: (112 commits)
compiler: Add core compile test for maps
compiler: Fix core parse for Maps
compiler: Fixup #map_pair{} spec
erts: Strengthen map_SUITE tests
erts: Update maps_fold test to respect maps:fold/3
stdlib: Make maps:fold/3 order-independent
erts: Fixup enif_make_map_put on windows
erts: Update preloaded erts_internal.beam
hipe: Fixup update cerl pretty printer
erts: Add map construction to driver API
dialyzer: Add maps tests
dialyzer: Remove dead code
dialyzer: Reflect map_pair core changes in dialyzer
hipe: Update cerl pretty printer
compiler: Update inliner tests
compiler: Squash #c_map_pair_*{} to #c_map_pair{}
compiler: Squash #k_map_pair_*{} to #k_map_pair{}
preloaded: Fixup export cmp_term in erts_internal
erts: Change 'size' argument of enif_get_map_size from int* to size_t*
erts: Fix compile error for halfword emulator
...
|
|
|
|
|
|
|
|
This means replacing maps:foldl/3 and maps:foldr/3 with maps:fold/3.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Simplify compiler internals and parsing of core format.
|
|
Simplify compiler internals for kernel passes.
|
|
|
|
* bjorn/fna-default/OTP-11612:
Change the default file name encoding mode to +fnaw
|
|
* bjorn/asn1/erlang-types/OTP-11594:
Update documentation
Fix open types
Fix OCTET STRING
Fix BIT STRING
Add legacy_erlang_types
asn1 test suite: Modernize testTimer_* and testTimer.erl
testPrimStrings: Run test of fragmented strings for PER too
|
|
|
|
|
|
|
|
|
|
This commit requires Map enabled bootstrap compiler.
|
|
Pretty printing behaviour mimic records.
This commit requires Map enabled bootstrap compiler.
|
|
|
|
Name conforms to EEP.
|
|
|
|
|
|
The name conflicted with builtin type map().
|
|
|
|
|
|
|
|
* lukas/erts/sendfile_no_async_pool/OTP-11639:
erts/kernel: sendfile no longer uses async threads
|
|
* ia/RoadRunner/tls-validate-options/OTP-11634:
ssl: use is_boolean/1 guard in option validation
|
|
|
|
|
|
|
|
* siri/appup_tests_17/OTP-11534:
Update sasl appup test to work for OTP release 17
Update stdlib appup test to work for OTP release 17
Update kernel appup test to work for OTP release 17
|
|
The map type is set to term.
|
|
|
|
In the current iteration of Maps we should deny *any* variables in
Map keys.
|
|
|
|
|