Age | Commit message (Collapse) | Author |
|
Record field types have been modified due to commit 8ce35b2:
"Take out automatic insertion of 'undefined' from typed record fields".
|
|
|
|
|
|
The compiler application is now a dependency.
|
|
When building with --enable-native-libs and allowing 'make' to use
multiple threads, the compiler would crash because the erl_syntax
module was missing. Here is the recipe for making it crash on
my computer:
git clean -dxfq
MAKEFLAGS='-j10' ./otp_build setup -a --enable-native-libs
What would happen is that when merl_transform was used to compile
itself, it would call 'merl' which in turn would call erl_syntax and
erl_syntax_lib. Since those modules were not listed as dependencies,
there was no guarantee that they had actually been compiled. In fact,
erl_syntax is a large module so a compilation it with +native would
usually not finish before it was needed for compiling merl_transform.
To ensure that the erl_syntax and erl_syntax_lib modules are
available when needed, they must be explicitly listed as dependencies.
|
|
* richcarl/syntax_tools/add-merl:
Make merl compatible with OTP 18.0
Add tests for merl in syntax_tools
Include Merl in Syntax Tools
|
|
Applications that use the new erl_anno module are depending on STDLIB 2.5.
Note that CosNotification, Megaco, SNMP, Xmerl, and Parsetools use the
erl_anno module via the Yecc parsers only (the header file in
lib/parsetools/include/yeccpre.hrl calls the erl_anno module).
HiPE does not call the erl_anno module, but uses an exported type.
We have chosen to make HiPE dependent on the erl_anno module.
|
|
|
|
|
|
|
|
* richcarl/syntax_tools-remove-mnemosyne:
Remove Mnemosyne rules support from EDoc
Remove support for Mnemosyne rules
Remove support for mnemosyne-style record field access
OTP-12511
|
|
|
|
|
|
|
|
(The support in erl_parse got removed when 'packages' were removed, since
the dot notation was overlaid on the existing mnemosyne access syntax.)
|
|
|
|
Affected functions:
* erl_syntax:abstract/1
* erl_syntax:concrete/1
* erl_syntax:is_leaf/1
* erl_syntax:is_literal/1
|
|
|
|
|
|
As a temporary measure to ease the transition to default UTF-8
encoding, automatically fall back to the Latin-1 encoding (without any
warnings; the Erlang Compiler will emit a proper warning).
The intention is to remove this workaround in OTP 18 or 19.
|
|
|
|
There was a copy-paste bug in erl_syntax when running
e.g. erl_syntax:revert_forms, affecting maps. Instead of getting
Key/Value you got Key/Key in the resulting abstract form.
|
|
Note: `arity_qualifier` nodes are recognized. This is to follow The
Erlang Parser when it comes to wild attributes: both {F, A} and F/A
are recognized, which makes it possible to turn wild attributes into
recognized attributes without at the same time making it impossible to
compile files using the new syntax with the old version of the Erlang
Compiler.
|
|
|
|
Most dependencies introduced are exactly the dependencies to other
applications found by xref. That is, there might be real dependencies
missing. There might also be pure debug dependencies listed that
probably should be removed. Each application has to be manually
inspected in order to ensure that all real dependencies are listed.
All dependencies introduced are to application versions used in
OTP 17.0. This since the previously used version scheme wasn't
designed for this, and in order to minimize the work of introducing
the dependencies.
|
|
Thanks Kostis.
|
|
|
|
* hb/dialyzer/deprecate_types/OTP-10342:
Deprecate pre-defined built-in types
|
|
* schlagert/fix_basic_appups:
Dynamically configure typer_SUITE according to environment
Disable hipe_SUITE when environment doesn't support it
Make hipe non-upgradable by setting appup file empty
Fix missing module on hipe app file template
Add test suites performing app and appup file checks
Introduce appup test utility
Fix library application appup files
Fix non-library appup files according to issue #240
OTP-11744
|
|
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.
|
|
* nox/maps-erl_syntax-fix-docs:
Mention map trees in erl_syntax:type/1 documentation
|
|
As discussed in issue #240 *all* OTP library applications use the '.*'
wildcard as up and down version. This makes library applications
always up- and downgradeable. Using the wildcard version obsoletes
all maintenance tasks regarding library applications' appup files.
Additionally, it prevents upgrade problems caused by automatically
included application dependencies when using reltool to create
releases. Missing copyright headers are now consistently present.
|
|
|
|
* nox/eep37/OTP-11537:
Support named funs in erl_prettypr
|
|
|
|
|
|
map_expr/1
map_expr/2
map_expr_argument/1
map_expr_fields/1
map_field_assoc/2
map_field_assoc_name/1
map_field_assoc_value/1
map_field_exact/2
map_field_exact_name/1
map_field_exact_value/1
|
|
A named fun's name is a variable name, its type in syntax_tools is named_fun_expr.
|
|
|
|
* feat/erl_tidy_print_to_stdout:
Added documenation for the new option describing what it does.
Add initial implementation of having erl_tidy print to screen instead of writing to the file provided. The reason for this is that you may want to have an intermediary step between saving the tidied file and using the output.
OTP-11632
|
|
|
|
|
|
print to screen instead of writing to the file
provided. The reason for this is that you may want
to have an intermediary step between saving the
tidied file and using the output.
Use-case personally is wanting to integrate
erl_tidy into emacs and tidy buffers, overwriting
the current file is generally not how this works
in emacs with source code tidiers.
|
|
|
|
This partially reverts 290dc2b08a2f92157ac5358fba815f4dbb32f8f2 in which
implicit funs were mistakenly thought to be using abstract terms for their name
and arity.
|
|
This adds optional names to fun expressions. A named fun expression
is parsed as a tuple `{named_fun,Loc,Name,Clauses}` in erl_parse.
If a fun expression has a name, it must be present and be the same in
every of its clauses. The function name shadows the environment of the
expression shadowing the environment and it is shadowed by the
environment of the clauses' arguments. An unused function name triggers
a warning unless it is prefixed by _, just as every variable.
Variable _ is allowed as a function name.
It is not an error to put a named function in a record field default
value.
When transforming to Core Erlang, the named fun Fun is changed into
the following expression:
letrec 'Fun'/Arity =
fun (Args) ->
let <Fun> = 'Fun'/Arity
in Case
in 'Fun'/Arity
where Args is the list of arguments of 'Fun'/Arity and Case the
Core Erlang expression corresponding to the clauses of Fun.
This transformation allows us to entirely skip any k_var to k_local
transformation in the fun's clauses bodies.
|
|
|
|
Function erl_syntax_lib:analyze_implicit_fun/1 should not be called on
implicit external funs, as their parts can contain variables instead of
atoms and integers.
|
|
Implicit funs parts in plain AST are no longer in concrete form since
Erlang/OTP R15.
|
|
|