Installing ttl-mode package

What happened?

I’m trying to install the package ttl-mode from GitHub - virtual-earth-de/ttl-mode.el: An Emacs mode for editing my own little Nested Turtle (RDF) files

packages.el:

(package! ttl-mode
  :recipe (:host github :repo "virtual-earth-de/ttl-mode.el"))

config.el:

(use-package! ttl-mode
  ;; if you omit :defer, :hook, :commands, or :after, then the package is loaded
  ;; immediately. By using :hook here, the `hl-todo` package won't be loaded
  ;; until prog-mode-hook is triggered (by activating a major mode derived from
  ;; it, e.g. python-mode)
  :config
  ;; code here will run after the package is loaded
  (setq auto-mode-alist
      (append
       (list
        '("\\.ttl" . ttl-mode)
        '("\\.ntl" . ttl-mode))
       auto-mode-alist)))

doom sync runs without any errors.

file locations after install:

[michael@ptr-99umx0tmatrbnskbaht ~]$ ll ~/.emacs.d/.local/straight/*/ttl-mode*
/home/michael/.emacs.d/.local/straight/build-28.2/ttl-mode:
total 0

/home/michael/.emacs.d/.local/straight/repos/ttl-mode.el:
total 16
-rw-r--r--. 1 michael michael 1954 Oct 10 12:35 README.org
drwxr-xr-x. 2 michael michael 4096 Oct 10 12:35 test
-rw-r--r--. 1 michael michael 7788 Oct 10 12:35 ttl-mode.el

Despite all this, evaluation of the config block errors with

Debugger entered--Lisp error: (file-missing "Cannot open load file" "No such file or directory" "ttl-mode")

How would I go about debugging this further? Thanks!

System information


Loading data dump...

Did you restart Emacs after syncing? If so, can you provide more of the backtrace?

I did restart emacs after syncing. The full trace:

Debugger entered--Lisp error: (file-missing "Cannot open load file" "No such file or directory" "ttl-mode")
  require(ttl-mode nil nil)
  eval-region(3963 4453 #<buffer  *+eval-output*> read)  ; Reading at buffer position 3963
  (let ((doom-context doom-context)) (let ((--dolist-tail-- (ensure-list 'eval))) (while --dolist-tail-- (let ((context (car --dolist-tail--))) (doom-context-push context) (setq --dolist-tail-- (cdr --dolist-tail--))))) (eval-region beg end buffer load-read-function))
  (let ((doom-module-context (doom-module-context (doom-module-from-path (or (buffer-file-name (buffer-base-buffer)) default-directory))))) (if doom-inhibit-log nil (doom--log ":context:module: =%s" doom-module-context)) (let ((doom-context doom-context)) (let ((--dolist-tail-- (ensure-list 'eval))) (while --dolist-tail-- (let ((context (car --dolist-tail--))) (doom-context-push context) (setq --dolist-tail-- (cdr --dolist-tail--))))) (eval-region beg end buffer load-read-function)) (save-current-buffer (set-buffer buffer) (let ((pp-max-width nil)) (require 'pp) (pp-buffer) (replace-regexp-in-string "\\\\n" "\n" (string-trim-left (buffer-string))))))
  (condition-case e (let ((doom-module-context (doom-module-context (doom-module-from-path (or (buffer-file-name ...) default-directory))))) (if doom-inhibit-log nil (doom--log ":context:module: =%s" doom-module-context)) (let ((doom-context doom-context)) (let ((--dolist-tail-- (ensure-list 'eval))) (while --dolist-tail-- (let ((context ...)) (doom-context-push context) (setq --dolist-tail-- (cdr --dolist-tail--))))) (eval-region beg end buffer load-read-function)) (save-current-buffer (set-buffer buffer) (let ((pp-max-width nil)) (require 'pp) (pp-buffer) (replace-regexp-in-string "\\\\n" "\n" (string-trim-left (buffer-string)))))) ((debug error) (format "ERROR: %s" e)))
  (unwind-protect (condition-case e (let ((doom-module-context (doom-module-context (doom-module-from-path (or ... default-directory))))) (if doom-inhibit-log nil (doom--log ":context:module: =%s" doom-module-context)) (let ((doom-context doom-context)) (let ((--dolist-tail-- (ensure-list ...))) (while --dolist-tail-- (let (...) (doom-context-push context) (setq --dolist-tail-- ...)))) (eval-region beg end buffer load-read-function)) (save-current-buffer (set-buffer buffer) (let ((pp-max-width nil)) (require 'pp) (pp-buffer) (replace-regexp-in-string "\\\\n" "\n" (string-trim-left (buffer-string)))))) ((debug error) (format "ERROR: %s" e))) (kill-buffer buffer))
  (let ((buffer (generate-new-buffer " *+eval-output*")) (debug-on-error t)) (unwind-protect (condition-case e (let ((doom-module-context (doom-module-context (doom-module-from-path ...)))) (if doom-inhibit-log nil (doom--log ":context:module: =%s" doom-module-context)) (let ((doom-context doom-context)) (let ((--dolist-tail-- ...)) (while --dolist-tail-- (let ... ... ...))) (eval-region beg end buffer load-read-function)) (save-current-buffer (set-buffer buffer) (let ((pp-max-width nil)) (require 'pp) (pp-buffer) (replace-regexp-in-string "\\\\n" "\n" (string-trim-left ...))))) ((debug error) (format "ERROR: %s" e))) (kill-buffer buffer)))
  (string-trim-right (let ((buffer (generate-new-buffer " *+eval-output*")) (debug-on-error t)) (unwind-protect (condition-case e (let ((doom-module-context (doom-module-context ...))) (if doom-inhibit-log nil (doom--log ":context:module: =%s" doom-module-context)) (let ((doom-context doom-context)) (let (...) (while --dolist-tail-- ...)) (eval-region beg end buffer load-read-function)) (save-current-buffer (set-buffer buffer) (let (...) (require ...) (pp-buffer) (replace-regexp-in-string "\\\\n" "\n" ...)))) ((debug error) (format "ERROR: %s" e))) (kill-buffer buffer))))
  (+eval-display-results (string-trim-right (let ((buffer (generate-new-buffer " *+eval-output*")) (debug-on-error t)) (unwind-protect (condition-case e (let ((doom-module-context ...)) (if doom-inhibit-log nil (doom--log ":context:module: =%s" doom-module-context)) (let (...) (let ... ...) (eval-region beg end buffer load-read-function)) (save-current-buffer (set-buffer buffer) (let ... ... ... ...))) ((debug error) (format "ERROR: %s" e))) (kill-buffer buffer)))) (current-buffer))
  +emacs-lisp-eval(3963 4453)
  funcall(+emacs-lisp-eval 3963 4453)
  (if runner (funcall runner beg end) (let ((quickrun-option-cmdkey lang)) (quickrun-region beg end)))
  (let ((runner (or (alist-get major-mode +eval-runners) (and (require 'quickrun nil t) (equal (setq lang (quickrun--command-key ...)) "emacs") (alist-get 'emacs-lisp-mode +eval-runners)))) lang) (if runner (funcall runner beg end) (let ((quickrun-option-cmdkey lang)) (quickrun-region beg end))))
  (cond ((and (fboundp '+eval--ensure-in-repl-buffer) (condition-case nil (progn (get-buffer-window (or (+eval--ensure-in-repl-buffer) t))) (error nil))) (funcall (or (plist-get (cdr (alist-get major-mode +eval-repls)) :send-region) #'+eval/send-region-to-repl) beg end)) ((let ((runner (or (alist-get major-mode +eval-runners) (and (require ... nil t) (equal ... "emacs") (alist-get ... +eval-runners)))) lang) (if runner (funcall runner beg end) (let ((quickrun-option-cmdkey lang)) (quickrun-region beg end))))))
  (let ((load-file-name buffer-file-name) (load-true-file-name (or buffer-file-truename (if buffer-file-name (file-truename buffer-file-name))))) (cond ((and (fboundp '+eval--ensure-in-repl-buffer) (condition-case nil (progn (get-buffer-window (or ... t))) (error nil))) (funcall (or (plist-get (cdr (alist-get major-mode +eval-repls)) :send-region) #'+eval/send-region-to-repl) beg end)) ((let ((runner (or (alist-get major-mode +eval-runners) (and ... ... ...))) lang) (if runner (funcall runner beg end) (let ((quickrun-option-cmdkey lang)) (quickrun-region beg end)))))))
  +eval/region(3963 4453)
  (if (and evil-inhibit-operator (called-interactively-p 'any)) nil (+eval/region beg end))
  (let ((evil-inhibit-operator evil-inhibit-operator-value) (end-marker (make-marker))) (set-marker end-marker end) (if (and evil-inhibit-operator (called-interactively-p 'any)) nil (+eval/region beg end)) (evil-set-marker 91 (or beg (point-max))) (evil-set-marker 93 (max (or beg (point-max)) (1- (or (marker-position end-marker) (point-max))))) (set-marker end-marker nil))
  (unwind-protect (let ((evil-inhibit-operator evil-inhibit-operator-value) (end-marker (make-marker))) (set-marker end-marker end) (if (and evil-inhibit-operator (called-interactively-p 'any)) nil (+eval/region beg end)) (evil-set-marker 91 (or beg (point-max))) (evil-set-marker 93 (max (or beg (point-max)) (1- (or (marker-position end-marker) (point-max))))) (set-marker end-marker nil)) (setq evil-inhibit-operator-value nil))
  (closure (t) (beg end) "Evaluate selection or sends it to the open REPL, i..." (interactive (let* ((props (evil-command-properties '+eval:region)) (evil-operator-range-motion (let (...) (if p ...))) (evil-operator-range-type (plist-get props :type)) evil-operator-range-beginning evil-operator-range-end evil-inhibit-operator) (setq evil-inhibit-operator-value nil evil-this-operator this-command evil-operator-start-col (current-column)) (prog1 (evil-operator-range) (setq evil-inhibit-operator-value evil-inhibit-operator) (if nil (if (evil-visual-state-p) (progn ...)) (setq deactivate-mark t)) (cond ((evil-visual-state-p) (evil-visual-rotate ...)) ((plist-get props :move-point) (if evil-operator-range-beginning ...)))))) (unwind-protect (let ((evil-inhibit-operator evil-inhibit-operator-value) (end-marker (make-marker))) (set-marker end-marker end) (if (and evil-inhibit-operator (called-interactively-p 'any)) nil (+eval/region beg end)) (evil-set-marker 91 (or beg (point-max))) (evil-set-marker 93 (max (or beg (point-max)) (1- (or ... ...)))) (set-marker end-marker nil)) (setq evil-inhibit-operator-value nil)))(3963 4453)
  apply((closure (t) (beg end) "Evaluate selection or sends it to the open REPL, i..." (interactive (let* ((props (evil-command-properties '+eval:region)) (evil-operator-range-motion (let (...) (if p ...))) (evil-operator-range-type (plist-get props :type)) evil-operator-range-beginning evil-operator-range-end evil-inhibit-operator) (setq evil-inhibit-operator-value nil evil-this-operator this-command evil-operator-start-col (current-column)) (prog1 (evil-operator-range) (setq evil-inhibit-operator-value evil-inhibit-operator) (if nil (if (evil-visual-state-p) (progn ...)) (setq deactivate-mark t)) (cond ((evil-visual-state-p) (evil-visual-rotate ...)) ((plist-get props :move-point) (if evil-operator-range-beginning ...)))))) (unwind-protect (let ((evil-inhibit-operator evil-inhibit-operator-value) (end-marker (make-marker))) (set-marker end-marker end) (if (and evil-inhibit-operator (called-interactively-p 'any)) nil (+eval/region beg end)) (evil-set-marker 91 (or beg (point-max))) (evil-set-marker 93 (max (or beg (point-max)) (1- (or ... ...)))) (set-marker end-marker nil)) (setq evil-inhibit-operator-value nil))) (3963 4453))
  +eval:region(3963 4453)
  funcall-interactively(+eval:region 3963 4453)
  command-execute(+eval:region)

Weird. I can reproduce this:

0 2023-10-14 12:12:35 $ rm -rf ~/.config/emacs/.local/straight/build-29.1/ttl-mode/
0 2023-10-14 12:12:52 $ doom build -r
Loading /nix/store/qkasnjq86si8vspaxpz0rm9s96i21hdz-emacs-pgtk-29.1/share/emacs/site-lisp/site-start (native compiled elisp)...
> (Re)building packages...
  > Building ttl-mode...
  ✓ Rebuilt 1 package(s)
> (Re)building profile in /home/lh/.local/share/doom/sandbox/@/0/...
  > Deleting old init files...
  > Generating 4 init files...
  > Byte-compiling ~/.local/share/doom/sandbox/@/0init.29.el...
  ✓ Built init.29.elc
✓ Finished in 4.47404s
0 2023-10-14 12:13:00 $ ls -lAh ~/.config/emacs/.local/straight/build-29.1/ttl-mode/
total 0

I’m not sure why nothing is building. Looking at the package, nothing stands out to me. Unfortunately the doom-packages-build code is pretty nasty and is due to be rewritten for v3. You could work around this by including the package in your config and using add-load-path! instead of package!.

Also, this doesn’t fix the issue, but as general advice

(use-package! ttl-mode
  :mode (rx "." (or "t" "n") "tl" eos))

is all you need for configuration