| 15 Nov 2024 |
| Diamond (it/she) changed their profile picture. | 23:01:09 |
| 17 Nov 2024 |
| adisbladis joined the room. | 03:23:02 |
adisbladis | I'm experimenting with new Go builders for Nix and would like to invite people to take a look https://github.com/adisbladis/gobuild.nix/ | 03:26:19 |
| 19 Nov 2024 |
| Diamond (it/she) changed their profile picture. | 21:15:52 |
| 20 Nov 2024 |
| Inayet removed their profile picture. | 00:59:17 |
| 26 Nov 2024 |
| Sefodopo joined the room. | 03:14:23 |
| 5 Dec 2024 |
| Toma joined the room. | 18:43:06 |
| 6 Dec 2024 |
| @kaya:catnip.ee changed their profile picture. | 21:16:47 |
| 9 Dec 2024 |
Paul Meyer (katexochen) | Any thought on https://github.com/NixOS/nixpkgs/pull/363617? Would love to get some feedback on the idea. | 15:47:23 |
| 11 Dec 2024 |
| @dminca:matrix.org left the room. | 14:19:10 |
| 17 Dec 2024 |
| @okamis:matrix.org joined the room. | 12:03:58 |
@okamis:matrix.org | Hello, when running "go run ." in nixos I get the error message "go: creating work dir: stat /tmp/nix-shell-59259-0: no such file or directory" how do I make it build for testing? | 12:05:17 |
Paul Meyer (katexochen) | Can you paste the output of go env? | 12:09:15 |
@okamis:matrix.org | go: creating work dir: stat /tmp/nix-shell-94646-0: no such file or directory | 12:10:43 |
@okamis:matrix.org | it works if i create that dir and runs a command on that shell session. Moving to another it wants a new directory | 12:12:06 |
@okamis:matrix.org | > GO111MODULE=''
> GOARCH='amd64'
> GOBIN=''
> GOCACHE='/home/johndoe/.cache/go-build'
> GOENV='/home/johndoe/.config/go/env'
> GOEXE=''
> GOEXPERIMENT=''
> GOFLAGS=''
> GOHOSTARCH='amd64'
> GOHOSTOS='linux'
> GOINSECURE=''
> GOMODCACHE='/home/johndoe/go/pkg/mod'
> GONOPROXY=''
> GONOSUMDB=''
> GOOS='linux'
> GOPATH='/home/johndoe/go'
> GOPRIVATE=''
> GOPROXY='https://proxy.golang.org,direct'
> GOROOT='/nix/store/klw1ipjsqx1np7pkk833x7sad7f3ivv9-go-1.23.2/share/go'
> GOSUMDB='sum.golang.org'
> GOTMPDIR=''
> GOTOOLCHAIN='auto'
> GOTOOLDIR='/nix/store/klw1ipjsqx1np7pkk833x7sad7f3ivv9-go-1.23.2/share/go/pkg/tool/linux_amd64'
> GOVCS=''
> GOVERSION='go1.23.2'
> GODEBUG=''
> GOTELEMETRY='local'
> GOTELEMETRYDIR='/home/johndoe/.config/go/telemetry'
> GCCGO='gccgo'
> GOAMD64='v1'
> AR='ar'
> CC='gcc'
> CXX='g++'
> CGO_ENABLED='1'
> GOMOD='/home/johndoe/repo/firecracker-bazel/go.mod'
> GOWORK=''
> CGO_CFLAGS='-O2 -g'
> CGO_CPPFLAGS=''
> CGO_CXXFLAGS='-O2 -g'
> CGO_FFLAGS='-O2 -g'
> CGO_LDFLAGS='-O2 -g'
> PKG_CONFIG='pkg-config'
> GOGCCFLAGS='-fPIC -m64 -pthread -Wl,--no-gc-sections -fmessage-length=0 -ffile-prefix-map=/tmp/nix-shell-2798-0/go-build1545191164=/tmp/go-build -gno-record-gcc-switches'
| 12:17:58 |
@okamis:matrix.org | I realize I can still create the dir and give you the output hehehe :) | 12:18:10 |
@okamis:matrix.org | not sure what I did but it started working. Some random stuff i had done was adding attic and substituters, and now I recently added myself as trusted user | 12:30:45 |
| 20 Dec 2024 |
| Frédéric Christ changed their display name from Frédéric Christ to Frédéric Christ 🎄23.12. - 07.01.. | 13:03:09 |
| 21 Dec 2024 |
dnr | Hey all, I recently got annoyed by the lack of caching in incremental Go builds in Nix and decided to just fix it to work the way I thought it should (opt-in similar to ccache). I came up with this:
https://github.com/dnr/nix-gocacheprog
Let me know how it works for you! | 16:06:16 |
Paul Meyer (katexochen) | In reply to @dnrix:matrix.org Hey all, I recently got annoyed by the lack of caching in incremental Go builds in Nix and decided to just fix it to work the way I thought it should (opt-in similar to ccache). I came up with this: https://github.com/dnr/nix-gocacheprog Let me know how it works for you! Nice! We are working on a similar approach with gocacheprog! https://github.com/adisbladis/gobuild.nix/ | 16:10:41 |
Paul Meyer (katexochen) | Ah, you already saw it. ^^ | 16:11:41 |
| 22 Dec 2024 |
dnr | I did.. that's a more ambitious project and a different focus. If I understand correctly, you end up with one derivation per module and the build caching is effectively at module granularity? I wanted to speed up incremental builds/tests so I wanted file-level granularity, more like ccache. Of course it's at the cost of purity, so it's only useful for development, but for that purpose it should be faster. | 00:54:53 |
dnr | * I did.. that's a more ambitious project and a different focus. If I understand correctly, you end up with one derivation per module and the build caching is effectively at module granularity? I wanted to speed up incremental builds/tests so I wanted package-level granularity, more like ccache. Of course it's at the cost of purity, so it's only useful for development, but for that purpose it should be faster. | 00:58:28 |
adisbladis | I think it's really two projects rolled up into one, with different goals:
-
One is the cache prog bits which you can use with or without the builder infra
I'm very much intending for this to be something that you can use in development shells to load cache either from an impure location, or from the nix store, or a hybrid.
-
The second one is the builder infrastructure
I wouldn't get any value out of a ccache style solution as it requires host-specific config for every host/CI. I want to fundamentally fix the packaging model.
| 04:29:21 |
adisbladis | I think per module granularity is probably a sweet spot, but you could go finer grained if you wanted to. | 04:29:57 |
dnr | That's true, per-module is probably fine for most projects. Per-package (or cache object) came out naturally from the way I shared the cache. | 11:10:45 |
dnr | How do you plan to coordinate writes to a shared impure cache? That's what led me to the client/server model. | 11:11:22 |
dnr | * That's true, per-module is probably fine for most projects. Per-package (or cache object) came out naturally from the way I shared the cache. And I was specifically trying to speed up the edit/build/debug cycle so any tiny improvement is good. | 11:13:06 |
| 23 Dec 2024 |
adisbladis | When I'm saying "impure" I'm talking about development shells (and being able to read cache from the store while writing to an impure location), and for that use case there is no coordination problem as there is only a single uid writing to the cache. | 01:53:10 |