branch: externals/beardbolt
commit 7e4baa833e963ce2b055134a52fe149981bbc138
Author: Jay Kamat <[email protected]>
Commit: Jay Kamat <[email protected]>
Fix a few comments
---
README.org | 7 ++++++-
rmsbolt.el | 28 ++++++++++++++--------------
2 files changed, 20 insertions(+), 15 deletions(-)
diff --git a/README.org b/README.org
index 8559c842e3..369479e128 100644
--- a/README.org
+++ b/README.org
@@ -21,6 +21,10 @@ versa.
- It's easy to add new languages (even those that use unique bytecode
formats)
without touching many files.
- Full undo (tree) system from Emacs on disassembly for easy comparisons
+- Much more flexible
+ - Supports dissasembling to bytecode as well as assembly
+ - Supports many languages that godbolt does not support, such as python,
+ common lisp, and ocaml.
- Infinitely hackable!
* Installation
@@ -84,7 +88,8 @@ No support for source->asm matching or filtering.
* Adding a Language
Adding support for a new language is fairly easy. The closer it is to existing
-compilers, the easier it will be. However, it is not excessively hard to add
+compilers, the easier it will be (to the point where a clone of a C compiler is
+just a couple copy-paste lines). However, it is not excessively hard to add
support for completely foreign compilers and bytecode/assembly formats.
As a minimum starting point, you must know how to compile a source file to
diff --git a/rmsbolt.el b/rmsbolt.el
index 35b0a404d1..8cf4b02276 100644
--- a/rmsbolt.el
+++ b/rmsbolt.el
@@ -215,7 +215,7 @@ Outputs assembly file if ASM."
(mode
'fundamental-mode
:type 'symbol
- :documentation "The mode to activate this language in.")
+ :documentation "The mode(s) to activate this language in.")
(supports-disass
nil
:type 'bool
@@ -272,7 +272,7 @@ Outputs assembly file if ASM."
" ")))
cmd))
(cl-defun rmsbolt--ocaml-compile-cmd (&key src-buffer)
- "Process a compile command for gcc/clang.
+ "Process a compile command for ocaml.
Needed as ocaml cannot output asm to a non-hardcoded file"
(let* ((diss (buffer-local-value 'rmsbolt-disassemble src-buffer))
@@ -303,7 +303,7 @@ Outputs assembly file if ASM."
(cl-defun rmsbolt--lisp-compile-cmd (&key src-buffer)
"Process a compile command for common lisp.
- Assumes function name to dissasemble is
'main'."
+ Assumes function name to dissasemble is 'main'."
(let* ((cmd (buffer-local-value 'rmsbolt-command src-buffer))
(interpreter (cl-first (split-string cmd nil t)))
(disass-eval "\"(disassemble 'main)\"")
@@ -316,17 +316,17 @@ Outputs assembly file if ASM."
"--eval" disass-eval "--non-interactive"
;; Remove leading comments
"|" "sed" "'s/^;\s//'" ">"
- (rmsbolt-output-filename src-buffer))
- " "))
-("clisp"
- (mapconcat 'identity
- (list cmd "-q" "-x"
- (concat
- "\"(load \\\"" (buffer-file-name) "\\\") "
disass-eval-unquoted "\"")
- ">" (rmsbolt-output-filename src-buffer))
- " "))
-(_
- (error "This Common Lisp interpreter is not supported")))))
+ (rmsbolt-output-filename src-buffer))
+ " "))
+ ("clisp"
+ (mapconcat 'identity
+ (list cmd "-q" "-x"
+ (concat
+ "\"(load \\\"" (buffer-file-name) "\\\") "
disass-eval-unquoted "\"")
+ ">" (rmsbolt-output-filename src-buffer))
+ " "))
+ (_
+ (error "This Common Lisp interpreter is not supported")))))
(cl-defun rmsbolt--rust-compile-cmd (&key src-buffer)
"Process a compile command for rustc."
(let* ((cmd (buffer-local-value 'rmsbolt-command src-buffer))