> } >As I understand it a version of LabVIEW can always(?) open a VI written
> } >with an earlier LV version but the converse is not true.
> 
> Converse... inverse... reverse... nope, it's been too long since my
> discrete math courses. Can't remember how to form logical converse.
> 
> But this is true in the development system:
> * Any LabVIEW after LV4.0 [assuming no bugs in code] can always open any VI
> written in an earlier version of LabVIEW, even across platforms [written on
> Mac, open on PC, etc].
> * A VI written in a later version of LabVIEW can never be opened in any
> earlier version (no 7.0 VIs can be opened by 6.1).
> * Each version of LabVIEW since 5.1 has had the ability to save VIs for the
> immediate past version of LabVIEW. In other words, 5.1 could save a VI in
> 5.0 format. 6.0 could save a VI in 5.1 format. If you used features that
> were new in the later version, then when you opened the VI in the earlier
> version, the VI should open, but you may find parts of your diagram/panel
> removed since those features didn't exist.
> 

You've both come pretty close to the complete answer, but you didn't 
mention the x.x.y versioning.  Since LV 2.5, the y, the third digit, has 
been modified to designate versions that are binary compatible.  Thus 
6.0.0, 6.0.1, and 6.0.2 could load and execute each other's VIs without 
having to be recompiled.  In otherwords, the compiled datastructures 
were identical.

If loaded into a LV with a compiler, they will be recompiled anyway -- 
forward or backward.  If loaded into a runtime without a compiler, they 
will be executed as is.

As stated above, if the first two digits differ, the VIs can migrate 
forward, but not backward.  They must saved for previous or rebuilt to 
go back in time.  Why?  Accepting the past is smart.  Predicting the 
future is really hard!

Greg McKaskle


Reply via email to