Message ID | 5629f5f427c30caa6d43f37ac28c3dd3f1501d01.1692813553.git.hako@ultrarare.space |
---|---|
State | New |
Headers | show |
Series | [bug#65478,emacs-team] gnu: emacs-flim-lb: Explicitly compile files to bytecode. | expand |
Am Donnerstag, dem 24.08.2023 um 02:00 +0800 schrieb Hilton Chain: > * gnu/packages/emacs-xyz.scm (emacs-flim-lb)[#:phases]: Replace > 'build phase to byte compile files explicitly. > --- Why do we need this? If it's to disable native compilation, please add a file-local variable to do so. Cheers
On Sun, 27 Aug 2023 14:24:01 +0800, Liliana Marie Prikler wrote: > > Am Donnerstag, dem 24.08.2023 um 02:00 +0800 schrieb Hilton Chain: > > * gnu/packages/emacs-xyz.scm (emacs-flim-lb)[#:phases]: Replace > > 'build phase to byte compile files explicitly. > > --- > Why do we need this? If it's to disable native compilation, please add > a file-local variable to do so. I have tested the package on Emacs 28 and 29 with combinations of elc or eln files in the output, and byte-compiled elc files seem to be a requirement to use it -- otherwise the error would occur. Disabling native compilation won't help...
Am Sonntag, dem 27.08.2023 um 20:52 +0800 schrieb Hilton Chain: > On Sun, 27 Aug 2023 14:24:01 +0800, > Liliana Marie Prikler wrote: > > > > Am Donnerstag, dem 24.08.2023 um 02:00 +0800 schrieb Hilton Chain: > > > * gnu/packages/emacs-xyz.scm (emacs-flim-lb)[#:phases]: Replace > > > 'build phase to byte compile files explicitly. > > > --- > > Why do we need this? If it's to disable native compilation, please > > add a file-local variable to do so. > > I have tested the package on Emacs 28 and 29 with combinations of elc > or eln files in the output, and byte-compiled elc files seem to be a > requirement to use it -- otherwise the error would occur. Disabling > native compilation won't help... How is your phase functionally different from disabling native compilation? IIUC, it deletes all pre-existing bytecode and native code and then runs bytecode compilation. Where do these elc and eln files even come from?
On Sun, 27 Aug 2023 23:13:44 +0800, Liliana Marie Prikler wrote: > > Am Sonntag, dem 27.08.2023 um 20:52 +0800 schrieb Hilton Chain: > > On Sun, 27 Aug 2023 14:24:01 +0800, > > Liliana Marie Prikler wrote: > > > > > > Am Donnerstag, dem 24.08.2023 um 02:00 +0800 schrieb Hilton Chain: > > > > * gnu/packages/emacs-xyz.scm (emacs-flim-lb)[#:phases]: Replace > > > > 'build phase to byte compile files explicitly. > > > > --- > > > Why do we need this? If it's to disable native compilation, please > > > add a file-local variable to do so. > > > > I have tested the package on Emacs 28 and 29 with combinations of elc > > or eln files in the output, and byte-compiled elc files seem to be a > > requirement to use it -- otherwise the error would occur. Disabling > > native compilation won't help... > How is your phase functionally different from disabling native > compilation? IIUC, it deletes all pre-existing bytecode and native > code and then runs bytecode compilation. Where do these elc and eln > files even come from? Currently on master: $ guix build emacs-flim-lb has elc files. $ guix build emacs-flim-lb --with-input=emacs-minimal=emacs has elc and eln files. $ guix build emacs-flim-lb --with-input=emacs-minimal=emacs-next has eln files. And I tried to build it with 'build phase deleted as well. Had them all tested and came to the conclusion that elc files are required.
Am Sonntag, dem 27.08.2023 um 23:39 +0800 schrieb Hilton Chain: > Currently on master: > > $ guix build emacs-flim-lb > has elc files. > > $ guix build emacs-flim-lb --with-input=emacs-minimal=emacs > has elc and eln files. > > $ guix build emacs-flim-lb --with-input=emacs-minimal=emacs-next > has eln files. > > And I tried to build it with 'build phase deleted as well. Had them > all tested and came to the conclusion that elc files are required. Hmm, this sounds like a failure of emacs-build-system then. The assumption (based on Emacs 28) had been that both bytecode and native compilation are done with one function call. Maybe that no longer holds?
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 412ace373e..ecdfa235c7 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -37655,6 +37655,24 @@ (define-public emacs-flim-lb (base32 "1wsnipyl3blldcl8ynmpj1mxfvl7kjmxd8gapl83vqd3r0l9cr6q")))) (build-system emacs-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + ;; FIXME: Following error occurs when native compiled: + ;; condition-case: Eager macro-expansion failure: (void-variable + ;; eof-block-branches). + (replace 'build + ;; Copied from emacs-build-system's build phase, with + ;; `emacs-compile-directory' replaced to + ;; `emacs-byte-compile-directory'. + (lambda* (#:key outputs inputs #:allow-other-keys) + (for-each delete-file (find-files "." "\\.el[cn]$")) + (let* ((emacs (search-input-file inputs "/bin/emacs")) + (out (assoc-ref outputs "out"))) + (setenv "SHELL" "sh") + (parameterize ((%emacs emacs)) + (emacs-byte-compile-directory (elpa-directory out))))))))) (propagated-inputs (list emacs-apel-lb emacs-oauth2)) (home-page "https://www.emacswiki.org/emacs/WanderLust") (synopsis @@ -37694,9 +37712,6 @@ (define-public emacs-semi-epg (define-public emacs-wanderlust ;; No release since Jan 15, 2010. - ;; FIXME: Building with emacs-next-pgtk would yield a void variable related - ;; macro-expansion failure at runtime, so don't rewrite emacs input of this - ;; package. (let ((version "2.15.9") (revision "791") (commit "8369b2d5170a174652294835dd9a18ed21a38cb2"))