ByteSurgeon
ByteSurgeon is a library to transform binary code in Smalltalk. It takes full advantage of the flexibility of the Squeak environment to enable bytecode transformation at runtime, thereby allowing dynamic, on-the-fly modification of applications. ByteSurgeon operates on bytecode in order to cope with situation where either the source code or a full compiler is not available, while providing appropriate high-level abstractions so that users do not need to program at the bytecode level.
Users of ByteSurgeon
ByteSurgeon has been used in a number of projects:
- Geppetto I, Unanticipated Partial Behavioral Reflection, Paper, Source Repository (David Röthlisberger)
- Untuck, An Omniscient Debugger: Paper (Christoph Hofer)
- Christo, Testcoverage Analysis: Christo Wiki (Stefan Reichart)
- Object History, Persistent Objects: Object History Website (Frédéric Pluquet)
Download
Ready to run image: ByteSurgeon.zip
To install the code in an existing image:
- Load package ByteSurgeonLoader from SqueakSource
- Execute ByteSurgeonLoader new loadAll (Pharo) or ByteSurgeonLoader new loadAllSqueak (Squeak)
Publications
- Marcus Denker, Stéphane Ducasse and Éric Tanter, Runtime Bytecode Transformation for Smalltalk, Journal of Computer Languages, Systems and Structures, vol. 32, no. 2-3, July 2006, pp. 125-139. Abstract, PDF
Contact
- Author: Marcus Denker
- The ByteSurgeon Mailinglist is reflectivity@iam.unibe.ch. You can use the Mailman web interface to subscribe.
- For reporting bugs, please use the bug tracker.