Re: [go-nuts] Homoiconic metaprogramming in Go

2018-12-17 Thread howardcshaw
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

Re: [go-nuts] Homoiconic metaprogramming in Go

2018-12-14 Thread Michael Jones
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

Re: [go-nuts] Homoiconic metaprogramming in Go

2018-12-14 Thread roger peppe
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

Re: [go-nuts] Homoiconic metaprogramming in Go

2018-12-14 Thread howardcshaw
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

Re: [go-nuts] Homoiconic metaprogramming in Go

2018-12-14 Thread roger peppe
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 >

Re: [go-nuts] Homoiconic metaprogramming in Go

2018-12-13 Thread Ian Lance Taylor
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

[go-nuts] Homoiconic metaprogramming in Go

2018-12-13 Thread Dmitry Ponyatov
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