Hi all,
Here is my third iteration. It no longer represents fields as a Lisp lists, which was a premature optimization and as such the root of all evil (*) - i.e. it had the same problem discussed with Tobias, caching too much, because the value of a field was calculated once and never updated, unless one reinspected the root object. Now a FieldRef class is used instead. When inspected, a FieldRef shows the full string representation of the field - e.g. private static java.lang.Object foo - and of course allows to inspect the field's value, which is always coherent to the value the field has when the FieldRef is inspected.
If there are no objections, tomorrow I'll commit the patch.
Cheers, Alessio
(*) as a side note, today I got my copy of Knuth's The Art of Computer Programming!
armedbear-devel@common-lisp.net