bug-gnu-emacs
[Top][All Lists]
Advanced

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

bug#57207: 29.0.50; Fontification is slow after e7b5912b23 (Improvements


From: Ihor Radchenko
Subject: bug#57207: 29.0.50; Fontification is slow after e7b5912b23 (Improvements to long lines handling)
Date: Wed, 24 Aug 2022 16:08:32 +0800

With the latest master, the fontification gets completely broken.

IDK if it is related to this specific patch, but I got the following redisplay backtrace.
Note that org-element--parse-objects has the following:

  (save-excursion
    (save-restriction
      (narrow-to-region beg end)
      (goto-char (point-min))
      (let (next-object contents)
(while (and (not (eobp))
   (setq next-object (org-element--object-lex restriction)))

The infinite recursion did not happen on the same Org file in the past. So, it is not an issue with logic. Most likely, there is something about narrowing/point movement that is very wrong on Emacs master.

(Another oddity is https://list.orgmode.org/87y1vf2zbe.fsf@localhost/T/#t)

Error: excessive-lisp-nesting nil
  debug-early-backtrace()
  debug-early(error (excessive-lisp-nesting))
  rx--parse-any((space 45 40 39 34 123))
  rx--translate-any(nil (space 45 40 39 34 123))
  rx--translate-form((any space 45 40 39 34 123))
  rx--translate((any space 45 40 39 34 123))
  #<subr F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_2>((any space 45 40 39 34 123))
  mapcan(#<subr F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_2> ((any space 45 40 39 34 123)))
  rx--translate-or((line-start (any space 45 40 39 34 123)))
  rx--translate-form((or line-start (any space 45 40 39 34 123)))
  rx--translate((or line-start (any space 45 40 39 34 123)))
  rx--translate-seq(((or line-start (any space 45 40 39 34 123)) "*" (not space)))
  rx--translate-form((seq (or line-start (any space 45 40 39 34 123)) "*" (not space)))
  rx--translate((seq (or line-start (any space 45 40 39 34 123)) "*" (not space)))
  rx-to-string((seq (or line-start (any space 45 40 39 34 123)) "*" (not space)))
  org-element--parse-generic-emphasis("*" bold)
  org-element-bold-parser()
  org-element--object-lex((bold citation code entity export-snippet footnote-reference inline-babel-call inline-src-block italic line-break latex-fragment link macro radio-target statistics-cookie strike-through subscript superscript target timestamp underline verbatim))
--- (line repeated 100s of times) ----
  org-element--parse-objects(5 54 (bold (:begin 4 :end 55 :post-blank 0 :contents-begin 5 :contents-end 54 :parent (bold (:begin 4 :end 55 :post-blank 0 :contents-begin 5 :contents-end 54 :parent (bold (:begin 4 :end 55 :post-blank 0 :contents-begin 5 :contents-end 54 :parent (bold (:begin 4 :end 55 :post-blank 0 :contents-begin 5 :contents-end 54 :parent (bold (:begin 4 :end 55 :post-blank 0 :contents-begin 5 :contents-end 54 :parent ( (bold citation code entity export-snippet footnote-reference inline-babel-call inline-src-block italic line-break latex-fragment link macro radio-target statistics-cookie strike-through subscript superscript target timestamp underline verbatim))
  org-element--parse-objects(5 54 (bold (:begin 4 :end 55 :post-blank 0 :contents-begin 5 :contents-end 54 :parent (bold (:begin 4 :end 55 :post-blank 0 :contents-begin 5 :contents-end 54 :parent (bold (:begin 4 :end 55 :post-blank 0 :contents-begin 5 :contents-end 54 :parent (bold (:begin 4 :end 55 :post-blank 0 :contents-begin 5 :contents-end 54 :parent (bold (:begin 4 :end 55 :post-blank 0 :contents-begin 5 :contents-end 54)))))))))) (bold citation code entity export-snippet footnote-reference inline-babel-call inline-src-block italic line-break latex-fragment link macro radio-target statistics-cookie strike-through subscript superscript target timestamp underline verbatim))
  org-element--parse-objects(5 54 (bold (:begin 4 :end 55 :post-blank 0 :contents-begin 5 :contents-end 54 :parent (bold (:begin 4 :end 55 :post-blank 0 :contents-begin 5 :contents-end 54 :parent (bold (:begin 4 :end 55 :post-blank 0 :contents-begin 5 :contents-end 54 :parent (bold (:begin 4 :end 55 :post-blank 0 :contents-begin 5 :contents-end 54)))))))) (bold citation code entity export-snippet footnote-reference inline-babel-call inline-src-block italic line-break latex-fragment link macro radio-target statistics-cookie strike-through subscript superscript target timestamp underline verbatim))
  org-element--parse-objects(5 54 (bold (:begin 4 :end 55 :post-blank 0 :contents-begin 5 :contents-end 54 :parent (bold (:begin 4 :end 55 :post-blank 0 :contents-begin 5 :contents-end 54 :parent (bold (:begin 4 :end 55 :post-blank 0 :contents-begin 5 :contents-end 54)))))) (bold citation code entity export-snippet footnote-reference inline-babel-call inline-src-block italic line-break latex-fragment link macro radio-target statistics-cookie strike-through subscript superscript target timestamp underline verbatim))
  org-element--parse-objects(5 54 (bold (:begin 4 :end 55 :post-blank 0 :contents-begin 5 :contents-end 54 :parent (bold (:begin 4 :end 55 :post-blank 0 :contents-begin 5 :contents-end 54)))) (bold citation code entity export-snippet footnote-reference inline-babel-call inline-src-block italic line-break latex-fragment link macro radio-target statistics-cookie strike-through subscript superscript target timestamp underline verbatim))
  org-element--parse-objects(5 54 (bold (:begin 4 :end 55 :post-blank 0 :contents-begin 5 :contents-end 54)) (bold citation code entity export-snippet footnote-reference inline-babel-call inline-src-block italic line-break latex-fragment link macro radio-target statistics-cookie strike-through subscript superscript target timestamp underline verbatim))
  org-element--parse-objects(242 246 nil (bold citation code entity export-snippet footnote-reference inline-babel-call inline-src-block italic latex-fragment link macro radio-target statistics-cookie strike-through subscript superscript target timestamp underline verbatim) (headline (:raw-value "Home" :begin 240 :end 13776 :pre-blank 358 :contents-begin 264 :contents-end 13776 :robust-begin 266 :robust-end 13774 :level 1 :priority nil :tags (#("COMMON" 0 6 (fontified t)) #("NOCLOCK" 0 7 (fontified t))) :todo-keyword nil :todo-type nil :post-blank 359 :footnote-section-p nil :archivedp nil :commentedp nil :post-affiliated 240 :parent nil :structure nil :deferred org-element-headline-parser--deferred)))
  org-element-headline-parser(327004 nil)
  org-element--current-element(327004 object nil nil)
  org-element--parse-elements(240 327004 nil nil object nil nil no-recursion)
  org-element-parse-element((headline (:raw-value #1="Home" :begin 240 :end 327004 :pre-blank 0 :contents-begin 264 :contents-end 326998 :robust-begin 356 :robust-end 326996 :level 1 :priority nil :tags ("COMMON" "NOCLOCK") :todo-keyword nil :todo-type nil :post-blank 2 :footnote-section-p nil :archivedp nil :commentedp nil :post-affiliated 240 :parent #2=(org-data (:begin 1 :contents-begin 1 :contents-end 326998 :end 327004 :robust-begin 123 :robust-end 326996 :post-blank 2 :post-affiliated 1 :path "/home/yantar92/Org/TODO.org" :mode org-data :ID "157580d6-61cc-4541-bf5c-46a1dbf25b13" :CATEGORY "TODO" :cached t :org-element--cache-sync-key nil)) :structure nil :deferred nil :title #1# :mode nil :granularity element :org-element--cache-sync-key nil :cached t :ID "2489bdb2-054e-4dc1-97d6-3298c70b742a" :ORG-TIME-BALANCE-MULTIPLIER "1" :fragile-cache #<hash-table equal 2/65 0x1ffb2d613ec3>)) object nil no-recursion)
  org-font-lock-matcher(1542)
  font-lock-fontify-keywords-region(1 1542 nil)
  font-lock-default-fontify-region(1 1501 nil)
  font-lock-fontify-region(1 1501)
  #f(compiled-function (fun) #<bytecode -0x156e7c74145e6b83>)(font-lock-fontify-region)
  jit-lock--run-functions(1 1501)
  jit-lock-fontify-now(1 1501)
  jit-lock-function(1)
  redisplay_internal\ \(C\ function\)()

On Tue, Aug 23, 2022 at 11:53 PM Gregory Heytings <gregory@heytings.org> wrote:

>> Eli, do you have any objections about that patch (which replaces MODIFF
>> with CHARS_MODIFF in the long lines detection code), or can I push it
>> to master?
>
> No objections.
>

Thanks, now done.

reply via email to

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