From unknown Mon Jun 16 23:47:24 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#4835 <4835@debbugs.gnu.org> To: bug#4835 <4835@debbugs.gnu.org> Subject: Status: something about message-log-max? - see msg#95 Reply-To: bug#4835 <4835@debbugs.gnu.org> Date: Tue, 17 Jun 2025 06:47:24 +0000 retitle 4835 something about message-log-max? - see msg#95 reassign 4835 emacs submitter 4835 "Drew Adams" severity 4835 wishlist thanks From drew.adams@oracle.com Fri Oct 30 15:48:40 2009 Received: (at submit) by emacsbugs.donarmstrong.com; 30 Oct 2009 22:48:41 +0000 X-Spam-Checker-Version: SpamAssassin 3.2.5-bugs.debian.org_2005_01_02 (2008-06-10) on rzlab.ucr.edu X-Spam-Level: X-Spam-Bayes: score:0.5 Bayes not run. spammytokens:Tokens not available. hammytokens:Tokens not available. X-Spam-Status: No, score=-0.5 required=4.0 tests=AWL,FOURLA,MIME_QP_LONG_LINE, NEXTPART autolearn=no version=3.2.5-bugs.debian.org_2005_01_02 Received: from lists.gnu.org (lists.gnu.org [199.232.76.165]) by rzlab.ucr.edu (8.14.3/8.14.3/Debian-5) with ESMTP id n9UMmdMO030762 for ; Fri, 30 Oct 2009 15:48:40 -0700 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1N40Gs-0008GS-Pt for bug-gnu-emacs@gnu.org; Fri, 30 Oct 2009 18:48:38 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1N40Gn-0008G0-U1 for bug-gnu-emacs@gnu.org; Fri, 30 Oct 2009 18:48:37 -0400 Received: from [199.232.76.173] (port=51338 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1N40Gn-0008Fu-Na for bug-gnu-emacs@gnu.org; Fri, 30 Oct 2009 18:48:33 -0400 Received: from rcsinet12.oracle.com ([148.87.113.124]:41356 helo=rgminet12.oracle.com) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1N40Gm-0004Fi-Uu for bug-gnu-emacs@gnu.org; Fri, 30 Oct 2009 18:48:33 -0400 Received: from acsinet15.oracle.com (acsinet15.oracle.com [141.146.126.227]) by rgminet12.oracle.com (Switch-3.3.1/Switch-3.3.1) with ESMTP id n9UMm1TS017840 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Fri, 30 Oct 2009 22:48:02 GMT Received: from acsmt353.oracle.com (acsmt353.oracle.com [141.146.40.153]) by acsinet15.oracle.com (Switch-3.3.1/Switch-3.3.1) with ESMTP id n9ULUVuR024914 for ; Fri, 30 Oct 2009 22:49:49 GMT Received: from abhmt018.oracle.com by acsmt356.oracle.com with ESMTP id 20739385961256942903; Fri, 30 Oct 2009 15:48:23 -0700 Received: from dradamslap1 (/24.5.185.59) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Fri, 30 Oct 2009 15:48:22 -0700 From: "Drew Adams" To: Subject: 23.1; Improper `Invalid face reference' messages. Performance degraded. Date: Fri, 30 Oct 2009 15:48:22 -0700 Message-ID: <26C434DFBD78465BB3861200D6CAE453@us.oracle.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_NextPart_000_007F_01CA5978.694AAE50" X-Mailer: Microsoft Office Outlook 11 Thread-Index: AcpZsxUoa6ZukRpeQJOKhw+ixm5YYA== X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5579 X-Source-IP: acsmt353.oracle.com [141.146.40.153] X-Auth-Type: Internal IP X-CT-RefId: str=0001.0A090201.4AEB6D3A.0025:SCFMA4539814,ss=1,fgs=0 X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6 (newer, 1) This is a multi-part message in MIME format. ------=_NextPart_000_007F_01CA5978.694AAE50 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit This sure seems like a bug to me. If not, please tell me what the problem is. Load the attached file, move point to, say, column 15 in some buffer (e.g. *scratch*), then do `M-x column-marker-1'. Move point a bit, to be sure to see the column highlighting. Check buffer `*Messages*'. You will see zillions of messages `Invalid face reference', logged by the C function `merge_face_ref' (in `xfaces.c'). If you click the mouse in `*Messages*', zillions more such messages will be displayed. This message logging degrades Emacs performance considerably. Also, binding `message-log-max' to nil has no effect - it does not inhibit the message logging. That seems like a bug in itself. But perhaps you will say that this message is coming from the display engine, and that it is appropriate for the display code to ignore `message-log-max' (but why, especially if it impacts performance so much?). At the very least, there is a doc bug, since neither the manual nor the doc string say anything about the display code ignoring this variable. Anyway, displaying the message at all seems like a bug in this case. But if not, I would appreciate understanding what is wrong with the code I'm using. In the attached code, `M-x column-marker-1' calls: (column-marker-internal 'column-marker-1 (1+ (current-column)) 'column-marker-1) That sets the value of symbol `column-marker-1' to the following list - call it KEYWORDS, where COL is the column that point was in when you did `M-x column-marker-1' (e.g. 15). KEYWORDS: (((lambda (end) (let ((start (point)) (message-log-max nil)) ; (Has no effect.) (when (> end (point-max)) (setq end (point-max))) (unless (< (current-column) COL) (forward-line 1)) (when (< (current-column) COL) (move-to-column COL)) (while (and (< (current-column) COL) (< (point) end) (= 0 (+ (forward-line 1) (current-column)))) (move-to-column COL)) (if (and (= COL (current-column)) (<= (point) end) (> (point) start)) (progn (set-match-data (list (1- (point)) (point))) t) (goto-char start) nil))) (0 column-marker-1 prepend t))) And then `column-marker-internal' calls this, where KEYWORDS is the list shown above: (font-lock-add-keywords nil KEYWORDS t) (font-lock-fontify-buffer) The effect is to highlight the column where you issued the command. It works well, apart from the message logging and its performance impact. The `font-lock-keywords' entry used has a lambda form as car and this as cadr: (0 column-marker-1 prepend t). Face `column-marker-1' is defined as follows: (defface column-marker-1 '((t (:background "gray"))) "Face used for a column marker. Usually a background color." :group 'faces) The lambda form is thus, AFAICT, just the kind of function that `font-lock(-add)-keywords' expects. Please let me know if I'm missing something. I think I am correctly using the form (MATCHER HIGHLIGHTER...), from node `Search-based Fontification' of the Elisp manual. MATCHER here is the lambda form shown above. There is only one HIGHLIGHTER, with form SUBEXP-HIGHLIGHTER. The SUBEXP-HIGHLIGHTER here is of form (SUBEXP FACESPEC OVERRIDE LAXMATCH), with SUBEXP=0, FACESPEC=the symbol (face name) `column-marker-1', OVERRIDE=`prepend', and LAXMATCH=t. I also tried removing the parens around (0 column-marker-1 prepend t), making it the cdr instead of the cadr, so it looked like this: (MATCHER 0 column-marker-1 prepend t), where MATCHER is the same lambda form. That should match the also-allowed form (MATCHER . SUBEXP-HIGHLIGHTER). But that didn't change anything. What's odd is that the message complains about a _face reference_, but the text included with the error message is code from the lambda form (i.e. from the MATCHER part, not from the HIGHLIGHTER part that specifies the face). The display code seems to be walking down the lambda form, spitting it out bit by bit progressively in the `Invalid face reference' messages. E.g.: Invalid face reference: end Invalid face reference: point Invalid face reference: <= Invalid face reference: current-column Invalid face reference: 37 Invalid face reference: = Invalid face reference: and Invalid face reference: if Invalid face reference: 37 Invalid face reference: move-to-column Invalid face reference: current-column Invalid face reference: 1 Invalid face reference: forward-line Invalid face reference: + Invalid face reference: 0 Invalid face reference: = Invalid face reference: end Invalid face reference: point Invalid face reference: < Invalid face reference: 37 Invalid face reference: current-column Invalid face reference: < Invalid face reference: and Invalid face reference: while Invalid face reference: 37 Invalid face reference: move-to-column Invalid face reference: 37 Invalid face reference: current-column Invalid face reference: < Invalid face reference: when Invalid face reference: 1 Invalid face reference: forward-line Invalid face reference: 37 Invalid face reference: current-column Invalid face reference: < Invalid face reference: unless Invalid face reference: point-max Invalid face reference: end Invalid face reference: setq Invalid face reference: point-max Invalid face reference: end Invalid face reference: > Invalid face reference: when Invalid face reference: nil Invalid face reference: message-log-max Invalid face reference: point Invalid face reference: start Invalid face reference: let Invalid face reference: end Invalid face reference: lambda Invalid face reference: t Invalid face reference: prepend Invalid face reference: 0 Invalid face reference: nil Invalid face reference: start Invalid face reference: goto-char Invalid face reference: t Invalid face reference: point [2 times] Invalid face reference: 1- Invalid face reference: list Invalid face reference: set-match-data Invalid face reference: progn Invalid face reference: start Invalid face reference: point Invalid face reference: > Invalid face... (repeated) It's as if the code were trying to get face specs from the lambda form, in order to merge those faces. Just a guess. At any rate, it seems bugged to me, but if not, please let me know what I'm doing wrong. Thx. In GNU Emacs 23.1.1 (i386-mingw-nt5.1.2600) of 2009-07-29 on SOFT-MJASON Windowing system distributor `Microsoft Corp.', version 5.1.2600 configured using `configure --with-gcc (4.4)' ------=_NextPart_000_007F_01CA5978.694AAE50 Content-Type: application/octet-stream; name="column-marker.el" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="column-marker.el" ;;; column-marker.el --- Highlight certain character columns=0A= ;; =0A= ;; Filename: column-marker.el=0A= ;; Description: Highlight certain character columns=0A= ;; Author: Rick Bielawski =0A= ;; Maintainer: Rick Bielawski =0A= ;; Created: Tue Nov 22 10:26:03 2005=0A= ;; Version: =0A= ;; Last-Updated: Fri Oct 30 13:20:01 2009 (-0700)=0A= ;; By: dradams=0A= ;; Update #: 291=0A= ;; Keywords: tools convenience highlight=0A= ;; Compatibility: GNU Emacs 21, GNU Emacs 22=0A= ;; =0A= ;; Features that might be required by this library:=0A= ;;=0A= ;; None=0A= ;;=0A= ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;=0A= ;; =0A= ;;; Commentary: =0A= ;; =0A= ;; Highlights the background at a given character column.=0A= ;; =0A= ;; Commands `column-marker-1', `column-marker-2', and=0A= ;; `column-marker-3' each highlight a given column (using different=0A= ;; background colors, by default).=0A= ;;=0A= ;; - With no prefix argument, each highlights the current column=0A= ;; (where the cursor is).=0A= ;;=0A= ;; - With a non-negative numeric prefix argument, each highlights that=0A= ;; column.=0A= ;;=0A= ;; - With plain `C-u' (no number), each turns off its highlighting.=0A= ;;=0A= ;; - With `C-u C-u', each turns off all column highlighting.=0A= ;;=0A= ;; If two commands highlight the same column, the last-issued=0A= ;; highlighting command shadows the other - only the last-issued=0A= ;; highlighting is seen. If that "topmost" highlighting is then=0A= ;; turned off, the other highlighting for that column then shows=0A= ;; through.=0A= ;;=0A= ;; Examples:=0A= ;;=0A= ;; M-x column-marker-1 highlights the column where the cursor is, in=0A= ;; face `column-marker-1'.=0A= ;;=0A= ;; C-u 70 M-x column-marker-2 highlights column 70 in face=0A= ;; `column-marker-2'.=0A= ;;=0A= ;; C-u 70 M-x column-marker-3 highlights column 70 in face=0A= ;; `column-marker-3'. The face `column-marker-2' highlighting no=0A= ;; longer shows.=0A= ;;=0A= ;; C-u M-x column-marker-3 turns off highlighting for column-marker-3,=0A= ;; so face `column-marker-2' highlighting shows again for column 70.=0A= ;;=0A= ;; C-u C-u M-x column-marker-1 (or -2 or -3) erases all column=0A= ;; highlighting.=0A= ;;=0A= ;; These commands use `font-lock-fontify-buffer', so syntax=0A= ;; highlighting (`font-lock-mode') must be turned on. There might be=0A= ;; a performance impact during refontification.=0A= ;;=0A= ;;=0A= ;; Installation: Place this file on your load path, and put this in=0A= ;; your init file (`.emacs'):=0A= ;;=0A= ;; (require 'column-marker)=0A= ;;=0A= ;; Other init file suggestions (examples):=0A= ;;=0A= ;; ;; Highlight column 80 in foo mode.=0A= ;; (add-hook foo-mode-hook (lambda () (interactive) (column-marker-1 = 80)))=0A= ;;=0A= ;; ;; Use `C-c m' interactively to highlight with face `column-marker-1'.=0A= ;; (global-set-key [?\C-c ?m] 'column-marker-1)=0A= ;;=0A= ;;=0A= ;; Please report any bugs!=0A= ;;=0A= ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;=0A= ;; =0A= ;;; Change log:=0A= ;;=0A= ;; 2008/01/21 dadams=0A= ;; Renamed faces by dropping suffix "-face".=0A= ;; 2006/08/18 dadams=0A= ;; column-marker-create: Add newlines to doc-string sentences.=0A= ;; 2005/12/31 dadams=0A= ;; column-marker-create: Add marker to column-marker-vars inside the = defun,=0A= ;; so it is done in the right buffer, updating column-marker-vars = buffer-locally.=0A= ;; column-marker-find: Corrected comment. Changed or to progn for = clarity.=0A= ;; 2005/12/29 dadams=0A= ;; Updated wrt new version of column-marker.el (multi-column = characters).=0A= ;; Corrected stray occurrences of column-marker-here to = column-marker-1.=0A= ;; column-marker-vars: Added make-local-variable.=0A= ;; column-marker-create: Changed positive to non-negative.=0A= ;; column-marker-internal: Turn off marker when col is negative, not = < 1.=0A= ;; 2005-12-29 RGB=0A= ;; column-marker.el now supports multi-column characters.=0A= ;; 2005/11/21 dadams=0A= ;; Combined static and dynamic. =0A= ;; Use separate faces for each marker. Different interactive spec.=0A= ;; 2005/10/19 RGB=0A= ;; Initial release of column-marker.el.=0A= ;;=0A= ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;=0A= ;;=0A= ;; This program is free software; you can redistribute it and/or modify=0A= ;; it under the terms of the GNU General Public License as published by=0A= ;; the Free Software Foundation; either version 2, or (at your option)=0A= ;; any later version.=0A= =0A= ;; This program is distributed in the hope that it will be useful,=0A= ;; but WITHOUT ANY WARRANTY; without even the implied warranty of=0A= ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the=0A= ;; GNU General Public License for more details.=0A= =0A= ;; You should have received a copy of the GNU General Public License=0A= ;; along with this program; see the file COPYING. If not, write to=0A= ;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth=0A= ;; Floor, Boston, MA 02110-1301, USA.=0A= ;;=0A= ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;=0A= ;; =0A= ;;; Code:=0A= =0A= ;;;;;;;;;;;;;;;;;;;;;;=0A= =0A= =0A= (defface column-marker-1 '((t (:background "gray")))=0A= "Face used for a column marker. Usually a background color."=0A= :group 'faces)=0A= =0A= (defvar column-marker-1-face 'column-marker-1=0A= "Face used for a column marker. Usually a background color.=0A= Changing this directly affects only new markers.")=0A= =0A= (defface column-marker-2 '((t (:background "cyan3")))=0A= "Face used for a column marker. Usually a background color."=0A= :group 'faces)=0A= =0A= (defvar column-marker-2-face 'column-marker-2=0A= "Face used for a column marker. Usually a background color.=0A= Changing this directly affects only new markers." )=0A= =0A= (defface column-marker-3 '((t (:background "orchid3")))=0A= "Face used for a column marker. Usually a background color."=0A= :group 'faces)=0A= =0A= (defvar column-marker-3-face 'column-marker-3=0A= "Face used for a column marker. Usually a background color.=0A= Changing this directly affects only new markers." )=0A= =0A= (defvar column-marker-vars nil=0A= "List of all internal column-marker variables")=0A= (make-variable-buffer-local 'column-marker-vars) ; Buffer local in all = buffers.=0A= =0A= (defmacro column-marker-create (var &optional face)=0A= "Define a column marker named %%colmark%%-VAR.=0A= FACE is the face to use. If nil, then face `column-marker-1' is used."=0A= (setq face (or face 'column-marker-1))=0A= `(progn=0A= ;; define context variable ,VAR so marker can be removed if desired=0A= (defvar ,var ()=0A= "Buffer local. Used internally to store column marker spec.")=0A= ;; context must be buffer local since font-lock is =0A= (make-variable-buffer-local ',var)=0A= ;; Define wrapper function named ,VAR to call = `column-marker-internal'=0A= (defun ,var (arg)=0A= ,(concat "Highlight column with face `" (symbol-name face)=0A= "'.\nWith no prefix argument, highlight current = column.\n"=0A= "With non-negative numeric prefix arg, highlight that = column number.\n"=0A= "With plain `C-u' (no number), turn off this column = marker.\n"=0A= "With `C-u C-u' or negative prefix arg, turn off all = column-marker highlighting.")=0A= (interactive "P")=0A= (unless (memq ',var column-marker-vars) (push ',var = column-marker-vars))=0A= (cond ((null arg) ; Default: highlight current column.=0A= (column-marker-internal ',var (1+ (current-column)) ,face))=0A= ((consp arg)=0A= (if (=3D 4 (car arg))=0A= (column-marker-internal ',var nil) ; `C-u': Remove = this column highlighting.=0A= (dolist (var column-marker-vars)=0A= (column-marker-internal var nil)))) ; `C-u C-u': = Remove all column highlighting.=0A= ((and (integerp arg) (>=3D arg 0)) ; `C-u 70': Highlight = that column.=0A= (column-marker-internal ',var (1+ (prefix-numeric-value = arg)) ,face))=0A= (t ; `C-u -40': Remove all column highlighting.=0A= (dolist (var column-marker-vars)=0A= (column-marker-internal var nil)))))))=0A= =0A= (defun column-marker-find (col)=0A= "Returns a function to locate a character in column COL."=0A= `(lambda (end)=0A= (let ((start (point))=0A= (message-log-max nil))=0A= (when (> end (point-max)) (setq end (point-max)))=0A= =0A= ;; Try to keep `move-to-column' from going backward, though it = still can.=0A= (unless (< (current-column) ,col) (forward-line 1))=0A= =0A= ;; Again, don't go backward. Try to move to correct column.=0A= (when (< (current-column) ,col) (move-to-column ,col))=0A= =0A= ;; If not at target column, try to move to it.=0A= (while (and (< (current-column) ,col) (< (point) end)=0A= (=3D 0 (+ (forward-line 1) (current-column)))) ; = Should be bol.=0A= (move-to-column ,col))=0A= =0A= ;; If at target column, not past end, and not prior to start,=0A= ;; then set match data and return t. Otherwise go to start=0A= ;; and return nil.=0A= (if (and (=3D ,col (current-column)) (<=3D (point) end) (> (point) = start))=0A= (progn (set-match-data (list (1- (point)) (point)))=0A= t) ; Return t.=0A= (goto-char start)=0A= nil)))) ; Return nil.=0A= =0A= (defun column-marker-internal (sym col &optional face)=0A= "SYM is the symbol for holding the column marker context.=0A= COL is the column in which a marker should be set.=0A= Supplying nil or 0 for COL turns off the marker.=0A= FACE is the face to use. If nil, then face `column-marker-1' is used."=0A= (setq face (or face 'column-marker-1))=0A= (when (symbol-value sym) ; Remove any previously set column marker=0A= (font-lock-remove-keywords nil (symbol-value sym))=0A= (set sym nil))=0A= (when (or (listp col) (< col 0)) (setq col nil)) ; Allow nonsense = stuff to turn off the marker=0A= (when col ; Generate a new column marker=0A= (set sym `((,(column-marker-find col) (0 ,face prepend t))))=0A= (font-lock-add-keywords nil (symbol-value sym) t))=0A= (font-lock-fontify-buffer))=0A= =0A= ;; If you need more markers you can create your own similarly.=0A= ;; All markers can be in use at once, and each is buffer-local,=0A= ;; so there is no good reason to define more unless you need more=0A= ;; markers in a single buffer.=0A= (column-marker-create column-marker-1 column-marker-1-face)=0A= (column-marker-create column-marker-2 column-marker-2-face)=0A= (column-marker-create column-marker-3 column-marker-3-face)=0A= =0A= ;;;###autoload=0A= (autoload 'column-marker-1 "column-marker" "Highlight a column." t)=0A= =0A= ;;;;;;;;;;;;;;;;;;=0A= =0A= (provide 'column-marker)=0A= =0A= ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;=0A= ;;; column-marker.el ends here=0A= ------=_NextPart_000_007F_01CA5978.694AAE50-- From monnier@iro.umontreal.ca Fri Oct 30 20:26:33 2009 Received: (at submit) by emacsbugs.donarmstrong.com; 31 Oct 2009 03:26:33 +0000 X-Spam-Checker-Version: SpamAssassin 3.2.5-bugs.debian.org_2005_01_02 (2008-06-10) on rzlab.ucr.edu X-Spam-Level: X-Spam-Bayes: score:0.5 Bayes not run. spammytokens:Tokens not available. hammytokens:Tokens not available. X-Spam-Status: No, score=-3.6 required=4.0 tests=AWL,HAS_BUG_NUMBER autolearn=ham version=3.2.5-bugs.debian.org_2005_01_02 Received: from lists.gnu.org (lists.gnu.org [199.232.76.165]) by rzlab.ucr.edu (8.14.3/8.14.3/Debian-5) with ESMTP id n9V3QVff008971 for ; Fri, 30 Oct 2009 20:26:32 -0700 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1N44bm-0003Ob-VX for bug-gnu-emacs@gnu.org; Fri, 30 Oct 2009 23:26:31 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1N44bi-0003Jt-9L for bug-gnu-emacs@gnu.org; Fri, 30 Oct 2009 23:26:30 -0400 Received: from [199.232.76.173] (port=56164 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1N44bi-0003Jm-4T for bug-gnu-emacs@gnu.org; Fri, 30 Oct 2009 23:26:26 -0400 Received: from ironport2-out.teksavvy.com ([206.248.154.181]:55423 helo=ironport2-out.pppoe.ca) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1N44bh-0008Bb-Sz for bug-gnu-emacs@gnu.org; Fri, 30 Oct 2009 23:26:25 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Ag0FAJ5L60pMCoQJ/2dsb2JhbACBUN1ChDoEiGU X-IronPort-AV: E=Sophos;i="4.44,657,1249272000"; d="scan'208";a="48454612" Received: from 76-10-132-9.dsl.teksavvy.com (HELO ceviche.home) ([76.10.132.9]) by ironport2-out.pppoe.ca with ESMTP; 30 Oct 2009 23:26:25 -0400 Received: by ceviche.home (Postfix, from userid 20848) id 0FF5FB44D0; Fri, 30 Oct 2009 23:26:24 -0400 (EDT) From: Stefan Monnier To: Drew Adams Cc: 4835@debbugs.gnu.org, Subject: Re: bug#4835: 23.1; Improper `Invalid face reference' messages. Performance degraded. Message-ID: References: <26C434DFBD78465BB3861200D6CAE453@us.oracle.com> Date: Fri, 30 Oct 2009 23:26:24 -0400 In-Reply-To: <26C434DFBD78465BB3861200D6CAE453@us.oracle.com> (Drew Adams's message of "Fri, 30 Oct 2009 15:48:22 -0700") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-detected-operating-system: by monty-python.gnu.org: Genre and OS details not recognized. > This sure seems like a bug to me. If not, please tell me what the > problem is. The problem is that font-lock-keywords's docstring says: [...] where MATCHER can be either the regexp to search for, or the function name to call to make the search (called with one argument, the limit [...] notice that it says "function name" rather than just "function". So it can't just be a lambda expression, it has to be a symbol. Stefan From drew.adams@oracle.com Sat Oct 31 00:43:35 2009 Received: (at submit) by emacsbugs.donarmstrong.com; 31 Oct 2009 07:43:35 +0000 X-Spam-Checker-Version: SpamAssassin 3.2.5-bugs.debian.org_2005_01_02 (2008-06-10) on rzlab.ucr.edu X-Spam-Level: X-Spam-Bayes: score:0.5 Bayes not run. spammytokens:Tokens not available. hammytokens:Tokens not available. X-Spam-Status: No, score=-3.7 required=4.0 tests=AWL,FOURLA,HAS_BUG_NUMBER autolearn=unavailable version=3.2.5-bugs.debian.org_2005_01_02 Received: from lists.gnu.org (lists.gnu.org [199.232.76.165]) by rzlab.ucr.edu (8.14.3/8.14.3/Debian-5) with ESMTP id n9V7hW4f006436 for ; Sat, 31 Oct 2009 00:43:33 -0700 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1N48cV-0002TQ-DI for bug-gnu-emacs@gnu.org; Sat, 31 Oct 2009 03:43:31 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1N48cQ-0002SL-Nm for bug-gnu-emacs@gnu.org; Sat, 31 Oct 2009 03:43:30 -0400 Received: from [199.232.76.173] (port=38703 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1N48cQ-0002SI-Gy for bug-gnu-emacs@gnu.org; Sat, 31 Oct 2009 03:43:26 -0400 Received: from rcsinet11.oracle.com ([148.87.113.123]:49432 helo=rgminet11.oracle.com) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1N48cQ-0007vp-14 for bug-gnu-emacs@gnu.org; Sat, 31 Oct 2009 03:43:26 -0400 Received: from acsinet15.oracle.com (acsinet15.oracle.com [141.146.126.227]) by rgminet11.oracle.com (Switch-3.3.1/Switch-3.3.1) with ESMTP id n9V7ipQJ014756 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Sat, 31 Oct 2009 07:44:53 GMT Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156]) by acsinet15.oracle.com (Switch-3.3.1/Switch-3.3.1) with ESMTP id n9V7GJdC017405; Sat, 31 Oct 2009 07:44:37 GMT Received: from abhmt018.oracle.com by acsmt353.oracle.com with ESMTP id 20742715111256974874; Sat, 31 Oct 2009 00:41:14 -0700 Received: from dradamslap1 (/141.144.80.25) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Sat, 31 Oct 2009 00:41:14 -0700 From: "Drew Adams" To: "'Stefan Monnier'" Cc: <4835@debbugs.gnu.org>, References: <26C434DFBD78465BB3861200D6CAE453@us.oracle.com> Subject: RE: bug#4835: 23.1; Improper `Invalid face reference' messages. Performance degraded. Date: Sat, 31 Oct 2009 00:41:12 -0700 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Office Outlook 11 Thread-Index: AcpZ2fNo5HuNs9v1ScuNV2XYIRpWmAAF3FYg In-Reply-To: X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5579 X-Source-IP: acsmt356.oracle.com [141.146.40.156] X-Auth-Type: Internal IP X-CT-RefId: str=0001.0A090207.4AEBEA92.00EB:SCFMA4539814,ss=1,fgs=0 X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6 (newer, 1) X-CrossAssassin-Score: 2 > > This sure seems like a bug to me. If not, please tell me what the > > problem is. > > The problem is that font-lock-keywords's docstring says: > > where MATCHER can be either the regexp to search for, or > the function name to call to make the search (called with > one argument, the limit > > notice that it says "function name" rather than just > "function". So it can't just be a lambda expression, it has > to be a symbol. Ah, thank you. I need to put my reading glasses on! 1. However, the Elisp manual, node `Search-based Fontification' speaks of just `function'. It does not say that it must be a symbol. (Also, the doc string should be clarified, since "function name" is usually a string, the function symbol's `symbol-name'.) `FUNCTION' Find text by calling FUNCTION, and highlight the matches it finds using `font-lock-keyword-face'. When FUNCTION is called, it receives one argument, the limit of the search; it should begin searching at point, and not search beyond the limit. It should return non-`nil' if it succeeds, and set the match data to describe the match that was found. Returning `nil' indicates failure of the search. Fontification will call FUNCTION repeatedly with the same limit, and with point where the previous invocation left it, until FUNCTION fails. On failure, FUNCTION need not reset point in any particular way. And further references to it in this node also refer to it only as "a function". Nowhere does it say that it should be a symbol. So if it must be a symbol, then this is a doc bug. 2. The code I had seems nevertheless to "work", in the sense that it does what I expect (highlights the column). Except that it logs those messages and the performance is terrible. I assume that it is the message logging that degrades the performance (brings Emacs to its knees). Is it indeed a bug that binding `message-log-max' to nil does not suppress the logging here? Or is it simply a doc bug that this limitation of `message-log-max' is not mentioned? 3. I tried using a symbol, as you and the doc string suggested, but I still get the same behavior. I used the same code as before, but with `column-marker-find' redefined as follows, so that it now defines a named function and returns the new function symbol: (defun column-marker-find (col) (let ((fn-symb (intern (format "column-marker-move-to-%d" col)))) (fset `,fn-symb `(lambda (end) (let ((start (point))) (when (> end (point-max)) (setq end (point-max))) (unless (< (current-column) ,col) (forward-line 1)) (when (< (current-column) ,col) (move-to-column ,col)) (while (and (< (current-column) ,col) (< (point) end) (= 0 (+ (forward-line 1) (current-column)))) (move-to-column ,col)) (if (and (= ,col (current-column)) (<= (point) end) (> (point) start)) (progn (set-match-data (list (1- (point)) (point))) t) (goto-char start) nil)))) fn-symb)) Now I see only these 4 messages repeated over and over, instead of the messages citing the atoms in the lambda form that I used previously: Invalid face reference: t Invalid face reference: prepend Invalid face reference: 0 Invalid face reference: column-marker-move-to-36 `column-marker-move-to-36' is the symbol created when I did `M-x column-marker-1'. Its `symbol-function' is this (same as above, with 36 for the column): (lambda (end) (let ((start (point))) (when (> end (point-max)) (setq end (point-max))) (unless (< (current-column) 36) (forward-line 1)) (when (< (current-column) 36) (move-to-column 36)) (while (and (< (current-column) 36) (< (point) end) (= 0 (+ (forward-line 1) (current-column)))) (move-to-column 36)) (if (and (= 36 (current-column)) (<= (point) end) (> (point) start)) (progn (set-match-data (list (1- (point)) (point))) t) (goto-char start) nil))) The value of variable `column-marker-1' is now this list, which should be OK, IIUC: ((column-marker-move-to-36 (0 column-marker-1 prepend t))) And that is therefore also the relevant portion of `font-lock-keywords'. What am I missing? 4. Also, the full value of `font-lock-keywords' does in fact have lambda forms in some of its keyword patterns, but they do not come from this code. They are present even without it. This, for example: ((lambda (bound) (catch 'found (while (re-search-forward "\\(\\\\\\\\\\)\\(?:\\(\\\\\\\\\\)\\|\\((\\(?:\\?:\\)?\\|[|)]\\)\\)" bound t) (unless (match-beginning 2) (let ((face (get-text-property (1- (point)) 'face))) (when (or (and (listp face) (memq 'font-lock-string-face face)) (eq 'font-lock-string-face face)) (throw 'found t))))))) (1 'font-lock-regexp-grouping-backslash prepend) (3 'font-lock-regexp-grouping-construct prepend)) Dunno where that comes from - perhaps from the font-lock machinery itself. In any case, that lambda form does not seem to be causing any `Invalid face reference' messages to be logged. So I still don't understand, and I still haven't found the right way to code this, so that I don't get the error messages. Please advise. From cyd@stupidchicken.com Sat Oct 31 11:59:45 2009 Received: (at 4835) by emacsbugs.donarmstrong.com; 31 Oct 2009 18:59:45 +0000 X-Spam-Checker-Version: SpamAssassin 3.2.5-bugs.debian.org_2005_01_02 (2008-06-10) on rzlab.ucr.edu X-Spam-Level: X-Spam-Bayes: score:0.5 Bayes not run. spammytokens:Tokens not available. hammytokens:Tokens not available. X-Spam-Status: No, score=-1.2 required=4.0 tests=AWL,HAS_BUG_NUMBER autolearn=ham version=3.2.5-bugs.debian.org_2005_01_02 Received: from pantheon-po44.its.yale.edu (pantheon-po44.its.yale.edu [130.132.50.78]) by rzlab.ucr.edu (8.14.3/8.14.3/Debian-5) with ESMTP id n9VIxiAZ016179 for <4835@emacsbugs.donarmstrong.com>; Sat, 31 Oct 2009 11:59:45 -0700 Received: from furry (173-14-147-246-NewEngland.hfc.comcastbusiness.net [173.14.147.246]) (authenticated bits=0) by pantheon-po44.its.yale.edu (8.12.11.20060308/8.12.11) with ESMTP id n9VIxcmf032176 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Sat, 31 Oct 2009 14:59:38 -0400 Received: by furry (Postfix, from userid 1000) id A9B05C070; Sat, 31 Oct 2009 14:59:38 -0400 (EDT) From: Chong Yidong To: "Drew Adams" Cc: "Stefan Monnier" , 4835@debbugs.gnu.org Subject: RE: bug#4835: 23.1; Improper `Invalid face reference' messages. Performance degraded. Date: Sat, 31 Oct 2009 14:59:38 -0400 Message-ID: <87ws2bfkyt.fsf@stupidchicken.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-YaleITSMailFilter: Version 1.2c (attachment(s) not renamed) > 2. The code I had seems nevertheless to "work", in the sense that it > does what I expect (highlights the column). Except that it logs those > messages and the performance is terrible. I suspect this is because parts of font-lock do this: (if (stringp matcher) (re-search-forward matcher end t) (funcall matcher end))) while other parts do this: (font-lock-eval-keywords (if (fboundp keywords) (funcall keywords) (eval keywords))))) If `matcher' is a lambda expression, the first will work as expected, because you can pass a lambda to funcall. But the second will do the wrong thing. We should probably fix the code to check for and disallow lambda expressions (and the docs), assuming not too much external code is relying on the unintended behavior. From drew.adams@oracle.com Sat Oct 31 12:11:02 2009 Received: (at 4835) by emacsbugs.donarmstrong.com; 31 Oct 2009 19:11:02 +0000 X-Spam-Checker-Version: SpamAssassin 3.2.5-bugs.debian.org_2005_01_02 (2008-06-10) on rzlab.ucr.edu X-Spam-Level: X-Spam-Bayes: score:0.5 Bayes not run. spammytokens:Tokens not available. hammytokens:Tokens not available. X-Spam-Status: No, score=-3.8 required=4.0 tests=AWL,HAS_BUG_NUMBER autolearn=ham version=3.2.5-bugs.debian.org_2005_01_02 Received: from rgminet12.oracle.com (rcsinet12.oracle.com [148.87.113.124]) by rzlab.ucr.edu (8.14.3/8.14.3/Debian-5) with ESMTP id n9VJB1tI018378 for <4835@emacsbugs.donarmstrong.com>; Sat, 31 Oct 2009 12:11:02 -0700 Received: from rgminet13.oracle.com (rcsinet13.oracle.com [148.87.113.125]) by rgminet12.oracle.com (Switch-3.3.1/Switch-3.3.1) with ESMTP id n9VJAPPD006612 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Sat, 31 Oct 2009 19:10:27 GMT Received: from acsmt355.oracle.com (acsmt355.oracle.com [141.146.40.155]) by rgminet13.oracle.com (Switch-3.3.1/Switch-3.3.1) with ESMTP id n9VFrml3020860; Sat, 31 Oct 2009 19:11:30 GMT Received: from abhmt012.oracle.com by acsmt354.oracle.com with ESMTP id 20745123891257016179; Sat, 31 Oct 2009 12:09:39 -0700 Received: from dradamslap1 (/141.144.80.25) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Sat, 31 Oct 2009 12:09:39 -0700 From: "Drew Adams" To: "'Chong Yidong'" Cc: "'Stefan Monnier'" , <4835@debbugs.gnu.org> References: <87ws2bfkyt.fsf@stupidchicken.com> Subject: RE: bug#4835: 23.1; Improper `Invalid face reference' messages. Performance degraded. Date: Sat, 31 Oct 2009 12:09:37 -0700 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Office Outlook 11 Thread-Index: AcpaXFfM3Z1bS3UJRsu3nuykrubu7gAAECJQ In-Reply-To: <87ws2bfkyt.fsf@stupidchicken.com> X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5579 X-Source-IP: acsmt355.oracle.com [141.146.40.155] X-Auth-Type: Internal IP X-CT-RefId: str=0001.0A090209.4AEC8BBC.007E:SCFMA4539814,ss=1,fgs=0 > > 2. The code I had seems nevertheless to "work", in the sense that it > > does what I expect (highlights the column). Except that it > > logs those messages and the performance is terrible. > > I suspect this is because parts of font-lock do this: > (if (stringp matcher) > (re-search-forward matcher end t) > (funcall matcher end))) > > while other parts do this: > (font-lock-eval-keywords (if (fboundp keywords) > (funcall keywords) > (eval keywords))))) > > If `matcher' is a lambda expression, the first will work as expected, > because you can pass a lambda to funcall. But the second will do the > wrong thing. > > We should probably fix the code to check for and disallow lambda > expressions (and the docs), assuming not too much external code is > relying on the unintended behavior. This part of the thread is only tangentially related to the bug report, but anyway: Why is it necessary to restrict the function to a symbol - why disallow lambda forms? IOW, why can't we use (functionp keywords) instead of (fboundp keywords)? After all, we're just calling `funcall', and all `funcall' requires of its function arg is that it be `functionp'. Is there a real reason for the current restriction to symbols? Besides, as I noted in a previous mail, the font-lock code itself apparently uses a lambda form in this way. Just asking. I don't claim to understand the font-lock code. From cyd@stupidchicken.com Sat Oct 31 12:37:51 2009 Received: (at 4835) by emacsbugs.donarmstrong.com; 31 Oct 2009 19:37:51 +0000 X-Spam-Checker-Version: SpamAssassin 3.2.5-bugs.debian.org_2005_01_02 (2008-06-10) on rzlab.ucr.edu X-Spam-Level: X-Spam-Bayes: score:0.5 Bayes not run. spammytokens:Tokens not available. hammytokens:Tokens not available. X-Spam-Status: No, score=-1.5 required=4.0 tests=AWL,HAS_BUG_NUMBER autolearn=ham version=3.2.5-bugs.debian.org_2005_01_02 Received: from pantheon-po44.its.yale.edu (pantheon-po44.its.yale.edu [130.132.50.78]) by rzlab.ucr.edu (8.14.3/8.14.3/Debian-5) with ESMTP id n9VJbnah021334 for <4835@emacsbugs.donarmstrong.com>; Sat, 31 Oct 2009 12:37:51 -0700 Received: from furry (173-14-147-246-NewEngland.hfc.comcastbusiness.net [173.14.147.246]) (authenticated bits=0) by pantheon-po44.its.yale.edu (8.12.11.20060308/8.12.11) with ESMTP id n9VJbi4V016704 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Sat, 31 Oct 2009 15:37:44 -0400 Received: by furry (Postfix, from userid 1000) id 83256C070; Sat, 31 Oct 2009 15:37:44 -0400 (EDT) From: Chong Yidong To: "Drew Adams" Cc: "'Stefan Monnier'" , <4835@debbugs.gnu.org> Subject: Re: bug#4835: 23.1; Improper `Invalid face reference' messages. Performance degraded. References: <87ws2bfkyt.fsf@stupidchicken.com> Date: Sat, 31 Oct 2009 15:37:44 -0400 In-Reply-To: (Drew Adams's message of "Sat, 31 Oct 2009 12:09:37 -0700") Message-ID: <87iqdvmk1j.fsf@stupidchicken.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-YaleITSMailFilter: Version 1.2c (attachment(s) not renamed) "Drew Adams" writes: > Why is it necessary to restrict the function to a symbol - why disallow lambda > forms? IOW, why can't we use (functionp keywords) instead of (fboundp keywords)? In principle, I don't see why matchers can't be lambda expressions. The main concern I have is that other parts of font lock might have subtle assumptions about the matcher being a function name. It seems easier to make this implicit assumption an explicit one. From drew.adams@oracle.com Sat Oct 31 12:52:41 2009 Received: (at 4835) by emacsbugs.donarmstrong.com; 31 Oct 2009 19:52:41 +0000 X-Spam-Checker-Version: SpamAssassin 3.2.5-bugs.debian.org_2005_01_02 (2008-06-10) on rzlab.ucr.edu X-Spam-Level: X-Spam-Bayes: score:0.5 Bayes not run. spammytokens:Tokens not available. hammytokens:Tokens not available. X-Spam-Status: No, score=-3.7 required=4.0 tests=AWL,FOURLA,HAS_BUG_NUMBER autolearn=ham version=3.2.5-bugs.debian.org_2005_01_02 Received: from rgminet11.oracle.com (rcsinet11.oracle.com [148.87.113.123]) by rzlab.ucr.edu (8.14.3/8.14.3/Debian-5) with ESMTP id n9VJqeUd023155 for <4835@emacsbugs.donarmstrong.com>; Sat, 31 Oct 2009 12:52:41 -0700 Received: from acsinet15.oracle.com (acsinet15.oracle.com [141.146.126.227]) by rgminet11.oracle.com (Switch-3.3.1/Switch-3.3.1) with ESMTP id n9VJs9i4031131 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Sat, 31 Oct 2009 19:54:10 GMT Received: from acsmt353.oracle.com (acsmt353.oracle.com [141.146.40.153]) by acsinet15.oracle.com (Switch-3.3.1/Switch-3.3.1) with ESMTP id n9VJrQUg002567; Sat, 31 Oct 2009 19:53:53 GMT Received: from abhmt013.oracle.com by acsmt353.oracle.com with ESMTP id 20744820661257018708; Sat, 31 Oct 2009 12:51:48 -0700 Received: from dradamslap1 (/141.144.80.25) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Sat, 31 Oct 2009 12:51:48 -0700 From: "Drew Adams" To: "'Chong Yidong'" Cc: "'Stefan Monnier'" , <4835@debbugs.gnu.org> References: <87ws2bfkyt.fsf@stupidchicken.com> <87iqdvmk1j.fsf@stupidchicken.com> Subject: RE: bug#4835: 23.1; Improper `Invalid face reference' messages. Performance degraded. Date: Sat, 31 Oct 2009 12:51:46 -0700 Message-ID: <6ABF3195EEF74EB780205758FA68D61B@us.oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Office Outlook 11 Thread-Index: AcpaYaWX0YuWWFG1S3i41ZYODv3rAwAAPs0g In-Reply-To: <87iqdvmk1j.fsf@stupidchicken.com> X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5579 X-Source-IP: acsmt353.oracle.com [141.146.40.153] X-Auth-Type: Internal IP X-CT-RefId: str=0001.0A090203.4AEC957F.0111:SCFMA4539814,ss=1,fgs=0 > > Why is it necessary to restrict the function to a symbol - > > why disallow lambda forms? IOW, why can't we use > > (functionp keywords) instead of (fboundp keywords)? > > In principle, I don't see why matchers can't be lambda > expressions. The main concern I have is that other parts > of font lock might have subtle assumptions about the > matcher being a function name. It seems easier to > make this implicit assumption an explicit one. Easier is not better. We should make the right fix, not the easiest one based on our not being sure what the code does or why. It would be good if someone knowledgeable in font-lock took a close look and DTRT. Perhaps Stefan? If we change `fboundp' to `functionp' here and it turns out that subtle assumptions are thereby broken, at least we will have discovered those assumptions, and we can then either comment them clearly or change the code to use different assumptions (if appropriate). As it is now, it sounds like we don't really know what the design is or why. From cyd@stupidchicken.com Sat Oct 31 13:57:56 2009 Received: (at 4835) by emacsbugs.donarmstrong.com; 31 Oct 2009 20:57:56 +0000 X-Spam-Checker-Version: SpamAssassin 3.2.5-bugs.debian.org_2005_01_02 (2008-06-10) on rzlab.ucr.edu X-Spam-Level: X-Spam-Bayes: score:0.5 Bayes not run. spammytokens:Tokens not available. hammytokens:Tokens not available. X-Spam-Status: No, score=-1.8 required=4.0 tests=AWL,HAS_BUG_NUMBER autolearn=ham version=3.2.5-bugs.debian.org_2005_01_02 Received: from pantheon-po27.its.yale.edu (pantheon-po27.its.yale.edu [130.132.50.122]) by rzlab.ucr.edu (8.14.3/8.14.3/Debian-5) with ESMTP id n9VKvsUZ031006 for <4835@emacsbugs.donarmstrong.com>; Sat, 31 Oct 2009 13:57:56 -0700 Received: from furry (173-14-147-246-NewEngland.hfc.comcastbusiness.net [173.14.147.246]) (authenticated bits=0) by pantheon-po27.its.yale.edu (8.12.11.20060308/8.12.11) with ESMTP id n9VKvn30008530 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Sat, 31 Oct 2009 16:57:49 -0400 Received: by furry (Postfix, from userid 1000) id 86968C070; Sat, 31 Oct 2009 16:57:49 -0400 (EDT) From: Chong Yidong To: "Drew Adams" Cc: "'Stefan Monnier'" , <4835@debbugs.gnu.org> Subject: Re: bug#4835: 23.1; Improper `Invalid face reference' messages. Performance degraded. References: <87ws2bfkyt.fsf@stupidchicken.com> <87iqdvmk1j.fsf@stupidchicken.com> <6ABF3195EEF74EB780205758FA68D61B@us.oracle.com> Date: Sat, 31 Oct 2009 16:57:48 -0400 In-Reply-To: <6ABF3195EEF74EB780205758FA68D61B@us.oracle.com> (Drew Adams's message of "Sat, 31 Oct 2009 12:51:46 -0700") Message-ID: <87pr83th6b.fsf@stupidchicken.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-YaleITSMailFilter: Version 1.2c (attachment(s) not renamed) "Drew Adams" writes: > We should make the right fix, not the easiest one based on our not > being sure what the code does or why. It's pretty clear, from the doc string plus the various parts of font-lock code that assume function names, that the code was not intended to work with lambda expressions. It would be nice if it worked with lambda expressions, but that would be a new feature, not a bug fix. From drew.adams@oracle.com Sat Oct 31 14:10:19 2009 Received: (at 4835) by emacsbugs.donarmstrong.com; 31 Oct 2009 21:10:19 +0000 X-Spam-Checker-Version: SpamAssassin 3.2.5-bugs.debian.org_2005_01_02 (2008-06-10) on rzlab.ucr.edu X-Spam-Level: X-Spam-Bayes: score:0.5 Bayes not run. spammytokens:Tokens not available. hammytokens:Tokens not available. X-Spam-Status: No, score=-3.7 required=4.0 tests=AWL,FOURLA,HAS_BUG_NUMBER autolearn=ham version=3.2.5-bugs.debian.org_2005_01_02 Received: from acsinet12.oracle.com (acsinet12.oracle.com [141.146.126.234]) by rzlab.ucr.edu (8.14.3/8.14.3/Debian-5) with ESMTP id n9VLAIkI000874 for <4835@emacsbugs.donarmstrong.com>; Sat, 31 Oct 2009 14:10:19 -0700 Received: from acsinet15.oracle.com (acsinet15.oracle.com [141.146.126.227]) by acsinet12.oracle.com (Switch-3.3.1/Switch-3.3.1) with ESMTP id n9VL9wjN019067 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Sat, 31 Oct 2009 21:09:59 GMT Received: from acsmt354.oracle.com (acsmt354.oracle.com [141.146.40.154]) by acsinet15.oracle.com (Switch-3.3.1/Switch-3.3.1) with ESMTP id n9VKwKwE027452; Sat, 31 Oct 2009 21:11:32 GMT Received: from abhmt010.oracle.com by acsmt353.oracle.com with ESMTP id 20744018341257023403; Sat, 31 Oct 2009 14:10:03 -0700 Received: from dradamslap1 (/141.144.80.25) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Sat, 31 Oct 2009 14:10:03 -0700 From: "Drew Adams" To: "'Chong Yidong'" Cc: "'Stefan Monnier'" , <4835@debbugs.gnu.org> References: <87ws2bfkyt.fsf@stupidchicken.com><87iqdvmk1j.fsf@stupidchicken.com><6ABF3195EEF74EB780205758FA68D61B@us.oracle.com> <87pr83th6b.fsf@stupidchicken.com> Subject: RE: bug#4835: 23.1; Improper `Invalid face reference' messages. Performance degraded. Date: Sat, 31 Oct 2009 14:10:01 -0700 Message-ID: <8F2C3E771C104B03B9926AB1AAFD02A5@us.oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Office Outlook 11 Thread-Index: AcpabNWYi3JmtX3JSN6GbkHjASkuJgAALJiQ In-Reply-To: <87pr83th6b.fsf@stupidchicken.com> X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5579 X-Source-IP: acsmt354.oracle.com [141.146.40.154] X-Auth-Type: Internal IP X-CT-RefId: str=0001.0A090207.4AECA7B1.00DF:SCFMA4539814,ss=1,fgs=0 > > We should make the right fix, not the easiest one based on our not > > being sure what the code does or why. > > It's pretty clear, from the doc string plus the various parts of > font-lock code that assume function names, that the code was not > intended to work with lambda expressions. It would be nice > if it worked with lambda expressions, but that would be a new > feature, not a bug fix. Nonsense. You could say that it's crystal clear from the Elisp manual that _function_ was meant (since that's what is says) and not symbol function or "function name" (which would be a string). The code is bugged wrt its mission as documented in the manual, which is the closest thing we have to a spec. Kidding aside, this is a chance to DTRT, not just sidestep the problem because the code might be unclear or it takes some studying to understand it. At any rate, as I said, the bug (`Invalid face reference' messages and the attendant slowdown) seems to be there even when I use a symbol function. Unless I'm doing something wrong (which is why I asked for help). From cyd@stupidchicken.com Sat Oct 31 15:05:35 2009 Received: (at 4835) by emacsbugs.donarmstrong.com; 31 Oct 2009 22:05:35 +0000 X-Spam-Checker-Version: SpamAssassin 3.2.5-bugs.debian.org_2005_01_02 (2008-06-10) on rzlab.ucr.edu X-Spam-Level: X-Spam-Bayes: score:0.5 Bayes not run. spammytokens:Tokens not available. hammytokens:Tokens not available. X-Spam-Status: No, score=-1.8 required=4.0 tests=AWL,HAS_BUG_NUMBER autolearn=ham version=3.2.5-bugs.debian.org_2005_01_02 Received: from pantheon-po27.its.yale.edu (pantheon-po27.its.yale.edu [130.132.50.122]) by rzlab.ucr.edu (8.14.3/8.14.3/Debian-5) with ESMTP id n9VM5XgA008521 for <4835@emacsbugs.donarmstrong.com>; Sat, 31 Oct 2009 15:05:35 -0700 Received: from furry (173-14-147-246-NewEngland.hfc.comcastbusiness.net [173.14.147.246]) (authenticated bits=0) by pantheon-po27.its.yale.edu (8.12.11.20060308/8.12.11) with ESMTP id n9VM5SUe008190 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Sat, 31 Oct 2009 18:05:28 -0400 Received: by furry (Postfix, from userid 1000) id 9DC61C070; Sat, 31 Oct 2009 18:05:28 -0400 (EDT) From: Chong Yidong To: "Drew Adams" Cc: "'Stefan Monnier'" , <4835@debbugs.gnu.org> Subject: Re: bug#4835: 23.1; Improper `Invalid face reference' messages. Performance degraded. References: <87ws2bfkyt.fsf@stupidchicken.com> <87iqdvmk1j.fsf@stupidchicken.com> <6ABF3195EEF74EB780205758FA68D61B@us.oracle.com> <87pr83th6b.fsf@stupidchicken.com> <8F2C3E771C104B03B9926AB1AAFD02A5@us.oracle.com> Date: Sat, 31 Oct 2009 18:05:28 -0400 In-Reply-To: <8F2C3E771C104B03B9926AB1AAFD02A5@us.oracle.com> (Drew Adams's message of "Sat, 31 Oct 2009 14:10:01 -0700") Message-ID: <87zl7743tj.fsf@stupidchicken.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-YaleITSMailFilter: Version 1.2c (attachment(s) not renamed) "Drew Adams" writes: > Nonsense. You could say that it's crystal clear from the Elisp manual > that _function_ was meant (since that's what is says) and not symbol > function or "function name" (which would be a string). The code is > bugged wrt its mission as documented in the manual, which is the > closest thing we have to a spec. Nonsense. The manual is not a spec. From drew.adams@oracle.com Sat Oct 31 15:41:31 2009 Received: (at 4835) by emacsbugs.donarmstrong.com; 31 Oct 2009 22:41:32 +0000 X-Spam-Checker-Version: SpamAssassin 3.2.5-bugs.debian.org_2005_01_02 (2008-06-10) on rzlab.ucr.edu X-Spam-Level: X-Spam-Bayes: score:0.5 Bayes not run. spammytokens:Tokens not available. hammytokens:Tokens not available. X-Spam-Status: No, score=-3.7 required=4.0 tests=AWL,HAS_BUG_NUMBER, MURPHY_SEX_L2 autolearn=ham version=3.2.5-bugs.debian.org_2005_01_02 Received: from acsinet11.oracle.com (acsinet11.oracle.com [141.146.126.233]) by rzlab.ucr.edu (8.14.3/8.14.3/Debian-5) with ESMTP id n9VMfUKk013522 for <4835@emacsbugs.donarmstrong.com>; Sat, 31 Oct 2009 15:41:31 -0700 Received: from acsinet15.oracle.com (acsinet15.oracle.com [141.146.126.227]) by acsinet11.oracle.com (Switch-3.3.1/Switch-3.3.1) with ESMTP id n9VMfw5e002101 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Sat, 31 Oct 2009 22:42:00 GMT Received: from acsmt355.oracle.com (acsmt355.oracle.com [141.146.40.155]) by acsinet15.oracle.com (Switch-3.3.1/Switch-3.3.1) with ESMTP id n9VLSMej024020; Sat, 31 Oct 2009 22:42:45 GMT Received: from abhmt010.oracle.com by acsmt353.oracle.com with ESMTP id 20744033801257028829; Sat, 31 Oct 2009 15:40:29 -0700 Received: from dradamslap1 (/141.144.80.25) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Sat, 31 Oct 2009 15:40:29 -0700 From: "Drew Adams" To: "'Chong Yidong'" Cc: "'Stefan Monnier'" , <4835@debbugs.gnu.org> References: <87ws2bfkyt.fsf@stupidchicken.com><87iqdvmk1j.fsf@stupidchicken.com><6ABF3195EEF74EB780205758FA68D61B@us.oracle.com><87pr83th6b.fsf@stupidchicken.com><8F2C3E771C104B03B9926AB1AAFD02A5@us.oracle.com> <87zl7743tj.fsf@stupidchicken.com> Subject: RE: bug#4835: 23.1; Improper `Invalid face reference' messages. Performance degraded. Date: Sat, 31 Oct 2009 15:40:26 -0700 Message-ID: <5101E088BA774F93BCA9BA30DF7C826F@us.oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Office Outlook 11 Thread-Index: AcpadkjyHWiCqldjT0q5jpSMCOW+CAAAN37A In-Reply-To: <87zl7743tj.fsf@stupidchicken.com> X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5579 X-Source-IP: acsmt355.oracle.com [141.146.40.155] X-Auth-Type: Internal IP X-CT-RefId: str=0001.0A090201.4AECBD11.0014:SCFMA4539814,ss=1,fgs=0 > > Nonsense. You could say that it's crystal clear from the > > Elisp manual that _function_ was meant (since that's what > > is says) and not symbol function or "function name" (which > > would be a string). The code is bugged wrt its mission as > > documented in the manual, which is the > > closest thing we have to a spec. > > Nonsense. The manual is not a spec. What else do we have to go on? The code is bugged, and no one knows what the original intention was. How can you tell that function was _not_ intended and using `fboundp' instead of `functionp' was _not_ just an oversight? As I mentioned, the font-lock code _itself_ apparently uses a lambda form as a function here. And the doc clearly says a function is called for, without any further qualification. You seem to be arbitrarily imposing a restriction which is unwarranted. Your only reasons have been: 1. The doc string says "function name". That is wrong anyway, since that would be a string (which won't work). And if the manual is no spec, a doc string is even less of one. You are favoring an incorrect doc string over a lengthy passage in the manual that mentions the criterion of being a "function" multiple times. Why? 2. The currently bugged behavior, in at least one case when a lambda form is tried. Why canonize this bugged behavior? But: a. Font-lock itself uses a lambda form (without an error, for some reason - just why should be investigated). b. The manual clearly says that a function is allowed here. It says so in several places in several ways. "A function" means any function, not just a symbol. c. There is no comment in the code indicating that we intentionally use `fboundp' for some reason. Nothing speaks about an intended restriction or what problems `fboundp' avoids. Nothing indicates that `fboundp' is really intended instead of `functionp', and not just an oversight. d. Replacing `fboundp' by `functionp' might well fix the bug and thus align the code with the manual's description of what it's supposed to do. The remaining thing to do would then be to fix the doc string - which needs to be fixed anyway. Instead of fixing the bug (by allowing any function), you want to cast it in concrete and document the bugged behavior as if it were intentional. Doesn't make sense to me. What does the code actually _do_ with this function? That is the real question. Until we answer that question, there is no sense imposing an arbitrary interpretation on things and adding unnecessary restrictions. AFAICT, the code simply passes the function to `funcall'. Why is there any need to restrict funcall's arg here to be an `fboundp' symbol? You haven't given one reason why this should be limited to a symbol. Show why `functionp' is problematic, and you might have an argument. All you've shown is that the call to `fboundp' fails for a lambda form, so the wrong code path is followed. The solution to that is to use `functionp' so the right code path will be followed. From cyd@stupidchicken.com Sat Oct 31 16:42:19 2009 Received: (at 4835) by emacsbugs.donarmstrong.com; 31 Oct 2009 23:42:20 +0000 X-Spam-Checker-Version: SpamAssassin 3.2.5-bugs.debian.org_2005_01_02 (2008-06-10) on rzlab.ucr.edu X-Spam-Level: X-Spam-Bayes: score:0.5 Bayes not run. spammytokens:Tokens not available. hammytokens:Tokens not available. X-Spam-Status: No, score=-1.7 required=4.0 tests=AWL,HAS_BUG_NUMBER autolearn=ham version=3.2.5-bugs.debian.org_2005_01_02 Received: from pantheon-po30.its.yale.edu (pantheon-po30.its.yale.edu [130.132.50.4]) by rzlab.ucr.edu (8.14.3/8.14.3/Debian-5) with ESMTP id n9VNgIva021941 for <4835@emacsbugs.donarmstrong.com>; Sat, 31 Oct 2009 16:42:19 -0700 Received: from furry (adsl-99-69-52-129.dsl.wlfrct.sbcglobal.net [99.69.52.129]) (authenticated bits=0) by pantheon-po30.its.yale.edu (8.12.11.20060308/8.12.11) with ESMTP id n9VNgBh9016810 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Sat, 31 Oct 2009 19:42:12 -0400 Received: by furry (Postfix, from userid 1000) id 66822C070; Sat, 31 Oct 2009 19:42:11 -0400 (EDT) From: Chong Yidong To: "Drew Adams" Cc: "'Stefan Monnier'" , <4835@debbugs.gnu.org> Subject: Re: bug#4835: 23.1; Improper `Invalid face reference' messages. Performance degraded. References: <87ws2bfkyt.fsf@stupidchicken.com> <87iqdvmk1j.fsf@stupidchicken.com> <6ABF3195EEF74EB780205758FA68D61B@us.oracle.com> <87pr83th6b.fsf@stupidchicken.com> <8F2C3E771C104B03B9926AB1AAFD02A5@us.oracle.com> <87zl7743tj.fsf@stupidchicken.com> <5101E088BA774F93BCA9BA30DF7C826F@us.oracle.com> Date: Sat, 31 Oct 2009 19:42:11 -0400 In-Reply-To: <5101E088BA774F93BCA9BA30DF7C826F@us.oracle.com> (Drew Adams's message of "Sat, 31 Oct 2009 15:40:26 -0700") Message-ID: <877hubku5o.fsf@stupidchicken.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-YaleITSMailFilter: Version 1.2c (attachment(s) not renamed) "Drew Adams" writes: > You haven't given one reason why this should be limited to a symbol. Show why > `functionp' is problematic, and you might have an argument. I'm afraid I don't have time to wade through the sea of words, but I've stated that it would be nice if a lambda expression can be used. But I doubt it's worthwhile to change this for 23.2. Assuming there's no third-party code relying on using a lambda expression (which does not work properly), for now we should simply document the case that works. From drew.adams@oracle.com Sat Oct 31 17:04:36 2009 Received: (at 4835) by emacsbugs.donarmstrong.com; 1 Nov 2009 00:04:36 +0000 X-Spam-Checker-Version: SpamAssassin 3.2.5-bugs.debian.org_2005_01_02 (2008-06-10) on rzlab.ucr.edu X-Spam-Level: X-Spam-Bayes: score:0.5 Bayes not run. spammytokens:Tokens not available. hammytokens:Tokens not available. X-Spam-Status: No, score=-3.8 required=4.0 tests=AWL,HAS_BUG_NUMBER autolearn=ham version=3.2.5-bugs.debian.org_2005_01_02 Received: from acsinet11.oracle.com (acsinet11.oracle.com [141.146.126.233]) by rzlab.ucr.edu (8.14.3/8.14.3/Debian-5) with ESMTP id nA104Z9I024569 for <4835@emacsbugs.donarmstrong.com>; Sat, 31 Oct 2009 17:04:36 -0700 Received: from rgminet13.oracle.com (rcsinet13.oracle.com [148.87.113.125]) by acsinet11.oracle.com (Switch-3.3.1/Switch-3.3.1) with ESMTP id nA1054tL004312 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Sun, 1 Nov 2009 00:05:05 GMT Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156]) by rgminet13.oracle.com (Switch-3.3.1/Switch-3.3.1) with ESMTP id n9VNiRW6030122; Sun, 1 Nov 2009 00:05:05 GMT Received: from abhmt018.oracle.com by acsmt358.oracle.com with ESMTP id 20744543991257033859; Sat, 31 Oct 2009 19:04:19 -0500 Received: from dradamslap1 (/24.5.185.59) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Sat, 31 Oct 2009 17:04:19 -0700 From: "Drew Adams" To: "'Chong Yidong'" Cc: "'Stefan Monnier'" , <4835@debbugs.gnu.org> References: <87ws2bfkyt.fsf@stupidchicken.com><87iqdvmk1j.fsf@stupidchicken.com><6ABF3195EEF74EB780205758FA68D61B@us.oracle.com><87pr83th6b.fsf@stupidchicken.com><8F2C3E771C104B03B9926AB1AAFD02A5@us.oracle.com><87zl7743tj.fsf@stupidchicken.com><5101E088BA774F93BCA9BA30DF7C826F@us.oracle.com> <877hubku5o.fsf@stupidchicken.com> Subject: RE: bug#4835: 23.1; Improper `Invalid face reference' messages. Performance degraded. Date: Sat, 31 Oct 2009 17:04:16 -0700 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Office Outlook 11 Thread-Index: Acpag8xnCcGiX+fVRu2lU35ZF8vAuAAAN/tw In-Reply-To: <877hubku5o.fsf@stupidchicken.com> X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5579 X-Source-IP: acsmt356.oracle.com [141.146.40.156] X-Auth-Type: Internal IP X-CT-RefId: str=0001.0A090206.4AECD08A.0019:SCFMA4539814,ss=1,fgs=0 > > You haven't given one reason why this should be limited to > > a symbol. Show why `functionp' is problematic, and you > > might have an argument. > > I'm afraid I don't have time to wade through the sea of > words, but I've stated that it would be nice if a lambda > expression can be used. But I doubt it's worthwhile to > change this for 23.2. Why? Why wouldn't it be worthwhile to change `fboundp' to `functionp'? > Assuming there's no third-party code relying on using a > lambda expression (which does not work properly), for > now we should simply document the case that works. Then please consider fixing this to allow all functions for 23.3, if you don't want to fix it now. Do I need to file another bug report for that? In any case, _this_ bug is about the `Invalid face reference' messages and performance degradation. I get those messages even when using a symbol function, so this bug is not fixed by simply adding a restriction to symbols. If I'm mistaken and have missed something, please advise. I will be happy if I can get the function to work without provoking those bizarre error messages and slowing Emacs to a crawl. I don't have a problem with using a symbol function instead of a lambda. IOW, for Emacs generally, I agree with you that "it would be nice if a lambda expression can be used" at some point. But my concern now is the `Invalid face reference' messages. I corrected the code to use a symbol, not a lambda, but the problem remains. Again, if I missed something, please let me know. I'm no expert on font-lock. I'm hoping that I simply messed up somewhere, and there is not some bug in the font-lock code that is causing this behavior. The latter would mean that I won't be able to make this work in other Emacs versions, even after the bug is fixed. The former would mean I would learn something; thank you; and be on my way. From drew.adams@oracle.com Mon Nov 9 15:44:34 2009 Received: (at 4835) by emacsbugs.donarmstrong.com; 9 Nov 2009 23:44:34 +0000 X-Spam-Checker-Version: SpamAssassin 3.2.5-bugs.debian.org_2005_01_02 (2008-06-10) on rzlab.ucr.edu X-Spam-Level: X-Spam-Bayes: score:0.5 Bayes not run. spammytokens:Tokens not available. hammytokens:Tokens not available. X-Spam-Status: No, score=-3.8 required=4.0 tests=AWL,HAS_BUG_NUMBER autolearn=ham version=3.2.5-bugs.debian.org_2005_01_02 Received: from rgminet12.oracle.com (rcsinet12.oracle.com [148.87.113.124]) by rzlab.ucr.edu (8.14.3/8.14.3/Debian-5) with ESMTP id nA9NiWFD009666 for <4835@emacsbugs.donarmstrong.com>; Mon, 9 Nov 2009 15:44:34 -0800 Received: from rgminet13.oracle.com (rcsinet13.oracle.com [148.87.113.125]) by rgminet12.oracle.com (Switch-3.3.1/Switch-3.3.1) with ESMTP id nA9NiOQN014325 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Mon, 9 Nov 2009 23:44:26 GMT Received: from acsmt354.oracle.com (acsmt354.oracle.com [141.146.40.154]) by rgminet13.oracle.com (Switch-3.3.1/Switch-3.3.1) with ESMTP id nA958B2o021291; Mon, 9 Nov 2009 23:44:24 GMT Received: from abhmt019.oracle.com by acsmt354.oracle.com with ESMTP id 189374001257810262; Mon, 09 Nov 2009 15:44:22 -0800 Received: from dradamslap1 (/130.35.178.194) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Mon, 09 Nov 2009 15:44:22 -0800 From: "Drew Adams" To: <4835@debbugs.gnu.org>, "'Chong Yidong'" References: <87ws2bfkyt.fsf@stupidchicken.com><87iqdvmk1j.fsf@stupidchicken.com><6ABF3195EEF74EB780205758FA68D61B@us.oracle.com><87pr83th6b.fsf@stupidchicken.com><8F2C3E771C104B03B9926AB1AAFD02A5@us.oracle.com><87zl7743tj.fsf@stupidchicken.com><5101E088BA774F93BCA9BA30DF7C826F@us.oracle.com><877hubku5o.fsf@stupidchicken.com> Subject: RE: bug#4835: 23.1;Improper `Invalid face reference' messages. Performance degraded. Date: Mon, 9 Nov 2009 15:44:24 -0800 Message-ID: <38BD7996136A41F1A0F8A2B5784A0D16@us.oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Office Outlook 11 In-Reply-To: Thread-Index: Acpag8xnCcGiX+fVRu2lU35ZF8vAuAAAN/twAcRcw4A= X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5579 X-Source-IP: acsmt354.oracle.com [141.146.40.154] X-Auth-Type: Internal IP X-CT-RefId: str=0001.0A090209.4AF8A957.0256:SCFMA4539814,ss=1,fgs=0 Any news on this? > In any case, _this_ bug is about the `Invalid face reference' > messages and performance degradation. I get those messages > even when using a symbol function, so this bug is not fixed > by simply adding a restriction to symbols. > > If I'm mistaken and have missed something, please advise. I > will be happy if I can get the function to work without > provoking those bizarre error messages and slowing Emacs to > a crawl. I don't have a problem with using a symbol function > instead of a lambda. > > IOW, for Emacs generally, I agree with you that "it would be > nice if a lambda expression can be used" at some point. > But my concern now is the `Invalid face reference' messages. > I corrected the code to use a symbol, not a lambda, but the > problem remains. > > Again, if I missed something, please let me know. I'm no > expert on font-lock. I'm hoping that I simply messed up > somewhere, and there is not some bug in the font-lock code > that is causing this behavior. The latter would mean that > I won't be able to make this work in other Emacs versions, > even after the bug is fixed. The former would mean I would > learn something; thank you; and be on my way. From drew.adams@oracle.com Wed Dec 9 10:24:05 2009 Received: (at 4835) by emacsbugs.donarmstrong.com; 9 Dec 2009 18:24:05 +0000 X-Spam-Checker-Version: SpamAssassin 3.2.5-bugs.debian.org_2005_01_02 (2008-06-10) on rzlab.ucr.edu X-Spam-Level: X-Spam-Bayes: score:0.5 Bayes not run. spammytokens:Tokens not available. hammytokens:Tokens not available. X-Spam-Status: No, score=-2.0 required=4.0 tests=AWL,HAS_BUG_NUMBER, MIME_QP_LONG_LINE,NEXTPART autolearn=no version=3.2.5-bugs.debian.org_2005_01_02 Received: from rcsinet12.oracle.com (rcsinet12.oracle.com [148.87.113.124]) by rzlab.ucr.edu (8.14.3/8.14.3/Debian-5) with ESMTP id nB9IO4oe008717 for <4835@emacsbugs.donarmstrong.com>; Wed, 9 Dec 2009 10:24:05 -0800 Received: from rgminet15.oracle.com (rcsinet15.oracle.com [148.87.113.117]) by rcsinet12.oracle.com (Switch-3.4.1/Switch-3.4.1) with ESMTP id nB9INuVk032044 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Wed, 9 Dec 2009 18:23:57 GMT Received: from acsmt354.oracle.com (acsmt354.oracle.com [141.146.40.154]) by rgminet15.oracle.com (Switch-3.3.1/Switch-3.3.1) with ESMTP id nB92ggYU023137; Wed, 9 Dec 2009 18:23:59 GMT Received: from abhmt014.oracle.com by acsmt353.oracle.com with ESMTP id 901103781260383016; Wed, 09 Dec 2009 10:23:36 -0800 Received: from dradamslap1 (/130.35.178.194) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Wed, 09 Dec 2009 10:23:36 -0800 From: "Drew Adams" To: <4835@debbugs.gnu.org>, "'Stefan Monnier'" References: <87ws2bfkyt.fsf@stupidchicken.com><87iqdvmk1j.fsf@stupidchicken.com><6ABF3195EEF74EB780205758FA68D61B@us.oracle.com><87pr83th6b.fsf@stupidchicken.com><8F2C3E771C104B03B9926AB1AAFD02A5@us.oracle.com><87zl7743tj.fsf@stupidchicken.com><5101E088BA774F93BCA9BA30DF7C826F@us.oracle.com><877hubku5o.fsf@stupidchicken.com> <38BD7996136A41F1A0F8A2B5784A0D16@us.oracle.com> Subject: RE: bug#4835: 23.1;Improper `Invalid face reference' messages. Performance degraded. Date: Wed, 9 Dec 2009 10:23:37 -0800 Message-ID: <006573D5DAC94F779FC64D2E0FEEEE7E@us.oracle.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_NextPart_000_001E_01CA78B9.AB99B2A0" X-Priority: 1 (Highest) X-MSMail-Priority: High X-Mailer: Microsoft Office Outlook 11 In-Reply-To: <38BD7996136A41F1A0F8A2B5784A0D16@us.oracle.com> Thread-Index: Acpag8xnCcGiX+fVRu2lU35ZF8vAuAAAN/twAcRcw4AF2KkaUA== X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5579 Importance: High X-Message-Flag: Follow up X-Auth-Type: Internal IP X-Source-IP: rcsinet15.oracle.com [148.87.113.117] X-CT-RefId: str=0001.0A090204.4B1FEB3E.000D:SCFMA4539811,ss=1,fgs=0 This is a multi-part message in MIME format. ------=_NextPart_000_001E_01CA78B9.AB99B2A0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit In hopes of getting some new attention to this bug, I've included a simple test case in the attached file. Just use emacs -Q, then load the file. Then `C-x 5 b *Messages*'. Then `M-x column-marker-1'. Then click the *Messages* frame to select it. At the last step, you will see zillions of messages logged. No messages are logged when the highlighting occurs, however. They appear only when you do something else (e.g. choose the *Messages* window). And they keep on coming, as you interact with Emacs. I assume they are coming from the display engine. [I followed the above recipe with point in column 21. See the comments at the end of the attached file - you will see that they reference "column 22".] The relevant part of `font-lock-keywords' is this: (column-marker-move-to-22 (0 column-marker-1 prepend t)) Function `column-marker-move-to-22' has this as its `symbol-function' when the highlighting is turned on: (lambda (end) (let ((start (point))) (when (> end (point-max)) (setq end (point-max))) (unless (< (current-column) 22) (forward-line 1)) (when (< (current-column) 22) (move-to-column 22)) (while (and (< (current-column) 22) (< (point) end) (= 0 (+ (forward-line 1)(current-column)))) (move-to-column 22)) (if (and (= 22 (current-column)) (<= (point) end) (> (point) start)) (progn (set-match-data (list (1- (point)) (point))) t) (goto-char start) nil))) [Note: The issue of using a `lambda' form in `font-lock-keywords' was removed from the bug recipe: I instead now use a symbol that has a function definition. This unfortunately changes nothing wrt the bug.] The code works fine: column 22 is highlighted as expected. (You can turn off highlighting with `C-u M-x column-marker-1'.) The only problem is the zillions of messages that are logged to *Messages* endlessly. That degrades performance so much that it brings Emacs to a crawl. This is the case for both Emacs 22 and 23. It seems that each redisplay causes this sequence of four messages to be logged many times, over and over: Invalid face reference: prepend Invalid face reference: 0 Invalid face reference: column-marker-move-to-22 Invalid face reference: t Again, I *hope* I am simply doing something wrong, and you will help me by letting me know what is wrong and how to fix it. As far as I can tell, however, this is a serious bug. ------=_NextPart_000_001E_01CA78B9.AB99B2A0 Content-Type: application/octet-stream; name="throw-col-marker.el" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="throw-col-marker.el" (defface column-marker-1 '((t (:background "gray"))) "" :group 'faces)=0A= =0A= (defvar column-marker-vars ())=0A= (make-variable-buffer-local 'column-marker-vars)=0A= =0A= (defvar column-marker-1 ())=0A= (make-variable-buffer-local 'column-marker-1)=0A= (defun column-marker-1 (arg)=0A= (interactive "P")=0A= (unless (memq 'column-marker-1 column-marker-vars)=0A= (push 'column-marker-1 column-marker-vars))=0A= (cond ((null arg)=0A= (column-marker-internal=0A= 'column-marker-1 (1+ (current-column)) 'column-marker-1))=0A= ((consp arg)=0A= (if (=3D 4 (car arg))=0A= (column-marker-internal 'column-marker-1 nil)=0A= (dolist (var column-marker-vars)=0A= (column-marker-internal var nil))))=0A= ((and (integerp arg) (>=3D arg 0))=0A= (column-marker-internal 'column-marker-1=0A= (1+ (prefix-numeric-value arg))=0A= 'column-marker-1))=0A= (t=0A= (dolist (var column-marker-vars)=0A= (column-marker-internal var nil)))))=0A= =0A= (defun column-marker-find (col)=0A= "Defines a function to locate a character in column COL.=0A= Returns the function symbol, named `column-marker-move-to-COL'."=0A= (let ((fn-symb (intern (format "column-marker-move-to-%d" col))))=0A= (fset `,fn-symb=0A= `(lambda (end)=0A= (let ((start (point)))=0A= (when (> end (point-max)) (setq end (point-max)))=0A= =0A= (unless (< (current-column) ,col) (forward-line 1))=0A= (when (< (current-column) ,col) (move-to-column ,col))=0A= (while (and (< (current-column) ,col) (< (point) end)=0A= (=3D 0 (+ (forward-line 1) (current-column))))=0A= (move-to-column ,col))=0A= (if (and (=3D ,col (current-column))=0A= (<=3D (point) end) (> (point) start))=0A= (progn (set-match-data (list (1- (point)) (point))) t)=0A= (goto-char start)=0A= nil))))=0A= fn-symb))=0A= =0A= (defun column-marker-internal (sym col &optional face)=0A= "SYM is the symbol for holding the column marker context.=0A= COL is the column in which a marker should be set.=0A= Supplying nil or 0 for COL turns off the marker.=0A= FACE is the face to use. If nil, then face `column-marker-1' is used."=0A= (setq face (or face 'column-marker-1))=0A= (when (symbol-value sym)=0A= (font-lock-remove-keywords nil (symbol-value sym))=0A= (set sym nil))=0A= (when (or (listp col) (< col 0)) (setq col nil))=0A= (when col=0A= (set sym `((,(column-marker-find col) (0 ,face prepend t))))=0A= (font-lock-add-keywords nil (symbol-value sym) t))=0A= (font-lock-fontify-buffer))=0A= =0A= =0A= ;; --------------------------------------------------------=0A= ;; These are the messages in *Messages*, with this sequence repeated a=0A= ;; zillion times. Note that the messages do *not* appear as soon as I=0A= ;; call `M-x column-marker-1' (with point in column 21). They appear=0A= ;; (I think) as soon as I do something that forces redisplay -=0A= ;; e.g. select a window showing *Messages*.=0A= ;;=0A= ;; Invalid face reference: prepend=0A= ;; Invalid face reference: 0=0A= ;; Invalid face reference: column-marker-move-to-22=0A= ;; Invalid face reference: t=0A= =0A= ;;-----------------------------------------------=0A= ;; This is (symbol-function 'column-marker-1):=0A= ;; (lambda=0A= ;; (arg)=0A= ;; (interactive "P")=0A= ;; (unless=0A= ;; (memq 'column-marker-1 column-marker-vars)=0A= ;; (push 'column-marker-1 column-marker-vars))=0A= ;; (cond=0A= ;; ((null arg)=0A= ;; (column-marker-internal 'column-marker-1=0A= ;; (1+=0A= ;; (current-column))=0A= ;; 'column-marker-1))=0A= ;; ((consp arg)=0A= ;; (if=0A= ;; (=3D 4=0A= ;; (car arg))=0A= ;; (column-marker-internal 'column-marker-1 nil)=0A= ;; (dolist=0A= ;; (var column-marker-vars)=0A= ;; (column-marker-internal var nil))))=0A= ;; ((and=0A= ;; (integerp arg)=0A= ;; (>=3D arg 0))=0A= ;; (column-marker-internal 'column-marker-1=0A= ;; (1+=0A= ;; (prefix-numeric-value arg))=0A= ;; 'column-marker-1))=0A= ;; (t=0A= ;; (dolist=0A= ;; (var column-marker-vars)=0A= ;; (column-marker-internal var nil)))))=0A= =0A= ;;-----------------------------------------------=0A= ;; This the *value* of `column-marker-1', when highlighted:=0A= ;; ((column-marker-move-to-22 (0 column-marker-1 prepend t)))=0A= =0A= ;;-----------------------------------------------=0A= ;; This is (symbol-function 'column-marker-move-to-22) when highlighted:=0A= ;; (lambda (end)=0A= ;; (let ((start (point)))=0A= ;; (when (> end (point-max))=0A= ;; (setq end (point-max)))=0A= ;; (unless (< (current-column) 22) (forward-line 1))=0A= ;; (when (< (current-column) 22) (move-to-column 22))=0A= ;; (while (and (< (current-column) 22)=0A= ;; (< (point) end)=0A= ;; (=3D 0 (+ (forward-line 1)(current-column))))=0A= ;; (move-to-column 22))=0A= ;; (if (and (=3D 22 (current-column))=0A= ;; (<=3D (point) end)=0A= ;; (> (point) start))=0A= ;; (progn=0A= ;; (set-match-data=0A= ;; (list (1- (point)) (point)))=0A= ;; t)=0A= ;; (goto-char start)=0A= ;; nil)))=0A= =0A= ;;-----------------------------------------------=0A= ;; This is the part of `font-lock-keywords' that is relevant:=0A= ;; (column-marker-move-to-22 (0 column-marker-1 prepend t))=0A= =0A= ;;-----------------------------------------------=0A= ;; This is the full value of `font-lock-keywords':=0A= ;; (t=0A= ;; = (("(\\(def\\(\\(advice\\|alias\\|generic\\|macro\\*?\\|method\\|setf\\|su= bst\\*?\\|un\\*?\\|ine-\\(condition\\|\\(?:derived\\|\\(?:global\\(?:ized= \\)?-\\)?minor\\|generic\\)-mode\\|method-combination\\|setf-expander\\|s= keleton\\|widget\\|function\\|\\(compiler\\|modify\\|symbol\\)-macro\\)\\= )\\|\\(const\\(ant\\)?\\|custom\\|varalias\\|face\\|parameter\\|var\\)\\|= \\(class\\|group\\|theme\\|package\\|struct\\|type\\)\\)\\)\\>[ = '(]*\\(setf[ ]+\\sw+)\\|\\sw+\\)?"=0A= ;; (1 font-lock-keyword-face)=0A= ;; (9=0A= ;; (cond=0A= ;; ((match-beginning 3)=0A= ;; font-lock-function-name-face)=0A= ;; ((match-beginning 6)=0A= ;; font-lock-variable-name-face)=0A= ;; (t font-lock-type-face))=0A= ;; nil t))=0A= ;; ("^;;;###\\(autoload\\)" 1 font-lock-warning-face prepend)=0A= ;; ("\\[\\(\\^\\)" 1 font-lock-negation-char-face prepend)=0A= ;; = ("(\\(cond\\(?:ition-case\\)?\\|eval-\\(?:a\\(?:fter-load\\|nd-compile\\|= t-startup\\)\\|next-after-load\\|when\\(?:-compile\\)?\\)\\|i\\(?:f\\|nli= ne\\)\\|l\\(?:ambda\\|et\\*?\\)\\|prog[*12nv]?\\|save-\\(?:current-buffer= \\|excursion\\|match-data\\|restriction\\|selected-window\\|window-excurs= ion\\)\\|track-mouse\\|unwind-protect\\|w\\(?:hile\\(?:-no-input\\)?\\|it= h-\\(?:c\\(?:a\\(?:\\(?:se\\|tegory\\)-table\\)\\|urrent-buffer\\)\\|elec= tric-help\\|local-quit\\|no-warnings\\|output-to-\\(?:string\\|temp-buffe= r\\)\\|s\\(?:elected-window\\|yntax-table\\)\\|t\\(?:emp-\\(?:buffer\\|\\= (?:fil\\|messag\\)e\\)\\|imeout\\(?:-handler\\)?\\)\\)\\)\\)\\>" . 1)=0A= ;; = ("(\\(b\\(?:\\(?:loc\\|rea\\)k\\)\\|c\\(?:ase\\|case\\|ompiler-let\\|type= case\\)\\|d\\(?:e\\(?:cla\\(?:im\\|re\\)\\|structuring-bind\\)\\|o\\(?:\\= *\\|list\\|times\\)?\\)\\|e\\(?:\\(?:type\\)?case\\)\\|flet\\|go\\|handle= r-\\(?:bind\\|case\\)\\|i\\(?:gnore-errors\\|n-package\\)\\|l\\(?:abels\\= |exical-let\\*?\\|o\\(?:cally\\|op\\)\\)\\|m\\(?:acrolet\\|ultiple-value-= \\(?:bind\\|prog1\\)\\)\\|proclaim\\|re\\(?:start-\\(?:bind\\|case\\)\\|t= urn\\(?:-from\\)?\\)\\|symbol-macrolet\\|t\\(?:agbody\\|\\(?:h\\|ypecas\\= )e\\)\\|unless\\|w\\(?:hen\\|ith-\\(?:accessors\\|co\\(?:mpilation-unit\\= |ndition-restarts\\)\\|hash-table-iterator\\|input-from-string\\|o\\(?:pe= n-\\(?:file\\|stream\\)\\|utput-to-string\\)\\|package-iterator\\|s\\(?:i= mple-restart\\|lots\\|tandard-io-syntax\\)\\)\\)\\)\\>" . 1)=0A= ;; ("(\\(catch\\|throw\\|featurep\\|provide\\|require\\)\\>[ = ']*\\(\\sw+\\)?"=0A= ;; (1 font-lock-keyword-face)=0A= ;; (2 font-lock-constant-face nil t))=0A= ;; = ("(\\(abort\\|assert\\|warn\\|check-type\\|cerror\\|error\\|signal\\)\\>"= 1 font-lock-warning-face)=0A= ;; ("\\\\\\\\\\[\\(\\sw+\\)\\]" 1 font-lock-constant-face prepend)=0A= ;; ("`\\(\\sw\\sw+\\)'" 1 font-lock-constant-face prepend)=0A= ;; ("\\<:\\sw+\\>" 0 font-lock-builtin-face)=0A= ;; ("\\<\\&\\sw+\\>" . font-lock-type-face)=0A= ;; ((lambda=0A= ;; (bound)=0A= ;; (catch 'found=0A= ;; (while=0A= ;; (re-search-forward = "\\(\\\\\\\\\\)\\(?:\\(\\\\\\\\\\)\\|\\((\\(?:\\?:\\)?\\|[|)]\\)\\)" = bound t)=0A= ;; (unless=0A= ;; (match-beginning 2)=0A= ;; (let=0A= ;; ((face=0A= ;; (get-text-property=0A= ;; (1-=0A= ;; (point))=0A= ;; 'face)))=0A= ;; (when=0A= ;; (or=0A= ;; (and=0A= ;; (listp face)=0A= ;; (memq 'font-lock-string-face face))=0A= ;; (eq 'font-lock-string-face face))=0A= ;; (throw 'found t)))))))=0A= ;; (1 'font-lock-regexp-grouping-backslash prepend)=0A= ;; (3 'font-lock-regexp-grouping-construct prepend))=0A= ;; (column-marker-move-to-22=0A= ;; (0 column-marker-1 prepend t)))=0A= ;; = ("(\\(def\\(\\(advice\\|alias\\|generic\\|macro\\*?\\|method\\|setf\\|sub= st\\*?\\|un\\*?\\|ine-\\(condition\\|\\(?:derived\\|\\(?:global\\(?:ized\= \)?-\\)?minor\\|generic\\)-mode\\|method-combination\\|setf-expander\\|sk= eleton\\|widget\\|function\\|\\(compiler\\|modify\\|symbol\\)-macro\\)\\)= \\|\\(const\\(ant\\)?\\|custom\\|varalias\\|face\\|parameter\\|var\\)\\|\= \(class\\|group\\|theme\\|package\\|struct\\|type\\)\\)\\)\\>[ = '(]*\\(setf[ ]+\\sw+)\\|\\sw+\\)?"=0A= ;; (1 font-lock-keyword-face)=0A= ;; (9=0A= ;; (cond=0A= ;; ((match-beginning 3)=0A= ;; font-lock-function-name-face)=0A= ;; ((match-beginning 6)=0A= ;; font-lock-variable-name-face)=0A= ;; (t font-lock-type-face))=0A= ;; nil t))=0A= ;; ("^;;;###\\(autoload\\)"=0A= ;; (1 font-lock-warning-face prepend))=0A= ;; ("\\[\\(\\^\\)"=0A= ;; (1 font-lock-negation-char-face prepend))=0A= ;; = ("(\\(cond\\(?:ition-case\\)?\\|eval-\\(?:a\\(?:fter-load\\|nd-compile\\|= t-startup\\)\\|next-after-load\\|when\\(?:-compile\\)?\\)\\|i\\(?:f\\|nli= ne\\)\\|l\\(?:ambda\\|et\\*?\\)\\|prog[*12nv]?\\|save-\\(?:current-buffer= \\|excursion\\|match-data\\|restriction\\|selected-window\\|window-excurs= ion\\)\\|track-mouse\\|unwind-protect\\|w\\(?:hile\\(?:-no-input\\)?\\|it= h-\\(?:c\\(?:a\\(?:\\(?:se\\|tegory\\)-table\\)\\|urrent-buffer\\)\\|elec= tric-help\\|local-quit\\|no-warnings\\|output-to-\\(?:string\\|temp-buffe= r\\)\\|s\\(?:elected-window\\|yntax-table\\)\\|t\\(?:emp-\\(?:buffer\\|\\= (?:fil\\|messag\\)e\\)\\|imeout\\(?:-handler\\)?\\)\\)\\)\\)\\>"=0A= ;; (1 font-lock-keyword-face))=0A= ;; = ("(\\(b\\(?:\\(?:loc\\|rea\\)k\\)\\|c\\(?:ase\\|case\\|ompiler-let\\|type= case\\)\\|d\\(?:e\\(?:cla\\(?:im\\|re\\)\\|structuring-bind\\)\\|o\\(?:\\= *\\|list\\|times\\)?\\)\\|e\\(?:\\(?:type\\)?case\\)\\|flet\\|go\\|handle= r-\\(?:bind\\|case\\)\\|i\\(?:gnore-errors\\|n-package\\)\\|l\\(?:abels\\= |exical-let\\*?\\|o\\(?:cally\\|op\\)\\)\\|m\\(?:acrolet\\|ultiple-value-= \\(?:bind\\|prog1\\)\\)\\|proclaim\\|re\\(?:start-\\(?:bind\\|case\\)\\|t= urn\\(?:-from\\)?\\)\\|symbol-macrolet\\|t\\(?:agbody\\|\\(?:h\\|ypecas\\= )e\\)\\|unless\\|w\\(?:hen\\|ith-\\(?:accessors\\|co\\(?:mpilation-unit\\= |ndition-restarts\\)\\|hash-table-iterator\\|input-from-string\\|o\\(?:pe= n-\\(?:file\\|stream\\)\\|utput-to-string\\)\\|package-iterator\\|s\\(?:i= mple-restart\\|lots\\|tandard-io-syntax\\)\\)\\)\\)\\>"=0A= ;; (1 font-lock-keyword-face))=0A= ;; ("(\\(catch\\|throw\\|featurep\\|provide\\|require\\)\\>[ = ']*\\(\\sw+\\)?"=0A= ;; (1 font-lock-keyword-face)=0A= ;; (2 font-lock-constant-face nil t))=0A= ;; = ("(\\(abort\\|assert\\|warn\\|check-type\\|cerror\\|error\\|signal\\)\\>"=0A= ;; (1 font-lock-warning-face))=0A= ;; ("\\\\\\\\\\[\\(\\sw+\\)\\]"=0A= ;; (1 font-lock-constant-face prepend))=0A= ;; ("`\\(\\sw\\sw+\\)'"=0A= ;; (1 font-lock-constant-face prepend))=0A= ;; ("\\<:\\sw+\\>"=0A= ;; (0 font-lock-builtin-face))=0A= ;; ("\\<\\&\\sw+\\>"=0A= ;; (0 font-lock-type-face))=0A= ;; ((lambda=0A= ;; (bound)=0A= ;; (catch 'found=0A= ;; (while=0A= ;; (re-search-forward = "\\(\\\\\\\\\\)\\(?:\\(\\\\\\\\\\)\\|\\((\\(?:\\?:\\)?\\|[|)]\\)\\)" = bound t)=0A= ;; (unless=0A= ;; (match-beginning 2)=0A= ;; (let=0A= ;; ((face=0A= ;; (get-text-property=0A= ;; (1-=0A= ;; (point))=0A= ;; 'face)))=0A= ;; (when=0A= ;; (or=0A= ;; (and=0A= ;; (listp face)=0A= ;; (memq 'font-lock-string-face face))=0A= ;; (eq 'font-lock-string-face face))=0A= ;; (throw 'found t)))))))=0A= ;; (1 'font-lock-regexp-grouping-backslash prepend)=0A= ;; (3 'font-lock-regexp-grouping-construct prepend))=0A= ;; (column-marker-move-to-22=0A= ;; (0 column-marker-1 prepend t))=0A= ;; ("^\\s("=0A= ;; (0=0A= ;; (if=0A= ;; (memq=0A= ;; (get-text-property=0A= ;; (match-beginning 0)=0A= ;; 'face)=0A= ;; '(font-lock-string-face font-lock-doc-face font-lock-comment-face))=0A= ;; (list 'face font-lock-warning-face 'help-echo "Looks like a = toplevel defun: escape the parenthesis"))=0A= ;; prepend)))=0A= =0A= ;;---------------------------------------------------------=0A= ;; For reference, this is a macro used in the original code. I simply=0A= ;; inlined a call to it with arg `column-marker-1', above, to simplify = things.=0A= =0A= ;; ;; (defmacro column-marker-create (var &optional face)=0A= ;; "Define a column marker named VAR.=0A= ;; FACE is the face to use. If nil, then face `column-marker-1' is = used."=0A= ;; (setq face (or face 'column-marker-1))=0A= ;; `(progn=0A= ;; (defvar ,var () "Buffer local. Used internally to store column = marker spec.")=0A= ;; (make-variable-buffer-local ',var)=0A= ;; (defun ,var (arg)=0A= ;; (interactive "P")=0A= ;; (unless (memq ',var column-marker-vars) (push ',var = column-marker-vars))=0A= ;; (cond ((null arg)=0A= ;; (column-marker-internal ',var (1+ (current-column)) = ,face))=0A= ;; ((consp arg)=0A= ;; (if (=3D 4 (car arg))=0A= ;; (column-marker-internal ',var nil)=0A= ;; (dolist (var column-marker-vars)=0A= ;; (column-marker-internal var nil))))=0A= ;; ((and (integerp arg) (>=3D arg 0))=0A= ;; (column-marker-internal ',var (1+ (prefix-numeric-value = arg)) ,face))=0A= ;; (t=0A= ;; (dolist (var column-marker-vars)=0A= ;; (column-marker-internal var nil)))))))=0A= ;;=0A= ;;(column-marker-create column-marker-1)=0A= =0A= =0A= ------=_NextPart_000_001E_01CA78B9.AB99B2A0-- From geb-bug-gnu-emacs@m.gmane.org Wed Dec 9 15:13:48 2009 Received: (at submit) by emacsbugs.donarmstrong.com; 9 Dec 2009 23:13:48 +0000 X-Spam-Checker-Version: SpamAssassin 3.2.5-bugs.debian.org_2005_01_02 (2008-06-10) on rzlab.ucr.edu X-Spam-Level: X-Spam-Bayes: score:0.5 Bayes not run. spammytokens:Tokens not available. hammytokens:Tokens not available. X-Spam-Status: No, score=-3.0 required=4.0 tests=HAS_BUG_NUMBER autolearn=ham version=3.2.5-bugs.debian.org_2005_01_02 Received: from lists.gnu.org (lists.gnu.org [199.232.76.165]) by rzlab.ucr.edu (8.14.3/8.14.3/Debian-5) with ESMTP id nB9NDkK1009505 for ; Wed, 9 Dec 2009 15:13:48 -0800 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1NIVj4-0007H1-RW for bug-gnu-emacs@gnu.org; Wed, 09 Dec 2009 18:13:42 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1NIVj0-0007Ee-4U for bug-gnu-emacs@gnu.org; Wed, 09 Dec 2009 18:13:42 -0500 Received: from [199.232.76.173] (port=46477 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NIVj0-0007Ea-1s for bug-gnu-emacs@gnu.org; Wed, 09 Dec 2009 18:13:38 -0500 Received: from lo.gmane.org ([80.91.229.12]:60330) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1NIViz-00025z-No for bug-gnu-emacs@gnu.org; Wed, 09 Dec 2009 18:13:37 -0500 Received: from list by lo.gmane.org with local (Exim 4.50) id 1NIVim-0001RJ-43 for bug-gnu-emacs@gnu.org; Thu, 10 Dec 2009 00:13:24 +0100 Received: from c-16c5e455.04-211-6c6b701.cust.bredbandsbolaget.se ([85.228.197.22]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Thu, 10 Dec 2009 00:13:24 +0100 Received: from bojohan+news by c-16c5e455.04-211-6c6b701.cust.bredbandsbolaget.se with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Thu, 10 Dec 2009 00:13:24 +0100 X-Injected-Via-Gmane: http://gmane.org/ Mail-Followup-To: bug-gnu-emacs@gnu.org To: bug-gnu-emacs@gnu.org From: bojohan+news@dd.chalmers.se Subject: Re: bug#4835: 23.1; Improper `Invalid face reference' messages. Performance degraded. Date: Thu, 10 Dec 2009 00:12:23 +0100 Lines: 5 Message-ID: <877hsvbv3c.fsf@gnu.org> References: <87ws2bfkyt.fsf@stupidchicken.com> <87iqdvmk1j.fsf@stupidchicken.com> <6ABF3195EEF74EB780205758FA68D61B@us.oracle.com> <87pr83th6b.fsf@stupidchicken.com> <8F2C3E771C104B03B9926AB1AAFD02A5@us.oracle.com> <87zl7743tj.fsf@stupidchicken.com> <5101E088BA774F93BCA9BA30DF7C826F@us.oracle.com> <877hubku5o.fsf@stupidchicken.com> <38BD7996136A41F1A0F8A2B5784A0D16@us.oracle.com> <006573D5DAC94F779FC64D2E0FEEEE7E@us.oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: c-16c5e455.04-211-6c6b701.cust.bredbandsbolaget.se Mail-Copies-To: never User-Agent: Gnus/5.110011 (No Gnus v0.11) Emacs/23.1.50 (gnu/linux) Cancel-Lock: sha1:tx8a/xgnZeFWBhNx53twiQVUzCc= Sender: news X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6 (newer, 3) "Drew Adams" writes: > (set sym `((,(column-marker-find col) (0 ,face prepend t)))) (set sym `((,(column-marker-find col) (0 ',face prepend t)))) From drew.adams@oracle.com Thu Dec 10 09:37:12 2009 Received: (at submit) by emacsbugs.donarmstrong.com; 10 Dec 2009 17:37:12 +0000 X-Spam-Checker-Version: SpamAssassin 3.2.5-bugs.debian.org_2005_01_02 (2008-06-10) on rzlab.ucr.edu X-Spam-Level: X-Spam-Bayes: score:0.5 Bayes not run. spammytokens:Tokens not available. hammytokens:Tokens not available. X-Spam-Status: No, score=-3.7 required=4.0 tests=AWL,HAS_BUG_NUMBER autolearn=ham version=3.2.5-bugs.debian.org_2005_01_02 Received: from lists.gnu.org (lists.gnu.org [199.232.76.165]) by rzlab.ucr.edu (8.14.3/8.14.3/Debian-5) with ESMTP id nBAHbAjf000784 for ; Thu, 10 Dec 2009 09:37:11 -0800 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1NImww-0005Wh-3y for bug-gnu-emacs@gnu.org; Thu, 10 Dec 2009 12:37:10 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1NImwr-0005Rm-FR for bug-gnu-emacs@gnu.org; Thu, 10 Dec 2009 12:37:09 -0500 Received: from [199.232.76.173] (port=51251 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NImwr-0005RL-9C for bug-gnu-emacs@gnu.org; Thu, 10 Dec 2009 12:37:05 -0500 Received: from acsinet12.oracle.com ([141.146.126.234]:33499) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1NImwr-0007tg-Ke for bug-gnu-emacs@gnu.org; Thu, 10 Dec 2009 12:37:05 -0500 Received: from rcsinet15.oracle.com (rcsinet15.oracle.com [148.87.113.117]) by acsinet12.oracle.com (Switch-3.3.1/Switch-3.3.1) with ESMTP id nBAHaant026917 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Thu, 10 Dec 2009 17:36:40 GMT Received: from acsmt353.oracle.com (acsmt353.oracle.com [141.146.40.153]) by rcsinet15.oracle.com (Switch-3.4.1/Switch-3.4.1) with ESMTP id nBAHafKe014991; Thu, 10 Dec 2009 17:36:42 GMT Received: from abhmt012.oracle.com by acsmt354.oracle.com with ESMTP id 925375711260466573; Thu, 10 Dec 2009 09:36:13 -0800 Received: from dradamslap1 (/130.35.178.194) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Thu, 10 Dec 2009 09:36:13 -0800 From: "Drew Adams" To: , <4835@debbugs.gnu.org>, References: <87ws2bfkyt.fsf@stupidchicken.com><87iqdvmk1j.fsf@stupidchicken.com><6ABF3195EEF74EB780205758FA68D61B@us.oracle.com><87pr83th6b.fsf@stupidchicken.com><8F2C3E771C104B03B9926AB1AAFD02A5@us.oracle.com><87zl7743tj.fsf@stupidchicken.com><5101E088BA774F93BCA9BA30DF7C826F@us.oracle.com><877hubku5o.fsf@stupidchicken.com><38BD7996136A41F1A0F8A2B5784A0D16@us.oracle.com><006573D5DAC94F779FC64D2E0FEEEE7E@us.oracle.com> <877hsvbv3c.fsf@gnu.org> Subject: RE: bug#4835: 23.1;Improper `Invalid face reference' messages. Performance degraded. Date: Thu, 10 Dec 2009 09:36:13 -0800 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Office Outlook 11 In-Reply-To: <877hsvbv3c.fsf@gnu.org> Thread-Index: Acp5vDvxjsnK4CB8Rz6T8ajrEbekJwAARFkw X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5579 X-Source-IP: acsmt353.oracle.com [141.146.40.153] X-Auth-Type: Internal IP X-CT-RefId: str=0001.0A090207.4B2131AD.00FD:SCFMA4539814,ss=1,fgs=0 X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6 (newer, 1) > > (set sym `((,(column-marker-find col) (0 ,face prepend t)))) > > (set sym `((,(column-marker-find col) (0 ',face prepend t)))) Ouch! How embarassing. Thank you so much Johan. I would close the bug now myself, but other parts are still open: 1. `message-log-max' = nil should turn off message logging for display-engine messages also. 2. Even if #2 is not feasible, it seems like there should be some way to combine/collapse such messages, as we sometimes do for normal messages (e.g. "[N times]". It would be good to do something, at least, to prevent Emacs slowing to a crawl with repeated messages that say the same thing. 3. As we agreed, it would be good to allow a lambda form in place of a symbol. This part is an enhancement request. From geb-bug-gnu-emacs@m.gmane.org Thu Dec 10 20:50:12 2009 Received: (at submit) by emacsbugs.donarmstrong.com; 11 Dec 2009 04:50:12 +0000 X-Spam-Checker-Version: SpamAssassin 3.2.5-bugs.debian.org_2005_01_02 (2008-06-10) on rzlab.ucr.edu X-Spam-Level: X-Spam-Bayes: score:0.5 Bayes not run. spammytokens:Tokens not available. hammytokens:Tokens not available. X-Spam-Status: No, score=-2.9 required=4.0 tests=AWL,HAS_BUG_NUMBER autolearn=ham version=3.2.5-bugs.debian.org_2005_01_02 Received: from lists.gnu.org (lists.gnu.org [199.232.76.165]) by rzlab.ucr.edu (8.14.3/8.14.3/Debian-5) with ESMTP id nBB4o9sY010511 for ; Thu, 10 Dec 2009 20:50:11 -0800 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1NIxSD-00013W-Ck for bug-gnu-emacs@gnu.org; Thu, 10 Dec 2009 23:50:09 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1NIxS8-00012s-UB for bug-gnu-emacs@gnu.org; Thu, 10 Dec 2009 23:50:08 -0500 Received: from [199.232.76.173] (port=54936 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NIxS8-00012m-Qt for bug-gnu-emacs@gnu.org; Thu, 10 Dec 2009 23:50:04 -0500 Received: from lo.gmane.org ([80.91.229.12]:53653) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1NIxS8-0005o7-K9 for bug-gnu-emacs@gnu.org; Thu, 10 Dec 2009 23:50:04 -0500 Received: from list by lo.gmane.org with local (Exim 4.50) id 1NIxS4-0000Y7-Ir for bug-gnu-emacs@gnu.org; Fri, 11 Dec 2009 05:50:00 +0100 Received: from c-71-237-24-138.hsd1.co.comcast.net ([71.237.24.138]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Fri, 11 Dec 2009 05:50:00 +0100 Received: from kevin.d.rodgers by c-71-237-24-138.hsd1.co.comcast.net with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Fri, 11 Dec 2009 05:50:00 +0100 X-Injected-Via-Gmane: http://gmane.org/ To: bug-gnu-emacs@gnu.org From: Kevin Rodgers Subject: Re: bug#4835: 23.1; Improper `Invalid face reference' messages. Performance degraded. Date: Thu, 10 Dec 2009 21:49:51 -0700 Lines: 14 Message-ID: References: <87ws2bfkyt.fsf@stupidchicken.com> <87iqdvmk1j.fsf@stupidchicken.com> <6ABF3195EEF74EB780205758FA68D61B@us.oracle.com> <87pr83th6b.fsf@stupidchicken.com> <8F2C3E771C104B03B9926AB1AAFD02A5@us.oracle.com> <87zl7743tj.fsf@stupidchicken.com> <5101E088BA774F93BCA9BA30DF7C826F@us.oracle.com> <877hubku5o.fsf@stupidchicken.com> <38BD7996136A41F1A0F8A2B5784A0D16@us.oracle.com> <006573D5DAC94F779FC64D2E0FEEEE7E@us.oracle.com> <877hsvbv3c.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: c-71-237-24-138.hsd1.co.comcast.net User-Agent: Thunderbird 2.0.0.23 (Macintosh/20090812) In-Reply-To: <877hsvbv3c.fsf@gnu.org> Sender: news X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6 (newer, 3) bojohan+news@dd.chalmers.se wrote: > "Drew Adams" writes: > >> (set sym `((,(column-marker-find col) (0 ,face prepend t)))) > > (set sym `((,(column-marker-find col) (0 ',face prepend t)))) Does anyone else find `(... ',form ...) jarring? I would write it as `(... (quote ,form) ...) -- Kevin Rodgers Denver, Colorado, USA From monnier@IRO.UMontreal.CA Fri Dec 11 20:48:32 2009 Received: (at 4835) by emacsbugs.donarmstrong.com; 12 Dec 2009 04:48:32 +0000 X-Spam-Checker-Version: SpamAssassin 3.2.5-bugs.debian.org_2005_01_02 (2008-06-10) on rzlab.ucr.edu X-Spam-Level: X-Spam-Bayes: score:0.5 Bayes not run. spammytokens:Tokens not available. hammytokens:Tokens not available. X-Spam-Status: No, score=-3.8 required=4.0 tests=AWL,HAS_BUG_NUMBER autolearn=ham version=3.2.5-bugs.debian.org_2005_01_02 Received: from pruche.dit.umontreal.ca (pruche.dit.umontreal.ca [132.204.246.22]) by rzlab.ucr.edu (8.14.3/8.14.3/Debian-5) with ESMTP id nBC4mUdi032314 for <4835@emacsbugs.donarmstrong.com>; Fri, 11 Dec 2009 20:48:31 -0800 Received: from alfajor.home (faina.iro.umontreal.ca [132.204.26.177]) by pruche.dit.umontreal.ca (8.14.1/8.14.1) with ESMTP id nBC4mSMa003289; Fri, 11 Dec 2009 23:48:29 -0500 Received: by alfajor.home (Postfix, from userid 20848) id 233446443C; Fri, 11 Dec 2009 23:48:28 -0500 (EST) From: Stefan Monnier To: Kevin Rodgers Cc: 4835@debbugs.gnu.org, bug-gnu-emacs@gnu.org Subject: Re: bug#4835: 23.1; Improper `Invalid face reference' messages. Performance degraded. Message-ID: References: <87ws2bfkyt.fsf@stupidchicken.com> <87iqdvmk1j.fsf@stupidchicken.com> <6ABF3195EEF74EB780205758FA68D61B@us.oracle.com> <87pr83th6b.fsf@stupidchicken.com> <8F2C3E771C104B03B9926AB1AAFD02A5@us.oracle.com> <87zl7743tj.fsf@stupidchicken.com> <5101E088BA774F93BCA9BA30DF7C826F@us.oracle.com> <877hubku5o.fsf@stupidchicken.com> <38BD7996136A41F1A0F8A2B5784A0D16@us.oracle.com> <006573D5DAC94F779FC64D2E0FEEEE7E@us.oracle.com> <877hsvbv3c.fsf@gnu.org> Date: Fri, 11 Dec 2009 23:48:28 -0500 In-Reply-To: (Kevin Rodgers's message of "Thu, 10 Dec 2009 21:49:51 -0700") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1.90 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-NAI-Spam-Score: 0 X-NAI-Spam-Rules: 1 Rules triggered RV3426=0 > Does anyone else find `(... ',form ...) jarring? Probably. > I would write it as `(... (quote ,form) ...) I find the ', form easier to recognize, but it's just me, Stefan From debbugs-submit-bounces@debbugs.gnu.org Wed Apr 27 16:20:12 2016 Received: (at 4835) by debbugs.gnu.org; 27 Apr 2016 20:20:12 +0000 Received: from localhost ([127.0.0.1]:50676 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1avVwR-0003hm-R8 for submit@debbugs.gnu.org; Wed, 27 Apr 2016 16:20:12 -0400 Received: from hermes.netfonds.no ([80.91.224.195]:50190) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1avVwP-0003hd-EC for 4835@debbugs.gnu.org; Wed, 27 Apr 2016 16:20:09 -0400 Received: from cm-84.215.1.64.getinternet.no ([84.215.1.64] helo=mouse) by hermes.netfonds.no with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1avVwI-00038x-Dg; Wed, 27 Apr 2016 22:20:06 +0200 From: Lars Ingebrigtsen To: "Drew Adams" Subject: Re: bug#4835: 23.1; Improper `Invalid face reference' messages. Performance degraded. References: <87ws2bfkyt.fsf@stupidchicken.com> <87iqdvmk1j.fsf@stupidchicken.com> <6ABF3195EEF74EB780205758FA68D61B@us.oracle.com> <87pr83th6b.fsf@stupidchicken.com> <8F2C3E771C104B03B9926AB1AAFD02A5@us.oracle.com> <87zl7743tj.fsf@stupidchicken.com> <5101E088BA774F93BCA9BA30DF7C826F@us.oracle.com> <877hubku5o.fsf@stupidchicken.com> <38BD7996136A41F1A0F8A2B5784A0D16@us.oracle.com> <006573D5DAC94F779FC64D2E0FEEEE7E@us.oracle.com> Date: Wed, 27 Apr 2016 22:20:02 +0200 In-Reply-To: <006573D5DAC94F779FC64D2E0FEEEE7E@us.oracle.com> (Drew Adams's message of "Wed, 9 Dec 2009 10:23:37 -0800") Message-ID: <87eg9qvm6l.fsf@gnus.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 4835 Cc: 'Stefan Monnier' , 4835@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.0 (/) "Drew Adams" writes: > The only problem is the zillions of messages that are logged to *Messages* > endlessly. That degrades performance so much that it brings Emacs to a crawl. > This is the case for both Emacs 22 and 23. It seems that each redisplay causes > this sequence of four messages to be logged many times, over and over: > > Invalid face reference: prepend > Invalid face reference: 0 > Invalid face reference: column-marker-move-to-22 > Invalid face reference: t I seem to recall some work being done to make redisplay somewhat less chatty. Are you still seeing this problem? -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no From debbugs-submit-bounces@debbugs.gnu.org Wed Apr 27 17:20:04 2016 Received: (at 4835) by debbugs.gnu.org; 27 Apr 2016 21:20:04 +0000 Received: from localhost ([127.0.0.1]:50822 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1avWsO-0003Ns-BS for submit@debbugs.gnu.org; Wed, 27 Apr 2016 17:20:04 -0400 Received: from aserp1040.oracle.com ([141.146.126.69]:50068) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1avWsL-0003NG-Oj for 4835@debbugs.gnu.org; Wed, 27 Apr 2016 17:20:02 -0400 Received: from aserv0021.oracle.com (aserv0021.oracle.com [141.146.126.233]) by aserp1040.oracle.com (Sentrion-MTA-4.3.2/Sentrion-MTA-4.3.2) with ESMTP id u3RLJtgm010643 (version=TLSv1 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Wed, 27 Apr 2016 21:19:55 GMT Received: from aserv0122.oracle.com (aserv0122.oracle.com [141.146.126.236]) by aserv0021.oracle.com (8.13.8/8.13.8) with ESMTP id u3RLJstY022455 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Wed, 27 Apr 2016 21:19:54 GMT Received: from abhmp0005.oracle.com (abhmp0005.oracle.com [141.146.116.11]) by aserv0122.oracle.com (8.13.8/8.13.8) with ESMTP id u3RLJpoI008725; Wed, 27 Apr 2016 21:19:53 GMT MIME-Version: 1.0 Message-ID: Date: Wed, 27 Apr 2016 14:19:50 -0700 (PDT) From: Drew Adams To: Lars Ingebrigtsen Subject: RE: bug#4835: 23.1;Improper `Invalid face reference' messages. Performance degraded. References: <87ws2bfkyt.fsf@stupidchicken.com> <87iqdvmk1j.fsf@stupidchicken.com> <6ABF3195EEF74EB780205758FA68D61B@us.oracle.com> <87pr83th6b.fsf@stupidchicken.com> <8F2C3E771C104B03B9926AB1AAFD02A5@us.oracle.com> <87zl7743tj.fsf@stupidchicken.com> <5101E088BA774F93BCA9BA30DF7C826F@us.oracle.com> <877hubku5o.fsf@stupidchicken.com> <38BD7996136A41F1A0F8A2B5784A0D16@us.oracle.com> <006573D5DAC94F779FC64D2E0FEEEE7E@us.oracle.com> <87eg9qvm6l.fsf@gnus.org> In-Reply-To: <87eg9qvm6l.fsf@gnus.org> X-Priority: 3 X-Mailer: Oracle Beehive Extensions for Outlook 2.0.1.9 (901082) [OL 12.0.6744.5000 (x86)] Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable X-Source-IP: aserv0021.oracle.com [141.146.126.233] X-Spam-Score: -3.3 (---) X-Debbugs-Envelope-To: 4835 Cc: "4835@debbugs.gnu.org \"'Stefan Monnier'\"" , 4835@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > I seem to recall some work being done to make redisplay somewhat less > chatty. Are you still seeing this problem? Sorry, I don't recall, and I have no time now to try to look into it. Feel free to do with this what you like. From debbugs-submit-bounces@debbugs.gnu.org Wed Apr 27 17:24:27 2016 Received: (at control) by debbugs.gnu.org; 27 Apr 2016 21:24:27 +0000 Received: from localhost ([127.0.0.1]:50830 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1avWwd-0003Ub-4C for submit@debbugs.gnu.org; Wed, 27 Apr 2016 17:24:27 -0400 Received: from hermes.netfonds.no ([80.91.224.195]:50714) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1avWwb-0003US-Kk for control@debbugs.gnu.org; Wed, 27 Apr 2016 17:24:25 -0400 Received: from cm-84.215.1.64.getinternet.no ([84.215.1.64] helo=mouse) by hermes.netfonds.no with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1avWwZ-0003oB-II for control@debbugs.gnu.org; Wed, 27 Apr 2016 23:24:25 +0200 Date: Wed, 27 Apr 2016 23:24:23 +0200 Message-Id: <874mamu4mw.fsf@gnus.org> To: control@debbugs.gnu.org From: Lars Ingebrigtsen Subject: control message for bug #4835 X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.0 (/) close 4835 From unknown Mon Jun 16 23:47:24 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Thu, 26 May 2016 11:24:04 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator