Commit Graph

113 Commits

Author SHA1 Message Date
Alex Lin
4ab584ed55 Support using Python 3
Fixed the configure script to allow the user to specify using a python3
interpreter.  Had to change the the way to load the swig generated python modules.
Also had to change code dealing with python strings, oct, long, and
boolean operations.

refs #258
2016-06-28 13:44:21 -05:00
Alex Lin
268d3407df Set and use LD in our makefiles correctly.
Changed TRICK_LD to TRICK_CPPC in the unit test makefiles.  It
should be TRICK_CPPC on these lines.

refs #131
2016-06-28 08:58:33 -05:00
Alex Lin
bfdc491fe3 Output "--" if that was specified in the header file.
Unit tests failed sometimes.  Found that an attributes structure for time
in the data recording class was unintialized.  This led to the mods
field to have random data, and sometimes triggering sys.exec.out.time
to be assigned no units.  Fixed it by zeroing out the structure.

refs #254
2016-06-21 17:02:32 -05:00
Alex Lin
fcb63e0e06 Output "--" if that was specified in the header file.
Used the mods field in the attributes to indicate of "--" was specified in the header file.  We
still save the units as "1" to keep it compatible with udunits.  When outputting the variable
in data recording or variable server we check to see if the mods field for "--" is set.  We
output "--" if the mods field is set.  Also allowed "--" to persist in data products.

refs #254
2016-06-21 16:12:28 -05:00
Alex Lin
d9f1780939 exec_get_current_version returns string out of scope
Changed Trick::Executive::get_current_version to return a const reference
to the string that holds the version.  This avoids a copy of the string object
and avoids that object going out of scope.  As a string, the debug_command
had the same problem so I fixed that one as well.

refs #252
2016-06-21 16:03:15 -05:00
Alex Lin
8a9497a9bc Use udunits package for units conversions
removed udunits.h from makefile dependencies

refs #231
2016-05-17 09:55:12 -05:00
Alex Lin
a95e8e086b Use udunits package for units conversions
Copied the units_conv.c from 15 that includes the new units to master.

Swept through the code removing includes to Unit.hh and UCF.h where they
are no longer needed.  Remade makefile dependencies.

refs #231
2016-05-17 09:01:37 -05:00
Alex Lin
7e218a0472 Use udunits package for units conversions
Change the Variable Server to use udunits.

refs #231
2016-05-16 17:14:50 -05:00
Alex Lin
d7569bf9f2 Use udunits package for units conversions
Some individual tests in SIM_test_ip were still failing because the conversion
between lb and kg has a different number of digits now.

refs #231
2016-05-11 10:56:33 -05:00
Alex Lin
26cb44e946 Use udunits package for units conversions
So our unit tests did their job, they pointed to quite a few errors.
Fixed them all on my platform (CentOS 7).

refs #231
2016-05-11 09:01:54 -05:00
Alex Lin
684f0e6bdc Use udunits package for units conversions
Initial checkin of using udunits for measurement units conversions.  Replaced
our conversion code in ICG and swig code to use udunits.

Also added code to convert unit symbols that we used in Trick that are different
names in udunits.

Added a sim_object that will eventually allow users to specify a custom
set of files to read units information.

refs #231
2016-05-05 14:49:49 -05:00
Alex Lin
d144907b49 Use udunits package for units conversions
First thing is to move the misnamed Units directory to UnitsMap.

refs #231
2016-05-05 13:42:00 -05:00
Alex Lin
c307668fef All command line arguments that start with "-d" being matched by input processor.
Changed the string compare to match the whole argument to "-d".

refs #230
2016-04-26 15:57:33 -05:00
Alex Lin
83d96b4bcc HDF5 data recording broken
Need to enclose the HDF5 code in write_data with an ifdef.

