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
- 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.
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
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)