On 06/10/2010, at 5:12 PM, Aleksey Gurtovoy wrote:

>> 
>> On a completely unrelated note .. did you know Felix can generate
>> Python modules natively?
>> 
>> You can actually  make a shared library which you can *run* under
>> Felix but which can also be *import*ed by Python (version 2.x I think).
> 
> That's cool; I might actually have a pet project I can try it on. Where do  
> I learn more? :)

>From the .. nonexistant .. documentation :)

>From the source code.. :)

Or just by asking here as you did...

It's pretty simple really: 

header "#include <Python.h>";
type PyO = "PyObject*";
cfun f(m:PyO,x:PyO)=>x;
export python fun f of (PyO*PyO) as "PyIdent";


This stuff up on the Mac: I have to rename pyx.dylib to pyx.so
and then it fails with

>>> import pyx
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: dlopen(./pyx.so, 2): no suitable image found.  Did find:
        ./pyx.so: mach-o, but wrong architecture

which has something to do with Leopard Python 2.5 on Snow Leopard
I think (snl compiler is 64 bit but python 2.5 is probably 32 bit: as
usual the loader method is crap, it should say what arch is required
(wtf is "mach-o"? Is that 32 bit? Why does Apple have 20K names
for their system? Is at Apple, a Mac, OSX, Darwin, BSD, Mach or
what is it? :)

I used the command line:

$ flx 
-I/Developer/SDKs/MacOSX10.5.sdk/System/Library/Frameworks/Python.framework/Versions/2.5/include/python2.5/
 
-L/Developer/SDKs/MacOSX10.5.sdk/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/config/
 -lpython2.5 pyx

for the compilation of the file above (pyx.flx). At present, it seems the 
module initialisation code is
for Python 2.x .. I tried with 3.x but it doesn't work

$ flx -I/Library/Frameworks/Python.framework/Versions/3.1/include/python3.1/ pyx
pyx.cpp: In function ‘PyObject* initpyx()’:
pyx.cpp:52: error: ‘Py_InitModule’ was not declared in this scope

I haven't checked out the differences for CPython 2.x to 3.x ...

--
john skaller
skal...@users.sourceforge.net





------------------------------------------------------------------------------
Beautiful is writing same markup. Internet Explorer 9 supports
standards for HTML5, CSS3, SVG 1.1,  ECMAScript5, and DOM L2 & L3.
Spend less time writing and  rewriting code and more time creating great
experiences on the web. Be a part of the beta today.
http://p.sf.net/sfu/beautyoftheweb
_______________________________________________
Felix-language mailing list
Felix-language@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/felix-language

Reply via email to