Version française
Home     About     Download     Resources     Contact us    
Browse thread
Tuareg mode vs. recursive modules
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Márk_S._Zoltán <zoltan.s.mark@d...>
Subject: Tuareg mode vs. recursive modules
Hello, everyone -

I was just recently been plagued with unexplainable freezes in Emacs 
while using Tuareg. (I am using Emacs 21.3.1 on Windows 2000, Tuareg v. 
1.45.0-rc1) After a long search I have narrowed down the problem to the 
following code:

module rec A : B =
  struct
  end
and C : D = E(A)

This sort of recursive module definition apparently is not identified as 
a phrase by Tuareg, as a consequence it cannot be automatically 
indented, so whenever I hit Alt-Q, Emacs just hangs/runs into an 
infinite loop (95-98% CPU usage level).

On the other hand, this code is harmless:

module rec A : B =
  struct
  end
and C : D =
  struct
  end

so the problem must lie with the use of functors in recursive modules.

I have no good idea where to look next. Tried to make sense of the 
phrase identification code in tuareg.el, but I am no Emacs guru, so my 
failure was predictable. Tried it on a brand new install of Fedora - no 
personal settings added, same Emacs and Tuareg versions as on W2K - and 
it works (i.e. freezes) all the same. Searching the internet yielded no 
clues at all. Is this a known problem, has anybody else encountered it?

Thanks

    Z-