In my time as a TSE at NI, I have seen a lot of compiler errors, app builder failures, crashes… and most of the time, users will settle for any hack, kludge, or workaround just to get usable code. In this presentation I’m going to share a number of the ridiculous ways I’ve managed to get broken code running.
The slides were last refreshed in February 2024. The demo files (saved with LabVIEW 2020) are included below.
You can watch a recording of the presentation here.
(bit.ly/ludicrouslabview redirects here)
This is super helpful, Darren! Do you happen to have VI Analyzer tests that flag VIMs and xnodes that you could share? I checked the VI Analyzer Enthusiasts forum and didn't see any there, but maybe I'm not looking in the right spot? Cheers!
Find XNodes: https://forums.ni.com/t5/VI-Analyzer-Enthusiasts/Test-Find-XNode/ta-p/4238382
Oof, that's embarrassing that I missed that, but I see what happened:
Thank you!
I found this and was looking for ways to exorcise Xnodes from my code before they cause problems (they might already have, I've had my fair share of random issues...)
Anyway, one of the more common nodes I had used was "Match regular expression". In many cases I was able to replace it with "Match pattern" but there were some cases where the search pattern was only supported as a regular expression and not by "Match pattern".
After a bit of searching I found this VI in <vi.lib> which appears to be part of the xnode code:
\vi.lib\regexp\Match Regular Expression_Execute.vi
It appears to be a replacement where all it seems to do differently is return the substrings as an array instead of having them come out from individual outputs on the "Match regular expression" node (if it was expanded).
I've verified that it exists and seems to behave equivalently in LV2015, 2018 and 2021 (the versions I have installed somewhere at the moment), though it changed slightly sometime in 2019-2021 (front panel laid out different, some internal code ever so slightly different).
Can anyone (Darren?) verify that this is an equivalent replacement completely, or is there a chance of encountering edge cases, since I can't see the Xnode internal construction to verify this for sure?
Just double checking that there's no existing VIAn test to find malleables. If not, I'll write one and post it on the VIAn Enthusiasts forum 🙂
As of today (2022-10-10), I do not see a 'Find Malleable VIs' test on the List of Community VI Analyzer Tests.