MetaPython Roadmap & Release Nodes

Version 0.2.1, 0.2.2

  • Added hygienic macros via defcode blocks

  • Allow variable capture within defcode blocks by passing arguments:

    defcode(?a):
        a = 5

    produces code like:

    a = 5
    

    while the following:

    defcode():
        a = 5

    produces something like:

    _mpy_0 = 5
    

    Version 0.2.1 introduced this syntax and version 0.2.2 allowed for variable argument lists in defcode() declarations like defcode(*args).

Version 0.2

  • Extensive syntax redesign, allowing block macros $if..., $for..., etc.
  • Removal of Jinja2 requirements: defcode blocks now simply use import-time constructs to control their expansion.
  • Macro arguments are now evaluated by default and must be quoted using the ? operator to pass them as code blocks.
  • Major rework of internal architecture

Version 0.1

  • Original attempt at macros for Python
  • Uses Jinja2 for defcode blocks

Table Of Contents

Previous topic

MetaPython Syntax Reference

Next topic

MetaPython Presentations

This Page