@nyeongAn Nyeong (安寧) 혹시 fetchTarball을 쓰지 않고 emacs-overlay를 flake inputs에 추가하는 건 해보셨나요? 아니면 fetchFromGithub로 받아와도 괜찮습니다. 아무리 sha256을 지정해도 fetchTarball은 이걸 다운받은 tarball을 검증하는 용도로 사용하는거지 fixed-output derivation 처럼 outpath를 찾는데 사용하지는 않을 거예요. cache TTL이 지나거나 nix daemon을 껐다 켜면 다시 다운받을 거예요.

이게 왜 재빌드를 유발하는지는 저도 지금 명확히 설명이 어렵지만 fetchTarball의 결과값이 derivation나 path가 아닌 스트링이라서 생기는 미묘한 차이점이 있기는 합니다. 일례로 remote 빌딩을 하기 위해 prerequisite들을 빌드 서버에 넘기는데 fetchTarball로 받아온 애들은 prerequisite closure에 포함이 안됐던 걸로 기억해요. 목적하는 derivation이 remote에서 직접 nix 표현을 eval 해서 얻어진 경우는 (eval 시 fetch를 해서 store에 담기 때문에) 문제가 없지만 그렇지 않은 경우는 존재하지 않는 store path에 대한 에러가 날 수 있거든요.

하여튼 다른 건 딱히 눈에 띄는게 없어 보여서 fetchTarball만 의심하게 되네요.

2

❤️

2 people reacted.

지금까지 다루어 봤던 언어는 아래와 같습니다. MSX Basic Z80 Assembly Pascal GW-Basic C Macromedia Director Visual Basic PHP Flash Actionscript C++ Javascript

그리고 지금은, 하스켈을 비즈니스에 쓰려고 몇 년간 노력하고 있습니다. 지금 상태는, 하스켈 자체를 연구하는 게 아니라, 하스켈 (혹은 함수형 언어) 이해가 어려운 이유를 연구하는 아마추어 연구가쯤 되어버렸습니다. 하스켈 주제로 블로그를 운영 중이지만, 아직은 하스켈 프로그래머라고 자신 있게 말하진 못하고 있습니다. 가끔 이해에 도움이 될만한 측면이 보이면, 가볍게 아이디어를 여러 SNS에 올려보곤 하는데, 그다지 프로그래머에게 쓸모 있는 내용이 포함되진 않는 것 같습니다.

i am the one who knocks