This commit is contained in:
parent
bc21fe0baf
commit
88378503c4
|
@ -3,54 +3,55 @@
|
|||
Currently runs a tiny dialect of Lisp. Steps to run it from the top-level:
|
||||
|
||||
1. Build it:
|
||||
```sh
|
||||
$ ./translate shell/*.mu # generates code.img
|
||||
```
|
||||
|
||||
You can now already run it:
|
||||
```sh
|
||||
$ qemu-system-i386 code.img
|
||||
```
|
||||
```sh
|
||||
$ ./translate shell/*.mu # generates code.img
|
||||
```
|
||||
|
||||
But let's add some more 'meat' to play with.
|
||||
You can now already run it:
|
||||
```sh
|
||||
$ qemu-system-i386 code.img
|
||||
```
|
||||
|
||||
But let's add some more 'meat' to play with.
|
||||
|
||||
2. Create a data disk with a library of functions.
|
||||
|
||||
```sh
|
||||
$ dd if=/dev/zero of=data.img count=20160
|
||||
$ cat shell/data.limg |dd of=data.img conv=notrunc
|
||||
```
|
||||
```sh
|
||||
$ dd if=/dev/zero of=data.img count=20160
|
||||
$ cat shell/data.limg |dd of=data.img conv=notrunc
|
||||
```
|
||||
|
||||
Run with data disk (and 2GB of RAM):
|
||||
```sh
|
||||
$ qemu-system-i386 -m 2G -hda code.img -hdb data.img
|
||||
```
|
||||
Run with data disk (and 2GB of RAM):
|
||||
```sh
|
||||
$ qemu-system-i386 -m 2G -hda code.img -hdb data.img
|
||||
```
|
||||
|
||||
Try typing in some expressions and hitting `ctrl-s` to see their results.
|
||||
Hit `ctrl-m` to focus on the `...` after a run, and browse how the results
|
||||
were computed. [Here's a demo.](https://archive.org/details/akkartik-2min-2021-02-24)
|
||||
The bottom of the screen shows context-dependent keyboard shortcuts.
|
||||
Try typing in some expressions and hitting `ctrl-s` to see their results.
|
||||
Hit `ctrl-m` to focus on the `...` after a run, and browse how the results
|
||||
were computed. [Here's a demo.](https://archive.org/details/akkartik-2min-2021-02-24)
|
||||
The bottom of the screen shows context-dependent keyboard shortcuts.
|
||||
|
||||
3. If your Qemu installation supports them, one of these commandline arguments
|
||||
may speed up emulation:
|
||||
|
||||
- `-enable-kvm`
|
||||
- `-accel ___` (run with `-accel help` for a list of available options)
|
||||
- `-enable-kvm`
|
||||
- `-accel ___` (run with `-accel help` for a list of available options)
|
||||
|
||||
If you do this, I recommend also adjusting the `responsiveness` mask in
|
||||
shell/evaluate.mu, which controls how frequently the fake screen updates.
|
||||
Smaller values will seem more responsive, larger values will leave more time
|
||||
to run your programs. I like to see the screen update about once a second.
|
||||
Some suggested values depending on how fast your Qemu is running:
|
||||
If you do this, I recommend also adjusting the `responsiveness` mask in
|
||||
shell/evaluate.mu, which controls how frequently the fake screen updates.
|
||||
Smaller values will seem more responsive, larger values will leave more time
|
||||
to run your programs. I like to see the screen update about once a second.
|
||||
Some suggested values depending on how fast your Qemu is running:
|
||||
|
||||
- `-enable-kvm` on a T420s running Linux: `0xffff/responsiveness=64k`
|
||||
- `-accel tcg` on a 2019 Mac: `0xfff/responsiveness=4k`
|
||||
- `-enable-kvm` on a T420s running Linux: `0xffff/responsiveness=64k`
|
||||
- `-accel tcg` on a 2019 Mac: `0xfff/responsiveness=4k`
|
||||
|
||||
Putting it all together, here's the command I typically use on Linux:
|
||||
Putting it all together, here's the command I typically use on Linux:
|
||||
|
||||
```
|
||||
$ qemu-system-i386 -m 2G -enable-kvm -hda code.img -hdb data.img
|
||||
```
|
||||
```
|
||||
$ qemu-system-i386 -m 2G -enable-kvm -hda code.img -hdb data.img
|
||||
```
|
||||
|
||||
*Known issues*
|
||||
|
||||
|
|
Loading…
Reference in New Issue