[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/beardbolt 3b88b18029 316/323: Update README.md
From: |
ELPA Syncer |
Subject: |
[elpa] externals/beardbolt 3b88b18029 316/323: Update README.md |
Date: |
Thu, 9 Mar 2023 10:59:00 -0500 (EST) |
branch: externals/beardbolt
commit 3b88b18029790f916896e54929267622a4fc71cc
Author: João Távora <joaotavora@gmail.com>
Commit: João Távora <joaotavora@gmail.com>
Update README.md
---
README.md | 51 ++++++++++++++++++++++++++-------------------------
1 file changed, 26 insertions(+), 25 deletions(-)
diff --git a/README.md b/README.md
index 64cf727930..028faedd06 100644
--- a/README.md
+++ b/README.md
@@ -2,10 +2,9 @@
![beardbolt in action](./beardbolt.gif)
-An experimental fork-rewrite of
-[RMSbolt](https://gitlab.com/jgkamat/rmsbolt), itself a supercharged
-implementation of [godbolt, the
-compiler-explorer](https://github.com/mattgodbolt/compiler-explorer)
+A fork-rewrite of [RMSbolt](https://gitlab.com/jgkamat/rmsbolt),
+itself a supercharged implementation of [Godbolt, the
+Compiler Explorer](https://github.com/mattgodbolt/compiler-explorer)
but for Emacs, instead of a clunky browser.
Beardbolt shows assembly output for given source code file, making it
@@ -16,11 +15,14 @@ and vice versa.
### Why Beardbolt over RMSbolt
+- 3-5x faster on typical files, more on larger files. See [here for
+ benchmarks](#benchmarks).
- Doesn't require file to be saved.
-- 3-5x faster on typical files. See [here for benchmarks](#benchmarks).
- 🌈Has pretty rainbows🌈
-- Has more useful Godbolt features like "execute program" and "preserve/filter
library functions" .
-- Simpler code (less than half the LOC, but also less funcional in some
regards if we're honest).
+- Has useful Godbolt features like "execute program" and
+ "preserve/filter library functions" .
+- Simpler code (less than half the LOC, though less funcional in some
+ regards if we're honest).
### Why RMSbolt over Beardbolt
@@ -56,10 +58,13 @@ M-x beardbolt-starter
### Options as local variables
-Beardbolt's behaviour can be tweaked with the follow options. You may
-set them globally (they're Emacs customization variables), but it's
-probably more useful to write them as file-local variable cookies
-instead. Beardbolt will pick them up immediately on each run.
+Beardbolt's behaviour can be tweaked with some options that more or
+less correspond to the ones of Compiler Explorer. You may set them
+globally (they're normal Emacs customization variables), but they're
+probably more useful as file-local cookies, like you see in the
+animated gif above.
+
+Beardbolt will pick them up immediately on each run.
* `beardbolt-command`: Main compiler command to run. May be something like
`"gcc -O3"`. Leave unset to have Beardbolt try to guess from some
@@ -82,7 +87,7 @@ instead. Beardbolt will pick them up immediately on each run.
assembly with `c++filt`.
* `beardbolt-execute`: If non-nil, run the resulting program in the
- compilation buffer. If a string, run with these arguments. If t
+ compilation buffer. If a string, run with these arguments. If `t`,
runs without arguments.
* `beardbolt-ccj-extra-flags`: A string of extra compilation flags to
@@ -92,20 +97,16 @@ instead. Beardbolt will pick them up immediately on each
run.
<a name="benchmarks"></a>
### Benchmarks vs RMSbolt
-First note that Beardbolt is highly hacky/experimental and may be
-providing incorrect results, in which case most/all of the following
-benchmarks/comparisons are probably invalid.
-
-Second, a word on what "fast" means: the performance metric to
-optimize is responsiveness. Both Beardbolt and RMSbolt continuously
-analyze the program to present a "live" view of its assembly output.
-The goal is not only to provide this service as quickly as possible,
-but also to intrude as little as possible in the user's editing.
+First, a word on what "fast" means. The performance metric to
+optimize is responsiveness: the goal is not only to provide this a
+live view of the assembly output as quickly as possible, and also to
+intrude as little as possible in the user's editing.
-Both extensions work in a two-step fashion. Beardbolt tries to
-optimize step 2.
+Both Beardbolt and RMSbolt extensions work in a two-step fashion.
+Most of the speed gains of Beardbolt happen in step 2.
-1. The file is saved and partially compiled by an external program
+1. The file is saved somewhere and partially compiled by an external
+ program
This happens asynchronously. It might takes several seconds and
spin up your CPU, but it does not generally harm the UX inside
@@ -155,7 +156,7 @@ two [cppreference.com](https://cppreference.com) examples
To make the benchmark fair(er?) I patched `rmsbolt.el` to generate
slightly less debug with `-g1` instead of `-g`, and thus benefit from
-the same speedup that `beardbolt.el` uses.
+the same speedup that `beardbolt.el`.
The results were obtained on my Thinkpad T480 running Emacs 29
(without native compilation).
- [elpa] externals/beardbolt 11a19cfa66 282/323: Simplify line correspondence and overlay management, (continued)
- [elpa] externals/beardbolt 11a19cfa66 282/323: Simplify line correspondence and overlay management, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt e18e3ee5ae 289/323: Support compile_commands.json, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 3b7a5bc85a 288/323: Simplify M-x beardbolt-starter. Less tmp directory cruft., ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 2e9abdbcbf 293/323: fixup README tweak, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 93778d8391 298/323: Don't try any window scrolling heroics on recompile, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 12e926f66b 300/323: Correct local variable section of benchmark file, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 782febee77 307/323: Add new option bb-execute and simplify more code, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 13c51a99e0 309/323: Rework window management again. Not more like godbolt, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 27f10327f3 308/323: Rework window management. Not a bad alternative., ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt f260a62397 312/323: Refactor some behaviour for easier language definition, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 3b88b18029 316/323: Update README.md,
ELPA Syncer <=
- [elpa] externals/beardbolt 08227684f5 317/323: Provide better local variable defaults for starter examples, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt d9da365a0f 320/323: Rework rainbow overlays to make them slightly more useful, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 06fd5a1eee 323/323: * beardbolt.el (bb--guess-from-ccj): Don't mess with -O flags, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt e97b71e808 171/323: Re-work method to replace asm contents, ELPA Syncer, 2023/03/09