See this: <a href="http://i.stanford.edu/pub/cstr/reports/cs/tr/94/1520/CS-TR-94-1520.pdf" rel="nofollow">http://i.stanford.edu/pub/cstr/reports/cs/tr/94/1520/CS-TR-9...</a> (ADAPTIVE OPTIMIZATION FOR SELF: RECONCILING HIGH PERFORMANCE WITH EXPLORATORY PROGRAMING)<p>Esp. section 5.3+ starting on physical pdf page 56.
This might be about RAM-constrained phones; the design doc refers to '--optimize-for-size devices', suggesting it won't (initially?) be on for everyone. Android and Chrome OS already enable Linux zram to get more out of low-memory gadgets. Incidentally, Google announced a (to me very ambitious-sounding) push for $50 Android phones today (<a href="http://www.engadget.com/2015/08/10/google-revamps-android-one-india/" rel="nofollow">http://www.engadget.com/2015/08/10/google-revamps-android-on...</a>) that better low-RAM support could mesh nicely with, though of course it's just a coincidence the dates lined up.
Interesting decision.<p>The architecture sounds a little unusual:<p>"The interpreter itself consists of a set of bytecode handler code snippets, each of which handles a specific bytecode and dispatches to the handler for the next bytecode. These bytecode handlers are written in a high level, machine architecture agnostic form of assembly code, as implemented by the RawMachineAssembler class and compiled by Turbofan"<p>It also seems as if all calls are mediated by code generated by the compiler, which has the advantage of avoiding the awkwardness of different calling conventions between native and bytecode functions (possibly at some cost to performance?).<p>Fascinating reading. Thanks V8 people for allowing such documents to be public!
I like the way Google projects seem to use Google Docs for this sort of thing. I've noticed in the past docs come up for projects like Angular and Go. I'd like to hear more about some of these documentation policies if anyone knows anything.
Would it be useful a <hot-code> tag for the purpose of indicating that optimizations are required for the code?<p>in Lisp we have compiler options (declare (optimize ...))
The link to optimizing an ANSI C interpreter is broken, it's missing a colon after the protocol. I dunno if there's anyone here that can fix that, just thought I'd say it anyway.<p>Actually it's not the colon, there are two protocols:<p><pre><code> http://http://dl.acm.org/citation.cfm?id=199526
^^^^^^^
</code></pre>
My bad.