branch: externals/beardbolt
commit 9c56c62993b9644a3c8bf6fc0a3a6599c0956707
Author: Jay Kamat <[email protected]>
Commit: Jay Kamat <[email protected]>
Update texi docs
---
doc/rmsbolt.texi | 44 +++++++++++++++++++++++++-------------------
1 file changed, 25 insertions(+), 19 deletions(-)
diff --git a/doc/rmsbolt.texi b/doc/rmsbolt.texi
index 5f4788effe..dcbc119dd5 100644
--- a/doc/rmsbolt.texi
+++ b/doc/rmsbolt.texi
@@ -67,10 +67,11 @@ Languages
* Common Lisp::
* Zig::
* Go::
+* Nim::
Integrations
-* C/C++: C/C++ 1.
+* C/C++: C/C++ (1).
C/C++
@@ -110,15 +111,10 @@ This is a quelpa formula for RMSbolt
@node Running
@chapter Running
-Once installed, run @code{rmsbolt} to compile the current buffer.
-This enables @code{rmsbolt-mode} for code region highlighting and
-automatic recompilation on buffer changes.
-
-@code{rmsbolt-mode} also adds the key binding @code{C-c C-c} to run a
compilation.
-
-Run @code{rmsbolt-starter} to generate an example source file for one of the
supported languages.
-
-Run @code{rmsbolt-compile} to start a compilation without enabling
@code{rmsbolt-mode}.
+Once installed, use the @code{rmsbolt-starter} command to generate starter
files, or
+enable @code{rmsbolt-mode} in a supported language. Then run
@code{rmsbolt-compile} or use
+the default @code{C-c C-c} binding to pop open a disassembly buffer. After the
first
+run, the buffer should automatically update.
@node Configuring
@chapter Configuring
@@ -221,6 +217,7 @@ This section covers languages-specific quirks and features.
* Common Lisp::
* Zig::
* Go::
+* Nim::
@end menu
@node C/C++
@@ -315,15 +312,14 @@ supported at the moment, with @code{sbcl} giving much
better results.
Assembly is generated through the @code{zig} compiler. Due to large binary
sizes,
disassembly is discouraged.
-In some cases, Zig embeds a panic handler which inflates the size of binaries.
-In order to reduce this to a manageable level, you can add the following
snippet to
-your file:
+Zig embeds a panic handler which inflates the size of binaries. In order to
+reduce this to a manageable level, you can add the following snippet to your
+file:
@example
-pub fn panic(msg: []const u8, error_return_trace: ?*std.builtin.StackTrace)
noreturn @{
- _ = msg;
- _ = error_return_trace;
- while (true) @{@}
+pub fn panic(msg: []const u8, error_return_trace:
?*@@import("builtin").StackTrace) noreturn @{
+ while (true) @{
+ @}
@}
@end example
@@ -332,6 +328,16 @@ pub fn panic(msg: []const u8, error_return_trace:
?*std.builtin.StackTrace) nore
Uses Go's objdump tool to produce viewing-only bytecode. Go must be on the
path.
+@node Nim
+@section Nim
+
+Builds into object files into a temporary @code{nim-cache} directory generated
by
+rmsbolt, which will then be copied and dissassembled.
+C++ backend is also possible to either with @code{nim cpp} or @code{nim c
+--passC:-std=gnu++14} and uses @code{c++filt} demangler.
+
+Use the @code{@{.exportc.@}} pragma for at least the main procedure that will
be dissassembled.
+
@node Integrations
@chapter Integrations
@@ -346,10 +352,10 @@ Most integrations only take effect when
@code{rmsbolt-command} and
attempt at using the integration system.
@menu
-* C/C++: C/C++ 1.
+* C/C++: C/C++ (1).
@end menu
-@node C/C++ 1
+@node C/C++ (1)
@section C/C++
C/C++ will look for a @code{compile_commands.json} file in any directory
higher than