Subject: bug#1092: compilation-goto-error goes to wrong location when buffer has hidden regions

From: Andrew Hyatt <[email-masked]>
Date: Mon, 04 Jan 2016 23:28:33 -0500

Stefan Monnier <[email-masked]> writes:

>> Setting a variable is a user-level feature.
>
> I've never ever heard of a user setting selective-display manually
> to t.  It's always done from some Elisp package.  And it's no wonder:
> setting selective-display=t has about zero effect.  It only starts to do
> something when you start turning \n into \r (which is also when the
> problems start to come up).
>
>>> >> For the selective-display=t case, we have had replacement features in
>>> >> place and in wide use for what, twenty years?
>>> > Which replacements are those?  I mean user commands or settings, not
>>> > infrastructure on which to base them.
>>> selective-display=t gives no user command, so I have no idea what you're
>>> expecting as "user command" to replace it.
>> And I did mean _both_ uses of selective-display, not only that single
>> one.
>
> As you can see above in the text you quoted, I was specifically
> referring to the selective-display=t case.
>
>> If and when there are replacements for both of them, we can
>> declare the variable obsolete and perhaps also remove its current
>> handling from the sources, if the replacement features allow to
>> emulate the variable's effect.
>
> The problem is that nobody really cares about the non-t part of
> selective-display: it doesn't cause any serious problems (contrary to
> the use of \r for "kind of end-of-line" in selective-display=t which
> requires special handling all over the place), isn't use very widely
> either, and is only a user-level feature (I don't know of any Elisp
> package making use of it).
>
>>> There are almost no uses of selective-display=t around, they've
>>> almost all been replaced by uses of overlays.
>> We have no idea of how many uses of this are out there.
>
> Of course we do have some idea.
>
>> We only know what's in Emacs and in ELPA, which is just a fraction of
>> what's out there.
>
> If you never look further than those, I hope you're an exception.
> I have a fairly extensive list of random packages I've bumped into over
> the years.
>
> And I can even tell you why there are very few uses of
> selective-display=t left: because it's a pain in the rear to use and is
> very limited.  It's much simpler and more flexible to use overlays, so
> most packages have been rewritten over time to use overlays instead.
>
>>> >> We can very definitely declare this use case obsolete
>>> > We already did.  And look how well did it serve us.
>>> Which problem did its obsolescence cause?
>> This one, for example.
>
> How did declaring the feature obsolete cause this bug?
> AFAICT this bug has been around since long before we declared the
> feature obsolete.
>
>> More importantly, it didn't resolve any problem.
>
> Declaring a feature obsolete doesn't resolve any problem.
> It just expresses our intent not to resolve those problems.
>
>> Anyway, I don't see where this discussion is going.  The original bug
>> is fixed and closed.  If you or someone else have a patch to replace
>> selective-display with alternative user features, let's see those
>> patches (preferably in another thread).
>
> Again, I have no clue what kind of user feature you're expecting.
> selective-display=t is 100% obsolete, with overlays as replacements
> available for so many years it's not even funny.
>
> My only intention in this discussion is to try and saves us from someone
> else ever trying to "fix" such bugs like you did.  Instead we should
> always reply with something like "if it hurts when you use
> selective-display=t, then don't use it".  Same applies for any other
> obsoleted feature.

I just was looking at selective-display, and noticed that we still have
documentation for the setting of "t" on the variable (it doesn't seem to
be mentioned in the emacs manual). If this really is obsolete, should
that documentation be removed?

>         Stefan