unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Re: [bug]org-mode with flyspell-mode freezes emacs
       [not found] <m2lknmthc4.fsf@sl392.st-edmunds.cam.ac.uk>
@ 2006-10-12 16:57 ` Leo
  0 siblings, 0 replies; 34+ messages in thread
From: Leo @ 2006-10-12 16:57 UTC (permalink / raw)
  Cc: emacs-devel

[-- Attachment #1: Type: text/plain, Size: 417 bytes --]

Here is a bug report and feedback from org-mode author Carsten Dominik.

------------------
On Thu, 12/10/06 03:10 +0100, Leo wrote:

    Dear all,
   
    Starting emacs with "emacs -q -l test test.org". Then press "C-x
    ]". Emacs will freeze.
   
    "test" and "test.org" are attached.
   
    Tested on GNU Emacs 23.0.0.1 (i686-pc-linux-gnu, GTK+ Version 2.8.20)
    of 2006-10-04 running under fedora core 5.

[-- Attachment #2: test --]
[-- Type: application/octet-stream, Size: 153 bytes --]

(setq inhibit-startup-message t)
(add-hook 'text-mode-hook
	  (lambda nil
	    (flyspell-mode t)))
(add-to-list 'auto-mode-alist '("\\.org" . org-mode))

[-- Attachment #3: test.org --]
[-- Type: application/octet-stream, Size: 51 bytes --]

dddd

[[mailto:tt308@cat.ac.uk][TT308@cat.ac.uk]]


[-- Attachment #4: Type: text/plain, Size: 3801 bytes --]


On Thu Oct 12 10:51:51 2006 +0100, Carsten Dominik wrote:

    I can reproduce this under Emacs 22, but I have not been able to
    figure out what is causing this, because Emacs hangs so that it cannot
    even be stopped with C-g.
    
    It seems to be caused by links which contain hidden and intangible text.
    
    Don't really know where to go from here.
    
    - Carsten

On Thu Oct 12 17:29:46 2006 +0100, Carsten Dominik wrote:

    > Do you mind if I forward my original bug report and your comments in
    > this email to emacs-devel list?
    >
    
    Not at all.  Additional info:  This seems to happen when the cursor
    gets into the white space after a link.  Emacs gets stuck in
    accept-process-output' from the ispell process.  That call is wrapped
    into with-local-quit, which may have to do with the fact that this
    cannot be exited with keyboard-quit.
    
    The work ispell is supposed to be looking up is "uk", and the word is
    extracted from the buffer without text properties, so the fact that I
    am using intangible and invisible text properties should not play a
    role with this.  In fact, I have no idea what might be causing this,
    but I don't see how org-mode could be the true reason.
    
    Here is the backtrace from just before the hangup.  When I press "d",
    emacs will get stuck.
    
    Debugger entered--beginning evaluation of function call form:
    * (accept-process-output ispell-process)
    * (progn (accept-process-output ispell-process) (not (string= "" ...)))
    * (while (progn (accept-process-output ispell-process) (not ...)))
    * (let ((inhibit-quit nil)) (while (progn ... ...)))
    * (condition-case nil (let (...) (while ...)) (quit (setq quit-flag t)
    (eval ...)))
    * (with-local-quit (while (progn ... ...)))
    * (cond ((and ... flyspell-mark-duplications-flag ...)
    (flyspell-highlight-incorrect-region start end ...) nil) ((and
    ... ... ...) flyspell-word-cache-result) ((and ... ...)
    (flyspell-unhighlight-at start) (if ... ...) t) (t (setq
    flyspell-word-cache-start start) (setq flyspell-word-cache-end end)
    (setq flyspell-word-cache-word word) (ispell-send-string "%\n")
    (ispell-send-string ...) (set-process-query-on-exit-flag
    ispell-process nil) (with-local-quit ...) (setq ispell-filter ...) (or
    ispell-filter ...) (if ... ...) (let ... ... ... res)))
    * (progn (setq start (car ...) end (car ...) word (car flyspell-word))
    (cond (... ... nil) (... flyspell-word-cache-result) (... ... ... t)
    (t ... ... ... ... ... ... ... ... ... ... ...)))
    * (if (or (eq flyspell-word nil) (and ... ...)) t (progn (setq start
    ... end ... word ...) (cond ... ... ... ...)))
    * (let* ((cursor-location ...) (flyspell-word ...) start end poss word
    ispell-filter) (if (or ... ...) t (progn ... ...)))
    * (save-excursion (flyspell-accept-buffer-local-defs) (let*
    (... ... start end poss word ispell-filter) (if ... t ...)))
    * flyspell-word()
    * (progn (quote (flyspell-debug-signal-word-checked)) (flyspell-word)
    (setq flyspell-pre-pre-buffer (current-buffer)) (setq
    flyspell-pre-pre-point (point)))
    * (if (flyspell-check-word-p) (progn (quote ...) (flyspell-word) (setq
    flyspell-pre-pre-buffer ...) (setq flyspell-pre-pre-point ...)) (progn
    (setq flyspell-pre-pre-buffer nil) (setq flyspell-pre-pre-point nil)
    (if ... ...)))
    * (let ((command this-command) deactivate-mark) (if
    (flyspell-check-pre-word-p) (with-current-buffer flyspell-pre-buffer
    ... ...)) (if (flyspell-check-word-p) (progn ... ... ... ...) (progn
    ... ... ...)) (while (and ... ...) (let ... ... ...)) (setq
    flyspell-previous-command command))
    * flyspell-post-command-hook()
    * run-hooks(post-command-hook)

-- 
Leo

[-- Attachment #5: Type: text/plain, Size: 149 bytes --]

_______________________________________________
Emacs-orgmode mailing list
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [bug]org-mode with flyspell-mode freezes emacs
@ 2006-10-15  4:20 Richard Stallman
  2006-10-16  7:55 ` Carsten Dominik
  2006-10-16  9:01 ` Carsten Dominik
  0 siblings, 2 replies; 34+ messages in thread
From: Richard Stallman @ 2006-10-15  4:20 UTC (permalink / raw)
  Cc: emacs-devel

    On Thu Oct 12 10:51:51 2006 +0100, Carsten Dominik wrote:

    I can reproduce this under Emacs 22, but I have not been able to
    figure out what is causing this, because Emacs hangs so that it cannot
    even be stopped with C-g.
    
    It seems to be caused by links which contain hidden and intangible text.
    
    Don't really know where to go from here.
    
    - Carsten


Can you run Emacs under GDB, stop it while it is in this loop,
and send us the backtrace?

As a next step, you could follow the advice in etc/DEBUG about
investigating an infinite loop.  This information could probably enable
someone else to debug the Emacs bug.

For others' information, the initial bug report:

From: Leo <sdl.web@gmail.com>

    Starting emacs with "emacs -q -l test test.org". Then press "C-x
    ]". Emacs will freeze.
   
    "test" and "test.org" are attached.
   
    Tested on GNU Emacs 23.0.0.1 (i686-pc-linux-gnu, GTK+ Version 2.8.20)
    of 2006-10-04 running under fedora core 5.


(setq inhibit-startup-message t)
(add-hook 'text-mode-hook
	  (lambda nil
	    (flyspell-mode t)))
(add-to-list 'auto-mode-alist '("\\.org" . org-mode))

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [bug]org-mode with flyspell-mode freezes emacs
  2006-10-15  4:20 [bug]org-mode with flyspell-mode freezes emacs Richard Stallman
@ 2006-10-16  7:55 ` Carsten Dominik
  2006-10-16  9:01 ` Carsten Dominik
  1 sibling, 0 replies; 34+ messages in thread
From: Carsten Dominik @ 2006-10-16  7:55 UTC (permalink / raw)
  Cc: emacs-devel


On Oct 15, 2006, at 6:20, Richard Stallman wrote:

>     On Thu Oct 12 10:51:51 2006 +0100, Carsten Dominik wrote:
>
>     I can reproduce this under Emacs 22, but I have not been able to
>     figure out what is causing this, because Emacs hangs so that it 
> cannot
>     even be stopped with C-g.
>
>     It seems to be caused by links which contain hidden and intangible 
> text.
>
>     Don't really know where to go from here.
>
>     - Carsten
>
>
> Can you run Emacs under GDB, stop it while it is in this loop,
> and send us the backtrace?

I am unable to reproduce this bug under gdb.  That is, I tried, but
Emacs does not hang when run under gdb.

- Carsten


>
> As a next step, you could follow the advice in etc/DEBUG about
> investigating an infinite loop.  This information could probably enable
> someone else to debug the Emacs bug.
>
> For others' information, the initial bug report:
>
> From: Leo <sdl.web@gmail.com>
>
>     Starting emacs with "emacs -q -l test test.org". Then press "C-x
>     ]". Emacs will freeze.
>
>     "test" and "test.org" are attached.
>
>     Tested on GNU Emacs 23.0.0.1 (i686-pc-linux-gnu, GTK+ Version 
> 2.8.20)
>     of 2006-10-04 running under fedora core 5.
>
>
> (setq inhibit-startup-message t)
> (add-hook 'text-mode-hook
> 	  (lambda nil
> 	    (flyspell-mode t)))
> (add-to-list 'auto-mode-alist '("\\.org" . org-mode))
>
>

--
Carsten Dominik
Sterrenkundig Instituut "Anton Pannekoek"
Universiteit van Amsterdam
Kruislaan 403
NL-1098SJ Amsterdam
phone: +31 20 525 7477

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [bug]org-mode with flyspell-mode freezes emacs
  2006-10-15  4:20 [bug]org-mode with flyspell-mode freezes emacs Richard Stallman
  2006-10-16  7:55 ` Carsten Dominik