refs #188
2016-04-25 10:04:58 -05:00
Alex Lin
8354546160 HDF5 data recording broken
Overrode the write_data routine for HDF5 recording.  The new routine writes
out all buffered values of an individual variable with one or two HDF5 calls.
This is much more efficient than before where we were making an HDF5 call
for a single value.

refs #188
2016-04-25 09:47:13 -05:00
Alex Lin
d503d52bd8 Debugger command on mac is now lldb not gdb
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
2016-04-20 14:12:03 -05:00
Alex Lin
8c3e322ed1 Variable server restart issues
Added mutexes in the variable server listener thread and each variable server thread.
During checkpoint restart all of these mutexes are locked by the master thread to
stop accepting new connections and stop all read/writing to all variable server clients.
Communication is resumed after the checkpoint has been reloaded.

refs #168
2016-04-19 13:50:30 -05:00
Alex Lin
03d6105c6c Remove catches for non-Trick exceptions
Removed the catches for std:exceptions and unknown exceptions.  The best way
I found to provide a clue to where the exception comes from is to allow the
handler for unhandled exceptions execute.  This is std::terminate which calls
abort and trips a SIGABRT.  I added a signal handler for SIGABRT which like
SIGSEGV, we can print a stack trace or attach a debugger to the process before
exiting.  The stack trace print is on by default.  By default the signal
handler is on, stack trace is on, debugger is off.

refs #220
2016-04-15 15:01:14 -05:00
John M. Penn
f2dd53f0b5 Fix address arithmetic in MemoryManager_ref_assignment.cpp and add unit test. refs #224 2016-04-15 14:34:38 -05:00
Alex Lin
112cc780e0 checkpoint_safestore_set_enabled() has the worst name ever
renamed checkpoint_safestore to checkpoint_safestore_period
renamed checkpoint_safestore_set_enabled to checkpoint_safestore

refs #196
2016-04-15 09:41:28 -05:00
Alex Lin
c4df54e53e echo_jobs and debug_pause are not working
Changed the sim_object names in echo_jobs and debug_pase from "instrumentation"
to "trick_instrumentation"

refs #223
2016-04-14 13:22:25 -05:00
John M. Penn
fc98f6cf0a Fix address arithmetic in ClassicCheckPointerAgent::write_rvalue. Refs #221 2016-04-13 15:39:30 -05:00
Alex Lin
fb7432d096 Add direct STL checkpointing
Modified ICG to save the non-canonical name for STLs.  This is typically more readable
because it is shorter.  Added code to the variable server to filter out requests accessing
STLs, because those accesses will not currently work.

refs #206
2016-04-04 15:07:57 -05:00
Alex Lin
0b7e3e2dc9 STLs may be in std::__cxx11 namespace
When we parse header files and find std::basic_string we change that to std::string.
Added a check for std::__cxx11::basic_string to do the same.  We also carry a
list of STL names, added std::__cxx11::[template_name] to the list of possilbe STL
names we are searching for.

refs #214
2016-04-01 21:35:53 -04:00
Alex Lin
b1a69f2490 stack smash detected in add_recording_vars_for_frame
Changing size of char[256] to char[512] temporarily.  Will come back
to change all sprintf calls to use stringstreams.

refs #211
2016-04-01 09:02:46 -05:00
Alex Lin
617efa3a52 Merge pull request #210 from alexlin0/master
Merge STL checkpoint work
2016-04-01 08:18:37 -05:00
Alex Lin
ba6a00315e Add direct STL checkpointing
Fixing the unit tests that broke because of my changes.  Memory
Manager tests need to be compiled with c++11, and the STL unit test
was using a variable that did not exist anymore.

[Issue: x]
2016-03-31 17:30:00 -05:00
Alex Lin
c1eb4e6fc5 Add direct STL checkpointing
The typenames on the Mac need to be converted for strings.  The
templates are genererating the long form of the string type name.  I
wrote a function to catch test the template parameter types and
return std::string.

