GNU bug report logs -
#63288
30.0.50; Emacs 30 packages fail to build with native comp on some machines
Previous Next
Reported by: Brian Leung <leungbk <at> posteo.net>
Date: Fri, 5 May 2023 04:00:02 UTC
Severity: normal
Found in version 30.0.50
Done: Pip Cet <pipcet <at> protonmail.com>
Bug is archived. No further changes may be made.
Full log
Message #98 received at 63288 <at> debbugs.gnu.org (full text, mbox):
"Stefan Kangas" <stefankangas <at> gmail.com> writes:
> Stefan Monnier via "Bug reports for GNU Emacs, the Swiss army knife of
> text editors" <bug-gnu-emacs <at> gnu.org> writes:
>
>>> I really don't understand this code, I'm afraid.
>>
>> Don't worry: I don't think anybody does (I sure don't).
>>
>> It's code inherited from *many* years ago, where it approximated the
>> desired semantics via approximate hacks (like delaying assignments
>> until some package is loaded).
>>
>> We could try and go back to the CLHS doc to figure out what it "should"
>> do, and then implement it better. But seeing how little it's used,
>> I doubt it's worth the trouble (my impression is that its intended
>> semantics doesn't align very well with our implementation(s), so it
>> would take work and/or ugly hacks to make it work "right").
>>
>>> So I'll commit the minimal change above, and hope that the rest of the
>>> problem goes away when you have the time to look at it next :-)
>>
>> Looking at it doesn't make me very happy, so I don't have any plan to
>> look at it.
>>
>> If you want to do me a favor you could try and mark it (both `proclaim`
>> and `declaim`) as deprecated.
>
> (This is a spin-off from Bug#63288.)
>
> The code for the cl-lib declarations, i.e. (info "(cl) Declarations"),
> is hacky, hard to maintain, and not well-understood by anyone. It
> doesn't seem to provide any benefits over using standard Emacs Lisp
> facilities such as `declare`, `defvar`, and setting byte-compiler
> variables.
>
> The attached patch marks cl-proclaim, cl-declaim, and cl-declare as
> obsolete.
Hooray!
(I'm not sure about cl-declare, but I'm pretty sure the way cl-proclaim
and cl-declaim are implemented would lead to further bugs if they were
used more.)
> diff --git a/doc/misc/cl.texi b/doc/misc/cl.texi
> index da73aeb6387..e1e67e2c0e7 100644
> --- a/doc/misc/cl.texi
> +++ b/doc/misc/cl.texi
> @@ -60,7 +60,7 @@ Top
> * Predicates:: Type predicates and equality predicates.
> * Control Structure:: Assignment, conditionals, blocks, looping.
> * Macros:: Destructuring, compiler macros.
> -* Declarations:: @code{cl-proclaim}, @code{cl-declare}, etc.
> +* Declarations:: @code{cl-the}.
> * Symbols:: Property lists, creating symbols.
> * Numbers:: Predicates, functions, random numbers.
> * Sequences:: Mapping, functions, searching, sorting.
> @@ -2745,46 +2745,12 @@ Declarations
> mechanism that allows you to give the compiler special hints
> about the types of data that will be stored in particular variables,
> and about the ways those variables and functions will be used. This
> -package defines versions of all the Common Lisp declaration forms:
> -@code{declare}, @code{locally}, @code{proclaim}, @code{declaim},
> -and @code{the}.
> +package defines a versions of only one Common Lisp declaration forms:
> +@code{the}.
"version", and "form".
Pip
This bug report was last modified 132 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.