<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
  <channel rdf:about="http://blog.gmane.org/gmane.comp.python.stackless">
    <title>gmane.comp.python.stackless</title>
    <link>http://blog.gmane.org/gmane.comp.python.stackless</link>
    <description/>
    <syn:updatePeriod>hourly</syn:updatePeriod>
    <syn:updateFrequency>1</syn:updateFrequency>
    <syn:updateBase>1901-01-01T00:00+00:00</syn:updateBase>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.python.stackless/5149"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.python.stackless/5142"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.python.stackless/5128"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.python.stackless/5125"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.python.stackless/5122"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.python.stackless/5105"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.python.stackless/5103"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.python.stackless/5093"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.python.stackless/5091"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.python.stackless/5088"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.python.stackless/5087"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.python.stackless/5079"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.python.stackless/5077"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.python.stackless/5072"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.python.stackless/5065"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.python.stackless/5063"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.python.stackless/5061"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.python.stackless/5060"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.python.stackless/5053"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.python.stackless/5051"/>
      </rdf:Seq>
    </items>
    <image rdf:resource="http://gmane.org/img/gmane-25t.png"/>
    <textinput rdf:resource=""/>
  </channel>
  <image rdf:about="http://gmane.org/img/gmane-25t.png">
    <title>Gmane</title>
    <url>http://gmane.org/img/gmane-25t.png</url>
    <link>http://gmane.org</link>
  </image>
  <item rdf:about="http://comments.gmane.org/gmane.comp.python.stackless/5149">
    <title>stackless bug fix</title>
    <link>http://comments.gmane.org/gmane.comp.python.stackless/5149</link>
    <description>&lt;pre&gt;I've just fixed a bug where the data sent over a channel could get lost, being replaced with a "None".
This could happen if channel action, tasklet deletion and stack spilling all happened at once :)
See
http://blog.ccpgames.com/kristjan/
for details.

K
_______________________________________________
Stackless mailing list
Stackless-KA+417sA3NeakBO8gow8eQ&amp;lt; at &amp;gt;public.gmane.org
http://www.stackless.com/mailman/listinfo/stackless&lt;/pre&gt;</description>
    <dc:creator>Kristján Valur Jónsson</dc:creator>
    <dc:date>2012-05-21T14:54:42</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.python.stackless/5142">
    <title>Tasklet cleanup?</title>
    <link>http://comments.gmane.org/gmane.comp.python.stackless/5142</link>
    <description>&lt;pre&gt;Hello,

I'm wondering how tasklets can clean themselves up when they are
destroyed due to garbage collection (i.e. when they are not in the
runnables and not referenced by any object anymore). Greenlet solves
this problem by raising a GreenletExit exception in the greenlet's run
function when the greenlet is about to die due to garbage collection.
However, in stackless, it seems that no TaskletExit exception is
raised when the tasklet is about to die, so we can't simply use a
try/finally in the tasklet's callable to clean up resources.

I tried to wrap my tasklet in a parent object which has the same
lifespan as my tasklet and has a __del__ function for cleaning up, but
I keep having problems with circular references (the wrapper/parent
object also provides the callable of the tasklet, i.e. a bound method)
that make the tasklet/parent object uncollectable (circular references
: wrapper --&amp;gt; tasklet --&amp;gt; stackless machinery? --&amp;gt; callable stack
frame (bound method of wrapper) --&amp;gt; wrapper). Same problem when tryi&lt;/pre&gt;</description>
    <dc:creator>Sylvain Prat</dc:creator>
    <dc:date>2012-05-19T22:29:19</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.python.stackless/5128">
    <title>Is the Stackless website down?</title>
    <link>http://comments.gmane.org/gmane.comp.python.stackless/5128</link>
    <description>&lt;pre&gt;I cannot reach the website from Buenos Aires. It's just me?
&lt;/pre&gt;</description>
    <dc:creator>Fernando Miranda</dc:creator>
    <dc:date>2012-05-10T20:11:10</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.python.stackless/5125">
    <title>Using Stackless Python to overcome GIL issues interoperating with a C++ runtime</title>
    <link>http://comments.gmane.org/gmane.comp.python.stackless/5125</link>
    <description>&lt;pre&gt;I wondered if anybody here has used Stackless Python in some clever ways to
work around the global interpreter lock.  I have some C++ objects wrapped
with Boost.Python, and I run into some interesting stuff when I start
implementing interfaces defined in these wrappers in Python.  At that point
I have to do some work that involves acquiring the GIL to run the Python
version of the code whenever I'm running into it from the C++ side in other
threads.  This normally works okay until I get into situations like this:

1. Python interpreter calls something with a wrapper into C++.
2. C++ code calls back into a Python implementation of a C++ interface (GIL
involved here).
3. Python implementation calls some other thing wrapped from C++ . . . note
that step #1 hasn't actually completed yet.
4. C++ code calls back into Python.  Here we deadlock trying to get the GIL.

I'm looking at a situation here where I need to place all these pending
GIL-related operations on some common stack, and have something comb over
them&lt;/pre&gt;</description>
    <dc:creator>Adam Preble</dc:creator>
    <dc:date>2012-05-06T10:25:37</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.python.stackless/5122">
    <title>Tasklet clean up</title>
    <link>http://comments.gmane.org/gmane.comp.python.stackless/5122</link>
    <description>&lt;pre&gt;Hello, I'm not sure if this has sense but I'm wondering if Stackless
'clean ups' all tasklet resources when tasklets die.
For example, suposse a tasklet that opens files and/or sockets, will
those resources be automatically  closed when the tasklet die? Can
that be done easily?

Thanks in advance.
&lt;/pre&gt;</description>
    <dc:creator>Fernando Miranda</dc:creator>
    <dc:date>2012-04-29T06:09:02</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.python.stackless/5105">
    <title>channels and StopIteration</title>
    <link>http://comments.gmane.org/gmane.comp.python.stackless/5105</link>
    <description>&lt;pre&gt;So,
Channels objey the iterator protocol.  calling channel.close() will raise the StopIteration exception from the channel.__next__ method.
But, calling channel.close() from the receiving end will also cause this same exception to be raised when someone wants to call channel.send().
Now, I wonder if a more appropriate exception for the send() call wouldn't be GeneratorExit()?    This is what the generator yield(foo) statement raises when the generator is closed, and it seems logical that this should be the exception raised when someone tries to send to a closed channel.

K
_______________________________________________
Stackless mailing list
Stackless-KA+417sA3NeakBO8gow8eQ&amp;lt; at &amp;gt;public.gmane.org
http://www.stackless.com/mailman/listinfo/stackless&lt;/pre&gt;</description>
    <dc:creator>Kristján Valur Jónsson</dc:creator>
    <dc:date>2012-04-11T13:49:50</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.python.stackless/5103">
    <title>Patch to exception handler.</title>
    <link>http://comments.gmane.org/gmane.comp.python.stackless/5103</link>
    <description>&lt;pre&gt;Here is a fix for the exception handler, I included just the .patch.

    This corrects the problems with python having a different exception the
environment when the item is called again.

    In the previous code, whenever a python tasklet was suspended the top
of the exception chain was saved. This very well could be a pointer into
code above the python stack into the main program. When the python tasklet
is called again, it's stack is put back *in the same place*, but the
environment above the stack *might be different*. This would cause the
exception chain to screw up in the part where the exception chain points
above the stack. This was the cause of the broken exception chain bug.


    If a tasklet has none of it's own exception chains, we will discover
this by reading the exception list and seeing that the address is above the
stack, so we don't need to save or restore it it.

    If, on the other hand, the tasklet has a chain we save it. When
restoring it we look at the current chain and insert the &lt;/pre&gt;</description>
    <dc:creator>Gil Colgate</dc:creator>
    <dc:date>2012-04-09T18:43:34</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.python.stackless/5093">
    <title>http://www.stackless.com/pipermail/stackless/2007-April/000142.html</title>
    <link>http://comments.gmane.org/gmane.comp.python.stackless/5093</link>
    <description>&lt;pre&gt;I wonder,
Why does stackless redefine PyHeapTypeObject?
Is there any reason to?  Can we fix that so that compatibility with stuff such as PyQT is maintained?

K
_______________________________________________
Stackless mailing list
Stackless-KA+417sA3NeakBO8gow8eQ&amp;lt; at &amp;gt;public.gmane.org
http://www.stackless.com/mailman/listinfo/stackless&lt;/pre&gt;</description>
    <dc:creator>Kristján Valur Jónsson</dc:creator>
    <dc:date>2012-04-04T09:28:55</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.python.stackless/5091">
    <title>Exception handling crashes, how to contribute</title>
    <link>http://comments.gmane.org/gmane.comp.python.stackless/5091</link>
    <description>&lt;pre&gt;I had the unfortunate experience of mixing python and C++ code on the
Windows environment on a large program with multiple libraries not written
by me.

The C++ code uses the structured exception handling protocol, and stackless
does no properly handle this. This could result in crashes in the following
way:

Whenever a python tasklet is suspended the top of the exception chain is
saved by stackless. This very well could be pointing into code *above the
python stack into the main program*. When the python tasklet is called
again, it's stack is put back* *in the same place*,* but the environment
above the stack* *might be different*.* This would cause the exception
chain to screw up in the part where the exception chain points above the
stack.

This would cause a crash on an exception... for example a function uses
OutputDebugStr (which routes by using an exception).... the exception
handler itself could crash.

I have corrected this issue in my local copy of Stackless.. it involves
changes to stacklesseval.c&lt;/pre&gt;</description>
    <dc:creator>Gil Colgate</dc:creator>
    <dc:date>2012-04-03T16:28:19</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.python.stackless/5088">
    <title>tasklet.set_atomic</title>
    <link>http://comments.gmane.org/gmane.comp.python.stackless/5088</link>
    <description>&lt;pre&gt;Hi there.
Working on stuff to spawn off work for actual worker threads, I realized that there was no good way to to synchronize between two tasklets on two threads.
That is to say:
When sending data between two tasklet on the same thread, usually it is sufficient to use tasklet.set_atomic() to disable tasklet interrupts (that rarely happen anyway, only when using stackless.run() with non-zero values) to ensure atomicity.
For example, this code from stacklesslib.locks.Event:

def wait(self, timeout=None):
        with atomic():
            if self._is_set:
                return True
            lock_channel_wait(self.chan, timeout)
            return self._is_set

    def set(self):
        with atomic():
            self._is_set = True
            for i in range(-self.chan.balance):
                self.chan.send(None)

the atomic() context manager is used here to ensure consistency of state.

However, I realized that when using the Event to set or wait for events between threads, that is, when one tasklet &lt;/pre&gt;</description>
    <dc:creator>Kristján Valur Jónsson</dc:creator>
    <dc:date>2012-04-02T10:00:34</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.python.stackless/5087">
    <title>Stackless co-existence with CPython - does this emailstill hold ?</title>
    <link>http://comments.gmane.org/gmane.comp.python.stackless/5087</link>
    <description>&lt;pre&gt;I'm interested in installing Stackless on a Ubuntu VM I have (8.04).

In this email ...

http://www.stackless.com/pipermail/stackless/2008-April/003424.html

... issues are discussed with a stackless installation making future use
of the the pre-existing CPython installation problematic (specifically
the common use of the PYTHONPATH environment variable).

Given that email is four years old I wondered if things had changed
and/or someone had a suggestion for completely isolating stackless ?

regards

Richard.
&lt;/pre&gt;</description>
    <dc:creator>Richard Shea</dc:creator>
    <dc:date>2012-04-02T10:00:03</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.python.stackless/5079">
    <title>multiprocess channels</title>
    <link>http://comments.gmane.org/gmane.comp.python.stackless/5079</link>
    <description>&lt;pre&gt;Hey there,

I have started playing with the multiprocessing package together with 
stackless.
I came up with this POC implementation of the channels, working across 
processes.

If any of you stackless gurus could take a quick look there:

http://www.internike.com/mp_stackless.html

and let me know if you see any serious flaw with the basic concept, 
before I get too excited about it,
I'd be infinitely grateful ;-)


Nike
&lt;/pre&gt;</description>
    <dc:creator>stackless.nst-HfgdotR9GYVl57MIdRCFDg&lt; at &gt;public.gmane.org</dc:creator>
    <dc:date>2012-03-27T16:09:06</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.python.stackless/5077">
    <title>how nonblocking send and receive tasklet's messageusing c api?</title>
    <link>http://comments.gmane.org/gmane.comp.python.stackless/5077</link>
    <description>&lt;pre&gt;Hi all.

I am using stackless c api(stackless_api.h), but I have some question:

when I new a tasklet and run it, I lost control this new tasklet, example I
want know this new tasklet whether dead or done. afterwards I try use
channel, but in my main tasklet , everything must be nonblocking.  so
how nonblocking
send and receive tasklet's message? like erlang's spawn_link.

thanks.

&lt;/pre&gt;</description>
    <dc:creator>Simon Liu</dc:creator>
    <dc:date>2012-03-24T03:44:03</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.python.stackless/5072">
    <title>Is there a Pycon 2012 Trip Report</title>
    <link>http://comments.gmane.org/gmane.comp.python.stackless/5072</link>
    <description>&lt;pre&gt;Hi folks:

I am curious. Is anyone going to write a Pycon trip report?

Cheers,
Andrew_______________________________________________
Stackless mailing list
Stackless-KA+417sA3NeakBO8gow8eQ&amp;lt; at &amp;gt;public.gmane.org
http://www.stackless.com/mailman/listinfo/stackless&lt;/pre&gt;</description>
    <dc:creator>Andrew Francis</dc:creator>
    <dc:date>2012-03-13T16:45:04</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.python.stackless/5065">
    <title>Stackless runtime smacking into GIL while a callback isrunning</title>
    <link>http://comments.gmane.org/gmane.comp.python.stackless/5065</link>
    <description>&lt;pre&gt;I've been writing a C++ application with an embedded Python interpreter,
for which I am using Stackless Python 2.6.5.  I am using Boost to wrap my
objects.  I had the great fortune of running head-first into the GIL when I
started calling back into Python objects that were implementing some C++
interfaces.  These calls are coming in from a variety of threads in the C++
runtime, and the rest was history.

Hence, I am no stranger to our friend "PyThreadState_Get: no current
thread." I've learned how to acquire the GIL in my wrappers and there was
peace in the land again.

The problem this time is my call stack takes me right to the thread with
the Stackless Python runtime in it, and not some imposter thread.  I see
the runtime itself trying to secure the thread state, and there I hit the
error.

In my Python code, I have this main thread running a horrific poll loop:

        # Busy loop while waiting for escape key
        while not self.stopLoop:
            stackless.schedule()

Indeed this is a terrible wa&lt;/pre&gt;</description>
    <dc:creator>Adam Preble</dc:creator>
    <dc:date>2012-03-11T19:28:32</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.python.stackless/5063">
    <title>Stackless socket module for pyuv</title>
    <link>http://comments.gmane.org/gmane.comp.python.stackless/5063</link>
    <description>&lt;pre&gt;Hi,

I've implemented the most commonly used part of a socket module based
on pyuv, the Python bindings for libuv.

You can find the most recent commit here:

  http://code.google.com/p/stacklessexamples/source/detail?r=191

This is unlikely to ever be as full-featured as the asyncore-based
Stackless socket module, but given the breadth of functionality which
libuv (and therefore pyuv) provides bindings for, it should if
completed result in a wider support for asynchronous features.

You can read pyuv's documentation here:

  http://readthedocs.org/docs/pyuv/en/release-0.5.0/

Cheers,
Richard.
&lt;/pre&gt;</description>
    <dc:creator>Richard Tew</dc:creator>
    <dc:date>2012-03-03T01:14:25</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.python.stackless/5061">
    <title>pricelezdyme10</title>
    <link>http://comments.gmane.org/gmane.comp.python.stackless/5061</link>
    <description>&lt;pre&gt;
SingIe mom makes reaI money working at home onIine
http://cafudermista.zxq.net/pjob4jou/httpjob4journal0129.php?afecampID=40



            Thu, 1 Mar 2012 19:14:15
______________
"  [Illustration: KING RICHARD'S SEAL" (c) jaedon albertina
&lt;/pre&gt;</description>
    <dc:creator>Allen Fowler</dc:creator>
    <dc:date>2012-03-01T18:14:15</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.python.stackless/5060">
    <title>pricelezdyme10</title>
    <link>http://comments.gmane.org/gmane.comp.python.stackless/5060</link>
    <description>&lt;pre&gt;
SingIe mom makes reaI money working at home onIine
http://cafudermista.zxq.net/pjob4jou/httpjob4journal0129.php?afecampID=40



            Thu, 1 Mar 2012 19:14:15
______________
"  [Illustration: KING RICHARD'S SEAL" (c) jaedon albertina
&lt;/pre&gt;</description>
    <dc:creator>Allen Fowler</dc:creator>
    <dc:date>2012-03-01T18:14:15</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.python.stackless/5053">
    <title>tasklet time out</title>
    <link>http://comments.gmane.org/gmane.comp.python.stackless/5053</link>
    <description>&lt;pre&gt;Hi,

Some of my tasklets are blocked because of which whole system is blocked.
There is a option of timeout in run method but it is not time it is
depending on number of instruction, how Can i specify the time.

suppose in my function if i write time.sleep(30) then every thing is block.
can i avoid this situation.


--Piyush
_______________________________________________
Stackless mailing list
Stackless-KA+417sA3NeakBO8gow8eQ&amp;lt; at &amp;gt;public.gmane.org
http://www.stackless.com/mailman/listinfo/stackless&lt;/pre&gt;</description>
    <dc:creator>piyush singhai</dc:creator>
    <dc:date>2012-02-29T07:00:26</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.python.stackless/5051">
    <title>Stackless Python 3.2.1 &amp; 3.2.2 released</title>
    <link>http://comments.gmane.org/gmane.comp.python.stackless/5051</link>
    <description>&lt;pre&gt;Hi,

I've uploaded the releases of Stackless Python 3.2.2 and 3.2.1 to the
Stackless web site.

  http://www.stackless.com/download/

In the case of 3.2.1, you'll have to look on the archived downloads
page of course.

If anyone wishes to build the missing MacOS releases, even if it just
for 2.7.2 and 3.2.2, it would be much appreciated :-)

Cheers,
Richard.
&lt;/pre&gt;</description>
    <dc:creator>Richard Tew</dc:creator>
    <dc:date>2012-02-20T23:02:02</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.python.stackless/5050">
    <title>Stackless Python 3.2.1 &amp; 3.2.2 code pushed</title>
    <link>http://comments.gmane.org/gmane.comp.python.stackless/5050</link>
    <description>&lt;pre&gt;Hi,

I merged 3.2.1 and 3.2.2 some time ago, but there was a problem with
leaked exception state which rendered them both unstable.  I've
debugged the problem, applied a fix, and pushed it to hg.python.org.
If using the latest Python 3.2 releases upgraded with the Stackless
shenanigans is of interest to you, you can retrieve the source and
compile it yourself.

You can put your local repository clone to the right revisions by
doing one of the following:

    hg update -r v3.2.1-slp
    hg update -r v3.2.2-slp

Unfortunately, I don't think there is an equivalently flexible command
like "svn export" which can fetch an unversioned set of files from a
remote repository.  But maybe if you use one of the following links,
you can use the "bz2", "zip" or "gz2" links on the left-hand side of
the page to save any faffing around with Mercurial.

    3.2.1: http://hg.python.org/stackless/rev/993f37332abf
    3.2.2: http://hg.python.org/stackless/rev/4b587d500e94

I'll do the proper releases for each, hopefully tomorrow.&lt;/pre&gt;</description>
    <dc:creator>Richard Tew</dc:creator>
    <dc:date>2012-02-19T06:49:14</dc:date>
  </item>
  <textinput rdf:about="http://search.gmane.org/?group=$group=gmane.comp.python.stackless">
    <title>Search Engine</title>
    <description>Search the mailing list at Gmane</description>
    <name>query</name>
    <link>http://search.gmane.org/?group=$group=gmane.comp.python.stackless</link>
  </textinput>
</rdf:RDF>

