- Option
--file-var-root
to render file variables (_FILE_
,_THIS_FILE
) as relative paths with respect to a specified root.
- Global variables _SYSTEM_ and _MACHINE_ to query environment.
- Emission of standard (#line pragma styled) line directives.
- Factory method arguments in Fypp constructor: evaluator_factory, parser_factor, builder_factory and renderer_factory.
- Support for Python 2.7, 3.3 and 3.4 dropped, support for Python 3.9 added.
- Implement variable keyword argument in macros.
- Add block / contains / endblock construct as alternative for call / nextarg / endcall.
- Escaping of preprocessor comments
- Possibility of specifying character encoding for file I/O with UTF-8 as default.
- Injecting local variables into macros by passing arbitrary (non-declared) keyword arguments is not possible any more. This feature made it impossible to detect typos in keyword argument names in macro calls. [Backwards incompatible]
- Variable positional argument in a macro resolves to a list not to a tuple for more consistency with Python.
- Wrong command-line parser initialisation in waf frontend.
- _LINE_ and _FILE_ were incorrect if the called macro contained a call directive with an evaluation in its argument.
- Wrong _LINE_ and _FILE_ values when calling a macro during evaluation of the arguments of a call directive.
- Variable definition without value.
- Hosting site and branch names (develop -> master, master -> release).
- Missing files in Python source distribution package.
- Direct call format resembling ordinary function call.
- Inline direct call directive.
- Keyword arguments in direct call and call directive.
- Generalized call directive with arbitrary argument types.
- Macros with variable number of arguments.
- Default values for macro arguments.
- Allow names in enddef and endcall directives for better readability.
- Del directive and delvar() function.
- Assert directive.
- Global directive and globalvar() function.
- Python-like consistent global and local scopes and scope lookup rules.
- Predefined variables _THIS_FILE_ and _THIS_LINE_.
- Additional flags in line numbering directives when opening a file or returning to a previous file.
- Additional testing with tox for developers.
- Python 2.6, 3.0 and 3.1 compatibility.
- Setvar directive not allowed as alternative to set any more. [Backwards incompatible]
- Old direct call syntax (@:macro arg1) not supported any more [Backwards incompatible]
- Inline form of def directive not allowed any more. [Backwards incompatible]
- Execution of arbitrary Python script at startup (option -i) has been removed. [Backwards incompatible]
- Minimal API change: process_* methods of Fypp do not accept the optional argument env any more. [Backwards incompatible]
- Equal sign must be used as separator in set directive for better readability. [Backwards incompatible]
- Function setvar() accepts arbitrary number of argument pairs.
- Reverse order exception printing, exception first occurring printed as last.
- Command line tool formats error messages in GNU-like format.
- Make equal sign in set directive mandatory and in setvar directive forbidden.
- Search paths for module imports behave more Python-like.
- Removed builtins callable() and memoryview() from restricted environment as they are not available in all supported Python versions.
- Line numbering with flags fixes gfortrans confusion with line numbers.
- Allow (and promote) usage of set directive instead of setvar.
- Implement stop request via stop directive.
- Assignment to variable tuples.
- Hierarchial exception testing.
- Wrong file name in error report, when exception occurs in a macro defined in an included file.
- Allow inline eval and control directives in direct macro call arguments.
- Add waf integration modules.
- Examples and build system intergration chapters in user guide.
- Change log file.
- Optional suppression of line numbering in continuation lines.
- Optional creation of parent folders for output file.
- Class Fypp independent of ArgumentParser.
- Fix false error, when include was within a directive.
- Wrong line number offset in eval directives.
- Implement direct call.
- Remove paranthesis from direct call.
- Implement call directive.
- More precise error messages.
- Folding prevention for comment lines.
- Smart line folding, fixed format line folding.
- Python 2.7 compatibility.
- Control directive prefix changed from
@
to#
. - Rename function default() into getvar().
- Superfluous trailing newlines in macro calls.
- Basic functionality.