Not in any particular order:

	document that you can't have a class named "error" because one is
	created for you.

	alter keyword arguments that are are Python keywords to have a
		trailing underscore (likewise, strip a trailing underscore
		off of a C++ keyword if used as a Python argument keyword).

	Add casts to turn off compiler warnings for size_t to int conversions.

	Use Py_TPFLAGS_NEWSTYLENUMBER instead of Py_TPFLAGS_WRAPPY_TYPE
		for Python 2.1 compatibility.  Need to extend operator
		methods to handle global operators (vec operator*(float, vec))
		as well as operator methods (vec vec::operator*(float)).
		AND don't generator nb_coerce for Python 2.1.

	default arguments of value 0/NULL/null need to be cast
	to appropriate type, so they are wrapped correctly.

	containers as input arguments

	reset attributes that are manipulated by a member function

	a class can have a private destructor and public constructor.
		need an annotation telling which member function to
		call to destroy an instance.

	need annotation for functions that return NEW objects,
		arguments that maintain "lists", ?

	do not wrap base class constructors in subclasses

	why do we need a ; after an inline constructor decl?

	(const) reference arguments of wrappy classes

	C++ makes static member functions visible in subclasses,
		should we? (we are)

	recursive conversion of types (half done).

	documentation:
		gperf needs to be version 2.7 (or later?)

	C++ exceptions as Python Exceptions (throw signatures)

	template base classes
		workaround add base class methods to class interface

done:

	multiple versions of functions and constructors

	have an annotation to turn off generating code for a class

	generate code for missing default constructors

	default include file to file we're parsing

	optimize out Py_BuildValue if the first argument is "N"

	initialize attributes set in a constructor

	better attribute behavior
	>>>>	need to save attributes in CLASSObject's in_dict to prevent
		Python-owned C++ objects from disappearing when other
		C++ objects have references to them.

	ignore single void argument (int func(void))

	ignore inline/explicit better

	make unsigned char an integer rather than a character.

	keyword support for arguments 

	Make class constants in Extension classes truely class constants
		(not type attributes and module constants).

	use gperf to generate near perfect hash functions to lookup
		attrbiutes (get rid of get/set functions from methods
		table, or eliminate methods table entirely).

	Optionally generate a PyExtensionClass type instead of a PyTypeObject

	namespace support

	base class arguments
		check function needs to check all for known subclasses
		PyObject * to C++ instance conversion needs to take
			subclasses into account (not a single line anymore)

	base class methods
		add base class methods to class interface
From goddard@cgl.ucsf.edu Fri Jan 18 13:08:05 2002
Return-Path: <goddard@cgl.ucsf.edu>
Received: from cgl.ucsf.edu (cgl.ucsf.edu [128.218.27.20])
	by adenine.cgl.ucsf.edu (8.12.2/8.12.2/GSC1.13) with ESMTP id g0IL85DY704653
	for <gregc@socrates.cgl.ucsf.edu>; Fri, 18 Jan 2002 13:08:05 -0800 (PST)
Received: from adenine.cgl.ucsf.edu (socrates.cgl.ucsf.edu [128.218.27.3])
	by cgl.ucsf.edu (8.9.3/8.9.3/GSC1.7) with ESMTP id NAA319034
	for <gregc@cgl.ucsf.edu>; Fri, 18 Jan 2002 13:08:04 -0800 (PST)
Received: from adenine.cgl.ucsf.edu (localhost [127.0.0.1])
	by adenine.cgl.ucsf.edu (8.12.2/8.12.2/GSC1.13) with ESMTP id g0IL84DY704827
	for <gregc@cgl.ucsf.edu>; Fri, 18 Jan 2002 13:08:04 -0800 (PST)
Received: (from goddard@localhost)
	by adenine.cgl.ucsf.edu (8.12.2/8.12.1/Submit) id g0IL84Um704819;
	Fri, 18 Jan 2002 13:08:04 -0800 (PST)
Date: Fri, 18 Jan 2002 13:08:04 -0800 (PST)
Message-Id: <200201182108.g0IL84Um704819@adenine.cgl.ucsf.edu>
From: Thomas Goddard <goddard@cgl.ucsf.edu>
To: gregc@cgl.ucsf.edu
In-reply-to: <Pine.OSF.4.21.0201181005140.684729-100000@adenine.cgl.ucsf.edu>
	(message from Greg Couch on Fri, 18 Jan 2002 10:08:58 -0800 (PST))
Subject: Re: Python 2.2 out
References:  <Pine.OSF.4.21.0201181005140.684729-100000@adenine.cgl.ucsf.edu>
Status: RO

Hi Greg,

  When you get time for a wrappy overhaul I have some much desired features.
I would like wrappy to handle array arguments like float xyz[3].  And I'd
like not to have to patch the wrappy output code because of the namespace
problem.  Also I'd like no compiler warnings from the compiling wrappy code.
I currently get warnings about unused variables and size_t being implicitly
cast to int.

  The current wrappy is well worth dealing with these glitches for the time
it save not having to wrappy C++ code by hand.  But it could be nicer in
the above ways.

Thanks,
	Tom

From goddard@cgl.ucsf.edu Fri Jan 18 13:17:39 2002
Return-Path: <goddard@cgl.ucsf.edu>
Received: from cgl.ucsf.edu (cgl.ucsf.edu [128.218.27.20])
	by adenine.cgl.ucsf.edu (8.12.2/8.12.2/GSC1.13) with ESMTP id g0ILHdDY705481
	for <gregc@socrates.cgl.ucsf.edu>; Fri, 18 Jan 2002 13:17:39 -0800 (PST)
Received: from adenine.cgl.ucsf.edu (socrates.cgl.ucsf.edu [128.218.27.3])
	by cgl.ucsf.edu (8.9.3/8.9.3/GSC1.7) with ESMTP id NAA319262
	for <gregc@cgl.ucsf.edu>; Fri, 18 Jan 2002 13:17:38 -0800 (PST)
Received: from adenine.cgl.ucsf.edu (localhost [127.0.0.1])
	by adenine.cgl.ucsf.edu (8.12.2/8.12.2/GSC1.13) with ESMTP id g0ILHcDY705476
	for <gregc@cgl.ucsf.edu>; Fri, 18 Jan 2002 13:17:38 -0800 (PST)
Received: (from goddard@localhost)
	by adenine.cgl.ucsf.edu (8.12.2/8.12.1/Submit) id g0ILHcJ6705472;
	Fri, 18 Jan 2002 13:17:38 -0800 (PST)
Date: Fri, 18 Jan 2002 13:17:38 -0800 (PST)
Message-Id: <200201182117.g0ILHcJ6705472@adenine.cgl.ucsf.edu>
From: Thomas Goddard <goddard@cgl.ucsf.edu>
To: gregc@cgl.ucsf.edu
In-reply-to: <200201182111.g0ILBtAr705014@adenine.cgl.ucsf.edu> (message from
	Greg Couch on Fri, 18 Jan 2002 13:11:55 -0800 (PST))
Subject: Re: Python 2.2 out
References:  <200201182111.g0ILBtAr705014@adenine.cgl.ucsf.edu>
Status: R

Hi Greg,

  The namespace wrappy problem that requires patching wrappy generated code
happens when I wrap a subclass of chimera::Model.  For example,

	/usr/local/src/chimera/contrib/_volume/RGBA_VolumeObject.cpp.patch

References to ModelObjectClass need to be changed to chimera::ModelObjectClass.

	   Tom

