unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Mauro Aranda <maurooaranda@gmail.com>
To: Eli Zaretskii <eliz@gnu.org>
Cc: Ihor Radchenko <yantar92@posteo.net>, 53606@debbugs.gnu.org
Subject: bug#53606: 29.0.50; Very slow Customize buffer for bibtex-biblatex-entry-alist
Date: Mon, 18 Sep 2023 08:07:08 -0300	[thread overview]
Message-ID: <526c4074-ee3d-8182-a4bb-7f61cc66d779@gmail.com> (raw)
In-Reply-To: <21ff8522-0f11-5786-3113-aa79419957d9@gmail.com>

[-- Attachment #1: Type: text/plain, Size: 2315 bytes --]

On 10/9/23 09:41, Mauro Aranda wrote:
 > On 10/9/23 07:43, Eli Zaretskii wrote:
 > >> Date: Sun, 10 Sep 2023 06:49:29 -0300
 > >> Cc: 53606@debbugs.gnu.org
 > >> From: Mauro Aranda <maurooaranda@gmail.com>
 > >>
 > >> On 10/9/23 02:01, Eli Zaretskii wrote:
 > >>  > Could you please profile this slow operation and post the 
completely
 > >>  > unfolded profile?  I think we should try to understand what exactly
 > >>  > takes so much time in this case.
 > >>
 > >> Here it is.  I also attach the result of C-x C-w in the report buffer,
 > >> just in case.
 > >
 > > So the hot spot seems to be widget-checklist-add-item, is that right?
 >
 > I think so.  The checklist widgets were my first suspects, since
 > creating them is rather slow.
 >
 > > And inside that widget-create-child and widget-apply?
 >
 > I don't think those functions could be the bottleneck.  Most likely it
 > is the widget-default-create function that those functions end up
 > calling.  So yes, widget-default-create in general, and
 > widget-checklist-value-create in particular should be investigated for
 > speeding them up, but I don't have any ideas at the moment.

I focused on the format handling, since there's no need to insert the
escape formats in the buffer.  So I rearranged the 4 functions that
handle the format to avoid it and here are the figures I got, when
running:
(benchmark-run 5
   (customize-option 'bibtex-biblatex-entry-alist))

 From master, inserting either :format or :entry-format:
(130.200276352 291 3.1221133909999996)

Without inserting it:
(38.244185927000004 266 2.795578699)

| How?                 | Total elapsed time (5 repetitions) | Avg | 
Times faster |
|----------------------+------------------------------------+-------+--------------|
| inserting format     |                             130.20 | 26.04 
|            1 |
| not inserting format |                              38.24 | 7.65 
|          3.4 |

All data is without native compilation.  I'd appreciate if someone could
at least run it once with native compilation, with and without my patch.


I attach a patch with the changes, and the new profiler report, but I'm
inclined to leave it as it is if the patch gets accepted.

[-- Attachment #2: 0001-Speed-up-widget-creation-Bug-53606.patch --]
[-- Type: text/x-patch, Size: 13513 bytes --]

From a413d93c6215710c669912e3ed7d5e02857b5635 Mon Sep 17 00:00:00 2001
From: Mauro Aranda <maurooaranda@gmail.com>
Date: Sun, 17 Sep 2023 21:00:02 -0300
Subject: [PATCH] Speed up widget creation (Bug#53606)

* lisp/wid-edit.el (widget-default-create, widget-checklist-add-item)
(widget-radio-add-item, widget-editable-list-entry-create): Don't
insert format escapes into the buffer, only to delete them after.
This avoids calls to delete-char and makes widget creation about 3
times faster.
---
 lisp/wid-edit.el | 252 +++++++++++++++++++++++++----------------------
 1 file changed, 136 insertions(+), 116 deletions(-)

diff --git a/lisp/wid-edit.el b/lisp/wid-edit.el
index 74412414113..e9ad4f3855e 100644
--- a/lisp/wid-edit.el
+++ b/lisp/wid-edit.el
@@ -1670,78 +1670,85 @@ widget-default-completions
 (defun widget-default-create (widget)
   "Create WIDGET at point in the current buffer."
   (widget-specify-insert
-   (let ((from (point))
-	 button-begin button-end
-	 sample-begin sample-end
-	 doc-begin doc-end
-	 value-pos)
-     (insert (widget-get widget :format))
-     (goto-char from)
+   (let ((str (widget-get widget :format))
+         (onext 0) (next 0)
+         button-begin button-end
+         sample-begin sample-end
+         doc-begin doc-end
+         value-pos)
      ;; Parse escapes in format.
-     (while (re-search-forward "%\\(.\\)" nil t)
-       (let ((escape (char-after (match-beginning 1))))
-	 (delete-char -2)
-	 (cond ((eq escape ?%)
-		(insert ?%))
-	       ((eq escape ?\[)
-		(setq button-begin (point))
-		(insert (widget-get-indirect widget :button-prefix)))
-	       ((eq escape ?\])
-		(insert (widget-get-indirect widget :button-suffix))
-		(setq button-end (point)))
-	       ((eq escape ?\{)
-		(setq sample-begin (point)))
-	       ((eq escape ?\})
-		(setq sample-end (point)))
-	       ((eq escape ?n)
-		(when (widget-get widget :indent)
-		  (insert ?\n)
-		  (insert-char ?\s (widget-get widget :indent))))
-	       ((eq escape ?t)
-		(let ((image (widget-get widget :tag-glyph))
-		      (tag (substitute-command-keys
-			    (widget-get widget :tag))))
-		  (cond (image
-			 (widget-image-insert widget (or tag "image") image))
-			(tag
-			 (insert tag))
-			(t
-			 (princ (widget-get widget :value)
-				(current-buffer))))))
-	       ((eq escape ?d)
-		(let ((doc (widget-get widget :doc)))
-		  (when doc
-		    (setq doc-begin (point))
-		    (insert (substitute-command-keys doc))
-		    (while (eq (preceding-char) ?\n)
-		      (delete-char -1))
-		    (insert ?\n)
-		    (setq doc-end (point)))))
-	       ((eq escape ?h)
-		(widget-add-documentation-string-button widget))
-	       ((eq escape ?v)
-		(if (and button-begin (not button-end))
-		    (widget-apply widget :value-create)
-		  (setq value-pos (point))))
-	       (t
-		(widget-apply widget :format-handler escape)))))
+     (while (string-match "%\\(.\\)" str next)
+       (setq next (match-end 1))
+       ;; If we skipped some literal text, insert it.
+       (when (/= (- next onext) 2)
+         (insert (substring str onext (- next 2))))
+       (let ((escape (string-to-char (match-string 1 str))))
+         (cond ((eq escape ?%)
+                (insert ?%))
+               ((eq escape ?\[)
+                (setq button-begin (point))
+                (insert (widget-get-indirect widget :button-prefix)))
+               ((eq escape ?\])
+                (insert (widget-get-indirect widget :button-suffix))
+                (setq button-end (point)))
+               ((eq escape ?\{)
+                (setq sample-begin (point)))
+               ((eq escape ?\})
+                (setq sample-end (point)))
+               ((eq escape ?n)
+                (when (widget-get widget :indent)
+                  (insert ?\n)
+                  (insert-char ?\s (widget-get widget :indent))))
+               ((eq escape ?t)
+                (let ((image (widget-get widget :tag-glyph))
+                      (tag (substitute-command-keys
+                            (widget-get widget :tag))))
+                  (cond (image
+                         (widget-image-insert widget
+                                              (or tag "image") image))
+                        (tag
+                         (insert tag))
+                        (t
+                         (princ (widget-get widget :value)
+                                (current-buffer))))))
+               ((eq escape ?d)
+                (let ((doc (widget-get widget :doc)))
+                  (when doc
+                    (setq doc-begin (point))
+                    (insert (substitute-command-keys doc))
+                    (while (eq (preceding-char) ?\n)
+                      (delete-char -1))
+                    (insert ?\n)
+                    (setq doc-end (point)))))
+               ((eq escape ?h)
+                (widget-add-documentation-string-button widget))
+               ((eq escape ?v)
+                (if (and button-begin (not button-end))
+                    (widget-apply widget :value-create)
+                  (setq value-pos (point))))
+               (t
+                (widget-apply widget :format-handler escape))))
+       (setq onext next))
+     ;; Insert remaining literal text, if any.
+     (when (> (length str) next)
+       (insert (substring str next)))
      ;; Specify button, sample, and doc, and insert value.
      (and button-begin button-end
-	  (widget-specify-button widget button-begin button-end))
+          (widget-specify-button widget button-begin button-end))
      (and sample-begin sample-end
-	  (widget-specify-sample widget sample-begin sample-end))
+          (widget-specify-sample widget sample-begin sample-end))
      (and doc-begin doc-end
-	  (widget-specify-doc widget doc-begin doc-end))
+          (widget-specify-doc widget doc-begin doc-end))
      (when value-pos
        (goto-char value-pos)
        (widget-apply widget :value-create)))
    (let ((from (point-min-marker))
-	 (to (point-max-marker)))
+         (to (point-max-marker)))
      (set-marker-insertion-type from t)
      (set-marker-insertion-type to nil)
      (widget-put widget :from from)
-     (widget-put widget :to to)))
-  (widget-clear-undo))
+     (widget-put widget :to to))
+   (widget-clear-undo)))
 
 (defun widget-default-format-handler (_widget escape)
   (error "Unknown escape `%c'" escape))
