As preparation for some more extensive work I'm refactoring the main Alpaca AST in alpaca_ast.hrl, removing all Alpaca-native AST work to date. This has two immediate benefits:
Removes dependency on Alpaca itself, simplifying builds that cross OTP versions.
(Enabling) a lot more consistency in some of Alpaca's internals.
As I get back into Alpaca's source and start thinking of larger features/functionality, the mixed-language AST has been quite cumbersome. On top of that, the existing Erlang implementation of the AST is terribly inconsistent. This PR is the first (messy) step towards a cleaner AST.
On removing Alpaca-native AST work: I'm starting to think that in at least the medium term, self-hosting is a nice-to-have, not a value-delivering feature. At worst, it biases Alpaca towards being a language for implementing itself.
As preparation for some more extensive work I'm refactoring the main Alpaca AST in
alpaca_ast.hrl
, removing all Alpaca-native AST work to date. This has two immediate benefits:As I get back into Alpaca's source and start thinking of larger features/functionality, the mixed-language AST has been quite cumbersome. On top of that, the existing Erlang implementation of the AST is terribly inconsistent. This PR is the first (messy) step towards a cleaner AST.
On removing Alpaca-native AST work: I'm starting to think that in at least the medium term, self-hosting is a nice-to-have, not a value-delivering feature. At worst, it biases Alpaca towards being a language for implementing itself.
More to come in the next week or two.