* Fix for assigning to non-existent variables (#1708)
This fix modifies Trick's convert_swig script. It
adds a directive to not accept dynamic attributes.
The directive will ensure that modelers do not
assign to non-existent parameter in their input files.
The prior fix (issues #1288 and/or #1603) did not
cover C structures, so this commit is really an
addendum to that fix. With this commit, the convert_swig
script will generate a non-dynamic directive foreach
class and structure.
This fix also stops generating swig interface code
for typedef structure definitions since swig only
produces an interface to the actual typedef name.
For example, with this typedef:
typedef struct StructureName {
double main_engine_thrust; /* N Thrust of main engine */
struct StructureName* next; /* ** Next pointer */
} TypeDefName;
swig creates an interface for "TypeDefName", and not
"StructureName", so there is no need for Trick to
produce anything in regards "StructureName".
* Fix for issue with classes defined in ifndef SWIG block
convert_swig takes in the raw header and does no preprocessing,
so blocks of c/c++ header code which are meant to be skipped
by Swig are processed by convert_swig. This causes an issue
with the generated python code that try to access classes
that are ifndef SWIGed out.
To fix this, check for class existence in the generated python
code e.g:
if 'MomMom' in globals():
MomMom.__setattr__ = _swig_setattr_nondynamic_instance_variable(object.__setattr__)
* Fix for assignment to swig_double and swig_int primitives
The previous commit(s) on this branch fixed bad assignments
like (misspell position an attribute of BSTATE_IN):
ball.state.input.positiaaaan = 4.0
This commit fixes bad assignments to leaf/primitive attributes
like (try to add attribute to primitive/leaf double type):
ball.state.input.position.fred = 4.0
* Moved _swig_setattr_nondynamic_instance_variable to right after each class in process_class and removed duplicate _swig_setattr_nondynamic_instance_variable blocks for classes that are not in a namespace.
* Add the call for __setattr__ for class templates.
---------
Co-authored-by: Hong Chen <hong.chen-1@nasa.gov>
* Repurposed -OO so all sim run outputs including S_sie.resource are saved to the specified folder. The files are placed in the sub-dir either RUN_xxx or DP_Product of the specified folder.
* Updated for repurposed -OO.
* Added quoting code markdown for such as in order to show <name> as is.
* Added quoting code for missing items.
* Updated to raise an error when the --read-only-sim flag is used without the -O or -OO. Also made updates to the related document accordingly.
* Fixed the error message to be more clear.
* fixed web server freeze issue
* Revert "fixed web server freeze issue"
This reverts commit 7883453f6a.
* Fixed Webserver freeze issue
---------
Co-authored-by: Marcus Rockwell <marcusrockwell@gmail.com>
* Incorporate llvm 18 changes.
* Fixed to set input file properly for clang3.4 or ealier.
* Fixed missing brackets and added the rule back for the condition to call clang init preprocessor which was taken out incorrectly by the last commit.
* Proposed fix for deadlock on shutdown
* Terminate C style comment.
* Added needed libs for applicable tests and updated the logic for when allowing/disallowing connections.
* Need to load additional trick libs for applicable tests for Linux.
---------
Co-authored-by: Hong Chen <hong.chen-1@nasa.gov>
* Implemented use of the python GIL API to replace the less portable mutex solution.
* Replaced nullptr with NULL
---------
Co-authored-by: Thomas Brain <thomas.a.brain@nasa.gov>
* Added additional resource usage info for sim run.
* Fixed so voluntary context switches output uses corresponding ru_nvcsw instead of ru_nivcsw due to copy and paste error.
* Removed added resource usage data for page faults and block operations due to inconsistency on different OS.
* Updated to have voluntary and involuntary usage data for both initilization and run for sim shutdown run summary.
* Repurpose the "Sim/Real Time" field on the sim control panel #1626
Added calculations in the realtime sync monitor job to calculate the
average sim/realtime ratio for the past 100 frames. This is saved to
a new variable, actual_run_ratio. Changed the sim control panel to
display the actual_run_ratio value.
* Repurpose the "Sim/Real Time" field on the sim control panel #1626
how does this compile locally but not in CI? Didn't include cmath.
* Standardized error messaging in Sim Control Panel.
* Allowed for a popup when in Lite mode
* Fixed the NullPointerException
* Cleaning up and documenting implementation.
* Updated to log applicable time in seconds instead of tics, remove scale attribute in dp product XMLs, and reset clock before realtime clock sync to avoid logging epoch time for frame logging.
* Removed "_seconds" from applicable time variable names.
* Updated not to add "friend class" to embedded private list so it can be accessed.
* Added a list to hold all friends class decl so able to specifically make sure not to remove them from io source but not to allow is source for others.
* Added namespaces to class names for comparison as class name only needs to be unique within the same namespace.
* Added if NULL check before getting friend decl type string.
* Add type, dispersion, min_value, max_value and other relevant internal
members of MonteCarloVariable* classes to the output of
MonteCarlo_Meta_data_output. Motivation is for users wanting to post-process
dispersion parameters used during generation of runs
* Protect against invalid memory access when length of values is zero in
MonteCarloVariableRandomStringSet::generate_assignment(). Add a new
verif sim warning case to cover these new lines
* Update new verif data for SIM_mc_generation to support these changes
Closes#1574
Co-authored-by: Dan Jordan <daniel.d.jordan@nasa.gov>
* Added system CPU time and initialization system CPU time and added user wording for existing CPU time to distinguish it from system CPU time used for trick run summary.
* Updated the order of a couple of times of shutdown messages printed on screen and sim/cpu time ratio to both user and system cpu time.
* Minor change for lining up the shutdown message.
* Updated to use std::string instead for cases that ruturn const char* by referencing to a local variable.
* Updated c_str invovled check as it is never NULL and always return a null-terminated ('\0') string and also removed unnecessary conversion using c_str.
* Updated a data_products file missed last time to replace c_str check with string check.
* Updated missed parts to replace c_str check with string check.
* Updated to use C++ string comparison for std::string variables.
* Fix a variety of bugs found in dllist.c while addressing Issue #1559.
* Added More descriptive error messages.
* Wrote google-test based unit tests for the DLL List library.
* Deleted old, incomplete test program.
* Added new function DLL_ListContainsPos which determines whether the given list contains the node at the given pos.
* DLLFind bug: Added check to determine whether a compare function has been specified, and emit an error message if it hasn’t.
* DLL_FindIndex bug: Corrected bounds checking.
* DLL_GetAt bug: Added check to ensure that the specified pos is actually in the given list.
* DLL_SetAt bug: Added check to ensure that the specified pos is actually in the given list.
* DLL_RemoveAt: corrected logic mistake in NULL ptr check. Added check to ensure that the specified pos is actually in the given list.
* DLL_InsertBefore bug: element count not correctly updated.
* DLL_InsertAfter: next and prev ptrs not correctly updated, which corrupted the list.
* DLL_GetNext bug: logic error in NULL ptr checks. Added check to ensure that the specified pos is actually in the given list.
* DLL_GetPrev bug: logic error in NULL ptr checks. Added check to ensure that the specified pos is actually in the given list.
* DLL_AddHead: Fixed NULL check logic error.
* DLL_AddTail: Fixed NULL check logic error.
* Address review comments, remove extraneous make target.
* Change false to 0 in dllist.c
* Added input file SHA1 info being printed on screen when running a trick sim with -d option (basically verifying the input)
* Added additional checks to exclude trace info printout for file in /opt or .trick/ or not a real file such as <xxx> as the filename.