Re: goless

Rob Galanakis <[email protected]> Tue, 3 Jun 2014 16:56:13 -0500
Newsgroups gmane.comp.python.stackless
Message-ID <CABaNhwpkpks9+UJRuXNK3YbM5pw2QR9dRiyEoeLK0tt1iNkorQ@mail.gmail.com>
--===============9064672007457758321==
Content-Type: multipart/alternative; boundary=047d7b6763b28e608504faf594e2

--047d7b6763b28e608504faf594e2
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Yes there is a gevent backend. Has been from day one. You can force one
over the other by setting the GOLESS_BACKEND envvar to 'stackless' or
'gevent'.


On Tue, Jun 3, 2014 at 7:45 AM, Kristj=C3=A1n Valur J=C3=B3nsson <
kristjan-hPzAiOG7rkJWk0Htik3J/[email protected]> wrote:

>  I also think that gevent must be somehow sub-optimal.  I=C2=B4ve seen
> comparisons of python web frameworks where gevent based backends don=E2=
=80=99t
> perform that well in terms of latency.
>
> Waiting for your blog, I=C2=B4m still a bit confused at what you are doin=
g.
>  did you implement goless with a gevent backend?
>
> K
>
>
>
> *From:* [email protected] [mailto:
> [email protected]] *On Behalf Of *Rob Galanakis
> *Sent:* 30. ma=C3=AD 2014 12:47
>
> *To:* The Stackless Python Mailing List
> *Subject:* Re: [Stackless] goless
>
>
>
> I was doing some benchmarking of goless under gevent and stackless. The
> results are pretty astonishing when you do this stuff in the interpreter!=
 I
> will put it on GitHub later today or tomorrow and also write up a blog.
> It's possible our implementation is just not a good one regarding gevent,
> but I sort of doubt it. The stackless/gevent specific code is minimal
> (goless/backends.py) and I don't see anything ugly that we're doing there=
.
> Maybe something is idiomatically very different, or is gevent performance
> just not very good?
>
> Anyway, it should be easy to profile eventually.
>
>
>
> Using backend StacklessBackend
>
> Benchmarking channels:
>
>   0.13s: Sync
>
>   0.14s: Async
>
>   0.13s: Buffered(1000)
>
> Benchmarking select:
>
>   0.29s: No default case.
>
>   0.15s: With default case.
>
>
>
> Using backend GeventBackend
>
> Benchmarking channels:
>
>   0.87s: Sync
>
>   0.83s: Async
>
>   0.82s: Buffered(1000)
>
> Benchmarking select:
>
>   1.12s: No default case.
>
>   0.16s: With default case.
>
>
>
> On Tue, May 27, 2014 at 7:17 AM, Kristj=C3=A1n Valur J=C3=B3nsson <
> kristjan-hPzAiOG7rkJWk0Htik3J/[email protected]> wrote:
>
>  Well, I started doing some documentation using sphinx the other day but
> got sidetracked.
>
> The current documentation lives in the modules and in the unittests.
>
> I guess the only fiddly bit about it currently is to start it up.
> Currently one has to explicitly get the main loop running.  This is becau=
se
> stackless _*used*_ to only allow stackless.run() on the main tasklet.
> The latest versions don=E2=80=99t.
>
> Once that restriction is removed, having the main loop run implicitly muc=
h
> as the gevent library does (when the Hub singleton is requested) is easy.
>
> I need to put that little brick in there, and then everything will run
> smoothly J
>
>
>
> K
>
>
>
> *From:* [email protected] [mailto:
> [email protected]] *On Behalf Of *Aleksandar Radulovic
> *Sent:* 23. ma=C3=AD 2014 11:36
>
>
> *To:* The Stackless Python Mailing List
> *Subject:* Re: [Stackless] goless
>
>
>
> Speaking of which, when can we see some more documentation or examples on
> stacklesslib? ;)
>
>
>
> I was fiddling with it the other day and couldn't find any good enough
> examples of stacklesslib usage..
>
>
>
> Cheers,
>
> alex
>
>
>
> On Tue, May 20, 2014 at 12:13 PM, Kristj=C3=A1n Valur J=C3=B3nsson <
> kristjan-hPzAiOG7rkJWk0Htik3J/[email protected]> wrote:
>
>  You may want to take a look at the latest version of =E2=80=9Cstacklessl=
ib=E2=80=9D,
> particularly the stacklesslib.wait module.  We now have =E2=80=9Cwaitable=
=E2=80=9D
> channels, so that you can do similar things to
>
> select, e.g.
>
>
>
> c1 =3D stacklesslib.wait.WaitChannel()
>
> c2 =3D stacklesslib.wait.WaitChannel()
>
> =E2=80=A6
>
> for c in stacklesslib.wait.iwait([c1, c2]):
>
>    if c is c1:  percolate()
>
>    elif c is c2: promulgate()
>
>
>
> A =E2=80=9CWaitChannel=E2=80=9D is ready when its balance is non-zero.
>
> There are also =E2=80=9CSendable=E2=80=9D and =E2=80=9CReceivable=E2=80=
=9D adapters for WaitChannels to in
> order to wait for either positive or negative balance.
>
>
>
> The stacklesslib.util.QueueChannel() is a channel with a fifo queue, whic=
h
> can be either unbounded (the default) or have a maximum length.  This is,=
 I
