From b1d791dc94ae9e8783a7c7766479a5d77e2d70e1 Mon Sep 17 00:00:00 2001 From: Scott Fennell Date: Fri, 7 Jun 2019 08:29:47 -0500 Subject: [PATCH 1/5] #805 add C call to clock_tics_per_sec --- include/trick/clock_proto.h | 1 + trick_source/sim_services/Clock/clock_c_intf.cpp | 3 +++ 2 files changed, 4 insertions(+) diff --git a/include/trick/clock_proto.h b/include/trick/clock_proto.h index 9530b88d..c9e6c36d 100644 --- a/include/trick/clock_proto.h +++ b/include/trick/clock_proto.h @@ -13,6 +13,7 @@ int clock_spin(long long ref) ; int clock_set_reference(long long ref) ; double clock_get_rt_clock_ratio(void) ; int clock_set_rt_clock_ratio(double in_rt_clock_ratio) ; +unsigned long long clock_tics_per_sec(void) ; #ifdef __cplusplus } diff --git a/trick_source/sim_services/Clock/clock_c_intf.cpp b/trick_source/sim_services/Clock/clock_c_intf.cpp index c9894c6d..8b588573 100644 --- a/trick_source/sim_services/Clock/clock_c_intf.cpp +++ b/trick_source/sim_services/Clock/clock_c_intf.cpp @@ -32,3 +32,6 @@ extern "C" int clock_set_rt_clock_ratio(double in_clock_ratio) { return the_clock->set_rt_clock_ratio(in_clock_ratio) ; } +extern "C" unsigned long long clock_tics_per_sec(void) { + return the_clock->clock_tics_per_sec; +} \ No newline at end of file From fadda55abfc5bd5913267ccbb91a1f202424235e Mon Sep 17 00:00:00 2001 From: Scott Fennell Date: Fri, 14 Jun 2019 09:04:20 -0500 Subject: [PATCH 2/5] Log elapsed time in default_data, input_processor, and init jobs in file init_log.csv --- .gitignore | 1 + include/trick/Executive.hh | 12 ++++++--- trick_sims/.gitignore | 1 + .../sim_services/Clock/clock_c_intf.cpp | 2 +- .../CommandLineArguments.cpp | 3 +++ .../Executive/Executive_call_default_data.cpp | 9 ++++++- .../Executive_call_initialization.cpp | 10 ++++++-- .../Executive_call_input_processor.cpp | 9 ++++++- .../sim_services/Executive/Executive_init.cpp | 25 ++++++++++++++++--- .../Executive/Executive_process_sim_args.cpp | 1 - .../Executive/test/Executive_test.cpp | 6 ++++- trick_source/trick_utils/unicode/.gitignore | 1 + 12 files changed, 67 insertions(+), 13 deletions(-) create mode 100644 trick_source/trick_utils/unicode/.gitignore diff --git a/.gitignore b/.gitignore index 8f45bde9..e4782dd4 100644 --- a/.gitignore +++ b/.gitignore @@ -26,3 +26,4 @@ aclocal.m4 autom4te.cache trick_test gmon.out +*init_log.csv* diff --git a/include/trick/Executive.hh b/include/trick/Executive.hh index ee6f8e19..7126b6da 100644 --- a/include/trick/Executive.hh +++ b/include/trick/Executive.hh @@ -832,21 +832,27 @@ namespace Trick { /** * Calls the default_data jobs. + * @param open file stream for a log to record the elapsed + * time of each job. * @return 0 for no errors or throws exception otherwise. */ - virtual int call_default_data() ; + virtual int call_default_data(std::ofstream& init_log_stream) ; /** * Calls the input_processor jobs. + * @param open file stream for a log to record the elapsed + * time of each job. * @return 0 for no errors or throws exception otherwise. */ - virtual int call_input_processor() ; + virtual int call_input_processor(std::ofstream& init_log_stream) ; /** * Calls the initialization jobs. + * @param open file stream for a log to record the elapsed + * time of each job. * @return 0 for no errors or throws exception otherwise. */ - virtual int call_initialization() ; + virtual int call_initialization(std::ofstream& init_log_stream) ; /** * This job copies the job information from the executive to a checkpointable form. diff --git a/trick_sims/.gitignore b/trick_sims/.gitignore index 50833d24..f3f5b2a5 100644 --- a/trick_sims/.gitignore +++ b/trick_sims/.gitignore @@ -5,6 +5,7 @@ S_run_summary send_hs varserver_log log_* +*init_log.csv* chkpnt_* MONTE_RUN_* .S_library* diff --git a/trick_source/sim_services/Clock/clock_c_intf.cpp b/trick_source/sim_services/Clock/clock_c_intf.cpp index 8b588573..f51ceae1 100644 --- a/trick_source/sim_services/Clock/clock_c_intf.cpp +++ b/trick_source/sim_services/Clock/clock_c_intf.cpp @@ -34,4 +34,4 @@ extern "C" int clock_set_rt_clock_ratio(double in_clock_ratio) { extern "C" unsigned long long clock_tics_per_sec(void) { return the_clock->clock_tics_per_sec; -} \ No newline at end of file +} diff --git a/trick_source/sim_services/CommandLineArguments/CommandLineArguments.cpp b/trick_source/sim_services/CommandLineArguments/CommandLineArguments.cpp index ac94142d..b46c747a 100644 --- a/trick_source/sim_services/CommandLineArguments/CommandLineArguments.cpp +++ b/trick_source/sim_services/CommandLineArguments/CommandLineArguments.cpp @@ -31,6 +31,9 @@ Trick::CommandLineArguments::CommandLineArguments() { output_dir = std::string(".") ; default_dir = std::string(".") ; + + argc = 0; + argv = NULL; } int Trick::CommandLineArguments::get_argc() { diff --git a/trick_source/sim_services/Executive/Executive_call_default_data.cpp b/trick_source/sim_services/Executive/Executive_call_default_data.cpp index ea669054..f79511b6 100644 --- a/trick_source/sim_services/Executive/Executive_call_default_data.cpp +++ b/trick_source/sim_services/Executive/Executive_call_default_data.cpp @@ -1,9 +1,11 @@ #include #include +#include #include "trick/Executive.hh" #include "trick/ExecutiveException.hh" +#include "trick/clock_proto.h" /** @details @@ -15,7 +17,7 @@ returned from Trick::Executive::init(). -# If no execption is thrown return 0 */ -int Trick::Executive::call_default_data() { +int Trick::Executive::call_default_data(std::ofstream& init_log_stream) { int ret = 0 ; @@ -24,7 +26,12 @@ int Trick::Executive::call_default_data() { /* Call the default data jobs. */ default_data_queue.reset_curr_index() ; while ( (curr_job = default_data_queue.get_next_job()) != NULL ) { + long long start = clock_wall_time(); ret = curr_job->call() ; + long long end = clock_wall_time(); + if(init_log_stream) { + init_log_stream << "default_data," << curr_job->name << ',' << (double)(end-start)/clock_tics_per_sec() << '\n'; + } if ( ret != 0 ) { throw Trick::ExecutiveException(ret , curr_job->name.c_str() , 0 , "default_data job did not return 0") ; } diff --git a/trick_source/sim_services/Executive/Executive_call_initialization.cpp b/trick_source/sim_services/Executive/Executive_call_initialization.cpp index bedd53c9..edb38dc6 100644 --- a/trick_source/sim_services/Executive/Executive_call_initialization.cpp +++ b/trick_source/sim_services/Executive/Executive_call_initialization.cpp @@ -1,9 +1,10 @@ #include +#include #include - #include "trick/Executive.hh" #include "trick/ExecutiveException.hh" +#include "trick/clock_proto.h" /** @details @@ -13,7 +14,7 @@ returned from Trick::Executive::init(). -# If no execption is thrown return 0 */ -int Trick::Executive::call_initialization() { +int Trick::Executive::call_initialization(std::ofstream& init_log_stream) { int ret = 0 ; @@ -22,7 +23,12 @@ int Trick::Executive::call_initialization() { /* Call the initialization jobs. */ initialization_queue.reset_curr_index() ; while ( (curr_job = initialization_queue.get_next_job()) != NULL ) { + long long start = clock_wall_time(); ret = curr_job->call() ; + long long end = clock_wall_time(); + if(init_log_stream) { + init_log_stream << "init," << curr_job->name << ',' << (double)(end-start)/clock_tics_per_sec() << '\n'; + } if ( ret != 0 ) { throw Trick::ExecutiveException(ret , curr_job->name.c_str() , 0 , "initialization job did not return 0") ; } diff --git a/trick_source/sim_services/Executive/Executive_call_input_processor.cpp b/trick_source/sim_services/Executive/Executive_call_input_processor.cpp index f7f77551..c7acfc73 100644 --- a/trick_source/sim_services/Executive/Executive_call_input_processor.cpp +++ b/trick_source/sim_services/Executive/Executive_call_input_processor.cpp @@ -1,9 +1,11 @@ #include #include +#include #include "trick/Executive.hh" #include "trick/ExecutiveException.hh" +#include "trick/clock_proto.h" /** @details @@ -13,7 +15,7 @@ returned from Trick::Executive::init(). -# If no execption is thrown return 0 */ -int Trick::Executive::call_input_processor() { +int Trick::Executive::call_input_processor(std::ofstream& init_log_stream) { int ret = 0 ; @@ -25,7 +27,12 @@ int Trick::Executive::call_input_processor() { So we test for the restart_called flag and break out of the loop if we restart_called is set. */ input_processor_queue.reset_curr_index() ; while ( !restart_called and (curr_job = input_processor_queue.get_next_job()) != NULL ) { + long long start = clock_wall_time(); ret = curr_job->call() ; + long long end = clock_wall_time(); + if(init_log_stream) { + init_log_stream << "input_processor," << curr_job->name << ',' << (double)(end-start)/clock_tics_per_sec() << '\n'; + } if ( ret != 0 ) { throw Trick::ExecutiveException(ret , curr_job->name.c_str() , 0 , "input_processor job did not return 0") ; } diff --git a/trick_source/sim_services/Executive/Executive_init.cpp b/trick_source/sim_services/Executive/Executive_init.cpp index 935878ed..6e1174a0 100644 --- a/trick_source/sim_services/Executive/Executive_init.cpp +++ b/trick_source/sim_services/Executive/Executive_init.cpp @@ -2,10 +2,14 @@ #include #include #include +#include +#include +#include #include "trick/Executive.hh" #include "trick/ExecutiveException.hh" #include "trick/exec_proto.h" +#include "trick/command_line_protos.h" /** @details @@ -25,6 +29,7 @@ int Trick::Executive::init() { double cpu_time ; + try { mode = Initialization ; @@ -33,16 +38,30 @@ int Trick::Executive::init() { struct rusage cpu_usage_buf ; getrusage(RUSAGE_SELF, &cpu_usage_buf); cpu_start = ((double) cpu_usage_buf.ru_utime.tv_sec) + ((double) cpu_usage_buf.ru_utime.tv_usec / 1000000.0); + std::ofstream init_log_stream; - call_default_data() ; + /* First parse command line to see if trick is in Sie generation mode. + If not, create the init_log file and record the elapsed time of + default_data, input_processor, and init jobs */ + int argc ; + char ** argv ; + argc = command_line_args_get_argc() ; + argv = command_line_args_get_argv() ; + if (argc < 2 || strcmp(argv[1], "sie")) { + init_log_stream.open((std::string(command_line_args_get_output_dir()) + std::string("/init_log.csv")).c_str(), std::ofstream::out); + init_log_stream << "class,job,duration (s)\n"; + } - call_input_processor() ; + call_default_data(init_log_stream) ; + call_input_processor(init_log_stream) ; // If we are starting from a checkpoint, restart_called will be true. Skip init routines in this case. if ( ! restart_called ) { - call_initialization() ; + call_initialization(init_log_stream) ; } + init_log_stream.close(); + /* Set the initial values for the scheduler times. */ next_frame_check_tics = software_frame_tics + time_tics ; job_call_time_tics = next_frame_check_tics ; diff --git a/trick_source/sim_services/Executive/Executive_process_sim_args.cpp b/trick_source/sim_services/Executive/Executive_process_sim_args.cpp index e84d614f..2af7ed80 100644 --- a/trick_source/sim_services/Executive/Executive_process_sim_args.cpp +++ b/trick_source/sim_services/Executive/Executive_process_sim_args.cpp @@ -69,4 +69,3 @@ int Trick::Executive::process_sim_args() { return(0) ; } - diff --git a/trick_source/sim_services/Executive/test/Executive_test.cpp b/trick_source/sim_services/Executive/test/Executive_test.cpp index 1a5b203f..78e0726b 100644 --- a/trick_source/sim_services/Executive/test/Executive_test.cpp +++ b/trick_source/sim_services/Executive/test/Executive_test.cpp @@ -14,6 +14,8 @@ #include "trick/SimObject.hh" #include "trick/MemoryManager.hh" #include "trick/memorymanager_c_intf.h" +#include "trick/CommandLineArguments.hh" +#include "trick/GetTimeOfDayClock.hh" void sig_hand(int sig) ; void ctrl_c_hand(int sig) ; @@ -225,10 +227,12 @@ class ExecutiveTest : public ::testing::Test { Trick::MessagePublisher mpublisher ; Trick::MessageCout mcout ; Trick::MemoryManager mm ; + Trick::CommandLineArguments cla ; + Trick::GetTimeOfDayClock gtodc ; //Trick::RequirementScribe req; - ExecutiveTest() {} + ExecutiveTest() {gtodc.set_global_clock();} ~ExecutiveTest() {} virtual void SetUp() ; virtual void TearDown() {} diff --git a/trick_source/trick_utils/unicode/.gitignore b/trick_source/trick_utils/unicode/.gitignore new file mode 100644 index 00000000..7ef31105 --- /dev/null +++ b/trick_source/trick_utils/unicode/.gitignore @@ -0,0 +1 @@ +*unicode_utils_test* From 97941ac073373154e27132feabb156e203827bb9 Mon Sep 17 00:00:00 2001 From: Scott Fennell Date: Tue, 18 Jun 2019 10:34:56 -0500 Subject: [PATCH 3/5] move init_log_stream to Executive.hh, move Executive::process_sim_args from "default data" to Executive::init --- include/trick/Executive.hh | 23 +++++++++++-------- share/trick/sim_objects/default_trick_sys.sm | 2 -- .../Executive/Executive_call_default_data.cpp | 5 ++-- .../Executive_call_initialization.cpp | 5 ++-- .../Executive_call_input_processor.cpp | 5 ++-- .../sim_services/Executive/Executive_init.cpp | 23 +++++-------------- .../Executive/Executive_process_sim_args.cpp | 12 +++++++++- 7 files changed, 36 insertions(+), 39 deletions(-) diff --git a/include/trick/Executive.hh b/include/trick/Executive.hh index 7126b6da..50bfae9d 100644 --- a/include/trick/Executive.hh +++ b/include/trick/Executive.hh @@ -7,6 +7,7 @@ #define EXECUTIVE_HH #include +#include #include #include #include @@ -42,7 +43,6 @@ namespace Trick { */ class Executive : public Trick::Scheduler { - protected: /** Attempts to attach a debugger in the event a signal shuts down the simulation.\n */ bool attach_debugger; /**< trick_units(--) */ @@ -155,6 +155,10 @@ namespace Trick { /** Next scheduled jobs call time.\n */ long long job_call_time_tics; /**< trick_units(--) */ + /** stream to record elapsed time of default_data, + input_processor, and initialization queues \n */ + std::ofstream init_log_stream; /**< trick_units(--) */ + /** Queue to hold default data jobs.\n */ Trick::ScheduledJobQueue default_data_queue ; /**< trick_io(**) */ @@ -832,27 +836,21 @@ namespace Trick { /** * Calls the default_data jobs. - * @param open file stream for a log to record the elapsed - * time of each job. * @return 0 for no errors or throws exception otherwise. */ - virtual int call_default_data(std::ofstream& init_log_stream) ; + virtual int call_default_data() ; /** * Calls the input_processor jobs. - * @param open file stream for a log to record the elapsed - * time of each job. * @return 0 for no errors or throws exception otherwise. */ - virtual int call_input_processor(std::ofstream& init_log_stream) ; + virtual int call_input_processor() ; /** * Calls the initialization jobs. - * @param open file stream for a log to record the elapsed - * time of each job. * @return 0 for no errors or throws exception otherwise. */ - virtual int call_initialization(std::ofstream& init_log_stream) ; + virtual int call_initialization() ; /** * This job copies the job information from the executive to a checkpointable form. @@ -1270,6 +1268,11 @@ namespace Trick { @return always 0 */ virtual int exec_terminate(const char *file_name, const char *error); + + /* deleted functions */ + + /* SWIG doesn't like the Executive assignment operator because of ofstream init_log_stream */ + Executive& operator=(const Executive&) = delete; } ; diff --git a/share/trick/sim_objects/default_trick_sys.sm b/share/trick/sim_objects/default_trick_sys.sm index 33c6bd75..74c35f02 100644 --- a/share/trick/sim_objects/default_trick_sys.sm +++ b/share/trick/sim_objects/default_trick_sys.sm @@ -130,8 +130,6 @@ class SysSimObject : public Trick::SimObject { SysSimObject() { - {TRK} P0 ("default_data") sched.process_sim_args() ; - {TRK} ("default_data") sched.get_freeze_job(name + ".sched") ; {TRK} P65534 ("initialization") exec_collect_init() ; diff --git a/trick_source/sim_services/Executive/Executive_call_default_data.cpp b/trick_source/sim_services/Executive/Executive_call_default_data.cpp index f79511b6..a82a0eb8 100644 --- a/trick_source/sim_services/Executive/Executive_call_default_data.cpp +++ b/trick_source/sim_services/Executive/Executive_call_default_data.cpp @@ -1,7 +1,6 @@ #include #include -#include #include "trick/Executive.hh" #include "trick/ExecutiveException.hh" @@ -17,7 +16,7 @@ returned from Trick::Executive::init(). -# If no execption is thrown return 0 */ -int Trick::Executive::call_default_data(std::ofstream& init_log_stream) { +int Trick::Executive::call_default_data() { int ret = 0 ; @@ -29,7 +28,7 @@ int Trick::Executive::call_default_data(std::ofstream& init_log_stream) { long long start = clock_wall_time(); ret = curr_job->call() ; long long end = clock_wall_time(); - if(init_log_stream) { + if(init_log_stream.is_open()) { init_log_stream << "default_data," << curr_job->name << ',' << (double)(end-start)/clock_tics_per_sec() << '\n'; } if ( ret != 0 ) { diff --git a/trick_source/sim_services/Executive/Executive_call_initialization.cpp b/trick_source/sim_services/Executive/Executive_call_initialization.cpp index edb38dc6..65e1c6a6 100644 --- a/trick_source/sim_services/Executive/Executive_call_initialization.cpp +++ b/trick_source/sim_services/Executive/Executive_call_initialization.cpp @@ -1,6 +1,5 @@ #include -#include #include #include "trick/Executive.hh" #include "trick/ExecutiveException.hh" @@ -14,7 +13,7 @@ returned from Trick::Executive::init(). -# If no execption is thrown return 0 */ -int Trick::Executive::call_initialization(std::ofstream& init_log_stream) { +int Trick::Executive::call_initialization() { int ret = 0 ; @@ -26,7 +25,7 @@ int Trick::Executive::call_initialization(std::ofstream& init_log_stream) { long long start = clock_wall_time(); ret = curr_job->call() ; long long end = clock_wall_time(); - if(init_log_stream) { + if(init_log_stream.is_open()) { init_log_stream << "init," << curr_job->name << ',' << (double)(end-start)/clock_tics_per_sec() << '\n'; } if ( ret != 0 ) { diff --git a/trick_source/sim_services/Executive/Executive_call_input_processor.cpp b/trick_source/sim_services/Executive/Executive_call_input_processor.cpp index c7acfc73..6c6f9c5b 100644 --- a/trick_source/sim_services/Executive/Executive_call_input_processor.cpp +++ b/trick_source/sim_services/Executive/Executive_call_input_processor.cpp @@ -1,7 +1,6 @@ #include #include -#include #include "trick/Executive.hh" #include "trick/ExecutiveException.hh" @@ -15,7 +14,7 @@ returned from Trick::Executive::init(). -# If no execption is thrown return 0 */ -int Trick::Executive::call_input_processor(std::ofstream& init_log_stream) { +int Trick::Executive::call_input_processor() { int ret = 0 ; @@ -30,7 +29,7 @@ int Trick::Executive::call_input_processor(std::ofstream& init_log_stream) { long long start = clock_wall_time(); ret = curr_job->call() ; long long end = clock_wall_time(); - if(init_log_stream) { + if(init_log_stream.is_open()) { init_log_stream << "input_processor," << curr_job->name << ',' << (double)(end-start)/clock_tics_per_sec() << '\n'; } if ( ret != 0 ) { diff --git a/trick_source/sim_services/Executive/Executive_init.cpp b/trick_source/sim_services/Executive/Executive_init.cpp index 6e1174a0..f4ba778d 100644 --- a/trick_source/sim_services/Executive/Executive_init.cpp +++ b/trick_source/sim_services/Executive/Executive_init.cpp @@ -2,7 +2,6 @@ #include #include #include -#include #include #include @@ -38,26 +37,16 @@ int Trick::Executive::init() { struct rusage cpu_usage_buf ; getrusage(RUSAGE_SELF, &cpu_usage_buf); cpu_start = ((double) cpu_usage_buf.ru_utime.tv_sec) + ((double) cpu_usage_buf.ru_utime.tv_usec / 1000000.0); - std::ofstream init_log_stream; + + /* command line args */ + process_sim_args(); - /* First parse command line to see if trick is in Sie generation mode. - If not, create the init_log file and record the elapsed time of - default_data, input_processor, and init jobs */ - int argc ; - char ** argv ; - argc = command_line_args_get_argc() ; - argv = command_line_args_get_argv() ; - if (argc < 2 || strcmp(argv[1], "sie")) { - init_log_stream.open((std::string(command_line_args_get_output_dir()) + std::string("/init_log.csv")).c_str(), std::ofstream::out); - init_log_stream << "class,job,duration (s)\n"; - } - - call_default_data(init_log_stream) ; - call_input_processor(init_log_stream) ; + call_default_data() ; + call_input_processor() ; // If we are starting from a checkpoint, restart_called will be true. Skip init routines in this case. if ( ! restart_called ) { - call_initialization(init_log_stream) ; + call_initialization() ; } init_log_stream.close(); diff --git a/trick_source/sim_services/Executive/Executive_process_sim_args.cpp b/trick_source/sim_services/Executive/Executive_process_sim_args.cpp index 2af7ed80..939c0c5f 100644 --- a/trick_source/sim_services/Executive/Executive_process_sim_args.cpp +++ b/trick_source/sim_services/Executive/Executive_process_sim_args.cpp @@ -25,6 +25,7 @@ simulation and exit. -# If the argument is "help" print out a help message about the possible command line arguments and exit. + -# If the argument is "sie" then disable init_log which records data on some job queues. */ int Trick::Executive::process_sim_args() { @@ -53,7 +54,7 @@ int Trick::Executive::process_sim_args() { " trick_version Print which version of Trick is being used\n" " to the screen.\n" ) ; - /* If there are arguments to main... */ + bool open_stream = true; if (argc > 1) { if (!strcmp(argv[1], "trick_version")) { @@ -64,8 +65,17 @@ int Trick::Executive::process_sim_args() { !strcmp(argv[1], "-h") || !strcmp(argv[1], "help") ) { /* Try and help the user */ exit(0); + } else if (!strcmp(argv[1], "sie")) { + /* do not create init_log.csv if we are generating sie */ + open_stream = false; } } + /* create a log if we are not generating an sie file (usually during trick-CP) */ + if(open_stream) { + init_log_stream.open((std::string(command_line_args_get_output_dir()) + std::string("/_init_log.csv")).c_str(), std::ofstream::out); + init_log_stream << "class,job,duration (s)\n"; + } + return(0) ; } From 4d247c94db3258a1afecf4333d5966f36bb6d583 Mon Sep 17 00:00:00 2001 From: Scott Fennell Date: Tue, 18 Jun 2019 10:39:03 -0500 Subject: [PATCH 4/5] remove unneccessary includes --- trick_source/sim_services/Executive/Executive_init.cpp | 4 ---- 1 file changed, 4 deletions(-) diff --git a/trick_source/sim_services/Executive/Executive_init.cpp b/trick_source/sim_services/Executive/Executive_init.cpp index f4ba778d..7ddd7eba 100644 --- a/trick_source/sim_services/Executive/Executive_init.cpp +++ b/trick_source/sim_services/Executive/Executive_init.cpp @@ -2,13 +2,9 @@ #include #include #include -#include -#include - #include "trick/Executive.hh" #include "trick/ExecutiveException.hh" #include "trick/exec_proto.h" -#include "trick/command_line_protos.h" /** @details From b676ecac655f95ccf081dddae9b8b3a003860655 Mon Sep 17 00:00:00 2001 From: Scott Fennell Date: Tue, 18 Jun 2019 11:00:09 -0500 Subject: [PATCH 5/5] SWIG 2.0 compatability --- include/trick/Executive.hh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/include/trick/Executive.hh b/include/trick/Executive.hh index 50bfae9d..f1a1fe5a 100644 --- a/include/trick/Executive.hh +++ b/include/trick/Executive.hh @@ -1270,9 +1270,10 @@ namespace Trick { virtual int exec_terminate(const char *file_name, const char *error); /* deleted functions */ - + private: /* SWIG doesn't like the Executive assignment operator because of ofstream init_log_stream */ - Executive& operator=(const Executive&) = delete; + Executive& operator=(const Executive&); /* = delete; '= delete' is not compatible with SWIG 2.0. + stick to 'private' for now */ } ;