Reflectivity
Overview
Welcome to the Reflectivity!
The Reflectivity is work on progress based on Squeak. It provides extensions to the standard reflection features of Smalltalk for both structural and behavioral reflection: - Structural reflection is extended by sub-method reflection: the structure of method bodies has as a first class and causally connected representation that can easily be extended and annotated.
- Behavioral Reflection is provided by a new and improved version of Geppetto, a realization of Partial Behavioral Reflection as pioneered by Reflex.
There are some slides from a demo at DYLA07 here
Subsystems
- Persephone. This provides Reflective Methods and a small "JIT" compiler (extensible with plugins) to generate bytecode for execution.
- Geppetto. Reflex for Squeak, redone. Simplified a lot from the original Geppetto, it uses annotations on method structure instead of bytecode manipulation.
Download
Latest Release: 0.19, Ready to run image: Reflectivity.zip
How to install from Pharo (pre-closures) (more extensive description: INSTALL.txt):
- get Pharo from pharoproject.org
- install ReflectivityLoader from SqueakSource
- load packages with ReflectivityLoader new loadStablePackages
- Recompile the image using class PERecompiler
Publications
Users of Reflectivity
Reflectivity has been used in some projects:
- Hermion: Exploiting Runtime Information in the IDE, Paper, (David Röthlisberger)
- TypePlug: Pluggable Types for Squeak, Paper, (Nik Haldiman)
- Transactional Memory for Smalltalk, Paper, (Lukas Renggli)
- HistOOry. Manage simply the past: Persistent Objects. HistOOry Website, (Frédéric Pluquet)
Contact
- Main Contact: Marcus Denker
- The Reflectivity Mailinglist is reflectivity@iam.unibe.ch. You can use the Mailman web interface to subscribe.
- For reporting bugs, please use the bug tracker.