aboutsummaryrefslogtreecommitdiffstats
path: root/lib/stdlib/src
AgeCommit message (Collapse)Author
2010-10-29Merge branch 'ks/strengthen-specs' into devBjörn Gustavsson
* ks/strengthen-specs: lists: Strengthen and modernize specs syntax_tools: Fix an erroneous type and strengthen some specs ordsets: Export ordset/1 type and strengthen specs compiler: Strengthen some specs to shut off dialyzer warnings
2010-10-28Fix epp bug concerning the file attribute and file inclusionHans Bolinder
Cover did not collect coverage data for files such as Yecc parses containing include directives. The bug has been fixed by modifying epp, the Erlang Code Preprocessor.
2010-10-26lists: Strengthen and modernize specsKostis Sagonas
Strengthen some specs that were a bit more liberal than they should. While at it, change uses of the is_subtype guard to :: which is more modern and compact.
2010-10-26ordsets: Export ordset/1 type and strengthen specsKostis Sagonas
2010-10-21Merge branch 'hb/stdlib/dets_chunk_match/OTP-8903' into devHans Bolinder
* hb/stdlib/dets_chunk_match/OTP-8903: Fix a bug concerning bchunk(), match() and select() Conflicts: lib/stdlib/test/dets_SUITE.erl
2010-10-21Fix a bug concerning bchunk(), match() and select()Hans Bolinder
If a Dets table was closed after calling bchunk/2, match/1,3, match_object/1,3, or select/1,3 and then opened again, a subsequent call using the returned continuation would normally return a reply. This bug has fixed; now the call fails with reason 'badarg'.
2010-10-21Merge branch 'hb/stdlib/dets_stream_op/OTP-8899' into devHans Bolinder
* hb/stdlib/dets_stream_op/OTP-8899: Fix a bug that could cause 'bad_object' errors Conflicts: lib/stdlib/test/dets_SUITE.erl
2010-10-21Fix a bug that could cause 'bad_object' errorsHans Bolinder
When several clients accessed a Dets table simultaneously, modifications of the Dets server's internal state were sometimes thrown away. The symptoms are diverse: error with reason 'bad_object'; inserted objects not returned by lookup(); et cetera.
2010-10-21Merge branch 'hb/stdlib/dets_fixed_dirty/OTP-8898' into devHans Bolinder
* hb/stdlib/dets_fixed_dirty/OTP-8898: Fix a bug concerning truncated Dets files Conflicts: lib/stdlib/src/dets.erl lib/stdlib/test/dets_SUITE.erl
2010-10-21Fix a bug concerning truncated Dets filesHans Bolinder
When several clients accessed a Dets table simultaneously, inserted or updated objects were sometimes lost due to the Dets file being truncated.
2010-10-21Merge branch 'hb/stdlib/dets_insert_new/OTP-8856' into devHans Bolinder
* hb/stdlib/dets_insert_new/OTP-8856: Fix a bug in dets:insert_new()
2010-10-21Fix a bug in dets:insert_new()Hans Bolinder
When several clients accessed a Dets table simultaneously, one of them calling dets:insert_new/2, the Dets server could crash. Alternatively, under the same conditions, 'ok' was sometimes returned instead of 'true'.
2010-10-14supervisor: Type and spec related changesKostis Sagonas
- Export two more types so that they can be used in other modules - Correct some types and specs - Add spec for behaviour_info/1
2010-10-06Merge branch 'ks/export-types' into devBjörn Gustavsson
* ks/export-types: Export opaque types so as to be used by other modules
2010-09-24Export opaque types so as to be used by other modulesKostis Sagonas
2010-09-24Correct erroneous specs; strengthen some othersKostis Sagonas
2010-09-10Remove warnings for clashes with new autoimported BIFsPatrik Nyblom
2010-09-10Add new autoimports for R14BPatrik Nyblom
2010-08-30Merge branch 'pan/ms_transform_warnings/OTP-6759' into devPatrik Nyblom
* pan/ms_transform_warnings/OTP-6759: Add testcases for ms_transform warning and fix scoping Add warnings for shadowed variables in ms_transform funs
2010-08-23Revise the public_key APIIngela Anderton Andin
Cleaned up and documented the public_key API to make it useful for general use.
2010-07-07Merge branch 'pg/beam_lib_cmp_2_return_type_specification' into devRaimo Niskanen
* pg/beam_lib_cmp_2_return_type_specification: Fix beam_lib:cmp/2 return type specification
2010-07-07Merge branch 'cf/timer_tc' into devRaimo Niskanen
* cf/timer_tc: Add timer:tc/2 to measure the elapsed time of anonymous functions Conflicts: lib/stdlib/doc/src/timer.xml
2010-07-07Merge branch 'ks/cleanups' into devRaimo Niskanen
* ks/cleanups: compiler: Fix incorrect types and specs escript: Add more types to records debugger: Clean up as suggested by tidier docbuilder: Clean up as suggested by tidier Conflicts: lib/debugger/src/dbg_iload.erl lib/debugger/src/dbg_ui_trace_win.erl
2010-06-23Add testcases for ms_transform warning and fix scopingPatrik Nyblom
2010-06-23Add warnings for shadowed variables in ms_transform funsPatrik Nyblom
Also changed compiler to allow for warnings in parse_transforms.
2010-06-17Fix beam_lib:cmp/2 return type specificationPaul Guyot
Specify that beam_lib:cmp/2 can return {error, beam_lib, different_chunks} if a chunk is only present in one of the beams.
2010-06-11Update deprecations for sslBjörn Gustavsson
2010-06-09Merge branch 'pan/otp_8683_compiler_warnings' into HEADErlang/OTP
* pan/otp_8683_compiler_warnings: Remove (harmless) warning regarding auto-imported BIF max/2 Update primary bootstrap Correct warnings and errors for auto-imported bif clashes Conflicts: bootstrap/lib/stdlib/ebin/erl_lint.beam
2010-06-09Correct warnings and errors for auto-imported bif clashesPatrik Nyblom
warn_unused_import works correctly (does not give warnings when overridden). Local call in guard gives its own error pointing out the local/imported function. Use of the phrase "overridden auto-imported bif" instead of "redefined auto-imported bif" in textual error messages.
2010-06-07Remove tid() from the predefined builtin types.Kostis Sagonas
Change erl_lint not to recognize this type as builtin and add a new erl_lint.beam version in bootstrap. Add an -opaque type declaration for this type in ets.erl and also declare this as an exported type. Use this type in file debugger/src/dbg_iload.erl in a spec. While at it, also clean up this later file a bit.
2010-06-07escript: Add more types to recordsKostis Sagonas
While at it, also do some cleanups.
2010-06-07Fix confusing dialyzer warnings for is_record/2 with illegal recordsBjörn Gustavsson
In commit 1858cb81391d2bce29b4b7620574ca60128cebf7, erl_expand_records started to optimize is_record/2 in guards by replacing it with pattern matching (if possible). Unfortunately, dialyzer will no longer see the code before the optimization, so any warnings produced in code such as: case ExprNotProducingRecord#rec{} of X when is_record(X, rec, N) -> ... will refer to the optimized code and not the source code, which is confusing for the user. Introduce the no_is_record_optimization option for turning off the optimization and use it in dialyzer. Reported-by: Kostis Sagonas
2010-06-04Merge branch 'ks/dialyzer' into devErlang/OTP
* ks/dialyzer: dialyzer: Build the PLT even if there are unresolved remote types proplists: Export the type property() erl_lint: Issue warnings for undefined exported types Minor fix in a print message Add handling of unknown types Add declaration for exported types Add types and specs; performed some cleanups also erl_scan: Add declarations for exported types stdlib: Add declarations for exported types hipe: Add declarations for exported types compiler: Add declarations for exported types syntax_tools: Add declarations for exported types kernel: Add declaration for exported types Support -export_type() in dialyzer and erl_types Add infrastructure for the -export_type() attribute OTP-8678 ks/dialyzer
2010-06-03proplists: Export the type property()Björn Gustavsson
2010-06-03erl_lint: Issue warnings for undefined exported typesKostis Sagonas
2010-06-03Add declaration for exported typesKostis Sagonas
2010-06-03Add types and specs; performed some cleanups alsoKostis Sagonas
2010-06-03erl_scan: Add declarations for exported typesKostis Sagonas
While at it, added some types to a record and did some cleanups suggested by tidier.
2010-06-03stdlib: Add declarations for exported typesKostis Sagonas
2010-06-03Add infrastructure for the -export_type() attributeKostis Sagonas
erl_lint has been updated so that it takes the new -export_type() attribute into account. This means: - do not complain about types which are defined but nowhere used in the module but exported to other modules - check that all types which are exported are indeed defined in the module - warn when there are multiple occurrences of exported types. In doing this change, I've also taken the liberty to introduce many types and specs for functions of this module and to do small cleanups here and there.
2010-06-03OTP-8665 epp bugHans Bolinder
The Erlang code preprocessor (epp) did not correctly handle premature end-of-input when defining macros. This bug, introduced in STDLIB 1.16, has been fixed.
2010-06-02Remove outcommented code from erl_lintPatrik Nyblom
2010-06-02Make port_command/3 auto-importedPatrik Nyblom
2010-06-02Remove (harmless) warnings about min/max in core applicationsPatrik Nyblom
2010-06-02Autoimport min/2 and max/2Patrik Nyblom
2010-06-02Change warning to error for nowarn_bif_clash compiler directivePatrik Nyblom
2010-06-02Return nowarn_bif_clash functionality but with warningPatrik Nyblom
Wrote and changed some tests in stdlib:erl_lint_SUITE nowarn_bif_clash is obsoleted but will remove warnings and errors about bif clashes. The recommended way is to use no_auto_import directives instead. Hopefully erlang.erl is the only user in the world of nowarn_bif_clash.
2010-06-02Teach erl_lint to better override BIFs with local functions and importsPatrik Nyblom
Added only a few testcases in compiler:error_SUITE and guard_SUITE The new behaviour of warnings and errors when overriding autoimported BIF's: Bifs that were autoimported before R14 are dangerous because old code using them and overriding them in exports can start behaving differently. For newly added autoimports this can't happen to the new code that wants to (or dont want to) use them, why only warnings are added for the BIFs autoimported after the compilator change. Errors are issued only for code that could have worked in one way in R13 and now will behave in a different way. If overriding autoimport with local function: - if explicit -compile directive supresses autoimport -> no message else - if called from inside module - if pre R14 autoimported bif -> error else -> warning else -> no message If overriding autoimport with import directive - if explicit -compile directive supresses autoimport -> no message else (regardless of actual usage) - if pre R14 autoimported bif -> error else -> warning Calls of local functions or imports overriding autoimported functions (either post R14 or by using explicit -compile supressions of autoimport) always goes to the local function or the imported. The compileation errors are added to not let code like this silently and disastrously change its semantic (probably to an infinite loop) between R13 and R14: ---------- -module(m). -export([length/1]). length(X) -> ... Y = length(Z), .... ---------- The user has to select if he/she wants to call length in 'erlang' explicitly or if the overriding semantics is desired, in which case the -compile directive has to be used. -compile({no_auto_import,[F/A]}). Is added to allow to override the autoimports so that code gets unanbiguous. The directive will remove an autoimport even if there is no local function or import overriding, because any other behaviour would be inconsistent and confusing. record_info and module_info can never be overridden.
2010-06-02Teach compiler to override autoimport with importPatrik Nyblom
2010-06-02First prototype for local functions overriding autoimportedPatrik Nyblom
Import directives still not sorted out!