Previous: Using mixguile, Up: Getting started
mixvm
and gmixvm
In the previous section (see Using mixguile) we have seen how the
Guile shell mixguile
offers you the possibility of using Scheme
to manipulate a MIx virtual machine and extend the set of commands
offered by mixvm
and gmixvm
. This possibility is not
limited to the mixguile
shell. Actually, both mixvm
and
gmixvm
incorporate an embedded Guile interpreter, and can
evaluate Scheme expressions. To evaluate a single-line expression at the
mixvm
or gmixvm
command prompt, simply write it and press
return (the command parser will recognise it as a Scheme expression
because it is parenthesized, and will pass it to the Guile
interpreter). A sample mixvm
session using Scheme expressions
could be:
MIX > load hello Program loaded. Start address: 3000 MIX > (define a (mix-loc)) MIX > run Running ... MIXAL HELLO WORLD ... done Elapsed time: 11 /Total program time: 11 (Total uptime: 11) MIX > (mix-pmem a) 3000: + 46 58 00 19 37 (0786957541) MIX > (mix-pmem (mix-loc)) 3002: + 14 09 27 01 13 (0237350989) MIX >
You can also load and evaluate a file, using the scmf
command like this:
MIX> scmf /path/to/file/file.scm
Therefore, you have at your disposal all the mixguile
goodies
described above (new functions, new command definitions, hooks...)
inside mixvm
and gmixvm
. In other words, these programs
are extensible using Scheme. See Using mixguile for examples of
how to do it.