@@ -2464,14 +2471,15 @@ widget-checklist-add-item
 	  (buttons (widget-get widget :buttons))
 	  (button-args (or (widget-get type :sibling-args)
 			   (widget-get widget :button-args)))
-	  (from (point))
+          (str (widget-get widget :entry-format))
+          (onext 0) (next 0)
 	  child button)
-     (insert (widget-get widget :entry-format))
-     (goto-char from)
      ;; Parse % escapes in format.
-     (while (re-search-forward "%\\([bv%]\\)" nil t)
-       (let ((escape (char-after (match-beginning 1))))
-	 (delete-char -2)
+     (while (string-match "%\\([bv%]\\)" str next)
+       (setq next (match-end 1))
+       (when (/= (- next onext) 2)
+         (insert (substring str onext (- next 2))))
+       (let ((escape (string-to-char (match-string 1 str))))
 	 (cond ((eq escape ?%)
 		(insert ?%))
 	       ((eq escape ?b)
@@ -2492,7 +2500,10 @@ widget-checklist-add-item
 			     (widget-create-child-value
 			      widget type (car (cdr chosen)))))))
 	       (t
-		(error "Unknown escape `%c'" escape)))))
+                (error "Unknown escape `%c'" escape))))
+       (setq onext next))
+     (when (> (length str) next)
+       (insert (substring str next)))
      ;; Update properties.
      (and button child (widget-put child :button button))
      (and button (widget-put widget :buttons (cons button buttons)))
@@ -2646,16 +2657,17 @@ widget-radio-add-item
 	  (buttons (widget-get widget :buttons))
 	  (button-args (or (widget-get type :sibling-args)
 			   (widget-get widget :button-args)))
-	  (from (point))
+          (str (widget-get widget :entry-format))
+          (onext 0) (next 0)
 	  (chosen (and (null (widget-get widget :choice))
 		       (widget-apply type :match value)))
 	  child button)
-     (insert (widget-get widget :entry-format))
-     (goto-char from)
      ;; Parse % escapes in format.
-     (while (re-search-forward "%\\([bv%]\\)" nil t)
-       (let ((escape (char-after (match-beginning 1))))
-	 (delete-char -2)
+     (while (string-match "%\\([bv%]\\)" str next)
+       (setq next (match-end 1))
+       (when (/= (- next onext) 2)
+         (insert (substring str onext (- next 2))))
+       (let ((escape (string-to-char (match-string 1 str))))
 	 (cond ((eq escape ?%)
 		(insert ?%))
 	       ((eq escape ?b)
@@ -2671,7 +2683,10 @@ widget-radio-add-item
 		(unless chosen
 		  (widget-apply child :deactivate)))
 	       (t
-		(error "Unknown escape `%c'" escape)))))
+                (error "Unknown escape `%c'" escape))))
+       (setq onext next))
+     (when (> (length str) next)
+       (insert (substring str next)))
      ;; Update properties.
      (when chosen
        (widget-put widget :choice type))
@@ -2948,51 +2963,56 @@ widget-editable-list-entry-create
   ;; Create a new entry to the list.
   (let ((type (nth 0 (widget-get widget :args)))
 	;; (widget-push-button-gui widget-editable-list-gui)
+        (str (widget-get widget :entry-format))
+        (onext 0) (next 0)
 	child delete insert)
     (widget-specify-insert
-     (save-excursion
-       (and (widget--should-indent-p)
-            (widget-get widget :indent)
-            (insert-char ?\s (widget-get widget :indent)))
-       (insert (widget-get widget :entry-format)))
-     ;; Parse % escapes in format.
-     (while (re-search-forward "%\\(.\\)" nil t)
-       (let ((escape (char-after (match-beginning 1))))
-	 (delete-char -2)
-	 (cond ((eq escape ?%)
-		(insert ?%))
-	       ((eq escape ?i)
-		(setq insert (apply 'widget-create-child-and-convert
-				    widget 'insert-button
-				    (widget-get widget :insert-button-args))))
-	       ((eq escape ?d)
-		(setq delete (apply 'widget-create-child-and-convert
-				    widget 'delete-button
-				    (widget-get widget :delete-button-args))))
-	       ((eq escape ?v)
-		(if conv
-		    (setq child (widget-create-child-value
-				 widget type value))
-		  (setq child (widget-create-child-value
-			       widget type (widget-default-get type)))))
-	       (t
-		(error "Unknown escape `%c'" escape)))))
-     (let ((buttons (widget-get widget :buttons)))
-       (if insert (push insert buttons))
-       (if delete (push delete buttons))
-       (widget-put widget :buttons buttons))
-     ;; After creating the entry, we must check if we should indent the
-     ;; following entry.  This is necessary, for example, to keep the correct
-     ;; indentation of editable lists inside group widgets.
-     (and (widget--should-indent-p t)
+     (and (widget--should-indent-p)
           (widget-get widget :indent)
-          (insert-char ?\s (widget-get widget :indent)))
-     (let ((entry-from (point-min-marker))
-	   (entry-to (point-max-marker)))
-       (set-marker-insertion-type entry-from t)
-       (set-marker-insertion-type entry-to nil)
-       (widget-put child :entry-from entry-from)
-       (widget-put child :entry-to entry-to)))
+          (insert-char ?\s (widget-get widget :indent))))
+    ;; Parse % escapes in format.
+    (while (string-match "%\\(.\\)" str next)
+      (setq next (match-end 1))
+      (when (/= (- next onext) 2)
+        (insert (substring str onext (- next 2))))
+      (let ((escape (string-to-char (match-string 1 str))))
+        (cond ((eq escape ?%)
+               (insert ?%))
+              ((eq escape ?i)
+               (setq insert (apply 'widget-create-child-and-convert
+                                   widget 'insert-button
+                                   (widget-get widget :insert-button-args))))
+              ((eq escape ?d)
+               (setq delete (apply 'widget-create-child-and-convert
+                                   widget 'delete-button
+                                   (widget-get widget :delete-button-args))))
+              ((eq escape ?v)
+               (if conv
+                   (setq child (widget-create-child-value
+                                widget type value))
+                 (setq child (widget-create-child-value
+                              widget type (widget-default-get type)))))
+              (t
+               (error "Unknown escape `%c'" escape))))
+      (setq onext next))
+    (when (> (length str) next)
+      (insert (substring str next)))
+    (let ((buttons (widget-get widget :buttons)))
+      (if insert (push insert buttons))
+      (if delete (push delete buttons))
+      (widget-put widget :buttons buttons))
+    ;; After creating the entry, we must check if we should indent the
+    ;; following entry.  This is necessary, for example, to keep the correct
+    ;; indentation of editable lists inside group widgets.
+    (and (widget--should-indent-p t)
+         (widget-get widget :indent)
+         (insert-char ?\s (widget-get widget :indent)))
+    (let ((entry-from (point-min-marker))
+          (entry-to (point-max-marker)))
+      (set-marker-insertion-type entry-from t)
+      (set-marker-insertion-type entry-to nil)
+      (widget-put child :entry-from entry-from)
+      (widget-put child :entry-to entry-to))
     (if insert (widget-put insert :widget child))
     (if delete (widget-put delete :widget child))
     child))
