nonreligious

joined 1 year ago
 

I'm trying to make my Emacs configuration more reproducible, in part by creating variables with paths to packages, directories which depend on what machine I'm on:

(if my/laptop-p
    (progn
      ...
      (defvar my/mu4e-dir            "/usr/share/emacs/site-lisp/mu4e"
  "Location of local `mu4e' files installed by system package manager")
      ...
                ))

 

Here, my/laptop-p tests if (equal (system-name) "my-thinkpad").

This system works well, so that for the relevant example of mu4e (which is apparently quite tricky to set up in straight.el ) I can use:

(use-package mu4e
  :straight
  (:local-repo my/mu4e-dir
               :type built-in)
               ...
               )

 

The package loads and the configuration works fine.

But doing straight-freeze-versions gives:

straight--dir: Wrong type argument: stringp, my/mu4e-dir

This can be fixed by replacing my/mu4e-dir with the string "/usr/share/emacs/site-lisp/mu4e", but I'd like to avoid this if I can.

  Is there a way I can keep using my defined variable my/mu4e-dir instead of the full path name?

 

Does anyone else have the same problem?

If I run sage-shell:run-sage to get a SageMath shell in Emacs, and run help(), I get the standard help message, which starts with "Welcome to Sage 10.1!".

But if I try help(diff) or any other specific function, Emacs hangs. Doing C-g allows me to use Emacs again, but the SageMath session is no longer responsive: trying to enter any other command results in hanging. Even C-c C-d no longer works, I have to try C-c C-\ and wait for the SageMath kernel to crash, or do M-x kill-process.

This all seemed to work before I upgraded Emacs and changed my package manager to straight.el.

I'm on Emacs 29.1, using sage-shell-mode v0.3.

I've covnfigured it as follows:

(use-package sage-shell-mode
  :straight t
  :defer t

  :custom
  (sage-shell:sage-executable (executable-find "sage"))
  (sage-shell:set-ipython-version-on-startup nil)
  (sage-shell:check-ipython-version-on-startup nil)
  (sage-shell:use-prompt-toolkit nil)
  (sage-shell:use-simple-prompt nil)

  )

(However, I find that the custom settings aren't being respected either ...)

I also use ob-sagemath, which allows me to use SageMath in org-src-blocks, which works fine as far as I can tell.