Commit Graph

406 Commits

Author SHA1 Message Date
Derek Bankieris
2e4c3286a3 Automatically generate dependencies with SWIG
Like gcc, swig supports all those -M options. Use them to automatically
manage *_py.cpp dependencies.
Add dependency generation to trickify.mk as well.
2017-03-14 13:38:09 -05:00
Alex Lin
c5fbaeb7d6 Fix fonts in java GUIs #192
I fixed a hard coded size=12 font in the sim control panel.
2017-03-13 11:10:24 -05:00
Alex Lin
a1bc45548b tool for detecting mismatch between friend init_attr and containing class #371
Added a check and warning message in ICG that warns you if a friend function
starts with "init_attr" but does not match the current class name.
2017-03-10 09:38:33 -06:00
John M. Penn
eef5b14fbf Add tweaks that speed up matrix multiplication routines. ref #386 2017-02-27 12:51:35 -06:00
Derek Bankieris
e6ad95f493 Grand Make Dependency Graph, part 1
Refs #360
2017-02-23 13:26:28 -06:00
Alex Lin
2450f51781 Add name of parameter to error message coming out of MemoryManager_restrore_stls #382
Printing the name now.
2017-02-15 09:00:34 -06:00
Derek Bankieris
d965f4b0a8 Infer TRICK_HOME automatically
Refs #358
2017-02-10 10:29:56 -06:00
Alex Lin
337139cacb S_overrides.mk is included twice when building #360
A different approach.  Instead of trying to limit the number of times
S_overrides.mk is included, combine the makefiles so only one
call to make is made.
2017-02-09 09:46:58 -06:00
Alex Lin
38d2b10b9e Forward-declared classes aren't fully populated in S_sie.resource #378
I chose the wrong call when trying to support clang 3.9 and it's
removal of getRBraceLoc.  The best equivalent call in 3.9 is
getBraceRange().getEnd().
2017-01-23 17:48:16 -06:00
Derek Bankieris
4146b440b8 Make trick (Python package) a namespace package
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
2017-01-20 10:30:21 -06:00
Derek Bankieris
a6b68bb101 Infer TRICK_HOME automatically
Refs #358
2017-01-20 09:39:04 -06:00
Alex Lin
008337e69b Monte Carlo dry runs produce monte_input files #318
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.
2017-01-12 16:52:05 -06:00
Alex Lin
2c93f2ac75 Improve error handling when duplicate variable added to a DRHDF5 #353
Added a printout that shows the logging group and variable name that
had a problem when trying to add to the HDF5 recording.
2017-01-12 08:44:30 -06:00
Alex Lin
8a0653fa09 Detect when TRICK_ICG is used in header files and compensate for it. #375
clang call to addPPCallbacks changed between clang versions 3.5 and 3.6.
2017-01-12 08:42:16 -06:00
Alex Lin
4b28951c1c When doing input file verification the exit code is always 1. #335
After doing verification of the input file we return the exit code
of the python processor.
2017-01-11 17:40:05 -06:00
Alex Lin
9f01209316 ICG generates non-compilable io_* code for std::vector::iterator members #331
Added a test if our field is an iterator type.  If it is we cannot create io_src
code for it.  We skip it once identified.
2017-01-11 16:07:02 -06:00
Alex Lin
b60320464a Detect when TRICK_ICG is used in header files and compensate for it. #375
Always differences between clang versions.
2017-01-11 15:59:10 -06:00
Alex Lin
ba47c2048c Detect when TRICK_ICG is used in header files and compensate for it. #375
Created a hook for the clang preprocessor.  The hook does 2 things.  It
keeps track to which header files we have entered and exited.  Second it
searches for the use of TRICK_ICG.  If we find an instance of TRICK_ICG we
mark all of the included files from this point up the chain as requiring
compensation.  To compensate for using TRICK_ICG we write out the older
offset statements to get the location of variables in classes/structures.
2017-01-11 15:02:21 -06:00
Alex Lin
0197df7103 Test output xml does not validate. #372
Removed the parent attribute.
2017-01-09 09:52:48 -06:00
Alex Lin
a831cbfaa8 Merge pull request #366 from iamthad/use_stderr
Use std::cerr instead of std::cout for error messages
2016-12-20 15:02:23 -06:00
Derek Bankieris
7a08829d3d Introduce makefile variable TRICK_SYSTEM_LDFLAGS
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
2016-12-14 12:36:21 -06:00
Derek Bankieris
76f6a003b3 Add -std=c++11 to VariableServer Makefile
Refs #367
2016-12-14 10:06:01 -06:00
Derek Bankieris
634d561567 Fix VariableServerThread::var_units
Refs #367
2016-12-14 09:43:55 -06:00
Derek Bankieris
2c9181a896 Infer TRICK_HOME automatically
Refs #358
2016-12-13 15:29:15 -06:00
Thadeus Fleming
fb1925e0d8 Use std::cerr instead of std::cout for error messages 2016-12-10 11:49:44 -06:00
Derek Bankieris
3600e3880a Infer TRICK_HOME automatically
Refs #358
2016-11-30 14:12:34 -06:00
Derek Bankieris
9fa76d8e78 Use std::strerror to report system call errors
Refs #357
2016-11-30 13:25:52 -06:00
Derek Bankieris
4d7ea87a43 Fix typo
Refs #355
2016-11-30 11:47:56 -06:00
Derek Bankieris
9fdb5d4c51 Merge input and error streams for plotting apps
Refs #355
2016-11-29 15:59:36 -06:00
Derek Bankieris
d72a09fef7 Add ability to clear all variables from a DR group
Don't let "sys.exec.out.time" be removed

Refs #350
2016-11-29 13:38:32 -06:00
Derek Bankieris
d859ac8453 Add funciton to remove all data record groups
Refs #350
2016-11-29 11:47:10 -06:00
Derek Bankieris
4281b92141 Fix MonteMonitor
Refs #354
2016-11-29 11:28:15 -06:00
Derek Bankieris
ac3360e87f Add ability to remove variable from data recording
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
2016-11-18 08:53:24 -06:00
Michael Vetter
18f0d7e871 Remove trailing whitespaces
Makes it easier to edit the files. So if we press 'end of line' we are
really at the end of line.
2016-11-08 10:25:07 +01:00
Derek Bankieris
eedd0783cd Replace multiple radian units with single instance
One of the constructor parameters enables automatic creation of
SI-prefixed versions of the root unit, which obviates the need to
create them individually.

Refs #345
2016-11-07 08:22:55 -06:00
Derek Bankieris
2248b5bcfa Remove unused variables. Normalize formatting.
Refs # 345
2016-11-04 15:56:51 -05:00
Derek Bankieris
de69363cbd Improve formatting
Remove trailing whitespace. Replace tabs with spaces.

Refs #345
2016-11-04 15:48:29 -05:00
Derek Bankieris
245389182d Automatically determine TRICK_HOME in makefile
Refs #344
2016-11-04 14:49:52 -05:00
Derek Bankieris
d61fe5f3c3 Removed unused file Simcom.java #343 2016-11-04 14:49:52 -05:00
John M. Penn
0a19eeb602 Removed un-needed null pointer checks in DPX code. Ref #16 2016-11-02 15:34:06 -05:00
John M. Penn
1f75034da2 Merge branch 'master' of https://github.com/nasa/trick 2016-11-02 14:22:08 -05:00
John M. Penn
99c8b11709 Fix a memory leak in VariableServerThread_commands. Ref #333 2016-11-02 14:12:31 -05:00
Alex Lin
d875f837f2 ICG produces non-compilable io_* code for this weird example #334
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.
2016-11-02 13:56:40 -05:00
Derek Bankieris
664797e391 Move one-time-use variables into their call site #341 2016-10-31 10:00:48 -05:00
Derek Bankieris
29b0d2d223 Alex doesn't like auto #341
Granted, there are times you shouldn't hide the type.
2016-10-31 09:51:44 -05:00
Derek Bankieris
5898f3fdec Improve loop efficiency #341
Calling getTemplateArgs() every iteration is wasteful. This should
be done once outside of the loop. Even better, use a foreach loop and
get rid of the index varible!
2016-10-31 09:34:24 -05:00
Derek Bankieris
bdcfbb4e3a Restore debug functions #341 2016-10-31 09:10:33 -05:00
Derek Bankieris
ef1405c3be Refactor ICG
Hey buddy. I wanted to tell you this before you heard it from someone
else...

I refactored ICG.

