stevenremot / roguel-ike

Coffee-break roguelike for Emacs
GNU General Public License v3.0
23 stars 4 forks source link

Fails to byte-compile on Emacs 29.1 due to defgeneric no longer existing #5

Open Apteryks opened 5 months ago

Apteryks commented 5 months ago

Hello,

This package fails to build on GNU Guix, due to the defgeneric function no longer existing in Emacs 29.1:

Error: void-function (defgeneric)
  mapbacktrace(#f(compiled-function (evald func args flags) #<bytecode -0x5ecd3443a510e41>))
  debug-early-backtrace()
  debug-early(error (void-function defgeneric))
  (defgeneric get-height (level) "Return the number of rows of LEVEL.")
  eval-buffer(#<buffer  *load*> nil "/tmp/guix-build-emacs-roguel-ike-0.1.1.drv-0/source/roguel-ike-lib/level.el" nil t)
  load-with-code-conversion("/tmp/guix-build-emacs-roguel-ike-0.1.1.drv-0/source/roguel-ike-lib/level.el" "/tmp/guix-build-emacs-roguel-ike-0.1.1.drv-0/source/roguel-ike-lib/level.el" nil t)
  require(roguel-ike-lib/level)
  apply(require roguel-ike-lib/level)
  byte-compile-file-form-require((require 'roguel-ike-lib/level))
  byte-compile-file-form((require 'roguel-ike-lib/level))
  #f(compiled-function (form) #<bytecode -0x10780316efac4cff>)((require 'roguel-ike-lib/level))
  byte-compile-recurse-toplevel((require 'roguel-ike-lib/level) #f(compiled-function (form) #<bytecode -0x10780316efac4cff>))
  byte-compile-toplevel-file-form((require 'roguel-ike-lib/level))
  #f(compiled-function (inbuffer) #<bytecode -0x1f64882f2aa8f2f4>)(#<buffer  *Compiler Input*>)
  byte-compile-from-buffer(#<buffer  *Compiler Input*>)
  byte-compile-file("/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1/roguel-ike-lib/fov.el")
  (if byte+native-compile (native-compile file (comp-el-to-eln-filename file eln-dir)) (byte-compile-file file))
  (let (byte-to-native-output-buffer-file (eln-dir (and (native-comp-available-p) (cadr native-comp-eln-load-path)))) (if byte+native-compile (native-compile file (comp-el-to-eln-filename file eln-dir)) (byte-compile-file file)) (unless (null byte-to-native-output-buffer-file) (comp-write-bytecode-file nil)))
  (lambda (file) (let (byte-to-native-output-buffer-file (eln-dir (and (native-comp-available-p) (cadr native-comp-eln-load-path)))) (if byte+native-compile (native-compile file (comp-el-to-eln-filename file eln-dir)) (byte-compile-file file)) (unless (null byte-to-native-output-buffer-file) (comp-write-bytecode-file nil))))("/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1/roguel-ike-lib/fov.el")
  mapc((lambda (file) (let (byte-to-native-output-buffer-file (eln-dir (and (native-comp-available-p) (cadr native-comp-eln-load-path)))) (if byte+native-compile (native-compile file (comp-el-to-eln-filename file eln-dir)) (byte-compile-file file)) (unless (null byte-to-native-output-buffer-file) (comp-write-bytecode-file nil)))) ("/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1/roguel-ike-lib/level/generator/binary-node.el" "/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1/roguel-ike-lib/cell.el" "/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1/roguel-ike-lib/dispatcher.el" "/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1/roguel-ike-lib/fov.el" "/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1/roguel-ike-lib/level.el" "/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1/roguel-ike-lib/los.el" "/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1/roguel-ike-lib/math.el" "/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1/roguel-ike-lib/path-finding.el" "/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1/roguel-ike-lib/renderer.el" "/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1/roguel-ike/behaviour/ai.el" "/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1/roguel-ike/behaviour/manual.el" "/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1/roguel-ike/data/effects.el" "/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1/roguel-ike/data/races.el" "/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1/roguel-ike/data/skills.el" "/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1/roguel-ike/entity/factory/hero.el" "/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1/roguel-ike/game-screen/arena.el" "/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1/roguel-ike/game-screen/dungeon-rampage.el" "/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1/roguel-ike/game-screen/fight.el" "/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1/roguel-ike/game-screen/select-hero.el" "/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1/roguel-ike/game-screen/select-mode.el" "/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1/roguel-ike/game-screen/test.el" "/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1/roguel-ike/graphics/renderer/game.el" "/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1/roguel-ike/graphics/renderer/stats.el" "/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1/roguel-ike/graphics/widget/entity.el" "/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1/roguel-ike/graphics/widget/stats.el" "/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1/roguel-ike/graphics/faces.el" "/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1/roguel-ike/hero-data/manager.el" "/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1/roguel-ike/interactive-object/door.el" "/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1/roguel-ike/interactive-object/stairs.el" "/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1/roguel-ike/level/cell/ground.el" "/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1/roguel-ike/level/cell/object.el" "/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1/roguel-ike/level/factory/all-rooms.el" "/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1/roguel-ike/level/factory/layout.el" "/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1/roguel-ike/level/factory/string.el" "/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1/roguel-ike/level/populator/arena.el" "/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1/roguel-ike/level/populator/periodic.el" "/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1/roguel-ike/level/cell.el" "/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1/roguel-ike/mode/menu.el" "/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1/roguel-ike/physics/motion.el" "/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1/roguel-ike/physics/world.el" "/gnu/store/6bsSymbol’s function definition is void: defgeneric
lbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1/roguel-ike/skill/object/fireball.el" "/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1/roguel-ike/skill/object/fractalball.el" "/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1/roguel-ike/stats/effect.el" "/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1/roguel-ike/stats/regenerator.el" "/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1/roguel-ike/stats/slot.el" "/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1/roguel-ike/behaviour.el" "/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1/roguel-ike/buffer-manager.el" "/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1/roguel-ike/controller.el" "/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1/roguel-ike/custom.el" "/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1/roguel-ike/dungeon.el" "/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1/roguel-ike/entity.el" "/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1/roguel-ike/fov.el" "/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1/roguel-ike/game-screen.el" "/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1/roguel-ike/game.el" "/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1/roguel-ike/hero-data.el" "/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1/roguel-ike/interactive-object.el" "/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1/roguel-ike/level.el" "/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1/roguel-ike/message-logger.el" "/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1/roguel-ike/mode.el" "/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1/roguel-ike/path-finding.el" "/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1/roguel-ike/race.el" "/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1/roguel-ike/skill.el" "/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1/roguel-ike/stats.el" "/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1/roguel-ike/time-manager.el" "/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1/roguel-ike-autoloads.el" "/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1/roguel-ike-pkg.el" "/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1/roguel-ike.el"))
  (let ((byte-compile-debug t) (byte+native-compile (native-comp-available-p)) (files (directory-files-recursively "/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1" "\\.el$"))) (mapc (lambda (file) (let (byte-to-native-output-buffer-file (eln-dir (and (native-comp-available-p) (cadr native-comp-eln-load-path)))) (if byte+native-compile (native-compile file (comp-el-to-eln-filename file eln-dir)) (byte-compile-file file)) (unless (null byte-to-native-output-buffer-file) (comp-write-bytecode-file nil)))) files))
  eval((let ((byte-compile-debug t) (byte+native-compile (native-comp-available-p)) (files (directory-files-recursively "/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1" "\\.el$"))) (mapc (lambda (file) (let (byte-to-native-output-buffer-file (eln-dir (and (native-comp-available-p) (cadr native-comp-eln-load-path)))) (if byte+native-compile (native-compile file (comp-el-to-eln-filename file eln-dir)) (byte-compile-file file)) (unless (null byte-to-native-output-buffer-file) (comp-write-bytecode-file nil)))) files)) nil)
  eval((eval '(let ((byte-compile-debug t) (byte+native-compile (native-comp-available-p)) (files (directory-files-recursively "/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1" "\\.el$"))) (mapc (lambda (file) (let (byte-to-native-output-buffer-file (eln-dir (and (native-comp-available-p) (cadr native-comp-eln-load-path)))) (if byte+native-compile (native-compile file (comp-el-to-eln-filename file eln-dir)) (byte-compile-file file)) (unless (null byte-to-native-output-buffer-file) (comp-write-bytecode-file nil)))) files)) nil) t)
  command-line-1(("--eval=(eval '(let ((byte-compile-debug t) (byte+native-compile (native-comp-available-p)) (files (directory-files-recursively \"/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1\" \"\\\\.el$\"))) (mapc (lambda (file) (let (byte-to-native-output-buffer-file (eln-dir (and (native-comp-available-p) (cadr native-comp-eln-load-path)))) (if byte+native-compile (native-compile file (comp-el-to-eln-filename file eln-dir)) (byte-compile-file file)) (unless (null byte-to-native-output-buffer-file) (comp-write-bytecode-file nil)))) files)) nil)"))
  command-line()
  normal-top-level()
error: in phase 'build': uncaught exception:
%exception #<&invoke-error program: "/gnu/store/8gxs4jmssrdi601g2mzr2xwiy7z8y6zl-emacs-minimal-29.1/bin/emacs" arguments: ("--quick" "--batch" "--eval=(eval '(let ((byte-compile-debug t) (byte+native-compile (native-comp-available-p)) (files (directory-files-recursively \"/gnu/store/6bslbkj07fsybpmqrkqd25rjw20l2mf7-emacs-roguel-ike-0.1.1/share/emacs/site-lisp/roguel-ike-0.1.1\" \"\\\\.el$\"))) (mapc (lambda (file) (let (byte-to-native-output-buffer-file (eln-dir (and (native-comp-available-p) (cadr native-comp-eln-load-path)))) (if byte+native-compile (native-compile file (comp-el-to-eln-filename file eln-dir)) (byte-compile-file file)) (unless (null byte-to-native-output-buffer-file) (comp-write-bytecode-file nil)))) files)) nil)") exit-status: 255 term-signal: #f stop-signal: #f> 
phase `build' failed after 0.3 seconds

I guess cl-defgeneric should now be used instead, with (require 'cl) at the top.

stevenremot commented 5 months ago

Hi, thanks for the report ! I think you are right, I will have a look at it soon.