[Stackless] Logic Variable Thread Synchronization PEP

Christian Tismer tismer at tismer.com
Wed Jun 4 02:49:18 CEST 2003


Hi Jim,

> I'd appreciate any feedback the stackless list can provide on the attached
> draft PEP.

Well, I'll try, but not promising to provide what you wanted to see.

...

> The abstarct of the PEP is as follows:
> 
> Stackless Python [1] is an ideal environment within which to implement logic
> variables for thread
> synchronization [2]. 

Please, supply a proof for that.

> The 3 additions required for this are 1) the addition
> of the "unknown" keyword that declares a logic variable, 2) the "final"
> keyword that declares a logic variable to be single-assignment and 3) the
> "=:=" operator that performs a unification of a logic variable with an
> expression.

Again, please supply a proof for that, and also please be aware
of the fact that we will check this proof, thoroughly.

[PEP header dropped]

> Abstract
> 
>     Stackless Python [1] is an ideal environment within which to
>     implement logic variables for thread synchroniziation [2].
>     The 3 additions required for this are 1) the addition of the
>     "unknown" keyword that declares a logic variable, 2) the
>     "final" keyword that declares a logic variable to be single-
>     assignment and 3) the "=:=" operator that performs a 
>     unification of a logic variable with an expression.

I do admit that Stackless Python is an ideal environment for
*something*, but I'm not exactly aware of what this should
be like, exactly. I cannot support your above statements
without requiring a lot of explanation from you, both posted
to my private email, and posted to this list, at the same time.

You must know that Stackless and this list are a special kind
of community. This community does not accept to be claimed
by a single idea of a single person, just by a statement like
that you posted above.
I would like to strongly disencourage you to try this again.
Stackless is not going to follow anyone's path without
thorow, in-depth discussion.
Stackless is a self-contained, autonomous branch of Python,
always trying to follow the main trunk as much as possible.
Stackless cannot be and will not be abused to support a different
paradigm, unless somebody yet-to-be-born convinces me otherwise.

I do not want anybody to abuse Stackless for his/her own needs,
neither directly, nor in an indirect way.
Without a larger set of private discussions, I do regard
this current approach as a possible abuse, which I hereby
strongly reject. Stackless is an entity for itself; it does not
need to lean at anybody else. Stackless *is* an institution
by itself. It is a way of thinking. People who like this
way of thinking are free to use it. People who don't like it
are welcomed to discuss it.
But Stackless is not a vehicle and will never be, to support
anybody else's ideas on top of it, without discussing this
with me in depth.
Yes, if you want it, I'm the BDFL of Stackless, but the "B"
thing might be a bit less than expected.

Having that said, let me go to the content.

> Rationale
> 
>     Stackless Python promises to deliver microthreads.

This is true for 3.0 at least.

>     The semantics of threaded computations are unnecessarily complex.

Please, be more accurate on this one. Which semantics of which
threaded computations are unnecessarily complex, applied to
which computational environments and contexts?

>     Logic variables can replace virtually all other synchronization
>     semantics with the simple and intuitive notions of data flow.
>     Furthermore, implementations of logic variables are stackless.

Please, give a simple proof of this statement.

>     While logic variables can be used to implement logic programming,
>     logic programming is not required for the implementation of
>     logic variables.

Please, elaborate on that, assuming that you really want to
attract people, instead of throwing random statements around that
nobody can follow without your (of course presumed) background.

>     For a full description of the benefits of logic variables in
>     distributed concurrent constraint programming, see the paper 
>     "Efficient Logic Variables for Distributed Computing" [2].

Could you please add a simplified version of that paper,
driven by the intent to make things as simple and clear
as possible?

>     For a description and examples of the new language features 
>     required: "unknown", "final" and "=:=", see Section 2.5.1 [ibid].

Sorry about that. While I do believe in the power of the internet,
and the power of published papers, I don't believe that anybody
on this list is willing to jump to an outside page, in order to read
about the benefits of these new language features you mentioned.

If you want to see them in Stackless, there is exactly one and only
one way:
Post your proposition to this list, also discuss it with me in private
emails if you like, and make the Stackless community like it.
Iff they tell me to implement it, I will implement it.
If not, I will not. That's all about it.

> References
> 
>     [1] PEP 219, Stackless Python, McMillan
>         http://www.python.org/peps/pep-0219.html

Despite the fact that Gordon has done a great deal with (t)his proposal,
it is nowadays hopelessly out of date, since almost all of Stackless'
paradigms have changed a lot since the time of writing.
If you didn't realize this meanwhile, this is really not my fault...

>     [2] Efficient Logic Variables for Distributed Computing,
>         by Haridi,van Roy, Brand, Mehl, Scheidhaur and Smolka 
>         http://www.mozart-oz.org/papers/abstracts/TOPLAS99.html

Will perhaps have a look into this paper, after some more
encouraging input from your side. At the moment, under given
circumstances, this is alas quite unlikely to happen.

kind regards -- chris

-- 
Christian Tismer             :^)   <mailto:tismer at tismer.com>
Mission Impossible 5oftware  :     Have a break! Take a ride on Python's
Johannes-Niemeyer-Weg 9a     :    *Starship* http://starship.python.net/
14109 Berlin                 :     PGP key -> http://wwwkeys.pgp.net/
work +49 30 89 09 53 34  home +49 30 802 86 56  pager +49 173 24 18 776
PGP 0x57F3BF04       9064 F4E1 D754 C2FF 1619  305B C09C 5A3B 57F3 BF04
      whom do you want to sponsor today?   http://www.stackless.com/


_______________________________________________
Stackless mailing list
Stackless at www.tismer.com
http://www.tismer.com/mailman/listinfo/stackless




More information about the Stackless mailing list