1. What could this do that Macropy does not already do? (yes, I know "run as top-level script", but that's uninspiring for me).
2. Do you have any evidence Numba developers would actually want this?! (as claimed in draft FAQ). I know a lot of them, and teach Numba sometimes, although have not directly contributed. I do not believe they would prefer the AST to the bytecode for the analysis.
3. I guess not really a question, but I just can't see a language feature like this as fully "opt-in". Any feature that is added is going to occur in code I wind up having to maintain. That's already a pain point with e.g. metaclasses/decorators, monkey patching, and other constructs, where code often doesn't mean what it *looks like* it would mean.
... macros, even if hygienic, seem to make that need to learn a new DSL or language for every code base much worse than those other constructs. Looking at code with entirely novel flow control constructs adds a lot of cognitive burden. Not least because there are likely to be a hundred different implementations that make "case" or "do until" do very subtly different things in each one.
On Tue, Sep 15, 2020 at 9:27 AM Mark Shannon firstname.lastname@example.org wrote:
I'd like to propose a new PEP for hygienic macros.
I'm attempting to reduce the controversy and pain of adding new syntax to Python, ... by adding new syntax.
That might sound silly, but I hope to persuade that it isn't.
Adding a new feature to the language is always controversial.
Before a new module or functionality is added to the standard library, it must usually prove itself as a package on PyPI.
(Not always the same package, the value of dataclasses was demonstrated by "attrs".)
However, this isn't currently possible with new language features.
Any new language feature has pros and cons. It adds expressive power for some (usually experienced) users, but potentially confuses and inconveniences other users (especially beginners). However, it is very hard, if not impossible, to determine whether adding new syntax will be be beneficial or harmful before the syntax is added.
Is there a way to add new syntax in a way that allows it be battle tested before adding to the released version of the language? Yes there is, Macros.
I'm not talking about C-style macros which do textual substitution, but "hygienic" macros that rewrite the AST during compilation.
Macros allow domain specific new syntactic features, without bloating the language or confusing newcomers.
In general, I would except macros to be used within libraries, so that those libraries gain the power of their custom macros without making Python ever larger and more complex.
However, there is no reason why they cannot be made more widely available. Should a macro become widely used and popular, then it can be considered for adoption into the language.
Cheers, Mark. _______________________________________________ Python-Dev mailing list -- email@example.com To unsubscribe send an email to firstname.lastname@example.org https://mail.python.org/mailman3/lists/python-dev.python.org/ Message archived at https://email@example.com/message/7BX4S6RO... Code of Conduct: http://python.org/psf/codeofconduct/