Age | Commit message (Collapse) | Author |
|
|
|
* egil/compiler/maps-fix-codegen:
compiler: Fix codegen multiple updates for Maps
erts,compiler: Correct and amend tests for Maps
|
|
Faulty test for maps update
|
|
* egil/erts/fix-maps-beam_load:
compiler: Update map_SUITE with error case test
erts: Maps must fail on exact updates of empty Maps
erts: Fix Maps for beam_load
|
|
Exact updates on empty Maps must fail directly.
|
|
* bjorn/erts/zlib-1.2.8/OTP-11669:
gzio.c: Remove unnecessary usage of the OF() macro
|
|
* nox/maps-absform:
Document maps-related abstract syntax trees
|
|
Map source may be anything, not only registers.
|
|
Daniel Goertzen reported that commit 8a147a7365 broke building
of Erlang/OTP on Gentoo Linux because the macro OF() was missing.
Apparently, on Gentoo the OF() macro in zconf.h has been renamed
to _Z_OF() (to avoid polluting the global namespace).
Don't use the OF() macro in gzio.c since it no longer serves any
useful purpose (it provided compatibility with pre-ANSI/ISO C
compilers, but the rest of Erlang/OTP requires an ANSI/ISO C
compiler anyway).
|
|
'maps_head' was not restored when yielding. Risk for crash increases with
size and number of maps in term.
|
|
{map,Loc,Fields}
{map,Loc,Argument,Fields}
{map_field_assoc,Loc,Name,Value}
{map_field_exact,Loc,Name,Value}
|
|
|
|
* 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
...
|
|
* Add tests for maps:merge/2
* Add tests for maps:update/3
* Test more corner cases
|
|
|
|
|
|
|
|
erl_drv_output_term() and erl_drv_send_term() can send messages
containing maps with the use of the new ERL_DRV_MAP.
The driver API minor version is updated as new functionality is added.
|
|
|
|
|
|
|
|
|
|
No need to use 64bit integers on 32bit machines.
|
|
and simplify code by ignoring h_limit which is always zero.
|
|
|
|
|
|
|
|
|
|
|
|
as it does the same thing as enif_get_map_value.
Replace with placeholder to be ABI backward compatible on Windows
as long as enif_find_map_value is not called.
|
|
|
|
Maps may be encoded with keys in arbitrary order. This is fine,
as long as keys are unique.
|
|
|
|
to not continue comparing keys once it has been found.
|
|
HRelease was called with wrong arguments and left garbage on heap
when key was not found.
|
|
* erlang:term_to_binary/1
* erlang:binary_to_term/1
|
|
Maps internally uses term order to store keys in an ordered fashion.
|
|
Maps internally uses term order to store keys in an ordered fashion.
|
|
Compares terms where integer() < float().
|
|
Uses total order of types meaning int < float
|
|
|
|
|
|
- int enif_is_map(ErlNifEnv* env, ERL_NIF_TERM map)
- int enif_get_map_size(ErlNifEnv *env, ERL_NIF_TERM, int*)
- ERL_NIF_TERM enif_make_new_map(ErlNifEnv *env)
- int enif_make_map_put(ErlNifEnv *env, ERL_NIF_TERM map_in, ERL_NIF_TERM key, ERL_NIF_TERM value, ERL_NIF_TERM* map_out)
- int enif_get_map_value(ErlNifEnv *env, ERL_NIF_TERM map, ERL_NIF_TERM key, ERL_NIF_TERM* value)
- int enif_find_map_value(ErlNifEnv *env, ERL_NIF_TERM map, ERL_NIF_TERM key, ERL_NIF_TERM* value)
- int enif_make_map_update(ErlNifEnv *env, ERL_NIF_TERM map_in, ERL_NIF_TERM key, ERL_NIF_TERM value, ERL_NIF_TERM* map_out)
- int enif_make_map_remove(ErlNifEnv *env, ERL_NIF_TERM map_in, ERL_NIF_TERM key, ERL_NIF_TERM* map_out)
- int enif_map_iterator_create(ErlNifEnv *env, ERL_NIF_TERM map, ErlNifMapIterator *iter)
- void enif_map_iterator_destroy(ErlNifEnv *env, ErlNifMapIterator *iter)
- int enif_map_iterator_next(ErlNifEnv *env, ErlNifMapIterator *iter)
- int enif_map_iterator_get_pair(ErlNifEnv *env, ErlNifMapIterator *iter, ERL_NIF_TERM *key, ERL_NIF_TERM *value)
|
|
* bjorn/fna-default/OTP-11612:
Change the default file name encoding mode to +fnaw
|
|
|
|
|
|
|
|
(foo())#{ k1 := V1, k2 => V2 }
|
|
* maps:without/2
* maps:foldl/3
* maps:foldr/3
* maps:map/2
* maps:size/1
|
|
Name conforms to EEP.
|