tc39 / proposal-ses

Draft proposal for SES (Secure EcmaScript)
220 stars 20 forks source link

Path to Stage 4 #16

Open caridy opened 8 years ago

caridy commented 8 years ago

Stage 4

benjamingr commented 8 years ago

Don't you need stage 1 first as this is a stage 0 proposal for what I know?

caridy commented 8 years ago

We are at stage 1 since last meeting :)

petermetz commented 3 years ago

I'd like to help out with pushing this along. I'm not on any of the relevant committees so no luck there, but can offer some developer feedback as one of the maintainers of a framework1 with a plugin architecture.

Feedback: Yes, we definitely need this and hope to have it available as a stable API as fast as possible. Thank you for the work you are doing!

cc: @cliveb

erights commented 3 years ago

Hi @petermetz thanks! Yes, would love both your feedback and your help. Most of the action on the SES-shim is happening at https://github.com/Agoric/SES-shim/tree/master/packages/ses . Moddable is also directly building a SES machine as the primary configuration of the XS implementation of JS for embedded, as standardized in Ecma TC53. The most relevant proposal these days is https://github.com/tc39/proposal-compartments which is much more up to date than this proposal repository is. We should update this proposal repository with text from https://github.com/Agoric/SES-shim/tree/master/packages/ses which is much more current.

MetaMask and Agoric both have plugin architectures running on SES. MetaMask and MetaMask's LavaMoat run on the SES-shim. The Agoric framework runs on both on the SES-shim on Node, and increasingly on a version of XS called XSnap that also supports orthogonal persistence.

There's lots more we could say depending on your interests. Eager to have you contribute! Should we start with your developer feedback? Thanks.

Attn @dckc @kriskowal @FUDCo

petermetz commented 3 years ago

@erights My pleasure and thank you for the detailed write-up about the current state of affairs. I suspect that your comment could be put front and center of the README of this repo, verbatim and be useful for newcomers like me.

There's lots more we could say depending on your interests. Eager to have you contribute! Should we start with your developer feedback.

More to come, but for the moment all I had to offer was what I wrote above. I will eventually make progress with putting the pieces together and re-working my feature branch from observable-membrane onto the new SES implementation, cytoplasm and then I will have much more targeted feedback based on actual usage. Right now I'm yet to dive into the specs/implementation even at a superficial level.

erights commented 3 years ago

I suspect that your comment could be put front and center of the README of this repo, verbatim and be useful for newcomers like me.

If you turn that into a pull request, I'll review. Thanks!

petermetz commented 3 years ago

If you turn that into a pull request, I'll review. Thanks!

@erights Started working on that and wanted to clarify this: Is the https://github.com/tc39/proposal-ses repo effectively deprecated in favor of https://github.com/tc39/proposal-compartments or do they co-exist and complement each other? I'm asking because I figured instead of copying text from one of the readmes to the other, there could be just a link in one of them pointing to the other. But that then lead me to question which one should link to which one and linking to the implementation (https://github.com/Agoric/SES-shim/tree/master/packages/ses) from the specs felt a little like the tail wagging the dog (if I understood everything correctly)

Edit: Also spent 60 seconds just copy pasting most of your comment, in case that's sufficient than this can be merged and we are done (I'm fine either way). => https://github.com/tc39/proposal-ses/pull/43

erights commented 3 years ago

SES spun off compartments into the separate compartment proposal. With compartments spun off, the focus of the ses proposal needs to be lockdown. This is consistent with your PR which I just merged. Thanks!