Unfinished Business

CCI Code

This page contains suggestions for future work.
Testing
Samples and tutorials
Documentation
Decompiler
AST Base Class Assembly

Testing

The automated regression tests need to be beefed up considerably, and the existing regression tests need some cleanup and reorganization.

The CCI Code libraries are based largely on code that was harvested from other projects. Most were for short-term research prototypes that were built for specific purposes and weren’t assigned staffing or resources for systematic testing.

The libraries usually work well for common cases, but we expect a long period of discovering corner-case bugs. This situation presents a problem but also an opportunity. For anyone with a bug finding tool or a test generation framework, there are some juicy bugs waiting to be discovered.

Test cases should be in one of two categories:

Samples and tutorials

Right now, more is better. One type of sample that would be particularly useful is a rewriting application.
Add basic samples to the CCI Code source tree, under the Samples folder. Add more substantial samples to the CCI Sample Applications project.

Documentation

The source code contains numerous documentation comments, which SandCastle incorporates into the API reference CHM. However, the API is far from completely documented, and additional comments are welcome.

Decompiler

The major pain point is the decompiler that builds a code model from an MSIL stream. The current implementation has known bugs and limitations. It will be improved, bug by bug, but in the long run it needs to be replaced by a principled design, probably making use of a control flow graph.

AST Base Class Assembly

The AST base class assembly usually projects correct source code into a code model. However, it needs major work to detect and report all of the semantic errors that can be present in source code. Work on this will probably lag, pending the availability of a substantial application that generates AST nodes.

Last edited Feb 17, 2010 at 5:06 PM by Guy_Smith, version 6

Comments

No comments yet.