GNU bug report logs -
#31549
25.3; bytecompile fails with eval-when-compile
Previous Next
Reported by: ynyaaa <at> gmail.com
Date: Tue, 22 May 2018 09:02:01 UTC
Severity: minor
Found in version 25.3
Fixed in version 26.1
Done: Noam Postavsky <npostavs <at> gmail.com>
Bug is archived. No further changes may be made.
Full log
Message #11 received at 31549 <at> debbugs.gnu.org (full text, mbox):
> Resent-Sender: help-debbugs <at> gnu.org
> From: Noam Postavsky <npostavs <at> gmail.com>
> Date: Tue, 22 May 2018 19:33:03 -0400
> Cc: 31549 <at> debbugs.gnu.org
>
> > (byte-compile `(eval-when-compile (list ,@(make-list 2047 0))))
> >
> > Evaluating the form above, emacs (with -Q option) reports
> > Error: Memory exhausted--use C-x s then exit and restart Emacs
> > in *Compile-Log* buffer.
> > The returned value of the form is t.
>
> The error is coming from exec_byte_code:
>
> if (MAX_ALLOCA / word_size <= XFASTINT (maxdepth))
> memory_full (SIZE_MAX);
You mean, in expansion of SAFE_ALLOCA_LISP_EXTRA?
> It's more like a Lisp stack overflow than a memory exhausted situation
> though, hardly calls for restarting Emacs. Perhaps the byte compiler
> should refuse to compile such a large expression?
How about simply signaling a special error instead of memory_full?
Something like
error ("Lisp stack overflow");
This bug report was last modified 6 years and 363 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.