Re: Problem with pyObjC and Swift

John Buckley <[email protected]> Thu, 30 Mar 2017 11:11:40 +0000
Newsgroups gmane.comp.python.pyobjc.devel
Message-ID <CAJDWg5Em7kP4GR++gYLa+qNEbjni88K9PmYYA3XmYdO3tFRa3Q@mail.gmail.com>
--===============1257257949447471176==
Content-Type: multipart/alternative; boundary=f403045e9da8835171054bf0c20c

--f403045e9da8835171054bf0c20c
Content-Type: text/plain; charset=UTF-8

Plugins written in Swift don't strike me as a good idea until we have ABI
stability. What if two plugins are loaded with different swift runtimes?
You can work-around that if your architecture loads plugins in a separate
process and communicates via XPC (or similar).

I work on a plugin for FCPX. We considered Swift, but it's a no-go until we
have ABI stability for the above reason.

Cheers,

John
--
John Buckley LBIPP M.Eng. Ph.D.
+44 7740 099518
johnbuckleyphotography.uk


On Thu, 30 Mar 2017 at 10:27 Georg Seifert <[email protected]> wrote:

> Hi
>
> I have an app written in ObjectiveC. It allows loading plugins from third
> parties. Most of those are written in python, some in ObjectiveC. Now
> someone tries to write on in Swift. That plugin works as expected but all
> the python plugin don't work any more and crash the app. At least when the
> plugin is build with Xcode 8 and Swift 3. Compiling it on Xcode 7 (macOS
> 10.10) works fine. Running the Xcode 8 version on 10.10 crashes, too.
>
> The app links agains the system python framework.
>
> Anyone has knows anything about this?
>
> Thanks
> Georg Seifert
>
> p.s. I get backtraces like this:
>
> Calling a method on an python object inheriting from NSObject
>
> #0      0x0000000100a56ed7 in ___lldb_unnamed_function679$$Python ()
> #1      0x0000000100a584f1 in PyDict_SetItemString ()
> #2      0x00000001098319a5 in PyObjCClass_CheckMethodList ()
> #3      0x0000000109832543 in ___lldb_unnamed_function453$$_objc.so ()
> #4      0x0000000100aa3238 in ___lldb_unnamed_function1431$$Python ()
> #5      0x0000000100aa9d8c in PyEval_EvalFrameEx ()
> #6      0x0000000100aa6352 in PyEval_EvalCodeEx ()
> #7      0x0000000100a4a5de in ___lldb_unnamed_function510$$Python ()
> #8      0x0000000100a2c50a in PyObject_Call ()
> #9      0x0000000109831c04 in PyObjCClass_CheckMethodList ()
> #10     0x00000001098361ed in PyObjCObject_New ()
> #11     0x00000001098368fa in ___lldb_unnamed_function487$$_objc.so ()
> #12     0x000000010983955d in pythonify_c_value ()
> #13     0x000000010982654a in ___lldb_unnamed_function373$$_objc.so ()
> #14     0x00007fff87356a07 in ffi_closure_unix64_inner ()
> #15     0x00007fff873560c6 in ffi_closure_unix64 ()
>
> or:
>
> calling [NSBundle principalClass] on the plugin containing the python class
>
> #0      0x0000000100a99bd3 in ___lldb_unnamed_symbol679$$Python ()
> #1      0x0000000100a9b1cd in PyDict_SetItemString ()
> #2      0x000000010e6a21cb in PyObjCClass_CheckMethodList ()
> #3      0x000000010e6a51a4 in PyObjCClass_FindSelector ()
> #4      0x000000010e6b0aef in PyObjCSelector_FromFunction ()
> #5      0x000000010e6a3005 in ___lldb_unnamed_symbol454$$_objc.so ()
> #6      0x0000000100a9fb14 in PyObject_SetAttr ()
> #7      0x0000000100ae97a6 in PyEval_EvalFrameEx ()
> #8      0x0000000100ae79be in PyEval_EvalCodeEx ()
> #9      0x0000000100ae7367 in PyEval_EvalCode ()
> #10     0x0000000100afc6bd in PyImport_ExecCodeModuleEx ()
> #11     0x0000000100aff3c7 in ___lldb_unnamed_symbol1546$$Python ()
> #12     0x0000000100afee2c in ___lldb_unnamed_symbol1545$$Python ()
> #13     0x0000000100afea00 in ___lldb_unnamed_symbol1543$$Python ()
> #14     0x0000000100afdc10 in PyImport_ImportModuleLevel ()
> #15     0x0000000100ae3006 in ___lldb_unnamed_symbol1412$$Python ()
> #16     0x0000000100a6f6fb in PyObject_Call ()
> #17     0x0000000100aeddbb in PyEval_CallObjectWithKeywords ()
> #18     0x0000000100ae9c0f in PyEval_EvalFrameEx ()
> #19     0x0000000100ae79be in PyEval_EvalCodeEx ()
> #20     0x0000000100ae7367 in PyEval_EvalCode ()
> #21     0x0000000100afc6bd in PyImport_ExecCodeModuleEx ()
> #22     0x0000000100aff3c7 in ___lldb_unnamed_symbol1546$$Python ()
> #23     0x0000000100aff64f in ___lldb_unnamed_symbol1548$$Python ()
> #24     0x0000000100afee2c in ___lldb_unnamed_symbol1545$$Python ()
> #25     0x0000000100afea41 in ___lldb_unnamed_symbol1543$$Python ()
> #26     0x0000000100afdbd8 in PyImport_ImportModuleLevel ()
> #27     0x0000000100ae3006 in ___lldb_unnamed_symbol1412$$Python ()
> #28     0x0000000100a6f6fb in PyObject_Call ()
> #29     0x0000000100aeddbb in PyEval_CallObjectWithKeywords ()
> #30     0x0000000100ae9c0f in PyEval_EvalFrameEx ()
> #31     0x0000000100ae79be in PyEval_EvalCodeEx ()
> #32     0x0000000100ae7367 in PyEval_EvalCode ()
> #33     0x0000000100afc6bd in PyImport_ExecCodeModuleEx ()
> #34     0x0000000100aff4e1 in ___lldb_unnamed_symbol1547$$Python ()
> #35     0x0000000100aff64f in ___lldb_unnamed_symbol1548$$Python ()
> #36     0x0000000100afee2c in ___lldb_unnamed_symbol1545$$Python ()
> #37     0x0000000100afea00 in ___lldb_unnamed_symbol1543$$Python ()
> #38     0x0000000100afdbd8 in PyImport_ImportModuleLevel ()
> #39     0x0000000100ae3006 in ___lldb_unnamed_symbol1412$$Python ()
> #40     0x0000000100a6f6fb in PyObject_Call ()
> #41     0x0000000100aeddbb in PyEval_CallObjectWithKeywords ()
> #42     0x0000000100ae9c0f in PyEval_EvalFrameEx ()
> #43     0x0000000100ae79be in PyEval_EvalCodeEx ()
> #44     0x0000000100ae7367 in PyEval_EvalCode ()
> #45     0x0000000100b075dd in ___lldb_unnamed_symbol1599$$Python ()
> #46     0x0000000100b07680 in PyRun_FileExFlags ()
> #47     0x0000000100ae3cbd in ___lldb_unnamed_symbol1427$$Python ()
> #48     0x0000000100aeb4d4 in PyEval_EvalFrameEx ()
> #49     0x0000000100ae79be in PyEval_EvalCodeEx ()
> #50     0x0000000100aee3e2 in ___lldb_unnamed_symbol1476$$Python ()
> #51     0x0000000100aeae4e in PyEval_EvalFrameEx ()
> #52     0x0000000100ae79be in PyEval_EvalCodeEx ()
> #53     0x0000000100ae7367 in PyEval_EvalCode ()
> #54     0x0000000100b075dd in ___lldb_unnamed_symbol1599$$Python ()
> #55     0x0000000100b07680 in PyRun_FileExFlags ()
> #56     0x0000000100b0890a in PyRun_File ()
> #57     0x000000010e5bea86 in ___lldb_unnamed_symbol1$$plugin ()
> #58     0x00000001002cfa1b in
> ImageLoaderMachO::doModInitFunctions(ImageLoader::LinkContext const&) ()
> #59     0x00000001002cfc1e in
> ImageLoaderMachO::doInitialization(ImageLoader::LinkContext const&) ()
> #60     0x00000001002cb4aa in
> ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&,
> unsigned int, char const*, ImageLoader::InitializerTimingList&,
> ImageLoader::UninitedUpwards&) ()
> #61     0x00000001002ca524 in
> ImageLoader::processInitializers(ImageLoader::LinkContext const&, unsigned
> int, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) ()
> #62     0x00000001002ca5b9 in
> ImageLoader::runInitializers(ImageLoader::LinkContext const&,
> ImageLoader::InitializerTimingList&) ()
> #63     0x00000001002bf7cd in dyld::runInitializers(ImageLoader*) ()
> #64     0x00000001002c73ec in dlopen ()
> #65     0x00007fffaa2ac832 in dlopen ()
> #66     0x00007fff94b7a249 in _CFBundleDlfcnLoadBundle ()
> #67     0x00007fff94b7a0ca in _CFBundleLoadExecutableAndReturnError ()
> #68     0x00007fff9656283f in _NSBundleLoadCode ()
> #69     0x00007fff96562425 in -[NSBundle loadAndReturnError:] ()
> #70     0x00007fff965aca16 in -[NSBundle principalClass] ()
>
>
>
> ------------------------------------------------------------------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> _______________________________________________
> Pyobjc-dev mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/pyobjc-dev
>

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

