You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucy.apache.org by "Marvin Humphrey (JIRA)" <ji...@apache.org> on 2010/01/04 23:00:54 UTC

[jira] Resolved: (LUCY-94) Eliminate OO from Charmonizer/Core/*

     [ https://issues.apache.org/jira/browse/LUCY-94?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Marvin Humphrey resolved LUCY-94.
---------------------------------

    Resolution: Fixed

Committed as r895798.

> Eliminate OO from Charmonizer/Core/*
> ------------------------------------
>
>                 Key: LUCY-94
>                 URL: https://issues.apache.org/jira/browse/LUCY-94
>             Project: Lucy
>          Issue Type: Improvement
>          Components: Charmonizer
>            Reporter: Marvin Humphrey
>            Assignee: Marvin Humphrey
>            Priority: Minor
>         Attachments: charm_core_bye_bye_oo.diff
>
>
> 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:
> {code:none}
> /* 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);
> {code}
> Once this is committed, the only OO code remaining in Charmonizer will be
> TestBatch.

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