* Go build system updates and future work?
@ 2019-03-14 19:52 Leo Famulari
2019-03-14 22:51 ` Pierre Neidhardt
2019-03-16 2:40 ` Katherine Cox-Buday
0 siblings, 2 replies; 10+ messages in thread
From: Leo Famulari @ 2019-03-14 19:52 UTC (permalink / raw)
To: guix-devel
[-- Attachment #1: Type: text/plain, Size: 1095 bytes --]
I just pushed a revamped Go build system with commit
e3900a4d64e4bf6f426809d6bff058e5a2ae9bc8.
The main change is that instead of putting the list of Go-language
dependencies store paths in the GOPATH environment variable, these store
paths are union-symlinked into the build directory, and GOPATH points
there.
This fixes the issue of spurious store references
<https://bugs.gnu.org/33620> and should dramatically reduce the closure
size of certain Go packages. So now there is less reason to use bundled
libraries for Go programs.
I think we should consider another change in how we build Go software:
let's stop splitting up Go libraries instead sub-packages.
For example, the packages 'go-golang-org-x-net-ipv4' and
'go-golang-org-x-net-ipv6' are both from the same Git repo at
<https://go.googlesource.com/net>. We should just package
'go-golang-org-x-net'. It's unidiomatic to split them up. In practice, a
Go programmer would have cloned the Git repo into their Go workspace,
and would never have a "split view" of the x/net libraries.
Thoughts? I can work on this in the next week.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Go build system updates and future work?
2019-03-14 19:52 Go build system updates and future work? Leo Famulari
@ 2019-03-14 22:51 ` Pierre Neidhardt
2019-03-14 22:54 ` Pierre Neidhardt
2019-03-14 23:15 ` Leo Famulari
2019-03-16 2:40 ` Katherine Cox-Buday
1 sibling, 2 replies; 10+ messages in thread
From: Pierre Neidhardt @ 2019-03-14 22:51 UTC (permalink / raw)
To: Leo Famulari; +Cc: guix-devel
[-- Attachment #1: Type: text/plain, Size: 571 bytes --]
Hi!
Thank you very much for your work!
> For example, the packages 'go-golang-org-x-net-ipv4' and
> 'go-golang-org-x-net-ipv6' are both from the same Git repo at
> <https://go.googlesource.com/net>. We should just package
> 'go-golang-org-x-net'. It's unidiomatic to split them up. In practice, a
> Go programmer would have cloned the Git repo into their Go workspace,
> and would never have a "split view" of the x/net libraries.
Agreed! This should also make the Go importer more trivial to write/finish!
--
Pierre Neidhardt
https://ambrevar.xyz/
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Go build system updates and future work?
2019-03-14 22:51 ` Pierre Neidhardt
@ 2019-03-14 22:54 ` Pierre Neidhardt
2019-03-14 23:11 ` Leo Famulari
2019-03-14 23:15 ` Leo Famulari
1 sibling, 1 reply; 10+ messages in thread
From: Pierre Neidhardt @ 2019-03-14 22:54 UTC (permalink / raw)
To: Leo Famulari; +Cc: guix-devel
[-- Attachment #1: Type: text/plain, Size: 216 bytes --]
Erratum: You've packaged go-github-com-kr-text a second time :p
This has happened to me once. I think we should have a linter to protect
against this. Thoughts?
--
Pierre Neidhardt
https://ambrevar.xyz/
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Go build system updates and future work?
2019-03-14 22:51 ` Pierre Neidhardt
2019-03-14 22:54 ` Pierre Neidhardt
@ 2019-03-14 23:15 ` Leo Famulari
2019-03-15 6:54 ` Pierre Neidhardt
1 sibling, 1 reply; 10+ messages in thread
From: Leo Famulari @ 2019-03-14 23:15 UTC (permalink / raw)
To: Pierre Neidhardt; +Cc: guix-devel
[-- Attachment #1: Type: text/plain, Size: 681 bytes --]
On Thu, Mar 14, 2019 at 11:51:06PM +0100, Pierre Neidhardt wrote:
> Agreed! This should also make the Go importer more trivial to write/finish!
Okay, I'll try it.
The only part I'm not sure about is what to "build" or "test" for these
library collections. Currently many of them run test suites, which is
nice because it gives us some confidence the package is in good shape.
We don't install any compiled libraries but it does help get the
dependency graph in good shape.
But the top level of the x/net repo, for example, does not have any Go
files at all, so the package will effectively be source only with no
testing. Maybe it won't be a problem in practice, I don't know.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Go build system updates and future work?
2019-03-14 19:52 Go build system updates and future work? Leo Famulari
2019-03-14 22:51 ` Pierre Neidhardt
@ 2019-03-16 2:40 ` Katherine Cox-Buday
2019-03-17 17:43 ` Leo Famulari
1 sibling, 1 reply; 10+ messages in thread
From: Katherine Cox-Buday @ 2019-03-16 2:40 UTC (permalink / raw)
To: Leo Famulari; +Cc: guix-devel
Leo Famulari <leo@famulari.name> writes:
> I just pushed a revamped Go build system with commit
> e3900a4d64e4bf6f426809d6bff058e5a2ae9bc8.
>
> The main change is that instead of putting the list of Go-language
> dependencies store paths in the GOPATH environment variable, these store
> paths are union-symlinked into the build directory, and GOPATH points
> there.
There is a larger change coming that I think we need to account for. Go
modules are here (and in v1.13 will be on by default). This feature
allows Go code to be built outside of a $GOPATH. I'm unsure how this
information intersects with your work, so I'll just leave a link to the
wiki[1] on modules.
Thank you for your contributions!
[1] - https://github.com/golang/go/wiki/Modules
--
Katherine
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2019-03-17 17:56 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-03-14 19:52 Go build system updates and future work? Leo Famulari
2019-03-14 22:51 ` Pierre Neidhardt
2019-03-14 22:54 ` Pierre Neidhardt
2019-03-14 23:11 ` Leo Famulari
2019-03-16 10:08 ` Christopher Baines
2019-03-14 23:15 ` Leo Famulari
2019-03-15 6:54 ` Pierre Neidhardt
2019-03-16 10:49 ` swedebugia
2019-03-16 2:40 ` Katherine Cox-Buday
2019-03-17 17:43 ` Leo Famulari
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.