Now, it's gonna look a little scary at first. But I promise you'll like
it when you get used to it. It'll be fine. You can trust me. #341
2016-10-28 14:37:12 -05:00
Alex Lin
ba75f6ff37 ICG does not compile using llvm 3.9 #339
The call getRBraceLoc to find the ending source location of things is gone.  Replaced
it with getting the source range and get the end of that range.  Also the way to
get clang/llvm 3.9 to process c++11 code required some reordering of calls in main as
well as adding some more features to be turned on.
2016-10-28 13:21:21 -05:00
Derek Bankieris
cde7c02d22 Use 1/0 instead of True/False in TVBoolean.java
The use of True/False prevents the plotting of booleans, as those values
cannot be parsed as doubles. While it's conceptually more pleasing to
use the actual Python keywords for booleans, numbers will work just as
well and allow plotting. #337
2016-10-26 13:38:58 -05:00
Derek Bankieris
90eb381987 Fix indentation 2016-10-26 13:35:20 -05:00
Derek Bankieris
0a664abdeb Prepend trick app launch commands with trick- #336 2016-10-26 12:12:49 -05:00
Derek Bankieris
0ba68e40aa Merge branch 'master' of https://github.com/nasa/trick
Conflicts:
	trick_source/codegen/Interface_Code_Gen/main.cpp
2016-10-21 15:15:41 -05:00
Derek Bankieris
015965abab Renamed most variabes so that they are self-descriptive. Stop using abbreviations! No one can tell what anything is.
Applied a consistent formatting.
Inlined several one-off variables.
2016-10-21 15:06:44 -05:00
Derek Bankieris
108d3d40c5 Added a version of almostRealPath that takes a const std::string& parameter so we don't have to use c_str() everywhere 2016-10-21 15:06:35 -05:00
Derek Bankieris
75c35752d6 Spacing 2016-10-21 15:05:26 -05:00
Alex Lin
a2452aacd0 ICG creates offsetof statements that will not compile when using clang #327
When copying inherited variables to a child class in ICG, the inherited flags
were not being set on the mac.
2016-10-21 13:13:43 -05:00
Alex Lin
f1cbacd646 ICG exclude of class member variables now defines incorrect memory offsets in io_src #311
This changes back the default behavior to not use offsetof in io_src code.
Added a flag to ICG, -c or --compat15, to globally generate offsetof statements.
Added an ENV variable that can be used to generate offsetof statements by file or directory.
Added in a warning if classes parsed at ICG time are different in size than at runtime.
2016-10-21 13:13:43 -05:00
Derek Bankieris
5484e39f11 Fix spacing in warning message 2016-10-21 10:50:11 -05:00
Derek Bankieris
bcb421678a Fix spacing. Move declaration of loop variable into loop initializer. Rename stupid 1337 variable. 2016-10-21 10:49:11 -05:00
Derek Bankieris
2279ba8648 Restore print out when compiling io_* files #326 2016-10-21 09:20:50 -05:00
Derek Bankieris
4f49460a6f Clean up io_* code #330 2016-10-20 14:55:00 -05:00
Derek Bankieris
beb93f7e88 Removed useless local alias, eliminating the need to silence set but unused variable warnings #326 2016-10-20 14:55:00 -05:00
Derek Bankieris
2fb06cf133 Got rid of the individual io, py, and model conglomerate objects #326
Link all of the objects as part of the S_MAIN target using the link lists.
Renamed some variables and files to make them more self-descriptive.
2016-10-18 13:06:42 -05:00
Alex Lin
23af89681e ICG creates offsetof statements that will not compile when using clang #327
Added a check that was in 15 that tested the platform we are running on.  If we
are on an mac, we want to skip fully qualifying variable names because it creates
code that doesn't compile under clang.
2016-10-12 13:34:04 -05:00
John M. Penn
7544f4f96a Stop DPX makefile from trying to make catalog.xml. Ref #324 2016-10-06 14:53:36 -05:00
Derek Bankieris
054245f968 Forgot to remove this debugging print out before the last commit 2016-10-06 14:28:06 -05:00
Derek Bankieris
f161ddb18c Made everything about Trick's build process better 2016-10-06 13:54:06 -05:00
John M. Penn
edbac4cc11 Add corrected catalog.xml that contains a relative base. 2016-10-05 15:35:07 -05:00
John M. Penn
58b32d21af Delete files used to generate catalog.xml. Ref #324 2016-10-05 15:34:14 -05:00
Dan D. Jordan
9e0f0ba85a Added MonteVar setters where appropriate
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.
2016-10-03 14:57:11 -05:00
Alex Lin
5c117bcfe3 python3 execution of standalone monte_input #314
In the monte carlo input files I added a test for python 2/3.  If we are 3 run
exec(open("file").read()), else run execfile("file")
2016-09-26 09:26:43 -05:00
Alex Lin
bbba26e057 Merge branch '17.0' 2016-09-16 09:50:12 -05:00
Alex Lin
00a0e8be44 ICG exclude of class member variables now defines incorrect memory offsets in io_src #311
Missed some bitfield offset calculations.
2016-09-16 09:46:03 -05:00
Derek Bankieris
ba59606b1d Added TRICK_PYTHON_PATH environment variable #313 2016-09-16 09:20:11 -05:00
Alex Lin
c134ffea8f Merge branch '17.0' 2016-09-16 08:43:47 -05:00
Alex Lin
ae07b26243 ICG exclude of class member variables now defines incorrect memory offsets in io_src #311
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.
2016-09-16 08:39:37 -05:00
Alex Lin
b88ff45f94 Bad units specification [dB] #312
Added a conversion of [dB] to [1] for use in udunits.
2016-09-15 15:24:19 -05:00
Alex Lin
b2432fd269 Trickified Project Libraries #309
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.
2016-09-15 14:48:23 -05:00
Alex Lin
9801e3d210 ICG not setting default checkpointing io correctly. #308
If a checkpoint_io field is found we were or'ing this in to bits already
set by default.  Clear the bits first.
2016-09-14 09:38:28 -05:00
Alex Lin
256c83a876 ICG not setting default checkpointing io correctly. #308
Changed the default io value from 3 which left out checkpointing to 15 which does
include checkpointing.
2016-09-13 16:37:59 -05:00
Thadeus Fleming
5027c02c51 Fix filename output in attach_units for Python 3 2016-09-11 14:21:37 -05:00
Dan D. Jordan
70a4ad9e24 Fixed indexing problem when reducing number of monte carlo runs
When runs reduced via successive calls to set_num_runs, instead of using
pop_front() and front(), use pop_back() and back()

