With the recent changes to src/verbose.mk.in, it’s more important
to be consistent about putting AM_V_GEN and similar macros at the
start of a rule’s recipe, since ‘make’ now outputs the diagnostic
before it executes the recipe rather than the shell outputting it.
Most of the uses were already this way, but there were a few
outliers. Problem reported by Pip Cet.
* Makefile.in (${srcdir}/info/dir):
* admin/unidata/Makefile.in (${unidir}/charprop.el, ${unifiles})
(${unidir}/emoji-labels.el):
* lib/Makefile.in (libgnu.a, libegnu.a):
* lisp/Makefile.in (TAGS):
* src/Makefile.in (lisp.mk, Emacs):
* test/Makefile.in (%.log, $(test_module)):
Put AM_V_GEN and similar macros first.
* lisp/Makefile.in (main-first): Ensure that we're done with the
main bits before starting on the rest.
(GREP_OPTIONS): Depend on main-first.
(MAIN_FIRST): Compile cconv.el before c-by.el (bug#8764).
* lisp/Makefile.in (COMPILE_FIRST): Add the dependencies of
comp.el, so that they are natively-compiled in advance.
* lisp/loadup.el ("paren"): Preload paren.el. (Bug#50934)
* lisp/emacs-lisp/comp.el (batch-native-compile): Accept an
optional argument; if non-nil, place the .eln file as appropriate
for building a source tarball.
* doc/lispref/compile.texi (Native-Compilation Functions):
Document the new optional argument of 'batch-native-compile'.
* lisp/Makefile.in (.PHONY, $(THEFILE)n) [HAVE_NATIVE_COMP]: New
targets.
* src/Makefile.in (%.eln) [HAVE_NATIVE_COMP]: New recipe.
(all) [HAVE_NATIVE_COMP]: Add ../native-lisp to prerequisites.
(elnlisp) [HAVE_NATIVE_COMP]: New list of *.eln files.
(../native-lisp) [HAVE_NATIVE_COMP]: New recipe.
* src/verbose.mk.in (AM_V_ELN): New macro.
As the constraint logic of the compiler is not trivial and largely
independent from the rest of the code move it into comp-cstr.el to
ease separation and maintainability.
This commit improve the conversion type
specifier -> constraint for generality.
Lastly this should help with bootstrap time as comp.el compilation
unit is slimmed down.
* lisp/emacs-lisp/comp-cstr.el: New file.
(comp--typeof-types, comp--all-builtin-types): Move from comp.el.
(comp-cstr, comp-cstr-f): Same + rename.
(comp-cstr-ctxt): New struct.
(comp-supertypes, comp-common-supertype-2)
(comp-common-supertype, comp-subtype-p, comp-union-typesets)
(comp-range-1+, comp-range-1-, comp-range-<, comp-range-union)
(comp-range-intersection): Move from comp.el.
(comp-cstr-union-no-range, comp-cstr-union): Move from comp.el and
rename.
(comp-cstr-union-make): New function.
(comp-type-spec-to-cstr, comp-cstr-to-type-spec): Move from
comp.el, rename it and rework it.
* lisp/emacs-lisp/comp.el (comp-known-func-cstr-h): Rework.
(comp-ctxt): Remove two fields and include `comp-cstr-ctxt'.
(comp-mvar, comp-fwprop-call): Update for `comp-cstr' being
renamed.
(comp-fwprop-insn): Use `comp-cstr-union-no-range' or
`comp-cstr-union'.
(comp-ret-type-spec): Use `comp-cstr-union' and rework.
* test/lisp/emacs-lisp/comp-cstr-tests.el: New file.
(comp-cstr-test-ts, comp-cstr-typespec-test): New functions.
(comp-cstr-typespec-tests-alist): New defconst to generate tests
on.
(comp-cstr-generate-tests): New macro.
* test/src/comp-tests.el (comp-tests-type-spec-tests): Update.
(ret-type-spec): Initialize constraint context.
65078e0a76 * lisp/info.el (Info-hide-note-references): Doc fix. (Bug...
30305b543d Make lisp/progmodes/js.el dependent on CC Mode in the Make...
c37b2a9b42 Yet another fix for 'set-minibuffer-message'
72dd911981 Fix posn-at-x-y in builds --without-x
ace25f2066 Clarify the seq-reduce documentation
7d598e281d Make tramp-completion-reread-directory-timeout obsolete (B...
2c31ce18ea Fix 'message' when there's active minibuffer on another frame
# Conflicts:
# doc/misc/tramp.texi
# etc/NEWS
This will prevent version mismatches between compile time and runtime
versions. This fixes bug #43037.
* lisp/Makefile.in: Make js.el dependent on cc-{defs,engine,mode}.elc.
To Ahead of Time compile the whole Emacs distro define NATIVE_FULL_AOT
when invoking make ex: 'make NATIVE_FULL_AOT=1'.
* lisp/Makefile.in (NATIVE_SKIP_NONDUMP): New variable.
(compile-main): Use it + rename NATIVE_DISABLE -> NATIVE_DISABLED.
* lisp/emacs-lisp/comp.el
(batch-byte-native-compile-for-bootstrap): Rename NATIVE_DISABLE
-> NATIVE_DISABLED.
* lisp/Makefile.in ($(lisp)/loaddefs.el): Don't output the
directories here.
* lisp/emacs-lisp/autoload.el (batch-update-autoloads--summary):
New function.
(batch-update-autoloads): Use it to output the directories we're
scraping.
This changes the compilation output from:
Directories for loaddefs: . ./calc ./calendar ./cedet ./cedet/ede
./cedet/semantic ./cedet/semantic/analyze ./cedet/semantic/bovine
./cedet/semantic/decorate ./cedet/semantic/symref ./cedet/semantic/wisent
./cedet/srecode ./emacs-lisp ./emulation ./erc ./eshell ./gnus ./image
./international ./language ./leim ./leim/ja-dic ./leim/quail ./mail ./mh-e
./net ./nxml ./org ./play ./progmodes ./textmodes ./url ./vc
(but all on one long line)
To:
SCRAPE . ./calc ./calendar ./cedet ./cedet/ede ./cedet/semantic
SCRAPE ./cedet/semantic/analyze ./cedet/semantic/bovine
SCRAPE ./cedet/semantic/decorate ./cedet/semantic/symref
SCRAPE ./cedet/semantic/wisent ./cedet/srecode ./emacs-lisp ./emulation
SCRAPE ./erc ./eshell ./gnus ./image ./international ./language ./leim
SCRAPE ./leim/ja-dic ./leim/quail ./mail ./mh-e ./net ./nxml ./org ./play
SCRAPE ./progmodes ./textmodes ./url ./vc
Compilation output with very long lines can be mistaken for errors
when they scroll by fast in the compilation output. Making it look
more like normal informational output avoids this confusion.
Add Makefile target native-compile-clean removing all eln output
folders.
This is also triggered by make bootstrap to perform a clean bootstrap.
Also revert some modification of the build system against master not
effective anymore with the new directory layout.
* src/Makefile.in (extraclean): Remove TAGS and config.in.
* Makefile.in (extraclean): Remove info, configure and
emacsver.texi in extraclean.
* admin/unidata/Makefile.in (extraclean): Make it depend on
distclean to remove .elc files.
* leim/Makefile.in (extraclean): Depend on bootstrap-clean to
remove generated .el files.
* lib/Makefile.in (extraclean): Added target to remove sys
directory and run distclean.
* lisp/Makefile.in (extraclean): Also remove loaddefs*.el~ files.
It is not relevant since Gnus stopped being distributed separately.
* etc/GNUS-NEWS: Remove this generated file.
* etc/NEWS.26: Relocate an entry mistakenly added to GNUS-NEWS.
* doc/misc/gnus-coding.texi (Gnus Maintenance Guide):
No longer mention GNUS-NEWS.
* doc/misc/gnus-news.el: Remove.
* doc/misc/gnus-news.texi: Update a comment.
* lisp/Makefile.in (update-gnus-news): Remove this phony target.
* lwlib/Makefile.in (TAGS):
* lisp/Makefile.in (TAGS):
* src/Makefile.in (TAGS): Use AM_V_GEN and AM_V_at.
* src/Makefile.in: Note that TAGS are generated in build dir.