Hello
I'm trying to find the cause why packages installed by straight are not natively compiled.
I'm using (setq straight-repository-branch "develop")
My system packages are natively compiled, i.e:
indent-region is an interactive and natively compiled function defined
in indent.el.gz.
Straight package is natively compiled:
straight-vc-clone is a natively compiled function defined in
straight.el.
However, none of the packages installed by straight are natively compiled:
evil-find-file-at-point-visual is an interactive and compiled function
defined in evil-commands.el.
helpful-mode is an interactive and compiled function defined in
helpful.el.
After reading the readme, my expectation is that these installed packages are natively compiled:
When running on this version of Emacs, straight.el will perform native compilation of packages.
I can see in the directory eln-cache the natively compiled resource for all my packages, but I'm not sure why Emacs doesn't pick this version 🤷
Thanks
Please include the output of the straight-version command.
Please include the output of the
straight-versioncommand.
prerelease (grafted, HEAD -> develop, origin/develop) 6246515 2021-05-05
A few more questions:
comp-deferred-compilation-deny-list and comp-deferred-compilation variables?A few more questions:
Thanks for 👀 !
* Are you using a framework such as Doom or Spacemacs?
no, vanilla emacs, GNU Emacs 28.0.50 (build 1, x86_64-apple-darwin20.4.0, NS appkit-2022.44 Version 10.16 (Build 20E232))
* Does this problem persist across restarts of Emacs?
yes
* What are the values of the `comp-deferred-compilation-deny-list` and `comp-deferred-compilation` variables?
comp-deferred-compilation is t
comp-deferred-compilation-deny-list:
("^/Users/xxx/.emacs.d/straight/build-28.0.50/elfeed/"
"^/Users/xxx/.emacs.d/straight/build-28.0.50/toc-org/"
"^/Users/xxx/.emacs.d/straight/build-28.0.50/evil-org/"
"^/Users/xxx/.emacs.d/straight/build-28.0.50/org-download/"
"^/Users/xxx/.emacs.d/straight/build-28.0.50/async/"
"^/Users/xxx/.emacs.d/straight/build-28.0.50/format-all/"
"^/Users/xxx/.emacs.d/straight/build-28.0.50/language-id/"
"^/Users/xxx/.emacs.d/straight/build-28.0.50/inheritenv/"
"^/Users/xxx/.emacs.d/straight/build-28.0.50/dumbparens/"
"^/Users/xxx/.emacs.d/straight/build-28.0.50/imenu-list/"
"^/Users/xxx/.emacs.d/straight/build-28.0.50/wgrep/"
"^/Users/xxx/.emacs.d/straight/build-28.0.50/expand-region/"
"^/Users/xxx/.emacs.d/straight/build-28.0.50/ivy-avy/"
"^/Users/xxx/.emacs.d/straight/build-28.0.50/avy/"
"^/Users/xxx/.emacs.d/straight/build-28.0.50/doom-snippets/"
"^/Users/xxx/.emacs.d/straight/build-28.0.50/yasnippet/"
"^/Users/xxx/.emacs.d/straight/build-28.0.50/flycheck/"
"^/Users/xxx/.emacs.d/straight/build-28.0.50/let-alist/"
"^/Users/xxx/.emacs.d/straight/build-28.0.50/yaml-mode/"
"^/Users/xxx/.emacs.d/straight/build-28.0.50/terraform-mode/"
"^/Users/xxx/.emacs.d/straight/build-28.0.50/hcl-mode/"
"^/Users/xxx/.emacs.d/straight/build-28.0.50/nix-mode/"
"^/Users/xxx/.emacs.d/straight/build-28.0.50/markdown-mode/"
"^/Users/xxx/.emacs.d/straight/build-28.0.50/json-mode/"
"^/Users/xxx/.emacs.d/straight/build-28.0.50/json-snatcher/"
"^/Users/xxx/.emacs.d/straight/build-28.0.50/json-reformat/"
"^/Users/xxx/.emacs.d/straight/build-28.0.50/dockerfile-mode/"
"^/Users/xxx/.emacs.d/straight/build-28.0.50/go-mode/"
"^/Users/xxx/.emacs.d/straight/build-28.0.50/git-link/"
"^/Users/xxx/.emacs.d/straight/build-28.0.50/magit/"
"^/Users/xxx/.emacs.d/straight/build-28.0.50/git-commit/"
"^/Users/xxx/.emacs.d/straight/build-28.0.50/with-editor/"
"^/Users/xxx/.emacs.d/straight/build-28.0.50/transient/"
"^/Users/xxx/.emacs.d/straight/build-28.0.50/buffer-move/"
"^/Users/xxx/.emacs.d/straight/build-28.0.50/all-the-icons-dired/"
"^/Users/xxx/.emacs.d/straight/build-28.0.50/helpful/"
"^/Users/xxx/.emacs.d/straight/build-28.0.50/elisp-refs/"
"^/Users/xxx/.emacs.d/straight/build-28.0.50/smex/"
"^/Users/xxx/.emacs.d/straight/build-28.0.50/which-key/"
"^/Users/xxx/.emacs.d/straight/build-28.0.50/general/"
"^/Users/xxx/.emacs.d/straight/build-28.0.50/company-prescient/"
"^/Users/xxx/.emacs.d/straight/build-28.0.50/ivy-prescient/"
"^/Users/xxx/.emacs.d/straight/build-28.0.50/prescient/"
"^/Users/xxx/.emacs.d/straight/build-28.0.50/counsel-projectile/"
"^/Users/xxx/.emacs.d/straight/build-28.0.50/projectile/"
"^/Users/xxx/.emacs.d/straight/build-28.0.50/pkg-info/"
"^/Users/xxx/.emacs.d/straight/build-28.0.50/epl/"
"^/Users/xxx/.emacs.d/straight/build-28.0.50/counsel/"
"^/Users/xxx/.emacs.d/straight/build-28.0.50/swiper/"
"^/Users/xxx/.emacs.d/straight/build-28.0.50/ivy-rich/"
"^/Users/xxx/.emacs.d/straight/build-28.0.50/ivy/"
"^/Users/xxx/.emacs.d/straight/build-28.0.50/company/"
"^/Users/xxx/.emacs.d/straight/build-28.0.50/evil-surround/"
"^/Users/xxx/.emacs.d/straight/build-28.0.50/evil-escape/"
"^/Users/xxx/.emacs.d/straight/build-28.0.50/evil-exchange/"
"^/Users/xxx/.emacs.d/straight/build-28.0.50/evil-args/"
"^/Users/xxx/.emacs.d/straight/build-28.0.50/evil-collection/"
"^/Users/xxx/.emacs.d/straight/build-28.0.50/annalist/"
"^/Users/xxx/.emacs.d/straight/build-28.0.50/evil/"
"^/Users/xxx/.emacs.d/straight/build-28.0.50/goto-chg/"
"^/Users/xxx/.emacs.d/straight/build-28.0.50/modus-themes/"
"^/Users/xxx/.emacs.d/straight/build-28.0.50/doom-modeline/"
"^/Users/xxx/.emacs.d/straight/build-28.0.50/shrink-path/"
"^/Users/xxx/.emacs.d/straight/build-28.0.50/f/"
"^/Users/xxx/.emacs.d/straight/build-28.0.50/dash/"
"^/Users/xxx/.emacs.d/straight/build-28.0.50/s/"
"^/Users/xxx/.emacs.d/straight/build-28.0.50/all-the-icons/"
"^/Users/xxx/.emacs.d/straight/build-28.0.50/gcmh/"
"^/Users/xxx/.emacs.d/straight/build-28.0.50/no-littering/"
"^/Users/xxx/.emacs.d/straight/build/org/"
"^/Users/xxx/.emacs.d/straight/build/use-package/"
"^/Users/xxx/.emacs.d/straight/build/bind-key/"
"^/Users/xxx/.emacs.d/straight/build/straight/")
🤨
comp-deferred-compilation-deny-list is a variable defined in
List of regexps to exclude matching files from deferred native compilation.
Files whose names match any regexp are excluded from native compilation.
🤨
comp-deferred-compilation-deny-list is a variable defined in List of regexps to exclude matching files from deferred native compilation.Files whose names match any regexp are excluded from native compilation.
ohh it makes sense, as all of the native compiled packages are available in eln-cache
To clarify: The packages installed by straight are being natively compiled (the .eln files exist in the eln-cache folder?), they just aren't being loaded when you load the packages?
sorry for the late reply, I've being doing lots of changes, still same issue, but now I don't have compiled packages in eln-cache. Let me check fist my setup, so I can have a stable setup where I can confirm/discard any issues.
Thanks for the help
I've cleaned up some of the native-compile code now that I'm using the native-compilation feature myself.
There was a recent breaking change in comp.el upstream (https://github.com/emacs-mirror/emacs/commit/8bc91a6a3f6cc84f549d24467832f67b3130201d).
Once you've updated Emacs and straight, your packages should be compiling properly.
Testing is appreciated when you have the time. Thanks again.
Hey @progfolio
I've tested the latest changes, and now all packages are loaded with the native compiled version!
Thanks!
Most helpful comment
Hey @progfolio
I've tested the latest changes, and now all packages are loaded with the native compiled version!
Thanks!