Project

General

Profile

[logo] 
 
Home
News
Activity
About/Contact
Major Tools
  Dinotrace
  Verilator
  Verilog-mode
  Verilog-Perl
Other Tools
  IPC::Locker
  Parallel::Forker
  Voneline
General Info
  Papers

Issue #1076

XEmacs freezes for 11 seconds when pressing carriage return

Added by Dan Hopper over 3 years ago. Updated about 1 month ago.

Status:
NotEnoughInfo
Priority:
Normal
Assignee:
-
Category:
General
% Done:

0%


Description

Hi,

I'm not an emacs programming expert but I have been using verilog-mode for a very long time with success. I've used it before with very long (10000-20000 line) Verilog source files without too much issue. But I recently inherited a 17,000 line source file that is giving Verilog-mode a hiccup while pressing carriage return, and I wonder if it might be possible to figure out why. The issue is that XEmacs goes out to lunch for awhile with 100% CPU when I press carriage return at the end of various lines throughout the file. The file contains Verilog-2001 and SystemVerilog features.

For example, I'm about 5000 lines into the file pressing carriage return at the end of a multi-line C++ style comment, and XEmacs locks up for ~ 12 seconds with 100% CPU. When it returns, it works normally. But this happens over and over so it's rather an impediment. As Wilson suggested in an email, I set M-x toggle-debug-on-quit, then hit ctrl-g a few seconds into the slowness, and have attached the backtrace to this issue. Maybe it's helpful to those with more expertise?

I'd appreciate any suggestions on features to disable, etc.

I've already updated to verilog-mode-2016-04-23-5f6855e-vpo.el.gz, which was the latest a few weeks ago.

Here's what I'm over-riding in ~/.emacs. (Some of the values I set 15-20 years ago so if they're not ideal then I can easily change them.) As you can see, when I first encountered this slow carriage return problem, setting "verilog-auto-indent-on-newline nil" seemed to solve it, but now I'm finding it didn't completely eliminate the behavior.

(add-hook 'verilog-mode-hook '(lambda () (font-lock-mode 1))) (setq verilog-indent-level 4 verilog-indent-level-module 0 verilog-indent-level-declaration 0 verilog-indent-level-behavioral 4 verilog-indent-level-directive 4 verilog-cexp-indent 4 verilog-case-indent 2 verilog-auto-newline nil ;TESTING verilog-auto-indent-on-newline t verilog-auto-indent-on-newline nil ; TESTING. Had to not set this to avoid rt.v carriage return performance issue. verilog-tab-always-indent nil verilog-tab-to-comment t verilog-indent-begin-after-if nil verilog-align-ifelse nil verilog-auto-endcomments nil verilog-minimum-comment-distance 40 verilog-auto-lineup '(all) verilog-highlight-p1800-keywords nil ;verilog-linter nil )

Thanks, Dan Hopper

backtrace.txt View - Backtrace during delay (4.25 KB) Dan Hopper, 07/14/2016 03:51 PM

History

#1 Updated by Dan Hopper over 3 years ago

Sorry, didn't notice that the pre wrapper was needed for the ~/.emacs file excerpt:

(add-hook 'verilog-mode-hook '(lambda () (font-lock-mode 1)))
(setq verilog-indent-level             4
      verilog-indent-level-module      0
      verilog-indent-level-declaration 0
      verilog-indent-level-behavioral  4
      verilog-indent-level-directive   4
      verilog-cexp-indent              4
      verilog-case-indent              2
      verilog-auto-newline             nil
      ;TESTING verilog-auto-indent-on-newline   t
      verilog-auto-indent-on-newline   nil    ; TESTING. Had to not set this to avoid rt.v carriage return performance issue.
      verilog-tab-always-indent        nil
      verilog-tab-to-comment           t
      verilog-indent-begin-after-if    nil
      verilog-align-ifelse             nil
      verilog-auto-endcomments         nil
      verilog-minimum-comment-distance 40
      verilog-auto-lineup              '(all)
      verilog-highlight-p1800-keywords nil
      ;verilog-linter                   nil
      )

#2 Updated by Wilson Snyder about 2 years ago

  • Status changed from New to Confirmed

There were some performance problems, but might still a problem, perhaps someone would like to check and contribute a patch?

#3 Updated by Wilson Snyder about 1 month ago

  • Status changed from Confirmed to NotEnoughInfo

Closing due to age, if someone wants to contribute a patch we'll consider it.

Also available in: Atom