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

Reply via email to