bug-apl
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Bug-apl] Python Interface


From: Christian Robert
Subject: Re: [Bug-apl] Python Interface
Date: Mon, 17 Jun 2019 15:27:23 -0400
User-agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.7.1

I made it work but only with some works

Makefile.am from:

lib_gnu_apl_la_CXXFLAGS += -I/usr/include/python3.4m

to:

lib_gnu_apl_la_CXXFLAGS += `python3-config --includes`


then run: "autoreconf"
          ./configure --with-python
          make -j4
          sudo make install

then had to run as root:

cd /usr/lib64/python3.7/lib-dynload/
ln -f /usr/local/lib/apl/lib_gnu_apl.so    
gnu_apl.cpython-37m-x86_64-linux-gnu.so

*Note* the different target name. I made a hard link rather than a copy (cp), 
matter of tastes.



then it works!

[xtian@FC-30:/usr/lib/python3.7] $ python3
Python 3.7.3 (default, May 11 2019, 00:38:04)
[GCC 9.1.1 20190503 (Red Hat 9.1.1-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import gnu_apl
>>> gnu_apl.exec("4 4⍴1+2")
### PYTHON RESULT CALLBACK ###
3 3 3 3
3 3 3 3
3 3 3 3
3 3 3 3
(1, ([4, 4], [3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3]))
>>> gnu_apl.command(")WSID")
'IS CLEAR WS\n'
>>>

Xtian.

On 2019-06-17 05:40, Dr. Jürgen Sauermann wrote:
Hi,

I haven't tried Python 2.7 but it may work. I followed the instructions in

*https://docs.python.org/3.3/c-api*

I personally find *Python 2.7 *somewhat odd, so I never considered it.

According to *./configure  --help:*
*...**
**  --with-python           enable to build python extension lib_gnu_apl.so**
**...*

so *--with-python* is the correct approach. Regarding the python version, you 
can
either:

change *line 184* in *src/Makefile.am*:

*lib_gnu_apl_la_CXXFLAGS += -I/usr/include/python3.4m*

to reflect your Python version and then *autoreconf* and *./configure 
--with-python* again,
or something like:

*CXX_FLAGS="-I/usr/include/python3.4m" ./configure**--with-python*

Best Regards,
Jürgen



On 6/17/19 6:22 AM, Christian Robert wrote:
If I configure with: --with-libpython_apl
it says: configure: WARNING: unrecognized options: --with-libpython_apl

If I configure with: --with-python
it fail in #include <Python.h>   (no such file or directory)
probably because of hard coded "-I/usr/include/python3.4m" which does not exist 
on my system.


this is because it try to compile with python3.4m  but on my system (fedora30)
the installed pythons are:

[xtian@FC-30:/home/xtian/gnuapl] $ python -V
Python 2.7.16

and

[xtian@FC-30:/home/xtian/gnuapl] $ python3 -V
Python 3.7.3

You can probably invoke python3-config as in:

[xtian@FC-30:/home/xtian/gnuapl] $ python3-config --help
Usage: /usr/bin/python3.7m-x86_64-config 
--prefix|--exec-prefix|--includes|--libs|--cflags|--ldflags|--extension-suffix|--help|--abiflags|--configdir

[xtian@FC-30:/home/xtian/gnuapl] $ python3-config --includes
-I/usr/include/python3.7m -I/usr/include/python3.7m

[xtian@FC-30:/home/xtian/gnuapl] $ python3-config --libs
-lpython3.7m -lcrypt -lpthread -ldl  -lutil -lm


to figure-out where are the includes dirs and may be other dirs.

I suppose this interface is NOT intended for python2 at all, and it's fine with 
me.

Xtian.


On 2019-06-16 15:42, Dr. Jürgen Sauermann wrote:
Hi,

in following a suggestion by Kumar Ramanathan, I have created a Python 
interface for GNU APL.
With that interface you can execute APL code, create APL defined functions, 
etc.  from Python.
Similar to *libapl* for C/C++ or to the Erlang interface.

See *README-10-python* for details.

*SVN 1167*.

Jürgen






reply via email to

[Prev in Thread] Current Thread [Next in Thread]