Giter Site home page Giter Site logo

Comments (5)

aadcg avatar aadcg commented on August 19, 2024

The issue is not completely related to Nyxt. define-nyxt-user-system-and-load does work, otherwise @aartaka wouldn't be using it.

I'd suggest to start simple and to remove Nix from the equation. Also you could call load-file from config.lisp.

from nyxt.

diseraluca avatar diseraluca commented on August 19, 2024

Hi, @aadcg, thank you for such a fast response.

I already started without Nix (I've been using Nyxt on and off for months, much before moving to NixOS) and as I say, a more complex configuration than this works perfectly on my Arch Linux desktop.

My impression was that this might be a bug due to the same configuration working on one system and not another (but the difference in the system might explain this, albeit I have literally no idea what is happening exactly).

I've been trying to replicate the last few days in different ways and "removing" Nix from the equation but trying to reproduce a similar setup (two-step symlinks, read-only files and so on) produces the same failure on my system, albeit I cannot always replicate it. Testing on my Arch I cannot actually replicate it even if I try to replicate a similar structure so I assume it must indeed be a Nix thing.

I don't see anything in the documentation that would explain this.
Thus why I expected this might be a bug or an underdocumented limitation.

Albeit I can understand if I think this is not to be~considered so, in which case the issue can should be closed.

Thank you for the help and for the suggestion about using load-file directly!

from nyxt.

aadcg avatar aadcg commented on August 19, 2024

@diseraluca my wild guess is that Nix handles ASDF in a peculiar way. See https://asdf.common-lisp.dev/asdf.html#Controlling-where-ASDF-searches-for-systems.

If you do find the root cause, it would be great the report it to Nix and Nyxt (in case there's something to be done from our side).

from nyxt.

diseraluca avatar diseraluca commented on August 19, 2024

Just in case someone ends up on this, since I finally had time to check it, this ended up being a cache issue.

ASDF will compile a fasl of each component the first time they are loaded (which you can find in ~/.cache/scbl.../) and this will be consistently loaded independently of how many changes are made to the original file.

The cache failure is due to Nix derivations setting the mtime of everything in the nix store to 1970 (for reproducibility)(https://nixos.org/manual/nix/stable/language/derivations.html), which tricks ASDF into never compiling the file again.

This is true only of files in the store, so not passing by the store (e.g not generating the files from home-manager) will not incur in the same issue.

I'm not sure of how to fix this on Nix side yet, or if some workaround is possible, but one can call asdf:disable-output-translation (https://asdf.common-lisp.dev/asdf.html#Output-Caching-Results) in their Nyxt config.
This unfortunately disables the caching entirely, so it might downgrade performance for most usages.

Simply calling asdf:clear-output-translation did not work in my case, but I haven't had time to go so deep into ASDF codebase to know why.

Sorry for replying to the closed issue but thought it might be useful in case someone ends up on it due to a related or similar problem.

from nyxt.

jmercouris avatar jmercouris commented on August 19, 2024

Your thorough investigation is very much appreciated! Thank you!

from nyxt.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.