1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-15 10:30:25 -08:00

Address compilation errors and warnings on x86 Solaris 10 systems

* doc/misc/ede.texi (Extending EDE):

* doc/misc/flymake.texi (Top, Using Flymake): Insert punctuation
after xrefs.

* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Print
number of files being scraped.

* src/dired.c (directory_files_internal):

* src/eval.c (Fmake_interpreted_closure, Fdefvaralias):

* src/fns.c (Fassoc): Work around optimizer failures.
This commit is contained in:
Po Lu 2024-05-26 11:50:13 +08:00
parent 2a12f39ffe
commit 74ceb6922c
6 changed files with 48 additions and 32 deletions

View file

@ -1027,13 +1027,13 @@ superclasses, specifically the PROJECT and TARGET@. All commands in
target.
All specific projects in @ede{} derive subclasses of the @ede{}
superclasses. In this way, specific behaviors such as how a project
is saved, or how a target is compiled can be customized by a project
author in detail. @ede{} communicates to these project objects via an
API using methods. The commands you use in @ede{} mode are high-level
superclasses. In this way, specific behaviors such as how a project is
saved, or how a target is compiled can be customized by a project author
in detail. @ede{} communicates to these project objects via an API
using methods. The commands you use in @ede{} mode are high-level
functional wrappers over these methods. @xref{Top,,, eieio, EIEIO
manual} for details on using @eieio{} to extending classes, and
writing methods.
manual}, for details on using @eieio{} to extending classes, and writing
methods.
If you intend to extend @ede{}, it is most likely that a new target type is
needed in one of the existing project types. The rest of this chapter

View file

@ -59,11 +59,10 @@ types of diagnostics.
To learn about using Flymake, @pxref{Using Flymake}.
When the Emacs LSP support mode Eglot is enabled, Flymake will use
that as an additional back-end. @xref{Eglot Features,,, eglot, Eglot:
The Emacs LSP Client} Flymake is also designed to be easily extended
to support new backends via an Elisp interface. @xref{Extending
Flymake}.
When the Emacs LSP support mode Eglot is enabled, Flymake will use that
as an additional back-end. @xref{Eglot Features,,, eglot, Eglot: The
Emacs LSP Client}. Flymake is also designed to be easily extended to
support new backends via an Elisp interface. @xref{Extending Flymake}.
@ifnottex
@insertcopying
@ -94,7 +93,7 @@ write your own Flymake backend functions. @xref{Backend functions}.
When the Emacs LSP support mode Eglot is enabled, Flymake will use
that as an additional back-end automatically. @xref{Eglot Features,,,
eglot, Eglot: The Emacs LSP Client}
eglot, Eglot: The Emacs LSP Client}.
@menu
* Starting Flymake::

View file

@ -601,7 +601,6 @@ instead of just updating them with the new/changed autoloads."
(if (consp dir) dir (list dir)))))
(updating (and (file-exists-p output-file) (not generate-full)))
(defs nil))
;; Allow the excluded files to be relative.
(setq excluded-files
(mapcar (lambda (file) (expand-file-name file dir))
@ -610,7 +609,8 @@ instead of just updating them with the new/changed autoloads."
;; Collect all the autoload data.
(let ((progress (make-progress-reporter
(byte-compile-info
(concat "Scraping files for loaddefs"))
(format "Scraping %s files for loaddefs"
(length files)))
0 (length files) nil 10))
(output-time
(file-attribute-modification-time (file-attributes output-file)))

View file

@ -351,8 +351,11 @@ directory_files_internal (Lisp_Object directory, Lisp_Object full,
specpdl_ptr = specpdl_ref_to_ptr (count);
if (NILP (nosort))
list = CALLN (Fsort, Fnreverse (list),
{
Lisp_Object ordered = Fnreverse (list);
list = CALLN (Fsort, ordered,
attrs ? Qfile_attributes_lessp : Qstring_lessp);
}
(void) directory_volatile;
return list;

View file

@ -527,14 +527,22 @@ IFORM if non-nil should be of the form (interactive ...). */)
(Lisp_Object args, Lisp_Object body, Lisp_Object env,
Lisp_Object docstring, Lisp_Object iform)
{
Lisp_Object ifcdr, value, slots[6];
CHECK_CONS (body); /* Make sure it's not confused with byte-code! */
CHECK_LIST (args);
CHECK_LIST (iform);
Lisp_Object ifcdr = Fcdr (iform);
Lisp_Object slots[] = { args, body, env, Qnil, docstring,
NILP (Fcdr (ifcdr))
? Fcar (ifcdr)
: CALLN (Fvector, XCAR (ifcdr), XCDR (ifcdr)) };
ifcdr = CDR (iform);
if (NILP (CDR (ifcdr)))
value = CAR (ifcdr);
else
value = CALLN (Fvector, XCAR (ifcdr), XCDR (ifcdr));
slots[0] = args;
slots[1] = body;
slots[2] = env;
slots[3] = Qnil;
slots[4] = docstring;
slots[5] = value;
/* Adjusting the size is indispensable since, as for byte-code objects,
we distinguish interactive functions by the presence or absence of the
iform slot. */
@ -675,12 +683,17 @@ signal a `cyclic-variable-indirection' error. */)
else if (!NILP (Fboundp (new_alias))
&& !EQ (find_symbol_value (new_alias),
find_symbol_value (base_variable)))
{
Lisp_Object message, formatted;
message = build_string ("Overwriting value of `%s' by aliasing"
" to `%s'");
formatted = CALLN (Fformat_message, message,
new_alias, base_variable);
call2 (Qdisplay_warning,
list3 (Qdefvaralias, Qlosing_value, new_alias),
CALLN (Fformat_message,
build_string
("Overwriting value of `%s' by aliasing to `%s'"),
new_alias, base_variable));
formatted);
}
{
union specbinding *p;

View file

@ -2006,8 +2006,9 @@ TESTFN is called with 2 arguments: a car of an alist element and KEY. */)
FOR_EACH_TAIL (tail)
{
Lisp_Object car = XCAR (tail);
if (CONSP (car)
&& (NILP (testfn)
if (!CONSP (car))
continue;
if ((NILP (testfn)
? (EQ (XCAR (car), key) || !NILP (Fequal
(XCAR (car), key)))
: !NILP (call2 (testfn, XCAR (car), key))))