Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: downloads/boost_1_33_1/libs/python/todo.txt @ 12

Last change on this file since 12 was 12, checked in by landauf, 17 years ago

added boost

File size: 5.7 KB
Line 
1.. -*- mode: rst -*-
2
3====================================
4 Boost.Python_ TODO list |(logo)|__
5====================================
6
7.. |(logo)| image:: ../../boost.png
8   :alt: Boost
9   :class: boost-logo
10
11__ ../../index.htm
12
13.. _`Boost.Python`: index.html
14
15:copyright: Copyright David Abrahams 2003. Use, modification, and
16    distribution are subject to the Boost Software License, Version
17    1.0. (See accompanying file `LICENSE_1_0.txt`_ or copy at
18    http://www.boost.org/LICENSE_1_0.txt)
19
20.. contents:: Outline
21
22.. _`LICENSE_1_0.txt`: ../../LICENSE_1_0.txt
23
24Class Support
25=============
26
27Base Class for Virtual Function Callback Wrappers
28-------------------------------------------------
29
30* http://aspn.activestate.com/ASPN/Mail/Message/c++-sig/1456023
31  (bottom of message)
32
33* http://mail.python.org/pipermail/c++-sig/2003-August/005297.html
34  (search for ``VirtualDispatcher``) describes how callback classes
35  can swap ownership relationship with their Python wrappers.
36
37* http://aspn.activestate.com/ASPN/Mail/Message/c++-sig/1860301
38  describes how this can also be used to considerably simplify
39  callback classes, solve some "dangling reference" problems, and
40  optimize the calling of non-overridden virtual functions.
41
42Miscellaneous
43=============
44
45Support for Enums with Duplicate Values
46---------------------------------------
47
48  Scott Snyder provided a patch; Dave was dissatisfied for some
49  reason, but maybe it should just be applied if no further action
50  occurs http://aspn.activestate.com/ASPN/Mail/Message/1824616.
51
52
53Functions
54=========
55
56Wrapping Function Objects
57--------------------------
58
59  It should be possible to wrap classes which support ``operator()``
60  as Python methods.
61
62  http://mail.python.org/pipermail/c++-sig/2003-August/005184.html
63
64
65"Best Match" Overload Resolution
66--------------------------------
67
68  Overload resolution currently depends on the order in which ``def``
69  calls are made (preferring later overloads).  This should be
70  changed so that the best-matching overload is always selected.
71  This may await Langbinding_ integration, since the technology is
72  already in Luabind_.
73
74  .. _Luabind: http://luabind.sf.net
75
76Type Converters
77===============
78
79Lvalue conversions from non-const ``PyTypeObject*``\ s
80------------------------------------------------------
81
82  http://aspn.activestate.com/ASPN/Mail/Message/C++-sig/1662717
83
84Converter Scoping
85-----------------
86
87  http://article.gmane.org/gmane.comp.python.c++/2044
88
89  If this gets done at all, it is going to happen in conjunction
90  with `Luabind integration`__.
91
92  __ Langbinding_
93
94``FILE*`` conversions
95---------------------
96
97  http://aspn.activestate.com/ASPN/Mail/Message/1411366
98
99``void*`` conversions
100---------------------
101
102  Pointers to *cv* ``void`` should be able to be passed and
103  returned as opaque values.
104
105Post-Call Actions
106-----------------
107
108  From-Python converters should be passed an extra reference to a
109  chain of post-call actions in the Policies object, where they can
110  register an additional action.  See the end of
111  http://aspn.activestate.com/ASPN/Mail/Message/C++-sig/1755435
112
113``PyUnicode`` Support
114---------------------
115
116  Review and possibly incorporate changes from `Lijun Qin`_ at
117  http://aspn.activestate.com/ASPN/Mail/Message/C++-sig/1771145
118
119  .. _`Lijun Qin`: mailto:qinlj-at-solidshare.com
120
121Ownership Metadata
122------------------
123
124  In the thread at
125  http://aspn.activestate.com/ASPN/Mail/Message/c++-sig/1860301,
126  Niall Douglas describes an idea for solving some "false"
127  dangling pointer/reference return errors by attaching data about
128  objects which lets the framework determine that the reference
129  count on an object doesn't tell us anything about the lifetime
130  of its data.
131
132Documentation
133=============
134
135Builtin Converters
136------------------
137
138  Builtin correspondences between builtiin Python types and C++
139  types need to be documented
140
141Internals
142---------
143
144  The structure of the framework needs to get documented; `Brett
145  Calcott`_ has promised to turn `this document`__ into something fit
146  for users
147
148  __ doc/internals.html
149
150  .. _`Brett Calcott`: mailto:brett.calcott-at-paradise.net.nz
151
152
153Large Scale
154===========
155
156Full Threading Support
157----------------------
158
159  Various people have proposed patches to improve threading support
160  in Boost.Python: see the thread at
161  http://aspn.activestate.com/ASPN/Mail/Message/1826544 and
162  http://aspn.activestate.com/ASPN/Mail/Message/1865842 for some
163  examples.  The only problem is that these are incomplete
164  solutions and verifying that we *do* have a complete solution is
165  going to take some time and attention.
166
167Langbinding
168-----------
169
170  This project to generalizes Boost.Python to work for other
171  languages, initially Lua.  See discussions at
172  http://lists.sourceforge.net/lists/listinfo/boost-langbinding
173
174Refactoring and Reorganization
175------------------------------
176
177  http://aspn.activestate.com/ASPN/Mail/Message/c++-sig/1673338
178
179NumArray Support Enhancements
180-----------------------------
181
182  Consider integrating the enhancements described in
183  http://aspn.activestate.com/ASPN/Mail/Message/C++-sig/1757092
184
185``PyFinalize`` Safety
186---------------------
187
188  Currently Boost.Python has several global (or function-static)
189  objects whose existence keeps reference counts from dropping to
190  zero until the Boost.Python shared object is unloaded.  This can
191  cause a crash because when the reference counts *do* go to zero,
192  there's no interpreter.  In order to make it safe to call
193  ``PyFinalize()`` we must register an ``atexit`` routine which
194  destroys these objects and releases all Python reference counts
195  so that Python can clean them up while there's still an
196  interpreter.  `Dirk Gerrits`_ has promised to do this job.
197
198  .. _`Dirk Gerrits`: mailto:dirk-at-gerrits.homeip.net
199
Note: See TracBrowser for help on using the repository browser.