aboutsummaryrefslogtreecommitdiffstats
path: root/lib/syntax_tools/src
AgeCommit message (Collapse)Author
2016-11-30Merge pull request #805 from matwey/fsf_addrBjörn Gustavsson
Fix FSF mail address
2016-08-31Fix documentation of an option of erl_tidyPierre Fenoll
2016-07-09Fix infinite loop in merl_transformPéter Gömöri
This can happen when a syntactically incorrect text is passed to a merl:qquote/2,/3 call. The parse transform optimizes calls to some functions in merl by converting strings into templates at compile time. If this evaluation fails (in eval_call/4 - for example because of a sytanx error in the parsed text) the original function call should be kept unchanged. However in case of qquote/3 the call is converted into a combination of quote/2 and subst/2, but upon failure the original qquote/3 call is substituted into the wrong place. E.g.: this expression merl:qquote(Pos, Text, Env) is first converted to merl:subst(merl:quote(Pos, Text), Env) then if evaluating the quote call fails into merl:subst(merl:qquote(Pos, Text, Env), Env) and the expansion is run again on the internal qquote/3 argument resulting in an infinite loop. This is now fixed so in case of failure the original qquote/3 call is kept.
2016-07-07syntax_tools: Improve typesHans Bolinder
2016-07-06syntax_tools: Make erl_tidy work on input file with tildeMark Bucciarelli
See also http://bugs.erlang.org/browse/ERL-151.
2016-06-10Merge branch 'hasse/dialyzer/improve_from_form/OTP-13547'Hans Bolinder
* hasse/dialyzer/improve_from_form/OTP-13547: Update primary bootstrap stdlib: Correct types and specs dialyzer: Minor adjustments dialyzer: Suppress unmatched_return for send/2 dialyzer: Improve the translation of forms to types dialyzer: Use a cache when translating forms to types dialyzer: Prepare erl_types:t_from_form() for a cache dialyzer: Optimize erl_types:t_form_form() dialyzer: Correct types syntax_tools: Correct types erts: Correct character repr in doc of the abstract format stdlib: Correct types and specs
2016-06-09Remove support for '...' in Maps typesHans Bolinder
It is possible that '...' is added later (OTP 20.0), but for now we are not sure of all details.
2016-06-09syntax_tools: Correct typesHans Bolinder
2016-06-09stdlib: Correct types and specsHans Bolinder
2016-05-09syntax_tools: Add support for new map type syntaxHans Bolinder
The pretty-printing of `...' in map types is complex. The representation of `...' can be changed before OTP 19.
2016-05-09syntax_tools: Correct types and specsHans Bolinder
2016-05-09syntax_tools: Update igor to handle typed recordsHans Bolinder
2016-05-09syntax_tools: Add support for types and specsHans Bolinder
In particular, types and specs can be pretty-printed. There are issues with macros (left behind by epp_dodger). Typed record fields are handled. Fields are represented by triples instead of two-tuples, which is an incompatible change. Some attributes (-export_type, -spec, -type, &c) have been given meaning in recent time, but the set of wild attributes (see Barklund's spec) is not changed.
2016-05-09syntax_tools: Fix pretty-printing of the \x{...} syntaxHans Bolinder
2016-05-04syntax_tools: Update runtime dependenciesHans Bolinder
2016-03-15update copyright-yearHenrik Nord
2016-01-20syntax_tools: Correct a typeHans Bolinder
2015-12-11Use 'rand' instead of the obsolete 'random' moduleBjörn Gustavsson
In most cases, we don't have to seed the random number generator, as the rand:uniform/1 takes care about that itself.
2015-10-09Update Syntax ToolsHans Bolinder
Record field types have been modified due to commit 8ce35b2: "Take out automatic insertion of 'undefined' from typed record fields".
2015-09-15syntax_tools: Use the erl_anno module a bit moreHans Bolinder
2015-08-06Fix FSF mail addressMatwey V. Kornilov
2015-06-18Change license text to APLv2Bruce Yinhe
2015-05-29syntax_tools app file: Update dependenciesBjörn Gustavsson
The compiler application is now a dependency.
2015-05-28Makefile: Eliminate crash when building with native libsBjörn Gustavsson
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.
2015-05-25Merge branch 'richcarl/syntax_tools/add-merl'Björn Gustavsson
* richcarl/syntax_tools/add-merl: Make merl compatible with OTP 18.0 Add tests for merl in syntax_tools Include Merl in Syntax Tools
2015-05-25Update runtime_dependencies in application resource filesHans Bolinder
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.
2015-05-22Make merl compatible with OTP 18.0Richard Carlsson
2015-05-22Include Merl in Syntax ToolsRichard Carlsson
2015-04-30syntax_tools: Use module erl_annoHans Bolinder
2015-02-23Merge branch 'richcarl/syntax_tools-remove-mnemosyne'Zandra Hird
* 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
2015-01-15Merge branch 'maint'Bruce Yinhe
2014-12-29fix bad format of error in epp_dodger:parse_file/3Richard Carlsson
2014-12-22Remove support for Mnemosyne rulesRichard Carlsson
2014-12-22Remove support for mnemosyne-style record field accessRichard Carlsson
(The support in erl_parse got removed when 'packages' were removed, since the dot notation was overlaid on the existing mnemosyne access syntax.)
2014-10-27Merge branch 'maint'Björn-Egil Dahlberg
2014-10-24syntax_tools: Teach Maps to erl_syntaxBjörn-Egil Dahlberg
Affected functions: * erl_syntax:abstract/1 * erl_syntax:concrete/1 * erl_syntax:is_leaf/1 * erl_syntax:is_literal/1
2014-10-24syntax_tools: Fix is_literal/1 for binaryBjörn-Egil Dahlberg
2014-07-02Merge branch 'maint'Magnus Lidén
2014-06-26edoc, syntax_tools: Don't fail on invalid UTF-8Hans Bolinder
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.
2014-05-14Merge branch 'maint'Björn-Egil Dahlberg
2014-05-09Fix reverting map in syntax_toolsRoland Karlsson
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.
2014-04-28[syntax_tools] Let erl_syntax:concrete() accept the F/A syntaxHans Bolinder
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.
2014-04-28Introduce the attribute -optional_callbacks in the context of behavioursHans Bolinder
2014-03-20Introduce runtime_dependencies in .app filesRickard Green
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.
2014-02-25Correct a contract in the igor moduleHans Bolinder
Thanks Kostis.
2014-02-24syntax_tools: Fix broken doc links for MapsBjörn-Egil Dahlberg
2014-02-24Merge branch 'hb/dialyzer/deprecate_types/OTP-10342'Hans Bolinder
* hb/dialyzer/deprecate_types/OTP-10342: Deprecate pre-defined built-in types
2014-02-24Merge branch 'schlagert/fix_basic_appups'Siri Hansen
* 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
2014-02-23Deprecate pre-defined built-in typesHans Bolinder
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.
2014-02-21Merge branch 'nox/maps-erl_syntax-fix-docs'Björn-Egil Dahlberg
* nox/maps-erl_syntax-fix-docs: Mention map trees in erl_syntax:type/1 documentation