commit 6a2c06809cb7539ff055eb62cd168fa4b3119ede
parent 47a9e77fd7776a1073db65203432b91eb99b7dfa
Author: Mohammad-Reza Nabipoor <mnabipoor@gnu.org>
Date: Sat, 28 May 2022 11:14:49 +0430
README.md: Update
Diffstat:
1 file changed, 20 insertions(+), 3 deletions(-)
diff --git a/README.md b/README.md
@@ -6,20 +6,37 @@ machine (VM).
For simplicity, there's no matrix!
+Operators: `^`, `*`, `/`, `+`, `-`.
+You can assign variables: `x = 2^3`.
+Everything is a double number (there's string literals which are only used for
+`eval`).
+
+**NOTE** For simplicity, this implementation assumes the code is running on
+a x86_64 platform (actually platforms with the following properties:
+`sizeof(double) == sizeof(void*)` and pointers not wider than 54 bits (because
+of nan-boxing)).
+
## `GNU Jitter`
This is a demonstration of using `GNU Jitter` to generate a VM (Virtual
Machine).
+The `Makefile` assumes Jitter is installed on `$HOME/usr`. By assigning
+`JITTER_PRFIX` environment variable, you can change the path to
+`$JITTER_PREFIX/usr`.
+
+Jitter can support different dispatches (VM implementation strategies),
+by default it uses `switch` dispatch (which generates a `switch` statement).
+You can change the dispatch by assigning a value to `JITTER_DISPATCH`
+environment variable. To see a valid list of dispatches on your platform
+you can invoke `$JITTER_PREFIX/jitter-config --dispatches` command.
+
**NOTE** You need to apply `jitter.path` in master branch of `Jitter`
(as of `v0.9.286`). The reason is `Jitter` generates C code and the C compiler
is not as strict as C++ compiler.
**Recommendation** Use `gcc` and `g++`.
-**NOTE** For simplicity, this implementation assumes the code is running on
-a x86_64 platform.
-
## Unfinished items
- Function call