!SlMumQZnFjwLRjWFbW:nixos.org

Nix + Doom Emacs

218 Members
Running Doom Emacs with Nix | You probably want https://github.com/nix-community/nix-doom-emacs47 Servers

Load older messages


SenderMessageTime
9 Aug 2023
@JoelMcCracken:matrix.orgJoelMcCrackenemacs is run w a shim, similar to what currently occurs via nix-straight, which grabs more of the data besides just the package name (ideally, all of the data) some lisp is called which looks up the metadata to see how straight.el would resolve the package (the repo, the commit, etc). this data is serialized (json?) at subsequent step, nix reads this serialized data, and then constructs an overlay with the correct packages. the installation then procedes as it currently does, using this new overlay to just install the requrired packages. 19:39:42
@JoelMcCracken:matrix.orgJoelMcCrackeni noticed that these are done as separate... derivations? steps? not sure of the right term here.. in nix-straight; i'm not sure why it needs to be this way19:44:10
@ckie:ckie.devckie (they/them) JoelMcCracken: right so, the emacs shim runs in one go, currently collecting just the package names, and it doesn't have a network connection at this point because it's in a Nix build. the package meta is put into a json file, which is the output of this derivation. next up the nix evaluator parses this JSON, and prepares the next derivation using that, reading another derivation's result is called IFD 19:49:25
@ckie:ckie.devckie (they/them) * JoelMcCracken: right so, the emacs shim runs in one go, currently collecting just the package names, and it doesn't have a network connection at this point because it's in a Nix build. the package meta is put into a json file, which is the output of this derivation. next up the nix evaluator parses this JSON, and prepares the next derivation using that: reading another derivation's result is called IFD 19:49:32
@ckie:ckie.devckie (they/them) * JoelMcCracken: right so, the emacs shim runs in one go, currently collecting just the package names, and it doesn't have a network connection at this point because it's in a Nix build. the package meta is put into a json file, which is the output of this derivation. next up the nix evaluator parses this JSON, and prepares the next derivation using that: reading & Importing From a Derivation's result is called IFD 19:49:51
@JoelMcCracken:matrix.orgJoelMcCrackenahhhhhh19:50:16
@ckie:ckie.devckie (they/them) but the trick is we don't always get fully-qualified package paths, sometimes we just get a (package! blahblah-mode), and we have to resolve it 19:50:38
@JoelMcCracken:matrix.orgJoelMcCrackensure19:50:55
@ckie:ckie.devckie (they/them) so that's done here atm 19:51:55
@JoelMcCracken:matrix.orgJoelMcCrackenthis seems to be the key https://github.com/radian-software/straight.el/blob/master/straight.el#L302219:54:45
@ckie:ckie.devckie (they/them)i feel that comment on 303119:55:36
@ckie:ckie.devckie (they/them)so essentially we need to determine a good spot to splice Nix in19:56:38
@ckie:ckie.devckie (they/them)that ideally doesn't involve a large api surface area19:56:52
@JoelMcCracken:matrix.orgJoelMcCrackenyeah19:58:12
@ckie:ckie.devckie (they/them)so that's about where i timed out last time after running around the room trying to read elisp19:58:40
@j4:matrix.orgj4m3sslighty related question, is it sufficient to lock doom's git version to lock package version or ? (I'm confused about the ~/.emacs.d/bin/doom upgrade 19:59:10
@ckie:ckie.devckie (they/them)moooostly19:59:28
@ckie:ckie.devckie (they/them)all of doom's own packages should be pinned, but the user doesn't have to specify a pin19:59:50
@ckie:ckie.devckie (they/them)like I have all of these:20:00:09
@ckie:ckie.devckie (they/them)image.png
Download image.png
20:00:10
@j4:matrix.orgj4m3sYeah right, i was just confused by the fact that in the modules they're called w/o the pin20:00:41
@j4:matrix.orgj4m3sBut seems like the pin is global to the repo :)20:00:49
@ckie:ckie.devckie (they/them)image.png
Download image.png
20:01:36
@ckie:ckie.devckie (they/them) JoelMcCracken: so this is another thing to consider actually. we need to save straight's resolutions. or every package registry's, but that might not be as feasible 20:02:42
@ckie:ckie.devckie (they/them) i'm tending more towards that doom2nix that saves all the source url/commit-ish/hash pins 20:03:43
@j4:matrix.orgj4m3smb then, I remembered it being empty. Thanks for the correction ~ 20:07:46
@JoelMcCracken:matrix.orgJoelMcCrackenwhat is doom2nix?21:15:16
@JoelMcCracken:matrix.orgJoelMcCracken

also,

we need to save straight's resolutions
is this covered by e..g exporting them as json output?

21:16:07
@JoelMcCracken:matrix.orgJoelMcCracken *

also,

we need to save straight's resolutions

is this covered by e..g exporting them as json output?

21:16:16
@ckie:ckie.devckie (they/them) JoelMcCracken: it's a thing that doesn't exist. but it'd be a CLI that pokes the network and creates a nde-specific json lockfile for resolutions 21:20:29

Show newer messages


Back to Room ListRoom Version: 9