Skip to main content

Back to the Future in One Week — Implementing a Smalltalk VM in PyPy

  • Conference paper
Self-Sustaining Systems (S3 2008)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 5146))

Included in the following conference series:

Abstract

We report on our experiences with the Spy project, including implementation details and benchmark results. Spy is a re-implementation of the Squeak (i.e. Smalltalk-80) VM using the PyPy toolchain. The PyPy project allows code written in RPython, a subset of Python, to be translated to a multitude of different backends and architectures. During the translation, many aspects of the implementation can be independently tuned, such as the garbage collection algorithm or threading implementation. In this way, a whole host of interpreters can be derived from one abstract interpreter definition. Spy aims to bring these benefits to Squeak, allowing for greater portability and, eventually, improved performance. The current Spy codebase is able to run a small set of benchmarks that demonstrate performance superior to many similar Smalltalk VMs, but which still run slower than in Squeak itself. Spy was built from scratch over the course of a week during a joint Squeak-PyPy Sprint in Bern last autumn.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Bolz, C.F., Rigo, A.: Memory management and threading models as translation aspects – solutions and challenges. Technical report, PyPy Consortium (2005), http://codespeak.net/pypy/dist/pypy/doc/index-report.html

  2. Denker, M.: Entwurf von optimierungen für squeak, Studienarbeit, Universität Karlsruhe (2002)

    Google Scholar 

  3. Goldberg, A., Robson, D.: Smalltalk 80: the Language and its Implementation. Addison-Wesley, Reading (1983)

    MATH  Google Scholar 

  4. Ingalls, D., Kaehler, T., Maloney, J., Wallace, S., Kay, A.: Back to the future: The story of Squeak, a practical Smalltalk written in itself. In: Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications (OOPSLA 1997), pp. 318–326. ACM Press, New York (1997)

    Chapter  Google Scholar 

  5. Lattner, C., Adve, V.: LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation. In: Proceedings of the 2004 International Symposium on Code Generation and Optimization (CGO 2004) (March 2004)

    Google Scholar 

  6. Pedroni, S., Rigo, A.: JIT compiler architecture. Technical report, PyPy Consortium (2007), http://codespeak.net/pypy/dist/pypy/doc/index-report.html

  7. Rigo, A., Hudson, M., Pedroni, S.: Compiling dynamic language implementations. Technical report, PyPy Consortium (2005), http://codespeak.net/pypy/dist/pypy/doc/index-report.html

  8. Rigo, A., Pedroni, S.: PyPy’s approach to virtual machine construction. In: Proceedings of the 2006 conference on Dynamic languages symposium, OOPSLA 2006: Companion to the 21st ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications, pp. 944–953. ACM Press, New York (2006)

    Google Scholar 

  9. Schmidt, D.C.: Guest editor’s introduction: Model-driven engineering. Computer 39(2), 25–31 (2006)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2008 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Bolz, C.F. et al. (2008). Back to the Future in One Week — Implementing a Smalltalk VM in PyPy. In: Hirschfeld, R., Rose, K. (eds) Self-Sustaining Systems. S3 2008. Lecture Notes in Computer Science, vol 5146. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-89275-5_7

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-89275-5_7

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-89274-8

  • Online ISBN: 978-3-540-89275-5

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics