On Fri, Mar 13, 2015 at 5:08 AM, Erik Huelsmann <ehu...@gmail.com> wrote:

>
>
>> In the past I'd  thought about embedding Python into our sources, but
>> Python still (after 20 years ...) depends on a global interpreter lock
>> which pretty much kills any chance of lockless thread-safe code.
>>
>
I've embedded Python in several production situations. Mostly, in
high-performance server-side code. That GIL was ever-present.

As part of some work back in the mid-90's, I created a set of patches to
*remove* the GIL. David Beazley has an excellent writeup/analysis/review of
those patches:

http://dabeaz.blogspot.com/2011/08/inside-look-at-gil-removal-patch-of.html

I love Python. I'd suggest (re)writing our client in Python. But I would
*not* suggest embedding it. It can be done, yes. It can help, yes. But it
is simply too tricky/brittle for me to truly recommend it.

Hence my suggestion for Lua, which doesn't have a GIL, as far as I can
> find. Nor does it need manual reference-keeping like is needed with Python
> or Perl. With Lua you can have as many evaluation environments as you want.
> Instantiating them when crossing a certain API boundary to be used by the
> library internals.
>

I don't have direct experience with Lua, but have read/observed it for many
years. This is something that I could get behind as an embedded
*experimental* solution (to move "up" from lower-level C code), based on
what I've read.

>...

Cheers,
-g

Reply via email to