Reload any previously loaded package files before compiling
the package (also reload the same files after compiling).
This ensures that we have the most recent definitions during
compilation, and avoids generating bad elc files when a macro
changes and it is used in a different file from the one it's
defined in.
(package-activate): Move code that activates dependencies into
package-activate-1.
(package--load-files-for-activation): New function.
(package-activate-1): Add code for (optionally) activating
dependencies, and move file-loading code into
`package--load-files-for-activation'.
* doc/lispref/display.texi (Low-Level Font): Document
'default-font-width', 'default-font-height', 'window-font-width',
and 'window-font-height'.
* etc/NEWS: Move entries for 'default-font-width',
'default-font-height', 'window-font-width', and 'window-font-height'
to their place and mark them documented.
* lisp/files.el (directory-name-p): Modify to recognize
backslashes on MS-Windows and MS-DOS. Adjust the doc string
accordingly. Use '=', not char-equal, for comparison, as
letter-case cannot possibly be an issue here.
* doc/lispref/files.texi (Directory Names): Move the documentation
of directory-name-p here from "Relative File Names". Update the
description per the changes in implementation.
* etc/NEWS: Move the entry for 'directory-name-p' to its proper
place and mark it documented.
* src/emacs-module.c (value_to_lisp) [WIDE_EMACS_INT]: Use
unsigned data types to manipulate pointers, to avoid sign
extension coming after us with a vengeance.
* modules/mod-test/test.el (mod-test-sum-test): Add tests for
Emacs with wide ints that verify integer values near the critical
value that requires us to switch to a cons cell.
* lisp/isearch.el (isearch-forward-word, isearch-forward-symbol)
(word-search-backward, word-search-forward)
(word-search-backward-lax, word-search-forward-lax): Mention in
doc strings that toggling lax whitespace matching has no effect on
these commands.
* doc/emacs/search.texi (Word Search, Symbol Search): Clarify that
lax whitespace matching has no effect on these commands.
* src/emacs-module.c (lisp_to_value): Compare the produced value
with the original Lisp object, not with the one potentially
converted into a Lisp_Cons. Fixes assertion violations when
working with integers larger than fit into a 32-bit value.
* modules/mod-test/test.el (mod-test-sum-test): Add tests for
large integers, to test --with-wide-int.
* lisp/files.el (directory-files-recursively): Doc fix. Rename
the argument MATCH to REGEXP, to be more explicit about its form.
* doc/lispref/files.texi (Contents of Directories): Improve the
documentation of 'directory-files-recursively'. Add
cross-references.
* etc/NEWS: Move the entry for 'directory-files-recursively' to
its place and mark it documented.
* doc/lispref/text.texi (Special Properties): Describe the new
'inhibit-read-only' text property. Add cross-reference to where
read-only buffers are described.
* doc/lispref/buffers.texi (Read Only Buffers): Mention that
'inhibit-read-only' property exempts text from being read-only.
Add cross-reference to "Special Properties".
* etc/NEWS: Move the entry about 'inhibit-read-only' property to
its place and mark it documented.
(character-fold-to-regexp): Uncomment recently commented code
and make the algorithm "dummer" by not checking every possible
combination. This will miss some possible matches, but it
greatly reduces regexp size.
* test/automated/character-fold-tests.el
(character-fold--test-fold-to-regexp): Comment out test of
functionality no longer supported.
* src/emacs-module.c (struct emacs_value_tag)
(struct emacs_value_frame, struct emacs_value_storage): Remove.
(value_frame_size): Remove constant.
(struct emacs_env_private): Use Lisp_Object for non_local_exit info.
(lisp_to_value): Remove first arg.
(module_nil): New constant.
Use it instead of NULL when returning an emacs_value.
(module_make_function): Adjust to new calling convention of
Qinternal_module_call.
(DEFUN): Receive args in an array rather than a list.
Use SAFE_ALLOCA rather than xnmalloc. Skip the lisp_to_value loop when
we don't have WIDE_EMACS_INT. Adjust to new type of non_local_exit info.
(module_non_local_exit_signal_1, module_non_local_exit_throw_1):
Adjust to new type of non_local_exit info.
(ltv_mark) [WIDE_EMACS_INT]: New constant.
(value_to_lisp, lisp_to_value): Rewrite.
(initialize_frame, initialize_storage, finalize_storage): Remove functions.
(allocate_emacs_value): Remove function.
(mark_modules): Gut it.
(initialize_environment): Don't initialize storage any more.
Keep the actual env object on Vmodule_environments.
(finalize_environment): Don't finalize storage any more.
(syms_of_module): Initialize ltv_mark and module_nil.
* src/emacs-module.h (emacs_value): Make it more clear that this type
is really opaque, including the fact that NULL may not be valid.
* modules/mod-test/mod-test.c (Fmod_test_signal, Fmod_test_throw):
Don't assume that NULL is a valid emacs_value.
* doc/emacs/search.texi (Word Search, Symbol Search)
(Regexp Search): Document commands that don't support lax
whitespace matching or character folding.
(Nonincremental Search): Mention the search commands that can be
invoked from the menu bar.
* lisp/isearch.el (isearch-define-mode-toggle-word)
(isearch-define-mode-toggle-symbol)
(isearch-define-mode-toggle-character-fold): Note in the doc
string that turning these on exits the regexp mode.
(isearch-forward-regexp, isearch-forward-word)
(isearch-forward-symbol, isearch-backward-regexp)
(word-search-backward, word-search-forward)
(word-search-backward-lax, word-search-forward-lax): State in the
doc string which commands don't support character folding and/or
lax-whitespace matching.
(character-fold-to-regexp): Comment out code that uses multi-char
table. The branching caused by this induces absurdly long regexps,
up to 10k chars for as little as 25 input characters.
(nonincremental-search-forward): Use `isearch-search-fun-default'
to determine the search function.
(nonincremental-search-backward)
(nonincremental-repeat-search-forward)
(nonincremental-repeat-search-backward): Use it.
* doc/lispref/strings.texi (Text Comparison): Improve wording and
indexing of 'string-collate-equalp' and 'string-collate-lessp'.
* etc/NEWS: Move the entry of 'string-collate-equalp' and
'string-collate-lessp' to "Lisp Changes" section and mark it as
documented.
* doc/lispref/display.texi (Size of Displayed Text): Document
'truncate-string-ellipsis'.
* lisp/international/mule-util.el (truncate-string-ellipsis): Doc fix.
(truncate-string-to-width): Mention in the doc string that the
default for ELLIPSIS comes from 'truncate-string-ellipsis'.
* etc/NEWS: Move the 'truncate-string-ellipsis' entry to the "Lisp
Changes" section.