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
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.