When visiting any VHDL file, trying to execute vhdl-generate-makefile (C-c M-k) will fail if vhdl-project is nil. The resulting error message and backtrace are as follows: vhdl-generate-makefile-1: Symbol’s value as variable is void: rule-alist Debugger entered--Lisp error: (void-variable rule-alist) vhdl-aput(rule-alist "counter.vhd" (("counter") nil)) vhdl-generate-makefile-1() vhdl-generate-makefile() funcall-interactively(vhdl-generate-makefile) command-execute(vhdl-generate-makefile) I suspect this might be due to changes when lexical-binding was enabled, I went back to commit d365c947b53a2a1e4b43ab65922ebfeca23943d1 where it's working. Note that I've never used this feature before so I don't know exactly how it's supposed to behave, I wanted to try it out. The makefile I get from the older vhdl-mode.el does seem to make sense though, I’ve attached it for reference. In GNU Emacs 28.1 (build 2, x86_64-w64-mingw32) of 2022-04-09 built on fv-az449-585 Repository revision: 04afff7cc015bc553c5f7abe57d6b6b23448bbea Repository branch: master Windowing system distributor 'Microsoft Corp.', version 10.0.19044 System Description: Microsoft Windows 10 Pro (v10.0.2009.19044.1645) Configured using: 'configure --prefix=/mingw64 --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-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 rfc822 mml mml-sec epa derived epg rfc6068 epg-config gnus-util rmail rmail-loaddefs mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils help-fns radix-tree cl-print debug backtrace cus-start time-date vc-dispatcher vc-svn vhdl-mode hippie-exp dired-aux comp comp-cstr warnings dired dired-loaddefs 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 finder-inf server delsel tabbar grep compile text-property-search comint ring 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 451621 148985) (symbols 48 21732 155) (strings 32 129708 28702) (string-bytes 1 3547925) (vectors 16 38307) (vector-slots 8 638853 354540) (floats 8 94 629) (intervals 56 601 449) (buffers 992 15))