refs #206
2016-03-31 15:48:19 -05:00
Alex Lin
c8a39f4a44 Add direct STL checkpointing
Removed the previous attempts at STL checkpointing. Removed
the header files and sims.  Also simplified the names of some of
the templates.

refs #206
2016-03-31 14:50:27 -05:00
Derek Bankieris
52ff78ffa3 refs #209 Completely remove event in EventManager::remove_event 2016-03-31 12:36:05 -05:00
Alex Lin
06a405ef35 Add direct STL checkpointing
stl::stack code completed.

refs #206
2016-03-31 10:32:13 -05:00
Alex Lin
5368108723 Add direct STL checkpointing
Added queue and priority queue handling.

refs #206
2016-03-31 09:22:45 -05:00
Alex Lin
94febe62f2 Add direct STL checkpointing
Added the templates required for maps, multimaps, and pairs.

refs #206
2016-03-30 16:57:45 -05:00
John M. Penn
605ef1da0c fixed pointer declaration. Ooops! Refs #207 2016-03-30 16:48:10 -05:00
John M. Penn
145922667e In making reference attributes, set units to dash dash 2016-03-29 16:00:55 -05:00
Alex Lin
46aec08b80 Add direct STL checkpointing
Initial checkin of STL checkpointing.  This checkin only covers the sequential
STLs, vector, list, deque, set, and multiset.  This checkin does include the
changes in Trick header files to include/exclude our STLs properly to make a
restartable checkpoint.

refs #206
2016-03-29 09:26:49 -05:00
Alex Lin
26dfb3a000 Move the lock_memory function out of the Executive to RealtimeSync
Moved the lock memory function to the real time sync directory.  It doesn't need
to be part of the RealTimeSync class either so I left the lock/unlock code
in the C language calls for real time functions.

refs #195
2016-03-10 17:05:47 -06:00
John M. Penn
0f76eec7a1 Include stdlib.h in MemoryManager_ref_name.cpp. 2016-03-09 11:26:31 -06:00
John M. Penn
ced68e24b2 Keep track of and free the reference attr created by ref_var. Refs #154 2016-03-08 17:47:09 -06:00
John M. Penn
9b652d0a11 Back out free of attributes in assignment production. refs #154 2016-03-07 12:32:16 -06:00
John M. Penn
ec37898fb1 Fix memory leaks in CheckpointAgent input parser. refs #154 2016-03-03 17:38:41 -06:00
Alex Lin
3abf0b31c4 Add option to validate pointer addresses in variable server clients
Forgot I left the validate_address on for testing.  Turned if off now.

refs #193
2016-02-25 10:09:49 -06:00
Alex Lin
543bbc0585 Add option to validate pointer addresses in variable server clients
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
2016-02-25 08:56:04 -06:00
Alex Lin
2c5a46a8bc Trick::MemoryManager::add_attr_info improperly removes the const keyword
Changed the search from "const" to "const " because we're intersted in
removing the const keyword preceding a type name.

refs #184
2016-02-22 09:52:28 -06:00
Alex Lin
39868aba46 Functions with enumerated default arguments cause bad python code to be generated
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
2016-02-18 11:04:07 -06:00
Alex Lin
4ab940a691 Revert "Functions with enumerated default arguments cause bad python code to be generated"
This reverts commit 30fbd682ee.
2016-02-18 10:59:36 -06:00
Alex Lin
30fbd682ee Functions with enumerated default arguments cause bad python code to be generated
Found a lot more data recording groups that have the same problem.

refs #176
2016-02-18 10:21:12 -06:00
Alex Lin
83572b20cb Print some timing statistics when the sim exits
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
2016-02-17 16:27:37 -06:00
Alex Lin
4c3015851f Merge in the er7_utils integrators
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
2016-02-10 09:32:53 -06:00
Alex Lin
6461b50d7d Setting framelog sample size does not work.
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
2016-02-04 16:13:05 -06:00