> believe, similar to Go=E2=80=99s channels.
>
>
>
> K
>
>
>
>
>
> *From:* [email protected] [mailto:
> [email protected]] *On Behalf Of *Christian Tismer
> *Sent:* 18. ma=C3=AD 2014 00:00
> *To:* The Stackless Python Mailing List
> *Subject:* Re: [Stackless] goless
>
>
>
> On 18.04.14 12:46, Kristj=C3=A1n Valur J=C3=B3nsson wrote:
>
> Hi, I though=E2=80=99t I=E2=80=99d mention here an experimental problem t=
hat a few of my
> colleagues worked on during PyCon:
>
> Goless!
>
> http://goless.readthedocs.org/en/latest/index.html
>
>
>
> It also shows how more complex behavior can be built on top of the
> relatively simple primitives that stackless provides.
>
>
> (a bit late, but anyway better than never)
>
> Yes, quite neat thing.
> This could be used as an interesting example for the Stackless talk.
>
> cheers - Chris
>
> p.s.: actually, I'm studying Go a bit, in order to understand
> how they do stuff, how they lock, how they schedule, ...
>
> --
>
> Christian Tismer             :^)   [email protected]
>
> Software Consulting          :     http://www.stackless.com/
>
> Karl-Liebknecht-Str. 121     :     http://www.pydica.net/
>
> 14482 Potsdam                :     GPG key -> 0xFB7BEE0E
>
> phone +49 173 24 18 776  fax +49 (30) 700143-0023
>
>
> _______________________________________________
> Stackless mailing list
> [email protected]
> http://www.stackless.com/mailman/listinfo/stackless
>
>
>
>
>
> --
> a lex 13 x
> http://a13x.net | @a13xnet
>
>
> _______________________________________________
> Stackless mailing list
> [email protected]
> http://www.stackless.com/mailman/listinfo/stackless
>
>
>
> _______________________________________________
> Stackless mailing list
> [email protected]
> http://www.stackless.com/mailman/listinfo/stackless
>

--047d7b6763b28e608504faf594e2
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Yes there is a gevent backend. Has been from day one. You =
can force one over the other by setting=C2=A0the GOLESS_BACKEND envvar to &=
#39;stackless&#39; or &#39;gevent&#39;.</div><div class=3D"gmail_extra"><br=
><br><div class=3D"gmail_quote">
On Tue, Jun 3, 2014 at 7:45 AM, Kristj=C3=A1n Valur J=C3=B3nsson <span dir=
=3D"ltr">&lt;<a href=3D"mailto:kristjan-hPzAiOG7rkJWk0Htik3J/[email protected]" target=3D"_blank">kri=
stjan-hPzAiOG7rkJWk0Htik3J/[email protected]</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quot=
e" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">






<div lang=3D"EN-US" link=3D"blue" vlink=3D"purple">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1f497d">I also think that gevent =
must be somehow sub-optimal.=C2=A0 I=C2=B4ve seen comparisons of python web=
 frameworks where gevent based backends don=E2=80=99t perform that well in
 terms of latency.<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1f497d">Waiting for your blog, I=
=C2=B4m still a bit confused at what you are doing. =C2=A0did you implement=
 goless with a gevent backend?<u></u><u></u></span></p>

