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 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.
Tested the name of the header file right when a class is starting processing. If
the class is in a file that is in an ICG_EXCLUDE directory, we quit processing
right there.
refs #251
To support backwards compatibility with measurement units I added the udunit symbol
names that we don't use into 13/15. This includes "rad" instead of "r" and
"degree" instead of "d".
refs #231
Found that when we hex pack numbers out of the random number generator we should zero pad
these numbers to 16 digits. Otherwise if the resulting number is an odd number of digits we
get an error. We already do this for file data.
refs #236
ICG dies on a strdup if the the input file is empty. Added a check for
an empty input file name. We exit with an error message if there is
no input file given.
refs #229
Added a test to set the debugger command to gdb or lldb depending
on availability. Created a new script for lldb to run. Modified
the script for gdb to backtrace all threads.
refs #227
It's been a while since we tested 15.x on the mac. The makefile
for ICG needed updating to what is essentially in 16. Added the
one change required for clang 3.8. Updated the version to 15.2.0
in trick_ver.txt. Finally removed the check for libclang.a. The
more recent clang releases are delivering libclang.dylib and I'm
too lazy to make big changes in the configure script to search
for it. The header file check should be enough.
refs #228
Backporting addition to suspend accepting new variable server connections and
all communications to variable server clients for the duration of reloading
a checkpoint
refs #168
The makefiles need to compile the units directory and they were
not at this time. The units need to be compiled in the native
bit size regardless of whether we are forcing 32 bit or not.
refs #225
For addition and subtraction, we created a new routine that
only scales second units to the first. We apply it to all
conversions when adding and subtracting, but it only changes
the temperature results, because that is the only units that
has a bias factor. The comparision conversion routines were not
changed.
refs #202
Interesting case. I found that we should process the canonical type names where
we were not before. This resolves all typedefs and should be be more
accurate in the future. When we process the canonical type we need to ignore
the processing of the non-canonical type. We set a flag after
the canonical type is processed to ignore any type that is processed after.
refs #198
Added an option on the settings panel in TV to toggle validating
addresses. Removed the now deprecated resolve_bad_refs button.
refs #193
Conflicts:
trick_source/java/src/trick/common/utils/VariableServerConnection.java
Back ported validate_address fix from trunk.
Added a flag called validate_address to each variable server thread. When
activated each pointer address will be tested to see if it is in memory
the memory manager is tracking. If it is then everything proceeds normally.
If it does not, then an error return value is returned for the value of this
variable.
refs #193
We pull file names out of the clang infrastructure to match where
classes are defined. We use the file name to pull comments and find
and process Trick header comments. Up to now clang gave us the realpath
of files and when we looked up comments we already had the realpath and
everything worked. In clang 3.6 in some places we are not getting the
realpath anymore which confuses ICG. Added code to get the realpath of
any file name we use throughout the code.
refs #167
Conflicts:
trick_source/codegen/Interface_Code_Gen/CommentSaver.cpp
trick_source/codegen/Interface_Code_Gen/FieldVisitor.cpp
OK, all the previous checkins were the wrong way to fix this issue. The SWIG
compactdefaultargs feature and the shadow feature clash for our DRBinary class.
I turn off compactdefaultargs for the DRBinary class, leaving it on for
everything else.
refs #176
After digging around the SWIG issues database I found a feature
compactdefaultargs that creates a call to functions with default
arguments like it did before. The important part is that the
code runs.
refs #176
Setting the frame log size only resized the time line graph, not the normal
frame log groups. Added code to change the size of the normal frame log
groups in addition to the time line.
refs #177
Taking in the latest er7_utils directory and adding it into Trick in the
same location it was as an external repository. Made one change to
the files_to_ICG.hh file in the repository to remove the CheckpointHelper
header files. Those go in the Trick files_to_ICG.hh file.
refs #180
Conflicts:
Makefile
autoconf/configure.ac
configure
include/trick/files_to_ICG.hh
share/trick/makefiles/Makefile.common
share/trick/makefiles/config_user.mk.in
trick_source/sim_services/Integrator/Makefile
trick_source/trick_swig/Makefile
Saved the timestamps on the default gettimeofday clock as close to
the beginning of the simulation, after initialization is finished and
at the end of shutdown. Printed out the elapsed time as well as
the number of overruns counted by RealtimeSync.
refs #183
Conflicts:
trick_source/sim_services/RealtimeSync/src/RealtimeSync.cpp
If a variable resolves to a class/structure type the variable server tries to free the
attributes associated with that variable name. But the attributes usually point to
a fixed place in memory that is not allocated. I removed the free statement. I don't
believe this will lead to a memory leak.
refs #165
Added a loop to set each 1024th byte in the recording array to 1 once the
memory has been allocated. Need to test if this is good enough to get Linux
to allocate the memory.
Added a current recording buffer pointer to use instead of using array offsets.
This should be more cpu cache efficient.
Changed the memcpy calls to direct casted integer assignments based on the size of the
parameter. If the parameter is not size 1,2,4,or 8 we fall back to a memcpy.
refs #155