Subject: bug#62508: closed (Re: bug#62508: 28.2; vhdl-mode ModelSim compile warnings aren't highlighted)

From: [email-masked] (GNU bug Tracking System)
Date: Sat, 01 Apr 2023 10:09:01 +0000

Your bug report

#62508: 28.2; vhdl-mode ModelSim compile warnings aren't highlighted

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
62508: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=62508
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#62508: 28.2; vhdl-mode ModelSim compile warnings aren't highlighted
From: Eli Zaretskii <[email-masked]>
To: Cyril Arnould <[email-masked]>
Cc: [email-masked], [email-masked], [email-masked]
Date: Sat, 01 Apr 2023 13:09:04 +0300
List-Id: <debbugs-submit.debbugs.gnu.org>

> From: Cyril Arnould <[email-masked]>
> CC: "[email-masked]" <[email-masked]>
> Date: Thu, 30 Mar 2023 14:23:48 +0000
> 
> I can confirm that with the regexp above, my ModelSim also detects the warnings, albeit as errors.
> 
> After some digging I found that when I was compiling with GHDL, it didn't actually match with the GHDL
> regexp defined in vhdl-mode.el but with the gnu compiler regexp, which I believe is defined in
> etc/compilation.txt. Makes sense since GHDL is based on GCC.
> 
> I guess differentiating between Warnings and Errors for VHDL compilers would in this case be more of a
> feature request than a bug, so with Reto's fix the bug can be seen as resolved.

Thanks, I installed this on the emacs-29 branch, and I'm closing this
bug.

Subject: 28.2; vhdl-mode ModelSim compile warnings aren't highlighted
From: Cyril Arnould <[email-masked]>
To: "[email-masked]" <[email-masked]>
Date: Tue, 28 Mar 2023 19:43:40 +0000
List-Id: <debbugs-submit.debbugs.gnu.org>

This bug is twofold. On one hand, the current configuration of the
ModelSim compiler is not able to parse and highlight the Warnings as
warnings when using vhdl-compile, they are listed as errors. With GHDL
on the other hand, the *compile* buffer differentiates between
warnings and errors when highlighting. I can't reproduce this at home
since I don't have a ModelSim license there, but you can see the effect
in a screenshot from the bugfix that introduced this:

https://lists.gnu.org/archive/html/bug-gnu-emacs/2014-10/msg01377.html

I have tried looking into modifying the regexp but for the life of me I
couldn't figure out how compile.el differentiates between warnings and
errors.

Now the second problem is that I believe the way bug#5768 was fixed is
actually not compatible with ModelSim, but with ModelSim-Intel (formerly
Altera). As the link above shows, the warnings are formatted as follows:

** Warning: [3] counter_rtl.vhd(18): (vcom-1246) Range 5 downto 6 is null.

My ModelSim actually formats its Warnings differently, for example:

** Warning: (vcom-1246) counter_rtl.vhd(18): Range 5 downto 6 is null.

You can look into the ModelSim documentation under the "Message Format"
Section. I am not 100% certain if the number in brackets could also
appear in my Installation but possibly the number is just optional. The
regexp could be modified to allow both, this would avoid introducing a
separate Modelsim-Intel compiler.

I can verify any fixes at work.

In GNU Emacs 28.2 (build 2, x86_64-w64-mingw32)
of 2022-10-11 built on fv-az277-711
Repository revision: b35f9af313a5d5c42988eb5a7751209b4234a67e
Repository branch: master
Windowing system distributor 'Microsoft Corp.', version 10.0.19044
System Description: Microsoft Windows 10 Pro (v10.0.2009.19044.2728)

Configured using:
'configure --prefix=/ucrt64 --host=x86_64-w64-mingw32
--build=x86_64-w64-mingw32 --with-modules --without-dbus
--without-compress-install --with-native-compilation
'CFLAGS=-march=x86-64 -mtune=generic -O2 -pipe'
CPPFLAGS=-D__USE_MINGW_ANSI_STDIO=1 LDFLAGS=-pipe'

Configured features:
ACL GIF GMP GNUTLS HARFBUZZ JPEG JSON LIBXML2 MODULES NATIVE_COMP NOTIFY
W32NOTIFY PDUMPER PNG RSVG SOUND THREADS TIFF TOOLKIT_SCROLL_BARS XPM
ZLIB

Important settings:
  value of $LANG: en_GB
  locale-coding-system: cp1252

Major mode: VHDL/es

Minor modes in effect:
  vhdl-stutter-mode: t
  vhdl-electric-mode: t
  display-line-numbers-mode: t
  override-global-mode: t
  delete-selection-mode: t
  tabbar-mwheel-mode: t
  tabbar-mode: t
  global-so-long-mode: t
  global-flycheck-mode: t
  flycheck-mode: t
  cua-mode: t
  company-tng-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  size-indication-mode: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug message rmc puny dired dired-loaddefs
rfc822 mml mml-sec epa derived epg rfc6068 epg-config gnus-util rmail
rmail-loaddefs time-date mm-decode mm-bodies mm-encode mail-parse
rfc2231 mailabbrev gmm-utils mailheader sendmail comp comp-cstr warnings
rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils thingatpt
vc-git diff-mode vc-dispatcher vhdl-mode hippie-exp display-line-numbers
cl-extra use-package use-package-ensure use-package-delight
use-package-diminish use-package-bind-key bind-key use-package-core
server delsel tabbar grep compile text-property-search comint ring
so-long flycheck ansi-color find-func help-mode rx dash cua-base
company-tng company easy-mmode edmacro kmacro pcase cus-load tex-site
info package browse-url url url-proxy url-privacy url-expand url-methods
url-history url-cookie url-domsuf url-util mailcap url-handlers
url-parse auth-source cl-seq eieio eieio-core cl-macs eieio-loaddefs
password-cache json subr-x map url-vars seq byte-opt gv bytecomp
byte-compile cconv cl-loaddefs cl-lib iso-transl tooltip eldoc paren
electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel
dos-w32 ls-lisp disp-table term/w32-win w32-win w32-vars term/common-win
tool-bar dnd fontset image regexp-opt fringe tabulated-list replace
newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar
rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock
font-lock syntax font-core term/tty-colors frame minibuffer cl-generic
cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao
korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech
european ethiopic indian cyrillic chinese composite emoji-zwj charscript
charprop case-table epa-hook jka-cmpr-hook help simple abbrev obarray
cl-preloaded nadvice button loaddefs faces cus-face macroexp files
window text-properties overlay sha1 md5 base64 format env code-pages
mule custom widget hashtable-print-readable backquote threads w32notify
w32 multi-tty make-network-process native-compile emacs)

Memory information:
((conses 16 217354 87176)
(symbols 48 16483 112)
(strings 32 52787 13243)
(string-bytes 1 1818846)
(vectors 16 28154)
(vector-slots 8 494360 127752)
(floats 8 82 266)
(intervals 56 627 304)
(buffers 992 13))