Re: How to test/troubshoot an extension (pylibconfig)?

2010-07-08 Thread Grant Edwards
On 2010-07-07, Grant Edwards inva...@invalid.invalid wrote:

 Oops.  Those Python bindings are for version 1.3.2 of libconfig (which
 does work).  They don't work with the current version of libconfig.

I've stripped the python bindings down to a minimal point, and I've
decided there may be a memory corruption problem in the 1.4.5 version
of the library.  Here's the current boost binding:

   -pylibconfig.cc--
   #include boost/python.hpp
   #include libconfig.h++
   
   using namespace boost::python;
   using namespace libconfig;
   
   class pyConfig
   {
   public:
 pyConfig()
 {
   config = new Config();
 }
 
 ~pyConfig ()
 {
   delete config;
 }
 
   private:
 Config *config;
   };
   
   BOOST_PYTHON_MODULE(pylibconfig)
   {
 class_pyConfig(Config);
   }
   -pylibconfig.cc--


That builds without warnings and installs fine, but attempting to
actually create an instance of the class in Python causes a glibc
memory corruption message:

   Python 2.6.5 (release26-maint, Jun 22 2010, 12:58:11) 
   [GCC 4.3.4] on linux2
   Type help, copyright, credits or license for more information.
import pylibconfig
conf = pylibconfig.Config()
   *** glibc detected *** /usr/bin/python2.6: corrupted double-linked list: 
0x08065c48 ***

Am I correct in concluding it has to be a memory corruption problem in
the library itself?  

-- 
Grant Edwards   grant.b.edwardsYow! I want the presidency
  at   so bad I can already taste
  gmail.comthe hors d'oeuvres.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: How to test/troubshoot an extension (pylibconfig)?

2010-07-08 Thread Grant Edwards
On 2010-07-08, Grant Edwards inva...@invalid.invalid wrote:
 On 2010-07-07, Grant Edwards inva...@invalid.invalid wrote:

 Oops.  Those Python bindings are for version 1.3.2 of libconfig (which
 does work).  They don't work with the current version of libconfig.

Python 2.6.5 (release26-maint, Jun 22 2010, 12:58:11) 
[GCC 4.3.4] on linux2
Type help, copyright, credits or license for more information.
 import pylibconfig
 conf = pylibconfig.Config()
*** glibc detected *** /usr/bin/python2.6: corrupted double-linked list: 
 0x08065c48 ***

 Am I correct in concluding it has to be a memory corruption problem in
 the library itself?  

Nope.  That problem was cause by having two versions of the library
installed -- one under /usr and the other under /usr/local.

-- 
Grant Edwards   grant.b.edwardsYow! Gee, I feel kind of
  at   LIGHT in the head now,
  gmail.comknowing I can't make my
   satellite dish PAYMENTS!
-- 
http://mail.python.org/mailman/listinfo/python-list


How to test/troubshoot an extension (pylibconfig)?

2010-07-07 Thread Grant Edwards
I'm trying to use python bindings for libconfig.  There appear to be
three very slightly different bindings:

   http://code.google.com/p/python-libconfig/
   http://wiki.github.com/cnangel/python-libconfig/
   http://github.com/azeey/python-libconfig/

I'm using the latter with libconfig 1.4.5

   http://www.hyperrealm.com/libconfig/

The python bindings appear to come with test cases, but I can't figure
out how to run them.  From reading the Python docs, it would appear
that this should do something useful, but it doesn't:

   $ python -m unittest pylibconfig
   
   --
   Ran 0 tests in 0.000s


   Trying to run the test script directory doesn't work either:

   $ python tests/test.py
   Traceback (most recent call last):
 File tests/test.py, line 8, in module
   from x64.pylibconfig import Config
   ImportError: No module named x64.pylibconfig

Importing the module seems to be OK, but creating an instance barfs:

   Python 2.6.5 (release26-maint, Jun 22 2010, 12:58:11) 
   [GCC 4.3.4] on linux2
   Type help, copyright, credits or license for more information.
   
import pylibconfig
   
conf = pylibconfig.Config()
   *** glibc detected *** /usr/bin/python2.6: corrupted double-linked list: 
0x08065c48 ***
   
   
Where to go from here?
   
-- 
Grant Edwards   grant.b.edwardsYow! Do you like TENDER
  at   VITTLES?
  gmail.com
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: How to test/troubshoot an extension (pylibconfig)?

2010-07-07 Thread Grant Edwards
On 2010-07-07, Grant Edwards inva...@invalid.invalid wrote:

 I'm trying to use python bindings for libconfig.  There appear to be
 three very slightly different bindings:

http://code.google.com/p/python-libconfig/
http://wiki.github.com/cnangel/python-libconfig/
http://github.com/azeey/python-libconfig/

 I'm using the latter with libconfig 1.4.5

http://www.hyperrealm.com/libconfig/

[...]

 Importing the module seems to be OK, but creating an instance barfs:

Python 2.6.5 (release26-maint, Jun 22 2010, 12:58:11) 
[GCC 4.3.4] on linux2
Type help, copyright, credits or license for more information.

 import pylibconfig

 conf = pylibconfig.Config()
*** glibc detected *** /usr/bin/python2.6: corrupted double-linked list: 
 0x08065c48 ***

Oops.  Those Python bindings are for version 1.3.2 of libconfig (which
does work).  They don't work with the current version of libconfig.  I
guess it's time to figure out how boost works...

-- 
Grant Edwards   grant.b.edwardsYow! ... I think I'd
  at   better go back to my DESK
  gmail.comand toy with a few common
   MISAPPREHENSIONS ...
-- 
http://mail.python.org/mailman/listinfo/python-list