On 11 Sep 2009, at 4:57 pm, John Cowan wrote: > That makes the rule short and (I hope) sweet: > > Redefinitions of variables are retroactive; > > Redefinitions of macros are not. > > To override this rule and inline things, one must have a > switch that makes the implementation non-conformant.
Or a smart implementation; Self supports a high level of dynamism (everything's an OO message-send, and objects can alter their own inheritance hierarchy at will, and all objects, including those that fill the role of classes, are mutable), while also doing aggressive inlining, by recompiling things as required. Rather than having long recompile pauses, I gather that it has a two- stage compilation approach; there's a quick compiler that is used when the code is needed NOW, and a slow optimising compiler that is run in a background thread once some quick-compiled code has been run a sufficient number of times to make it appear to be a hotspot; when code is invalidated since it inlined something that is later changed, then it's discarded, and you go back to quick-compiling that function if it's called again, and if it keeps being called, it once again gets slow-compiled and will then inline the new definition, if it seems worthwhile... or something along those lines. ABS -- Alaric Snell-Pym Work: http://www.snell-systems.co.uk/ Play: http://www.snell-pym.org.uk/alaric/ Blog: http://www.snell-pym.org.uk/archives/author/alaric/ _______________________________________________ r6rs-discuss mailing list [email protected] http://lists.r6rs.org/cgi-bin/mailman/listinfo/r6rs-discuss
