On Sun, Jun 12, 2011 at 12:13 AM, David Barbour <dmbarb...@gmail.com> wrote: > On Sat, Jun 11, 2011 at 8:34 PM, C. Scott Ananian <csc...@laptop.org> wrote: >> >> Even if you're doing pure static analysis, you should be doing >> open/closed class analysis and specializing/inlining any class which >> has no subclasses in the compilation. > Doesn't work with pluggable components.
This is discussed in the paper(s). Closed/open types can be considered part of the type system, in which case they are perfectly compatible with plugins. They can also be considered a type of runtime optimization or method cache, in which case you just need to do a bit of extra bookkeeping when you load your component. No inherent problem. If you actually *do* redefine 'true' in your pluggable component, of course, you get the poor performance which you apparently wanted. But there's no magical reason why you can't do proper interprocedural analysis. (Call it 'link time optimization' and stick it in the dynamic loader if you want to keep it under the radar.) --scott -- ( http://cscott.net ) _______________________________________________ fonc mailing list fonc@vpri.org http://vpri.org/mailman/listinfo/fonc