Package Details: emacs-git 30.0.50.169253-1

Git Clone URL: https://aur.archlinux.org/emacs-git.git (read-only, click to copy)
Package Base: emacs-git
Description: GNU Emacs. Development master branch.
Upstream URL: http://www.gnu.org/software/emacs/
Keywords: development editor IDE text
Licenses: GPL3
Conflicts: emacs
Provides: emacs
Submitter: toropisco
Maintainer: toropisco
Last Packager: toropisco
Votes: 104
Popularity: 0.001091
First Submitted: 2014-01-05 02:05 (UTC)
Last Updated: 2023-10-14 18:36 (UTC)

Required by (313)

Sources (2)

Pinned Comments

toropisco commented on 2017-06-30 19:14 (UTC) (edited on 2022-05-15 13:26 (UTC) by toropisco)

This PKGBUILD is a work in progress. If you find PACKAGING bugs, please let me know ASAP.

Upstream bugs are to be reported upstream. Check out the emacs-devel archives to confirm if this is an already known bug. In fact... Why are you not subscribed to emacs-devel?. Also check the emacs-bug-tracker archives.

Reporting bugs: Write to the Emacs Bug Tracker and report it there. Or, better yet, use the debbugs client included with the text editor. You will find instructions at https://debbugs.gnu.org/. Good luck!

If you confirm it is a packaging bug, you are welcome to report it here.

Yaourt and other automated tools users BEWARE! This PKGBUILD is written with hand updating in mind and I won't fix bugs arising from such use. Besides, cloning the same repository time and time again from a non-profit such as the GNU Project/FSF gives out a very low image of you.

Latest Comments

« First ‹ Previous 1 .. 6 7 8 9 10 11 12 13 14 15 16 .. 38 Next › Last »

toropisco commented on 2021-06-02 13:32 (UTC)

@cobaltspace lto is not enabled in the new makepkg.conf file. Unless you did in the past and forgot about it, the only plausible explanation for your alternate reality assertion. :-)

Compare your local file to this one:

https://github.com/archlinux/svntogit-packages/blob/packages/pacman/trunk/makepkg.conf

cobaltspace commented on 2021-06-02 04:24 (UTC)

Now that setting lto is part of makepkg.conf, maybe the setting should be removed from this pkgbuild.

toropisco commented on 2021-05-09 14:56 (UTC)

@amyiris [this comes from the retired university professor speaking on his soap box] you are confused and trying to generalize from incomplete information. Rust is not C nor ELisp. You need to familiarize with your tools before you can bend them to your will. And learn to use all the hammers in the shed, each one has a purpose.

amyiris commented on 2021-05-09 14:46 (UTC)

@Hi-Angel while I'm aware of this, some packages don't expect this and as a result break. Rust projects in particular do when they compile multiple libraries and then a binary where all depend on each other. Many of these launch all their cargo targets via a Makefile and since Rust compiles using multiple threads (when compiling dependencies that is) there's no point to splitting it across threads.

Hi-Angel commented on 2021-05-09 09:59 (UTC)

@amyiris AFAIK you're supposed to have a MAKEFLAGS="-jN" in your makepkg.conf. At least I have had this in makepkg.conf for ages, and the wiki seems to confirm that.

amyiris commented on 2021-05-09 03:25 (UTC)

Many other AUR packages compile with -j or -j $(nproc) in order to accelerate compile times on large builds. Emacs is an especially large build and takes forever to compile on a single thread, even on fast machines (I run an AMD Ryzen 7 1700X). Having this by default - and maybe making a switch to disable it in the PKGBUILD - would be incredibly useful.

MuffinBomber commented on 2021-04-13 14:54 (UTC)

Finally, I suggest this patch that would allow users to select whether they want to native compile all built-in elisp ahead of time. Sorry for the constant pings, I should've thought about this sooner. This can also wait until the weekend to avoid annoying users with the daily version bumps.

Currently, only the bare minimum is natively compiled and users need to set comp-deferred-compilation to a non-nil value in their init. More info here: https://akrl.sdf.org/gccemacs.html#orgbc24924

diff --git a/PKGBUILD b/PKGBUILD
index 1fe96e8..22102d3 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -26,6 +26,10 @@ GOLD=             # Use the gold linker.
 LTO="YES"         # Enable link-time optimization. Read emacs's INSTALL before
                   # attempting to use it with clang.
 JIT=              # Enable native just-in-time compilation. libgccjit is in AUR.
+AOT=              # Native compile all Emacs (takes a long time!).
+                  # If this is disabled, Emacs will defer the native compilation
+                  # of an elisp file until it is actually used.
+                  # comp-deferred-compilation has to be non nil if AOT is off.
 CLI=              # CLI only binary.
 NOTKIT=           # Use no toolkit widgets. Like B&W Twm (001d sk00l).
 LUCID=            # Use the lucid, a.k.a athena, toolkit. Like XEmacs, sorta.
@@ -267,9 +271,12 @@ _conf+=('--program-transform-name=s/\([ec]tags\)/\1.emacs/')
   #
   # Please note that incremental compilation implies that you
   # are reusing your src directory!
-  #
-  make

+  if [[ $JIT == "YES" ]] && [[ $AOT == "YES" ]]; then
+    make NATIVE_FULL_AOT=1;
+  else
+    make;
+  fi
   # You may need to run this if 'loaddefs.el' files become corrupt.
   #cd "$srcdir/emacs-git/lisp"
   #make autoloads

MuffinBomber commented on 2021-04-12 11:48 (UTC)

Thanks for the quick patches! Currently, even non native-compile users would pull in the libgccjit dependency. Wouldn't this be a bit better?

diff --git a/PKGBUILD b/PKGBUILD
index 662e600..e94ed6f 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -107,9 +107,9 @@ else
   fi
 fi

-if [[ $CLI == "YES" ]]; then
+if [[ $CLI == "YES" ]] && [[ $JIT == "YES" ]]; then
   depends_nox+=( 'libgccjit' );
-else
+elif [[ $JIT == "YES" ]]; then
   depends+=( 'libgccjit' );
 fi

MuffinBomber commented on 2021-04-11 11:49 (UTC)

You missed a 'libgccjit' dependency for the native compilation build with the latest update.

There's a 'emacs-native-comp-git' PKGBUILD that closely follows this one, but uses the native-comp branch. You can check what's needed for the 'native-comp' build there.