* bug#25716: 26.0.50; Invalid byte opcode: op=0, ptr=30
@ 2017-02-14 4:28 Mark Oteiza
2017-02-14 6:50 ` Tino Calancha
0 siblings, 1 reply; 10+ messages in thread
From: Mark Oteiza @ 2017-02-14 4:28 UTC (permalink / raw)
To: 25716
From -Q:
1. C-x C-f some/patch.diff RET
2. M-n
Error running timer: (error "Invalid byte opcode: op=0, ptr=30")
In GNU Emacs 26.0.50.1 (x86_64-unknown-linux-gnu, X toolkit, Xaw scroll bars)
of 2017-02-13 built on logos
Repository revision: fffd4ffd747fe46bb7849a874e4ae265b6eda54e
^ permalink raw reply [flat|nested] 10+ messages in thread
* bug#25716: 26.0.50; Invalid byte opcode: op=0, ptr=30
2017-02-14 4:28 bug#25716: 26.0.50; Invalid byte opcode: op=0, ptr=30 Mark Oteiza
@ 2017-02-14 6:50 ` Tino Calancha
2017-02-14 13:01 ` Vibhav Pant
0 siblings, 1 reply; 10+ messages in thread
From: Tino Calancha @ 2017-02-14 6:50 UTC (permalink / raw)
To: Mark Oteiza; +Cc: 25716, Vibhav Pant, tino.calancha
Mark Oteiza <mvoteiza@udel.edu> writes:
>>From -Q:
>
> 1. C-x C-f some/patch.diff RET
> 2. M-n
>
> Error running timer: (error "Invalid byte opcode: op=0, ptr=30")
>
> In GNU Emacs 26.0.50.1 (x86_64-unknown-linux-gnu, X toolkit, Xaw scroll bars)
> of 2017-02-13 built on logos
> Repository revision: fffd4ffd747fe46bb7849a874e4ae265b6eda54e
it might be cause by the new switch byte-code
(commit 88549ec38e9bb30e338a9985d0de4e6263b40fb7)
Save the definition of `diff-refine-hunk'
in a file:
/tmp/diff-refine-hunk.el
I)
M-: (load "/tmp/diff-refine-hunk.el") RET
;; `diff-hunk-next' works as expected, i.e. with auto refinement.
II)
M-: (byte-compile-file "/tmp/diff-refine-hunk.el") RET
M-: (load "/tmp/diff-refine-hunk.elc") RET
;; `diff-hunk-next' doesn't auto refine and it shows
;; error "Variable binding depth exceeds max-specpdl-size".
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
In GNU Emacs 26.0.50.1 (x86_64-pc-linux-gnu, GTK+ Version 3.22.7)
of 2017-02-14 built on calancha-pc
Repository revision: 31b4d9a13741caae2422636d4944212e702b19c3
^ permalink raw reply [flat|nested] 10+ messages in thread
* bug#25716: 26.0.50; Invalid byte opcode: op=0, ptr=30
2017-02-14 6:50 ` Tino Calancha
@ 2017-02-14 13:01 ` Vibhav Pant
2017-02-14 15:18 ` Vibhav Pant
0 siblings, 1 reply; 10+ messages in thread
From: Vibhav Pant @ 2017-02-14 13:01 UTC (permalink / raw)
To: Tino Calancha; +Cc: Mark Oteiza, 25716
Sorry about that, this seems to be caused by bytecomp.el not
generating correct jump addresses for some tags in the jump table.
I'll try pushing a fix ASAP.
On Tue, Feb 14, 2017 at 12:20 PM, Tino Calancha <tino.calancha@gmail.com> wrote:
> Mark Oteiza <mvoteiza@udel.edu> writes:
>
>>>From -Q:
>>
>> 1. C-x C-f some/patch.diff RET
>> 2. M-n
>>
>> Error running timer: (error "Invalid byte opcode: op=0, ptr=30")
>>
>> In GNU Emacs 26.0.50.1 (x86_64-unknown-linux-gnu, X toolkit, Xaw scroll bars)
>> of 2017-02-13 built on logos
>> Repository revision: fffd4ffd747fe46bb7849a874e4ae265b6eda54e
> it might be cause by the new switch byte-code
> (commit 88549ec38e9bb30e338a9985d0de4e6263b40fb7)
>
> Save the definition of `diff-refine-hunk'
> in a file:
> /tmp/diff-refine-hunk.el
>
> I)
> M-: (load "/tmp/diff-refine-hunk.el") RET
> ;; `diff-hunk-next' works as expected, i.e. with auto refinement.
> II)
> M-: (byte-compile-file "/tmp/diff-refine-hunk.el") RET
> M-: (load "/tmp/diff-refine-hunk.elc") RET
> ;; `diff-hunk-next' doesn't auto refine and it shows
> ;; error "Variable binding depth exceeds max-specpdl-size".
>
> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
> In GNU Emacs 26.0.50.1 (x86_64-pc-linux-gnu, GTK+ Version 3.22.7)
> of 2017-02-14 built on calancha-pc
> Repository revision: 31b4d9a13741caae2422636d4944212e702b19c3
--
Vibhav Pant
vibhavp@gmail.com
^ permalink raw reply [flat|nested] 10+ messages in thread
* bug#25716: 26.0.50; Invalid byte opcode: op=0, ptr=30
2017-02-14 13:01 ` Vibhav Pant
@ 2017-02-14 15:18 ` Vibhav Pant
2017-02-14 15:47 ` Tino Calancha
0 siblings, 1 reply; 10+ messages in thread
From: Vibhav Pant @ 2017-02-14 15:18 UTC (permalink / raw)
To: Tino Calancha; +Cc: Mark Oteiza, 25716
[-- Attachment #1: Type: text/plain, Size: 2975 bytes --]
On Tue, Feb 14, 2017 at 6:31 PM, Vibhav Pant <vibhavp@gmail.com> wrote:
> Sorry about that, this seems to be caused by bytecomp.el not
> generating correct jump addresses for some tags in the jump table.
> I'll try pushing a fix ASAP.
>
> On Tue, Feb 14, 2017 at 12:20 PM, Tino Calancha <tino.calancha@gmail.com> wrote:
>> Mark Oteiza <mvoteiza@udel.edu> writes:
>>
>>>>From -Q:
>>>
>>> 1. C-x C-f some/patch.diff RET
>>> 2. M-n
>>>
>>> Error running timer: (error "Invalid byte opcode: op=0, ptr=30")
>>>
>>> In GNU Emacs 26.0.50.1 (x86_64-unknown-linux-gnu, X toolkit, Xaw scroll bars)
>>> of 2017-02-13 built on logos
>>> Repository revision: fffd4ffd747fe46bb7849a874e4ae265b6eda54e
>> it might be cause by the new switch byte-code
>> (commit 88549ec38e9bb30e338a9985d0de4e6263b40fb7)
>>
>> Save the definition of `diff-refine-hunk'
>> in a file:
>> /tmp/diff-refine-hunk.el
>>
>> I)
>> M-: (load "/tmp/diff-refine-hunk.el") RET
>> ;; `diff-hunk-next' works as expected, i.e. with auto refinement.
>> II)
>> M-: (byte-compile-file "/tmp/diff-refine-hunk.el") RET
>> M-: (load "/tmp/diff-refine-hunk.elc") RET
>> ;; `diff-hunk-next' doesn't auto refine and it shows
>> ;; error "Variable binding depth exceeds max-specpdl-size".
>>
>> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
>> In GNU Emacs 26.0.50.1 (x86_64-pc-linux-gnu, GTK+ Version 3.22.7)
>> of 2017-02-14 built on calancha-pc
>> Repository revision: 31b4d9a13741caae2422636d4944212e702b19c3
Correction, this was because of the peephole optimizer not replacing
the old tag in jump tables while merging adjacent tags. The following
patch should fix this issue. Could you test this and see if there are
any other related problems?
Thanks,
Vibhav
--
Vibhav Pant
vibhavp@gmail.com
diff --git a/lisp/emacs-lisp/byte-opt.el b/lisp/emacs-lisp/byte-opt.el
index 38f5dcc993..c44cf71674 100644
--- a/lisp/emacs-lisp/byte-opt.el
+++ b/lisp/emacs-lisp/byte-opt.el
@@ -1752,12 +1752,21 @@ byte-optimize-lapcode
(setcdr tmp2 lap1)
(setq tmp3 (cdr (memq tmp2 tmp3))))
(setq lap (delq lap0 lap)
- keep-going t))
+ keep-going t)
+ ;; replace references to tag in jump tables, if any
+ (dolist (table byte-compile-jump-tables)
+ (catch 'break
+ (maphash #'(lambda (value tag)
+ (when (equal tag lap0)
+ (puthash value lap1 table)
+ (throw 'break nil)))
+ table))))
;;
;; unused-TAG: --> <deleted>
;;
((and (eq 'TAG (car lap0))
(not (rassq lap0 lap))
+ ;; make sure this tag isn't used in a jump-table
(cl-loop for table in byte-compile-jump-tables
when (member lap0 (hash-table-values table))
return nil finally return t))
[-- Attachment #2: fix-merged-tags.diff --]
[-- Type: text/plain, Size: 1182 bytes --]
diff --git a/lisp/emacs-lisp/byte-opt.el b/lisp/emacs-lisp/byte-opt.el
index 38f5dcc993..c44cf71674 100644
--- a/lisp/emacs-lisp/byte-opt.el
+++ b/lisp/emacs-lisp/byte-opt.el
@@ -1752,12 +1752,21 @@ byte-optimize-lapcode
(setcdr tmp2 lap1)
(setq tmp3 (cdr (memq tmp2 tmp3))))
(setq lap (delq lap0 lap)
- keep-going t))
+ keep-going t)
+ ;; replace references to tag in jump tables, if any
+ (dolist (table byte-compile-jump-tables)
+ (catch 'break
+ (maphash #'(lambda (value tag)
+ (when (equal tag lap0)
+ (puthash value lap1 table)
+ (throw 'break nil)))
+ table))))
;;
;; unused-TAG: --> <deleted>
;;
((and (eq 'TAG (car lap0))
(not (rassq lap0 lap))
+ ;; make sure this tag isn't used in a jump-table
(cl-loop for table in byte-compile-jump-tables
when (member lap0 (hash-table-values table))
return nil finally return t))
^ permalink raw reply related [flat|nested] 10+ messages in thread
* bug#25716: 26.0.50; Invalid byte opcode: op=0, ptr=30
2017-02-14 15:18 ` Vibhav Pant
@ 2017-02-14 15:47 ` Tino Calancha
2017-02-14 17:40 ` Vibhav Pant
0 siblings, 1 reply; 10+ messages in thread
From: Tino Calancha @ 2017-02-14 15:47 UTC (permalink / raw)
To: Vibhav Pant; +Cc: Mark Oteiza, 25716, Tino Calancha
On Tue, 14 Feb 2017, Vibhav Pant wrote:
> Correction, this was because of the peephole optimizer not replacing
> the old tag in jump tables while merging adjacent tags. The following
> patch should fix this issue. Could you test this and see if there are
> any other related problems?
Thank you very much for your fast action.
I have tested your patch and fix the problem.
By the way, thanks for implementing the switch: it's a nice job.
Regards,
Tino
^ permalink raw reply [flat|nested] 10+ messages in thread
* bug#25716: 26.0.50; Invalid byte opcode: op=0, ptr=30
2017-02-14 15:47 ` Tino Calancha
@ 2017-02-14 17:40 ` Vibhav Pant
2017-02-14 17:45 ` Mark Oteiza
2017-02-14 20:16 ` Eli Zaretskii
0 siblings, 2 replies; 10+ messages in thread
From: Vibhav Pant @ 2017-02-14 17:40 UTC (permalink / raw)
To: Tino Calancha; +Cc: Mark Oteiza, 25716
On Tue, Feb 14, 2017 at 9:17 PM, Tino Calancha <tino.calancha@gmail.com> wrote:
> Thank you very much for your fast action.
> I have tested your patch and fix the problem.
> By the way, thanks for implementing the switch: it's a nice job.
Thanks, I've pushed the fix to master (how does one close bugs in debbugs?).
--
Vibhav Pant
vibhavp@gmail.com
^ permalink raw reply [flat|nested] 10+ messages in thread
* bug#25716: 26.0.50; Invalid byte opcode: op=0, ptr=30
2017-02-14 17:40 ` Vibhav Pant
@ 2017-02-14 17:45 ` Mark Oteiza
2017-02-14 20:16 ` Eli Zaretskii
1 sibling, 0 replies; 10+ messages in thread
From: Mark Oteiza @ 2017-02-14 17:45 UTC (permalink / raw)
To: Vibhav Pant; +Cc: 25716-done, Tino Calancha
[-- Attachment #1: Type: text/plain, Size: 474 bytes --]
On Feb 14, 2017 12:40 PM, "Vibhav Pant" <vibhavp@gmail.com> wrote:
On Tue, Feb 14, 2017 at 9:17 PM, Tino Calancha <tino.calancha@gmail.com>
wrote:
> Thank you very much for your fast action.
> I have tested your patch and fix the problem.
> By the way, thanks for implementing the switch: it's a nice job.
Thanks, I've pushed the fix to master (how does one close bugs in debbugs?).
One way is to reply to NNNNN-done@debbugs.gnu.org, as I have done. Thanks
for the fix!
[-- Attachment #2: Type: text/html, Size: 996 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
* bug#25716: 26.0.50; Invalid byte opcode: op=0, ptr=30
2017-02-14 17:40 ` Vibhav Pant
2017-02-14 17:45 ` Mark Oteiza
@ 2017-02-14 20:16 ` Eli Zaretskii
2017-02-15 15:45 ` Vibhav Pant
1 sibling, 1 reply; 10+ messages in thread
From: Eli Zaretskii @ 2017-02-14 20:16 UTC (permalink / raw)
To: Vibhav Pant; +Cc: 25716
> From: Vibhav Pant <vibhavp@gmail.com>
> Date: Tue, 14 Feb 2017 23:10:35 +0530
> Cc: Mark Oteiza <mvoteiza@udel.edu>, 25716@debbugs.gnu.org
>
> Thanks, I've pushed the fix to master
Thank you.
Would it be possible to add a test based on this bug?
^ permalink raw reply [flat|nested] 10+ messages in thread
* bug#25716: 26.0.50; Invalid byte opcode: op=0, ptr=30
2017-02-14 20:16 ` Eli Zaretskii
@ 2017-02-15 15:45 ` Vibhav Pant
2017-02-15 16:52 ` Eli Zaretskii
0 siblings, 1 reply; 10+ messages in thread
From: Vibhav Pant @ 2017-02-15 15:45 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: 25716
On Wed, Feb 15, 2017 at 1:46 AM, Eli Zaretskii <eliz@gnu.org> wrote:
>> From: Vibhav Pant <vibhavp@gmail.com>
>> Date: Tue, 14 Feb 2017 23:10:35 +0530
>> Cc: Mark Oteiza <mvoteiza@udel.edu>, 25716@debbugs.gnu.org
>>
>> Thanks, I've pushed the fix to master
>
> Thank you.
>
> Would it be possible to add a test based on this bug?
Yes, I've added some more tests for this to bytecomp-tests.el
--
Vibhav Pant
vibhavp@gmail.com
^ permalink raw reply [flat|nested] 10+ messages in thread
* bug#25716: 26.0.50; Invalid byte opcode: op=0, ptr=30
2017-02-15 15:45 ` Vibhav Pant
@ 2017-02-15 16:52 ` Eli Zaretskii
0 siblings, 0 replies; 10+ messages in thread
From: Eli Zaretskii @ 2017-02-15 16:52 UTC (permalink / raw)
To: Vibhav Pant; +Cc: 25716
> From: Vibhav Pant <vibhavp@gmail.com>
> Date: Wed, 15 Feb 2017 21:15:53 +0530
> Cc: 25716@debbugs.gnu.org
>
> > Would it be possible to add a test based on this bug?
>
>
> Yes, I've added some more tests for this to bytecomp-tests.el
Great, thanks.
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2017-02-15 16:52 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-02-14 4:28 bug#25716: 26.0.50; Invalid byte opcode: op=0, ptr=30 Mark Oteiza
2017-02-14 6:50 ` Tino Calancha
2017-02-14 13:01 ` Vibhav Pant
2017-02-14 15:18 ` Vibhav Pant
2017-02-14 15:47 ` Tino Calancha
2017-02-14 17:40 ` Vibhav Pant
2017-02-14 17:45 ` Mark Oteiza
2017-02-14 20:16 ` Eli Zaretskii
2017-02-15 15:45 ` Vibhav Pant
2017-02-15 16:52 ` Eli Zaretskii
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.