emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: scratch/accurate-warning-pos: Solid progress: the branch now bootstr


From: Alan Mackenzie
Subject: Re: scratch/accurate-warning-pos: Solid progress: the branch now bootstraps.
Date: Sun, 25 Nov 2018 19:54:02 +0000
User-agent: Mutt/1.10.1 (2018-07-13)

Hello, Stefan.

On Sun, Nov 25, 2018 at 13:22:38 -0500, Stefan Monnier wrote:

[ .... ]

> > NILP won't work here (as I pointed out to Eli), because of circular
> > dependencies inside lisp.h.

> Oh, right:

>     #define lisp_h_NILP(x) EQ (x, Qnil)

> Reminds me of another question I had: in your code, do you need NILP to
> pay attention to symbols-with-pos-enabled?

I think so, yes.  The compiler has to recognise an explicit #<symbol nil
at 666> as being nil.  I had quite some fun in the hacking with the (foo
. nil)s in fontset.el.

> That would significantly increase the impact in terms of code-size and
> CPU time (could explain why you see 8% slowdown which is more expansive
> than my patch which turns EQ into EQL).

Would it?  Currently, an EQ does a binary == test between the
Lisp_Objects, and only if that fails does it test
symbols-with-pos-enabled.  So if the number of successful and failing
tests were equal (I've really no idea), EQ would be slowed down by 33%.

>         Stefan

-- 
Alan Mackenzie (Nuremberg, Germany).



reply via email to

[Prev in Thread] Current Thread [Next in Thread]