Skip to content

Latest commit

 

History

History
300 lines (167 loc) · 5.09 KB

CHANGELOG.rst

File metadata and controls

300 lines (167 loc) · 5.09 KB

Change Log

3.2

Added

  • Option --file-var-root to render file variables (_FILE_, _THIS_FILE) as relative paths with respect to a specified root.

3.1

Added

  • 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.

Changed

  • Support for Python 2.7, 3.3 and 3.4 dropped, support for Python 3.9 added.

3.0

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.

Changed

  • 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.

Fixed

  • 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.

2.1.1

Fixed

  • Wrong _LINE_ and _FILE_ values when calling a macro during evaluation of the arguments of a call directive.

2.1

Fixed

  • Variable definition without value.

Changed

  • Hosting site and branch names (develop -> master, master -> release).

2.0.1

Fixed

  • Missing files in Python source distribution package.

2.0

Added

  • 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.

Changed

  • 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.

Fixed

  • Line numbering with flags fixes gfortrans confusion with line numbers.

1.2

Added

  • Allow (and promote) usage of set directive instead of setvar.
  • Implement stop request via stop directive.
  • Assignment to variable tuples.
  • Hierarchial exception testing.

Fixed

  • Wrong file name in error report, when exception occurs in a macro defined in an included file.

1.1

Added

  • 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.

1.0

Added

  • Optional suppression of line numbering in continuation lines.
  • Optional creation of parent folders for output file.

Changed

  • Class Fypp independent of ArgumentParser.

Fixed

  • Fix false error, when include was within a directive.
  • Wrong line number offset in eval directives.

0.12

Added

  • Implement direct call.

Changed

  • Remove paranthesis from direct call.

0.11

Added

  • Implement call directive.
  • More precise error messages.
  • Folding prevention for comment lines.
  • Smart line folding, fixed format line folding.
  • Python 2.7 compatibility.

Changed

  • Control directive prefix changed from @ to #.
  • Rename function default() into getvar().

Fixed

  • Superfluous trailing newlines in macro calls.

0.9

Added

  • Basic functionality.