<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1f497d">K<u></u><u></u></span></p=
>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1f497d"><u></u>=C2=A0<u></u></spa=
n></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #e1e1e1 1.0pt;padding:3.0pt 0cm =
0cm 0cm">
<p class=3D"MsoNormal"><b><span style=3D"font-size:11.0pt;font-family:&quot=
;Calibri&quot;,&quot;sans-serif&quot;">From:</span></b><span style=3D"font-=
size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;"> <a hre=
f=3D"mailto:[email protected]" target=3D"_blank">stackless-bo=
[email protected]</a> [mailto:<a href=3D"mailto:stackless-bounces@stackle=
ss.com" target=3D"_blank">[email protected]</a>]
<b>On Behalf Of </b>Rob Galanakis<br>
<b>Sent:</b> 30. ma=C3=AD 2014 12:47</span></p><div><div class=3D"h5"><br>
<b>To:</b> The Stackless Python Mailing List<br>
<b>Subject:</b> Re: [Stackless] goless<u></u><u></u></div></div><p></p>
</div>
</div><div><div class=3D"h5">
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<div>
<p class=3D"MsoNormal">I was doing some benchmarking of goless under gevent=
 and stackless. The results are pretty astonishing when you do this stuff i=
n the interpreter! I will put it on GitHub later today or tomorrow and also=
 write up a blog. It&#39;s possible our
 implementation is just not a good one regarding gevent, but I sort of doub=
t it. The stackless/gevent specific code is minimal (goless/backends.py) an=
d I don&#39;t see anything ugly that we&#39;re doing there. Maybe something=
 is idiomatically very different, or is
 gevent performance just not very good?<u></u><u></u></p>
<div>
<p class=3D"MsoNormal">Anyway, it should be easy to profile eventually.<u><=
/u><u></u></p>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<div>
<div>
<p class=3D"MsoNormal">Using backend StacklessBackend<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">Benchmarking channels:<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0 0.13s: Sync<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0 0.14s: Async<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0 0.13s: Buffered(1000)<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">Benchmarking select:<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0 0.29s: No default case.<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0 0.15s: With default case.<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal">Using backend GeventBackend<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">Benchmarking channels:<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0 0.87s: Sync<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0 0.83s: Async<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0 0.82s: Buffered(1000)<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">Benchmarking select:<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0 1.12s: No default case.<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0 0.16s: With default case.<u></u><u></u></p>
</div>
</div>
</div>
</div>
</div>
<div>
<p class=3D"MsoNormal" style=3D"margin-bottom:12.0pt"><u></u>=C2=A0<u></u><=
/p>
<div>
<p class=3D"MsoNormal">On Tue, May 27, 2014 at 7:17 AM, Kristj=C3=A1n Valur=
 J=C3=B3nsson &lt;<a href=3D"mailto:kristjan-hPzAiOG7rkJWk0Htik3J/[email protected]" target=3D"_blank=
">kristjan-hPzAiOG7rkJWk0Htik3J/[email protected]</a>&gt; wrote:<u></u><u></u></p>
<blockquote style=3D"border:none;border-left:solid #cccccc 1.0pt;padding:0c=
m 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm">
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1f497d">Well, I started doing som=
e documentation using sphinx the other day but got sidetracked.</span><u></=
u><u></u></p>

<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1f497d">The current documentation=
 lives in the modules and in the unittests.</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1f497d">I guess the only fiddly b=
it about it currently is to start it up.=C2=A0 Currently one has to explici=
tly
 get the main loop running. =C2=A0This is because stackless _<i>used</i>_ t=
o only allow stackless.run() on the main tasklet.=C2=A0 The latest versions=
 don=E2=80=99t.</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1f497d">Once that restriction is =
removed, having the main loop run implicitly much as the gevent library
 does (when the Hub singleton is requested) is easy.</span><u></u><u></u></=
p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1f497d">I need to put that little=
 brick in there, and then everything will run smoothly
</span><span style=3D"font-size:11.0pt;font-family:Wingdings;color:#1f497d"=
>J</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1f497d">=C2=A0</span><u></u><u></=
u></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1f497d">K</span><u></u><u></u></p=
>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1f497d">=C2=A0</span><u></u><u></=
u></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #e1e1e1 1.0pt;padding:3.0pt 0cm =
0cm 0cm">
<p class=3D"MsoNormal"><b><span style=3D"font-size:11.0pt;font-family:&quot=
;Calibri&quot;,&quot;sans-serif&quot;">From:</span></b><span style=3D"font-=
size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;">
<a href=3D"mailto:[email protected]" target=3D"_blank">stackl=
[email protected]</a> [mailto:<a href=3D"mailto:stackless-bounces@s=
tackless.com" target=3D"_blank">[email protected]</a>]
<b>On Behalf Of </b>Aleksandar Radulovic<br>
<b>Sent:</b> 23. ma=C3=AD 2014 11:36</span><u></u><u></u></p>
<div>
<div>
<p class=3D"MsoNormal"><br>
<b>To:</b> The Stackless Python Mailing List<br>
<b>Subject:</b> Re: [Stackless] goless<u></u><u></u></p>
</div>
</div>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
<div>
<p class=3D"MsoNormal">Speaking of which, when can we see some more documen=
tation or examples on stacklesslib? ;)<u></u><u></u></p>
<div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">I was fiddling with it the other day and couldn&#39;=
t find any good enough examples of stacklesslib usage..<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">Cheers,<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">alex<u></u><u></u></p>
</div>
</div>
<div>
<p class=3D"MsoNormal" style=3D"margin-bottom:12.0pt">=C2=A0<u></u><u></u><=
/p>
<div>
<p class=3D"MsoNormal">On Tue, May 20, 2014 at 12:13 PM, Kristj=C3=A1n Valu=
r J=C3=B3nsson &lt;<a href=3D"mailto:kristjan-hPzAiOG7rkJWk0Htik3J/[email protected]" target=3D"_blan=
k">kristjan-hPzAiOG7rkJWk0Htik3J/[email protected]</a>&gt; wrote:<u></u><u></u></p>
<blockquote style=3D"border:none;border-left:solid #cccccc 1.0pt;padding:0c=
m 0cm 0cm 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0cm;margin-=
bottom:5.0pt">
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"color:#1f497d">You may want to take a=
 look at the latest version of =E2=80=9Cstacklesslib=E2=80=9D, particularly=
 the stacklesslib.wait module.=C2=A0 We now have =E2=80=9Cwaitable=E2=80=9D=
 channels, so
 that you can do similar things to</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"color:#1f497d">select, e.g.</span><u>=
</u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"color:#1f497d">=C2=A0</span><u></u><u=
></u></p>
<p class=3D"MsoNormal"><span style=3D"color:#1f497d">c1 =3D stacklesslib.wa=
it.WaitChannel()</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"color:#1f497d">c2 =3D stacklesslib.wa=
it.WaitChannel()</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"color:#1f497d">=E2=80=A6</span><u></u=
><u></u></p>
<p class=3D"MsoNormal"><span style=3D"color:#1f497d">for c in stacklesslib.=
wait.iwait([c1, c2]):</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"color:#1f497d">=C2=A0=C2=A0 if c is c=
1:=C2=A0 percolate()</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"color:#1f497d">=C2=A0=C2=A0 elif c is=
 c2: promulgate()</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"color:#1f497d">=C2=A0</span><u></u><u=
></u></p>
<p class=3D"MsoNormal"><span style=3D"color:#1f497d">A =E2=80=9CWaitChannel=
=E2=80=9D is ready when its balance is non-zero.</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"color:#1f497d">There are also =E2=80=
=9CSendable=E2=80=9D and =E2=80=9CReceivable=E2=80=9D adapters for WaitChan=
nels to in order to wait for either positive or negative balance.</span><u>=
</u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"color:#1f497d">=C2=A0</span><u></u><u=
></u></p>
<p class=3D"MsoNormal"><span style=3D"color:#1f497d">The stacklesslib.util.=
QueueChannel() is a channel with a fifo queue, which can be either unbounde=
d (the default) or have a maximum length.=C2=A0 This is,
 I believe, similar to Go=E2=80=99s channels.</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"color:#1f497d">=C2=A0</span><u></u><u=
></u></p>
<p class=3D"MsoNormal"><span style=3D"color:#1f497d">K =C2=A0</span><u></u>=
<u></u></p>
<p class=3D"MsoNormal"><span style=3D"color:#1f497d">=C2=A0</span><u></u><u=
></u></p>
<p class=3D"MsoNormal"><span style=3D"color:#1f497d">=C2=A0</span><u></u><u=
></u></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #e1e1e1 1.0pt;padding:3.0pt 0cm =
0cm 0cm">
<p class=3D"MsoNormal"><b>From:</b>
<a href=3D"mailto:[email protected]" target=3D"_blank">stackl=
[email protected]</a> [mailto:<a href=3D"mailto:stackless-bounces@s=
tackless.com" target=3D"_blank">[email protected]</a>]
<b>On Behalf Of </b>Christian Tismer<br>
<b>Sent:</b> 18. ma=C3=AD 2014 00:00<br>
<b>To:</b> The Stackless Python Mailing List<br>
<b>Subject:</b> Re: [Stackless] goless<u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
<div>
<p class=3D"MsoNormal">On 18.04.14 12:46, Kristj=C3=A1n Valur J=C3=B3nsson =
wrote:<u></u><u></u></p>
</div>
<blockquote style=3D"margin-top:5.0pt;margin-bottom:5.0pt">
<p class=3D"MsoNormal">Hi, I though=E2=80=99t I=E2=80=99d mention here an e=
xperimental problem that a few of my colleagues worked on during PyCon:<u><=
/u><u></u></p>
<p class=3D"MsoNormal">Goless!<u></u><u></u></p>
<p class=3D"MsoNormal"><a href=3D"http://goless.readthedocs.org/en/latest/i=
ndex.html" target=3D"_blank">http://goless.readthedocs.org/en/latest/index.=
html</a><u></u><u></u></p>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
<p class=3D"MsoNormal">It also shows how more complex behavior can be built=
 on top of the relatively simple primitives that stackless provides.<u></u>=
<u></u></p>
</blockquote>
<p class=3D"MsoNormal" style=3D"margin-bottom:12.0pt"><br>
(a bit late, but anyway better than never)<br>
<br>
Yes, quite neat thing.<br>
This could be used as an interesting example for the Stackless talk.<br>
<br>
cheers - Chris<br>
<br>
p.s.: actually, I&#39;m studying Go a bit, in order to understand<br>
how they do stuff, how they lock, how they schedule, ...<u></u><u></u></p>
<pre>-- <u></u><u></u></pre>
<pre>Christian Tismer=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 :^)=C2=A0=C2=A0 <a href=3D"mailto:[email protected]" =
target=3D"_blank">[email protected]</a><u></u><u></u></pre>
<pre>Software Consulting=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 :=C2=A0=C2=A0=C2=A0=C2=A0 <a href=3D"http://www.stackless.com/" target=
=3D"_blank">http://www.stackless.com/</a><u></u><u></u></pre>
<pre>Karl-Liebknecht-Str. 121=C2=A0=C2=A0=C2=A0=C2=A0 :=C2=A0=C2=A0=C2=A0=
=C2=A0 <a href=3D"http://www.pydica.net/" target=3D"_blank">http://www.pydi=
ca.net/</a><u></u><u></u></pre>
<pre>14482 Potsdam=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 :=C2=A0=C2=A0=C2=A0=C2=A0 GPG key -&gt; 0=
xFB7BEE0E<u></u><u></u></pre>
<pre>phone <a href=3D"tel:%2B49%20173%2024%2018%20776" target=3D"_blank">+4=
9 173 24 18 776</a>=C2=A0 fax <a href=3D"tel:%2B49%20%2830%29%20700143-0023=
" target=3D"_blank">+49 (30) 700143-0023</a><u></u><u></u></pre>
</div>
</div>
</div>
</div>
</div>
<p class=3D"MsoNormal"><br>
_______________________________________________<br>
Stackless mailing list<br>
<a href=3D"mailto:[email protected]" target=3D"_blank">Stackless@stac=
kless.com</a><br>
<a href=3D"http://www.stackless.com/mailman/listinfo/stackless" target=3D"_=
blank">http://www.stackless.com/mailman/listinfo/stackless</a><u></u><u></u=
></p>
</blockquote>
</div>
<p class=3D"MsoNormal"><br>
<br clear=3D"all">
<u></u><u></u></p>
<div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
</div>
<p class=3D"MsoNormal">--
<br>
a lex 13 x<br>
<a href=3D"http://a13x.net" target=3D"_blank">http://a13x.net</a> | @a13xne=
t <u></u><u></u></p>
</div>
</div>
</div>
</div>
</div>
</div>
<p class=3D"MsoNormal"><br>
_______________________________________________<br>
Stackless mailing list<br>
<a href=3D"mailto:[email protected]" target=3D"_blank">Stackless@stac=
kless.com</a><br>
<a href=3D"http://www.stackless.com/mailman/listinfo/stackless" target=3D"_=
blank">http://www.stackless.com/mailman/listinfo/stackless</a><u></u><u></u=
></p>
</blockquote>
</div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
</div></div></div>
</div>
</div>

<br>_______________________________________________<br>
Stackless mailing list<br>
<a href=3D"mailto:[email protected]">[email protected]</a><br>
<a href=3D"http://www.stackless.com/mailman/listinfo/stackless" target=3D"_=
blank">http://www.stackless.com/mailman/listinfo/stackless</a><br></blockqu=
ote></div><br></div>

--047d7b6763b28e608504faf594e2--


--===============9064672007457758321==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Stackless mailing list
[email protected]
http://www.stackless.com/mailman/listinfo/stackless
--===============9064672007457758321==--