I was not responding to it being or not being metaprogramming, just the
implication that go generate commands were provided some sort of special
access. They do not have any access to parsed syntax trees - they can
themselves parse source files and thus create syntax trees. On re-reading,
I can
I've been thinking about a related idea for the past while ... "pure
functions" ... i'll post an email about it now.
On Fri, Dec 14, 2018 at 6:06 AM roger peppe wrote:
> On Fri, 14 Dec 2018 at 14:01, wrote:
>
>> Not sure where you got this impression - commands run by go generate have
>> only t
On Fri, 14 Dec 2018 at 14:01, wrote:
> Not sure where you got this impression - commands run by go generate have
> only the OS environment. They are just ordinary commands, as might be run
> by any shell script, just the calls to them are integrated into the Go
> tooling.
>
> Tools that seem to a
Not sure where you got this impression - commands run by go generate have
only the OS environment. They are just ordinary commands, as might be run
by any shell script, just the calls to them are integrated into the Go
tooling.
Tools that seem to access go syntax trees and the like? They are si
On Fri, 14 Dec 2018 at 05:25, Dmitry Ponyatov wrote:
> Is it possible to do metaprogramming in Go?
>
> What I want to have is a way to run arbitrary code in compile time, which
> has full access to compiler data structures
> (parsed syntax trees, compiler stages callbacks, direct code generator
>
On Thu, Dec 13, 2018 at 9:25 PM Dmitry Ponyatov wrote:
>
> Is it possible to do metaprogramming in Go?
>
> What I want to have is a way to run arbitrary code in compile time, which has
> full access to compiler data structures
> (parsed syntax trees, compiler stages callbacks, direct code generat
Is it possible to do metaprogramming in Go?
What I want to have is a way to run arbitrary code in compile time, which
has full access to compiler data structures
(parsed syntax trees, compiler stages callbacks, direct code generator
calls).
As a variant, it can be some Lisp system runs between