GNU bug report logs -
#26518
26.0.50; M-x bubbles crashes emacs
Previous Next
Reported by: Stephen Berman <stephen.berman <at> gmx.net>
Date: Sat, 15 Apr 2017 14:14:01 UTC
Severity: normal
Tags: fixed
Found in version 26.0.50
Done: npostavs <at> users.sourceforge.net
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
The following code also crashes Emacs:
(defun fun1 (v)
(car (cond ((eq v 1) '(one . 1))
((eq v 2) '(two . 2))
((eq v 3) '(three . 3)))))
(byte-compile 'fun1)
(defun fun2 (v)
(inline (fun1 v)))
(byte-compile 'fun2)
(fun2 1)
The problem lies in byte-compile-inline-lapcode not being able to
inline bytecode that uses switch, because the peephole optimizer
will often merge tags and convert goto-to-return to returns,
making it impossible restore the correct byte-compile-depth while
inlining it. I can think of two ways to fix this:
Disable certain optimizations for byte-switch code, and allow
the jump table to store certain properties that will make it possible
to inline switch code properly (specifically, the donetag). This could
be done by replacing the hash table with a (DONETAG . JUMP-TABLE) cons
pair (inline-lapcode would use the car, while the bytecode VM would use
it's cdr).
Disable inlining byte-switch code entirely. However, this would impact
performance negatively.
Thoughts?
Regards,
Vibhav
--
Vibhav Pant
vibhavp <at> gmail.com
This bug report was last modified 8 years and 32 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.