[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/beardbolt b60a9e3a84 117/323: Fix errors with emacs <25
From: |
ELPA Syncer |
Subject: |
[elpa] externals/beardbolt b60a9e3a84 117/323: Fix errors with emacs <25 with elisp disass |
Date: |
Thu, 9 Mar 2023 10:58:22 -0500 (EST) |
branch: externals/beardbolt
commit b60a9e3a84e0d3420551660af5808d7668cc33d7
Author: Jay Kamat <jaygkamat@gmail.com>
Commit: Jay Kamat <jaygkamat@gmail.com>
Fix errors with emacs <25 with elisp disass
---
README.org | 2 ++
rmsbolt.el | 41 ++++++++++++++++++++++-------------------
2 files changed, 24 insertions(+), 19 deletions(-)
diff --git a/README.org b/README.org
index f8c93183f5..37bb6b4bb0 100644
--- a/README.org
+++ b/README.org
@@ -136,6 +136,8 @@ copied into it's own directory, making it much harder to
view non-toy examples.
No support for source->asm matching, filtering, or automatic recompile.
+Emacs 26 or the ~cl-print~ package are required.
+
[[https://i.imgur.com/uYrQ7En.gif][https://i.imgur.com/uYrQ7En.gif]]
** Common Lisp
diff --git a/rmsbolt.el b/rmsbolt.el
index 2b54eb0139..d24a196086 100644
--- a/rmsbolt.el
+++ b/rmsbolt.el
@@ -66,6 +66,7 @@
(require 'map)
(require 'cc-defs)
(require 'compile)
+(require 'disass)
(require 'rmsbolt-java)
@@ -618,25 +619,27 @@ This should be an object of type `rmsbolt-lang', normally
set by the major mode"
(defun rmsbolt--disassemble-file (filename out-buffer)
"Disassemble an elisp FILENAME into elisp bytecode in OUT-BUFFER.
Lifted from
https://emacs.stackexchange.com/questions/35936/disassembly-of-a-bytecode-file"
- (byte-compile-file filename)
- ;; .el -> .elc
- (setq filename (concat filename "c"))
- (with-temp-buffer
- (insert-file-contents filename)
- (let ((inbuf (current-buffer)))
- (goto-char (point-min))
- (with-current-buffer out-buffer
- (erase-buffer)
- (condition-case ()
- (cl-loop with cl-print-compiled = 'disassemble
- for expr = (read inbuf)
- do (pcase expr
- (`(byte-code ,(pred stringp) ,(pred vectorp) ,(pred
natnump))
- (princ "TOP-LEVEL byte code:\n" (current-buffer))
- (disassemble-1 expr 0))
- (_ (cl-prin1 expr (current-buffer))))
- do (terpri (current-buffer)))
- (end-of-file nil))))))
+ (if (not (require 'cl-print nil 'noerror))
+ (error "Package cl-print or Emacs 26+ are required for the Emacs
disassembler")
+ (byte-compile-file filename)
+ ;; .el -> .elc
+ (setq filename (concat filename "c"))
+ (with-temp-buffer
+ (insert-file-contents filename)
+ (let ((inbuf (current-buffer)))
+ (goto-char (point-min))
+ (with-current-buffer out-buffer
+ (erase-buffer)
+ (condition-case ()
+ (cl-loop with cl-print-compiled = 'disassemble
+ for expr = (read inbuf)
+ do (pcase expr
+ (`(byte-code ,(pred stringp) ,(pred vectorp)
,(pred natnump))
+ (princ "TOP-LEVEL byte code:\n" (current-buffer))
+ (disassemble-1 expr 0))
+ (_ (cl-prin1 expr (current-buffer))))
+ do (terpri (current-buffer)))
+ (end-of-file nil)))))))
;;;;; Filter Functions
- [elpa] externals/beardbolt a74d54e764 109/323: Fix tests, (continued)
- [elpa] externals/beardbolt a74d54e764 109/323: Fix tests, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 859722f7e0 084/323: Add back support for Emacs 25, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 2eca2d59dd 100/323: Merge branch 'patch-2' into 'master', ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt a85b457e81 108/323: Fix typo, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt fb0e8c85a3 110/323: Use https links to avoid mixed content warnings, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 9129f1f13c 116/323: Add documentation and README for elisp, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt c95ba9c0c4 097/323: More consistent punctuation in README bullet list, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 74fc122c39 101/323: Fix typo in supports-{disass, asm}, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 36bfe74010 102/323: Force using bash whenever available, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 15aa590bcf 106/323: Add ability to specify moved initial src file, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt b60a9e3a84 117/323: Fix errors with emacs <25 with elisp disass,
ELPA Syncer <=
- [elpa] externals/beardbolt a5855171f8 120/323: Fix byte-compilation warnings, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 0d5774397b 124/323: Update README, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt be3f92821e 140/323: Clean up PHP exporter slightly, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt a4e0b8a805 134/323: Optimize disassembly function, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 3527f2fa3a 123/323: Fix source code highlighting when multiple files are provided, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt d564f9def8 131/323: Update README.org, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt ebc56d81b0 127/323: Disable automatic recompile for buffers larger than 500 lines, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 5f998f34d7 137/323: Update README, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 4679974da1 141/323: Add documentation and starter file for PHP support, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 345dd21d24 145/323: Fix typo in docstring, ELPA Syncer, 2023/03/09