aboutsummaryrefslogtreecommitdiffstats
path: root/lib/stdlib
AgeCommit message (Collapse)Author
2014-02-23Deprecate pre-defined built-in typesHans Bolinder
The types array(), dict(), digraph(), gb_set(), gb_tree(), queue(), set(), and tid() have been deprecated. They will be removed in OTP 18.0. Instead the types array:array(), dict:dict(), digraph:graph(), gb_set:set(), gb_tree:tree(), queue:queue(), sets:set(), and ets:tid() can be used. (Note: it has always been necessary to use ets:tid().) It is allowed in OTP 17.0 to locally re-define the types array(), dict(), and so on. New types array:array/1, dict:dict/2, gb_sets:set/1, gb_trees:tree/2, queue:queue/1, and sets:set/1 have been added.
2014-02-21Merge branch 'hb/stdlib/epp_bug_fix/OTP-11728'Hans Bolinder
* hb/stdlib/epp_bug_fix/OTP-11728: Fix a bug in epp concerning circular macro definitions
2014-02-20Merge branch 'siri/appup_tests_17/OTP-11534'Siri Hansen
* siri/appup_tests_17/OTP-11534: Update sasl/test/test_lib.hrl with recent versions of kernel and stdlib Update appups and appup tests for kernel, stdlib and sasl
2014-02-20Fix a bug in epp concerning circular macro definitionsHans Bolinder
epp could loop when encountering a circular macro definition in an included file. Thanks to Maruthavanan Subbarayan for reporting the bug, and to Richard Carlsson for providing a bug fix.
2014-02-20Merge branch 'fenollp/shell-expand-0arity-completely'Björn Gustavsson
* fenollp/shell-expand-0arity-completely: Correct parenthesis expansion Clean up edlin_expand_SUITE.erl to facilitate maintainance
2014-02-19Merge branch 'sverk/ets-all-race'Sverker Eriksson
OTP-11726 * sverk/ets-all-race: erts: Fix faulty asserts in erts_sys_aligned_alloc/free erts: Fix harmless (?) typo in beam_load.c erts: Fix race bug in ets:all/0
2014-02-19erts: Fix race bug in ets:all/0Sverker Eriksson
causing recently created/deleted tables to not be included/excluded.
2014-02-17Correct parenthesis expansionBjörn Gustavsson
Commit dfb4ec804a099b539c91e5643090d8183885e71c attempted to add a closing parenthesis to the expansion of a funtion of zero arity if there were no other functions with the same name. Unfortunately it would add the closing parenthesis in many cases when there was another function with another name (e.g. to Mod:module_info/0 even though there is a Mod:module_info/1). Correct logic for adding parenthesis and add a test case.
2014-02-17Clean up edlin_expand_SUITE.erl to facilitate maintainanceBjörn Gustavsson
* Introduce the helper function do_expand/1. * Remove all ?line macros.
2014-02-14Merge branch 'nox/maps-improve-erl_expand_records'Björn-Egil Dahlberg
* nox/maps-improve-erl_expand_records: Fix expansion of records in maps
2014-02-14Merge branch 'galaxie/supress-normal-terminates'Henrik Nord
* galaxie/supress-normal-terminates: Suppress error report when child was terminated normally OTP-11685
2014-02-14Suppress error report when child was terminated normallybell
Description: Let's assume we have a supervisor_bridge as a non-permanent child of a supervisor. When the bridge terminates normally it reports by error_logger:error_report, but the supervisor does nothing. So we have tons (especially, when it's simple_one_for_one) of error messages while everything is completely ok. Let's assume we have a supervisor_bridge as a permanent child of a supervisor. When the bridge terminates, it invokes error_logger, but what for? The supervisor will invoke error_logger about this error right after that. So what is the reason for the error_logger to log for normally terminating children in this case?
2014-02-14Merge branch 'calebh/fix-regestry-type-annotation'Henrik Nord
* calebh/fix-regestry-type-annotation: Fix alternative registry type annotations in supervisor OTP-11707
2014-02-12[stdlib] Remove a confusing comment in the re moduleHans Bolinder
The line %-opaque mp() :: {re_pattern, _, _, _, _}. has been removed. The mp() tuple is called 'opaque' in re(3), but it is not an opaque type. The out-commented -opaque declaration was confusing.
2014-02-12Update appups and appup tests for kernel, stdlib and saslSiri Hansen
Appups now only support one major release back, and the tests are updated accordingly. Support is also added in tests for giving previous releases in a ct config file, e.g. {otp_releases,[{r15,"/path/to/r15/bin/erl"}, {r16,"/path/to/r16/bin/erl"}, {'17',"/path/to/17/bin/erl"}]}.
2014-02-12Merge branch 'nox/maps-erl_prettypr'Björn-Egil Dahlberg
* nox/maps-erl_prettypr: stdlib: Add tests for Maps in erl_prettypr Support maps in erl_prettypr
2014-02-12Merge branch 'nox/maps-improve-erl_eval'Björn-Egil Dahlberg
* nox/maps-improve-erl_eval: Handle map fields in their own function in erl_eval
2014-02-11Merge branch 'fenollp/shell-expand-0arity-completely'Henrik Nord
* fenollp/shell-expand-0arity-completely: Shell: expand 0-arity functions all the way to closing parenthesis OTP-11684
2014-02-10Merge branch 'josevalim/suppress-all-auto-imports'Henrik Nord
* josevalim/suppress-all-auto-imports: Allow all auto imports to be suppressed at once OTP-11682
2014-02-07Fix alternative registry type annotations in supervisorCaleb
The type annotations for alternative registries using the {via,Module,Name} syntax was not given for sup_name() and sup_ref() in the supervisor module. The type annotation was inconsistent with the documentation and causes Dialyzer to complain about valid supervisor:start_link and supervisor:start_child calls.
2014-02-07Merge branch 'hsv/add_droplast_to_lists'Henrik Nord
* hsv/add_droplast_to_lists: Added documentation of lists:droplast/1 Added tests for lists:droplast/1 to stdlib/lists_SUITE stdlib/lists: Add function droplast/1 This functions drops the last element of a non-empty list.
2014-02-06Make the references to various Erlang/OTP releases verboseHans Bolinder
2014-02-04Fix expansion of records in mapsAnthony Ramine
Records were not properly expanded in keys in patterns and in arguments in map updates.
2014-02-03stdlib: Add tests for Maps in erl_prettyprBjörn-Egil Dahlberg
2014-02-01Support maps in erl_prettyprAnthony Ramine
2014-02-01Handle map fields in their own function in erl_evalAnthony Ramine
Map fields (K := V, K => V) are not expressions and shouldn't be clauses of erl_eval:expr/5.
2014-01-31Allow making the system with --enable-native-libsKostis Sagonas
The HiPE compiler crashes when trying to compile these files because it does not currently support maps. So, add a -compile(no_native) attribute to these files to allow the system to be made even when configured with --enable-native-libs. This is a temporary fix and will be removed when the HiPE compiler gets proper support for maps.
2014-01-29Merge branch 'egil/maps/OTP-11616'Björn-Egil Dahlberg
* 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 ...
2014-01-29stdlib: Make maps:fold/3 order-independentBjörn-Egil Dahlberg
This means replacing maps:foldl/3 and maps:foldr/3 with maps:fold/3.
2014-01-29Merge branch 'bjorn/fna-default/OTP-11612'Björn Gustavsson
* bjorn/fna-default/OTP-11612: Change the default file name encoding mode to +fnaw
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-28stdlib: Remove bogus map() typeBjörn-Egil Dahlberg
2014-01-28erts,stdlib: Change map module name to mapsBjörn-Egil Dahlberg
Name conforms to EEP.
2014-01-28erts,stdlib: Teach matchspec compiler map guardsBjörn-Egil Dahlberg
2014-01-28stdlib: Fixup id_transform_SUITEBjörn-Egil Dahlberg
2014-01-28dialyzer,hipe,stdlib: Add Maps understanding to DialyzerBjörn-Egil Dahlberg
2014-01-28Change the default file name encoding mode to +fnawBjörn Gustavsson
2014-01-28Merge branch 'siri/appup_tests_17/OTP-11534'Siri Hansen
* 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
2014-01-28stdlib: Add Map moduleBjörn-Egil Dahlberg
The map type is set to term.
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-28Update erl_lint, erl_expand_records, sys_pre_expand for MapsBjörn-Egil Dahlberg
Update erlang lint and syntax expand for #{ K := V }
2014-01-28stdlib: Fix erl_parse:parse_term/1Björn-Egil Dahlberg
Did not handle Maps.
2014-01-28Extend erl_parse with two Op Map syntaxBjörn-Egil Dahlberg
Example how to construct: #{ K1 => V1, K2 => V2 } How to update: M#{ K1 => V1, K2 := V2 } How to match: #{ K1 := V1, K2 := V2 } = M
2014-01-28Teach erl_scan to recognize ':='Björn-Egil Dahlberg
2014-01-28erl_eval: Add functions to interpreter for mapsBjörn-Egil Dahlberg
2014-01-28stdlib: Update printing to handle MapsBjörn-Egil Dahlberg
2014-01-28erts: Add the type-testing guard BIF is_map/1Björn-Egil Dahlberg
To add a type-testing guard BIF, the following steps are needed: * The BIF itself is added to bif.tab (note that it should be declared using "ubif", not "bif"), and its implementation to erl_bif_op.c. * erl_internal must be modified in 3 places: The type test must be recognized as guard BIF, as a type test, and it must be auto-imported. * There must be an instruction that implements the same type test as the BIF (it will be used in guards). beam_utils:bif_to_test/3 must be updated to recognize the new guard BIF.