in reply to new version of emacs cperl-mode available for testing

I love cperl-mode! When byte-compiling I got:

Compiling file /usr/share/emacs/21.4/lisp/progmodes/cperl-mode.el at T +ue Oct 25 13:26:56 2005 ** `(fboundp (quote eval-when-compile))' called for effect ** `(fboundp (quote eval-when-compile))' called for effect ** cperl-after-block-p called with 2 arguments, but accepts only 1 While compiling cperl-find-pods-heres: ** cperl-find-pods-heres called with 6 arguments, but accepts only 0 +-5 While compiling cperl-beautify-regexp-piece: ** function cperl-beautify-regexp-piece used to take 3 arguments, no +w takes 4 ** cperl-beautify-regexp-piece called with 4 arguments, but accepts +only 3 ** cperl-beautify-regexp-piece called with 4 arguments, but accepts +only 3 ** cperl-beautify-regexp-piece called with 4 arguments, but accepts +only 3 ** cperl-beautify-regexp-piece called with 4 arguments, but accepts +only 3

My emacs-version's value is "21.4.1". Using cperl-mode.el.5.10. On Linux version 2.6.12-1.1390_FC4 (bhcompile@decompose.build.redhat.com) (gcc version 4.0.0 20050519 (Red Hat 4.0.0-8)) #1 Tue Jul 5 19:58:55 EDT 2005

Update: it certainly seems much quicker in parsing a buffer!

Replies are listed 'Best First'.
Re^2: new version of emacs cperl-mode available for testing
by ysth (Canon) on Oct 27, 2005 at 02:19 UTC
    If you haven't already, please report this to Ilya, either directly (yes, the nospam-abuse is really in his address) or in the clp.moderated thread or both.
Re^2: new version of emacs cperl-mode available for testing
by monarch (Priest) on Nov 08, 2005 at 23:33 UTC
    Aarrgghh!

    It seems between cperl-mode v5.0 and v5.3 something broke. I have a file with perl code that sends my emacs into a tight CPU spin and the only way out is to kill emacs-x!

    update: it appears that having space characters on empty lines following a piece of code takes an exponentially long time to process (depending on how many space characters there are).. The following code exhibits this problem:

    #.-*-CPerl-*- { ....foreach.(.qw(.hello.goodbye.).).{ ........if ( 1 ) { ............my ...... ............
    but be sure to s/./ /sg before loading this into cperl-mode! You'll note that every space character you add to the 2nd last line will take an exponentially longer time to process.

    update: after e-mailing Ilya Zakharevich yesterday I've already had a response, and v5.14 of cperl-mode has been released which handles the scenario I wrote about here! Great stuff!