<div dir=3D"ltr">Plugins written in Swift don&#39;t strike me as a good ide=
a until we have ABI stability. What if two plugins are loaded with differen=
t swift runtimes? You can work-around that if your architecture loads plugi=
ns in a separate process and communicates via XPC (or similar).<div><br></d=
iv><div>I work on a plugin for FCPX. We considered Swift, but it&#39;s a no=
-go until we have ABI stability for the above reason.</div><div><br></div><=
div>Cheers,</div><div><br></div><div>John</div><div><div class=3D"GmSign"><=
div dir=3D"ltr"><div><div dir=3D"ltr"><div><div dir=3D"ltr"><div><div dir=
=3D"ltr"><div><div dir=3D"ltr"><div><div dir=3D"ltr"><div><div dir=3D"ltr">=
<div><div dir=3D"ltr"><div><div dir=3D"ltr"><div><div dir=3D"ltr"><div dir=
=3D"ltr"><div dir=3D"ltr"><div dir=3D"ltr"><span style=3D"font-size:12.8px"=
>--</span></div><div dir=3D"ltr"><span style=3D"font-size:12.8px">John Buck=
ley LBIPP=C2=A0</span><span style=3D"color:rgb(33,33,33);font-family:&quot;=
Helvetica Neue&quot;,Helvetica,Arial,sans-serif;font-size:13px">M.Eng. Ph.D=
.</span><br></div><div dir=3D"ltr"><span style=3D"font-size:12.8px">+44 774=
0 099518</span><br></div><div dir=3D"ltr"><a href=3D"http://johnbuckleyphot=
ography.uk" target=3D"_blank">johnbuckleyphotography.uk</a><br></div><div d=
ir=3D"ltr"><br></div></div></div></div></div></div></div></div></div></div>=
</div></div></div></div></div></div></div></div></div></div></div></div></d=
iv></div></div><br><div class=3D"gmail_quote"><div dir=3D"ltr">On Thu, 30 M=
ar 2017 at 10:27 Georg Seifert &lt;<a href=3D"mailto:[email protected]">=
[email protected]</a>&gt; wrote:<br></div><blockquote class=3D"gmail_quo=
te" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"=
>Hi<br class=3D"gmail_msg">
<br class=3D"gmail_msg">
I have an app written in ObjectiveC. It allows loading plugins from third p=
arties. Most of those are written in python, some in ObjectiveC. Now someon=
e tries to write on in Swift. That plugin works as expected but all the pyt=
hon plugin don&#39;t work any more and crash the app. At least when the plu=
gin is build with Xcode 8 and Swift 3. Compiling it on Xcode 7 (macOS 10.10=
) works fine. Running the Xcode 8 version on 10.10 crashes, too.<br class=
=3D"gmail_msg">
<br class=3D"gmail_msg">
The app links agains the system python framework.<br class=3D"gmail_msg">
<br class=3D"gmail_msg">
Anyone has knows anything about this?<br class=3D"gmail_msg">
<br class=3D"gmail_msg">
Thanks<br class=3D"gmail_msg">
Georg Seifert<br class=3D"gmail_msg">
<br class=3D"gmail_msg">
p.s. I get backtraces like this:<br class=3D"gmail_msg">
<br class=3D"gmail_msg">
Calling a method on an python object inheriting from NSObject<br class=3D"g=
mail_msg">
<br class=3D"gmail_msg">
#0=C2=A0 =C2=A0 =C2=A0 0x0000000100a56ed7 in ___lldb_unnamed_function679$$P=
ython ()<br class=3D"gmail_msg">
#1=C2=A0 =C2=A0 =C2=A0 0x0000000100a584f1 in PyDict_SetItemString ()<br cla=
ss=3D"gmail_msg">
#2=C2=A0 =C2=A0 =C2=A0 0x00000001098319a5 in PyObjCClass_CheckMethodList ()=
<br class=3D"gmail_msg">
#3=C2=A0 =C2=A0 =C2=A0 0x0000000109832543 in ___lldb_unnamed_function453$$_=
objc.so ()<br class=3D"gmail_msg">
#4=C2=A0 =C2=A0 =C2=A0 0x0000000100aa3238 in ___lldb_unnamed_function1431$$=
Python ()<br class=3D"gmail_msg">
#5=C2=A0 =C2=A0 =C2=A0 0x0000000100aa9d8c in PyEval_EvalFrameEx ()<br class=
=3D"gmail_msg">
#6=C2=A0 =C2=A0 =C2=A0 0x0000000100aa6352 in PyEval_EvalCodeEx ()<br class=
=3D"gmail_msg">
#7=C2=A0 =C2=A0 =C2=A0 0x0000000100a4a5de in ___lldb_unnamed_function510$$P=
ython ()<br class=3D"gmail_msg">
#8=C2=A0 =C2=A0 =C2=A0 0x0000000100a2c50a in PyObject_Call ()<br class=3D"g=
mail_msg">
#9=C2=A0 =C2=A0 =C2=A0 0x0000000109831c04 in PyObjCClass_CheckMethodList ()=
<br class=3D"gmail_msg">
#10=C2=A0 =C2=A0 =C2=A00x00000001098361ed in PyObjCObject_New ()<br class=
=3D"gmail_msg">
#11=C2=A0 =C2=A0 =C2=A00x00000001098368fa in ___lldb_unnamed_function487$$_=
objc.so ()<br class=3D"gmail_msg">
#12=C2=A0 =C2=A0 =C2=A00x000000010983955d in pythonify_c_value ()<br class=
=3D"gmail_msg">
#13=C2=A0 =C2=A0 =C2=A00x000000010982654a in ___lldb_unnamed_function373$$_=
objc.so ()<br class=3D"gmail_msg">
#14=C2=A0 =C2=A0 =C2=A00x00007fff87356a07 in ffi_closure_unix64_inner ()<br=
 class=3D"gmail_msg">
