Added a "-n" argument when calling ICG on Trick core. I had previously removed
the "friend attr<class>" lines from Trick core classes. The -n argument
instructs ICG to not create the offsetof calls that require the friend function
and to process protected and private variables by default.
Copied the block of code that sends header file comments through the preprocessor from
15.x to trunk. This block was left out and is now used by both headers and source files.
Added back the code that set the offset of variables with the offsetof function. This
code is running by default. Any code that includes #ifndef TRICK_ICG in
classes/structures will want this on.
Added a flag to ICG that allows us to turn off writing of these lines. If the flag
is present, ICG may write out io_src code for private/protected variables that it could
not reach if an offsetof function was required. Code cannot have any #ifndef TRICK_ICG
present in classes/structures for this to work.
We were ignoring classes completely if it was found in to be in an external library
directory. We need to partially process it so it is included in the ICG generated
class_map file which registers attributes of classes and eventually works it's way
to populating the S_sie file.
Everything was old and now wrong in this file. Wrong start/stop times,
wrong X and Y axis min/max values, wrong units for time, and wrong
variable names.
Once we determine the type of a variable we should stop processing the
AST tree at that point. We do this for record types but not for the
built in types. Changed the return value of the process builtin
function to false so we stop processing.
2 problems found. Syncing scheduled threads was not happening at all because the job
was not being rescheduled. Did not want to deal with changing job call times so I
called the new scheuduled_thread_sync routine from advance_sim_time. That's where
it started, it'll be fine.
Also found that I was resetting job complete flags too aggressively. The check to
test if the thread is ready to run was missing. Added that check back in.
So using consts as arguments to STLs causes errors in our io code and SWIG.
Added a check for const template arguments and going to ignore them for
both ICG and what we input to SWIG.
Created a new executive job that waits for threads to finish and readies them
for their next frame of execution. Created a new job class system_thread_sync
after the top of frame jobs and before the input processor is run to sync the
threads. Along the way cleaned up instrumentation jobs on the threads to fix#290.
Added the clean rules back to Makefile.sim with a addition of
defining a conditional variable. If this variable is set than
the set of rules in the local makefile will not be defined. This
should allow the sim to be cleaned whether TRICK_HOME exists or not.