Subject: bug#76131: 30.0.93; vlf: advice for abort-if-file-too-large seems broken in Emacs 30

From: fap <[email-masked]>
Date: Sat, 8 Feb 2025 14:04:05 +0100

Okay, I think that one was my bad, as I was using the unmaintained melpa 
version.
But now I ran into another error in the same advice with the elpa 
version 1.7.2.

This is the error I'm getting now:

Debugger entered--Lisp error: (void-variable size)
   ad-Advice-abort-if-file-too-large(#f(compiled-function (size op-type 
filename &optional offer-raw) "If file SIZE larger than 
`large-file-warning-threshold', allow user to abort.\nOP-TYPE specifies 
the file operation being performed (for message\nto user).  If OFFER-RAW 
is true, give user the additional option\nto open the file literally.  
If the user chooses this option,\n`abort-if-file-too-large' returns the 
symbol `raw'. Otherwise,\nit returns nil or exits non-locally." 
#<bytecode -0xa03b2ee7918250d>) 1210 "open" "~/.bash_aliases" t)
   apply(ad-Advice-abort-if-file-too-large #f(compiled-function (size 
op-type filename &optional offer-raw) "If file SIZE larger than 
`large-file-warning-threshold', allow user to abort.\nOP-TYPE specifies 
the file operation being performed (for message\nto user).  If OFFER-RAW 
is true, give user the additional option\nto open the file literally.  
If the user chooses this option,\n`abort-if-file-too-large' returns the 
symbol `raw'. Otherwise,\nit returns nil or exits non-locally." 
#<bytecode -0xa03b2ee7918250d>) (1210 "open" "~/.bash_aliases" t))
   abort-if-file-too-large(1210 "open" "~/.bash_aliases" t)
   find-file-noselect("~/.bash_aliases" nil nil t)
   find-file("~/.bash_aliases" t)
   funcall-interactively(find-file "~/.bash_aliases" t)
   call-interactively(find-file nil nil)
   command-execute(find-file)

> Does the problem happen if you load vlf-setup.el manually, as a Lisp 
> (not compiled) file?

Not completely sure I understand you correctly, but this also happens 
when I directly load the file via
~(load "~/.emacs.d/elpa/vlf-1.7.2/vlf-setup.el")~ instead of ~(require 
'vlf-setup)~.
I don't see a "vlf-setup.elc" file in the "vlf-1.7.2" folder.
The error also happens when I start emacs with ~emacs -q~.

On 2/8/25 08:50, Eli Zaretskii wrote:
>> Date: Fri, 7 Feb 2025 21:39:45 +0100
>> From:  fap via "Bug reports for GNU Emacs,
>>   the Swiss army knife of text editors"<[email-masked]>
>>
>> After upgrading to Emacs 30 I couldn't open files anymore
>> with (vlf-setup) applied / required.
>>
>> The backtrace is as follows:
>>
>> Debugger entered--Lisp error: (void-variable always)
>>     ad-Advice-abort-if-file-too-large(#f(compiled-function (size op-type
>> filename &optional offer-raw) "If file SIZE larger than
>> `large-file-warning-threshold', allow user to abort.\nOP-TYPE specifies
>> the file operation being performed (for message\nto user).  If OFFER-RAW
>> is true, give user the additional option\nto open the file literally.
>> If the user chooses this option,\n`abort-if-file-too-large' returns the
>> symbol `raw'.  Otherwise,\nit returns nil or exits non-locally."
>> #<bytecode -0x118b121ca418257d>) 16007 "open"
>> "~/.local/share/chezmoi/emacs/github-pandoc.css" t)
>>     apply(ad-Advice-abort-if-file-too-large #f(compiled-function (size
>> op-type filename &optional offer-raw) "If file SIZE larger than
>> `large-file-warning-threshold', allow user to abort.\nOP-TYPE specifies
>> the file operation being performed (for message\nto user).  If OFFER-RAW
>> is true, give user the additional option\nto open the file literally.
>> If the user chooses this option,\n`abort-if-file-too-large' returns the
>> symbol `raw'.  Otherwise,\nit returns nil or exits non-locally."
>> #<bytecode -0x118b121ca418257d>) (16007 "open"
>> "~/.local/share/chezmoi/emacs/github-pandoc.css" t))
>>     abort-if-file-too-large(16007 "open"
>> "~/.local/share/chezmoi/emacs/github-pandoc.css" t)
>>    
>> find-file-noselect("/home/fap/.local/share/chezmoi/emacs/github-pandoc.css"
>> nil nil t)
>>     find-file("/home/fap/.local/share/chezmoi/emacs/github-pandoc.css" t)
>>     funcall-interactively(find-file
>> "/home/fap/.local/share/chezmoi/emacs/github-pandoc.css" t)
>>     call-interactively(find-file nil nil)
>>     command-execute(find-file)
>>
>> I looked at the code, but I don't really get how 'always could get
>> interpreted as a variable?
> I cannot reproduce this.  Does the problem happen if you load
> vlf-setup.el manually, as a Lisp (not compiled) file?
>
> Also, which version of vlf do you have?