#15=C2=A0 =C2=A0 =C2=A00x00007fff873560c6 in ffi_closure_unix64 ()<br class=
=3D"gmail_msg">
<br class=3D"gmail_msg">
or:<br class=3D"gmail_msg">
<br class=3D"gmail_msg">
calling [NSBundle principalClass] on the plugin containing the python class=
<br class=3D"gmail_msg">
<br class=3D"gmail_msg">
#0=C2=A0 =C2=A0 =C2=A0 0x0000000100a99bd3 in ___lldb_unnamed_symbol679$$Pyt=
hon ()<br class=3D"gmail_msg">
#1=C2=A0 =C2=A0 =C2=A0 0x0000000100a9b1cd in PyDict_SetItemString ()<br cla=
ss=3D"gmail_msg">
#2=C2=A0 =C2=A0 =C2=A0 0x000000010e6a21cb in PyObjCClass_CheckMethodList ()=
<br class=3D"gmail_msg">
#3=C2=A0 =C2=A0 =C2=A0 0x000000010e6a51a4 in PyObjCClass_FindSelector ()<br=
 class=3D"gmail_msg">
#4=C2=A0 =C2=A0 =C2=A0 0x000000010e6b0aef in PyObjCSelector_FromFunction ()=
<br class=3D"gmail_msg">
#5=C2=A0 =C2=A0 =C2=A0 0x000000010e6a3005 in ___lldb_unnamed_symbol454$$_ob=
jc.so ()<br class=3D"gmail_msg">
#6=C2=A0 =C2=A0 =C2=A0 0x0000000100a9fb14 in PyObject_SetAttr ()<br class=
=3D"gmail_msg">
#7=C2=A0 =C2=A0 =C2=A0 0x0000000100ae97a6 in PyEval_EvalFrameEx ()<br class=
=3D"gmail_msg">
#8=C2=A0 =C2=A0 =C2=A0 0x0000000100ae79be in PyEval_EvalCodeEx ()<br class=
=3D"gmail_msg">
#9=C2=A0 =C2=A0 =C2=A0 0x0000000100ae7367 in PyEval_EvalCode ()<br class=3D=
"gmail_msg">
#10=C2=A0 =C2=A0 =C2=A00x0000000100afc6bd in PyImport_ExecCodeModuleEx ()<b=
r class=3D"gmail_msg">
#11=C2=A0 =C2=A0 =C2=A00x0000000100aff3c7 in ___lldb_unnamed_symbol1546$$Py=
thon ()<br class=3D"gmail_msg">
#12=C2=A0 =C2=A0 =C2=A00x0000000100afee2c in ___lldb_unnamed_symbol1545$$Py=
thon ()<br class=3D"gmail_msg">
#13=C2=A0 =C2=A0 =C2=A00x0000000100afea00 in ___lldb_unnamed_symbol1543$$Py=
thon ()<br class=3D"gmail_msg">
#14=C2=A0 =C2=A0 =C2=A00x0000000100afdc10 in PyImport_ImportModuleLevel ()<=
br class=3D"gmail_msg">
#15=C2=A0 =C2=A0 =C2=A00x0000000100ae3006 in ___lldb_unnamed_symbol1412$$Py=
thon ()<br class=3D"gmail_msg">
#16=C2=A0 =C2=A0 =C2=A00x0000000100a6f6fb in PyObject_Call ()<br class=3D"g=
mail_msg">
#17=C2=A0 =C2=A0 =C2=A00x0000000100aeddbb in PyEval_CallObjectWithKeywords =
()<br class=3D"gmail_msg">
#18=C2=A0 =C2=A0 =C2=A00x0000000100ae9c0f in PyEval_EvalFrameEx ()<br class=
=3D"gmail_msg">
#19=C2=A0 =C2=A0 =C2=A00x0000000100ae79be in PyEval_EvalCodeEx ()<br class=
=3D"gmail_msg">
#20=C2=A0 =C2=A0 =C2=A00x0000000100ae7367 in PyEval_EvalCode ()<br class=3D=
"gmail_msg">
#21=C2=A0 =C2=A0 =C2=A00x0000000100afc6bd in PyImport_ExecCodeModuleEx ()<b=
r class=3D"gmail_msg">
#22=C2=A0 =C2=A0 =C2=A00x0000000100aff3c7 in ___lldb_unnamed_symbol1546$$Py=
thon ()<br class=3D"gmail_msg">
#23=C2=A0 =C2=A0 =C2=A00x0000000100aff64f in ___lldb_unnamed_symbol1548$$Py=
thon ()<br class=3D"gmail_msg">
#24=C2=A0 =C2=A0 =C2=A00x0000000100afee2c in ___lldb_unnamed_symbol1545$$Py=
thon ()<br class=3D"gmail_msg">
#25=C2=A0 =C2=A0 =C2=A00x0000000100afea41 in ___lldb_unnamed_symbol1543$$Py=
thon ()<br class=3D"gmail_msg">
#26=C2=A0 =C2=A0 =C2=A00x0000000100afdbd8 in PyImport_ImportModuleLevel ()<=
br class=3D"gmail_msg">
#27=C2=A0 =C2=A0 =C2=A00x0000000100ae3006 in ___lldb_unnamed_symbol1412$$Py=
thon ()<br class=3D"gmail_msg">
#28=C2=A0 =C2=A0 =C2=A00x0000000100a6f6fb in PyObject_Call ()<br class=3D"g=
mail_msg">
#29=C2=A0 =C2=A0 =C2=A00x0000000100aeddbb in PyEval_CallObjectWithKeywords =
()<br class=3D"gmail_msg">
#30=C2=A0 =C2=A0 =C2=A00x0000000100ae9c0f in PyEval_EvalFrameEx ()<br class=
=3D"gmail_msg">
#31=C2=A0 =C2=A0 =C2=A00x0000000100ae79be in PyEval_EvalCodeEx ()<br class=
=3D"gmail_msg">
#32=C2=A0 =C2=A0 =C2=A00x0000000100ae7367 in PyEval_EvalCode ()<br class=3D=
"gmail_msg">
#33=C2=A0 =C2=A0 =C2=A00x0000000100afc6bd in PyImport_ExecCodeModuleEx ()<b=
r class=3D"gmail_msg">
#34=C2=A0 =C2=A0 =C2=A00x0000000100aff4e1 in ___lldb_unnamed_symbol1547$$Py=
thon ()<br class=3D"gmail_msg">
#35=C2=A0 =C2=A0 =C2=A00x0000000100aff64f in ___lldb_unnamed_symbol1548$$Py=
thon ()<br class=3D"gmail_msg">
#36=C2=A0 =C2=A0 =C2=A00x0000000100afee2c in ___lldb_unnamed_symbol1545$$Py=
thon ()<br class=3D"gmail_msg">
#37=C2=A0 =C2=A0 =C2=A00x0000000100afea00 in ___lldb_unnamed_symbol1543$$Py=
thon ()<br class=3D"gmail_msg">
#38=C2=A0 =C2=A0 =C2=A00x0000000100afdbd8 in PyImport_ImportModuleLevel ()<=
br class=3D"gmail_msg">
#39=C2=A0 =C2=A0 =C2=A00x0000000100ae3006 in ___lldb_unnamed_symbol1412$$Py=
thon ()<br class=3D"gmail_msg">
#40=C2=A0 =C2=A0 =C2=A00x0000000100a6f6fb in PyObject_Call ()<br class=3D"g=
mail_msg">
#41=C2=A0 =C2=A0 =C2=A00x0000000100aeddbb in PyEval_CallObjectWithKeywords =
()<br class=3D"gmail_msg">
#42=C2=A0 =C2=A0 =C2=A00x0000000100ae9c0f in PyEval_EvalFrameEx ()<br class=
=3D"gmail_msg">
#43=C2=A0 =C2=A0 =C2=A00x0000000100ae79be in PyEval_EvalCodeEx ()<br class=
=3D"gmail_msg">
#44=C2=A0 =C2=A0 =C2=A00x0000000100ae7367 in PyEval_EvalCode ()<br class=3D=
"gmail_msg">
#45=C2=A0 =C2=A0 =C2=A00x0000000100b075dd in ___lldb_unnamed_symbol1599$$Py=
thon ()<br class=3D"gmail_msg">
#46=C2=A0 =C2=A0 =C2=A00x0000000100b07680 in PyRun_FileExFlags ()<br class=
=3D"gmail_msg">
#47=C2=A0 =C2=A0 =C2=A00x0000000100ae3cbd in ___lldb_unnamed_symbol1427$$Py=
thon ()<br class=3D"gmail_msg">
#48=C2=A0 =C2=A0 =C2=A00x0000000100aeb4d4 in PyEval_EvalFrameEx ()<br class=
=3D"gmail_msg">
#49=C2=A0 =C2=A0 =C2=A00x0000000100ae79be in PyEval_EvalCodeEx ()<br class=
=3D"gmail_msg">
#50=C2=A0 =C2=A0 =C2=A00x0000000100aee3e2 in ___lldb_unnamed_symbol1476$$Py=
thon ()<br class=3D"gmail_msg">
#51=C2=A0 =C2=A0 =C2=A00x0000000100aeae4e in PyEval_EvalFrameEx ()<br class=
=3D"gmail_msg">
#52=C2=A0 =C2=A0 =C2=A00x0000000100ae79be in PyEval_EvalCodeEx ()<br class=
=3D"gmail_msg">
#53=C2=A0 =C2=A0 =C2=A00x0000000100ae7367 in PyEval_EvalCode ()<br class=3D=
"gmail_msg">
#54=C2=A0 =C2=A0 =C2=A00x0000000100b075dd in ___lldb_unnamed_symbol1599$$Py=
thon ()<br class=3D"gmail_msg">
#55=C2=A0 =C2=A0 =C2=A00x0000000100b07680 in PyRun_FileExFlags ()<br class=
=3D"gmail_msg">
#56=C2=A0 =C2=A0 =C2=A00x0000000100b0890a in PyRun_File ()<br class=3D"gmai=
l_msg">
#57=C2=A0 =C2=A0 =C2=A00x000000010e5bea86 in ___lldb_unnamed_symbol1$$plugi=
n ()<br class=3D"gmail_msg">
#58=C2=A0 =C2=A0 =C2=A00x00000001002cfa1b in ImageLoaderMachO::doModInitFun=
ctions(ImageLoader::LinkContext const&amp;) ()<br class=3D"gmail_msg">
#59=C2=A0 =C2=A0 =C2=A00x00000001002cfc1e in ImageLoaderMachO::doInitializa=
tion(ImageLoader::LinkContext const&amp;) ()<br class=3D"gmail_msg">
#60=C2=A0 =C2=A0 =C2=A00x00000001002cb4aa in ImageLoader::recursiveInitiali=
zation(ImageLoader::LinkContext const&amp;, unsigned int, char const*, Imag=
eLoader::InitializerTimingList&amp;, ImageLoader::UninitedUpwards&amp;) ()<=
br class=3D"gmail_msg">
#61=C2=A0 =C2=A0 =C2=A00x00000001002ca524 in ImageLoader::processInitialize=
rs(ImageLoader::LinkContext const&amp;, unsigned int, ImageLoader::Initiali=
zerTimingList&amp;, ImageLoader::UninitedUpwards&amp;) ()<br class=3D"gmail=
_msg">
#62=C2=A0 =C2=A0 =C2=A00x00000001002ca5b9 in ImageLoader::runInitializers(I=
mageLoader::LinkContext const&amp;, ImageLoader::InitializerTimingList&amp;=
) ()<br class=3D"gmail_msg">
#63=C2=A0 =C2=A0 =C2=A00x00000001002bf7cd in dyld::runInitializers(ImageLoa=
der*) ()<br class=3D"gmail_msg">
#64=C2=A0 =C2=A0 =C2=A00x00000001002c73ec in dlopen ()<br class=3D"gmail_ms=
g">
#65=C2=A0 =C2=A0 =C2=A00x00007fffaa2ac832 in dlopen ()<br class=3D"gmail_ms=
g">
#66=C2=A0 =C2=A0 =C2=A00x00007fff94b7a249 in _CFBundleDlfcnLoadBundle ()<br=
 class=3D"gmail_msg">
