-
-
Notifications
You must be signed in to change notification settings - Fork 14.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Package request: lem #250777
Comments
Just seeing this now, but I had a flake for lem that seems to work fine if it may help (loading contrib systems doesn't work, they need to be https://github.com/dariof4/lem-flake/ I added a There's a bit of a problem packaging lem into an executable binary though imo, and that is the fact that it uses it's own sbcl image for lisp-mode and the lisp repl, so if you have a flake that defines a I think there are ways to go about it though, setting I'd also like to mention that the roswell installation method works fine afaik, although it's not really a nix way to go about it :P. |
Also see this for some progress (without extensions yet) |
Should we package the precompiled binary first, just to have something to offer and compare? |
I think the best way to go about it is what @Uthar has done by packaging The only questions I have with this approach are three
|
Well, in the case of Emacs we leverage the Emacs' own package system, It allows a huge deal of automation, to the point basically all ELPA and MELPA packages are built by our automation scripts. |
@Uthar could you update your branch with the current changes in upstream? Your main branch is dated by almost six months, and it looks like changes in About our previous conversation, I would like to think that lem is a SBCL-only package - but I could be wrong. I am not sure if the actual maintainers for the project want interoperability between the different compilers. @Sasanidas , what would you like to say over this? |
There was some work to make lem work on different CL implementations (https://lem-project.github.io/lem-page/development/implementations-details/, lem-project/lem#686), although SBCL is the main supported one. |
Good idea - merged master just now
We could try either way - bundling them to lem would be a test of how multi-system pacakaging works, I don't remember if it's done like this for anything so far.
Maybe appending to CL_SOURCE_REGISTRY would work? Or maybe we would have to start writing FASLs to |
I was going to start packaging kandria, but CommonLisp reminded me of this pending issue. @Uthar what is the state of that branch? I tried installing |
As a reminder, we changed the way that Lem is installed, now we use https://github.com/fukamachi/qlot , so we change slightly the way that Lem is installed https://lem-project.github.io/installation/ncurses/linux/ |
@Sasanidas thankfully, qlot is already available on Nixpkgs, but it might have to be updated. But I don't really know much about this. |
Then I think that can solves quite a few issues regarding the installation of Lem (as now it uses qlot for dependencies) |
@Sasanidas unfortunately, not for NixOS. Since packages have to be reproducible, we cannot use external sources. But I'm assuming that we can use pre-packaged SBCL packages, which should be accessible to |
I'm trying to package the SDL2 variant. Editing works, but I can't connect to LSP and there is an issue with "SDL-SURFACE null pointer" sometimes (when calling M-x documentation-describe-bindings). Maybe someone else wants to debug: |
@Uthar I have moved over to Guix for almost half a year. Unfortunately, I won't be able to test it out properly. |
@Uthar IIRC that's a problem with SDL2_ttf packages that were built using the builtin freetype, nixpkgs no longer does as of #308379. Maybe try with the newer SDL2_ttf package and see if the problem is still there? WRT to dependencies, IMO lem packaging is a lot simpler and more maintainable in the long run if we just use qlot in a FOD instead of trying to package every single lem dependency in nix, since qlot comes with a lockfile and is in theory reproducible. I'd been working on my own lem package (both sdl2 and ncurses) at https://github.com/eriedaberrie/my-nix-packages/blob/main/pkgs/lem/default.nix that does just that. (The package itself is very hacky and WIP, the executable launches perfectly fine and can edit basic code, although there's some problems when loading systems during runtime and trying to write to /nix/store or reading from /build that will need to get fixed.) |
thanks @eriedaberrie - it works with that flag. yeah, it sounds better to use the qlfile.lock. I assumed that it doesn't pin quicklisp, but it does. |
Project description
Lem is an editor/IDE well-tuned for Common Lisp development. It is designed to be lightweight and fast, while still providing a rich set of features for Common Lisp development. Lem supports other programming languages thanks to its built-in LSP client. You can choose between an Emacs and a Vim mode.
Other Lem features include:
grep
andgit
interfacesMetadata
You can refer the code snippet was working on before:
https://github.com/Ashvith10/nixpkgs/blob/3580e652c4f5f5ef9d0dd55bffdc9a6cb77438b5/pkgs/applications/editors/lem/default.nix#L41-L61
Pinging @Uthar so that we can continue our conversation here...
The text was updated successfully, but these errors were encountered: