Abstract
Live programming, originally introduced by Smalltalk and Lisp, and now gaining popularity in contemporary systems such as Swift, requires on-the-fly support for object schema migration, such that the layout of objects may be changed while the program is at one and the same time being run and developed. In Smalltalk schema migration is supported by two primitives, one that answers a collection of all instances of a class, and one that exchanges the identities of pairs of objects, called the become primitive. Existing instances are collected, copies using the new schema created, state copied from old to new, and the two exchanged with become, effecting the schema migration. Historically the implementation of become has either required an extra level of indirection between an object's address and its body, slowing down slot access, or has required a sweep of all objects, a very slow operation on large heaps. Spur, a new object representation and memory manager for Smalltalk-like languages, has neither of these deficiencies. It uses direct pointers but still provides a fast become operation in large heaps, thanks to forwarding objects that when read conceptually answer another object and a partial read barrier that avoids the cost of explicitly checking for forwarding objects on the vast majority of object accesses.
- H. G. Baker. The Treadmill: Real-time Garbage Collection Without Motion Sickness. SIGPLAN Not., 1992. Google Scholar
Digital Library
- A. P. Black, S. Ducasse, O. Nierstrasz, D. Pollet, D. Cassou, and M. Denker. Pharo by Example. Square Bracket Associates, Kehrsatz, Switzerland, 2009.Google Scholar
- G. Bracha, P. von der Ahé, V. Bykov, Y. Kashai, W. Maddox, and E. Miranda. Modules As Objects in Newspeak. In European Conference on Object-oriented Programming, ECOOP’10, 2010. Google Scholar
Digital Library
- B. Hayes. Ephemerons: A New Finalization Mechanism. In Objectoriented Programming, Systems, Languages, and Applications, OOPSLA ’97, 1997. Google Scholar
Digital Library
- U. Hölzle, C. Chambers, and D. Ungar. Optimizing Dynamically-Typed Object-Oriented Languages With Polymorphic Inline Caches. In European Conference on Object-Oriented Programming, ECOOP ’91, London, UK, UK, 1991. Google Scholar
Digital Library
- U. Hölzle, C. Chambers, and D. Ungar. Debugging Optimized Code with Dynamic Deoptimization. In Programming Language Design and Implementation, PLDI ’92, pages 32–43, New York, NY, USA, 1992. ACM.. IBM Research, Portland State University, Vrije Universiteit Brussel. Project Renaissance: Harness Emergence. URL http: //stefan-marr.de/renaissance/. D. Ingalls, T. Kaehler, J. Maloney, S. Wallace, and A. Kay. Back to the Future: The Story of Squeak, a Practical Smalltalk Written in Itself. In Object-oriented Programming, Systems, Languages, and Applications, OOPSLA ’97, pages 318–326, New York, NY, USA, 1997. Google Scholar
Digital Library
- M. Martinez Peck. Application-Level Virtual Memory for Object-Oriented Systems. Theses, Université des Sciences et Technologie de Lille - Lille I, 2012.Google Scholar
- M. Martinez Peck, N. Bouraqadi, S. Ducasse, L. Fabresse, and M. Denker. Ghost: A Uniform and General-Purpose Proxy Implementation, 2013.Google Scholar
- J. McCarthy. Recursive functions of symbolic expressions and their computation by machine, part I. CACM, 3(4):184–195, Apr. 1960. Google Scholar
Digital Library
- E. Miranda. Context Management in VisualWorks 5i. In OOPSLA’99 Workshop on Simplicity, Performance and Portability in Virtual Machine Design, Denver, CO, 1999.Google Scholar
- E. Miranda. Cog Blog: Speeding Up Terf, Squeak, Pharo and Croquet with a fast open-source Smalltalk VM, 2008. URL http://www.mirandabanda.org/cogblog/. M. Sannella, J. Maloney, B. Freeman-Benson, and A. Borning. Multi-way Versus One-way Constraints in User Interfaces: Experience with the DeltaBlue Algorithm. Softw. Pract. Exper., 1993. Google Scholar
Digital Library
- D. Ungar. Generation Scavenging: A Non-Disruptive High Performance Storage Reclamation Algorithm. ACM SIGPLAN Notices, 19(5):157–167, 1984.. D. Ungar, R. Blau, P. Foley, D. Samples, and D. Patterson. Architecture of SOAR: Smalltalk on a RISC. In International Symposium on Computer Architecture, ISCA ’84, 1984. Google Scholar
Digital Library
- VisualWorks. Cincom Smalltalk official website. URL http://www. cincomsmalltalk.com. J. Vraný. Supporting Multiple Languages in Virtual Machines. Theses, Faculty of Information Technologies, Czech Technical University in Prague, 2010.Google Scholar
- D. Weinreb and D. Moon. The Lisp Machine Manual. SIGART Bull., 1981. Google Scholar
Digital Library
- P. R. Wilson and T. G. Moher. Design of the Opportunistic Garbage Collector. In Proceedings OOPSLA ’89, ACM SIGPLAN Notices, volume 24, pages 23–36, Oct. 1989. Google Scholar
Digital Library
Index Terms
A partial read barrier for efficient support of live object-oriented programming
Recommendations
A partial read barrier for efficient support of live object-oriented programming
ISMM '15: Proceedings of the 2015 International Symposium on Memory ManagementLive programming, originally introduced by Smalltalk and Lisp, and now gaining popularity in contemporary systems such as Swift, requires on-the-fly support for object schema migration, such that the layout of objects may be changed while the program ...
The Collie: a wait-free compacting collector
ISMM '12We describe the Collie collector, a fully concurrent compacting collector that uses transactional memory techniques to achieve wait-free compaction. The collector uses compaction as the primary means of reclaiming unused memory, and performs "individual ...
The Collie: a wait-free compacting collector
ISMM '12: Proceedings of the 2012 international symposium on Memory ManagementWe describe the Collie collector, a fully concurrent compacting collector that uses transactional memory techniques to achieve wait-free compaction. The collector uses compaction as the primary means of reclaiming unused memory, and performs "individual ...






Comments