Date: 22/12/2009
A week or 2 ago I added inline spell checking using the aspell plugin to Scribe. For the first few days it was going so well that I was about to package up a release a upload it. But then it started crashing, so I thought maybe it's not thread safe or something and moved the aspell code into a single thread where it would talk to the rest of the system via a threadsafe api. But the crashes continue and I'm no closer to fixing it, so I might have to release sans spell check.

I thought about valgrinding it to see if that would shed light on the problem, but a) the linux build sucks since I converted it to xcb/cairo, mainly because the lack of documentation and time to work on it, and b) the mac build is crashy too because I don't understand the HIView hierarchy and memory ownership rules properly (and MacOSX API doco is shit) so I had a crack at using wine and valgrind together to debug the windows build and the wine/valgrind PDB reading code barfs on Scribe's PDB's.


And to top of it off Aspell is compiled with gcc so there is no way to get a debug version compatible with MSVC6 such that I can debug the problem directly. And no you can't compile Aspell with MSVC because it uses various C/C++ language features that are specific to gcc (I tried).

So I guess I'm looking for a good spell checker API that I can use in Scribe. I wonder what Firefox uses?

Update: Solved! I had some other issues cause the Aspell thread to be constantly created and destroyed instead of being reused. Fixed that and now it doesn't crash almost immediately. I doubted it was an Aspell issue, but I couldn't be sure. By creating a working test harness for the Aspell code I could confirm that it worked fine in isolation and therefor the problem was in the way Scribe was calling the Aspell thread/plugin stuff. Sure enough it was.
Dan Kegel
03/02/2010 5:09am
Please file bugs with Wine and Valgrind for your PDB reading problem.

That way maybe we can fix it before the next time you need it...
Email (optional): (Will be HTML encoded to evade harvesting)
Remember username and/or email in a cookie.
Notify me of new posts in this thread via email.