Age | Commit message (Collapse) | Author |
|
* ks/dialyzer-R14-fixes:
Various changes to dialyzer-related files for R14.
OTP-8699 ks/dialyzer-R14-fixes
Various changes to dialyzer-related files for R14.
- Dialyzer properly supports the new attribute -export_type and checks that
remote types only refer to exported types. A warning is produced if some
files/applications refer to types defined in modules which are neither in
the PLT nor in the analyzed applications.
- Support for detecting data races involving whereis/1 and unregister/1.
- More precise identification of the reason(s) why a record construction
violates the types declared for its fields.
- Fixed bug in the handling of the 'or' guard.
- Better handling of the erlang:element/2 BIF.
- Complete handling of Erlang BIFs.
|
|
New variants of crypto:dss_sign and crypto:dss_verify with an extra
argument to control how the digest is calculated.
|
|
|
|
|
|
OTP-8564: Update deprecated status.
OTP-8573: Inets mod_alias URL rewrite.
|
|
A bug introduced in kernel-2.13.5.3 has been fixed.
|
|
Bumped version number and wrote RELEASE_NOTES.
Included all changes described in release notes.
Some spec-related changes to some files in lib/hipe/cerl.
|
|
|
|
* bg/bif-types:
Add type information for erlang:garbage_collect_message_area/0
Add type information for erts_debug:* BIFs
Add type information for erlang:port_call/2
Add type information for erlang:display* BIFs
Add type information for the BIFs in the binary module
Introduce and use the t_endian() helper
Add type information for erlang:binary_part/2,3
Add type info for erlang:append/2 and erlang:subtract/2
Add type information for the erlang:adler32* BIFs
Add ppc64 return for erlang:system_info(hipe_architecture)
Test that all BIFs have known types
erl_types: Export is_erl_type/1
|
|
(This is the merge of r13 version to r14_dev)
|
|
|
|
* commit 'bg/nif_error':
crypto: Add type specs for all documented functions
crypto: Use erlang:nif_error/1 to squelch false Dialyzer warnings
Add erlang:nif_error/1,2
|
|
|
|
* sv/serge-new_float_ext:
Let ei_get_type() return ERL_FLOAT_EXT instead of NEW_FLOAT_EXT
Fix ei_tmo to restrict dflags to NEW_FLOAT_EXT
compact IEEE 754 double encoding in external binary format for ei
fix typo in ei_decode_ei_term documentation
OTP-8684 sv/serge-new_float_ext
compact IEEE 754 double encoding in external binary format for ei
Implement the compact IEEE 754 double encoding in external binary format
for ei. Encoding for ei now always produces the NEW_FLOAT_EXT format.
Decoding and term printing handle both the old ERL_FLOAT_EXT encoding and
the new NEW_FLOAT_EXT encoding.
Legacy erl_interface code also handles the new encoding, but still produces
the ERL_FLOAT_EXT encoding by default.
Also enable the DFLAG_NEW_FLOATS distribution flag.
ei_get_type() will return ERL_FLOAT_EXT regardless if the external format
is encoded with ERL_FLOAT_EXT or NEW_FLOAT_EXT for doubles.
Reduce the number of copies of the code for encoding and decoding doubles
throughout ei and erl_interface by instead calling the ei encoding and
decoding functions wherever possible.
Restore commented-out float tests in ei_decode_SUITE and ei_encode_SUITE in
lib/erl_interface/test. Modify them to make them match the style of other
tests in the same suites.
These changes are based on an ei float patch from Serge Aleynikov
originally submitted against R12B-2 in July 2008 and reworked by Steve
Vinoski May 2010.
|
|
* ks/ets-tid-type:
Remove tid() from the predefined builtin types.
OTP-8687 ks/ets-tid-type
The predefined builtin type tid() has been removed. Instead, ets:tid()
should be used.
|
|
|
|
|
|
erlang:garbage_collect_message_area/0 is undocumented and unsupported.
|
|
|
|
(erlang:port_call/2 is undocumented.)
|
|
|
|
|
|
|
|
|
|
These are aliases for '++'/2 and '--'/2.
|
|
While at it, introduce a new type for adler32 and crc32
and use it consistently within the file.
|
|
|
|
New ssl now support client/server-certificates signed by dsa keys.
|
|
* ms/file-exclusive-mode:
Update preloaded modules
Support opening files in exclusive mode
OTP-8670 ms/file-exclusive-mode
There is a new option 'exclusive' to file:open/2 that uses the OS O_EXCL
flag where supported to open the file in exclusive mode.
|
|
* cb/emacs-eunit-run-recent:
erlang-eunit: remove runtime dependency on cl package
Add Emacs EUnit feature: run recent
Add Emacs EUnit feature: auto-save
|
|
* kj/emacs-eunit-run-current-test-with-cover:
erlang-eunit: Optionally run code coverage analysis during eunit tests
erlang-eunit: Made alternative locations of files more flexible
|
|
|
|
* ia/ssl_many_handshake_packages_at_once:
Fixed handling of several ssl/tls packets arriving at the same time.
OTP-8679 ia/ssl_many_handshake_packages_at_once
|
|
|
|
|
|
|
|
OTP-8564: Update deeprication status.
OTP-8573: Inets mod_alias URL rewrite.
|
|
Follow the GNU recommendation of not introducing runtime
dependencies on the Common Lisp package in ELisp packages
that will be distributed for widespread use.
In practice this means it's ok to use cl macros but not
functions.
|
|
This determines the most recent invocation of EUnit and runs it
again -- whether one test or all tests in a module were run (and
if all a module's tests were run, whether cover compilation was
involved). This can be especially handy when one test is being
run repeatedly, eliminating the need to position the cursor in
the desired test just to run it.
Default keybinding: C-c C-e l
|
|
If the variable 'erlang-eunit-autosave' is non-nil, buffers will be
automatically saved just before running tests -- the "Do you want
to save?" prompt will be inhibited. This can be useful, reducing the
save-compile-load-test cycle to just one keychord.
|
|
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.
|
|
Add a number of features to the emacs mode which make it easier to
work with eunit test cases while keeping track of code coverage.
* C-cC-ec:
Compile the module under test for code coverage analysis, run tests
and show the results of the coverage analysis in a new buffer.
* C-c-C-ev:
Compile the current module for code coverage analysis.
* C-cC-ea:
Show the results of the coverage analysis in a new buffer.
|
|
Previously there were only two options: either the EUnit test file was
placed directly within the test directory or within the same directory
as the source file. Now a list of candidate locations are supported.
This way more than two alternative locations are supported as well as
arbitrarily deep directory structures (i.e. test/eunit/x_tests.erl).
The default behaviour is still the same, but it's possible to specify
locations by setting the following two variables:
erlang-eunit-src-candidate-dirs
erlang-eunit-test-candidate-dirs
|
|
|
|
|
|
Erl_Interface is updated to restrict distribution to NEW_FLOAT_EXT
only. The testsuite ei_tmo is updated to reflect that.
|
|
Implement the compact IEEE 754 double encoding in external binary
format for ei. Encoding for ei now always produces the NEW_FLOAT_EXT
format. Decoding and term printing handle both the old ERL_FLOAT_EXT
encoding and the new NEW_FLOAT_EXT encoding. Legacy erl_interface code
also handles the new encoding, but still produces the ERL_FLOAT_EXT
encoding by default.
Also enable the DFLAG_NEW_FLOATS distribution flag.
Reduce the number of copies of the code for encoding and decoding
doubles throughout ei and erl_interface by instead calling the ei
encoding and decoding functions wherever possible.
Restore commented-out float tests in ei_decode_SUITE and
ei_encode_SUITE in lib/erl_interface/test. Modify them to make them
match the style of other tests in the same suites.
These changes are based on an ei float patch from Serge Aleynikov
originally submitted against R12B-2 in July 2008.
|
|
Change "encoding" to "decoding" where the documentation describes the
return value 0.
|
|
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
|
|
It is useful for testing.
|