@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.
Search Criteria
Package Details: emacs-git 30.0.50.169253-1
Package Actions
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: | 107 |
Popularity: | 1.93 |
First Submitted: | 2014-01-05 02:05 (UTC) |
Last Updated: | 2023-10-14 18:36 (UTC) |
Dependencies (23)
- cairo (cairo-gitAUR)
- giflib (giflib-gitAUR)
- gnutls (gnutls-gitAUR)
- gtk3 (gtk3-no_deadkeys_underlineAUR, gtk3-classicAUR, gtk3-classic-xfceAUR, gtk3-patched-filechooser-icon-viewAUR)
- harfbuzz (harfbuzz-gitAUR)
- jansson (jansson-gitAUR)
- libgccjit (libgccjit-gitAUR, libgccjit-snapshotAUR)
- libjpeg-turbo (mozjpeg-gitAUR, libjpeg-turbo-gitAUR, mozjpegAUR)
- libotf
- libpng (libpng-gitAUR, libpng-apngAUR)
- libsm
- libtiff (libtiff-gitAUR, libtiff-lercAUR)
- libwebp (libwebp-gitAUR)
- libxcb (libxcb-gitAUR)
- libxi (libxi-gitAUR)
- libxml2 (libxml2-gitAUR, libxml2-2.9AUR)
- libxpm (libxpm-gitAUR)
- sqlite3 (sqlite)
- tree-sitter (tree-sitter-gitAUR)
- xcb-util
- git (git-gitAUR, git-glAUR) (make)
- libxi (libxi-gitAUR) (make)
- xorgproto (xorgproto-gitAUR) (make)
Required by (313)
- anthy-unicode (requires emacs) (make)
- anthy-unicode-git (requires emacs) (make)
- astroid-git (requires emacs) (optional)
- auctex (requires emacs)
- auctex-git (requires emacs)
- auto-complete-nxml-git (requires emacs)
- auto-complete-nxml-git (requires emacs) (make)
- bbdb (requires emacs)
- bigloo-devel (requires emacs) (make)
- bigloo-devel (requires emacs) (optional)
- carp (requires emacs) (make)
- cask (requires emacs)
- cask-git (requires emacs)
- cmake-git (requires emacs) (make)
- csvedepli (requires emacs) (make)
- dictionary (requires emacs)
- distel (requires emacs)
- dmscripts-git (requires emacs) (optional)
- eldev-git (requires emacs)
- eless (requires emacs)
- elfeed (requires emacs)
- emacs-a (requires emacs)
- emacs-ag (requires emacs)
- emacs-ag-git (requires emacs)
- emacs-android-git (requires emacs)
- emacs-annalist (requires emacs)
- emacs-annot-git (requires emacs)
- emacs-anzu (requires emacs)
- emacs-anzu-git (requires emacs)
- emacs-apache-mode (requires emacs)
- emacs-arch-xlicense-git (requires emacs)
- emacs-arduino-mode-git (requires emacs)
- emacs-async-git (requires emacs)
- emacs-ats-mode (requires emacs)
- emacs-auto-complete (requires emacs)
- emacs-auto-complete-clang-git (requires emacs)
- emacs-avy (requires emacs)
- emacs-avy-git (requires emacs)
- emacs-bash-completion (requires emacs)
- emacs-bookmarkplus (requires emacs)
- emacs-bui (requires emacs)
- emacs-calfw-git (requires emacs)
- emacs-chess-git (requires emacs)
- emacs-chinese-word-segmentation-git (requires emacs)
- emacs-cider (requires emacs)
- emacs-cider-git (requires emacs)
- emacs-clojure-mode (requires emacs)
- emacs-clojure-mode-git (requires emacs)
- emacs-cmake-ide-git (requires emacs)
- emacs-color-theme (requires emacs)
- emacs-color-theme (requires emacs) (make)
- emacs-color-theme-xoria256 (requires emacs)
- emacs-company-lsp (requires emacs)
- emacs-company-lsp-git (requires emacs)
- emacs-company-mode (requires emacs)
- emacs-company-mode-git (requires emacs)
- emacs-crdt (requires emacs)
- emacs-ctable (requires emacs)
- emacs-ctags-update (requires emacs)
- emacs-d-mode (requires emacs) (make)
- emacs-dash (requires emacs)
- emacs-dash (requires emacs) (make)
- emacs-dash-git (requires emacs)
- emacs-deferred (requires emacs)
- emacs-dracula-theme-git (requires emacs) (optional)
- emacs-ediprolog (requires emacs)
- emacs-editorconfig-git (requires emacs)
- emacs-elpy (requires emacs)
- emacs-elpy-git (requires emacs)
- emacs-else-git (requires emacs)
- emacs-emacsql (requires emacs)
- emacs-emacsql-sqlite3 (requires emacs)
- emacs-emmet-mode-git (requires emacs)
- emacs-epc (requires emacs)
- emacs-epl (requires emacs)
- emacs-ess (requires emacs)
- emacs-ess-git (requires emacs)
- emacs-eterm-256color (requires emacs) (make)
- emacs-evil (requires emacs)
- emacs-evil-collection-git (requires emacs)
- emacs-evil-git (requires emacs)
- emacs-evil-org-git (requires emacs)
- emacs-execline-mode-git (requires emacs)
- emacs-f (requires emacs)
- emacs-f-git (requires emacs)
- emacs-find-file-in-project (requires emacs)
- emacs-find-recursive (requires emacs)
- emacs-flycheck-clojure (requires emacs)
- emacs-flycheck-git (requires emacs)
- emacs-flycheck-pos-tip (requires emacs)
- emacs-flycheck-pos-tip-git (requires emacs)
- emacs-flycheck-pycheckers (requires emacs)
- emacs-fuzzy (requires emacs)
- emacs-general.el-git (requires emacs)
- emacs-ghub (requires emacs)
- emacs-git-timemachine (requires emacs)
- emacs-git-wip-git (requires emacs)
- emacs-gitolite-mode (requires emacs)
- emacs-gnuplot-mode-git (requires emacs) (make)
- emacs-goby (requires emacs)
- emacs-goby-git (requires emacs)
- emacs-graphql-git (requires emacs)
- emacs-groovy-mode-git (requires emacs)
- emacs-guess-style-git (requires emacs)
- emacs-guess-style-git (requires emacs) (make)
- emacs-haskell-mode-git (requires emacs) (make)
- emacs-haxe (requires emacs)
- emacs-hcl-mode-git (requires emacs)
- emacs-helm (requires emacs)
- emacs-helm-git (requires emacs)
- emacs-helm-ls-git (requires emacs) (make)
- emacs-hexrgb (requires emacs)
- emacs-highlight-indentation (requires emacs)
- emacs-hydra (requires emacs)
- emacs-hydra-git (requires emacs)
- emacs-identica-mode (requires emacs)
- emacs-idris-mode-git (requires emacs)
- emacs-iedit (requires emacs)
- emacs-j-mode-git (requires emacs)
- emacs-jabber-git (requires emacs)
- emacs-jedi (requires emacs)
- emacs-js2-mode (requires emacs)
- emacs-js2-mode-git (requires emacs)
- emacs-julia-mode (requires emacs)
- emacs-langtool (requires emacs)
- emacs-libegit2-git (requires emacs)
- emacs-libegit2-wbundled-git (requires emacs)
- emacs-libvterm-git (requires emacs)
- emacs-lll-mode-git (requires emacs)
- emacs-llvm-mode (requires emacs)
- emacs-lsp-mode-git (requires emacs)
- emacs-lsp-ui (requires emacs)
- emacs-lsp-ui-git (requires emacs)
- emacs-lyqi-mode-git (requires emacs)
- emacs-magit (requires emacs)
- emacs-magit-git (requires emacs)
- emacs-magit-popup (requires emacs)
- emacs-make-regexp (requires emacs)
- emacs-make-regexp (requires emacs) (make)
- emacs-maplev (requires emacs)
- emacs-markdown-mode (requires emacs)
- emacs-markdown-mode-git (requires emacs)
- emacs-markdown-preview-mode (requires emacs)
- emacs-meson-mode-git (requires emacs)
- emacs-mew (requires emacs)
- emacs-mew-git (requires emacs)
- emacs-mmm-mode-git (requires emacs)
- emacs-monky-git (requires emacs)
- emacs-moonscript-mode (requires emacs)
- emacs-mozc (requires emacs)
- emacs-mozc-ut-full (requires emacs)
- emacs-mozc-ut-full (requires emacs) (make)
- emacs-mozc-with-jp-dict (requires emacs)
- emacs-multiple-cursors (requires emacs)
- emacs-named-daemon (requires emacs)
- emacs-newlisp-mode-git (requires emacs)
- emacs-nyan-mode (requires emacs)
- emacs-onedark-theme-git (requires emacs)
- emacs-openrc (requires emacs)
- emacs-org-bullets-git (requires emacs)
- emacs-org-mode (requires emacs)
- emacs-org-roam (requires emacs)
- emacs-oz-mode (requires emacs)
- emacs-paredit (requires emacs) (make)
- emacs-parseclj (requires emacs)
- emacs-pdf-tools-git (requires emacs)
- emacs-pelican-mode-git (requires emacs)
- emacs-pg (requires emacs)
- emacs-pkg-info (requires emacs)
- emacs-pkgbuild-mode (requires emacs)
- emacs-pkgbuild-mode-git (requires emacs)
- emacs-popup-el (requires emacs)
- emacs-popup-el (requires emacs) (make)
- emacs-pos-tip (requires emacs)
- emacs-pos-tip-git (requires emacs)
- emacs-posframe (requires emacs)
- emacs-processing-mode-git (requires emacs)
- emacs-projectile (requires emacs)
- emacs-projectile-git (requires emacs)
- emacs-prop-menu-git (requires emacs)
- emacs-psgml (requires emacs)
- emacs-psvn (requires emacs)
- emacs-pure-mode (requires emacs)
- emacs-pyim (requires emacs)
- emacs-pyim-basedict (requires emacs)
- emacs-python-environment (requires emacs)
- emacs-pyvenv (requires emacs)
- emacs-queue (requires emacs)
- emacs-rich-minority (requires emacs)
- emacs-riece (requires emacs)
- emacs-rnc-mode-git (requires emacs)
- emacs-rtf-mode (requires emacs)
- emacs-rust-mode (requires emacs)
- emacs-s (requires emacs)
- emacs-s-git (requires emacs)
- emacs-scala-mode-git (requires emacs)
- emacs-screencast-mode-git (requires emacs)
- emacs-seq (requires emacs)
- emacs-sesman (requires emacs)
- emacs-sly-git (requires emacs)
- emacs-smart-mode-line (requires emacs)
- emacs-smex (requires emacs)
- emacs-sml-mode (requires emacs)
- emacs-solidity-mode-git (requires emacs)
- emacs-spacemacs-funcs (requires emacs)
- emacs-speechd-el-git (requires emacs)
- emacs-spinner (requires emacs)
- emacs-swiper (requires emacs)
- emacs-swiper-git (requires emacs)
- emacs-symbols-mode-git (requires emacs)
- emacs-tablist (requires emacs)
- emacs-tablist-git (requires emacs)
- emacs-terraform-mode-git (requires emacs)
- emacs-textile-mode (requires emacs)
- emacs-treepy-git (requires emacs)
- emacs-undo-tree (requires emacs)
- emacs-use-package (requires emacs)
- emacs-vala-mode (requires emacs)
- emacs-vlf-git (requires emacs)
- emacs-w3m-git (requires emacs)
- emacs-web-server (requires emacs)
- emacs-websocket (requires emacs)
- emacs-which-key (requires emacs)
- emacs-whitespace-mode (requires emacs)
- emacs-with-editor (requires emacs)
- emacs-with-editor-git (requires emacs)
- emacs-xclip (requires emacs) (make)
- emacs-xelb-git (requires emacs)
- emacs-xr (requires emacs)
- emacs-xterm-color (requires emacs) (make)
- emacs-yaml-mode (requires emacs)
- emacs-yasnippet (requires emacs)
- emacs-yasnippet-git (requires emacs)
- emacs-yasnippet-snippets (requires emacs)
- emacs-yasnippet-snippets-git (requires emacs)
- emacs-youtube-dl (requires emacs)
- emacs-zenburn-theme (requires emacs)
- emacsclient-desktop-git (requires emacs)
- emacspeak (requires emacs)
- emms (requires emacs)
- emms-git (requires emacs)
- fcitx5-mozc-ut-full (requires emacs) (make)
- ff-git (requires emacs) (optional)
- flycheck (requires emacs)
- flycheck (requires emacs) (make)
- fronde (requires emacs)
- gnuplot-nogui (requires emacs) (make)
- gtypist-single-space (requires emacs) (make)
- guix-git (requires emacs) (optional)
- helm-system-packages-git (requires emacs)
- htmlize-git (requires emacs)
- ibus-mozc-ut-full (requires emacs) (make)
- irony-mode (requires emacs)
- lean-bin (requires emacs) (optional)
- lean-git (requires emacs) (optional)
- lean2-git (requires emacs) (optional)
- macaulay2 (requires emacs) (make)
- maint (requires emacs) (optional)
- mcu8051ide (requires emacs) (optional)
- migemo-git (requires emacs)
- mozart2 (requires emacs)
- mozart2-bin (requires emacs)
- mozart2-git (requires emacs) (make)
- mozart2-git (requires emacs) (optional)
- mozc-ut-full-common (requires emacs) (make)
- mu (requires emacs) (make)
- mu (requires emacs) (optional)
- mu-git (requires emacs) (optional)
- ninja-kitware (requires emacs) (optional)
- nord-emacs (requires emacs)
- notmuch-emacs-git (requires emacs) (make)
- notmuch-emacs-git (requires emacs) (optional)
- notmuch-mutt-git (requires emacs) (make)
- notmuch-python-git (requires emacs) (make)
- notmuch-ruby-git (requires emacs) (make)
- notmuch-runtime-git (requires emacs) (make)
- notmuch-vim-git (requires emacs) (make)
- ocaml-typerex (requires emacs)
- org-cli-tangle (requires emacs)
- org-protocol-emacsclient (requires emacs) (optional)
- orgmk-git (requires emacs)
- orgtbl-query (requires emacs) (optional)
- pacjson (requires emacs) (make)
- proofgeneral (requires emacs)
- proofgeneral-git (requires emacs)
- pvs (requires emacs)
- pymacs (requires emacs)
- pymacs-git (requires emacs)
- quack (requires emacs)
- quack (requires emacs) (make)
- regexy (requires emacs) (make)
- ros-melodic-rosemacs (requires emacs)
- ros-noetic-rosemacs (requires emacs)
- ros-noetic-slime-wrapper (requires emacs)
- sawfish-git (requires emacs) (make)
- sawfish-git (requires emacs) (optional)
- shpp-git (requires emacs) (make)
- slime (requires emacs)
- slime-git (requires emacs)
- sph-scheme-mode-git (requires emacs)
- stumpwm-git (requires emacs) (optional)
- sunrise-commander (requires emacs)
- supercollider-git (requires emacs) (make)
- supercollider-git (requires emacs) (optional)
- supercollider-headless-git (requires emacs) (make)
- supercollider-headless-git (requires emacs) (optional)
- supercollider-portaudio (requires emacs) (make)
- supercollider-portaudio (requires emacs) (optional)
- synct-git (requires emacs) (optional)
- tramp (requires emacs) (make)
- translate-shell-git (requires emacs) (optional)
- uim-git (requires emacs) (optional)
- unison-git (requires emacs) (make)
Sources (2)
Latest Comments
« First ‹ Previous 1 .. 7 8 9 10 11 12 13 14 15 16 17 .. 39 Next › Last »
toropisco commented on 2021-05-09 14:56 (UTC)
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.
MuffinBomber commented on 2021-04-09 14:48 (UTC)
The native-compilation feature is getting merged onto master next weekend (https://lists.gnu.org/archive/html/emacs-devel/2021-04/msg00484.html)
It would be a good idea to add a NATIVE_COMPILATION variable that would enable '--with-native-compilation' option.
esrevinu commented on 2021-03-21 18:04 (UTC)
conf
in the below part of PKGBUILD looks like a typo of _conf
.
# ctags/etags may be provided by other packages, e.g, universal-ctags
conf+=('--program-transform-name="s/\([ec]tags\)/\1.emacs/"')
But with the typo fixed, build failed. Finally, the following modification works.
# ctags/etags may be provided by other packages, e.g, universal-ctags
-conf+=('--program-transform-name="s/\([ec]tags\)/\1.emacs/"')
+_conf+=('--program-transform-name=s/\([ec]tags\)/\1.emacs/')
toropisco commented on 2021-03-19 22:45 (UTC) (edited on 2021-03-19 22:47 (UTC) by toropisco)
zhenya1007 thanks for the patch. I took the chance to fix some standing bugs and it is already up. Please give it a good beating and report back.
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 theemacs-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.