lucy-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Marvin Humphrey (JIRA)" <>
Subject [jira] Created: (LUCY-94) Eliminate OO from Charmonizer/Core/*
Date Mon, 04 Jan 2010 20:27:54 GMT
Eliminate OO from Charmonizer/Core/*

                 Key: LUCY-94
             Project: Lucy
          Issue Type: Improvement
          Components: Charmonizer
            Reporter: Marvin Humphrey
            Assignee: Marvin Humphrey
            Priority: Minor

Charmonizer's Compiler and OperatingSystem modules have been organized around
OO techniques, with objects, constructors, destructors, etc.  However, since
we never have to deal with more than one Compiler or OperatingSystem at a
time, we can move all of their object member variables into module variables,
so that the modules themselves become something like singletons.  We achieve
something like polymorphism by assigning these module variables custom values
using either ifdefs or run-time initialization routines. 

With this change, Charmonizer's internals now simplify to a more traditional
procedural pattern:

/* Before. */
success = compiler->compile_exe(compiler, source_path, exe_name, 
    code, code_len);
/* After. */
success = CC_compile_exe(source_path, exe_name, code, code_len);

Once this is committed, the only OO code remaining in Charmonizer will be

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message