@ 2006-10-16  9:01 ` Carsten Dominik
  2006-10-16 18:47   ` Richard Stallman
  2006-10-17  4:33   ` Nick Roberts
  1 sibling, 2 replies; 34+ messages in thread
From: Carsten Dominik @ 2006-10-16  9:01 UTC (permalink / raw)
  Cc: emacs-devel

Apologies for my previous message in which I said I could not reproduce 
this error under gdb.  This was a mistake on my side, caused by an 
alias expansion of the command emacs that make "gdb emacs" refer to 
emacs 21 instead of Emacs 22.

Anyway, I do now have a backtrace for this problem.  Can anyone extract 
something useful from this?

Thanks.

- Carsten



(gdb) run -l test test.org
Starting program: /Users/dominik/bin/ne -l test test.org
Reading symbols for shared libraries ++++. done
^C
Program received signal SIGINT, Interrupt.
0x00157454 in validate_interval_range (object=20860132, 
begin=0xbfffd8e8, end=0xbfffd8e8, force=0) at textprop.c:135
135       CHECK_NUMBER_COERCE_MARKER (*end);
(gdb) backtrace
#0  0x00157454 in validate_interval_range (object=20860132, 
begin=0xbfffd8e8, end=0xbfffd8e8, force=0) at textprop.c:135
#1  0x001573c4 in validate_interval_range (object=20860132, 
begin=0xbfffd8e8, end=0xbfffd8e8, force=0) at textprop.c:129
#2  0x00158274 in Ftext_properties_at (position=432, object=20860128) 
at textprop.c:590
#3  0x0015830c in Fget_text_property (position=432, prop=-1073751832, 
object=-1073751832) at textprop.c:611
#4  0x0015a7b0 in text_property_stickiness (prop=58879617, pos=0, 
buffer=20860132) at textprop.c:1789
#5  0x00156284 in adjust_for_invis_intang (pos=20860132, test_offs=0, 
adj=20860132, test_intang=2729760) at intervals.c:1989
#6  0x00156540 in set_point_both (buffer=0x13e4ce4, charpos=20860128, 
bytepos=20860132) at intervals.c:2112
#7  0x000e8558 in search_command (string=28183443, bound=432, 
noerror=58720825, count=0, direction=0, RE=0, posix=0) at search.c:1008
#8  0x00114d54 in Ffuncall (nargs=432, args=0x1) at eval.c:3003
#9  0x00142110 in Fbyte_code (bytestr=17315416, vector=1, maxdepth=1) 
at bytecode.c:679
#10 0x001152e8 in funcall_lambda (fun=1, nargs=0, arg_vector=0x3800239) 
at eval.c:3180
#11 0x00114e88 in Ffuncall (nargs=432, args=0x1) at eval.c:3050
#12 0x00142110 in Fbyte_code (bytestr=17315416, vector=1, maxdepth=1) 
at bytecode.c:679
#13 0x001152e8 in funcall_lambda (fun=1, nargs=0, arg_vector=0x3800239) 
at eval.c:3180
#14 0x00114e88 in Ffuncall (nargs=432, args=0x1) at eval.c:3050
#15 0x00142110 in Fbyte_code (bytestr=17315416, vector=1, maxdepth=1) 
at bytecode.c:679
#16 0x001152e8 in funcall_lambda (fun=1, nargs=0, arg_vector=0x3800239) 
at eval.c:3180
#17 0x00114e88 in Ffuncall (nargs=432, args=0x1) at eval.c:3050
#18 0x00114604 in run_hook_with_args (nargs=0, args=0x1, cond=28183443) 
at eval.c:2652
#19 0x00114410 in Frun_hooks (nargs=432, args=0x1b0) at eval.c:2515
#20 0x00114d18 in Ffuncall (nargs=432, args=0x38109e1) at eval.c:2996
#21 0x00114850 in call1 (fn=432, arg1=432) at eval.c:2774
#22 0x00112860 in internal_condition_case (bfun=0xa9040 
<safe_run_hooks_1>, handlers=58720825, hfun=0xa9080 
<safe_run_hooks_error>) at eval.c:1477
#23 0x000a9160 in safe_run_hooks (hook=432) at keyboard.c:2131
#24 0x000a8584 in command_loop_1 () at keyboard.c:1875
#25 0x00112860 in internal_condition_case (bfun=0xa7364 
<command_loop_1>, handlers=58767017, hfun=0xa6a84 <cmd_error>) at 
eval.c:1477
#26 0x000a6f48 in command_loop_2 () at keyboard.c:1326
#27 0x00112218 in internal_catch (tag=432, func=0xa6f08 
<command_loop_2>, arg=58720777) at eval.c:1218
#28 0x000a6ea0 in command_loop () at keyboard.c:1305
#29 0x000a66c0 in recursive_edit_1 () at keyboard.c:1003
#30 0x000a6878 in Frecursive_edit () at keyboard.c:1064
#31 0x000a52e0 in main (argc=1601296, argv=0x2d0210) at emacs.c:1794




On Oct 15, 2006, at 6:20, Richard Stallman wrote:

>     On Thu Oct 12 10:51:51 2006 +0100, Carsten Dominik wrote:
>
>     I can reproduce this under Emacs 22, but I have not been able to
>     figure out what is causing this, because Emacs hangs so that it 
> cannot
>     even be stopped with C-g.
>
>     It seems to be caused by links which contain hidden and intangible 
> text.
>
>     Don't really know where to go from here.
>
>     - Carsten
>
>
> Can you run Emacs under GDB, stop it while it is in this loop,
> and send us the backtrace?
>
> As a next step, you could follow the advice in etc/DEBUG about
> investigating an infinite loop.  This information could probably enable
> someone else to debug the Emacs bug.
>
> For others' information, the initial bug report:
>
> From: Leo <sdl.web@gmail.com>
>
>     Starting emacs with "emacs -q -l test test.org". Then press "C-x
>     ]". Emacs will freeze.
>
>     "test" and "test.org" are attached.
>
>     Tested on GNU Emacs 23.0.0.1 (i686-pc-linux-gnu, GTK+ Version 
> 2.8.20)
>     of 2006-10-04 running under fedora core 5.
>
>
> (setq inhibit-startup-message t)
> (add-hook 'text-mode-hook
> 	  (lambda nil
> 	    (flyspell-mode t)))
> (add-to-list 'auto-mode-alist '("\\.org" . org-mode))
>
>

--
Carsten Dominik
Sterrenkundig Instituut "Anton Pannekoek"
Universiteit van Amsterdam
Kruislaan 403
NL-1098SJ Amsterdam
phone: +31 20 525 7477

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [bug]org-mode with flyspell-mode freezes emacs
  2006-10-16  9:01 ` Carsten Dominik
@ 2006-10-16 18:47   ` Richard Stallman
  2006-10-17  4:33   ` Nick Roberts
  1 sibling, 0 replies; 34+ messages in thread
From: Richard Stallman @ 2006-10-16 18:47 UTC (permalink / raw)
  Cc: emacs-devel

    Anyway, I do now have a backtrace for this problem.  Can anyone extract 
    something useful from this?

Please follow the advice in etc/DEBUG to find the function which
doesn't exit.

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [bug]org-mode with flyspell-mode freezes emacs
  2006-10-16  9:01 ` Carsten Dominik
  2006-10-16 18:47   ` Richard Stallman
@ 2006-10-17  4:33   ` Nick Roberts
  2006-10-17 10:57     ` Carsten Dominik
  1 sibling, 1 reply; 34+ messages in thread
From: Nick Roberts @ 2006-10-17  4:33 UTC (permalink / raw)
  Cc: rms, emacs-devel

 > Anyway, I do now have a backtrace for this problem.  Can anyone extract 
 > something useful from this?

If Emacs is hanging, a static backtrace is unlikely to be much use.  You need
to follow the instructions in DEBUG:

  If Emacs is in an infinite loop, try to determine where the loop
  starts and ends.  The easiest way to do this is to use the GDB command
  `finish'.  Each time you use it, Emacs resumes execution until it
  exits one stack frame.  Keep typing `finish' until it doesn't
  return--that means the infinite loop is in the stack frame which you
  just tried to finish.

  Stop Emacs again, and use `finish' repeatedly again until you get back
  to that frame.  Then use `next' to step through that frame.  By
  stepping, you will see where the loop starts and ends.  Also, examine
  the data being used in the loop and try to determine why the loop does
  not exit when it should.

Also when a C backtrace is useful, it usually helps to include lisp backtrace.
This is output automatically with `bt' if you run Emacs under GDB from the src
directory otherwise you need to source .gdbinit (in the src directory) first.

-- 
Nick                                           http://www.inet.net.nz/~nickrob

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [bug]org-mode with flyspell-mode freezes emacs
  2006-10-17  4:33   ` Nick Roberts
@ 2006-10-17 10:57     ` Carsten Dominik
  2006-10-17 13:13       ` Carsten Dominik
  2006-10-17 18:40       ` Richard Stallman
  0 siblings, 2 replies; 34+ messages in thread
From: Carsten Dominik @ 2006-10-17 10:57 UTC (permalink / raw)
  Cc: rms, emacs-devel


On Oct 17, 2006, at 6:33, Nick Roberts wrote:

>> Anyway, I do now have a backtrace for this problem.  Can anyone 
>> extract
>> something useful from this?
>
> If Emacs is hanging, a static backtrace is unlikely to be much use.  
> You need
> to follow the instructions in DEBUG:

I have not been able to do this well, the results are very confusing to 
me, I sometimes end up in the garbage collection, sometimes in search 
functions like looking-at-1 or search-buffer.  So for now I don't have 
better information on this bug, and I don't have much time for going 
much further on this.

However, on the Lisp level, I have been able to dig deeper and found 
the following.

This error happens if flyspell is trying to check a word that is 
followed by a character with the `intangible' text property.  The words 
in the buffer where Emacs enters an infinite loop look like this

    something]]

where the "]]" carry both the invisible and the intangible text 
property.  If I remove the intangible text property and only keep 
invisible, there is no problem and Emacs functions normally. If I 
remove invisible and keep intangible, the error still happens.

> Also when a C backtrace is useful, it usually helps to include lisp 
> backtrace.
> This is output automatically with `bt' if you run Emacs under GDB from 
> the src
> directory otherwise you need to source .gdbinit (in the src directory) 
> first.

A typical lisp backtrace looks like this:

Lisp Backtrace:
"flyspell-get-word" (0x3800209)
"flyspell-word-search-backward" (0x1add4e3)
"flyspell-word" (0x3800209)
"flyspell-post-command-hook" (0x0)
"run-hooks" (0x3809c69)

or

Lisp Backtrace:
"re-search-forward" (0x1b0d1b3)
"flyspell-get-word" (0x3800209)
"flyspell-word-search-backward" (0x1add4e3)
"flyspell-word" (0x3800209)
"flyspell-post-command-hook" (0x0)
"run-hooks" (0x3809c69)

This is strange because it looks like there is an infinite loop on the 
lisp level, but when I use the lisp debugger, it is the call to 
accept-process-output where Emacs gets stuck.

I guess as a temporary fix I could remove the intangible text property, 
since invisible text is handled by the point-motion functions much like 
intangible text, so it is not really necessary to have both.  Is this a 
correct assessment?

Thanks, and sorry that I cannot be more helpful.

- Carsten

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [bug]org-mode with flyspell-mode freezes emacs
  2006-10-17 10:57     ` Carsten Dominik
@ 2006-10-17 13:13       ` Carsten Dominik
  2006-10-17 14:18         ` martin rudalics
  2006-10-17 17:49         ` martin rudalics
  2006-10-17 18:40       ` Richard Stallman
  1 sibling, 2 replies; 34+ messages in thread
From: Carsten Dominik @ 2006-10-17 13:13 UTC (permalink / raw)
  Cc: Nick Roberts, rms, emacs-devel

And here is one more piece of the puzzle:

I just found out that the emacs-wiki and muse people have been 
struggling with the same problem.  Their fix was to use 
inhibit-point-motion-hooks.  This points into the direction that a 
search function gets thrown off into a loop by the point-motion-hooks.

- Carsten



On Oct 17, 2006, at 12:57, Carsten Dominik wrote:

>
> On Oct 17, 2006, at 6:33, Nick Roberts wrote:
>
>>> Anyway, I do now have a backtrace for this problem.  Can anyone 
>>> extract
>>> something useful from this?
>>
>> If Emacs is hanging, a static backtrace is unlikely to be much use.  
>> You need
>> to follow the instructions in DEBUG:
>
> I have not been able to do this well, the results are very confusing 
> to me, I sometimes end up in the garbage collection, sometimes in 
> search functions like looking-at-1 or search-buffer.  So for now I 
> don't have better information on this bug, and I don't have much time 
> for going much further on this.
>
> However, on the Lisp level, I have been able to dig deeper and found 
> the following.
>
> This error happens if flyspell is trying to check a word that is 
> followed by a character with the `intangible' text property.  The 
> words in the buffer where Emacs enters an infinite loop look like this
>
>    something]]
>
> where the "]]" carry both the invisible and the intangible text 
> property.  If I remove the intangible text property and only keep 
> invisible, there is no problem and Emacs functions normally. If I 
> remove invisible and keep intangible, the error still happens.
>
>> Also when a C backtrace is useful, it usually helps to include lisp 
>> backtrace.
>> This is output automatically with `bt' if you run Emacs under GDB 
>> from the src
>> directory otherwise you need to source .gdbinit (in the src 
>> directory) first.
>
> A typical lisp backtrace looks like this:
>
> Lisp Backtrace:
> "flyspell-get-word" (0x3800209)
> "flyspell-word-search-backward" (0x1add4e3)
> "flyspell-word" (0x3800209)
> "flyspell-post-command-hook" (0x0)
> "run-hooks" (0x3809c69)
>
> or
>
> Lisp Backtrace:
> "re-search-forward" (0x1b0d1b3)
> "flyspell-get-word" (0x3800209)
> "flyspell-word-search-backward" (0x1add4e3)
> "flyspell-word" (0x3800209)
> "flyspell-post-command-hook" (0x0)
> "run-hooks" (0x3809c69)
>
> This is strange because it looks like there is an infinite loop on the 
> lisp level, but when I use the lisp debugger, it is the call to 
> accept-process-output where Emacs gets stuck.
>
> I guess as a temporary fix I could remove the intangible text 
> property, since invisible text is handled by the point-motion 
> functions much like intangible text, so it is not really necessary to 
> have both.  Is this a correct assessment?
>
> Thanks, and sorry that I cannot be more helpful.
>
> - Carsten
>
>

--
Carsten Dominik
Sterrenkundig Instituut "Anton Pannekoek"
Universiteit van Amsterdam
Kruislaan 403
NL-1098SJ Amsterdam
phone: +31 20 525 7477

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [bug]org-mode with flyspell-mode freezes emacs
  2006-10-17 13:13       ` Carsten Dominik
@ 2006-10-17 14:18         ` martin rudalics
  2006-10-17 17:49         ` martin rudalics
  1 sibling, 0 replies; 34+ messages in thread
From: martin rudalics @ 2006-10-17 14:18 UTC (permalink / raw)
  Cc: Nick Roberts, rms, emacs-devel

Does it happen with the following?

(defun flyspell-word-search-backward (word bound)
   (save-excursion
     (let ((r '())
	  p
	  (oldp t))
       (while (and (not r) (setq p (search-backward word bound t)))
	(let ((lw (flyspell-get-word '())))
	  (cond
	   ((and (consp lw) (string-equal (car lw) word))
	    (setq r p))
	   ((equal p oldp)
	    (setq r t))
	   (t
	    (setq oldp p)
	    (goto-char p)))))
       r)))

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [bug]org-mode with flyspell-mode freezes emacs
  2006-10-17 13:13       ` Carsten Dominik
  2006-10-17 14:18         ` martin rudalics
@ 2006-10-17 17:49         ` martin rudalics
  2006-10-17 21:11           ` Carsten Dominik
  1 sibling, 1 reply; 34+ messages in thread
From: martin rudalics @ 2006-10-17 17:49 UTC (permalink / raw)
  Cc: Nick Roberts, rms, emacs-devel

[-- Attachment #1: Type: text/plain, Size: 380 bytes --]

 > I just found out that the emacs-wiki and muse people have been
 > struggling with the same problem.  Their fix was to use
 > inhibit-point-motion-hooks.  This points into the direction that a
 > search function gets thrown off into a loop by the point-motion-hooks.

Indeed binding `inhibit-point-motion-hooks' is more decent than my
earlier proposal.  Try the attached patch.