Refs #304
2016-09-08 13:53:44 -05:00
Alex Lin
3be6715eba Merge tag '17.0.3'
Adding check for NULL char pointer before converting to string.
2016-09-06 13:58:54 -05:00
Alex Lin
c4a32600cc Trick View: Can't set variables with -- units #301
Test before trying to convert NULL char * to string.
2016-09-06 13:53:37 -05:00
Alex Lin
eaa6f796d9 Merge tag '17.0.3'
Converting units incoming from the variable server.
2016-09-06 13:22:09 -05:00
Alex Lin
b32015a1ad Trick View: Can't set variables with -- units #301
Called map_trick_units_to_udunits to convert incoming units to udunits.
2016-09-06 13:15:36 -05:00
John Penn
753d821329 Fix compilers warnings. Ref #300 2016-09-02 17:01:07 -05:00
Alex Lin
919a8e2068 Variable using an enumeration as array index causes infinite loop #299
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.
2016-09-01 16:06:33 -05:00
Alex Lin
066554b2f7 Merge pull request #297 from ddj116/get_variable
MonteCarlo add_variable duplicate protection and get_variable functionality
2016-08-30 11:00:16 -05:00
Alex Lin
fa4664c4ea Move the loop that waits for scheduled threads to finish out of advance_sim_time #292
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.
2016-08-30 10:56:18 -05:00
Dan D. Jordan
fdd442ba68 Added duplicate name protection on add_variable and get_variable
mechanism for getting MonteVar * derived types so that those dispersion
settings can be changed once they go out of scope.
2016-08-30 09:48:10 -05:00
Alex Lin
7d82690a0b tc_init is not thread-safe #289
Made the global sockaddr variables local and cleared them with a memset.
2016-08-29 13:11:04 -05:00
Alex Lin
e3759ac594 Move the loop that waits for scheduled threads to finish out of advance_sim_time #292
When we moved the thread sync code, a loop to clear all job complete flags was left out
causing unit test errors.
2016-08-29 08:42:53 -05:00
Alex Lin
aeeaa7b3bc Move the loop that waits for scheduled threads to finish out of advance_sim_time #292
Forgot to introduce the new function.
2016-08-26 09:10:44 -05:00
Alex Lin
7c57c1d02d Move the loop that waits for scheduled threads to finish out of advance_sim_time #292
Created a new executive job that waits for the scheduled threads to finish.  We
run this right before advancing time.
2016-08-26 09:07:46 -05:00
Alex Lin
858602fe01 New STL framework doesn't support const #293
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.
2016-08-25 08:42:43 -05:00
Alex Lin
0072e7d6f0 Unintended performance issue with integ_loop at end of scheduled job classes #243
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.
2016-08-24 10:55:27 -05:00
Alex Lin
82049ead95 Add a printout when ICG parses header file with no Trick header comment #281
Added the printout.
2016-08-19 10:04:42 -05:00
Alex Lin
bb93300c5c Trick View: update to handle udunits #262
Updated unit symbols to match those in udunits.
2016-08-04 08:54:07 -05:00