On 3/29/21, Axel Wagner <axel.wagner...@googlemail.com> wrote: > On Mon, Mar 29, 2021 at 2:57 PM <fge...@gmail.com> wrote: ... > An "explanation" like I described in my 2nd email would be very >> helpful and that isn't more complex than P. (If it is, please provide >> a hint.) >> > > I still don't understand how you think we should provide this explanation > without solving SAT. > For example, you write > > buildconstraint_1 excludes: > file1.go > file2.go > file3.go > > What is "builtconstraint_1" and how is it determined by the go tool? My > first impression was that it is supposed to be a build tag (like "cgo"), > which opens up the problems I asked - it's not clear which tag is "at > fault" or how to figure that out. I assumed (ha!) buildconstraint_1 as a parsed predicate (e.g. "// +build linux") would be helpful. In a more complex case it isn't. Thanks again!
> > Or even just the identified and relevant build constraints in CNF is >> most probably enough to take a look at and go like nah, I can see >> buildconstraintX and buildconstraintY, I can give up _quickly_ and not >> waste _more_ time trying to get the package to build. >> > > Sure. That's certainly easy enough to do. FWIW, currently you can get an > approximation of that via > > grep -R "// +build" . > > After #41184 <https://github.com/golang/go/issues/41184> that would give an > even clearer result, as the build constraints are actually guaranteed to be > in DNF with at most one line per file (AIUI). > > It is certainly possible to build a version of this into the Go tool for go > 1.17 already. That is, we could build in a command that just recursively > looks for and parses build constraints and prints them out per-file in CNF > or DNF. Personally, I feel like I would rarely use it though, because I'd > find just a plain grep easier to remember, given that I use it daily. But > my personal feelings shouldn't deter you from proposing this :) agreed :) Still the experience is very much non-go like, though with such a power build constraint language it'll stay like that. -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/CA%2Bctqrps942fEXSJF_LvJ11FWoQD%3DExkV-nqUr6pHyZDwYoYDw%40mail.gmail.com.