aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2014-01-29erts: Update maps instructions to use term orderBjörn-Egil Dahlberg
Maps internally uses term order to store keys in an ordered fashion.
2014-01-29erts: Update maps BIFs to use term orderBjörn-Egil Dahlberg
Maps internally uses term order to store keys in an ordered fashion.
2014-01-29erts: Add BIF erts_internal:cmp_term/2Björn-Egil Dahlberg
Compares terms where integer() < float().
2014-01-29erts: Add cmp_term to compareBjörn-Egil Dahlberg
Uses total order of types meaning int < float
2014-01-29erts: NIFs Map API fixupBjörn-Egil Dahlberg
2014-01-29erts: Test Maps with NIFsBjörn-Egil Dahlberg
2014-01-29erts: Add NIFs for MapsBjörn-Egil Dahlberg
- 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)
2014-01-28stdlib: Strengthen Map module with guardsBjörn-Egil Dahlberg
This commit requires Map enabled bootstrap compiler.
2014-01-28stdlib: Pretty print mapsBjörn-Egil Dahlberg
Pretty printing behaviour mimic records. This commit requires Map enabled bootstrap compiler.
2014-01-28Update preloaded erlang.beamBjörn-Egil Dahlberg
2014-01-28preloaded: Remove bogus map typeBjörn-Egil Dahlberg
2014-01-28Update primary bootstrapBjörn-Egil Dahlberg
2014-01-28stdlib: Remove bogus map() typeBjörn-Egil Dahlberg
2014-01-28erts: Add tests for Map update on expressionsBjörn-Egil Dahlberg
(foo())#{ k1 := V1, k2 => V2 }
2014-01-28erts: Add tests for non BIFs in Maps moduleBjörn-Egil Dahlberg
* maps:without/2 * maps:foldl/3 * maps:foldr/3 * maps:map/2 * maps:size/1
2014-01-28erts,stdlib: Change map module name to mapsBjörn-Egil Dahlberg
Name conforms to EEP.
2014-01-28erts: Fix map_SUITE match spec testsBjörn-Egil Dahlberg
2014-01-28Add tests for pditc, ets and tracingLukas Larsson
2014-01-28erts,stdlib: Teach matchspec compiler map guardsBjörn-Egil Dahlberg
2014-01-28stdlib: Fixup id_transform_SUITEBjörn-Egil Dahlberg
2014-01-28typer: Rename map() type to map_dict()Björn-Egil Dahlberg
The name conflicted with builtin type map().
2014-01-28edoc: Add test for Maps in EDocBjörn-Egil Dahlberg
2014-01-28edoc,syntax_tools: Teach Map understandingBjörn-Egil Dahlberg
2014-01-28dialyzer,hipe,stdlib: Add Maps understanding to DialyzerBjörn-Egil Dahlberg
2014-01-28erts: Specs for Map BIFsBjörn-Egil Dahlberg
2014-01-28stdlib: Add Map moduleBjörn-Egil Dahlberg
The map type is set to term.
2014-01-28erts: Remove erlang:size/1 test from map_SUITEBjörn-Egil Dahlberg
2014-01-28stdlib: Update erl_scan_SUITE for ':=' and '=>' tokensBjörn-Egil Dahlberg
2014-01-28stdlib: Deny variables as keys and disallow ':=' in map constructionBjörn-Egil Dahlberg
In the current iteration of Maps we should deny *any* variables in Map keys.
2014-01-28stdlib: Teach erl_eval Maps ':=' exact operatorBjörn-Egil Dahlberg
2014-01-28erts: Update Maps erlang:phash2/1 testsBjörn-Egil Dahlberg
2014-01-28erts: erlang:phash2 should hash Maps independent of orderBjörn-Egil Dahlberg
2014-01-28erts: Add Map tests for erlang:phash/2Björn-Egil Dahlberg
2014-01-28erts: Add Maps to erlang:phash/2 and erlang:hash/2Björn-Egil Dahlberg
The hashing a map in these functions uses the same strategy as the other terms. The exception being a prime number with size so we do not get erlang:phash(#{}) -> 1 which would be the same as erlang:phash({}) and erlang:phash(<<>>). Same argument for erlang:hash/1.
2014-01-28erts: Add Map tests for hashing and external formatBjörn-Egil Dahlberg
- Update map_SUITE with hash and encode tests - Update map_SUITE with external format decode tests - Update map_SUITE with map:to_list/1 and map:from_list/1 tests
2014-01-28erts: Teach term_to_binary/1 and binary_to_term/1 Map encodingBjörn-Egil Dahlberg
2014-01-28compiler: Rename map pattern to proper nameBjörn-Egil Dahlberg
2014-01-28compiler: Add Maps types to cerlBjörn-Egil Dahlberg
2014-01-28compiler: Format stacktrace on errorBjörn-Egil Dahlberg
2014-01-28compiler: Teach Maps to beam_disasmBjörn-Egil Dahlberg
2014-01-28compiler: Fix v3_core for map update syntaxBjörn-Egil Dahlberg
Make map update expressions safe, i.e. (foo())#{ k1 := 1 }
2014-01-28compiler: Fix get_map_element bug with allocateBjörn-Egil Dahlberg
The instruction get_map_element has a faillabel so you may not use the instruction within a allocate/deallocate block.
2014-01-28compiler: Test Maps inliningBjörn-Egil Dahlberg
2014-01-28compiler: Teach Maps understanding to inlinerBjörn-Egil Dahlberg
2014-01-28erts: Fixup map instructions for halfwordBjörn-Egil Dahlberg
2014-01-28compiler: Implement different instructions for => and :=Björn Gustavsson
2014-01-28Pass the map pair operators through to the v3_codegen passBjörn Gustavsson
2014-01-28sys_core_fold: Remove optimization that has become invalidBjörn Gustavsson
With the => and := operators for updating maps, this optimization is no longer valid.
2014-01-28erts: Conform map_SUITE to extended syntaxBjörn-Egil Dahlberg
2014-01-28compiler: Implement support for exact Op in MapsBjörn-Egil Dahlberg
The syntax is handled upto v3_kernel where it is reduced to previous behaviour for construction and updates. Meaning, the ':=' operator is handled exactly as '=>' operator.