-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
define harden rules using escape analysis? #35
Comments
I would love to see this! |
reportedly...
should be in https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-block-scoping somewhere... p.s. oh my. let's hope we don't have to go there. memory.ts does escape analysis, according to its readme. The code looks more reasonable, though I'm not sure which part of it is escape analysis. |
I just re-discovered...
The DoctorJS link is dead (I haven't tried to find it elsewhere yet) but CFA2 looks interesting:
|
It occurred to me to add "coq" to my search terms for literature review of escape analysis; I haven't read these yet, but they look interesting: |
bingo!
|
@gibson042 presented some work on tsc extensions for static analysis of comparisons (to be sure our branded time stuff is used correctly everywhere). I asked about using a similar approach for checking correct usage of @michaelfig suggested that it's largely orthogonal to types, except that the @gibson042 noted a tsc extension support library that enables advanced queries that might help too. |
@Jake-Gillberg, you asked about ways to dig into the Agoric platform. This would be a fantastic one. I think the rule that we're trying to enforce with static analysis is stated canonically in https://github.com/endojs/Jessie#must-freeze-api-surface-before-use :
|
collecting some links: this thread proposes a "imperfect but worthwhile" linting rule that could probably be added to the jessie es-lint extension. i wonder if it got implemented - https://github.com/Agoric/agoric-sdk/pull/4553/files#r806450281 another thread on how harden should be used - Agoric/agoric-sdk#7585 (comment) https://www.npmjs.com/package/@jessie.js/eslint-plugin - the jessie es-lint plugin doesn't seem to have a home on github? hmm, this might be useful? https://codeql.github.com/docs/codeql-language-guides/analyzing-data-flow-in-javascript-and-typescript/#source-nodes |
oops... missing link. But the source is https://github.com/endojs/Jessie/tree/main/packages/eslint-plugin |
I seem to recall some difficulty figuring out static rules for
harden()
that weren't too onerous.After last night's exploration (#34) the idea of using escape analysis to define when
harden()
is required popped into my head.Here's hoping for time to explore / explain further...
src/compiler/escape-analysis.cc - v8/v8 - Git at Google
Escape Analysis in V8 with Tobias Tebbi - YouTube
Escape-Analysis-in-V8.pdf
Go: Introduction to the Escape Analysis | by Vincent Blanchon | A Journey With Go | Medium
compilers - What data-structure is best suited for escape analysis? - Computer Science Stack Exchange
The text was updated successfully, but these errors were encountered: