Subject: Re: bug#77924: 31.0.50; [Feature branch] Change marker implementation

From: Gerd Möllmann <[email-masked]>
Date: Thu, 24 Apr 2025 13:24:04 +0200

Visuwesh <[email-masked]> writes:

> [வியாழன் ஏப்ரல் 24, 2025] Gerd Möllmann wrote:
>
>>>> Seems to have something to do with prog-mode, so maybe this depends on
>>>> the test file being a C file, which might be interesting for Visuwesh.
>>>
>>> I commented out (elb-smie-mode) form in the above snippet and that
>>> showed a backtrace which I could not explain.  Replacing the form with
>>> (text-mode) didn't help either.  So I'm running the benchmark with that
>>> form intact, even though the file I'm scrolling through is a text file.
>>> I am running the benchmark currently, and will report the results once
>>> they are done.
>>>
>>> Debugger entered--Lisp error: (overflow-error)
>>>   round(-0.0e+NaN)
>>>   (let ((squares (apply #'+ (mapcar #'(lambda (x) (expt x 2)) errs))))
>>> (round (/ (* 100 (sqrt squares)) elapsed)))
>>>   (format "|%2d%%\n" (let ((squares (apply #'+ (mapcar #'(lambda ...
>>> ...) errs)))) (round (/ (* 100 (sqrt squares)) elapsed))))
>>>   (insert (format "|%2d%%\n" (let ((squares (apply #'+ (mapcar #'...
>>> errs)))) (round (/ (* 100 (sqrt squares)) elapsed)))))
>>>   (let* ((--cl-var-- tests) (test nil) (l nil) (test-elapsed nil)
>>> (test-gcs nil) (test-gc-elapsed nil) (test-err nil) (elapsed 0) (gcs
>>> 0) (gc-elapsed 0) (errs nil) (--cl-var-- t)) (while (consp --cl-var--)
>>> (setq test (car --cl-var--)) (setq l (gethash test res)) (setq
>>> test-elapsed (let* ((--cl-var-- l) (x nil) (--cl-var-- 0)) (while
>>> (consp --cl-var--) (setq x (car --cl-var--)) (setq --cl-var-- (+
>>> --cl-var-- (car x))) (setq --cl-var-- (cdr --cl-var--))) --cl-var--))
>>> (setq test-gcs (let* ((--cl-var-- l) (x nil) (--cl-var-- 0)) (while
>>> (consp --cl-var--) (setq x (car --cl-var--)) (setq --cl-var-- (+
>>> --cl-var-- (car ...))) (setq --cl-var-- (cdr --cl-var--)))
>>> --cl-var--)) (setq test-gc-elapsed (let* ((--cl-var-- l) (x nil)
>>> (--cl-var-- 0)) (while (consp --cl-var--) (setq x (car --cl-var--))
>>> (setq --cl-var-- (+ --cl-var-- (car ...))) (setq --cl-var-- (cdr
>>> --cl-var--))) --cl-var--)) (setq test-err (if (cdr l)
>>> (elb-std-deviation (mapcar #'car l)))) (insert (apply #'format
>>
>> Something went wrong when computing the "err" values, apparently. Maybe
>> it'll work if you increase the number of runs the NaN goes away?
>
> Oddly enough, it throws an error as soon as I start the benchmark.  I
> don't think even a single iteration in the loop of elb-scroll-entry is
> complete, let alone a complete run.

Hm, I can't really get that to run really well either, but while trying
I found that

 - it must be run with GUI emacs -Q because it tries to enlarge-window
   which it can't on a terminal, and it assumes certain sizes
   ("stipulated sizes not whatever" error)

 - the resources directory containing xmenu.c or whatever must be a
   sibling to the benchmarks directory

 - The pattern matching the test case doesn't seem to always work. I use
   ".*scroll.*" but the report at the end shows also "setq" and
   "font-lock"???