I getting caught up on the latest release of Xojo and see that compiler optimizations were added to 2016r3 Great! What I cannot find* is any info on how these new compiler settings compare to the previous optimization pragmas:
I sprinkle these pragmas all over my code, but when I need to debug a hard crash, I must do a global find-and-replace to replace FALSE with TRUE. I’d love to be able to get rid of all these pragmas if the new compiler optimization settings make them redundant.
*Searching the forum is a bit tough because I can’t sort search results by date. I tried searching and looking through posts since 2016r3, but the results are not in sequential ordersorry if this is a duplicate post!
#pragma BackgroundTasks False - used in many functions where I want the function to behave Atomically and not yield during threads. Especially useful when you have a small tight loop and yielding causes a big performance hit.
#pragma BoundsChecking, StackOverflowChecking, NilObjectChecking - I almost never turn these off - the only exception would be calculation code that has to run at top speed and it’s really been reviewed to be rock solid.
I generally do not have different settings for my Debug vs Build apps, as I find that this can cause subtle differences in behaviors between the IDE and compiled apps that are very hard to isolate.