-- 
2.34.1


[-- Attachment #3: profiler-data-no-inserting --]
[-- Type: text/plain, Size: 39601 bytes --]


[profiler-profile "28.1" cpu #s(hash-table size 145 test equal rehash-size 1.5 rehash-threshold 0.8125 data ([read eval-buffer load-with-code-conversion require byte-code customize-option progn progn eval elisp--eval-last-sexp eval-last-sexp funcall-interactively call-interactively command-execute nil nil] 4 [macroexp--all-forms "#<compiled -0x60853496ded3bb1>" macroexp--expand-all macroexp--all-forms "#<compiled -0x60853496ded3bb1>" macroexp--expand-all macroexpand--all-toplevel internal-macroexpand-for-load eval-buffer load-with-code-conversion require byte-code customize-option progn progn eval] 4 [read customize-option progn progn eval elisp--eval-last-sexp eval-last-sexp funcall-interactively call-interactively command-execute nil nil nil nil nil nil] 8 [widget-get widget-value-convert-widget widget-convert mapcar widget-types-convert-widget widget-convert mapcar widget-types-convert-widget widget-convert mapcar widget-types-convert-widget widget-convert mapcar widget-types-convert-widget widget-convert widget-type-match] 4 [make-overlay widget-specify-button widget-default-create widget-apply widget-create-child-and-convert custom-variable-value-create widget-apply widget-default-create widget-apply widget-create "#<compiled 0x200e28cd8396fcf>" mapcar custom-buffer-create-internal custom-buffer-create customize-option progn] 4 [widget-default-create widget-apply widget-create-child-value widget-checklist-add-item widget-checklist-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-editable-list-entry-create widget-editable-list-value-create] 468 [insert-file-contents insert-file-contents-literally image-type-from-file-header image-type create-image apply find-image widget-image-find widget-toggle-value-create widget-apply widget-default-create widget-apply widget-create-child-and-convert apply widget-checklist-add-item widget-checklist-value-create] 24 [widget-get-indirect widget-default-create widget-apply widget-create-child-and-convert apply widget-editable-list-entry-create widget-editable-list-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create widget-apply widget-default-create widget-apply widget-create-child-value] 4 [expand-file-name image-search-load-path find-image widget-image-find widget-toggle-value-create widget-apply widget-default-create widget-apply widget-create-child-and-convert apply widget-checklist-add-item widget-checklist-value-create widget-apply widget-default-create widget-apply widget-create-child-value] 16 [buffer-disable-undo widget-clear-undo widget-default-create widget-apply widget-create-child-and-convert apply widget-checklist-add-item widget-checklist-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create widget-apply widget-default-create widget-apply] 4 [widget-get widget-create-child-value widget-checklist-add-item widget-checklist-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-editable-list-entry-create widget-editable-list-value-create widget-apply] 8 [widget-default-create widget-apply widget-create-child-value widget-editable-list-entry-create widget-editable-list-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-editable-list-entry-create widget-editable-list-value-create] 168 [widget-default-create widget-apply widget-create-child-value widget-choice-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-checklist-add-item widget-checklist-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create widget-apply] 136 [widget-field-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-editable-list-entry-create widget-editable-list-value-create widget-apply widget-default-create widget-apply widget-create-child-value] 316 [widget-default-create widget-apply widget-create-child widget-checklist-add-item widget-checklist-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-editable-list-entry-create widget-editable-list-value-create] 1371 [widget-group-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-editable-list-entry-create widget-editable-list-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create widget-apply widget-default-create widget-apply widget-create-child-value] 4 [insert-char widget-editable-list-entry-create widget-editable-list-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-editable-list-entry-create widget-editable-list-value-create widget-apply widget-default-create] 176 [insert-image widget-image-insert widget-toggle-value-create widget-apply widget-default-create widget-apply widget-create-child-and-convert apply widget-checklist-add-item widget-checklist-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create widget-apply] 460 [insert-char widget-group-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-editable-list-entry-create widget-editable-list-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create widget-apply widget-default-create widget-apply] 656 [widget-push-button-value-create widget-apply widget-default-create widget-apply widget-create-child-and-convert apply widget-editable-list-entry-create widget-editable-list-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create widget-apply widget-default-create widget-apply] 308 [widget-checklist-add-item widget-checklist-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-editable-list-entry-create widget-editable-list-value-create widget-apply widget-default-create widget-apply] 424 [add-text-properties insert-image widget-image-insert widget-toggle-value-create widget-apply widget-default-create widget-apply widget-create-child-and-convert apply widget-checklist-add-item widget-checklist-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create] 4 [string-match widget-default-create widget-apply widget-create-child-value widget-checklist-add-item widget-checklist-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-editable-list-entry-create] 4 [image-search-load-path find-image widget-image-find widget-toggle-value-create widget-apply widget-default-create widget-apply widget-create-child-and-convert apply widget-checklist-add-item widget-checklist-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create] 4 [kill-buffer "#<compiled -0x1c8af3864116699f>" substitute-command-keys widget-default-create widget-apply widget-create-child-value widget-group-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-editable-list-entry-create widget-editable-list-value-create widget-apply widget-default-create widget-apply] 4 [match-string widget-checklist-add-item widget-checklist-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-editable-list-entry-create widget-editable-list-value-create widget-apply widget-default-create] 4 [widget-default-create widget-apply widget-create-child-and-convert apply widget-checklist-add-item widget-checklist-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-editable-list-entry-create] 4 [substitute-command-keys widget-push-button-value-create widget-apply widget-default-create widget-apply widget-create-child-and-convert apply widget-editable-list-entry-create widget-editable-list-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create widget-apply widget-default-create] 8 [widget-editable-list-entry-create widget-editable-list-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-editable-list-entry-create widget-editable-list-value-create widget-apply widget-default-create widget-apply] 340 [widget-checklist-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-editable-list-entry-create widget-editable-list-value-create widget-apply widget-default-create widget-apply widget-create-child-value] 4 [widget-default-create widget-apply widget-create-child-value widget-choice-value-create widget-apply widget-default-create widget-apply widget-create-child widget-checklist-add-item widget-checklist-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create widget-apply] 376 [undo-auto--undoable-change widget-default-create widget-apply widget-create-child-value widget-choice-value-create widget-apply widget-default-create widget-apply widget-create-child widget-checklist-add-item widget-checklist-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create] 4 [princ widget-default-create widget-apply widget-create-child-value widget-choice-value-create widget-apply widget-default-create widget-apply widget-create-child widget-checklist-add-item widget-checklist-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create] 324 [kill-buffer "#<compiled -0x1c8af3841881059f>" image-type-from-file-header image-type create-image apply find-image widget-image-find widget-toggle-value-create widget-apply widget-default-create widget-apply widget-create-child-and-convert apply widget-checklist-add-item widget-checklist-value-create] 4 [featurep widget-image-insert widget-toggle-value-create widget-apply widget-default-create widget-apply widget-create-child-and-convert apply widget-checklist-add-item widget-checklist-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create widget-apply] 4 [widget-default-create widget-apply widget-create-child-value widget-group-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-editable-list-entry-create widget-editable-list-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create widget-apply] 308 [widget-default-create widget-apply widget-create-child-and-convert apply widget-editable-list-entry-create widget-editable-list-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-editable-list-entry-create] 12 [looking-at image-type-from-buffer image-type-from-file-header image-type create-image apply find-image widget-image-find widget-toggle-value-create widget-apply widget-default-create widget-apply widget-create-child-and-convert apply widget-checklist-add-item widget-checklist-value-create] 4 [substitute-command-keys widget-push-button-value-create widget-apply widget-default-create widget-apply widget-create-child-and-convert apply widget-editable-list-format-handler widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create widget-apply widget-default-create widget-apply] 4 [undo-auto--boundary-ensure-timer undo-auto--undoable-change widget-editable-list-entry-create widget-editable-list-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-editable-list-entry-create widget-editable-list-value-create widget-apply] 4 [widget-get widget-specify-inactive widget-default-deactivate widget-apply widget-checklist-add-item widget-checklist-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-editable-list-entry-create] 4 [princ widget-default-create widget-apply widget-create-child-value widget-choice-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-checklist-add-item widget-checklist-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create] 80 [widget-specify-button widget-default-create widget-apply widget-create-child-and-convert apply widget-checklist-add-item widget-checklist-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create widget-apply widget-default-create widget-apply widget-create-child-value] 4 [file-readable-p image-type-from-file-header image-type create-image apply find-image widget-image-find widget-toggle-value-create widget-apply widget-default-create widget-apply widget-create-child-and-convert apply widget-checklist-add-item widget-checklist-value-create widget-apply] 32 [append insert-file-contents-literally image-type-from-file-header image-type create-image apply find-image widget-image-find widget-toggle-value-create widget-apply widget-default-create widget-apply widget-create-child-and-convert apply widget-checklist-add-item widget-checklist-value-create] 4 [get-buffer-create generate-new-buffer image-type-from-file-header image-type create-image apply find-image widget-image-find widget-toggle-value-create widget-apply widget-default-create widget-apply widget-create-child-and-convert apply widget-checklist-add-item widget-checklist-value-create] 4 [match-string widget-default-create widget-apply widget-create-child-value widget-group-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-editable-list-entry-create widget-editable-list-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create] 4 [widget-apply widget-copy widget-create-child-value widget-group-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-editable-list-entry-create widget-editable-list-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create widget-apply] 4 [widget-default-create widget-apply widget-create-child-value widget-group-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-editable-list-entry-create widget-editable-list-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-type-value-create widget-apply] 76 [string-match widget-default-create widget-apply widget-create-child widget-checklist-add-item widget-checklist-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-editable-list-entry-create] 8 [generate-new-buffer substitute-command-keys widget-default-create widget-apply widget-create-child widget-checklist-add-item widget-checklist-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create widget-apply widget-default-create widget-apply widget-create-child-value] 4 [plist-get coding-system-type find-new-buffer-file-coding-system after-insert-file-set-coding insert-file-contents insert-file-contents-literally image-type-from-file-header image-type create-image apply find-image widget-image-find widget-toggle-value-create widget-apply widget-default-create widget-apply] 4 [insert-char widget-editable-list-format-handler widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-editable-list-entry-create widget-editable-list-value-create widget-apply widget-default-create widget-apply] 8 [framep-on-display display-graphic-p widget-image-find widget-toggle-value-create widget-apply widget-default-create widget-apply widget-create-child-and-convert apply widget-checklist-add-item widget-checklist-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create] 4 [file-readable-p image-search-load-path find-image widget-image-find widget-toggle-value-create widget-apply widget-default-create widget-apply widget-create-child-and-convert apply widget-checklist-add-item widget-checklist-value-create widget-apply widget-default-create widget-apply widget-create-child-value] 36 [widget-apply widget-specify-button widget-default-create widget-apply widget-create-child widget-checklist-add-item widget-checklist-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create widget-apply widget-default-create widget-apply widget-create-child-value] 8 [widget-image-find widget-toggle-value-create widget-apply widget-default-create widget-apply widget-create-child-and-convert apply widget-checklist-add-item widget-checklist-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create widget-apply widget-default-create] 4 [kill-buffer "#<compiled -0x1c8af385edddb39f>" substitute-command-keys widget-default-create widget-apply widget-create-child widget-checklist-add-item widget-checklist-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create widget-apply widget-default-create widget-apply] 8 [buffer-enable-undo widget-clear-undo widget-default-create widget-apply widget-create-child-value widget-group-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-editable-list-entry-create widget-editable-list-value-create widget-apply widget-default-create widget-apply widget-create-child-value] 4 [substitute-command-keys widget-default-create widget-apply widget-create-child-value widget-choice-value-create widget-apply widget-default-create widget-apply widget-create-child widget-checklist-add-item widget-checklist-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create] 4 ["#<compiled -0x189981ea312f002d>" widget-apply widget-create-child-value widget-checklist-add-item widget-checklist-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-editable-list-entry-create widget-editable-list-value-create] 4 [string-match widget-default-create widget-apply widget-create-child-and-convert apply widget-editable-list-entry-create widget-editable-list-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-type-value-create widget-apply widget-default-create widget-apply widget-create-child-and-convert] 4 [widget-field-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-choice-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-checklist-add-item widget-checklist-value-create widget-apply widget-default-create widget-apply widget-create-child-value] 60 [insert-char widget-group-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-editable-list-entry-create widget-editable-list-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-type-value-create widget-apply widget-default-create widget-apply] 20 [widget-apply widget-copy mapcar widget-types-copy widget-apply widget-copy mapcar widget-types-copy widget-apply widget-copy mapcar widget-types-copy widget-apply widget-copy widget-create-child-value widget-editable-list-entry-create] 8 [make-overlay widget-specify-inactive widget-default-deactivate widget-apply widget-checklist-add-item widget-checklist-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-editable-list-entry-create] 4 [widget-put widget-specify-button widget-default-create widget-apply widget-create-child-and-convert apply widget-checklist-add-item widget-checklist-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create widget-apply widget-default-create widget-apply] 4 [plist-get widget-convert apply widget-create-child-and-convert apply widget-editable-list-entry-create widget-editable-list-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create widget-apply widget-default-create widget-apply widget-create-child-value] 4 [string-match widget-sexp-value-to-internal "#<compiled 0x6b91569ed400009>" widget-apply widget-create-child-value widget-choice-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-checklist-add-item widget-checklist-value-create widget-apply widget-default-create widget-apply widget-create-child-value] 4 [window-normalize-window unrecord-window-buffer replace-buffer-in-windows kill-buffer "#<compiled -0x1c8af383ee9b4b9f>" image-type-from-file-header image-type create-image apply find-image widget-image-find widget-toggle-value-create widget-apply widget-default-create widget-apply widget-create-child-and-convert] 4 [widget-apply widget-match-inline widget-checklist-match-inline widget-apply widget-match-inline widget-group-match-inline widget-group-match widget-apply widget-match-inline widget-editable-list-match-inline widget-editable-list-match widget-apply widget-match-inline widget-group-match-inline widget-group-match widget-apply] 4 ["#<compiled -0x189981ea312f002d>" widget-apply widget-value widget-toggle-value-create widget-apply widget-default-create widget-apply widget-create-child-and-convert apply widget-checklist-add-item widget-checklist-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create] 4 [widget-push-button-value-create widget-apply widget-default-create widget-apply widget-create-child-and-convert apply widget-editable-list-format-handler widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create widget-apply widget-default-create widget-apply widget-create-child-value] 8 [window-list-1 replace-buffer-in-windows kill-buffer "#<compiled -0x1c8af383bd92779f>" image-type-from-file-header image-type create-image apply find-image widget-image-find widget-toggle-value-create widget-apply widget-default-create widget-apply widget-create-child-and-convert apply] 4 [window-width image-compute-scaling-factor create-image apply find-image widget-image-find widget-toggle-value-create widget-apply widget-default-create widget-apply widget-create-child-and-convert apply widget-checklist-add-item widget-checklist-value-create widget-apply widget-default-create] 4 [format-decode insert-file-contents insert-file-contents-literally image-type-from-file-header image-type create-image apply find-image widget-image-find widget-toggle-value-create widget-apply widget-default-create widget-apply widget-create-child-and-convert apply widget-checklist-add-item] 4 [generate-new-buffer pp-to-string widget-sexp-value-to-internal "#<compiled 0x6b91569ed400009>" widget-apply widget-create-child-value widget-choice-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-checklist-add-item widget-checklist-value-create widget-apply widget-default-create widget-apply] 4 [widget-get widget-create-child-and-convert apply widget-checklist-add-item widget-checklist-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-editable-list-entry-create widget-editable-list-value-create] 4 [substitute-command-keys widget-default-create widget-apply widget-create-child widget-checklist-add-item widget-checklist-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-editable-list-entry-create] 8 [widget-apply widget-create-child-value widget-choice-value-create widget-apply widget-default-create widget-apply widget-create-child widget-checklist-add-item widget-checklist-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create widget-apply widget-default-create] 4 [widget-choice-inline-bubbles-p widget-apply widget-inline-p widget-choice-value-create widget-apply widget-default-create widget-apply widget-create-child widget-checklist-add-item widget-checklist-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create widget-apply] 4 [widget-get widget-get-indirect widget-default-create widget-apply widget-create-child-and-convert apply widget-checklist-add-item widget-checklist-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create widget-apply widget-default-create widget-apply] 4 [widget-toggle-value-create widget-apply widget-default-create widget-apply widget-create-child-and-convert apply widget-checklist-add-item widget-checklist-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create widget-apply widget-default-create widget-apply] 4 [widget--should-indent-p widget-checklist-add-item widget-checklist-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-editable-list-entry-create widget-editable-list-value-create widget-apply widget-default-create] 8 [widget-get widget-default-button-face-get widget-apply widget-default-button-face-get widget-apply widget-specify-button widget-default-create widget-apply widget-create-child widget-checklist-add-item widget-checklist-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create] 4 [widget-apply widget-default-mouse-face-get widget-apply widget-default-mouse-face-get widget-apply widget-specify-button widget-default-create widget-apply widget-create-child widget-checklist-add-item widget-checklist-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create] 4 [get-buffer-create generate-new-buffer substitute-command-keys widget-toggle-value-create widget-apply widget-default-create widget-apply widget-create-child-and-convert apply widget-checklist-add-item widget-checklist-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create] 4 [widget-editable-list-entry-create widget-editable-list-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-type-value-create widget-apply widget-default-create widget-apply widget-create-child-and-convert custom-variable-value-create widget-apply widget-default-create widget-apply widget-create] 4 [append widget-toggle-value-create widget-apply widget-default-create widget-apply widget-create-child-and-convert apply widget-checklist-add-item widget-checklist-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create widget-apply widget-default-create] 4 [set-window-prev-buffers unrecord-window-buffer replace-buffer-in-windows kill-buffer "#<compiled -0x1c8af38232c5e59f>" substitute-command-keys widget-toggle-value-create widget-apply widget-default-create widget-apply widget-create-child-and-convert apply widget-checklist-add-item widget-checklist-value-create widget-apply widget-default-create] 4 [widget-push-button-value-create widget-apply widget-default-create widget-apply widget-create-child-and-convert apply widget-editable-list-entry-create widget-editable-list-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-type-value-create widget-apply widget-default-create widget-apply] 4 [string-match widget-checklist-add-item widget-checklist-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-editable-list-entry-create widget-editable-list-value-create widget-apply widget-default-create] 4 [widget-create-child-value widget-group-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-editable-list-entry-create widget-editable-list-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create widget-apply widget-default-create widget-apply] 4 [generate-new-buffer-name generate-new-buffer substitute-command-keys widget-default-create widget-apply widget-create-child widget-checklist-add-item widget-checklist-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create widget-apply widget-default-create widget-apply] 4 [widget-get-indirect widget-default-create widget-apply widget-create-child widget-checklist-add-item widget-checklist-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-editable-list-entry-create] 4 [assq-delete-all unrecord-window-buffer replace-buffer-in-windows kill-buffer "#<compiled -0x1c8af3b0cfaee19f>" substitute-command-keys widget-push-button-value-create widget-apply widget-default-create widget-apply widget-create-child-and-convert apply widget-editable-list-entry-create widget-editable-list-value-create widget-apply widget-default-create] 4 [append widget-editable-list-match-inline widget-editable-list-match widget-apply widget-match-inline widget-group-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-editable-list-entry-create widget-editable-list-value-create widget-apply widget-default-create widget-apply widget-create-child-value] 4 [replace-buffer-in-windows kill-buffer "#<compiled -0x1c8af38369e8019f>" substitute-command-keys widget-default-create widget-apply widget-create-child widget-checklist-add-item widget-checklist-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create widget-apply widget-default-create] 4 [string-match widget-default-create widget-apply widget-create-child-and-convert apply widget-checklist-add-item widget-checklist-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create widget-apply widget-default-create widget-apply widget-create-child-value] 4 [widget-get widget-default-mouse-face-get widget-apply widget-default-mouse-face-get widget-apply widget-default-mouse-face-get widget-apply widget-default-mouse-face-get widget-apply widget-default-mouse-face-get widget-apply widget-default-mouse-face-get widget-apply widget-default-mouse-face-get widget-apply widget-default-mouse-face-get] 4 [widget-group-match-inline widget-group-match widget-apply widget-match-inline widget-editable-list-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-editable-list-entry-create widget-editable-list-value-create] 4 [substitute-command-keys widget-toggle-value-create widget-apply widget-default-create widget-apply widget-create-child-and-convert apply widget-checklist-add-item widget-checklist-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create widget-apply widget-default-create] 4 [widget-get widget-create-child widget-checklist-add-item widget-checklist-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-editable-list-entry-create widget-editable-list-value-create widget-apply] 4 [replace-buffer-in-windows kill-buffer "#<compiled -0x1c8af3b035efeb9f>" substitute-command-keys widget-toggle-value-create widget-apply widget-default-create widget-apply widget-create-child-and-convert apply widget-checklist-add-item widget-checklist-value-create widget-apply widget-default-create widget-apply widget-create-child-value] 4 [string-to-char widget-default-create widget-apply widget-create-child-and-convert apply widget-checklist-add-item widget-checklist-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create widget-apply widget-default-create widget-apply widget-create-child-value] 4 [buffer-string substitute-command-keys widget-default-create widget-apply widget-create-child widget-checklist-add-item widget-checklist-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create widget-apply widget-default-create widget-apply widget-create-child-value] 4 [widget-get widget-default-create widget-apply widget-create-child-value widget-checklist-add-item widget-checklist-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-editable-list-entry-create] 4 [widget-match-inline widget-checklist-match-inline widget-apply widget-match-inline widget-group-match-inline widget-group-match widget-apply widget-match-inline widget-editable-list-match-inline widget-editable-list-match widget-apply widget-match-inline widget-group-match-inline widget-group-match widget-apply widget-match-inline] 4 [replace-buffer-in-windows kill-buffer "#<compiled -0x1c8af385ec61d99f>" substitute-command-keys widget-default-create widget-apply widget-create-child-value widget-checklist-add-item widget-checklist-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create widget-apply widget-default-create] 4 [widget-default-create widget-apply widget-create-child-value widget-editable-list-entry-create widget-editable-list-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-type-value-create widget-apply widget-default-create widget-apply widget-create-child-and-convert custom-variable-value-create widget-apply] 4 [widget-get widget-choice-inline-bubbles-p widget-apply widget-inline-p widget-choice-value-create widget-apply widget-default-create widget-apply widget-create-child widget-checklist-add-item widget-checklist-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create] 8 [undo-auto--undoable-change insert-char widget-group-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-editable-list-entry-create widget-editable-list-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-group-value-create widget-apply widget-default-create] 4 [widget-apply widget-choice-match widget-apply widget-match-inline widget-checklist-match-inline widget-apply widget-match-inline widget-group-value-create widget-apply widget-default-create widget-apply widget-create-child-value widget-editable-list-entry-create widget-editable-list-value-create widget-apply widget-default-create] 4 [custom-magic-value-create widget-apply widget-default-create widget-apply widget-create-child-and-convert custom-variable-value-create widget-apply widget-default-create widget-apply widget-create "#<compiled 0x200e28cd8396fcf>" mapcar custom-buffer-create-internal custom-buffer-create customize-option progn] 4 [widget-apply "#<compiled -0xf214aae4a43c62d>" mapcar widget-editable-list-value-get widget-apply widget-value widget-default-value-inline widget-apply "#<compiled -0xf214aae4a43c62d>" mapcar widget-editable-list-value-get widget-apply widget-value widget-default-value-inline widget-apply "#<compiled -0xf214aae4a43c62d>"] 12 [widget-get widget-default-value-inline widget-apply "#<compiled -0xf214aae4a43c62d>" mapcar widget-editable-list-value-get widget-apply widget-value widget-default-value-inline widget-apply "#<compiled -0xf214aae4a43c62d>" mapcar widget-editable-list-value-get widget-apply widget-value widget-default-value-inline] 4 [mapcar widget-editable-list-value-get widget-apply widget-value widget-default-value-inline widget-apply "#<compiled -0xf214aae4a43c62d>" mapcar widget-editable-list-value-get widget-apply widget-value widget-default-value-inline widget-apply "#<compiled -0xf214aae4a43c62d>" mapcar widget-editable-list-value-get] 4 ["#<compiled 0x1c52983bfc51a7>" mapatoms custom-add-parent-links custom-variable-value-create widget-apply widget-default-create widget-apply widget-create "#<compiled 0x200e28cd8396fcf>" mapcar custom-buffer-create-internal custom-buffer-create customize-option progn progn eval] 4 [widget-default-delete widget-apply widget-default-value-set widget-apply widget-value-set custom-magic-reset mapc custom-buffer-create-internal custom-buffer-create customize-option progn progn eval elisp--eval-last-sexp eval-last-sexp funcall-interactively] 4 [widget-setup custom-buffer-create-internal custom-buffer-create customize-option progn progn eval elisp--eval-last-sexp eval-last-sexp funcall-interactively call-interactively command-execute nil nil nil nil] 364 [Automatic\ GC nil] 541)) (25864 11653 301113 472000) nil]

[-- Attachment #4: profiler-results-no-inserting --]
[-- Type: text/plain, Size: 29129 bytes --]

        6967  92% - command-execute
        6967  92%  - call-interactively
        6967  92%   - funcall-interactively
        6967  92%    - eval-last-sexp
        6967  92%     - elisp--eval-last-sexp
        6967  92%      - eval
        6967  92%       - progn
        6967  92%        - progn
        6967  92%         - customize-option
        6951  92%          - custom-buffer-create
        6951  92%           - custom-buffer-create-internal
        6583  87%            - mapcar
        6583  87%             - #<compiled 0x200e28cd8396fcf>
        6583  87%              - widget-create
        6583  87%               - widget-apply
        6583  87%                - widget-default-create
        6583  87%                 - widget-apply
        6583  87%                  - custom-variable-value-create
        6579  87%                   - widget-create-child-and-convert
        6579  87%                    - widget-apply
        6579  87%                     - widget-default-create
        6575  87%                      - widget-apply
        6571  87%                       - widget-type-value-create
        6571  87%                        - widget-create-child-value
        6571  87%                         - widget-apply
        6571  87%                          - widget-default-create
        6571  87%                           - widget-apply
        6571  87%                            - widget-editable-list-value-create
        6571  87%                             - widget-editable-list-entry-create
        6559  87%                              - widget-create-child-value
        6559  87%                               - widget-apply
        6559  87%                                - widget-default-create
        6555  87%                                 - widget-apply
        6555  87%                                  - widget-group-value-create
        6535  86%                                   - widget-create-child-value
        6535  86%                                    - widget-apply
        6535  86%                                     - widget-default-create
        6459  85%                                      - widget-apply
        6459  85%                                       - widget-editable-list-value-create
        6459  85%                                        - widget-editable-list-entry-create
        6459  85%                                         - widget-create-child-value
        6451  85%                                          - widget-apply
        6451  85%                                           - widget-default-create
        6451  85%                                            - widget-apply
        6451  85%                                             - widget-group-value-create
        6439  85%                                              - widget-create-child-value
        6435  85%                                               - widget-apply
        6435  85%                                                - widget-default-create
        6115  81%                                                 - widget-apply
        4075  54%                                                  - widget-checklist-value-create
        4071  54%                                                   - widget-checklist-add-item
        2163  28%                                                    - widget-create-child
        2159  28%                                                     - widget-apply
        2159  28%                                                      - widget-default-create
         724   9%                                                       - widget-apply
         724   9%                                                        - widget-choice-value-create
         712   9%                                                         - widget-create-child-value
         712   9%                                                          - widget-apply
         708   9%                                                           - widget-default-create
         324   4%                                                              princ
           4   0%                                                              undo-auto--undoable-change
           4   0%                                                              substitute-command-keys
          12   0%                                                         - widget-inline-p
          12   0%                                                          - widget-apply
          12   0%                                                           - widget-choice-inline-bubbles-p
           8   0%                                                              widget-get
          32   0%                                                       - substitute-command-keys
          12   0%                                                        - #<compiled -0x1c8af385edddb39f>
          12   0%                                                         - kill-buffer
           4   0%                                                            replace-buffer-in-windows
           8   0%                                                        - generate-new-buffer
           4   0%                                                           generate-new-buffer-name
           4   0%                                                          buffer-string
          20   0%                                                       - widget-specify-button
          20   0%                                                        - widget-apply
           8   0%                                                         - widget-default-mouse-face-get
           8   0%                                                          - widget-apply
           8   0%                                                           - widget-default-mouse-face-get
           8   0%                                                            - widget-apply
           4   0%                                                             - widget-default-mouse-face-get
           4   0%                                                              - widget-apply
           4   0%                                                               - widget-default-mouse-face-get
           4   0%                                                                - widget-apply
           4   0%                                                                 - widget-default-mouse-face-get
           4   0%                                                                  - widget-apply
           4   0%                                                                   - widget-default-mouse-face-get
           4   0%                                                                    - widget-apply
           4   0%                                                                     - widget-default-mouse-face-get
           4   0%                                                                      - widget-apply
           4   0%                                                                       - widget-default-mouse-face-get
           4   0%                                                                          widget-get
           4   0%                                                         - widget-default-button-face-get
           4   0%                                                          - widget-apply
           4   0%                                                           - widget-default-button-face-get
           4   0%                                                              widget-get
           8   0%                                                         string-match
           4   0%                                                         widget-get-indirect
           4   0%                                                       widget-get
         776  10%                                                    - widget-create-child-value
         768  10%                                                     - widget-apply
         764  10%                                                      - widget-default-create
         284   3%                                                       - widget-apply
         284   3%                                                        - widget-choice-value-create
         284   3%                                                         - widget-create-child-value
         284   3%                                                          - widget-apply
         276   3%                                                           - widget-default-create
          80   1%                                                              princ
          60   0%                                                            - widget-apply
          60   0%                                                               widget-field-value-create
           8   0%                                                           - #<compiled 0x6b91569ed400009>
           8   0%                                                            - widget-sexp-value-to-internal
           4   0%                                                               string-match
           4   0%                                                             - pp-to-string
           4   0%                                                                generate-new-buffer
           4   0%                                                         string-match
           4   0%                                                         widget-get
           4   0%                                                       - substitute-command-keys
           4   0%                                                        - #<compiled -0x1c8af385ec61d99f>
           4   0%                                                         - kill-buffer
           4   0%                                                            replace-buffer-in-windows
           4   0%                                                        #<compiled -0x189981ea312f002d>
           8   0%                                                       widget-get
         684   9%                                                    - apply
         684   9%                                                     - widget-create-child-and-convert
         680   9%                                                      - widget-apply
         680   9%                                                       - widget-default-create
         652   8%                                                        - widget-apply
         652   8%                                                         - widget-toggle-value-create
         468   6%                                                          - widget-image-insert
         464   6%                                                           - insert-image
           4   0%                                                              add-text-properties
           4   0%                                                             featurep
         156   2%                                                          - widget-image-find
         148   1%                                                           - find-image
          92   1%                                                            - apply
          92   1%                                                             - create-image
          88   1%                                                              - image-type
          88   1%                                                               - image-type-from-file-header
          36   0%                                                                - insert-file-contents-literally
          32   0%                                                                 - insert-file-contents
           4   0%                                                                  - after-insert-file-set-coding
           4   0%                                                                   - find-new-buffer-file-coding-system
           4   0%                                                                    - coding-system-type
           4   0%                                                                       plist-get
           4   0%                                                                    format-decode
           4   0%                                                                   append
          32   0%                                                                  file-readable-p
          12   0%                                                                - #<compiled -0x1c8af3841881059f>
          12   0%                                                                 - kill-buffer
           8   0%                                                                  - replace-buffer-in-windows
           4   0%                                                                   - unrecord-window-buffer
           4   0%                                                                      window-normalize-window
           4   0%                                                                     window-list-1
           4   0%                                                                - image-type-from-buffer
           4   0%                                                                   looking-at
           4   0%                                                                - generate-new-buffer
           4   0%                                                                   get-buffer-create
           4   0%                                                              - image-compute-scaling-factor
           4   0%                                                                 window-width
          56   0%                                                            - image-search-load-path
          36   0%                                                               file-readable-p
          16   0%                                                               expand-file-name
           4   0%                                                           - display-graphic-p
           4   0%                                                              framep-on-display
          16   0%                                                          - substitute-command-keys
           8   0%                                                           - #<compiled -0x1c8af38232c5e59f>
           8   0%                                                            - kill-buffer
           8   0%                                                             - replace-buffer-in-windows
           4   0%                                                              - unrecord-window-buffer
           4   0%                                                                 set-window-prev-buffers
           4   0%                                                           - generate-new-buffer
           4   0%                                                              get-buffer-create
           4   0%                                                          - widget-value
           4   0%                                                           - widget-apply
           4   0%                                                              #<compiled -0x189981ea312f002d>
           4   0%                                                            append
           8   0%                                                        - widget-specify-button
           4   0%                                                           widget-put
           4   0%                                                        - widget-clear-undo
           4   0%                                                           buffer-disable-undo
           4   0%                                                        - widget-get-indirect
           4   0%                                                           widget-get
           4   0%                                                          string-match
           4   0%                                                          string-to-char
           4   0%                                                        widget-get
           8   0%                                                    - widget-apply
           8   0%                                                     - widget-default-deactivate
           8   0%                                                      - widget-specify-inactive
           4   0%                                                         widget-get
           4   0%                                                         make-overlay
           8   0%                                                      widget--should-indent-p
           4   0%                                                      match-string
           4   0%                                                      string-match
        1704  22%                                                  - widget-editable-list-value-create
        1692  22%                                                   - widget-editable-list-entry-create
         832  11%                                                    - widget-create-child-value
         832  11%                                                     - widget-apply
         832  11%                                                      - widget-default-create
         664   8%                                                       - widget-apply
         664   8%                                                        - widget-group-value-create
         656   8%                                                           insert-char
           4   0%                                                           widget-create-child-value
         340   4%                                                    - apply
         340   4%                                                     - widget-create-child-and-convert
         336   4%                                                      - widget-apply
         336   4%                                                       - widget-default-create
         320   4%                                                        - widget-apply
         320   4%                                                         - widget-push-button-value-create
          12   0%                                                          - substitute-command-keys
           4   0%                                                           - #<compiled -0x1c8af3b0cfaee19f>
           4   0%                                                            - kill-buffer
           4   0%                                                             - replace-buffer-in-windows
           4   0%                                                              - unrecord-window-buffer
           4   0%                                                                 assq-delete-all
           4   0%                                                          widget-get-indirect
           4   0%                                                      - apply
           4   0%                                                       - widget-convert
           4   0%                                                          plist-get
         176   2%                                                      insert-char
           4   0%                                                    - undo-auto--undoable-change
           4   0%                                                       undo-auto--boundary-ensure-timer
          12   0%                                                   - widget-match-inline
          12   0%                                                    - widget-apply
          12   0%                                                     - widget-group-match
          12   0%                                                      - widget-group-match-inline
           8   0%                                                       - widget-match-inline
           8   0%                                                        - widget-apply
           8   0%                                                         - widget-editable-list-match
           8   0%                                                          - widget-editable-list-match-inline
           8   0%                                                           - widget-match-inline
           8   0%                                                            - widget-apply
           8   0%                                                             - widget-group-match
           8   0%                                                              - widget-group-match-inline
           8   0%                                                               - widget-match-inline
           8   0%                                                                - widget-apply
           8   0%                                                                 - widget-checklist-match-inline
           8   0%                                                                  - widget-match-inline
           4   0%                                                                     widget-apply
         316   4%                                                    widget-field-value-create
          20   0%                                                  - widget-editable-list-format-handler
          12   0%                                                   - apply
          12   0%                                                    - widget-create-child-and-convert
          12   0%                                                     - widget-apply
          12   0%                                                      - widget-default-create
          12   0%                                                       - widget-apply
          12   0%                                                        - widget-push-button-value-create
           4   0%                                                           substitute-command-keys
           8   0%                                                     insert-char
           4   0%                                                 - substitute-command-keys
           4   0%                                                  - #<compiled -0x1c8af3864116699f>
           4   0%                                                     kill-buffer
           4   0%                                                   match-string
           4   0%                                                 - widget-clear-undo
           4   0%                                                    buffer-enable-undo
           4   0%                                               - widget-copy
           4   0%                                                  widget-apply
           8   0%                                              - widget-match-inline
           8   0%                                               - widget-apply
           4   0%                                                - widget-editable-list-match
           4   0%                                                 - widget-editable-list-match-inline
           4   0%                                                    append
           4   0%                                                - widget-checklist-match-inline
           4   0%                                                 - widget-match-inline
           4   0%                                                  - widget-apply
           4   0%                                                   - widget-choice-match
           4   0%                                                      widget-apply
           4   0%                                              - insert-char
           4   0%                                                 undo-auto--undoable-change
           8   0%                                          - widget-copy
           8   0%                                           - widget-apply
           8   0%                                            - widget-types-copy
           8   0%                                             - mapcar
           8   0%                                              - widget-copy
           8   0%                                               - widget-apply
           8   0%                                                - widget-types-copy
           8   0%                                                 - mapcar
           8   0%                                                  - widget-copy
           8   0%                                                   - widget-apply
           8   0%                                                    - widget-types-copy
           8   0%                                                     - mapcar
           8   0%                                                      - widget-copy
           8   0%                                                         widget-apply
          20   0%                                     insert-char
           8   0%                              - apply
           8   0%                               - widget-create-child-and-convert
           8   0%                                - widget-apply
           8   0%                                 - widget-default-create
           4   0%                                    string-match
           4   0%                                  - widget-apply
           4   0%                                     widget-push-button-value-create
           4   0%                         custom-magic-value-create
           4   0%                      - widget-specify-button
           4   0%                         make-overlay
           4   0%                   - custom-add-parent-links
           4   0%                    - mapatoms
           4   0%                       #<compiled 0x1c52983bfc51a7>
         364   4%              widget-setup
           4   0%            - mapc
           4   0%             - custom-magic-reset
           4   0%              - widget-value-set
           4   0%               - widget-apply
           4   0%                - widget-default-value-set
           4   0%                 - widget-apply
           4   0%                    widget-default-delete
           8   0%          - byte-code
           8   0%           - require
           8   0%            - load-with-code-conversion
           8   0%             - eval-buffer
           4   0%                read
           4   0%              - internal-macroexpand-for-load
           4   0%               - macroexpand--all-toplevel
           4   0%                - macroexp--expand-all
           4   0%                 - #<compiled -0x60853496ded3bb1>
           4   0%                  - macroexp--all-forms
           4   0%                   - macroexp--expand-all
           4   0%                    - #<compiled -0x60853496ded3bb1>
           4   0%                       macroexp--all-forms
           8   0%            read
         541   7%   Automatic GC
          24   0% - ...
          20   0%  - widget-editable-list-value-get
          20   0%   - mapcar
          20   0%    - #<compiled -0xf214aae4a43c62d>
          20   0%     - widget-apply
          20   0%      - widget-default-value-inline
          20   0%       - widget-value
          20   0%        - widget-apply
          20   0%         - widget-editable-list-value-get
          20   0%          - mapcar
          20   0%           - #<compiled -0xf214aae4a43c62d>
          20   0%            - widget-apply
          20   0%             - widget-default-value-inline
          20   0%              - widget-value
          20   0%               - widget-apply
          20   0%                - widget-editable-list-value-get
          20   0%                 - mapcar
          16   0%                  - #<compiled -0xf214aae4a43c62d>
          16   0%                   - widget-apply
           4   0%                    - widget-default-value-inline
           4   0%                       widget-get
           4   0%  - widget-type-match
           4   0%   - widget-convert
           4   0%    - widget-types-convert-widget
           4   0%     - mapcar
           4   0%      - widget-convert
           4   0%       - widget-types-convert-widget
           4   0%        - mapcar
           4   0%         - widget-convert
           4   0%          - widget-types-convert-widget
           4   0%           - mapcar
           4   0%            - widget-convert
           4   0%             - widget-types-convert-widget
           4   0%              - mapcar
           4   0%               - widget-convert
           4   0%                - widget-value-convert-widget
           4   0%                   widget-get

  reply	other threads:[~2023-09-18 11:07 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-01-28 15:03 bug#53606: 29.0.50; Very slow Customize buffer for bibtex-biblatex-entry-alist Lars Ingebrigtsen
2023-09-09 22:23 ` Mauro Aranda
2023-09-09 22:51   ` Mauro Aranda
2023-09-10  5:01     ` Eli Zaretskii
2023-09-10  9:49       ` Mauro Aranda
2023-09-10 10:43         ` Eli Zaretskii
2023-09-10 10:50           ` Ihor Radchenko
2023-09-10 12:41           ` Mauro Aranda
2023-09-18 11:07             ` Mauro Aranda [this message]
2023-12-21 11:51               ` Ihor Radchenko

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=526c4074-ee3d-8182-a4bb-7f61cc66d779@gmail.com \
    --to=maurooaranda@gmail.com \
    --cc=53606@debbugs.gnu.org \
    --cc=eliz@gnu.org \
    --cc=yantar92@posteo.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).