GNU bug report logs - #46159
28.0.50; lexical-let does not work with returned closures on nativecomp

Previous Next

Package: emacs;

Reported by: "Mark A. Hershberger" <mah <at> everybody.org>

Date: Thu, 28 Jan 2021 20:12:01 UTC

Severity: normal

Found in version 28.0.50

Done: Andrea Corallo <akrl <at> sdf.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 46159 in the body.
You can then email your comments to 46159 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#46159; Package emacs. (Thu, 28 Jan 2021 20:12:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to "Mark A. Hershberger" <mah <at> everybody.org>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Thu, 28 Jan 2021 20:12:01 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: "Mark A. Hershberger" <mah <at> everybody.org>
To: bug-gnu-emacs <at> gnu.org
Subject: 28.0.50; lexical-let does not work with returned closures on
 nativecomp
Date: Thu, 28 Jan 2021 15:10:33 -0500
I previously filed #45056 but the problem seemed to be fixed.

It has re-appeared and I just noticed some interesting messages in my
*Warnings* buffer that appear to be relevant.

Specifically:

    Warning (comp): init.el:164:39: Warning: ‘(post-cmd post-cmd)’ is a malformed function
    Warning (comp): init.el:181:59: Warning: reference to free variable ‘rsync-buff’

That section of code has this function:

(defun mah/firestarter-sentinel (host post-cmd)
  "Sentinal function that will run the POST-CMD on HOST."
  (lexical-let ((post-cmd post-cmd)
		             (host host)
		             (rsync-buff (get-buffer-create mah/rsync-buff-name)))
    (lambda (proc event-type)
      (message (concat "post cmd: " post-cmd "\nevent: " event-type))
      (cond ((string-equal event-type "finished\n")
	            (if post-cmd
		            (progn (message (concat "rsync finished, running "
					                        post-cmd))
			            (mah/firestarter-do-post host post-cmd rsync-buff))
	              (message "rsync finshed")))
	      (t (if post-cmd
		         (progn (message (concat "rsync didn't finish normally, "
					                     "running anyway.  Check "
					                     mah/rsync-buff-name))
			         (mah/firestarter-do-post host post-cmd rsync-buff))
		         (message "rsync finshed with errors")))))))

I just compiled emacs from master and it did not exhibit the same behavior

In GNU Emacs 28.0.50 (build 2, x86_64-pc-linux-gnu, GTK+ Version 3.24.5, cairo version 1.16.0)
 of 2021-01-28 built on silk
Repository revision: 0e250276d2445b258edcb5cb12796d626e5421dc (This is b8d3ae78c5 with a patch to revert 32c6732d16385f242b1109517f25e9aefd6caa5c applied to it.)
Repository branch: feature/native-comp
Windowing system distributor 'The X.Org Foundation', version 11.0.12004000
System Description: Debian GNU/Linux 10 (buster)

Configured using:
 'configure --with-modules --with-xwidgets --with-gconf --with-cairo
 --with-json --with-nativecomp --with-imagemagick CFLAGS=-O2'

Configured features:
ACL CAIRO DBUS FREETYPE GCONF GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ
IMAGEMAGICK JPEG JSON LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2
M17N_FLT MODULES NATIVE_COMP NOTIFY INOTIFY PDUMPER PNG RSVG SOUND
THREADS TIFF TOOLKIT_SCROLL_BARS X11 XDBE XIM XPM XWIDGETS GTK3 ZLIB

Important settings:
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: @im=ibus
  locale-coding-system: utf-8-unix

Memory information:
((conses 16 1072892 320443)
 (symbols 48 54985 10)
 (strings 32 316990 71161)
 (string-bytes 1 10029517)
 (vectors 16 120122)
 (vector-slots 8 3853812 409822)
 (floats 8 1440 2041)
 (intervals 56 1385 1047)
 (buffers 984 21))

-- 
http://hexmode.com/

I cannot remember the books I've read any more than the meals I have eaten;
even so, they have made me.
            -- Ralph Waldo Emerson




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#46159; Package emacs. (Thu, 28 Jan 2021 20:58:02 GMT) Full text and rfc822 format available.

Message #8 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Andrea Corallo <akrl <at> sdf.org>
To: mah--- via "Bug reports for GNU Emacs, the Swiss army knife of text
 editors" <bug-gnu-emacs <at> gnu.org>
Cc: "Mark A. Hershberger" <mah <at> everybody.org>, 46159 <at> debbugs.gnu.org
Subject: Re: bug#46159: 28.0.50; lexical-let does not work with returned
 closures on nativecomp
Date: Thu, 28 Jan 2021 20:57:13 +0000
mah--- via "Bug reports for GNU Emacs, the Swiss army knife of text
editors" <bug-gnu-emacs <at> gnu.org> writes:

> I previously filed #45056 but the problem seemed to be fixed.
>
> It has re-appeared and I just noticed some interesting messages in my
> *Warnings* buffer that appear to be relevant.
>
> Specifically:
>
>     Warning (comp): init.el:164:39: Warning: ‘(post-cmd post-cmd)’ is a malformed function
>     Warning (comp): init.el:181:59: Warning: reference to free variable ‘rsync-buff’
>
> That section of code has this function:
>
> (defun mah/firestarter-sentinel (host post-cmd)
>   "Sentinal function that will run the POST-CMD on HOST."
>   (lexical-let ((post-cmd post-cmd)
> 		             (host host)
> 		             (rsync-buff (get-buffer-create mah/rsync-buff-name)))
>     (lambda (proc event-type)
>       (message (concat "post cmd: " post-cmd "\nevent: " event-type))
>       (cond ((string-equal event-type "finished\n")
> 	            (if post-cmd
> 		            (progn (message (concat "rsync finished, running "
> 					                        post-cmd))
> 			            (mah/firestarter-do-post host post-cmd rsync-buff))
> 	              (message "rsync finshed")))
> 	      (t (if post-cmd
> 		         (progn (message (concat "rsync didn't finish normally, "
> 					                     "running anyway.  Check "
> 					                     mah/rsync-buff-name))
> 			         (mah/firestarter-do-post host post-cmd rsync-buff))
> 		         (message "rsync finshed with errors")))))))
>
> I just compiled emacs from master and it did not exhibit the same behavior

