

GitHub - plasma-umass/Stopify
source link: https://github.com/plasma-umass/Stopify
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Stopify
Stopify is a JavaScript-to-JavaScript compiler that makes JavaScript a better target language for high-level languages and web-based programming tools. Stopify enhances JavaScript with debugging abstractions, blocking operations, and support for long-running computations.
Suppose you have a compiler C from language L to JavaScript. You can apply Stopify to the output of C and leave C almost entirely unchanged. Stopify will provide the following features:
-
Stopify will support long-running L programs without freezing the browser tab. In particular, programs can access the DOM and are not limited to Web Workers.
-
Stopify can pause or terminate an L program, even if it is an infinite loop.
-
Stopify can set breakpoints or single-step through the L program, if C generates source maps.
-
Stopify can simulate an arbitrarily deep stack and proper tail calls. This feature is necessary to run certain functional programs in the browser.
-
Stopify can simulate blocking operations on the web.
We have tested Stopify with ten languages: (1) C++, (2) Clojure, (3) Dart, (4) Java, (5) JavaScript, (6) OCaml, (7) Pyret, (8) Python, (9) Scheme, and (10) Scala. Some of these are available on the Stopify demo page (www.stopify.org) and the rest are coming soon.
To learn how to use Stopify in your own project, see the Stopify Wiki.
For a technical overview of Stopify, see our PLDI 2018 paper Putting in All the Stops: Execution Control for JavaScript.
Recommend
-
177
AnnouncementsPlasma 5.11 Makes the Desktop More Powerful, Elegant and SecurePlasma 5.11 Makes the Desktop More Powerful, Elegant and Secure
-
204
Plasma Convergence, technically Posted on October 5, 2017...
-
114
KDE Plasma 5.11.1, Bugfix Release for October AnnouncementsKDE Plasma 5.11.1, Bugfix Release for OctoberKDE Plasma 5.11.1, Bugf...
-
109
AnnouncementsKDE Plasma 5.11.2, Bugfix Release for OctoberKDE Plasma 5.11.2, Bugfix Release for October
-
116
Notice! This is an old research repo. No active work is being done here. Efforts in the direction of production-ready MVP plasma chain (MoreVP, ERC20, audits) are in ht...
-
14
scalene: a high-performance CPU, GPU and memory profiler for Python by Emery Berger, Sam Stern, and Juan Altmaye...
-
29
README.md ...
-
3
Coz: Finding Code that Counts with Causal Profiling Coz is a new kind of profiler that unlocks optimization opportunities missed by traditional profilers. Coz employs a novel technique we call causal profiling that measures...
-
12
KDE Plasma Widget for external monitor brightness adjustment
-
8
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK