[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#65017: 29.1; Byte compiler interaction with cl-lib function objects,
From: |
Eli Zaretskii |
Subject: |
bug#65017: 29.1; Byte compiler interaction with cl-lib function objects, removes symbol-function |
Date: |
Sun, 06 Aug 2023 07:49:58 +0300 |
> Date: Sat, 5 Aug 2023 20:22:32 +0000
> Cc: monnier@iro.umontreal.ca, mattias.engdegard@gmail.com,
> 65017@debbugs.gnu.org, eric.marsden@risk-engineering.org
> From: Alan Mackenzie <acm@muc.de>
>
> > Thanks, but when you have a solution in hand, please also check its
> > effect on performance. AFAIR, this part was tuned for optimal
> > performance, back when symbols with positions were introduced; it
> > would be a pity to lose performance due to fixing this bug, if that
> > can be avoided.
>
> This should really be in bug #65051, but:
>
> I've run
>
> time src/emacs -Q -batch --eval '(let ((a 1) (b 1) (times 10000000))
> (while (> times 0) (equal a b) (setq times (1- times))))'
>
> with different values for a and b (and slightly different quoting
> syntax, sometimes). I get the following results, reporting the "user:
> time" from GNU/Linux:
>
> New code:
> a, b = 1, 1: 1.760s 1.760s 1,746s
> a, b = 1, 3: 1.796s 1,772s 1.777s
> 1.0, 1.0: 1,757s 1.776s 1.751s
> 1.0, 1.1: 1.792s 1.760s 1.779s
> '(a b c), '(a b c): 2.041s 2.042s 2.039s
> '(a b c), '(a b d): 2.096s 2.071s 2.084s
> "1", "1": 1.841s 1.860s 1.845s
> "1", "3": 1.865s 1.846s 1.869s
>
> Old code:
> a, b = 1, 1: 1.744s 1.757s 1.762s
> a, b = 1, 3: 1.755s 1,777s 1.759s
> 1.0, 1.0: 1.787s 1.748s 1.775s
> 1.0, 1.1: 1.762s 1.770s 1.774s
> '(a b c), '(a b c): 2.021s 2.057s 2.019s
> '(a b c), '(a b d): 2.046s 2.090s 2.100s
> "1", "1": 1.854s 1.900s 1.884s
> "1", "3": 1.849s 1.833s 1.838s
>
> I think it's fair to say that the new code is not slower than the old
> code, to within the measuring limits of these simple tests. Any
> differences, such as they are, are in the second and third decimal
> places, and vary more between different measurements, than between the
> Old code and New code. They are surely too small to matter.
Thanks, this LGTM.
- bug#65017: 29.1; Byte compiler interaction with cl-lib function objects, removes symbol-function, (continued)
- bug#65017: 29.1; Byte compiler interaction with cl-lib function objects, removes symbol-function, Stefan Monnier, 2023/08/05
- bug#65017: 29.1; Byte compiler interaction with cl-lib function objects, removes symbol-function, Mattias Engdegård, 2023/08/04
- bug#65017: 29.1; Byte compiler interaction with cl-lib function objects, removes symbol-function, Alan Mackenzie, 2023/08/04
- bug#65017: 29.1; Byte compiler interaction with cl-lib function objects, removes symbol-function, Mattias Engdegård, 2023/08/04
- bug#65017: 29.1; Byte compiler interaction with cl-lib function objects, removes symbol-function, Stefan Monnier, 2023/08/05
- bug#65017: 29.1; Byte compiler interaction with cl-lib function objects, removes symbol-function, Mattias Engdegård, 2023/08/06
- bug#65017: 29.1; Byte compiler interaction with cl-lib function objects, removes symbol-function, Stefan Monnier, 2023/08/07
- bug#65017: 29.1; Byte compiler interaction with cl-lib function objects, removes symbol-function, Eli Zaretskii, 2023/08/04
- bug#65017: 29.1; Byte compiler interaction with cl-lib function objects, removes symbol-function, Alan Mackenzie, 2023/08/04
- bug#65017: 29.1; Byte compiler interaction with cl-lib function objects, removes symbol-function, Alan Mackenzie, 2023/08/05
- bug#65017: 29.1; Byte compiler interaction with cl-lib function objects, removes symbol-function,
Eli Zaretskii <=
- bug#65017: 29.1; Byte compiler interaction with cl-lib function objects, removes symbol-function, Alan Mackenzie, 2023/08/04
- bug#65017: 29.1; Byte compiler interaction with cl-lib function objects, removes symbol-function, Eli Zaretskii, 2023/08/04
- bug#65017: 29.1; Byte compiler interaction with cl-lib function objects, removes symbol-function, Alan Mackenzie, 2023/08/04
- bug#65017: 29.1; Byte compiler interaction with cl-lib function objects, removes symbol-function, Eli Zaretskii, 2023/08/04
- bug#65017: 29.1; Byte compiler interaction with cl-lib function objects, removes symbol-function, Alan Mackenzie, 2023/08/04
- bug#65017: 29.1; Byte compiler interaction with cl-lib function objects, removes symbol-function, Eli Zaretskii, 2023/08/04
- bug#65017: 29.1; Byte compiler interaction with cl-lib function objects, removes symbol-function, Stefan Monnier, 2023/08/05
- bug#65017: 29.1; Byte compiler interaction with cl-lib function objects, removes symbol-function, Stefan Monnier, 2023/08/05
- bug#65017: 29.1; Byte compiler interaction with cl-lib function objects, removes symbol-function, Alan Mackenzie, 2023/08/06
- bug#65017: 29.1; Byte compiler interaction with cl-lib function objects, removes symbol-function, Stefan Monnier, 2023/08/07