skip to main content
research-article
Open Access
Artifacts Available
Artifacts Evaluated & Functional

Rebuilding racket on chez scheme (experience report)

Published:26 July 2019Publication History
Skip Abstract Section

Abstract

We rebuilt Racket on Chez Scheme, and it works well—as long as we're allowed a few patches to Chez Scheme. DrRacket runs, the Racket distribution can build itself, and nearly all of the core Racket test suite passes. Maintainability and performance of the resulting implementation are good, although some work remains to improve end-to-end performance. The least predictable part of our effort was how big the differences between Racket and Chez Scheme would turn out to be and how we would manage those differences. We expect Racket on Chez Scheme to become the main Racket implementation, and we encourage other language implementers to consider Chez Scheme as a target virtual machine.

Skip Supplemental Material Section

Supplemental Material

a78-flatt.webm

References

  1. Michael D. Adams. Flow-Sensitive Control-Flow Analysis in Linear-Log Time. PhD dissertation, Indiana University, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Leif Andersen, Vincent St-Amour, Jan Vitek, and Matthias Felleisen. Feature-Specific Profiling. Transactions on Programming Languages and Systems 41(1), 2019. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Eli Barzilay and Dmitry Orlovsky. Foreign Interface for PLT Scheme. In Proc. Scheme and Functional Programming , 2004.Google ScholarGoogle Scholar
  4. Brent W. Benson Jr. libscheme: Scheme as a C Library. In Proc. USENIX Symposium on Very High Level Languages, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. John Clements and Matthias Felleisen. A Tail-Recursive Machine with Stack Inspection. Transactions on Programming Languages and Systems 26(6), pp. 1029–1052, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. John Clements, Matthew Flatt, and Matthias Felleisen. Modeling an Algebraic Stepper. In Proc. European Symposium on Programming , 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Olivier Danvy and Andrzej Filinski. Abstracting Control. In Proc. Lisp and Functional Programming, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. R. Kent Dybvig, Carl Bruggeman, and David Eby. Guardians in a Generation-Based Garbage Collector. In Proc. Programming Language Design and Implementation , 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. R. Kent Dybvig, Simon Peyton Jones, and Amr Sabry. A Monadic Framework for Delimited Continuations. Journal of Functional Programming 17(6), pp. 687–730, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Matthew Flatt, Robert Bruce Findler, Shriram Krishnamurthi, and Matthias Felleisen. Programming Languages as Operating Systems (or Revenge of the Son of the Lisp Machine). In Proc. International Conference on Functional Programming , 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Matthew Flatt, Gang Yu, Robert Bruce Findler, and Matthias Felleisen. Adding Delimited and Composable Control to a Production Programming Enviornment. In Proc. International Conference on Functional Programming , 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Barry Hayes. Ephemerons: a New Finalization Mechanism. In Proc. Object-Oriented Programming, Systems, Languages and Applications , 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Robert Hieb, Kent Dybvig, and Claude W. Anderson , III. Subcontinuations. Lisp and Symbolic Computation 7(1), pp. 83–110, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Robert Hieb and R. Kent Dybvig. Continuations and Concurrency. In Proc. Principles and Practice of Parallel Programming , 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Xiangqi Li and Matthew Flatt. Debugging with Domain-Specific Events via Macros. In Proc. Software Language Engineering , 2017. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. John H. Reppy. Concurrent Programming in ML. Cambridge University Press, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Julian Smart. User Manual for wxWindows 1.63: a Portable C++ Toolkit. 1995. Note: wxWindows is now known as wxWidgets.Google ScholarGoogle Scholar
  18. Michael Sperber, R. Kent Dybvig, Matthew Flatt, and Anton van Straaten (Ed.). The Revised 6 Report on the Algorithmic Language Scheme. 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. T. Stevie Strickland, Sam Tobin-Hochstadt, Robert Bruce Findler, and Matthew Flatt. Chaperones and Impersonators: Run-time Support for Reasonable Interposition. In Proc. Object-Oriented Programming, Systems, Languages and Applications , 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Adam Wick and Matthew Flatt. Memory Accounting without Partitions. In Proc. International Symposium on Memory Management , 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Rebuilding racket on chez scheme (experience report)

      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

      Full Access

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader
      About Cookies On This Site

      We use cookies to ensure that we give you the best experience on our website.

      Learn more

      Got it!