[-- Attachment #2: flyspell.patch --]
[-- Type: text/plain, Size: 677 bytes --]

*** flyspell.el.~1.106.~	Sat Sep 23 11:08:58 2006
--- flyspell.el	Tue Oct 17 19:31:34 2006
***************
*** 959,964 ****
--- 959,965 ----
  (defun flyspell-word-search-backward (word bound)
    (save-excursion
      (let ((r '())
+ 	  (inhibit-point-motion-hooks t)
  	  p)
        (while (and (not r) (setq p (search-backward word bound t)))
  	(let ((lw (flyspell-get-word '())))
***************
*** 973,978 ****
--- 974,980 ----
  (defun flyspell-word-search-forward (word bound)
    (save-excursion
      (let ((r '())
+ 	  (inhibit-point-motion-hooks t)
  	  p)
        (while (and (not r) (setq p (search-forward word bound t)))
  	(let ((lw (flyspell-get-word '())))

[-- Attachment #3: Type: text/plain, Size: 142 bytes --]

_______________________________________________
Emacs-devel mailing list
Emacs-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-devel

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [bug]org-mode with flyspell-mode freezes emacs
  2006-10-17 10:57     ` Carsten Dominik
  2006-10-17 13:13       ` Carsten Dominik
@ 2006-10-17 18:40       ` Richard Stallman
  2006-10-17 20:45         ` martin rudalics
  1 sibling, 1 reply; 34+ messages in thread
From: Richard Stallman @ 2006-10-17 18:40 UTC (permalink / raw)
  Cc: nickrob, emacs-devel

    I have not been able to do this well, the results are very confusing to 
    me, I sometimes end up in the garbage collection, sometimes in search 
    functions like looking-at-1 or search-buffer.

This problem is not in GC.  We know that GC is simply being called
over and over.  So if it is in GC when you stop it, just continue and
stop it again.  Only the cases outside GC are interesting.

    A typical lisp backtrace looks like this:

    Lisp Backtrace:
    "flyspell-get-word" (0x3800209)
    "flyspell-word-search-backward" (0x1add4e3)
    "flyspell-word" (0x3800209)
    "flyspell-post-command-hook" (0x0)
    "run-hooks" (0x3809c69)

    or

    Lisp Backtrace:
    "re-search-forward" (0x1b0d1b3)

This proves that the loop is in a loop that calls re-search-forward,
but not re-search-forward.  However, the loop in flyspell-get-word
does not call re-search-forward.

I think that means that the loop is in a higher level frame.

Can you use the Lisp debugger to arrange to stop on returning
to the various frames, and then continue, and thus see which
frames get returned to?

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [bug]org-mode with flyspell-mode freezes emacs
  2006-10-17 18:40       ` Richard Stallman
@ 2006-10-17 20:45         ` martin rudalics
  2006-10-18 10:41           ` Richard Stallman
  0 siblings, 1 reply; 34+ messages in thread
From: martin rudalics @ 2006-10-17 20:45 UTC (permalink / raw)
  Cc: nickrob, emacs-devel, Carsten Dominik

 > This proves that the loop is in a loop that calls re-search-forward,
 > but not re-search-forward.  However, the loop in flyspell-get-word
 > does not call re-search-forward.
 >
 > I think that means that the loop is in a higher level frame.

The bug is in the following loop of `flyspell-word-search-backward'

       (while (and (not r) (setq p (search-backward word bound t)))
	(let ((lw (flyspell-get-word '())))
	  (if (and (consp lw) (string-equal (car lw) word))
	      (setq r p)
	    (goto-char p))))

which, IIUC, is run by a `post-command-hook' and thus does not permit
quitting.  On the other hand, the intangibility property doesn't permit
to move to the desired position and thus the loop is never exited.  The
patch I sent earlier should correct this (although, I think, that loop
_is_ asking for troubles).

As an aside: This is the first time I try flyspell and I noticed that
it's unbearably slow.  Shouldn't the checking stuff be run by a timer?

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [bug]org-mode with flyspell-mode freezes emacs
  2006-10-17 17:49         ` martin rudalics
@ 2006-10-17 21:11           ` Carsten Dominik
  2006-10-17 22:03             ` Stefan Monnier
  2006-10-18  4:14             ` Chong Yidong
  0 siblings, 2 replies; 34+ messages in thread
From: Carsten Dominik @ 2006-10-17 21:11 UTC (permalink / raw)
  Cc: Nick Roberts, Michael Olson, Richard M.Stallman, emacs-devel

I can confirm that Martin's patch does fix the problem.  This patch 
should go into Emacs CVS at least for the time being.

Thanks Martin, thank everyone who helped to debug this problem.

- Carsten


On Oct 17, 2006, at 19:49, martin rudalics wrote:

> > I just found out that the emacs-wiki and muse people have been
> > struggling with the same problem.  Their fix was to use
> > inhibit-point-motion-hooks.  This points into the direction that a
> > search function gets thrown off into a loop by the 
> point-motion-hooks.
>
> Indeed binding `inhibit-point-motion-hooks' is more decent than my
> earlier proposal.  Try the attached patch.
> *** flyspell.el.~1.106.~	Sat Sep 23 11:08:58 2006
> --- flyspell.el	Tue Oct 17 19:31:34 2006
> ***************
> *** 959,964 ****
> --- 959,965 ----
>   (defun flyspell-word-search-backward (word bound)
>     (save-excursion
>       (let ((r '())
> + 	  (inhibit-point-motion-hooks t)
>   	  p)
>         (while (and (not r) (setq p (search-backward word bound t)))
>   	(let ((lw (flyspell-get-word '())))
> ***************
> *** 973,978 ****
> --- 974,980 ----
>   (defun flyspell-word-search-forward (word bound)
>     (save-excursion
>       (let ((r '())
> + 	  (inhibit-point-motion-hooks t)
>   	  p)
>         (while (and (not r) (setq p (search-forward word bound t)))
>   	(let ((lw (flyspell-get-word '())))
>

--
Carsten Dominik
Sterrenkundig Instituut "Anton Pannekoek"
Universiteit van Amsterdam
Kruislaan 403
NL-1098SJ Amsterdam
phone: +31 20 525 7477

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [bug]org-mode with flyspell-mode freezes emacs
  2006-10-17 21:11           ` Carsten Dominik
@ 2006-10-17 22:03             ` Stefan Monnier
  2006-10-17 22:09               ` Lennart Borgman
  2006-10-17 22:38               ` Carsten Dominik
  2006-10-18  4:14             ` Chong Yidong
  1 sibling, 2 replies; 34+ messages in thread
From: Stefan Monnier @ 2006-10-17 22:03 UTC (permalink / raw)
  Cc: martin rudalics, Nick Roberts, Michael Olson, Richard M.Stallman,
	emacs-devel

> I can confirm that Martin's patch does fix the problem.  This patch should
> go into Emacs CVS at least for the time being.

I guess I agree.  But I think it points out a few other problems:
- the with-local-quit in flyspell.el is probably badly located: maybe it
  should be moved so that it makes it possible to break out of a bad loop
  like the above.
- `intangible' is evil.  Why do you use it in org-mode?


        Stefan

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [bug]org-mode with flyspell-mode freezes emacs
  2006-10-17 22:03             ` Stefan Monnier
@ 2006-10-17 22:09               ` Lennart Borgman
  2006-10-17 22:14                 ` David Kastrup
  2006-10-17 22:38               ` Carsten Dominik
  1 sibling, 1 reply; 34+ messages in thread
From: Lennart Borgman @ 2006-10-17 22:09 UTC (permalink / raw)
  Cc: emacs-devel

Stefan Monnier wrote:
> - `intangible' is evil.  Why do you use it in org-mode?
>   

Why is `intangible' evil?

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [bug]org-mode with flyspell-mode freezes emacs
  2006-10-17 22:09               ` Lennart Borgman
@ 2006-10-17 22:14                 ` David Kastrup
  2006-10-17 22:26                   ` Lennart Borgman
  0 siblings, 1 reply; 34+ messages in thread
From: David Kastrup @ 2006-10-17 22:14 UTC (permalink / raw)
  Cc: Stefan Monnier, emacs-devel

Lennart Borgman <lennart.borgman.073@student.lu.se> writes:

> Stefan Monnier wrote:
>> - `intangible' is evil.  Why do you use it in org-mode?
>>   
>
> Why is `intangible' evil?

Because it violates basic assumptions of a loooot of code.  It is
better to use post-command-hook to move the cursor out of forbidden
areas (and pre-command-hook to figure out from which direction the
forbidden area was entered, so that one can move out the other side):
that way, the effect is restricted to the command loop and does not
cause surprises to normal code.

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [bug]org-mode with flyspell-mode freezes emacs
  2006-10-17 22:14                 ` David Kastrup
@ 2006-10-17 22:26                   ` Lennart Borgman
  2006-10-17 22:38                     ` David Kastrup
  0 siblings, 1 reply; 34+ messages in thread
From: Lennart Borgman @ 2006-10-17 22:26 UTC (permalink / raw)
  Cc: Stefan Monnier, emacs-devel

David Kastrup wrote:
> Lennart Borgman <lennart.borgman.073@student.lu.se> writes:
>
>   
>> Stefan Monnier wrote:
>>     
>>> - `intangible' is evil.  Why do you use it in org-mode?
>>>   
>>>       
>> Why is `intangible' evil?
>>     
>
> Because it violates basic assumptions of a loooot of code.  It is
> better to use post-command-hook to move the cursor out of forbidden
> areas (and pre-command-hook to figure out from which direction the
> forbidden area was entered, so that one can move out the other side):
> that way, the effect is restricted to the command loop and does not
> cause surprises to normal code.
>   

Thanks, I see. But is there then a reason why not intangible mimics the 
behaviour that you describe?

Is it even possible to look at this as a bug?

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [bug]org-mode with flyspell-mode freezes emacs
  2006-10-17 22:03             ` Stefan Monnier
  2006-10-17 22:09               ` Lennart Borgman
@ 2006-10-17 22:38               ` Carsten Dominik
  2006-10-17 22:49                 ` David Kastrup
  2006-10-18  0:28                 ` Stefan Monnier
  1 sibling, 2 replies; 34+ messages in thread
From: Carsten Dominik @ 2006-10-17 22:38 UTC (permalink / raw)
  Cc: martin rudalics, Nick Roberts, Michael Olson, Richard M.Stallman,
	emacs-devel


On Oct 18, 2006, at 0:03, Stefan Monnier wrote:

>> I can confirm that Martin's patch does fix the problem.  This patch 
>> should
>> go into Emacs CVS at least for the time being.
>
> I guess I agree.  But I think it points out a few other problems:
> - the with-local-quit in flyspell.el is probably badly located: maybe 
> it
>   should be moved so that it makes it possible to break out of a bad 
> loop
>   like the above.
> - `intangible' is evil.  Why do you use it in org-mode?

Good question.  I am using links like

  [[http://www.google.com][Google Search]]

that will be displayed as "Google Search" in a buffer.  The remaining 
characters are hidden, using both invisible and intangible properties.  
I am in the process of realizing that `invisible' will be enough to do 
the job, and that `intangible' is not needed.

The reason why `intangible' is in there is because emacs-wiki does it 
this way, and I learned from looking at this code.  Anyway, I will 
probably remove `intangible' from org-mode anyway, just need to 
convince myself that is is safe to do so.

Thanks

- Carsten



--
Carsten Dominik
Sterrenkundig Instituut "Anton Pannekoek"
Universiteit van Amsterdam
Kruislaan 403
NL-1098SJ Amsterdam
phone: +31 20 525 7477

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [bug]org-mode with flyspell-mode freezes emacs
  2006-10-17 22:26                   ` Lennart Borgman
@ 2006-10-17 22:38                     ` David Kastrup
  2006-10-17 22:44                       ` Drew Adams
  0 siblings, 1 reply; 34+ messages in thread
From: David Kastrup @ 2006-10-17 22:38 UTC (permalink / raw)
  Cc: Stefan Monnier, emacs-devel

Lennart Borgman <lennart.borgman.073@student.lu.se> writes:

> David Kastrup wrote:
>> Lennart Borgman <lennart.borgman.073@student.lu.se> writes:
>>
>>   
>>> Stefan Monnier wrote:
>>>     
>>>> - `intangible' is evil.  Why do you use it in org-mode?
>>>>         
>>> Why is `intangible' evil?
>>
>> Because it violates basic assumptions of a loooot of code.  It is
>> better to use post-command-hook to move the cursor out of forbidden
>> areas (and pre-command-hook to figure out from which direction the
>> forbidden area was entered, so that one can move out the other
>> side): that way, the effect is restricted to the command loop and
>> does not cause surprises to normal code.
>>   
>
> Thanks, I see. But is there then a reason why not intangible mimics
> the behaviour that you describe?

Botched-up design.

> Is it even possible to look at this as a bug?

More like a misfeature.  intangible behaves as documented.  It is just
that the documented behavior can cause a lot of ugly surprises except
in very tightly controlled circumstances, since normal movement
commands skid on intangible areas like on banana peels.  What will
some convenience function like "mark-word" do in the presence of
intangible?  There is really no way to find out from reading its DOC
string.  You have to read every code line to figure out where it
merely calculates cursor distances, and where it tries moving there.

And when the circumstances are very tightly controlled so that
intangible is not encountered by any function not expecting it, you
don't actually need intangible.

In my opinion, it might be a good idea to introduce another property
(like `unpleasant') which is merely not used as a final resting place
in the command loop, at the same time deprecating `intangible', and
removing it at some later time.

I don't think there is much _reliably_ working code using it around,
anyway.

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum

^ permalink raw reply	[flat|nested] 34+ messages in thread

* RE: [bug]org-mode with flyspell-mode freezes emacs
  2006-10-17 22:38                     ` David Kastrup
@ 2006-10-17 22:44                       ` Drew Adams
  0 siblings, 0 replies; 34+ messages in thread
From: Drew Adams @ 2006-10-17 22:44 UTC (permalink / raw)


    In my opinion, it might be a good idea to introduce another property
    (like `unpleasant')...

I like the name, anyway. Very nice...er...unnice.

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [bug]org-mode with flyspell-mode freezes emacs
  2006-10-17 22:38               ` Carsten Dominik
@ 2006-10-17 22:49                 ` David Kastrup
  2006-10-18  4:26                   ` Carsten Dominik
  2006-10-18  0:28                 ` Stefan Monnier
  1 sibling, 1 reply; 34+ messages in thread
From: David Kastrup @ 2006-10-17 22:49 UTC (permalink / raw)
  Cc: Michael Olson, Richard M.Stallman, Nick Roberts, emacs-devel,
	martin rudalics, Stefan Monnier

Carsten Dominik <dominik@science.uva.nl> writes:

> On Oct 18, 2006, at 0:03, Stefan Monnier wrote:
>
>>> I can confirm that Martin's patch does fix the problem.  This patch
>>> should
>>> go into Emacs CVS at least for the time being.
>>
>> I guess I agree.  But I think it points out a few other problems:
>> - the with-local-quit in flyspell.el is probably badly located:
>> maybe it
>>   should be moved so that it makes it possible to break out of a bad
>> loop
>>   like the above.
>> - `intangible' is evil.  Why do you use it in org-mode?
>
> Good question.  I am using links like
>
>  [[http://www.google.com][Google Search]]
>
> that will be displayed as "Google Search" in a buffer.  The remaining
> characters are hidden, using both invisible and intangible properties.
> I am in the process of realizing that `invisible' will be enough to do
> the job, and that `intangible' is not needed.
>
> The reason why `intangible' is in there is because emacs-wiki does it
> this way, and I learned from looking at this code.  Anyway, I will
> probably remove `intangible' from org-mode anyway, just need to
> convince myself that is is safe to do so.

Why do you need anything in the buffer at all?  What is the actual
purpose of it?

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [bug]org-mode with flyspell-mode freezes emacs
  2006-10-17 22:38               ` Carsten Dominik
  2006-10-17 22:49                 ` David Kastrup
@ 2006-10-18  0:28                 ` Stefan Monnier
  2006-10-18  4:26                   ` Carsten Dominik
  1 sibling, 1 reply; 34+ messages in thread
From: Stefan Monnier @ 2006-10-18  0:28 UTC (permalink / raw)
  Cc: martin rudalics, Nick Roberts, Michael Olson, Richard M.Stallman,
	emacs-devel

> that will be displayed as "Google Search" in a buffer.  The remaining
> characters are hidden, using both invisible and intangible properties.  I am
> in the process of realizing that `invisible' will be enough to do the job,
> and that `intangible' is not needed.

> The reason why `intangible' is in there is because emacs-wiki does it this
> way, and I learned from looking at this code.  Anyway, I will probably
> remove `intangible' from org-mode anyway, just need to convince myself that
> is is safe to do so.

The code that moves point outside of invisible text is new in Emacs-22.
Before that, you either had to do it yourself by hand with
a post-command-hook or use `intangible'.


        Stefan

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [bug]org-mode with flyspell-mode freezes emacs
  2006-10-17 21:11           ` Carsten Dominik
  2006-10-17 22:03             ` Stefan Monnier
@ 2006-10-18  4:14             ` Chong Yidong
  1 sibling, 0 replies; 34+ messages in thread
From: Chong Yidong @ 2006-10-18  4:14 UTC (permalink / raw)
  Cc: martin rudalics, Nick Roberts, Michael Olson, Richard M.Stallman,
	emacs-devel

Carsten Dominik <dominik@science.uva.nl> writes:

> I can confirm that Martin's patch does fix the problem.  This patch
> should go into Emacs CVS at least for the time being.

Committed.  Thanks Martin.

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [bug]org-mode with flyspell-mode freezes emacs
  2006-10-17 22:49                 ` David Kastrup
@ 2006-10-18  4:26                   ` Carsten Dominik
  2006-10-18  7:35                     ` David Kastrup
  0 siblings, 1 reply; 34+ messages in thread
From: Carsten Dominik @ 2006-10-18  4:26 UTC (permalink / raw)
  Cc: Michael Olson, Richard M.Stallman, Nick Roberts, emacs-devel,
	martin rudalics, Stefan Monnier


On Oct 18, 2006, at 0:49, David Kastrup wrote:
>> Good question.  I am using links like
>>
>>  [[http://www.google.com][Google Search]]
>>
>> that will be displayed as "Google Search" in a buffer.  The remaining
>> characters are hidden, using both invisible and intangible properties.
>> I am in the process of realizing that `invisible' will be enough to do
>> the job, and that `intangible' is not needed.
>>
>> The reason why `intangible' is in there is because emacs-wiki does it
>> this way, and I learned from looking at this code.  Anyway, I will
>> probably remove `intangible' from org-mode anyway, just need to
>> convince myself that is is safe to do so.
>
> Why do you need anything in the buffer at all?  What is the actual
> purpose of it?

It is a clickable link, very much like

  <a href="www.google.com">Google Search</a>

- Carsten

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [bug]org-mode with flyspell-mode freezes emacs
  2006-10-18  0:28                 ` Stefan Monnier
@ 2006-10-18  4:26                   ` Carsten Dominik
  0 siblings, 0 replies; 34+ messages in thread
From: Carsten Dominik @ 2006-10-18  4:26 UTC (permalink / raw)
  Cc: martin rudalics, Nick Roberts, Michael Olson, Richard M.Stallman,
	emacs-devel

That is important information, thank you.

- Carsten

On Oct 18, 2006, at 2:28, Stefan Monnier wrote:

>> that will be displayed as "Google Search" in a buffer.  The remaining
>> characters are hidden, using both invisible and intangible 
>> properties.  I am
>> in the process of realizing that `invisible' will be enough to do the 
>> job,
>> and that `intangible' is not needed.
>
>> The reason why `intangible' is in there is because emacs-wiki does it 
>> this
>> way, and I learned from looking at this code.  Anyway, I will probably
>> remove `intangible' from org-mode anyway, just need to convince 
>> myself that
>> is is safe to do so.
>
> The code that moves point outside of invisible text is new in Emacs-22.
> Before that, you either had to do it yourself by hand with
> a post-command-hook or use `intangible'.
>
>
>         Stefan
>
>

--
Carsten Dominik
Sterrenkundig Instituut "Anton Pannekoek"
Universiteit van Amsterdam
Kruislaan 403
NL-1098SJ Amsterdam
phone: +31 20 525 7477

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [bug]org-mode with flyspell-mode freezes emacs
  2006-10-18  4:26                   ` Carsten Dominik
@ 2006-10-18  7:35                     ` David Kastrup
  2006-10-20 22:05                       ` Michael Olson
  0 siblings, 1 reply; 34+ messages in thread
From: David Kastrup @ 2006-10-18  7:35 UTC (permalink / raw)
  Cc: Michael Olson, Richard M.Stallman, Nick Roberts, emacs-devel,
	martin rudalics, Stefan Monnier

Carsten Dominik <dominik@science.uva.nl> writes:

> On Oct 18, 2006, at 0:49, David Kastrup wrote:
>>> Good question.  I am using links like
>>>
>>>  [[http://www.google.com][Google Search]]
>>>
>>> that will be displayed as "Google Search" in a buffer.  The remaining
>>> characters are hidden, using both invisible and intangible properties.
>>> I am in the process of realizing that `invisible' will be enough to do
>>> the job, and that `intangible' is not needed.
>>>
>>> The reason why `intangible' is in there is because emacs-wiki does it
>>> this way, and I learned from looking at this code.  Anyway, I will
>>> probably remove `intangible' from org-mode anyway, just need to
>>> convince myself that is is safe to do so.
>>
>> Why do you need anything in the buffer at all?  What is the actual
>> purpose of it?
>
> It is a clickable link, very much like
>
>  <a href="www.google.com">Google Search</a>

The question is why the information of the link has to be in the
buffer text.

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [bug]org-mode with flyspell-mode freezes emacs
  2006-10-17 20:45         ` martin rudalics
@ 2006-10-18 10:41           ` Richard Stallman
  0 siblings, 0 replies; 34+ messages in thread
From: Richard Stallman @ 2006-10-18 10:41 UTC (permalink / raw)
  Cc: nickrob, dominik, emacs-devel

    As an aside: This is the first time I try flyspell and I noticed that
    it's unbearably slow.  Shouldn't the checking stuff be run by a timer?

I don't know, but would you like to give it a try?

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [bug]org-mode with flyspell-mode freezes emacs
  2006-10-18  7:35                     ` David Kastrup
@ 2006-10-20 22:05                       ` Michael Olson
  2006-10-21  6:13                         ` David Kastrup
  0 siblings, 1 reply; 34+ messages in thread
From: Michael Olson @ 2006-10-20 22:05 UTC (permalink / raw)



[-- Attachment #1.1: Type: text/plain, Size: 971 bytes --]

David Kastrup <dak@gnu.org> writes:

> The question is why the information of the link has to be in the
> buffer text.

The purpose of this program is for the user to keep track of various
kinds of data in a way that can be viewed and exported conveniently,
similar (to some extent) to a wiki engine and personal organizer.

For links, which are colorized for the sake of visual appeal, the user
provides both the link and (optionally) the link description using the
markup syntax that Carsten described.  So of course it has to be in
the buffer text -- how else could changes be meaningfully saved?

-- 
Michael Olson -- FSF Associate Member #652 -- http://www.mwolson.org/
Interests: Emacs Lisp, text markup, protocols -- Jabber: mwolson_at_hcoop.net
  /` |\ | | | Projects: Emacs, Muse, ERC, EMMS, Planner, ErBot, DVC
 |_] | \| |_| Reclaim your digital rights by eliminating DRM.
      See http://www.defectivebydesign.org/what_is_drm for details.

[-- Attachment #1.2: Type: application/pgp-signature, Size: 188 bytes --]

[-- Attachment #2: Type: text/plain, Size: 142 bytes --]

_______________________________________________
Emacs-devel mailing list
Emacs-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-devel

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [bug]org-mode with flyspell-mode freezes emacs
  2006-10-20 22:05                       ` Michael Olson
@ 2006-10-21  6:13                         ` David Kastrup
  2006-10-21 18:30                           ` Michael Olson
  2006-10-22  0:24                           ` Stefan Monnier
  0 siblings, 2 replies; 34+ messages in thread
From: David Kastrup @ 2006-10-21  6:13 UTC (permalink / raw)
  Cc: emacs-devel

Michael Olson <mwolson@gnu.org> writes:

> David Kastrup <dak@gnu.org> writes:
>
>> The question is why the information of the link has to be in the
>> buffer text.
>
> The purpose of this program is for the user to keep track of various
> kinds of data in a way that can be viewed and exported conveniently,
> similar (to some extent) to a wiki engine and personal organizer.
>
> For links, which are colorized for the sake of visual appeal, the
> user provides both the link and (optionally) the link description
> using the markup syntax that Carsten described.  So of course it has
> to be in the buffer text -- how else could changes be meaningfully
> saved?

By putting them into text properties and converting those using
format.el.  I think that is what enriched text mode does.

It's not exactly like this has not been already discussed in this
thread.

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [bug]org-mode with flyspell-mode freezes emacs
  2006-10-21  6:13                         ` David Kastrup
@ 2006-10-21 18:30                           ` Michael Olson
  2006-10-23  5:11                             ` Richard Stallman
  2006-10-22  0:24                           ` Stefan Monnier
  1 sibling, 1 reply; 34+ messages in thread
From: Michael Olson @ 2006-10-21 18:30 UTC (permalink / raw)



[-- Attachment #1.1: Type: text/plain, Size: 1948 bytes --]

David Kastrup <dak@gnu.org> writes:

> Michael Olson <mwolson@gnu.org> writes:
>
>> For links, which are colorized for the sake of visual appeal, the
>> user provides both the link and (optionally) the link description
>> using the markup syntax that Carsten described.  So of course it
>> has to be in the buffer text -- how else could changes be
>> meaningfully saved?
>
> By putting them into text properties and converting those using
> format.el.  I think that is what enriched text mode does.

Thank you for pointing this out.

[Now speaking from the perspective of Emacs Muse, which I maintain,
and which uses the same syntax for links.]

format.el does not seem to be able to handle what needs to be done,
however.  For one thing, it can only do translations that involve one
property at a time.  Muse needs to be able to add the muse-link to the
entire link, a face to the description, and invisible to the link
destination.  Just using the display property isn't enough, because
(1) there is a helpful feature of jumping to the next link by hitting
TAB, which is fastest when using the muse-link property and (2) it
apparently inhibits the user from editing the link description in
place, which is a useful feature.

> It's not exactly like this has not been already discussed in this
> thread.

I don't see any mention of format.el on this thread, apart from the
message this one responds to.

If you are going to question the way something is done, please mention
an alternative at the same time, otherwise it is hard to take you
seriously.

-- 
Michael Olson -- FSF Associate Member #652 -- http://www.mwolson.org/
Interests: Emacs Lisp, text markup, protocols -- Jabber: mwolson_at_hcoop.net
  /` |\ | | | Projects: Emacs, Muse, ERC, EMMS, Planner, ErBot, DVC
 |_] | \| |_| Reclaim your digital rights by eliminating DRM.
      See http://www.defectivebydesign.org/what_is_drm for details.

[-- Attachment #1.2: Type: application/pgp-signature, Size: 188 bytes --]

[-- Attachment #2: Type: text/plain, Size: 142 bytes --]

_______________________________________________
Emacs-devel mailing list
Emacs-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-devel

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [bug]org-mode with flyspell-mode freezes emacs
  2006-10-21  6:13                         ` David Kastrup
  2006-10-21 18:30                           ` Michael Olson
@ 2006-10-22  0:24                           ` Stefan Monnier
  2006-10-22 16:39                             ` David Kastrup
  1 sibling, 1 reply; 34+ messages in thread
From: Stefan Monnier @ 2006-10-22  0:24 UTC (permalink / raw)
  Cc: Michael Olson, emacs-devel

> By putting them into text properties and converting those using
> format.el.  I think that is what enriched text mode does.

Invisible text in a buffer has its drawbacks, but so does format.el.


        Stefan

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [bug]org-mode with flyspell-mode freezes emacs
  2006-10-22  0:24                           ` Stefan Monnier
@ 2006-10-22 16:39                             ` David Kastrup
  0 siblings, 0 replies; 34+ messages in thread
From: David Kastrup @ 2006-10-22 16:39 UTC (permalink / raw)
  Cc: Michael Olson, emacs-devel

Stefan Monnier <monnier@iro.umontreal.ca> writes:

>> By putting them into text properties and converting those using
>> format.el.  I think that is what enriched text mode does.
>
> Invisible text in a buffer has its drawbacks, but so does format.el.

Certainly.  One wants to choose the way that best corresponds to the
users wishes, needs and expectations.

I don't think I ever suggested anything different.

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [bug]org-mode with flyspell-mode freezes emacs
  2006-10-21 18:30                           ` Michael Olson
@ 2006-10-23  5:11                             ` Richard Stallman
  2006-10-23 13:00                               ` Michael Olson
  0 siblings, 1 reply; 34+ messages in thread
From: Richard Stallman @ 2006-10-23  5:11 UTC (permalink / raw)
  Cc: emacs-devel

    format.el does not seem to be able to handle what needs to be done,
    however.  For one thing, it can only do translations that involve one
    property at a time.  Muse needs to be able to add the muse-link to the
    entire link, a face to the description, and invisible to the link
    destination.

format.el was meant for doing things like enriched.el, but it has not
been used very much.  It could well be that some redesign would make
it a lot more useful.  If you want to work, non-urgently, on that kind
of improvement in format.el, I'd appreciate it.

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [bug]org-mode with flyspell-mode freezes emacs
  2006-10-23  5:11                             ` Richard Stallman
@ 2006-10-23 13:00                               ` Michael Olson
  0 siblings, 0 replies; 34+ messages in thread
From: Michael Olson @ 2006-10-23 13:00 UTC (permalink / raw)



[-- Attachment #1.1: Type: text/plain, Size: 755 bytes --]

Richard Stallman <rms@gnu.org> writes:

> format.el was meant for doing things like enriched.el, but it has not
> been used very much.  It could well be that some redesign would make
> it a lot more useful.  If you want to work, non-urgently, on that kind
> of improvement in format.el, I'd appreciate it.

I'll try to take a look at it sometime after I release the next
version of Muse.

-- 
Michael Olson -- FSF Associate Member #652 -- http://www.mwolson.org/
Interests: Emacs Lisp, text markup, protocols -- Jabber: mwolson_at_hcoop.net
  /` |\ | | | Projects: Emacs, Muse, ERC, EMMS, Planner, ErBot, DVC
 |_] | \| |_| Reclaim your digital rights by eliminating DRM.
      See http://www.defectivebydesign.org/what_is_drm for details.

[-- Attachment #1.2: Type: application/pgp-signature, Size: 188 bytes --]

[-- Attachment #2: Type: text/plain, Size: 142 bytes --]

_______________________________________________
Emacs-devel mailing list
Emacs-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-devel

^ permalink raw reply	[flat|nested] 34+ messages in thread

end of thread, other threads:[~2006-10-23 13:00 UTC | newest]

Thread overview: 34+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-10-15  4:20 [bug]org-mode with flyspell-mode freezes emacs Richard Stallman
2006-10-16  7:55 ` Carsten Dominik
2006-10-16  9:01 ` Carsten Dominik
2006-10-16 18:47   ` Richard Stallman
2006-10-17  4:33   ` Nick Roberts
2006-10-17 10:57     ` Carsten Dominik
2006-10-17 13:13       ` Carsten Dominik
2006-10-17 14:18         ` martin rudalics
2006-10-17 17:49         ` martin rudalics
2006-10-17 21:11           ` Carsten Dominik
2006-10-17 22:03             ` Stefan Monnier
2006-10-17 22:09               ` Lennart Borgman
2006-10-17 22:14                 ` David Kastrup
2006-10-17 22:26                   ` Lennart Borgman
2006-10-17 22:38                     ` David Kastrup
2006-10-17 22:44                       ` Drew Adams
2006-10-17 22:38               ` Carsten Dominik
2006-10-17 22:49                 ` David Kastrup
2006-10-18  4:26                   ` Carsten Dominik
2006-10-18  7:35                     ` David Kastrup
2006-10-20 22:05                       ` Michael Olson
2006-10-21  6:13                         ` David Kastrup
2006-10-21 18:30                           ` Michael Olson
2006-10-23  5:11                             ` Richard Stallman
2006-10-23 13:00                               ` Michael Olson
2006-10-22  0:24                           ` Stefan Monnier
2006-10-22 16:39                             ` David Kastrup
2006-10-18  0:28                 ` Stefan Monnier
2006-10-18  4:26                   ` Carsten Dominik
2006-10-18  4:14             ` Chong Yidong
2006-10-17 18:40       ` Richard Stallman
2006-10-17 20:45         ` martin rudalics
2006-10-18 10:41           ` Richard Stallman
     [not found] <m2lknmthc4.fsf@sl392.st-edmunds.cam.ac.uk>
2006-10-12 16:57 ` Leo

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).