From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= Newsgroups: gmane.emacs.devel Subject: Fwd: Flymake and the 'face' property (was: master cd06d17: Fix bug with face-id after restoring from pdump) Date: Tue, 29 Jan 2019 17:26:50 +0000 Message-ID: References: <20190128152540.6870.46132@vcs0.savannah.gnu.org> <20190128152541.12A4D20B50@vcs0.savannah.gnu.org> <30bm401x64.fsf@fencepost.gnu.org> <83r2cw35jq.fsf@gnu.org> <83munk33gj.fsf@gnu.org> <83h8dr2yll.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="118770"; mail-complaints-to="usenet@blaine.gmane.org" To: emacs-devel , Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Jan 29 18:27:12 2019 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1goXAE-000Ujn-Lb for ged-emacs-devel@m.gmane.org; Tue, 29 Jan 2019 18:27:10 +0100 Original-Received: from localhost ([127.0.0.1]:52880 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1goXAD-0002mz-FT for ged-emacs-devel@m.gmane.org; Tue, 29 Jan 2019 12:27:09 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:56681) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1goXA7-0002mr-LH for emacs-devel@gnu.org; Tue, 29 Jan 2019 12:27:04 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1goXA6-0001h0-RC for emacs-devel@gnu.org; Tue, 29 Jan 2019 12:27:03 -0500 Original-Received: from mail-qk1-x736.google.com ([2607:f8b0:4864:20::736]:36210) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1goXA6-0001go-Na; Tue, 29 Jan 2019 12:27:02 -0500 Original-Received: by mail-qk1-x736.google.com with SMTP id o125so11994265qkf.3; Tue, 29 Jan 2019 09:27:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :content-transfer-encoding; bh=v1czUqnsFSLXA3Cl2s8axIG3aq8K1o6nXreX9IjRlWY=; b=n4C/LqAS+IWv/+pWnNL11wG1nGaOmVfSgekHDzI9K19nTSRx72nZo2X1NlWAFWIn53 hiTPuVEHzrdOBfWZgApzSZjl/863VkiMN6K7Q1QLFHbbP7PevI1FHxIrvIUe9AB6INdh 6+C0nAXY2FefwQ90iBOjbYrZtPr43nPdy2oXOYnG5mBeZkXd27w5Upju6XLFfvMefEXn nwqpVbKdt0pF3WC1ey3bXZBoBIH6+PID2/qSJEqwbX8EsI/B6uaXKigViIPcgYSoxLWw o8l1Q63W9SkrybKHlZpvGNF3yMGpyioEX7QlPSbhH9gQnYWl53mt9tY14L9M/ZZE0Imr r/KQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:content-transfer-encoding; bh=v1czUqnsFSLXA3Cl2s8axIG3aq8K1o6nXreX9IjRlWY=; b=S2LegLihIUJF69hfy7Vu3m9FDdWu7unJfzKUVUrLTuLcmskb0undIjW3SRZ+pkweGA +RUi/+v1bFpzwcnRfjCANxWmV8cdxOLoVXXummeC0sOehrOm/l2DvJ3uSZL2w1gZvqZk PW3nh+9qm/iOfJAgLpmV+6/fq3BvSdFpRNAtPEX29nPyWDjdXGCyN28RT1UGdKXe1XMU DdkhUyQpIGA2yaz0qydPYrvYBK9beIJ5Lc4P1DV1RMJU3qZrDWIT03jHzr8ppkZ9qoIZ j8UFXqWSTU+nyqJB2B9EbJMdIu5VzaI4aaWo5/dkG1S1LIay7T62am16hzZDo+UMtMAu KhUA== X-Gm-Message-State: AJcUukc0SiJ2mZYCIPXo4p+xGiG9+jvUFlsX4gHzrozFQmepYf8gzryU gZ1qQxtk9Ylpw1tDgYlgMwx0xeHg5F4HsvoFwY2VQQ== X-Google-Smtp-Source: ALg8bN70+M9FT128CcSqSQG8T3JFnTm9Oesh2zGrAzKVGG/5s6y3bdEjWDpKMDhnGOcnfet+gR8lCxprTecKdmXMZdQ= X-Received: by 2002:ae9:ef14:: with SMTP id d20mr24605815qkg.147.1548782821897; Tue, 29 Jan 2019 09:27:01 -0800 (PST) In-Reply-To: X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::736 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:232791 Archived-At: [Sorry for the double email Eli, I forgot to CC the list in the first one] On Tue, Jan 29, 2019 at 4:55 PM Eli Zaretskii wrote: > > As far as I can understand, this is because flymake-error, the flymake = error > > type, is conflated with flymake-error, the face. > No, the problem is that each face has its numeric face ID stored as > the value of the face symbol's 'face' property. So, no matter what is > the face symbol, its 'face' property should not be touched. Undoubtedly, but if the face changes the name to 'flymake-error-face' and the diagnostic type retains the name 'flymake-error', then the 'face' prope= rty will not be applied to a face, but to an arbitrary, non-face related symbol= , designating no more than a flymake diagnostic type (and not a face). There is no reason why you would ask for the face ID of _that_ symbol, is there? > It's too late for that, I think. Instead, packages should IMO try to > keep the global namespace clean in the property domain as well, thus > defining properties whose names have the prefix of the package name. That is certainly true for properties whose semantics are valid only within a package. But flymake.el here is merely managing existing properties of overlays designated by "external" symbols, such as 'face' ,'priority' ,'display', 'help-echo' ,etc... Now, flymake.el happened to be unlucky enough to store these properties in the plist of a symbol which, by doubling as a face symbol, already had some implementation-specific a meaning for some of those properties. So I'd first study the possibility of avoiding this "doubling as a face symbol", which was merely aesthetic and even slightly confusing. As a backward-compatible alternative to that, if it is not an immense amount of work, we could look at the Emacs facility that treats 'face' as an implementation detail (i.e. doesn't give it public meaning, contrary to what text- and overlay properties do), and change it to use another name for that implementation detail, such as --face-id or something. I think this second alternative is consistent with your views on the global namespace. It might be more work though. -- Jo=C3=A3o T=C3=A1vora