endojs / Jessie

Tiny subset of JavaScript for ocap-safe universal mobile code
Apache License 2.0
279 stars 16 forks source link

Math superset of JSON? #66

Closed dy closed 2 years ago

dy commented 2 years ago

Is there a subset in between Jessie and JSON? image Something that takes JSON primitives and enables calc operations, Math superset of JSON? That JSON+ops syntax is (almost) cross-platform: Rust, Go, C++, C#, Python, Perl? could support that. That could be a tiny useful thing for any template engines, template instantiation proposal, evaluable/calc strings (like css calc), and other playgrounds.

erights commented 2 years ago

There is! Justin , defined at https://github.com/agoric-labs/jessica/blob/master/lib/quasi-justin.js.ts

@michaelfig @dckc do we have anything else on Justin?

dckc commented 2 years ago

No, that's the only material I know on Justin.

dy commented 2 years ago

That's perfect! Is that sort-of compilable, there's no js dist, right? I'm foreseeing its use for at least 2 projects, I wonder if that can be bundled as a compact dependency.

erights commented 2 years ago

That parser should verify that a Justin program is syntactically valid, though we are not currently using that parser or parsing framework in production. Having verified that it is valid Justin syntax, since Justin is a subset of SES, you could then use the SES shim to run it as a SES program. You can use the SES Compartment mechanism to craft the lexical environment that your Justin program sees. I just realized there's one more thing to show you:

https://github.com/Agoric/agoric-sdk/blob/master/packages/marshal/src/marshal-justin.js

tested by

https://github.com/Agoric/agoric-sdk/blob/master/packages/marshal/test/test-marshal-justin.js

This does its round trip tests by evaluating the generated justin program as a SES program in a custom SES environment.

dckc commented 2 years ago

That's perfect!

OK, I take it this issue is addressed.

... there's no js dist, right?

no, we don't have a package for all and only Justin. It would be a welcome contribution!

If you want the scope of this issue expanded to include such a package, feel free to re-open this.

dy commented 2 years ago

Just an update. A variation of justin as a separate package here.

erights commented 2 years ago

What does and doesn't it have in common with Justin?

JDvorak commented 2 years ago

Just an update. A variation of justin as a separate package here.

Where did it go? This was what I had been looking for for awhile now, as I just need this smaller subset and would prefer a smaller library for it.

dy commented 2 years ago

I can't opensource it for now unfortunately, besides some aspects are not finished , sorry, had to remove it. I can add you to repository developers if you prefer.

JDvorak commented 2 years ago

That would be fantastic. Thank you.

On Sat, Oct 16, 2021 at 10:06 AM Dmitry Iv. @.***> wrote:

I can't opensource it for now unfortunately, besides some aspects are not finished , sorry, had to remove it. I can add you to repository developers if you prefer.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/endojs/Jessie/issues/66#issuecomment-944956249, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAGIP6CLEAXMININWE6PTT3UHGWKPANCNFSM5FTXFUYQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

dy commented 2 years ago

Ok, for these who's interested - there's Justin extension for subscript microlanguage.

JDvorak commented 1 year ago

I am so appreciative of this specific extension, thank you again.

dy commented 6 months ago

Btw it's called Justin because there's no keyword operators, just in.