#67=C2=A0 =C2=A0 =C2=A00x00007fff94b7a0ca in _CFBundleLoadExecutableAndRetu=
rnError ()<br class=3D"gmail_msg">
#68=C2=A0 =C2=A0 =C2=A00x00007fff9656283f in _NSBundleLoadCode ()<br class=
=3D"gmail_msg">
#69=C2=A0 =C2=A0 =C2=A00x00007fff96562425 in -[NSBundle loadAndReturnError:=
] ()<br class=3D"gmail_msg">
#70=C2=A0 =C2=A0 =C2=A00x00007fff965aca16 in -[NSBundle principalClass] ()<=
br class=3D"gmail_msg">
<br class=3D"gmail_msg">
<br class=3D"gmail_msg">
---------------------------------------------------------------------------=
---<br class=3D"gmail_msg">
Check out the vibrant tech community on one of the world&#39;s most<br clas=
s=3D"gmail_msg">
engaging tech sites, Slashdot.org! <a href=3D"http://sdm.link/slashdot" rel=
=3D"noreferrer" class=3D"gmail_msg" target=3D"_blank">http://sdm.link/slash=
dot</a><br class=3D"gmail_msg">
_______________________________________________<br class=3D"gmail_msg">
Pyobjc-dev mailing list<br class=3D"gmail_msg">
<a href=3D"mailto:[email protected]" class=3D"gmail_msg" tar=
get=3D"_blank">[email protected]</a><br class=3D"gmail_msg">
<a href=3D"https://lists.sourceforge.net/lists/listinfo/pyobjc-dev" rel=3D"=
noreferrer" class=3D"gmail_msg" target=3D"_blank">https://lists.sourceforge=
.net/lists/listinfo/pyobjc-dev</a><br class=3D"gmail_msg">
</blockquote></div>

--f403045e9da8835171054bf0c20c--


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

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
--===============1257257949447471176==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Pyobjc-dev mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/pyobjc-dev

--===============1257257949447471176==--