If you know what Generators, Coroutines and Continuations
are about and want to have them at your fingertips,
this is the real thing for you.
If not, how about speed?
About 5 percent faster, binary compatible as a drop-in
replacement for your python15.dll, unlimited recursion,
why not give it a try? Just click on the installer :-)
Stackless Python 1.01 with Continuations 0.6
can now be downloaded from a web page:
http://www.tismer.com/research/stackless/
Fact sheet, links to documentation, source and
binaries can be found there.
Source and binary distribution have been split.
The Windows binaries come with a Wise installer.
SLP has been successfully compiled on Solaris (Thanks to Jeff
Collins). It will be used on PalmIII, to solve the 4k stack problem.
Version 1.01 is a small clean-up for non-Windows platforms.
<P><A HREF="http://www.tismer.com/research/stackless/">Stackless
Python 1.01 + Continuations 0.6</A> - a version of Python 1.5.2 that
does not need space on the C stack, and first-class callable
continuation objects for Python. (20-Jan-2000)
Christian Tismer
Mission Impossible 5oftware Team
I'm very impressed. here are the pybench timing differences (absolute and expressed as % of
original python) for my 333Mhz win32 machine. here negative is bad for stackless, positive is
good. My only disappointment is that Zope wouldn't start up.
Tests: per run per op. oh per run per op. oh
BuiltinFunctionCalls: -2.03ms -0.02us 0.38ms -0.45%ms -0.56%us 31.40%ms
BuiltinMethodLookup: 92.94ms 0.18us 0.91ms 18.43%ms 18.75%us 32.85%ms
ConcatStrings: 45.03ms 0.3us 0.66ms 6.74%ms 6.73%us 7.23%ms
CreateInstances: -56.32ms -1.34us 0.74ms -7.84%ms -7.84%us 30.08%ms
CreateStringsWithConcat: 7.93ms 0.04us 1.04ms 1.70%ms 1.72%us 32.91%ms
DictCreation: 30.65ms 0.2us 0.77ms 5.31%ms 5.19%us 32.35%ms
ForLoops: 193.48ms 19.35us 0.1 ms 30.67%ms 30.67%us 16.39%ms
IfThenElse: 98.93ms 0.14us 1.93ms 16.94%ms 16.09%us 32.66%ms
ListSlicing: 2.75ms 0.79us -0.03ms 0.50%ms 0.50%us -3.26%ms
NestedForLoops: 92.3ms 0.26us 0ms 24.95%ms 24.53%us 0.00%ms
NormalClassAttribute: 114.04ms 0.19us 1.28ms 22.48%ms 22.35%us 32.24%ms
NormalInstanceAttribute: 117.29ms 0.2us 1.29ms 23.72%ms 24.39%us 32.33%ms
PythonFunctionCalls: -5.96ms -0.04us 0.72ms -1.11%ms -1.23%us 29.51%ms
PythonMethodCalls: 26.22ms 0.35us 0.26ms 6.08%ms 6.09%us 30.59%ms
Recursion: -34.18ms -2.74us 0.64ms -8.00%ms -8.01%us 32.16%ms
SecondImport: -54.01ms -2.16us 0.28ms -7.68%ms -7.68%us 34.57%ms
SecondPackageImport: -45.16ms -1.81us 0.25ms -6.35%ms -6.36%us 30.86%ms
SecondSubmoduleImport: -53.17ms -2.13us 0.26ms -6.47%ms -6.48%us 32.10%ms
SimpleComplexArithmetic: 13.27ms 0.06us 0.5 ms 2.36%ms 2.35%us 31.25%ms
SimpleDictManipulation: 36.49ms 0.12us 0.64ms 8.03%ms 7.89%us 32.16%ms
SimpleFloatArithmetic: 25.87ms 0.05us 1.28ms 5.86%ms 6.25%us 32.41%ms
SimpleIntFloatArithmetic:45.92ms 0.07us 1.55ms 10.55%ms 10.61%us 32.77%ms
SimpleIntegerArithmetic: 46.71ms 0.07us 1.53ms 10.74%ms 10.61%us 32.28%ms
SimpleListManipulation: 47.47ms 0.17us 0.75ms 9.37%ms 9.04%us 31.25%ms
SimpleLongArithmetic: 9.55ms 0.06us 0.37ms 2.20%ms 2.29%us 30.58%ms
SmallLists: 4.68ms 0.02us 1.14ms 0.57%ms 0.62%us 17.09%ms
SmallTuples: -10.95ms -0.05us 1.02ms -1.85%ms -2.02%us 32.28%ms
SpecialClassAttribute: 122.76ms 0.21us 1.28ms 24.24%ms 25.00%us 32.24%ms
SpecialInstanceAttribute:120.81ms 0.2us 1.29ms 21.62%ms 21.51%us 32.49%ms
StringSlicing: -32.27ms -0.19us 1.33ms -6.11%ms -6.29%us 28.60%ms
TryExcept: 166.99ms 0.11us 2.6 ms 19.57%ms 19.30%us 33.16%ms
TryRaiseExcept: -34.71ms -2.32us 0.74ms -5.89%ms -5.91%us 30.71%ms
TupleSlicing: -124.35ms-1.18us 0.04ms -21.64%ms-21.57%us4.04%ms
Average Round Time 1580.24ms 7.73%ms
Zope failure traceback
Traceback (innermost last):
File "C:\Python\devel\Zope\z2.py", line 479, in ?
exec "import "+MODULE in {}
File "<string>", line 1, in ?
File "C:\Python\devel\Zope\lib\python\Zope\__init__.py", line 135, in ?
Globals.VersionNameName)
File "C:\Python\devel\Zope\lib\python\ZODB\ZApplication.py", line 101, in __init__
root=conn.root()
AttributeError: 'None' object has no attribute 'root'
C:\Python\devel\Zope>
--
Robin Becker
Robin Becker wrote:
>
> In article <388BE68E...@tismer.com>, Christian Tismer <tis...@tismer.com> writes
>
> I'm very impressed. here are the pybench timing differences (absolute and expressed as % of
> original python) for my 333Mhz win32 machine. here negative is bad for stackless, positive is
> good. My only disappointment is that Zope wouldn't start up.
Whow. I guess there is a bug in exec. In any case, it cannot be a
conceptual but but just a failure of mine. Idle, PyWin, pystone,
Metakit, they all work fine.
Will look into it after the conference.
Thanks for giving the measures.
These optimizations were done last January partially, before
I started to think of SLP. They didn't make it into the core,
like SLP didn't as well. As a consequence I bundled them and pushed
optimization even further, to outperform Standard Python.
If these patches would be applied to the original, I expect about
15 % speed gain, because SLP actually looses about 8%.
But please don't apply them :-))
cheers - chris
--
Christian Tismer :^) <mailto:tis...@appliedbiometrics.com>
Applied Biometrics GmbH : Have a break! Take a ride on Python's
Düppelstr. 31 : *Starship* http://starship.python.net
12163 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
Zope uses several deep changes to standard python eg ExtensionClass,
Aquisition which may be the cause of the problem.
--
Robin Becker
Robin Becker wrote:
>
> In message <388C7D4...@tismer.com>, Christian Tismer
> <tis...@tismer.com> writes
> >Whow. I guess there is a bug in exec. In any case, it cannot be a
> >conceptual but but just a failure of mine. Idle, PyWin, pystone,
> >Metakit, they all work fine.
> >
> >Will look into it after the conference.
> >Thanks for giving the measures.
> >
> ....
>
> Zope uses several deep changes to standard python eg ExtensionClass,
> Aquisition which may be the cause of the problem.
Shouldn't be so. I do not change the object model
at all. It appears that I missed to give another
reference to an argument.
SLP is designed to work exactly as standard Python,
if the old API calls are used. I have to hunt it later.
ciao - chris
>SLP has been successfully compiled on Solaris (Thanks to Jeff
>Collins). It will be used on PalmIII, to solve the 4k stack problem.
Congrats on the huge success!
I have a question, though. What's that about the Palm? When will the
Palm version be available? What will it require? What will it provide?
Will it only work on the Palm III, or will it be okay on anything above as
well (Palm V, Visor, TRG, etc)?
--
-William "Billy" Tanksley, in hoc signo hack
>Shouldn't be so. I do not change the object model
>at all. It appears that I missed to give another
>reference to an argument.
>SLP is designed to work exactly as standard Python,
>if the old API calls are used. I have to hunt it later.
>
>ciao - chris
>
OK I've reproduced the Zope bug. It seems that stackless doen't quite
hack try finally properly
In stackless this produces None in standard it produces 1
def test():
try:
z=1
return z
finally:
pass
print test()
--
Robin Becker
> I have a question, though. What's that about the Palm? When will the
> Palm version be available? What will it require? What will it provide?
> Will it only work on the Palm III, or will it be okay on anything above as
> well (Palm V, Visor, TRG, etc)?
I am rather confident that it would work on anything Palm-like -
portability is a traditional Python virtue. As for the other
questions, I'd like to know the answers as well.
Freedom for Palm users - a Python on every Palm!
--
-------------------------------------------------------------------------------
Konrad Hinsen | E-Mail: hin...@cnrs-orleans.fr
Centre de Biophysique Moleculaire (CNRS) | Tel.: +33-2.38.25.55.69
Rue Charles Sadron | Fax: +33-2.38.63.15.17
45071 Orleans Cedex 2 | Deutsch/Esperanto/English/
France | Nederlands/Francais
-------------------------------------------------------------------------------
Any timefame for the palm port? Any details? I have looked at doing a
port myself, and am still in the early stages. I'd like to know what
features of python will be supported and of course how long I'll have to
wait :)
Steve
The release of python-1.5.1 for the PalmIII (or greater) will
be announced within the next couple of weeks. I need to clean
up the distribution and documentation first. The first release
will probably be the final for 1.5.1, since the porting tools have
improved and we are eager to get in sync with the latest
stuff. With the lessons learned and code developed during the
first port, the second should go much more quickly (the first
took several part time months)...
Jeff
Christian Tismer wrote:
> Steve Menard wrote:
> ...
> > Any timefame for the palm port? Any details? I have looked at doing a
> > port myself, and am still in the early stages. I'd like to know what
> > features of python will be supported and of course how long I'll have to
> > wait :)
>
> Howdy,
>
> Please contact Jeff concerning this.
> Also let me know wether you think it makes sense to
> set up a mailing list for palm ports. I want to make
> this happen! :-)
>
> Finally I'm considering to delve into porting myself
> if that helps.
>
> ciao - chris.stackless
I'd be interested to know what sort of expectations I should have for
this. In particular speed. As I'm sure all palm owners are aware,
speed is critical in a 'good' application.
I recently installed KVM, the java virtual machine for the palm. It's
impressive, but the delay in starting the virtual machine and then the
actually program running a little slower that similar C-Coded
applications is disappointing.
Disappointing is probably the wrong word. It's what I expect from java
and the virtual machine, but is this what I should also expect from
stackless python on the pilot?
I installed the stackless update on win95, and suddenly hitting the
enter key in IDLE gives me two carriage returns.
Any ideas?
--
Shae Matijs Erisson - sh...@lapland.fi
Programmeur-savant - Python, Java, JPython
Shae Erisson wrote:
>
> <snip>
>
> I installed the stackless update on win95, and suddenly hitting the
> enter key in IDLE gives me two carriage returns.
>
> Any ideas?
There was a try...finally bug, which is solved now.
When trying IDLE, I get the same behavior with and
without Stackless.
Maybe you should uninstall and try 1.02 ?
Hi it works ok with Zope now. What's ptools? Seems ptools.timing is
needed for the generator demo.
--
Robin Becker
Robin Becker wrote:
...
> Hi it works ok with Zope now.
YAHOOOOOO !$%?@ :-]D
well that's great. As I heard from some major Zopistas on
IPC8, they are very much interested in a Stackless Zope,
at least for the Medusa stuff. But most probably they
can make use of fast threadless context switching as well.
Hach, great.
> What's ptools? Seems ptools.timing is
> needed for the generator demo.
Oh yeah. I'll include the function into the demo code.
Here is my clumsy ptools (pirx' tools) file :-)
ciao - chris.thoughtless
> There was a try...finally bug, which is solved now.
> When trying IDLE, I get the same behavior with and
> without Stackless.
> Maybe you should uninstall and try 1.02 ?
>
> ciao - chris.stackless
fixed it!