ergo
ergo copied to clipboard
Generalize production of Ergo runtime
The Ergo runtime is a patched-up version of the Q*cert one. It is composed of vanilla JavaScript functions without module layout for node consumption. We should improve upon this in several ways:
- [x] Automate the production of the runtime from Q*cert itself so changes/fixes there are propagated to Ergo automatically
- [x] Allow the runtime generation to be parameterized by foreign type libraries (e.g., various support for dateTime)
- [x] Generalize the runtime generation so it works for both browser and node
Should be done on new JavaScript backend, see #191
Quite a lot of improvements are already available in the release-1.0 branch. Some additional work to reduce the footprint of the runtime, and leverage the new Imp intermediate language would still be useful. I'm leaving this open for the time being.
Most of this is done in release-1.0 branch. One more item to add before we can close this issue:
- [ ] Do not duplicate the Qcert runtime in
./runtime/javascript, but import it from the now published Qcert library