Hi,

do we have a reproducer?  Where is possible to see the whole file being
compiled?

Could you post all the warning in the *Async-native-compile-log* emitted
compiling init.el?

Dumb question: is this file requiring all necessary libraries (ex
‘cl.el’)?

Thanks!

  Andrea





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#46159; Package emacs. (Thu, 28 Jan 2021 20:58:02 GMT) Full text and rfc822 format available.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#46159; Package emacs. (Thu, 28 Jan 2021 21:21:02 GMT) Full text and rfc822 format available.

Message #14 received at 46159 <at> debbugs.gnu.org (full text, mbox):

From: "Mark A. Hershberger" <mah <at> nichework.com>
To: Andrea Corallo <akrl <at> sdf.org>, 46159 <at> debbugs.gnu.org
Subject: Re: bug#46159: 28.0.50; lexical-let does not work with returned
 closures on nativecomp
Date: Thu, 28 Jan 2021 13:20:43 -0800 (PST)
Thank you for asking the dumb question.

I thought it was there because I got warnings about cl being deprecated, but when I put (require 'cl) just before this function, suddenly it worked.

Strange that it breaks on the native-comp branch but not on master.

----- On Jan 28, 2021, at 3:57 PM, Andrea Corallo akrl <at> sdf.org wrote:

> mah--- via "Bug reports for GNU Emacs, the Swiss army knife of text
> editors" <bug-gnu-emacs <at> gnu.org> writes:
> 
>> I previously filed #45056 but the problem seemed to be fixed.
>>
>> It has re-appeared and I just noticed some interesting messages in my
>> *Warnings* buffer that appear to be relevant.
>>
>> Specifically:
>>
>>     Warning (comp): init.el:164:39: Warning: ‘(post-cmd post-cmd)’ is a malformed
>>     function
>>     Warning (comp): init.el:181:59: Warning: reference to free variable ‘rsync-buff’
>>
>> That section of code has this function:
>>
>> (defun mah/firestarter-sentinel (host post-cmd)
>>   "Sentinal function that will run the POST-CMD on HOST."
>>   (lexical-let ((post-cmd post-cmd)
>> 		             (host host)
>> 		             (rsync-buff (get-buffer-create mah/rsync-buff-name)))
>>     (lambda (proc event-type)
>>       (message (concat "post cmd: " post-cmd "\nevent: " event-type))
>>       (cond ((string-equal event-type "finished\n")
>> 	            (if post-cmd
>> 		            (progn (message (concat "rsync finished, running "
>> 					                        post-cmd))
>> 			            (mah/firestarter-do-post host post-cmd rsync-buff))
>> 	              (message "rsync finshed")))
>> 	      (t (if post-cmd
>> 		         (progn (message (concat "rsync didn't finish normally, "
>> 					                     "running anyway.  Check "
>> 					                     mah/rsync-buff-name))
>> 			         (mah/firestarter-do-post host post-cmd rsync-buff))
>> 		         (message "rsync finshed with errors")))))))
>>
>> I just compiled emacs from master and it did not exhibit the same behavior
> 
> Hi,
> 
> do we have a reproducer?  Where is possible to see the whole file being
> compiled?
> 
> Could you post all the warning in the *Async-native-compile-log* emitted
> compiling init.el?
> 
> Dumb question: is this file requiring all necessary libraries (ex
> ‘cl.el’)?
> 
> Thanks!
> 
>   Andrea




Reply sent to Andrea Corallo <akrl <at> sdf.org>:
You have taken responsibility. (Thu, 28 Jan 2021 21:25:03 GMT) Full text and rfc822 format available.

Notification sent to "Mark A. Hershberger" <mah <at> everybody.org>:
bug acknowledged by developer. (Thu, 28 Jan 2021 21:25:03 GMT) Full text and rfc822 format available.

Message #19 received at 46159-done <at> debbugs.gnu.org (full text, mbox):

From: Andrea Corallo <akrl <at> sdf.org>
To: "Mark A. Hershberger" <mah <at> nichework.com>
Cc: 46159-done <at> debbugs.gnu.org
Subject: Re: bug#46159: 28.0.50; lexical-let does not work with returned
 closures on nativecomp
Date: Thu, 28 Jan 2021 21:24:45 +0000
"Mark A. Hershberger" <mah <at> nichework.com> writes:

> Thank you for asking the dumb question.

:)

> I thought it was there because I got warnings about cl being deprecated, but when I put (require 'cl) just before this function, suddenly it worked.
>
> Strange that it breaks on the native-comp branch but not on master.

Byte compilation worked by chance because while compiling cl-lib was
already loaded for some reason.

Great closing.

  Andrea




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Fri, 26 Feb 2021 12:24:12 GMT) Full text and rfc822 format available.

This bug report was last modified 4 years and 114 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.