(written with the LLM help but re-checked everything myself and edited too)
Emacs 32 now defaults to the (TICKS . HZ) representation, causing Eask to call car on the integer HZ value.
Steps to reproduce
Create Eask:
;; -*- mode: eask; lexical-binding: t -*-
(package "eask-current-time-repro"
"0.1.0"
"Reproduce Emacs 32 package failure")
(package-file "eask-current-time-repro.el")
Create eask-current-time-repro.el:
;;; eask-current-time-repro.el --- Reproduce Emacs 32 failure -*- lexical-binding: t; -*-
;; Version: 0.1.0
;;; Code:
(provide 'eask-current-time-repro)
;;; eask-current-time-repro.el ends here
Run with Emacs 32 snapshot and Eask 0.12.10:
Actual result
Error: wrong-type-argument (listp 1000000000)
car(1000000000)
(logior (ash (car now) 16) (car (cdr now)))
eask-current-time()
Expected result
The package artifact is built successfully, as it is under Emacs 31.1 and earlier releases.
Analysis
Emacs 32 changed current-time-list to default to nil, so timestamps now use (TICKS . HZ) rather than (HIGH LOW USEC PSEC):
https://github.com/emacs-mirror/emacs/blob/57c5967828f0415604a393b244bd62be93262f30/etc/NEWS#L230-L232
The current implementation assumes the legacy list:
https://github.com/emacs-eask/eask/blob/a9dd17667c3df0b7eadef0cb5510452f0e1a41ba/eask-core.el#L723-L725
(defun eask-current-time ()
"Return current time."
(let ((now (current-time)))
(logior (ash (car now) 16) (cadr now))))
With (TICKS . HZ), (cadr now) attempts to take car of HZ, matching the reported error.
Environment
(written with the LLM help but re-checked everything myself and edited too)
Emacs 32 now defaults to the
(TICKS . HZ)representation, causing Eask to callcaron the integerHZvalue.Steps to reproduce
Create
Eask:Create
eask-current-time-repro.el:Run with Emacs 32 snapshot and Eask 0.12.10:
Actual result
Expected result
The package artifact is built successfully, as it is under Emacs 31.1 and earlier releases.
Analysis
Emacs 32 changed
current-time-listto default tonil, so timestamps now use(TICKS . HZ)rather than(HIGH LOW USEC PSEC):https://github.com/emacs-mirror/emacs/blob/57c5967828f0415604a393b244bd62be93262f30/etc/NEWS#L230-L232
The current implementation assumes the legacy list:
https://github.com/emacs-eask/eask/blob/a9dd17667c3df0b7eadef0cb5510452f0e1a41ba/eask-core.el#L723-L725
With
(TICKS . HZ),(cadr now)attempts to takecarofHZ, matching the reported error.Environment
emacs-eask/setup-eask@masterwithversion: snapshot