File: README.html

package info (click to toggle)
pycxx 7.1.8-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,284 kB
  • sloc: cpp: 6,767; python: 1,138; sh: 85; ansic: 60; makefile: 18
file content (233 lines) | stat: -rw-r--r-- 9,213 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
<html>
<head>
<title>PyCXX README</title>

<style>
h1, h2, h3, h4 {color: #000099;
	background-color: lightskyblue}
h3 {position: relative; left: 20px}

p {position: relative; left: 20px; margin-right: 20px; width: 40em;}
pre {color: #0000cc; background-color: #eeeeee; position: relative; left: 40px; margin-right: 80px;
	border-style: solid; border-color: black; border-width: thin}
kbd {color: #990000}
p cite, ol cite, ul cite {font-family: monospace; font-style: normal; font-size: normal}
li var, pre var, p var, kbd var {color: #009900; font-style: italic}
li samp, pre samp, p samp, kbd samp {color: #009900; font-weight: bold}
li p {position: relative; left: 0}
table { position: relative; left: 20px; border: solid #888888 1px; background-color: #eeeeee}
table th {border: solid #888888 1px; background-color: #88dd88; color: black}
table td {border: solid #888888 1px}
table td.code {border: solid #888888 1px;font-family: monospace; font-style: normal; font-size: normal}
p.param {background-color: #eeeeee; border-top: lightskyblue solid 4}
</style>
</head>

<body>

<h1>PyCXX -- README</h1>

<h2>Installation using distutils</h2>

<h3>Windows Installation and Demo</h3>
<ol>
    <li>Fetch <a href="http://prdownloads.sourceforge.net/cxx/pycxx-7.1.8.tar.gz">
    http://prdownloads.sourceforge.net/cxx/pycxx-7.1.8.tar.gz</a></li>
    <li>Expand the archive into a directory of your choosing C:\ for example.</li>

    <li>Install the PyCXX files:
        <ol>
        <li><pre>C:> cd \pycxx-7.1.8</pre></li>
        <li><pre>C:\pycxx-7.1.8> python setup.py install</pre></li>
        </ol>
    </li>
    <li>Build and run the demo extensions:
        <ol>
        <li><pre>C:> cd \pycxx-7.1.8</pre></li>
        <li><pre>C:\pycxx-7.1.8> python setup_makefile.py win32 win32.mak </pre></li>
        <li><pre>C:\pycxx-7.1.8> nmake -f win32.mak clean test</pre></li>
        </ol>
    </li>
</ol>


<h3>Unix Installation and Demo</h3>

<ol>
    <li>Fetch <a href="http://prdownloads.sourceforge.net/cxx/pycxx-7.1.8.tar.gz">
    http://prdownloads.sourceforge.net/cxx/pycxx-7.1.8.tar.gz</a>
    <li>Login as root. root access is typically needed on Unix systems to install the PyCXX files into the Python directories.
    <li>Expand the archive into a directory of your choosing ~\ for example.
    <li>Install the PyCXX files:
        <ol>
        <li><pre># cd ~/pycxx-7.1.8</pre>
        <li><pre># python setup.py install</pre>
        </ol>
    <li>Build and run the demo extensions:
        <ol>
        <li><pre># cd ~/pycxx-7.1.8</pre></li>
        <li><pre># python setup_makefile.py linux linux.mak</pre></li>
        <li><pre># make -f linux.mak clean test</pre></li>
        </ol>
    </li>
</ol>

<h2>Revision History</h2>

<h3>Version: 7.1.8 (18-Jun-2023)</h3>

<p>Add support for building against python 3.12 beta 1</p>

<p>_Py_PackageContext is no longer accessible.</p>

<h3>Version: 7.1.7 (15-Feb-2022)</h3>

<p>This is Version 7.1.6 with README updates</p>

<h3>Version: 7.1.6 (14-Feb-2022)</h3>

<p>Add support for building against python 3.11 alpha 4.</p>

<h3>Version: 7.1.5 (21-Feb-2021)</h3>

<p>Replace use of deprecated PyUnicode APIs with the supported version.</p>

<p>The class Py::String functions that used deprecated PyUnicode APIs
that have no replacements are not available for python 3.9 and later:</p>

<pre>
    const Py_UNICODE *unicode_data() const;
    unicodestring as_unicodestring() const;
</pre>

<p>Replace build-all.sh and build-all.cmd with build-all.py that can handle the build matrix.</p>
<p>Add limited API builds for all possible combinations.</p>
<p>Note: Python 3.9 has a bug that prevents use of the limited API until this bug is fix and shipped:
<a href="https://bugs.python.org/issue43155">BPO 43155</a> for details. 
The workaround is to set Py_LIMITED_API to use python 3.8.</p>

<h3>Version: 7.1.4 (31-May-2020)</h3>

<p>Add support for more number methods, like matrix and the inplace versions.</p>
<p>Use IsInstance checking so that derived classes of builtin types can be used.</p>
<p>Update Docs with recent changes.</p>
<p>Add support for python 3.9 beta 1 changes.</p>

<h3>Version: 7.1.3 (8-Jul-2019)</h3>

<p>Fix for <a href="https://sourceforge.net/p/cxx/bugs/43/">https://sourceforge.net/p/cxx/bugs/43/</a>
memory leak caused by wrong ref count on python3 Py::String objects.
</p>
<p>Remove support for supportPrint() etc as the tp_print field is being removed from python either in 3.8 or 3.9.</p>

<h3>Version: 7.1.2 (4-Mar-2019)</h3>

<p>Fix problem with compiling for Python 2 and
the _Py_PackageContext symbol.</p>

<p>Merge Fedora's patch for setup.py</p>

<h3>Version: 7.1.1 (18-Feb-2019)</h3>

<p>Add exception errorType() and errorValue() function to access
the type and value of an exception.</p>

<h3>Version: 7.1.0 (24-August-2018)</h3>

<p>Add support for Py_LIMITED_API aka PEP-384</p>

<h3>Version: 7.0.3 (23-April-2017)</h3>

<p>Update Py::Long to support long long consitently between Python2 and Python3.<p>

<h3>Version: 7.0.2 (16-April-2017)</h3>

<p>Add Py::Char ord() method to return the long value of a character.<p>

<p>Fix String::size() that could return twice the actual length.
This affected as_ucs4string() which would return a string with
its second half as uninitialised memory.</p>

<p>Fix setup.py for the Demo code to build all the required C++
code.</p>

<h3>Version: 7.0.1 (29-Aug-2016)</h3>
<p>Add extra methods to Py::String that as needed on Windows to support full unicode range of code points.</p>

<p>On Windows Python defines Py_UNICODE as unsigned short, which is too small to hold all Unicode values.
PyCXX has added to the Py::String API to support creationg from Py_UCS4 strings and converting Py::String() into Py::ucs4string objects.</p>
<p>Fix validate for Bytes to use the correct check function.</p>

<h3>Version 7.0.0 (15-Aug-2016)</h3>
<p>Warning: This version fixes a number of problems that require source incompatible changes.</p>

<p>However by defining PYCXX_6_2_COMPATIBILITY the V6.2.x API is restored.
This is not recommended for new code.</p>

<p>The first version of python3 that is supported is 3.3.</p>

<p>A special thanks goes to Benjamin Webb, working at the US Army
Engineer Research and Development Center, who has contributed to
the design and testing of this release. 7.0.0 is better for his work.</p>

<p>New source file needs to built: Src/cxx_exceptions.cxx.
This file implements the new exception handling features.</p>

<p>Fix the type used for lengths and sequence indexes to use Py_ssize_t.
This will require sources changes for users of PyCXX.</p>

<p>Implement smart handling of Exceptions between C++ and Python. 
You can now catch exceptions in C++ by type that are raised in C++ or Python.</p>

<p>All builtin exceptions are support and are user defined exceptions.</p>

<p>The base exception type is now BaseException not Exception.
To upgrade source code replace all use of Exception with BaseException.</p>

<p>The documentation has been updated to describe the new exception features.</p>

<p>The supportSequence, supportMapping, supportNumber etc functions
now take a bit mask that defines which specific callbacks are handled.</p>

<h3>Version 6.2.8 (10-May-2016)</h3>
<p>Fix crash when a member function is called via callMemberFunction() and that function raises an expection.</p>
<p>Found in comment on StackOverFlow. Fix memory size allocated for new objects. It used the wrong size calculation, but was big enough to avoid problems.</p>

<h3>Version 6.2.7 (28-Apr-2016)</h3>
<p>Fix missing ptr__Unicode_Type.</p>
<p>Fixes from learn0more@gmail.com make python2 also remember the m_module and add accessor functions.</p>
<p>Fix for indirection issues from Vivian De Smedt.</p>
<p>Update to work with latest Microsoft Visual C++ for python 2.7. All test run in Win32 and Win64.</p>
<p>PyCXX.html documention has been updated, especially with 2TO3 information.</p>
<p>Use delete[] for objects allocated with new[].</p>

<h3>Version 6.2.6 (04-Jan-2015)</h3>
<p>Fix build issue with GCC 4.2.1 on FreeBSD and Mac OS X (stop python defining isspace as a macro).</p>
<p>Remove support for python 3.1 (API's are unstable).</p>
<p>Add Python 3.3 support.</p>
<p>Patch from Michael Droettboom to fix compilation issues.</p>
<p>Patch from Michael Droettboom to add buffer interface for python3.</p>

<h3>Version 6.2.4 (3-Mar-2012)</h3>
<p>Fix memory leak in string encode and decode functions</p>
<p>Fix indirect python loading on windows - Bool_type was missing</p>

<h3>Version 6.2.3 (11-Mar-2011)</h3>

<h3>Version 6.2.2 (26-Dec-2010)</h3>
<p>Fix problem compiling against Python 3.1.3</p>

<h3>Version 6.2.1 (3-May-2010)</h3>
<p>Fix problems with new style classes</p>
<p>Replace all example makefile and project files with setup_makefile.py script.</p>
<p>Add APIs to make calling python functions easier. See TupleN(), callOnSelf(), self()</p>

<h3>Version 6.1.1 (26-Sep-2009)</h3>
<p>Supports Python 3 starting at Python 3.1 and Python 2</p>
<p>Code clean up to fix compiler warnings reported by gcc 4.2.1 on Mac OS X when building for Python 3.</p>

<h3>Version 6.1.0 (19-Jul-2009)</h3>
<p>Support Python 3 and Python 2</p>

</body>
</html>