Age | Commit message (Collapse) | Author |
|
The compressed format is using a slighty modified variant of the extern format
(term_to_binary). To not worsen key lookup's too much, the top tuple itself
and the key element are not compressed. Table objects with only immediate
non-key elements will therefor not gain anything (but actually consume one
extra word for "alloc_size").
|
|
If a Dets table with fewer slots than keys was opened and then closed
after just a lookup, the contents were no longer well-formed. This bug
has been fixed. (Thanks to Matthew Evans.)
|
|
* ks/bad-export_type:
Avoid errors for a badly formed export_type declarations
|
|
* ms/fix-string-copies:
string_SUITE: Add test for string:copies(Str, Float)
string_SUITE: Fix copy and paste error in test of string:copies/2
Fix crash in string:copies/2
OTP-8915
|
|
* 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
|
|
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.
|
|
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.
|
|
|
|
Using a float for the number of copies results in an infinite loop.
Check that the argument is an integer.
Reported-By: Eric Pailleau
|
|
* hb/stdlib/dets_chunk_match/OTP-8903:
Fix a bug concerning bchunk(), match() and select()
Conflicts:
lib/stdlib/test/dets_SUITE.erl
|
|
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'.
|
|
* hb/stdlib/dets_stream_op/OTP-8899:
Fix a bug that could cause 'bad_object' errors
Conflicts:
lib/stdlib/test/dets_SUITE.erl
|
|
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.
|
|
* 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
|
|
When several clients accessed a Dets table simultaneously, inserted or
updated objects were sometimes lost due to the Dets file being
truncated.
|
|
* hb/stdlib/dets_insert_new/OTP-8856:
Fix a bug in dets:insert_new()
|
|
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'.
|
|
- Export two more types so that they can be used in other modules
- Correct some types and specs
- Add spec for behaviour_info/1
|
|
* ks/export-types:
Export opaque types so as to be used by other modules
|
|
In the following program, erl_lint crashed with an erl_lint internal error.
With this patch it does not, but prints "bad export_type declaration" errors
instead.
-module(baz).
-export([test/0]).
-export_type(t/0).
-export_type([3.14]).
-type t() :: any().
test() -> 42.
|
|
|
|
|
|
|
|
|
|
* pan/ms_transform_warnings/OTP-6759:
Add testcases for ms_transform warning and fix scoping
Add warnings for shadowed variables in ms_transform funs
|
|
Cleaned up and documented the public_key API to
make it useful for general use.
|
|
* pg/beam_lib_cmp_2_return_type_specification:
Fix beam_lib:cmp/2 return type specification
|
|
* cf/timer_tc:
Add timer:tc/2 to measure the elapsed time of anonymous functions
Conflicts:
lib/stdlib/doc/src/timer.xml
|
|
* 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
|
|
|
|
Also changed compiler to allow for warnings in parse_transforms.
|
|
Specify that beam_lib:cmp/2 can return {error, beam_lib, different_chunks} if a chunk is only present in one of the beams.
|
|
|
|
* 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
|
|
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.
|
|
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.
|
|
While at it, also do some cleanups.
|
|
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
|
|
* 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
|
|
|
|
|
|
|
|
|
|
While at it, added some types to a record
and did some cleanups suggested by tidier.
|
|
|
|
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.
|
|
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.
|
|
|
|
|
|
|