On 03/15/2015 08:02 PM, Stefan Monnier wrote: >> overlays. Setting inhibit-point-motion-hooks helped, but it occurs to me >> that the operation shouldn't have been expensive in the first place. > > goto-char should never trigger any hook. Properties such as > `intangible' are misfeatures, IMO. > >> In addition to allowing callers to bind inhibit-point-motion-hooks, what >> about tracking whether any property or overlay ever inserted into a >> buffer uses one of these uncommon facilities? This way, the common case >> is fast even without inhibit-point-motion-hooks. > > I think we should make those goto-char hooks conditional on a variable, > and make this variable default to nil. That's an incompatible change, > of course, but it would solve this issue. And the var's name should > make it clear it's only present to support some legacy feature that's > being phased out. So you propose effectively making inhibit-point-motion-hooks default to t? Why not just do precisely that?