Namespace packages are a mechanism for splitting a single Python
package across multiple directories on disk. With the addition of
$(TRICK_HOME)/pymods/trick, there now exists a package named 'trick' at
$(TRICK_HOME)/pymods and in each SIM_* directory. This change allows sims
to import modules from both locations.
Refs #365
The input file that is created while running monte carlo runs is done
in 3 different places. There was no easy way to collect all of those
lines in one place, so I duplicated the lines in the dryrun function.
Like other TRICK_SYSTEM variables, users should not modify this.
This renders TRICK_LDFLAGS and TRICK_USER_LINK_LIBS redundant. While we
would like to eventually remove TRICK_USER_LINK_LIBS, it's not likely to
ever actually happen.
Refs #369
For the record, I'd like to point out that many of the DataRecordGroup
functions shouldn't be called after init, but we don't prevent anyone
from doing so. Bad Trick!
Refs #350
When saving the list of namespaces and classes a particular type is contained in
we have to save the class name and any template args it includes separately. This
allows us to mangle the names easier. And we now search for type names to see
if they follow this pattern template_name<template_args>::embedded_class. If
we are using a template embedded class we need to create attributes for the embedded class.
Added set_unit mechanism to MonteVar baseclass. Added MonteVar's derived
classes setters where appropriate to facilitate changing inputs after
the instance of MonteVar has already been constructed. Fleshed out
MonteVarFile destructor to remove memory leaks.
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.
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.
The character string used in the frame log needs to be stored as
a character string. We were using a sprintf with a fixed size buffer.
The easiest change was to use asprintf which allocates a character
string big enough to hold the contents of the print. We need to
save this char string as a char string so it works out.
Verified all documentation deleted with this issue resides on
our wiki. Nothing is lost. Modified the doxygen makefile and
main page to point to the wiki where the user's guide used to be.
TODO: Need to move the requirements and design doxygen files.
The return code from parsing the monte carlo input was always set to zero and not checked.
Retured the return code from parsing the input. Added an exit if the input was not parsed
correctly.
Removed the redefinition. Included climits and changed HOST_NAME_MAX to _POSIX_HOST_NAME_MAX
which should be defined on the systems we support.
refs #265