Hop, Skip, & Jump: Practical On-Stack Replacement for a Cross-Platform Language-Neutral VM
| dc.contributor.author | Wang, Kunshan | |
| dc.contributor.author | Blackburn, Stephen | |
| dc.contributor.author | Hosking, Tony | |
| dc.contributor.author | Norrish, Michael | |
| dc.coverage.spatial | Williamsburg, VA, USA | |
| dc.date.accessioned | 2023-03-14T01:02:34Z | |
| dc.date.created | 25 March 2018 through 25 March 2018 | |
| dc.date.issued | 2018 | |
| dc.date.updated | 2022-01-09T07:17:15Z | |
| dc.description.abstract | On-stack replacement (OSR) is a performance-critical technology for many languages, especially dynamic languages. Conventional wisdom, apparent in JavaScript engines such as V8 and SpiderMonkey, is that OSR must be implemented in a low-level (i.e., in assembly) and language-specific way. This paper presents an OSR abstraction based on Swapstack, materialized as the API for a low-level virtual machine, and shows how the abstraction of resumption protocols facilitates an elegant implementation of this API on real hardware. Using an experimental JavaScript implementation, we demonstrate that this API enables the language implementation to perform OSR without the need to deal with machine-level details. We also show that the API itself is implementable on concrete hardware. This work helps crystallize OSR abstractions and, by providing a reusable implementation, brings OSR within reach for more language implementers. | en_AU |
| dc.description.sponsorship | This research was supported (partially or fully) by the Australian Government through the Australian Research Council’s Discovery Projects funding scheme (project DP140103878). | en_AU |
| dc.format.mimetype | application/pdf | en_AU |
| dc.identifier.isbn | 978-1-4503-5579-7 | en_AU |
| dc.identifier.uri | http://hdl.handle.net/1885/287027 | |
| dc.language.iso | en_AU | en_AU |
| dc.publisher | ACM | en_AU |
| dc.relation | http://purl.org/au-research/grants/arc/DP140103878 | en_AU |
| dc.relation.ispartofseries | 14th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments, VEE 2018 | en_AU |
| dc.rights | © 2018 Copyright held by the owner/author(s) | en_AU |
| dc.source | VEE 2018 - Proceedings of the 2018 International Conference on Virtual Execution Environments | en_AU |
| dc.subject | on-stack replacement | en_AU |
| dc.subject | Swapstack | en_AU |
| dc.subject | language implementation | en_AU |
| dc.subject | feedback-directed optimization | en_AU |
| dc.title | Hop, Skip, & Jump: Practical On-Stack Replacement for a Cross-Platform Language-Neutral VM | en_AU |
| dc.type | Conference paper | en_AU |
| local.bibliographicCitation.lastpage | 16 | en_AU |
| local.bibliographicCitation.startpage | 1 | en_AU |
| local.contributor.affiliation | Wang, Kunshan, College of Engineering and Computer Science, ANU | en_AU |
| local.contributor.affiliation | Blackburn, Steve, College of Engineering and Computer Science, ANU | en_AU |
| local.contributor.affiliation | Hosking, Tony, College of Engineering and Computer Science, ANU | en_AU |
| local.contributor.affiliation | Norrish, Michael, Data61 | en_AU |
| local.contributor.authoruid | Wang, Kunshan, u5211824 | en_AU |
| local.contributor.authoruid | Blackburn, Steve, u3789498 | en_AU |
| local.contributor.authoruid | Hosking, Tony, u1817699 | en_AU |
| local.description.embargo | 2099-12-31 | |
| local.description.notes | Imported from ARIES | en_AU |
| local.description.refereed | Yes | |
| local.identifier.absfor | 461204 - Programming languages | en_AU |
| local.identifier.absfor | 460602 - Concurrent/parallel systems and technologies | en_AU |
| local.identifier.absfor | 460610 - Operating systems | en_AU |
| local.identifier.ariespublication | a383154xPUB10241 | en_AU |
| local.identifier.doi | 10.1145/3186411.3186412 | en_AU |
| local.identifier.scopusID | 2-s2.0-85049590423 | |
| local.publisher.url | https://dl.acm.org/ | en_AU |
| local.type.status | Published Version | en_AU |
Downloads
Original bundle
1 - 1 of 1
Loading...
- Name:
- 3186411.3186412.pdf
- Size:
- 586.33 KB
- Format:
- Adobe Portable Document Format
- Description: