Loud ramblings of a Software Artisan

Tuesday 23 January 2007

AbiWord 2.4.6 for Maemo 2.0

Thanks to tf, etrunko and uwog, there is now an AbiWord 2.4.6 package for Maemo 2.0 (the one that runs on the Nokia 770).

To get it set the following package source in the application manager:

  • Web address: http://www.abisource.com/downloads/apt/
  • Distribution: mistral
  • Components: user

Note: there are still bugs and I have barely anything to do with that version (due to lack of time to really get started on Maemo development).

Next step? Provide a build for the N800 (I don't know who in the team will have a device, but it won't be me). And build AbiWord 2.5.x

Adding features by removing code

Lately I have been removing code from AbiWord to make it cleaner. I have removed 3 different hash/map container classes, one set container class, with it associated RB Tree implementation, a pair container class. This for one feature: cleaner code. All of these have replaced by a standard container from libstdc++. I also templatized the string implementation class as it was already written in such a way that they were almost identical.

But why has this to be done? It is historical.

Originally, when the project started, back in 1997, it had to be build with compilers that were not up to the standard. So the project was started with its own implementation of standard containers, the same you find in the Standard C++ library. The use of templates was not allowed, nor namespaces. But today, this is no longer the case. We build with gcc everywhere, vendor compilers as an option, and it works well. In 2003, I did switch several of the major containers to use template instead of generic void* that go in the way when one decide to store integer in that. For 2.5.1 I decide it was time to remove the least used classed, even more, when in the case of map/hashtable, they were duplicating themselves. Yes, I removed 3 different instances of the same functionality! AbiWord should be less bloated.

More later...