On Tue, Dec 4, 2012 at 3:03 PM,  <[email protected]> wrote:
> Initial version of cfc command line tool

> Diff: http://git-wip-us.apache.org/repos/asf/lucy/diff/eb8f8956

This is a very logical translation of CFC's current internal workflow to a
command line interface.  I have no difficulty following the code.

Perhaps we can build on your work and add a couple modules to CFC which
represent the application interface, transforming the cfc command line utility
into a thin wrapper around those:

*   `CFCSettings` - Compiler settings, classically set via command line args.
*   `CFCCompiler` - A compiler session.

I have always felt that having client code in our build scripts manipulate
CFCHierarchy objects directly was a little too low-level, but since I'm
intimately familiar with the CFC codebase it hasn't bothered me acutely.
Naturally, we'd want to refactor those build scripts to use the higher-level
interface.

We might want to study the interfaces of other command line compiler
applications for inspiration.  There's POSIX `cc` of course (which GCC and
Clang extend), but the behavior of `javac` is probably closer to that of CFC:
`javac -d DIR` corresponds to `cfc --dest=DIR`, for example.

Marvin Humphrey

Reply via email to