Hello ! Am 16.06.2010 17:20, schrieb Mark Jenkins: > Attached is a patch that appears to improve stability for the python > bindings. > > Instead of initializing guile and using the gnucash module loading > mechanisms, I directly link to all needed modules and just use the > direct initialization functions in pretty much the same way that > Cutecash does. > > I've been doing some work with the bindings for business objects > (invoice creation), for which I'll be submitting additional patches > later today. Applying this stability patch has made the difference > between seg faulting and things actually working. > > Christoph, I wonder if this helps with the stack blow out problems > you've been having? > Just now I tried applying the patch. I am not familiar with doing that. Shortly : It seems to work. I didn´t get a crash until now ( without excessive testing).
I´d like to know if I did things halfway correctly : I tried patch -i python_bindings_stability_without_guile.patch in the gnucash directory of Rev 19255. It did not find the file "src/optional/python-bindings/gnucash_core.i". When I told it to use "./src/optional/python-bindings/gnucash_core.i" it did though. I couldn´t make it to accept Makefile.am in the same way. I applied the changes by vim then. In the directory of the python-bindings I did make clean make sudo make install It seemed to work. It´s surely not completely the right way, is it ? I didn´t understand Rev 533 in the patchfile for I only know of Rev 19255. Could you explain ? Thanks and Goodby, Christoph Holtermann > I also had a similar problem with a more complex python application and > even ended up kludging things to the point where I was moving my "from > gnucash import" statements to the inside of functions instead of at the > top of programs to avoid similar trouble. I'll get around to testing if > this patch helps that at some point, it will take me awhile because I'll > to port my application to use python bindings in gnucash trunk instead > of my 2.2 python bindings patches. [the api has changed] > > The following earlier patch (/python bindings and lost business data/) > can be disregarded: > http://lists.gnucash.org/pipermail/gnucash-devel/2010-June/028760.html > This current patch also addresses the same lack of module init/load for > writing business objects that the above patch addressed. > > The crazy part here is that I can't actually pin down why things were so > unstable before and what improvement this makes. We can guess: > * That linking and running guile from a python module that is loaded > by the python interpreter is bad for some reason, possibly due to some > bug in guile or python > > * That I was linking to or initializing guile improperly before > > > The downside to this patch is the warnings it causes: > """ > *** Warning: Linking the shared library _gnucash_core_c.la against the > loadable module > *** libgncmod-backend-xml.so is not portable! > > *** Warning: Linking the shared library _gnucash_core_c.la against the > loadable module > *** libgncmod-business-backend-xml.so is not portable! > > *** Warning: Linking the shared library _gnucash_core_c.la against the > loadable module > *** libgncmod-backend-dbi.so is not portable! > > *** Warning: Linking the shared library _gnucash_core_c.la against the > loadable module > *** libgncmod-business-backend-sql.so is not portable! > """ > > Christian elaborates on this and suggests that these should become > normal shared libraries or part of one larger one > http://lists.gnucash.org/pipermail/gnucash-devel/2010-June/028790.html > > (Thanks by the way for adding gnc_module_init_business_core_sql_init() !) > > > Mark Jenkins > ParIT Worker Co-op > > cc Christoph Holtermann > cc Christian Stimming > cc fellow ParITistas > bcc friendly funder of all this > > > p.s. in addition to finding them posted here, all my python bindings > patches can be accessed by pointing your svn client at: > http://svn.parit.ca/gnucash/branches/python-bindings/ > > and you can get all of them as a full patch against trunk by > svn diff http://svn.parit.ca/gnucash/trunk/ > http://svn.parit.ca/gnucash/branches/python-bindings/ > > _______________________________________________ gnucash-devel mailing list [email protected] https://lists.gnucash.org/mailman/listinfo/gnucash-devel
