chenyanming / paw

Emacs Annotation and Language Learning tool.
70 stars 3 forks source link

Unable to install in Doom Emacs: Eager macro-expansion failure: (file-missing "Cannot open load file" "No such file or directory" "s") #2

Closed johanwiden closed 3 months ago

johanwiden commented 3 months ago

Now I encountered that (require 's) is missing from several files:

chenyanming commented 3 months ago

I've added it into paw.el header

;; Package-Requires: ((emacs "25.1") (request "0.3.3") (emacsql "3.0.0") (s "1.12.0") (dash "2.17.0"))
johanwiden commented 3 months ago

This unfortunately does not seem to help: doom sync finishes without errors, when I first remove paw from the straight repo, so everything is rebuilt anew. But if I then run doom sync again, I get the error message that "s" i missing.

chenyanming commented 3 months ago

Thanks for letting me know, how about now? If still not ok, probablly need (package! s) as a workaround as well.

johanwiden commented 3 months ago

Now I instead get that request is undefined somewhere in paw. I have checked that I do have the package request. I believe the unexpected behavior is due to macro expansion: The code in some module is not just a function call, but a macro call, that expands to something underlying.

Message: Eager macro-expansion failure: (file-missing "Cannot open load file" "No such file or directory" "request") Backtrace: (error "Eager macro-expansion failure: %S" (file-missing "Cannot open load file" "No such file or directory" "request")) (internal-macroexpand-for-load (paw-add "word") nil) (load-with-code-conversion "/home/jw/.config/emacs/.local/straight/build-29.3/paw/paw-autoloads.el" "/home/jw/.config/emacs/.local/straight/build-29.3/paw/paw-autoloads.el" nil t) (load "/home/jw/.config/emacs/.local/straight/build-29.3/paw/paw-autoloads.el" nil nomessage)

chenyanming commented 3 months ago

I pushed a commit about the macro issue, it should be ok now. Now I just tested with a new doom install then doom sync.

package.el

(package! paw :recipe (:host github :repo "chenyanming/paw"))
damonchan@HKLAP0854 ~ (git)-[master] % rm -rf .emacs.d/.local/straight/repos/paw
damonchan@HKLAP0854 ~ (git)-[master] % rm -rf .emacs.d/.local/straight/build-29.1/paw/
damonchan@HKLAP0854 ~ (git)-[master] % .emacs.d/bin/doom sync
- Using Emacs 29.1 @ /usr/local/bin/emacs
> Synchronizing "default" profile...
  > Regenerating envvars file
    ✓ Generated ~/.emacs.d/.local/env
  > Ensuring packages are installed and built...
    > Updating recipe repos...
    > Cloning paw...ipes for emacsmirror-mirror...
    > Building paw...
    ✓ Built 1 package(s)
  > Updating pinned packages...
    ✓ All 140 packages are up-to-date
  > Purging orphaned packages (for the emperor)...
    - Skipping builds
    - Skipping elpa packages
    - Skipping repos
    - Skipping regrafting
    - Skipping native bytecode
  > (Re)building profile in /home/damonchan/.emacs.d/.local/etc/@/...
    > Deleting old init files...
    > Generating 4 init files...
    > Byte-compiling ~/.emacs.d/.local/etc/@init.29.el...
    ✓ Built init.29.elc
  - Restart Emacs or use 'M-x doom/reload' for changes to take effect
✓ Finished in 13.15266s
chenyanming commented 3 months ago

You can try to run the following commands to complete remove the old paw and pen related codes first before running doom sync

rm -rf .emacs.d/.local/straight/repos/paw
rm -rf .emacs.d/.local/straight/build-29.1/paw/
rm -rf .emacs.d/.local/straight/repos/pen
rm -rf .emacs.d/.local/straight/build-29.1/pen/
johanwiden commented 3 months ago

Ok, I no longer have problems with doom sync. This issue can be closed/