question

Tommy Heyser avatar image
0 Likes"
Tommy Heyser asked Tommy Heyser commented

What are the "breaking" changes in 2019?

Is there a list of breaking changes in 2019? Things like deprecated functions or changes in syntax, etc.

I'm asking because I've been using 2018 Update 2 (18.2.3) to build my model. It's working. However, occasionally, I'm getting errors when working on the process flow, particularly when dealing with the Split activity. Somewhere someone said that the problem is a known problem in 18.2.3 and has been fixed in 2019. It's one of those errors that requires me to go back to a previous save file because the current model is corrupt. So that's why I'd like to migrate to 2019.

Now, when opening the model in 2019 (19.0.2), the model opens okay, but Flexsim freezes when I tried to run the simulation. When I compiled the model, I get a message saying that there are syntax errors. I can't tell what they are since i don't have Visual C++ installed, downloading and installing now. In the meantime, is there a published list of "breaking" changes in 2019?

syntax error
5 |100000

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.

Phil BoBo avatar image
1 Like"
Phil BoBo answered Tommy Heyser commented

The list of breaking changes is in the User Manual section Reference > Developer and Advanced User Reference > Release Notes and History.

Any "breaking changes" are noted in the "Backwards Compatibility Note" sections, such as this one:

Is there a reason why you were trying to compile your model? Does your model have C++ code in it? If you don't have Visual C++ installed, I imagine that your model doesn't have any C++ code in it, and you don't need to compile.

When you try to compile the model, you get the following error if it is unsuccessful:

That error is misleading because it gives you the same error if you have compile errors or if you don't have a compiler configured. (If you don't have a compiler installed and configured, you don't need to use that menu option.)

If you need help figuring out why your model is crashing in 19.0.2, post the model in a private question and we can help you debug it. If you want to debug it yourself, follow the steps in How can I debug a crashing FlexSim model?

To my knowledge, nothing changed between 18.2.3 and 19.0.2 that should cause the program to crash when you run the model, so a list of breaking changes isn't going to help. We don't make changes that intentionally break models by causing them to crash.


· 3
5 |100000

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.

Tommy Heyser avatar image Tommy Heyser commented ·

@phil.bobo, I do have some custom codes that uses C++ syntax, does that count? I had tried to keep them to basic C++ codes, e.g. for(), switch(), etc.

As you mentioned, I don't see any changes from 18.2.3 to 19.0.2 that would cause the model and FlexSim to stop responding.

Following the steps in the debug guide, I tried running the simulation up to the time at which the model freezes. Then I tried stepping to the next event. It worked and I was able to keep stepping. Then I tried to run the simulation and it freezes again. There's no error message.

Unfortunately, I can't provide the model, due to confidentiality stuff. I think I'll just have to stick with 18.2.3 for this model and save often. The ctrl+shift+s to increment the filename helps.

0 Likes 0 ·
Phil BoBo avatar image Phil BoBo ♦♦ Tommy Heyser commented ·

>I do have some custom codes that uses C++ syntax, does that count? I had tried to keep them to basic C++ codes, e.g. for(), switch(), etc.

Those are probably FlexScript functions. FlexScript uses a similar syntax, but it is built by FlexSim directly, not with a C++ compiler.

If you didn't explicitly set a node to be C++ data, you probably don't have any C++ code in your model.

If it is crashing at different times, the first step to debugging it is to make your model repeatable. You can do that by following these steps:

Debugging Non-Repeatable Models

If a model is not giving repeatable results, the best way to debug the model is by looking at the Event Log, which can be found under the Debug menu.

  1. Set up the model exactly how you want to test it:
    • Event Log open, "Enable Logging" checkbox ticked
    • Start Time and End Time values set
    • Various interface windows open or closed (3D views, Global Tables, etc.)
    • etc.
  2. Save the model.
  3. Close FlexSim.
  4. Double-click on the model to open FlexSim with the model open.
  5. Press Reset once and Run once.
  6. Once the run is complete, or has passed your desired Stop Time in the Event Log window, press Export to save the log as a CSV file.
  7. Press Reset once and Run once.
  8. When the second run is complete, Export the new Event Log using a different file name.
  9. Now that you have the two event logs, you can compare them using a text comparison tool such as WinMerge.
  10. Find the first event where the time differs between the two logs.
  11. Inspect the objects involved in that event, or the objects that created that event, to see what could be different between the two runs.
  12. Rerun the model to just before that point, then step through events leading up to the diverging event. Use the debug tools to step through your code where necessary.

For some models, it helps to click the Event header on the Event Log and filter out particular events. For instance, if you are sending messages that include a memory address as one of the message parameters, those addresses will be different for every simulation run and will make finding other differences in your exported log file hard to find. Sometimes this is expected and can be accounted for by removing these events from your log file.

You can close and reopen FlexSim each time just in case the model is doing something to the application's state or variables in the MAIN or VIEW trees that aren't reset when you just open a model. This helps ensure that even if subsequent runs aren't the same, the first run in each test will match the first run of each subsequent test. Steps 3-6 should produce identical runs even if the model isn't repeatable after a simple Reset/Run without closing FlexSim.

0 Likes 0 ·
Tommy Heyser avatar image Tommy Heyser Phil BoBo ♦♦ commented ·

Hi Phil,

I got to step 5 and then FlexSim freezes at less than 1.0000 clock time. I tried restarting FlexSim with the model and this time stepped through one step at a time. It managed to get past 1.0000 clock time. I tried running the model from that step on, but FlexSim froze.

At this point, I'm happy to keep the model in 18.2.3. Thanks anyway for the info.

0 Likes 0 ·
Joshua S avatar image
1 Like"
Joshua S answered

If you go to the downloads page for the current version of flexsim, there is a release notes file you can download, and you can look at the "What's New" link


pic1.png (202.7 KiB)
5 |100000

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.