clasp-developers / clasp

clasp Common Lisp environment
https://clasp-developers.github.io/
2.54k stars 142 forks source link

Emacs v29 ctags not compatible w/ "--ctags=" configuration. etags alias OK. #1598

Closed mgsouth closed 1 week ago

mgsouth commented 1 week ago

Describe the bug Emacs v29 ctags/etags does not accept the "-e" parameter. ninja.lisp adds this for the "--ctags=" case, but not for "--etags=". FYI only; I'm just dropping ctags from Gentoo distro script.

Expected behavior Maintainers look at ticket and say "yeah, whatever."

Oh, for the compile? No abort.

Actual behavior FAILED: ../TAGS /usr/bin/ctags -e -I ../.identifiers -o ../TAGS ../src/lisp/kernel/stage/base/0-begin.lisp ../src/lisp/kernel/stage/base/1-begin.lisp ../src/lisp/kernel/lsp/prologue.lisp ../src/lisp/kernel/init.lisp ../src/lisp/kernel/cmp/runtime-info.lisp ../src/lisp/kernel/lsp/sharpmacros.lisp ../src/lisp... /usr/bin/ctags: invalid option -- 'e'

Code at issue

  (ninja:write-rule output-stream :tags
                    :command (if (ctags configuration)
                                 "$tags -e -I $identifiers -o $out $in"
                                 "$tags -o $out $in")
                    :restat 1
                    :description "Creating tags")

Context

mgsouth commented 1 week ago

BTW, Gentoo Exuberant package should very argurably add an alias for etags; the binary looks if it was invoked that way and automaticlly switches to etags mode.

yitzchak commented 1 week ago

TAGS are not needed for package builds. I've pushed a commit to avoid all tag creation when --reproducible-build is present. This is should at least fix your issue.

mgsouth commented 1 week ago

It's actually already fixed--I just don't set either --ctags or --etags. Thx though.

mgsouth commented 1 week ago

Correction, no it wasn't fixed. The script just found etags rather than ctags. Ebuilds are tied to particular releases/versions, so commit to trunk won't fix this ebuild. I'm going to hack around it for now.

yitzchak commented 1 week ago

Did you try my latest commit. It should skip that.

mgsouth commented 1 week ago

No, I haven't. The ebuild grabs the 2.6.0 tarballs. I'll incorporate your change with the next release, or if I create a "bleading-edge" package that does git clones from HEAD.

yitzchak commented 1 week ago

If you need to you could sed the differences in your build script. You should only need to make the changes to ninja.lisp, which is two lines.

https://github.com/clasp-developers/clasp/commit/58644065021b08d0c9ad4be08b2f1ebbd6e5f26e