Age | Commit message (Collapse) | Author |
|
Stop traversing all segments and buckets of empty
dictionaries by adding a clause that checks the
dictionary size.
This improved compilation of an erlang project from
7.5s to 5.5s seconds when trying out a sample
implementation of erl_lint that uses dicts.
|
|
|
|
* erland/diameter/time/OTP-12439:
otp_SUITE: Ignore diameter undefined function errors
|
|
|
|
* ia/ssl/delete-vs-remove:
ssl: remove -> delete
|
|
Perfctr is a Linux kernel extension that allows programmatic access
to the performance monitoring counters found in most current CPUs.
However, development of perfctr ceased after 2010, and it cannot be
used with Linux kernels newer than 2.6.32.
Therefore the perfctr support code in the Erlang VM is effectively
dead code, so this patch removes it.
|
|
|
|
The beam_validator catches all exceptions and collect them.
It makes more sense to don't catch 'error' and 'exit' exceptions,
but to just print out the name of the current function and pass
on the exception just as all other compilation passes do. Those
kind of exceptions are the symptoms of the kind of severe but
easily catched bugs that occur during development.
|
|
Before the beam_validator was added as compiler pass, it was a
standalone module that could analyse existing .beam files and .S
files.
Even though beam_validator has been part of the compiler for many
releases, it still supports the analysis of .beam and .S files.
To reduce the code bloat and to improve coverage of beam_validator,
remove the file/1 and files/1 functions and all associated help
functions. We'll need to update the test suite, since some of the
checked in .S files have errors that beam_validator ignores, but
that will not be accepted when running them throught the compiler
using the 'from_asm' option. In particular, we will need to export
all functions that should be validated (since the beam_clean pass
will remove any function that is not possible to call).
|
|
|
|
|
|
The assert_strict_literal_termorder/1 function is used to validate the
get_map_elements and has_map_fields instructions. In neither case is
it useful to allow an empty lists of fields, so we should no longer
allow an empty list.
The mmap/2 function is cute, but it is used in only one place, so it
is much simpler to write a special-purpose function to extract the
keys from the list of map pairs.
|
|
The has_map_fields test was not recognized in is_pure_test/1,
because beam_a has rewritten the {list,_} part of instruction.
|
|
|
|
* bjorn/stdlib/string-tokens/OTP-12422:
Optimize string:tokens/2
Modernize and strengthen the test case for string:tokens/2
|
|
We can save some time by reversing the original string
before starting the tokenization.
When there is only one separator, we can save even more time
by treating that case specially so that we don't have to call
lists:member/2 for each character.
|
|
|
|
|
|
* richcarl/shell-module-md5-info:
make c:m/1 show module MD5
OTP-12500
|
|
* siri/cuddle-with-tests:
[sasl] Make test unreliable of kernel.appup
|
|
* siri/test-upgrade:
[ct] Improve support for upgrade test of application
|
|
|
|
* stevendanna/eldap-anon-auth-fix:
Correctly process anon_auth option for eldap:open()
|
|
Correct mistake
|
|
|
|
* studzien/ct_cover_paths:
Add tests for absolute incl_dirs path and for excl_dirs
[ct_cover] Fix paths of incl_dirs in cover spec
OTP-12498
|
|
An erroneous lookup option is needed to trigger the bug, and that can only
enter the system from a parsed file e.g .inetrc.
Pinpointed by Emil Holmström
|
|
|
|
* bjorn/compiler/clean-up/OTP-12497:
cerl: Teach is_literal_term/1 to handle maps
cerl: Add missing is_c_map/1 function
v3_core: Simplify translation of maps
sys_core_fold: Simplify opt_simple_let_2/6
Break out inlining of 'lists' functions to a new module
sys_core_fold: Add is_int_type/2 and is_tuple_type/2
sys_core_fold: Refactor type information access
core_lib: Deprecate functions that are no longer used by the compiler
Eliminate use of core_lib:literal_value/1
Eliminate all uses of core_lib:get_anno/1 and core_lib:set_anno/2
core_lint: Eliminate call to core_lib:is_literal/1
test_lib: Include test_server.hrl using -include_lib
sys_core_fold: Rename add_scope/2 to fit in the sub_* family
v3_core: Suppress compiler-generated calls in guards
v3_core: Remove out-commented code
v3_core: Remove unused function argument for bc_tq()
v3_core: Use Core Erlang annotations in a type-safe way
|
|
|
|
* ia/ssl/soft-upgrade-test:
ssl: Prepare for 18
ssl: Add soft upgrade test suite
|
|
|
|
* ia/ssl/os-timestamp:
ssl: erlang:timestamp -> os:timestamp Complements commit 450773958165539951cd431a9233ce7666ec20e2
|
|
Complements commit 450773958165539951cd431a9233ce7666ec20e2
|
|
The returned variable table when linting a map expression shouldn't include
variables that didn't appear in the expression.
Reported-By: Alexei Sholik
|
|
I was going through application_controller.erl looking for why
something was behaving a certain way, saw a comment about removing
this duplicated code one day, and decided to move that a step forward.
|
|
|
|
|
|
* emauton/mnesia_create_table_docfix:
Fix index for #person.address in create_table/2
|
|
|
|
* crownedgrouse/fix_mnesia_subscribe_doc:
Fix xml doc return value mnesia:(un)subscribe
|
|
|
|
* yannayl/patch-1:
Fixed fun_test examples
|
|
|
|
|
|
|
|
* origin/hb/dialyzer/fix_map_type/OTP-12472:
[dialyzer] Fix a bug concerning map() types
|
|
|
|
|
|
There is no need to always introduce a new variable to hold a map.
Maps are novars (constructs that don't export variables).
|