This issue is to track a proposed standard library for Jessie, which can be relied on for any Jessie environment (such as sufficiently-advanced plain Javascript implementations, SES and jessica), to allow Jessie code to run unmodified across platforms.
Following the example of SES's magical treatment of import harden from '@agoric/harden', I would like to propose that Jessie environments provide a magical jessie-std library with a fallback implementation actually hosted in NPM for code not running in a Jessie-specific interpreter or SES.
So, each Jessie module would do something like:
import { makeCompartment,.... makeWeakSet} from 'jessie-std';
The following is a checklist of the endowments that jessica would need. They will be checked off when they're implemented in the standard library.
[ ] makeCompartment (not yet discussed, but replaces the old confine and confineExpr)
[ ] protect and suspect (discussed in #43)
[ ] makeMap (originally discussed in #17)
[ ] makePromise (not yet discussed, but implied by the Jessie whitelist)
This issue is to track a proposed standard library for Jessie, which can be relied on for any Jessie environment (such as sufficiently-advanced plain Javascript implementations, SES and jessica), to allow Jessie code to run unmodified across platforms.
Following the example of SES's magical treatment of
import harden from '@agoric/harden'
, I would like to propose that Jessie environments provide a magicaljessie-std
library with a fallback implementation actually hosted in NPM for code not running in a Jessie-specific interpreter or SES.So, each Jessie module would do something like:
The following is a checklist of the endowments that jessica would need. They will be checked off when they're implemented in the standard library.
makeCompartment
(not yet discussed, but replaces the oldconfine
andconfineExpr
)protect
andsuspect
(discussed in #43)makeMap
(originally discussed in #17)makePromise
(not yet discussed, but implied by the Jessie whitelist)makeSet
(#17)makeWeakMap
(#17)makeWeakSet
(#17)Thoughts?