Hello Bengt, On Sun, Jan 19, 2003 at 04:26:24PM -0800, Bengt Richter wrote:
This might probably be done without Psyco, and would certainly be a nice thing to have. Note that a good Psyco could remove any need for it: most initialization code could theoretically be specialized into something that just creates the necessary data structures without executing any code at all.
There seems to be something I missed. Could you clarify how such specialized versions persist so they don't have to be redone? I.e., how do you get from an original .py source-only representation to the specialized form, and how does the latter come to exist? I.e., is this a new form of incrementally updated .pyc?
Yes, you must have this data persist somewhere. In a .pyc-like file or any variant of the idea (like having one "global" database as Edward proposed, which would be user-specific to avoid security issues).
Sometimes I like to point out that if our OS were written in a high-level language with built-in specializers, they would boot in no more than the time it takes to do the actual I/O that occurs when booting (mainly displaying the login screen and waiting for mouse, keyboard and network input) --- everything else is internal state and can be done lazily.
If this means dynamic incremental revisions of system files, it must be a whole new class of security issues to nail down, or am I misconstruing?
Yes and no. There are tons of issues that must be carefully planned for such a thing to be possible and secure, and it is probably not possible in a Unix-style OS (which is essentially C). I'll just drop the link http://tunes.org as an example of what I mean by re-planning an OS. A bientôt, Armin.