Stackless 1.01 Homepage

0 views
Skip to first unread message

Christian Tismer

unread,
Jan 24, 2000, 3:00:00 AM1/24/00
to python-ann...@python.org, python list
"Why should I care about this, isn't my Python fine"?

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


Robin Becker

unread,
Jan 24, 2000, 3:00:00 AM1/24/00
to
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.

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

Christian Tismer

unread,
Jan 24, 2000, 3:00:00 AM1/24/00
to 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


Robin Becker

unread,
Jan 24, 2000, 3:00:00 AM1/24/00
to Christian Tismer
In message <388C7D4...@tismer.com>, Christian Tismer
<tis...@tismer.com> writes

>
>
>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.
>
....

Zope uses several deep changes to standard python eg ExtensionClass,
Aquisition which may be the cause of the problem.
--
Robin Becker


Christian Tismer

unread,
Jan 24, 2000, 3:00:00 AM1/24/00
to 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

William Tanksley

unread,
Jan 24, 2000, 3:00:00 AM1/24/00
to
On Mon, 24 Jan 2000 00:43:42 -0500, Christian Tismer wrote:

>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

Robin Becker

unread,
Jan 25, 2000, 3:00:00 AM1/25/00
to
In article <388C9733...@tismer.com>, Christian Tismer
<tis...@tismer.com> writes
>
>
>Robin Becker wrote:
>>
>> In message <388C7D4...@tismer.com>, Christian Tismer
>> <tis...@tismer.com> writes
>
.....

>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

Konrad Hinsen

unread,
Jan 27, 2000, 3:00:00 AM1/27/00
to
wtan...@hawking.armored.net (William Tanksley) writes:

> 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
-------------------------------------------------------------------------------

Steve Menard

unread,
Jan 27, 2000, 3:00:00 AM1/27/00
to

Konrad Hinsen <hin...@cnrs-orleans.fr> wrote in message
news:m3r9f3v...@chinon.cnrs-orleans.fr...

> wtan...@hawking.armored.net (William Tanksley) writes:
>
> > 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)?
>

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

Jeffery D. Collins

unread,
Jan 27, 2000, 3:00:00 AM1/27/00
to Steve Menard, Pytho...@python.org
My message concerning this must not have gotten through
to the python-list. I responded via the egroups server, but
the message didn't appear:(

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

David Maslen

unread,
Jan 28, 2000, 3:00:00 AM1/28/00
to
"Jeffery D. Collins" <jcol...@pacificnet.net> writes:
> 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.

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?

Shae Erisson

unread,
Jan 30, 2000, 3:00:00 AM1/30/00
to
<snip>

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

Christian Tismer

unread,
Feb 1, 2000, 3:00:00 AM2/1/00
to sh...@tripoint.org

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 ?

Robin Becker

unread,
Feb 1, 2000, 3:00:00 AM2/1/00
to
In article <3896C84B...@tismer.com>, Christian Tismer
<tis...@tismer.com> writes
>
>

>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 ?
>
>ciao - chris.stackless
>


Hi it works ok with Zope now. What's ptools? Seems ptools.timing is
needed for the generator demo.
--
Robin Becker

Christian Tismer

unread,
Feb 1, 2000, 3:00:00 AM2/1/00
to 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

ptools.py

Shae Erisson

unread,
Feb 4, 2000, 3:00:00 AM2/4/00
to
Christian Tismer wrote:

> 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!

Reply all
Reply to author
Forward
0 new messages