toctave

t(iny)octave
git clone https://0xff.ir/g/toctave.git
Log | Files | Refs | README

commit 6a2c06809cb7539ff055eb62cd168fa4b3119ede
parent 47a9e77fd7776a1073db65203432b91eb99b7dfa
Author: Mohammad-Reza Nabipoor <mnabipoor@gnu.org>
Date:   Sat, 28 May 2022 11:14:49 +0430

README.md: Update

Diffstat:
MREADME.md | 23++++++++++++++++++++---
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