From mboxrd@z Thu Jan 1 00:00:00 1970 From: Leo Famulari Subject: Go build system updates and future work? Date: Thu, 14 Mar 2019 15:52:24 -0400 Message-ID: <20190314195224.GA18712@jasmine.lan> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="y0ulUmNC+osPPQO6" Return-path: Received: from eggs.gnu.org ([209.51.188.92]:33212) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h4WRc-0000dr-Dl for guix-devel@gnu.org; Thu, 14 Mar 2019 15:55:13 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1h4WOy-0002k0-6q for guix-devel@gnu.org; Thu, 14 Mar 2019 15:52:28 -0400 Received: from out2-smtp.messagingengine.com ([66.111.4.26]:59597) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1h4WOx-0002j0-Sw for guix-devel@gnu.org; Thu, 14 Mar 2019 15:52:28 -0400 Received: from localhost (c-76-124-202-137.hsd1.pa.comcast.net [76.124.202.137]) by mail.messagingengine.com (Postfix) with ESMTPA id C638C1031D for ; Thu, 14 Mar 2019 15:52:25 -0400 (EDT) Content-Disposition: inline List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: guix-devel@gnu.org --y0ulUmNC+osPPQO6 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline 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 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 . 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. --y0ulUmNC+osPPQO6 Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEsFFZSPHn08G5gDigJkb6MLrKfwgFAlyKsPgACgkQJkb6MLrK fwg/1BAAklclUpVTbeZX9mYwnW4eui8IiCUstJP9vea8UmR8ig2aCbHEPNHwp8V4 sxjJJXEqqyJ0/Z7NLXsnnpmXg3aPozi19LwiQc125dW7woaAIw27QqJ7eg/cH8Q4 aKrkajC/ISw88SEQjADYrxWANwTUkGDDBhuCqyPpfvxOdLTj5j+9X8kwDfCZUKmI dkUTeaPxDq3Nmr5ug5hvMa+vQwiAOtiWt8apcgM0LHRaQPfE15vqKHGg4OTSf+fj gGMypZ4+xPbbAPcyAnwk8zrqdCKvT1tQQFCtLj3lO5hHSMSTIz7v+kxbRdjJ+6Pp a3N+UGT7tr8I1frbynzoaJFdQTVd058FjCtrnbvHubOBDtmq10qjyBPlmsx8ROto nX+kfM373GJlTPy3sotq6Nf5ktUcRkFeqDosCJ2coevNhAsGCxV2Tkp6UJqeDFOA ePVhKfhoUkt7nv2XwTv2f/9JqgCwekTEo2EOGWd8FRGGJRn/FSpg1NUiYk5rb/Ox 3K3OaCHYZGzJ2vM6JL4I5hl7xUAPUfgVd82R/jdtfSt/Lre7h6L3+EKqAdK3EYUM GMuTLLGZvEf/96xarRxpejoOlL+hAbl+J/2/rBKMLlVkl6Iwo957i/6fF6CRY4z5 CUu3CPdfgSX662kEE1PWeF81TJC9IOc07/jyGM/EbsdC2+NSXv0= =KzwG -----END PGP SIGNATURE----- --y0ulUmNC+osPPQO6--