Porting software from AIX to Linux, with some new development as well.
In October 2005 I started a three-month contract for IBM in Burnaby, helping a group in IBM Microelectronics in Burlington, Vermont. They had several applications running on AIX which they wanted to work on Linux. We started with a small job and a three-month contract, which became a six-month contract and then a fifteen-month contract taking on bigger jobs.
First, I ported a chip-testing system to run on Linux. The base application itself, Cadence Encounter Test, had already been ported, but they had several script wrappers and extra tools that hadn't been, and wanted a new tool to collect processing statistics as well. All this work was done in Perl and Korn shell scripts.
Next in line after this was a string of 7 GUIs that engineers used to run various test programs. These were all in C and had originally been written using the first version of the GTk toolkit. To meet accessibility guidelines and keep up with system changes, these needed to be converted to use GTk-2. After I had ported the code we tested it all and released it. In addition to accessibility the new GUIs ran noticeably faster than the old.
When these projects had reached the testing stage and no longer required my full time, I began work converting a pattern-recognition application used to spot chip failures from test data. This had originally been written in C many years back, then ported to C++ on AIX using the RogueWave toolkit, and was about seventy thousand lines of code including supporting libraries. To port this, I began by converting the RogueWave library calls to use the more modern C++ Standard Template Library. Then I tackled the AIX-specific aspects of the code. By October 2006 the newly ported application passed its regression tests on Linux, and I finished the job by cleaning up the source code and optimizing aspects of it.
At the time I started the contract, the group was looking for a replacement for their source-code management and bug-tracking system. The old one was AIX-specific and used RCS, and they wanted to upgrade to a cross-platform system using something more flexible than RCS. After months of discussion and experimenting, we settled on using Bugzilla with CVS. Then their old build system had to be replaced with a new one that would run on top of CVS rather than RCS. I began designing this in the summer of 2006 and we started serious testing in October.
Powered by SEBCMS 4.0.0b13