skip to main content
10.1145/3623507.3623549acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

Debugging Dynamic Language Features in a Multi-tier Virtual Machine

Published:19 October 2023Publication History

ABSTRACT

Multi-tiered virtual-machine (VM) environments with Just-In-Time (JIT) compilers are essential for optimizing dynamic language program performance, but comprehending and debugging them is challenging. In this paper, we introduce Derir; a novel tool for tackling this issue in the context of Ř, a JIT compiler for R. Derir demystifies Ř, catering to both beginners and experts. It allows users to inspect the system's runtime state, make modifications, and visualize contextual specializations. With a user-friendly interface and visualization features, Derir empowers developers to explore, experiment, and gain insights into the inner workings of a specializing JIT system. We evaluate the effectiveness and usability of our tool through real-world use cases, demonstrating its benefits in learning as well as debugging scenarios. We believe that our tool holds promise for enhancing the understanding and debugging of complex VMs.

References

  1. Carl Friedrich Bolz-Tereick. 2021. Some way that PyPy uses Graphviz. https://github.com/jimmyhmiller/PlayGround Google ScholarGoogle Scholar
  2. Arthur Charguéraud, Alan Schmitt, and Thomas Wood. 2018. JSExplain: A Double Debugger for JavaScript. In Companion Proceedings of the The Web Conference 2018 (WWW ’18). International World Wide Web Conferences Steering Committee, Republic and Canton of Geneva, CHE. 691–699. isbn:9781450356404 https://doi.org/10.1145/3184558.3185969 Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Maxime Chevalier-Boisvert, Noah Gibbs, Jean Boussier, Si Xing (Alan) Wu, Aaron Patterson, Kevin Newton, and John Hawthorn. 2021. YJIT: A Basic Block Versioning JIT Compiler for CRuby. In Proceedings of the 13th ACM SIGPLAN International Workshop on Virtual Machines and Intermediate Languages (VMIL 2021). Association for Computing Machinery, New York, NY, USA. 25–32. isbn:9781450391092 https://doi.org/10.1145/3486606.3486781 Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Marcus Ciolkowski, Simon Faber, and Sebastian von Mammen. 2017. 3-D Visualization of Dynamic Runtime Structures. In Proceedings of the 27th International Workshop on Software Measurement and 12th International Conference on Software Process and Product Measurement (IWSM Mensura ’17). Association for Computing Machinery, New York, NY, USA. 189–198. isbn:9781450348539 https://doi.org/10.1145/3143434.3143435 Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Peter Eades. 2023. Graphviz. https://graphviz.org/ Google ScholarGoogle Scholar
  6. Olivier Flückiger, Guido Chari, Jan Ječmen, Ming-Ho Yee, Jakob Hain, and Jan Vitek. 2019. R Melts Brains: An IR for First-Class Environments and Lazy Effectful Arguments. In Proceedings of the 15th ACM SIGPLAN International Symposium on Dynamic Languages (DLS 2019). Association for Computing Machinery, New York, NY, USA. 55–66. isbn:9781450369961 https://doi.org/10.1145/3359619.3359744 Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Olivier Flückiger, Guido Chari, Ming-Ho Yee, Jan Ječmen, Jakob Hain, and Jan Vitek. 2020. Contextual Dispatch for Function Specialization. Proc. ACM Program. Lang., 4, OOPSLA (2020), https://doi.org/10.1145/3428288 Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Philip J. Guo. 2013. Online Python Tutor: Embeddable Web-Based Program Visualization for Cs Education. In Proceeding of the 44th ACM Technical Symposium on Computer Science Education (SIGCSE ’13). Association for Computing Machinery, New York, NY, USA. 579–584. isbn:9781450318686 https://doi.org/10.1145/2445196.2445368 Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Tomas Kalibera, Petr Maj, Floreal Morandat, and Jan Vitek. 2014. A Fast Abstract Syntax Tree Interpreter for R. SIGPLAN Not., 49, 7 (2014), mar, 89–102. issn:0362-1340 https://doi.org/10.1145/2674025.2576205 Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Andrew Luxton-Reilly, Emma McMillan, Elizabeth Stevenson, Ewan Tempero, and Paul Denny. 2018. Ladebug: An Online Tool to Help Novice Programmers Improve Their Debugging Skills. In Proceedings of the 23rd Annual ACM Conference on Innovation and Technology in Computer Science Education (ITiCSE 2018). Association for Computing Machinery, New York, NY, USA. 159–164. isbn:9781450357074 https://doi.org/10.1145/3197091.3197098 Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Microsoft R Open. 2015. Microsoft R Open. https://github.com/microsoft/microsoft-r-open Google ScholarGoogle Scholar
  12. Jimmy Miller. 2022. YJIT visualizer frontend. https://github.com/jimmyhmiller/PlayGround Google ScholarGoogle Scholar
  13. Oracle Corporation. 2023. Java VisualVM. https://docs.oracle.com/javase/8/docs/technotes/guides/visualvm/ Google ScholarGoogle Scholar
  14. Dominic Parfitt. 2022. graphviz-react. https://github.com/DomParfitt/graphviz-react Google ScholarGoogle Scholar
  15. Jeremy Singer and Chris Kirkham. 2006. Visualized Adaptive Runtime Subsystems. In Proceedings of the 2006 ACM Symposium on Software Visualization (SoftVis ’06). Association for Computing Machinery, New York, NY, USA. 195–196. isbn:1595934642 https://doi.org/10.1145/1148493.1148541 Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Lukas Stadler, Adam Welc, Christian Humer, and Mick Jordan. 2016. Optimizing R Language Execution via Aggressive Speculation. SIGPLAN Not., 52, 2 (2016), nov, 84–95. issn:0362-1340 https://doi.org/10.1145/3093334.2989236 Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Luke Tierney. 2019. A Byte Code Compiler for R. http://www.stat.uiowa.edu/~luke/R/compiler/compiler.pdf Google ScholarGoogle Scholar
  18. Thomas Wuerthinger. 2007. Ideal Graph visualizer. https://ssw.jku.at/General/Staff/TW/igv.html Google ScholarGoogle Scholar
  19. Thomas Würthinger, Michael L. Van De Vanter, and Doug Simon. 2010. Multi-level Virtual Machine Debugging Using the Java Platform Debugger Architecture. In Perspectives of Systems Informatics, Amir Pnueli, Irina Virbitskaite, and Andrei Voronkov (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg. 401–412. isbn:978-3-642-11486-1 https://doi.org/10.1007/978-3-642-11486-1_34 Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Debugging Dynamic Language Features in a Multi-tier Virtual Machine

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in
      • Published in

        cover image ACM Conferences
        VMIL 2023: Proceedings of the 15th ACM SIGPLAN International Workshop on Virtual Machines and Intermediate Languages
        October 2023
        99 pages
        ISBN:9798400704017
        DOI:10.1145/3623507

        Copyright © 2023 ACM

        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 19 October 2023

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article

        Acceptance Rates

        Overall Acceptance Rate4of4submissions,100%

        Upcoming Conference

      • Article Metrics

        • Downloads (Last 12 months)43
        • Downloads (Last 6 weeks)2

        Other Metrics

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader