branch: externals/beardbolt
commit 8213e24af33ecfdd68cab0229ecb858affb0cc41
Author: Jay Kamat <[email protected]>
Commit: Jay Kamat <[email protected]>
Update README
---
README.org | 21 +++++++++++++--------
rmsbolt-java.el | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
rmsbolt.el | 2 +-
3 files changed, 62 insertions(+), 9 deletions(-)
diff --git a/README.org b/README.org
index 369479e128..714ab6e49d 100644
--- a/README.org
+++ b/README.org
@@ -12,24 +12,29 @@ versa.
- No more sending your code to any server
- Much faster turnaround time from writing code to seeing and interacting with
disassembly
- 100% usable without the mouse.
-- Write, compile, and view dissasembly entirely in Emacs
- - Use compile.el, flymake, or flycheck to traverse and fix errors as you
- would normally.
- - Use any libraries on your machine trivially
- Runs entirely without node, npm, or js.
- No required dependencies other than emacs 25 and your compiler ~:)~
- 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
+- Benefits from living in Emacs
+ - Full undo tree from Emacs on disassembly/source so you don't loose work.
+ - Vim bindings through evil/viper.
+ - Use compile.el, flymake, or flycheck to traverse and fix errors as you
+ would normally.
+ - Use *any* libraries on your machine trivially.
+ - Customize colors and behavior through ~customize~.
+ - Change tracking through magit/diff-hl/etc.
+- Much more flexible and powerful
- Supports dissasembling to bytecode as well as assembly
- Supports many languages that godbolt does not support, such as python,
- common lisp, and ocaml.
+ common lisp, ocaml, and java.
+- Simpler
- Infinitely hackable!
* Installation
-rmsbolt will almost certainly not work on windows.
+rmsbolt will almost certainly not work naively on windows as it depends on a
+unix shell for building commands. It may work through cygwin though.
rmsbolt is not on melpa yet. If you find it useful, please let me know and I
may
add it..
diff --git a/rmsbolt-java.el b/rmsbolt-java.el
new file mode 100644
index 0000000000..7acf7743e6
--- /dev/null
+++ b/rmsbolt-java.el
@@ -0,0 +1,48 @@
+;;; rmsbolt-java.el --- A elisp library to parse javap output -*-
lexical-binding: t; -*-
+
+;; Copyright (C) 2018 Jay Kamat
+;; Author: Jay Kamat <[email protected]>
+;; Version: 0.1.0
+;; Keywords: compilation, tools
+;; URL: http://gitlab.com/jgkamat/rmsbolt
+;; Package-Requires: ((emacs "25.1"))
+
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU Affero General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU Affero General Public License for more details.
+
+;; You should have received a copy of the GNU Affero General Public License
+;; along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+;; The java bytecode dissasembler format is rather obtuse. This library tries
+;; to make a programatic layer for interacting with it. It's main aim is
+;; correlating lines in source code to the generated output.
+;;
+;; This library takes in the output of javap -c -l split into a list by lines,
+;; which is the same format rmsbolt uses.
+
+;;; Requires:
+
+(require 'cl-lib)
+
+;;; Code:
+
+(defun rmsbolt-java-process-bytecode (asm-lines)
+ "Process ASM-LINES to add properties refrencing the source code.
+Also filters \"useless\" lines out."
+ )
+
+(defun rmsbolt--process-java-bytecode (_src_buffer asm-lines)
+ "Wrapper for easy integration into rmsbolt."
+ (rmsbolt-java-process-bytecode asm-lines))
+
+(provide 'rmsbolt-java)
+
+;;; rmsbolt-java.el ends here
diff --git a/rmsbolt.el b/rmsbolt.el
index b6a2910019..26317820c9 100644
--- a/rmsbolt.el
+++ b/rmsbolt.el
@@ -23,7 +23,7 @@
;;; Commentary:
;; TODO create commentary
-;;; Constants:
+;;; Requires:
(require 'cl-lib)
(require 'subr-x)