[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Guile-commits] 33/86: Flesh out README
From: |
Andy Wingo |
Subject: |
[Guile-commits] 33/86: Flesh out README |
Date: |
Wed, 3 Apr 2019 11:38:54 -0400 (EDT) |
wingo pushed a commit to branch lightening
in repository guile.
commit 02ce8952efd1349cdbecc88d6d576f9be7259448
Author: Andy Wingo <address@hidden>
Date: Mon Mar 25 15:36:12 2019 +0100
Flesh out README
---
README | 3 ---
README.md | 29 +++++++++++++++++++++++++++++
2 files changed, 29 insertions(+), 3 deletions(-)
diff --git a/README b/README
deleted file mode 100644
index ae36ea5..0000000
--- a/README
+++ /dev/null
@@ -1,3 +0,0 @@
-GNU lightning is a library to aid in making portable programs
-that compile assembly code at run time. For more information,
-look at the info documentation.
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..448e4c8
--- /dev/null
+++ b/README.md
@@ -0,0 +1,29 @@
+# Lightening
+
+Lightening is a just-in-time code generation library derived from GNU
+Lightning, adapted to the purposes of the GNU Guile project.
+
+## Use
+
+```
+gcc -flto -O2 -g -o jit.o -c jit/jit.c
+gcc -flto -O2 -g -o my-program jit.o my-program.c
+```
+
+See the GNU Lightning manual for more on how to program against
+Lightening (much of the details are the same).
+
+## What's the difference with GNU Lightning?
+
+This project is called Lightening because it's lighter-weight than GNU
+Lightning. When you go to generate code at run-time with GNU Lightning,
+what happens is that you build up a graph of nodes which GNU Lightning
+"optimizes" before finally emitting machine code. These optimizations
+can improve register allocation around call sites. However they are not
+helpful from a Guile perspective, as they get in the way of register
+allocation that we need to do; and they actually prevent access to all
+the registers that we would like to have.
+
+Guile needs a simple, light-weight code generation library. The GNU
+Lightning architecture-specific backends provide the bulk of this
+functionality, and Lightening wraps it all in a lightweight API.
- [Guile-commits] 12/86: Rename lightning.c to jit.c, (continued)
- [Guile-commits] 12/86: Rename lightning.c to jit.c, Andy Wingo, 2019/04/03
- [Guile-commits] 04/86: Remove example .c files from documentation, Andy Wingo, 2019/04/03
- [Guile-commits] 23/86: Update gitignore, Andy Wingo, 2019/04/03
- [Guile-commits] 03/86: Strip "get-jit-size" feature from lightning., Andy Wingo, 2019/04/03
- [Guile-commits] 25/86: Remove needless PUBLIC/HIDDEN definitions, Andy Wingo, 2019/04/03
- [Guile-commits] 19/86: Update call/receive machinery, Andy Wingo, 2019/04/03
- [Guile-commits] 10/86: Remove autotools, Andy Wingo, 2019/04/03
- [Guile-commits] 21/86: "extern"-related cleanup, and further implementation, Andy Wingo, 2019/04/03
- [Guile-commits] 27/86: Make _rvs array static-const, Andy Wingo, 2019/04/03
- [Guile-commits] 11/86: Rename include to jit.h, move all files to jit/, Andy Wingo, 2019/04/03
- [Guile-commits] 33/86: Flesh out README,
Andy Wingo <=
- [Guile-commits] 36/86: Add more tests, Andy Wingo, 2019/04/03
- [Guile-commits] 18/86: Add endian.h, Andy Wingo, 2019/04/03
- [Guile-commits] 30/86: Add "addi" test, Andy Wingo, 2019/04/03
- [Guile-commits] 31/86: Better loading of args to registers; add tests, Andy Wingo, 2019/04/03
- [Guile-commits] 26/86: Inline private.h into jit.c, Andy Wingo, 2019/04/03
- [Guile-commits] 32/86: Convert tests to jit_load_args, Andy Wingo, 2019/04/03
- [Guile-commits] 34/86: Add note about current status, Andy Wingo, 2019/04/03
- [Guile-commits] 14/86: Simplify file names, Andy Wingo, 2019/04/03
- [Guile-commits] 39/86: Add remr tests, Andy Wingo, 2019/04/03
- [Guile-commits] 37/86: Tests for some div operations, Andy Wingo, 2019/04/03