* Updates all the examples in CrashCourse.tex up to the functions section
This adds more REPL annotations for the exercise checker in the Programming
Cryptol book. There is still more work needed to support many of the examples in
the functions section (and presumably the rest of the book as well), so I think
this is a logical stopping point for now until we add a feature that lets you
write out a file and load it into the repl.
* Updates ProgrammingCryptol.pdf wrt recent changes
* Use ghc 8.10.3 for cryptol-remote-api to test SGX compatibility
* Fix cvc4
* Fix test suite for cryptol-remote-api
* Default to putting the heap as low in address space as possible
Fixes CVC4 version used in Docker builds and GitHub actions. This is the update that we currently have to do every few weeks to point to a nightly build that still exists.
the loaded properties. Instead of listing all the loaded properties
and then parsing their names, we instead directly use the internal
names retrieved from the module. This avoids problems arising from
the names of the properties not being in scope.
Separately, we should add settings for controlling exactly
which properties should be considered; right now it is always
all loaded properties.
Fixes#639
The `Backend` class is not really the proper place to handle pretty
printing concerns; they have been migrated instead into
`Cryptol.Eval.Value`, where the main pretty printer is defined.
Likewise, the pretty printing options data structures have been
moved to `Cryptol.Utils.PP`.
`trace` and `traceVal` respect the pretty-printing options
that are in effect when a value is computed, rather than those
that were in effect when the term was declared.
Now, every method takes an optional parameter field that controls
Cryptol settings like the length of prefixes of infinite data to
display and whether to track call stacks.
RE #1004
This version requires the file that's in scope to be provided as an
argument. It loads that file on startup, and then provides only
commands that don't change that module context. This means that it can
be used in a stateless load-balancing situation.