C blocks are very similar to Go function literals or Ecmas6 arrow
functions. I was thinking on either using {} or just having it through
identation with ():
So instead of:
def function():
def inner():
# something
loop.call(inner)
You'd do:
def function():
loop.call( lambda (arg1, arg2, **kwargs) :
# something
)
Also, we don't have real CSP - since we have GIL all implementations are
really just toying with the ideas.
The pain point I'm talking about here is such - we introduce a lot of ways
to structure code, but they don't give the benefits present in other
languages. I'm starting to think we have too much cruft in .py
2016-06-21 16:17 GMT+02:00 Omer Katz <[email protected]>:
> I’m not familiar with C blocks and GCD.
> How would Python code look with that approach?
>
> On 20 Jun 2016, at 6:02 PM, Michał Domański <[email protected]> wrote:
>
> So I actually thought about similar approach. I was curious what do you
> think about approach to concurrency similar to what Apple did with C blocks
> and GCD. That is: enable threading but instead of the STM approach have
> fully explicit mutations within atomic blocks
>
> 2016-06-20 16:53 GMT+02:00 Armin Rigo <[email protected]>:
>
>> Hi Omer,
>>
>> On 20 June 2016 at 08:51, Omer Katz <[email protected]> wrote:
>> > As for implementation, if we can trace the code running in the thread
>> and
>> > ensure it's not mutating global state and that CPyExt is never used
>> during
>> > the thread's course we can simply release the GIL when such a thread is
>> run.
>>
>> That's a very hand-wavy and vague description. To start with, how do
>> you define exactly "not mutating global state"? We are not allowed to
>> write to any of the objects that existed before we started the thread?
>> It may be possible to have such an implementation, yes. Actually,
>> that's probably easy: tweak the STM code to crash instead of doing
>> something more complicated when we write to an old object.
>>
>> I'm not sure how useful that would be---or how useful PyParallel is on
>> CPython. Maybe if you can point us to real usages of PyParallel it
>> would be a start.
>>
>>
>> A bientôt,
>>
>> Armin.
>> _______________________________________________
>> pypy-dev mailing list
>> [email protected]
>> https://mail.python.org/mailman/listinfo/pypy-dev
>>
>
>
>
> --
> ---------------------------
> Michał Domański
>
>
>
--
---------------------------
Michał Domański
_______________________________________________
pypy-dev mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-dev