Tim Peters wrote: [see the main list on idle leaks] > if-pystone-works-ship-it-ly y'rs - tim Well, on request of uncle Timmy, I do it. Although it's very early. A preview of stackless Python can be found under ftp://ftp.pns.cc/pub/stackless_990606.zip Current status: The main interpreter is completely stackless. Just for fun, I've set max recursion depth to 30000, so just try it. PyStone does of course run. My measures were about 3-5 percent slower than with standard Python. I think this is quite fair. As a side effect, the exec_statement now behaves better than before, since exec <anything> without globals and locals should update the current environment, which worked only for exec "string". Most of the Run_<thing> functions are stackless as well. Almost all cases could be treated tail recursively. I have just begun to work on the builtins, and there is a very bloody, new-born stackless map, which seems to behave quite well. (It is just an hour old, so don't blame me if I didn't get al refcounts right). This is a first special case, since I *had* to build a tiny interpreter from the old map code. Still quite hacky, but not so bad. It creates its own frame and bails out whenever it needs to call the interpreter. If not, it stays in the loop. Since this one is so fresh, the old map is still there, and the new one has the name "map_nr". As a little bonus, map_nr now also shows up in a traceback. I've set the line no to the iteration count. Beware, this is just a proof of concept and will most probably change. Further plans: I will make the other builtins stackless as well (reduce, filter), also the simple tail-recursive ones which I didn't do now due to lack of time. I think I will *not* think of stackless imports. After loking into this for a while, I think this is rather hairy, and also not necessary. On extensions: There will be a coroutine extension in a few days. This is now nearly a no-brainer, since I did the stackless Python with exactly that in mind. This is the real fruit where I'm after, so please let me pick it :) Documentation: Besides the few new comments, there is nothing yet. Diff files: Sorry, there are no diffs but just the modified files. I had no time to do them now. All files stem from the official Python 1.5.2 release. You might wonder about the version: In order to support extension modules which rely on some special new features of frames, I decided to name this Python "1.5.42", since I believe it will be useful at least "four two" people. :-) I consider this an Alpha 1 version. fearing the feedback :-) ciao - chris -- Christian Tismer :^) <mailto:tismer at appliedbiometrics.com> Applied Biometrics GmbH : Have a break! Take a ride on Python's Kaiserin-Augusta-Allee 101 : *Starship* http://starship.python.net 10553 Berlin : PGP key -> http://wwwkeys.pgp.net PGP Fingerprint E182 71C7 1A9D 66E9 9D15 D3CC D4D7 93E2 1FAE F6DF we're tired of banana software - shipped green, ripens at home
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4