unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Alan Mackenzie <acm@muc.de>
To: Paul Eggert <eggert@cs.ucla.edu>
Cc: michael_heerdegen@web.de, eliz@gnu.org, cpitclaudel@gmail.com,
	monnier@IRO.UMontreal.CA, emacs-devel@gnu.org
Subject: Re: scratch/accurate-warning-pos: Solid progress: the branch now bootstraps.
Date: Sun, 25 Nov 2018 21:29:20 +0000	[thread overview]
Message-ID: <20181125212920.GK27152@ACM> (raw)
In-Reply-To: <2c2ae483-3309-f79d-07a5-30af1f49058b@cs.ucla.edu>

Hello, Paul.

On Sun, Nov 25, 2018 at 12:12:56 -0800, Paul Eggert wrote:
> Alan Mackenzie wrote:

> > How do other Lisp compilers work?  They must have ways of keeping track
> > of line and column numbers.

> I'm pretty sure they don't redefine the meaning of 'eq'....

Maybe, maybe not.  How do they actually do it?  I simply don't know, I
thought you might.

As I said, when we discussed this bug a few weeks ago, we could only
come up with bad ways of dealing with it.  The current bad way has the
advantage of being practical and implementable.

> > The problem is that when compilation is in progress,

> >      (eq 'foo '#<symbol foo at 666>)

> > has got to return t.

> Why not change the byte-compiler to use 'eq-ignoring-symbol-pos' (or
> whatever you want to call it) instead of 'eq'?

Because of macros.  These macros are typically already compiled.

> The byte compiler could do this for every occurrence of 'eq' in every
> user macro, ....

No it couldn't.  In this context, "user macro"s include any helper
defuns that they call.  They would need to be converted, too.  To say
nothing of quite a few standard Emacs functions, probably.  I've no idea
how any of this could be done, but suspect it would be more work than
reimplementing the byte compiler from scratch.

> .... as well as in its own code. This should let ordinary Lisp code
> run at full speed; only compilation would be slowed down.

The actual slow down is currently uncertain.  On benchmarks, Gemini
Lasswell has measured between 1% and (?)30% slowdown.  On realistic
applications (a make bootstrap and scrolling through xdisp.c) I've seen
7 to 8% slowdown.

If you could come up with a solid proposal which would fix the bug
without slowing down Emacs at all, we'd all be most appreciative.

One of the bad ways of dealing with the bug was not to bother fixing it
at all.  Given how poor the current method is (under 25% hit rate in a
bootstrap), I don't think this is a good idea.

-- 
Alan Mackenzie (Nuremberg, Germany).



  reply	other threads:[~2018-11-25 21:29 UTC|newest]

Thread overview: 110+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-11-17 12:45 scratch/accurate-warning-pos: First tentative successes Alan Mackenzie
2018-11-17 13:13 ` Eli Zaretskii
2018-11-23 13:09   ` scratch/accurate-warning-pos: Solid progress: the branch now bootstraps Alan Mackenzie
2018-11-25 11:26     ` Charles A. Roelli
2018-11-25 14:31       ` Alan Mackenzie
2018-11-25 15:12         ` Andreas Schwab
2018-11-25 15:42           ` Alan Mackenzie
2018-11-25 16:40             ` Eli Zaretskii
2018-11-25 17:59               ` Alan Mackenzie
2018-11-25 18:15                 ` Eli Zaretskii
2018-11-25 18:23                   ` Alan Mackenzie
2018-11-25 19:36                     ` Alan Mackenzie
2018-11-25 16:22         ` Stefan Monnier
2018-11-25 17:35           ` Alan Mackenzie
2018-11-25 18:22             ` Stefan Monnier
2018-11-25 19:54               ` Alan Mackenzie
2018-11-25 20:08                 ` Stefan Monnier
2018-11-26  9:52                   ` Alan Mackenzie
2018-11-26 10:16                     ` Alan Mackenzie
2018-11-25 16:38         ` Eli Zaretskii
2018-11-25 17:27           ` Andreas Schwab
2018-11-25 17:31           ` Alan Mackenzie
2018-11-25 17:39             ` Eli Zaretskii
2018-11-25 18:08               ` Alan Mackenzie
2018-11-25 18:45       ` Paul Eggert
2018-11-25 19:30         ` Alan Mackenzie
2018-11-25 20:12           ` Paul Eggert
2018-11-25 21:29             ` Alan Mackenzie [this message]
2018-11-26  1:41               ` Paul Eggert
2018-11-26  3:41                 ` Eli Zaretskii
2018-11-26 17:43                   ` Paul Eggert
2018-11-26 18:43                     ` Alan Mackenzie
2018-11-26 19:18                       ` Clément Pit-Claudel
2018-11-26 19:42                         ` Alan Mackenzie
2018-11-27  1:07                           ` Gemini Lasswell
2018-11-27  1:45                             ` Alan Mackenzie
2018-11-27  6:06                             ` Eli Zaretskii
2018-11-27  2:48                       ` Paul Eggert
2018-11-27  7:43                         ` Alan Mackenzie
2018-11-27 20:27                           ` Paul Eggert
2018-11-27 21:15                             ` Alan Mackenzie
2018-11-27 21:37                               ` Paul Eggert
2018-11-27 21:53                                 ` Alan Mackenzie
2018-11-28  1:11                                   ` Paul Eggert
2018-11-28 12:04                                     ` Alan Mackenzie
2018-11-29 21:28                                       ` Paul Eggert
2018-11-29 22:05                                         ` Alan Mackenzie
2018-11-30 17:50                                           ` Paul Eggert
2018-11-30 18:55                                             ` Alan Mackenzie
2018-11-30 20:14                                               ` Paul Eggert
2018-11-30 22:02                                                 ` Alan Mackenzie
2018-11-30 23:46                                                   ` Paul Eggert
2018-12-01  7:35                                                     ` martin rudalics
2018-12-01  8:25                                                       ` Eli Zaretskii
2018-12-01 11:08                                                         ` Alan Mackenzie
2018-12-01 11:36                                                           ` Eli Zaretskii
2018-12-01 12:47                                                       ` Alan Mackenzie
2018-12-01 14:09                                                         ` martin rudalics
2018-12-01 14:30                                                           ` Stefan Monnier
2018-12-01 16:30                                                             ` martin rudalics
2018-12-01 19:56                                                               ` Stefan Monnier
2018-12-01 14:59                                                           ` Eli Zaretskii
2018-12-01 16:31                                                             ` martin rudalics
2018-12-01 16:53                                                               ` Eli Zaretskii
2018-12-01 19:04                                                                 ` martin rudalics
2018-12-01 19:22                                                                   ` Eli Zaretskii
2018-12-01 17:21                                                           ` Alan Mackenzie
2018-12-01 17:44                                                             ` Michael Heerdegen
2018-12-01 18:58                                                               ` Alan Mackenzie
2018-12-01 20:26                                                                 ` Alan Mackenzie
2018-12-01 17:48                                                             ` Eli Zaretskii
2018-12-01 21:00                                                               ` Paul Eggert
2018-12-01 17:50                                                             ` Clément Pit-Claudel
2018-12-01 18:26                                                               ` Yuri Khan
2018-12-01 19:15                                                                 ` Clément Pit-Claudel
2018-12-01 21:26                                                                 ` Paul Eggert
2018-12-02  6:48                                                                   ` Yuri Khan
2018-12-02 18:39                                                                   ` Gemini Lasswell
2018-12-03  2:28                                                                     ` Stefan Monnier
2018-12-01 19:04                                                             ` martin rudalics
2018-12-02 22:53                                                             ` Dmitry Gutov
2018-12-01  0:26                                               ` Gemini Lasswell
2018-12-01 11:48                                                 ` Alan Mackenzie
2018-11-27 22:09                                 ` Stefan Monnier
2018-11-28  2:18                                   ` Paul Eggert
2018-11-28  2:43                                     ` Stefan Monnier
2018-11-28  5:13                                       ` Paul Eggert
2018-11-28  6:03                                       ` Gemini Lasswell
2018-11-28  5:39                                   ` Gemini Lasswell
2018-11-28 13:06                                     ` Stefan Monnier
2018-11-28  6:28                                 ` Eli Zaretskii
2018-11-28 22:50                                   ` Paul Eggert
2018-11-29  7:19                                     ` Eli Zaretskii
2018-11-29 10:54                                     ` Alan Mackenzie
2018-11-29 11:13                                       ` Eli Zaretskii
2018-11-29 11:37                                         ` Alan Mackenzie
2018-11-29 21:12                                           ` Paul Eggert
2018-11-29 21:28                                             ` Alan Mackenzie
2018-11-28  0:53                               ` Gemini Lasswell
2018-11-26 20:04                     ` Stefan Monnier
2018-11-27  2:51                       ` Paul Eggert
2018-11-26  9:48                 ` Alan Mackenzie
2018-11-26 18:27                   ` Paul Eggert
2018-11-25 18:48     ` Gemini Lasswell
2018-11-25 20:02       ` Stefan Monnier
2018-11-26 12:39       ` Alan Mackenzie
2018-11-26 16:14         ` Gemini Lasswell
2018-11-26 17:06           ` Alan Mackenzie
2018-11-26 17:24             ` Alan Mackenzie
2018-11-29 12:26     ` scratch/accurate-warning-pos: Some real world timings Alan Mackenzie

Reply instructions:

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

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

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

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

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

  git send-email \
    --in-reply-to=20181125212920.GK27152@ACM \
    --to=acm@muc.de \
    --cc=cpitclaudel@gmail.com \
    --cc=eggert@cs.ucla.edu \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=michael_heerdegen@web.de \
    --cc=monnier@IRO.UMontreal.CA \
    /path/to/YOUR_REPLY

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

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

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

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