K 10
svn:author
V 6
iulius
K 8
svn:date
V 27
2018-05-14T12:42:14.289410Z
K 7
svn:log
V 1504

Add support for embedded Python 3 interpreter to use with innd and nnrpd filter hooks

* Update configure script to find Python 3 interpreter and correctly
set linker flags for embedding it.  Python 3.3.0 or later in the 3.x
series is now supported.

* Drop support for Python 2.2.0; now, Python 2.3.0 or later in the 2.x
series is required  because configure looks for a shared Python library,
installed in the main library location in Python 2.3.0 and later.

* Add m4 macros to check for minimal Python version and module presence
at configure time.

* Notable changes for Python 3 are:
- string literals are now considered as Unicode data whereas they were
mere bytes in Python 2.  Consequently, encoding now really matters for
strings, and UTF-8 is required in return values of Python filter hooks.
(Note that compliance with NNTP would also want strings to be encoded
in UTF-8.)  Care should be given to use the right str or bytes objects
in Python 3.

- buffer objects no longer exist:  they have been replaced with
memoryview objects.  Consequently, code to deal with them slighty
changed.

- integers no longer exist in the C API:  they have been replaced with
long integers (Py_ssize_t).

- embedded Python initialization is now done differently (with a
PyMODINIT_FUNC function).  Try to homogeneize initialization with
Python 2.x.

* Improve error/notice logs.

* Update and improve both documentation and samples accordingly.

* Remove unused PYpathkey char * variable.

* A few typo fixes.

END
