CXX -- C++ Extensions Support

You don't  make and install CXX in the conventional sense. You'll need to make Python link with C++. To do that, before running configure, set the environment variables LINKCC to 'g++' and LDSHARED to 'g++ -shared' or whatever is appropriate for your C++ compiler.

Version 4 (February, 2000)

CXX compiles with gcc - 2.95. Includes new version of extension portion by Barry Scott.  I have personally only tested this on RH Linux 6.  Version 4.1 will be released at SourceForge, CXX.sourceforge.net.

Version 3 (June 18, 1999)

1. CXX compiles with EGCS snapshot 19990616. EGCS requires a standard library class random_access_iterator that is not yet available in some other compilers (such as Windows VC6). Therefore a new switch:

STANDARD_LIBRARY_HAS_ITERATOR_TRAITS

has been added to CXX_Config.h that you may need to toggle if you get an error on the two lines that mention random_access_iterator. The current definition is correct for VC6 and EGCS-19990616.

2. A new constructor was added to Module to allow construction from a string containing the module name. A test was added for this to the demo.

Version 2 (Dec. 28, 1998)

Fixed definition of extension type to match 1.5.2. This version will presumably not compile with older versions of Python. This can be fixed by using the previous version's definition. I did not take the time to find out what these new "flags" are for nor put in any methods to deal with them.

Version 1

This is an experimental set of files for supporting the creation of Python extensions in C++.

Documentation is in progress at http://xfiles.llnl.gov.

To use CXX you use the header files in Include, such as CXX_Objects.h or CXX_Extensions.h. You must include the sources in Src in your sources to supply parts of the CXX classes required.

A demo is included. The Setup file in this directory compiles this demo named "example". To try the demo, which is also a test routine, you import example and then execute:

example.test()

You can also play with the extension object whose constructor is named "r":

s = r(1, 100, 2)
print s[2]  # should print 5

Compilation with Microsoft Visual C++ 5.0 will succeed but only if you have Service Pack 3 installed. Compilation has been known to succeed on a Unix system using KCC by using:

setenv CCC "KCC -x"

before running makethis.py.

There is also a python.cxx file for making a stand-alone Python containing this example, as well as a similar file arraytest.cxx for testing Array.

Comments to dubois1@llnl.gov, please.

Paul Dubois