Size: a a a

2021 June 19

AV

Alexander Vershilov in NixOS
foo/default.nix
{ pkgs
, glibcLocales-light}:


overlay.nix

let glibcLocales-light= self.glibcLocales.override { ...}
in { foo = self.callPackage ./foo {}; }


Ругается, что в foo не передан glibcLocales-light, его надо явно передавать?
источник

AV

Alexander Vershilov in NixOS
типа in { foo = self.callPackage ./foo { glibcLocales-light = glibcLocales-light; }
источник

АБ

Александр Бантьев... in NixOS
Э, ну да, как бы очевидно
источник

AV

Alexander Vershilov in NixOS
Как-бы нет!
источник

AV

Alexander Vershilov in NixOS
Я бы ожидал, что контекст созданный в let виден в вызовах в in
источник

АБ

Александр Бантьев... in NixOS
Либо так либо

{ foo = self.callPackage ./foo {}; glibcLocales-light= self.glibcLocales.override { ...} }
источник

АБ

Александр Бантьев... in NixOS
Контекст не переходит границу import
источник

АБ

Александр Бантьев... in NixOS
И уж тем более callPackage
источник

AV

Alexander Vershilov in NixOS
А callPackage implies import?
источник

АБ

Александр Бантьев... in NixOS
callPackage это просто функция
источник

АБ

Александр Бантьев... in NixOS
Она там внутри делает import, да
источник

АБ

Александр Бантьев... in NixOS
Но это не важно
источник

AV

Alexander Vershilov in NixOS
Наверное это обосновано, но точно не очевидно
источник

АБ

Александр Бантьев... in NixOS
Ты же хаскеллист, ну вот смотри:

bar x = x + foo

goo = let foo = 10 in bar 3

Ты же не ожидаешь, что это сработает, правда?
источник

AV

Alexander Vershilov in NixOS
Не вижу проблем с тем, бы что это сработало
источник

АБ

Александр Бантьев... in NixOS
Хм, что?
источник

АБ

Александр Бантьев... in NixOS
Ты считаешь, что контекст должен протекать в функции?
источник

AV

Alexander Vershilov in NixOS
точнее не так
источник

AN

Alexander N. in NixOS
спасибо, попробую. Оно если что восстанавливается в икы быстро?
источник

AV

Alexander Vershilov in NixOS
А вот почему pkgs, там есть?
источник