branch: externals/beardbolt commit 8213e24af33ecfdd68cab0229ecb858affb0cc41 Author: Jay Kamat <jaygka...@gmail.com> Commit: Jay Kamat <jaygka...@gmail.com>
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 <jaygka...@gmail.com> +;; 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)