AnsweredAssumed Answered

VRf-VEE_40_INTRO_NOTES

Question asked by VRFuser on Feb 24, 1997
send q VRf-VEE_40_INTRO_NOTES ww vrf

from: Greg Goebel / HP-MXD
      gvg@lvld.hp.com / 970-679-3030 / FAX 970-679-5971
to:   Vrf
date: Monday, 24 February 1997 1508 MST

Hi All:

VEE 4.0 is being publicly introduced today so I am shipping ya'll my notes.
They're not finished yet ... they cover the full spectrum of details, but
some parts still need some work, and the whole thing needs polishing and
doublechecking and so on.  I'll put something more polished out in Exchange
on Friday or Sunday (though I don't expect to have all the details worked
out until the end of March).

[%%] regards -- gvg

--------------------------------- cut here ----------------------------------



[VEE] An Introduction To VEE 4.0 [March 1996]

    *preliminary*

* The newest version of HP VEE, revision 4.0, is on the HP Corporate Price
List as of March 1, 1997.  VEE 4.0 is a major new release that provides a
jump in functionality greater than any other previous version of VEE.

Major new features in VEE 4.0 include:

% No more VEE-RunOnly:  You can now create VEE programs and distribute them
   along with a run-time DLL to as many users as you like with no further
   licensing requirements.  The distribution CD contains a subdirectory named
   "runtime" with four disk-image subdirectories ... you can copy these four
   subdirectories to four floppies to create your own run-time distribution
   floppies.

% Better performance:  VEE has been internally redesigned to provide better
   performance than on previous versions.  Since this new internal
   organization has slightly different behavior than the old scheme that
   could potentially cause anomalous operation of some old programs (Beta
   testing has shown such problems to be minimal), a "compatibility mode" is
   available to allow running such programs at their traditional speed.

% New user interface:  The VEE user interface has been almost completely
   redesigned to provide a multiple-window scheme for handling the main
   program and subprograms independently.  A tree-oriented browsing system
   allows a user to select subprograms at will at any level of nesting.
   A large number of other new editing and debugging features make program
   development -- particularly of large programs.

   Other tools include a Find utility to allow searching a program for a
   particular item; a Profiler to allow examination of the execution load of
   various components of a program; a Call Stack to track the execution of
   programs through UserFunctions; and an Instrument Manager that
   consolidates all I/O configuration in a neat and consistent fashion.

   Minor improvements include the consolidation of all math functions into
   a common dialogue; better debugging facilities; wiring that changes color
   depending on the data type it handles; object alignment tools; and many
   other small but convenient changes.

% An assortment of bug fixes and other enhancements have also been
   provided ... important changes include Local Variables; an enhanced
   Formula box that provides multiple outputs, multiple comma-separated
   formulas, and the ability to assign value to array elements; new system
   information functions to allow reading environment variables and so on;
   and a few other minor functions.

Note that VEE's list price has been increased by about 25% to make up for
unlimited Run-only capability ... even with this, however, VEE is a better
value than the competition.

The rest of this document explains the details of the new VEE improvements.

[%%]


[1.0] PERFORMANCE IMPROVEMENTS

* VEE 4.0 provides substantial performance increases over VEE 3.2X by virtue
of supporting "compiled" operation ... which isn't necessarily what it sounds
like:  it doesn't mean that VEE now creates a stand-alone executable program
-- it means that the elements of the VEE program are interpreted into an
intermediate form ("p-code") that can be interpreted in a fast fashion.  As
far as stand-alone programs go, VEE 4.0 still requires a run-only environment
(though you now get this for free and can distribute it as you please).

This new "compiled" mode does come at a price, in that some operations that
were allowed on VEE 3.2X are now forbidden and give you an error message
(more on this below).  However, VEE 4.0 also supports a "VEE 3 Compatibility"
mode to allow you to run old programs that have problems in this regard until
they can be tweaked accordingly.

Having both compiled and compatibility mode does make it easier to
demonstrate VEE 4.0's improvements in performance, however ... consider the
examples below:

    +-------+
    | Start |
    +---+---+
        |
  +-----+-----+
  | For Count |     +-----+
  |    360    +--+->| sin +----->+-----------+
  +-----+-----+  |  +-----+      | Collector +---->+-----+
        |        |           +-->+-----------+     | JCT +---->+-----------+
        |        |  +-----+  |                  +->+-----+     | Collector |
        |        +->| cos +--|-->+-----------+  |           +->+-----------+
        |           +-----+  |   | Collector +--+           |
        |                    +-->+-----------+              |
        |                    |                              |
        +--------------------+------------------------------+

                          +-------+
                          | Start |
                          +---+---+
                              |
   +--------------------------+----------------------------+
   |                       Formula                         |
   +-------------------------------------------------------+
   | [ sin(ramp( 360, 0, 359))  cos(ramp( 360, 0, 359 )) ] |
   +-------------------------------------------------------+ 

These two examples generate an array containing all the values of sine and
cosine for each degree from 0 to 360; they were originally devised to show
the difference in VEE speed for iterative instead of array operations, but
they also serve well to show off VEE 4.0's performance.  Experiments with
the two programs give the relative performance:

                        iterative   array
                       ___________________

  compatibility mode:       1        22

  compiled mode:            8       215
                       ___________________

The figures are the increase in speed relative to the slowest operation (the
iterative program under compatibility mode).  These figures indicate a
roughly order-of-magnitude increase in performance of these two sample
programs.

However, overall system performance isn't going to make a jump of this
magnitude (don't worry -- you won't hear anything about "VEE being faster
than C!") when you factor in display and file I/O ... you can likely expect
an improvement in performance of about 3 or 4 times -- which brings VEE
applications up to a performance level comparable to those of any other
applications in the same domain on a PC.

In general, looping constructs and formulas will show the greatest speed
increases; I/O-bound operations like file-I/O or graphics will show the
least.

* OK ... so what does compilation cost you?  First, crossed loops don't work
any more -- VEE 4.0 flags them as an error and won't run them.  Second, any
time you have feedback in a VEE program or function, you *must* do it
through a junction box.

There are a large number of other subtle changes, but most of these are so
devious and hard to describe that it's hardly worth the bother ... we'll
worry about them when and if we run into them in practice.

* VEE 4.0's compiled mode also offers one other important benefit:  In VEE
3.2X, if you executed a UserFunction, no other thread in VEE would execute in
parallel with it.  VEE 4.0 now allows such timeslicing (in compiled mode
only).

[%%]


[2.0] NEW DEVELOPMENT ENVIRONMENT -- MENUS

* A good way to start is to go through the menu selections and see what's
changed.

* The "File" menu incorporates a few small changes:

% A "Save Secured Runtime Version" entry that allows you to save your VEE
   program in a secured ".vxe" format that can be executed in runtime mode;
   this file will be saved separately from the original file, ensuring you
   don't secure your source by mistake.  The old "Secure" entry is gone.

% Modifications to the "Edit Default Preferences" dialogue box to select
   between compiled/VEE-3-compatibility modes, spacing for object alignment
   in the development environment, and a few minor enhancements to print
   capability.

% The "Print All" entry has been changed to "Print Program", with a few
   small enhancements in print options.

% Programs previously accessed by VEE now have their names queued up at the
   bottom of the menu to allow them to be retrieved (a common feature in
   such contemporary applications as Excel and the like, but new to VEE).

* The "Edit" menu has a similar level of modifications:

% "Clone" is gone ... "Copy" & "Paste" do the job just as well.

% "Select Objects" and "Move Objects" are gone as well; a new "Select All"
   and other features replace this functionality.

% The new "Find" entry brings up a dialogue that allows you to hunt for
   program elements.

* VEE 4.0 adds a new "View" menu:

    View  Debug  Flow
  -+-------------------+-
   |  Variables...     |  Display list of variables for examination.
   |  Last Error       |  Display last error message that occurred.
   +-------------------+
   |  Main      Ctrl+M |  Select main program panel in MDI interface.
   |  Execution Window | 
   +-------------------+
   | *Program Explorer |  Show/hide Program Explorer tree.
   |  Call Stack       |  Bring up UserFunction stack tracer.
   |  Profiler         |  Bring up program execution profiler.
   +-------------------+
   | *Toolbar          |  Show/hide toolbar at top of environment.
   | *Status Bar       |  Show/hide status bar at bottom of environment.
   +-------------------+

The "Debug" menu has been modified slightly:

% "Run" and "Resume" have become a single entry, "Run/Resume".

% The "Step" entry has been expanded to "Step Into", "Step Over", and
   "Step Out" to support the more flexible stepping capabilities in VEE
   4.0.

% "View Globals" has been deleted (it is now essentially part of the "View"
   menu).

% An entry for "Object Probe" allows you to determine what objects are
   wired to a specific object.

The "Flow" menu remains the same.  The "Device" menu has been modified
slightly to reflect the fact that the "Math" and "Advanced Math" menus have
been deleted to support a much more convenient way of handling functions:

% The main change has been to add the "Formula" entry and a "Math &
   Functions" entry to bring up a dialogue box that allows access to all VEE
   functions (see below).

% "Regression" has been added and the random number functions eliminated
   from the menu.

% Cascade menus for "Call" and "Panel" have been eliminated, with some
   functions incorporated into the menu itself and others added to the "Math
   & Functions" dialogue.

The "Math & Functions" dialogue box provides a neat way of consolidating all
the earlier clutter of the math ops in VEE (as well as integrates handling of
UserFunctions in the program):

   +--------------------------------------------------------------------+
   | Select Function                                                 [x]|
   +--------------------------------------------------------------------+
   | Type                        Category             Name              |
   | +-------------------------+ +------------------+ +---------------+ |
   | | Operators               | | <All>            | | concat        | |
   | | Built-in Functions      | | Array            | | init          | |
   | | Local User Functions    | | Bessel           | | product       | |
   | | Imported User Functions | | Bitwise          | | rotate        | |
   | | Compiled Functions      | | Calculus         | | sort          | |
   | |                         | | Complex Parts    | | sum           | |
   | |                         | | Data Filtering   | | totSize       | |
   | +-------------------------+ +------------------+ +---------------+ |
   | concat(x,y)                                                        |
   |                                                                    |
   | [ Returns concatenated containers.                               ] |
   |                                                                    |
   +--------------------------------------------------------------------+
   |                      [  OK  ] [ Cancel ] [ Help ]                  |
   +--------------------------------------------------------------------+

* The I/O Menu deletes the separate VEE driver and Plug&Play Driver
configuration entries and uses the Instrument Manager instead (more on this
later); the ID Monitor has also been deleted (no great loss, that).

* The Data Menu is only slightly changed -- the "Globals" entry now becomes
the "Variables" entry (since VEE 4.0 now has Local Variables as well), and
the "System Information" functions are incorporated into the Math&Functions
dialogue.

* As noted, both the Math and Advanced Math menus have been deleted.  The
Displays menu remains the same, as does Help ... but (to support the new
multiple-window interface) a new Window menu has been added:

    Window  Help
  -+---------------------+---
   |  Cascade            |
   |  Tile Horizontally  |
   |  Tile Vertically    |
   |  Arrange Icons     >|
   +---------------------+
   |  Minimize All       |
   |  Close All          |
   +---------------------+
   |  1 Main             |
   +---------------------+

This should be familiar to anyone who used the similar menus on Win3 or Excel
or whatever.

[%%]


[3.0] NEW DEVELOPMENT ENVIRONMENT -- MDI INTERFACE, EXPLORER
   
* The changes in the VEE 4.0 development environment are immediately visible;
the new environment looks like this:

  +-------------------------------------------------------------------------+
  |                                HP VEE                         [_][ ][x] |
  +-------------------------------------------------------------------------+
  | File  Edit  View Debug Flow  Device  I/O  Data  Display  Window  Help   |
  +-------------------------------------------------------------------------+
  | [<iconic toolbar>]                                                      |
  +-------------+-----------------------------------------------------------+
  | <Program    | +-------------------------------------------+             |
  |  Explorer   | | * Main                                    |             |
  |  tree>      | +-------------------------------------------+             |
  |             | |                                           |             |
  |             | |                                           |             |
  |             | |                                           |             |
  |             | |               <vee program>               |             |
  |             | |                                           |             |
  |             | |                                           |             |
  |             | |                                           |             |
  |             | |                                           |             |
  |             | +-------------------------------------------+             |
  |             |                                                           |
  |             |                                                           |
  +-------------+-----------------------------------------------------------+

The obvious changes are the "Program Explorer" tree at left (which looks
something like Windows Explorer but allows you to traverse through the
functions and features of your VEE application rather than files and
directories), and the fact that the editing workspace itself appears as a
"Main" panel ... in VEE 4.0, all UserObjects and UserFunctions are now
accessed as separate windows, using the so-called "multiple document
interface" (MDI) scheme; they can be "iconized" and will show up as text
icons at the bottom of the work area.

Program Explorer allows you to access and probe the elements of the program
in a structured fashion; here's an example demonstrating the contents of
Program Explorer in a sample application:

  +----------------------------+
  | xv40_1.vee                 |
  |  |                         |
  |  +- Main                   |
  |  +- Local User Functions   |
  |  |   |                     |
  |  |   +- SetLocal           |
  |  |       |                 |
  |  |       +- Local Var      |
  |  |           |             |
  |  |           +- Testvar    |
  |  |                         |
  |  +- Imported User Function |
  |  |   |                     |
  |  |   +- MyLib              |
  |  |       |                 |
  |  |       +- Double1        |
  |  |       +- GetLog         |
  |  |       +- GetRoot        |
  |  |                         |
  |  +- Globals                |
  |      |                     |
  |      +- Testvar            |
  |                            |
  +----------------------------+

This example shows "Main" (the core VEE program, which is a constant); User
Functions in the programs and the variables associated with them; User
Functions from User Libraries and their variables; and Global variables
associated with the entire program.

[%%]


[4.0] NEW DEVELOPMENT ENVIRONMENT -- FIND / PROFILER

* The new Find utility allows you to search for text items through the entire
program and then jump to the context it occurs in; the utility has the
appearance:

   +----------------------------------------------------------------------+
   | Find                                                              [x]|
   +----------------------------------------------------------------------+
   | Find:       [                                                      ] |
   | Search in:  [ Entire Program                                  ][Adv] |
   | +-----------------------------+-----------------------------+        |
   | |            General          |           Advanced          |        |
   | |                             +-----------------------------+        |
   | |                               +- Show occurrences that -+ | [Find] |
   | |                               |                         | |        |
   | | [ ] Match case                | <*> Contain search text | | [Stop] |
   | | [ ] Find all matches ...      | < > Exactly match text  | |        |
   | | [x] Search nested UserObjects | < > Begin with text     | | [Help] |
   | |                               | < > End with text       | |        |
   | |                               +-------------------------+ |        |
   | +-----------------------------------------------------------+        |
   +----------------------------------------------------------------------+

The "Advanced" menu for the Find allows you to target specific classes of
objects to search through:

   +----------------------------------------------+
   | Select Object Type(s)                     [x]|
   +--------------------------------------------+-+
   |[x] Accumulator                             |^|
   |[x] Allocate Array                          | |
   |[x] Alphanumeric                            | |
   |[x] Beep                                    | |
   |[x] Break                                   | |
   |[x] Build Arb Waveform                      | |
   |[x] Build Complex                           | |
   |[x] Build Record                            | |
   |[x] Build Spectrum                          |v|
   +--------------------------------------------+-+
   | [  OK  ] [ Cancel ] [Select All] [Clear All] |
   +----------------------------------------------+

* The Profiler gives a list of User Ojects and User Functions in a program to
allow you to get the proportion of execution time spent in each:

   +-----------------------------------------------------------------------+
   | Profiler                                                           [x]|
   +--------------+--------------+---------+-----------+-------------------+
   | Name         | # Executions |  % Time | Time(sec) |                   |
   +--------------+--------------+---------+-----------+ [Start Profiling] |
   | U_SetScales                                       | [    Refresh    ] |
   | Main                                              | [     Clear     ] |
   | U_Init                                            |                   |
   | U_Close                                           |                   |
   | U_GetData                                         | [     Save      ] |
   | U_Crunch                                          | [   Options...  ] |
   |                                                   | [     Help      ] |
   +---------------------------------------------------+-------------------+

[%%]


[5.0] NEW DEVELOPMENT ENVIRONMENT -- DEBUGGING FEATURES

* VEE 4.0 provides a large set of debugging enhancements, such as a "Show
Last Error" menu entry; Error boxes also allow you to directly bring up a
window giving the context in which the error occurred, while the Error box
remains up to give the details of the error.

A Call Stack window allows you to track the level of nesting in a
UserFunction and trace the path through which it occurred; multiple stepping
options and zoom debugging capabilities are also available.

[%%]


[6.0] NEW DEVELOPMENT ENVIRONMENT -- MISCELLANEOUS CHANGES

* There are also a number of small changes in the VEE programming
environment.

First, now (in compiled mode at least) VEE assigns different colors to wiring
depending on the data type (and you can change the colors through the system
Default-Preferences tab dialogue).  The default color assignments are as
follows:

% Blue:     Numeric -- integer, real, or complex type.
% Orange:   String type
% Gray:     Nil value (usually from sequence-out pins).
% Black:    Structured types (like Records) or unknown types.

If the data on the line is an array type, the line will be two pixels wide
instead of 1.  Ensuring that specific data types flow through lines is
important, since if VEE knows what data type will flow through the lines
the programs will run faster.

* Second, VEE 4.0 provides a nice pair of new features called "LineTips" and
"TermTips"; if you simply position the mouse cursor over a wire, a little
window pops up to tell you what kind of data the wire is carrying, and if you
position the mouse cursor over a pin on an iconized object, a little window
pops up to give you the pin name.

* Third, Object Probe allows you to highlight all objects wired to an object
by holding down the Ctrl key and pressing the main mouse button; you can also
hold down Ctrl+Shift, then press on the main mouse button to highlight
objects connected to the output.

* Finally, you can now connect lines to objects off-screen; align objects in
the development environment; cut, copy, or paste objects between different
VEE programs, using the standard Windows accelerator keys to perform these
tasks.

[%%]


[7.0] INSTRUMENT MANAGER

* The VEE 4.0 Instrument manager consolidates the various I/O configuration
entries in earlier versions of VEE, providing a more convenient interface to
Plug&Play Drivers, classic VEE drivers, and Direct I/O.

The Instrument Manager has a tree-structured format, somewhat similar to that
of Program Explorer, but divided up by interface.

   +------------------------------------------------------------+
   | Instrument Manager                                      [x]|
   +------------------------------------------------------------+
   | +- Instrument List -----------------+- Configuration ----+ |
   | |                                  ^|                    | |
   | | My Configuration                  | [      Add       ] | |
   | |  |                                | [     Delete     ] | |
   | |  +- GPIO12                        | [      Edit      ] | |
   | |  |   |                            | [     Refresh    ] | |
   | |  |   +- GPIO(@12)                 |                    | |
   | |  |                                +- Get Device -------+ |
   | |  +- HP-IB7                        |                    | |
   | |  |   |                            | [   Direct I/O   ] | |
   | |  |   +- HP33120(@710)             | [Plug&Play Driver] | |
   | |  |   +- HP34401(@722)             | [Component Driver] | |
   | |  |                                | [  Panel Driver  ] | |
   | |  +- Serial9                      v|                    | |
   | +-----------------------------------+--------------------+ |
   |        [ Save Config ] [   Cancel  ] [    Help    ]        |
   +------------------------------------------------------------+

Device configuration for each device in the tree is much cleaner than before;
for example, for an RS-232 device you get the dialogue:

   +----------------------------------+
   |       Device Configuration       |
   +----------------------------------+
   |                                  |
   | Name:              [ 34401     ] |
   | Interface:         [  Serial  v] |
   | Address (eg 9)     [     9     ] |
   | Gateway:           [ This host ] |
   |                                  |
   |    [ Advanced I/O Config... ]    |
   |                                  |
   | [   OK   ] [ Cancel ] [  Help  ] |
   +----------------------------------+

The Advanced I/O Config button leads to a TabFolder dialogue to allow you to
establish general settings:

   +----------------------------------------------------+
   | Advanced Device Configuration                   [x]|
   +-----------+------------+------------+--------------+
   |  General  |   Serial   | Direct I/O | Panel Driver |
   |           +------------+------------+--------------+
   |                                                    |
   |  Timeout (sec):                        [   10    ] |
   |  Live Mode:                            [   ON    ] |
   |  Byte Ordering:                        [   MSB   ] |
   |  Description (optional):               [         ] |
   |                                                    |
   |                                                    |
   |                                                    |
   |                                                    |
   +----------------------------------------------------+
   |           [   OK   ] [ Cancel ] [  Help  ]         |
   +----------------------------------------------------+

-- specific serial parameters:

   +----------------------------------------------------+
   | Advanced Device Configuration                   [x]|
   +-----------+------------+------------+--------------+
   |  General  |   Serial   | Direct I/O | Panel Driver |
   +-----------+            +------------+--------------+
   |                                                    |
   | Baud Rate:                             [  9600   ] |
   | Character Size:                        [    8   v] |
   | Stop Bits:                             [    1    ] |
   | Parity:                                [  None  v] |
   | Handshake:                             [ DTR/DSR ] |
   | Receive Buffer Size:                   [  4096   ] |
   |                                                    |
   |                                                    |
   +----------------------------------------------------+
   |           [   OK   ] [ Cancel ] [  Help  ]         |
   +----------------------------------------------------+

-- typical Direct I/O configuration details:

   +----------------------------------------------------+
   | Advanced Device Configuration                   [x]|
   +-----------+------------+------------+--------------+
   |  General  |   Serial   | Direct I/O | Panel Driver |
   +-----------+------------+            +--------------+
   |                                                    |
   | Read Terminator:   [   "
"    ]                   |
   | Write:                                             |
   |   EOL Sequence:    [   "
"    ]                   |
   |   Multi-Field as:  [ Data Only ]                   |
   |   Array Separator: [    ","    ]                   |
   |   Array Format:    [  Linear   ]                   |
   |                                                    |
   |                                                    |
   +----------------------------------------------------+
   |           [   OK   ] [ Cancel ] [  Help  ]         |
   +----------------------------------------------------+

-- and classic VEE driver configuration:

   +----------------------------------------------------+
   | Advanced Device Configuration                   [x]|
   +-----------+------------+------------+--------------+
   |  General  |   Serial   | Direct I/O | Panel Driver |
   +-----------+------------+------------+              |
   |                                                    |
   | ID Filename:                     [  hp34401.cid  ] |
   | Sub Address:                     [               ] |
   | Error Checking:                  [      ON       ] |
   | Incremental Mode:                [      ON       ] |
   |                                                    |
   |                                                    |
   |                                                    |
   |                                                    |
   +----------------------------------------------------+
   |           [   OK   ] [ Cancel ] [  Help  ]         |
   +----------------------------------------------------+

[%%]


[8.0] VEE LANGUAGE CHANGES:  LOCAL VARIABLES / NEW FORMULA BOX

* While the VEE language itself has not been greatly extended in VEE 4.0,
there have been a few useful enhancements.

* First, you can now declare variables to be global; local; or local to a
UserFunction library.  This is done with the Declare Variable object:

   +-----------------------------+
   |       Declare Variable      |
   +-----------------------------+
   | Name:     [    global1    ] | 
   | Scope:    [    Global  ][v] |
   | Type:     [     Real   ][v] |
   | Num Dims: [      0     ][v] |
   +-----------------------------+

The fields are straightforward ... the "Scope" field can be selected as:

% Global.
% Local To Context (which would be Main, a UserFunction, or UserObject).
% Local To Library.

If you don't declare a variable, it defaults to Global.

* Second, the Formula box has been considerably enhanced:  not only can you
use array elements on both sides of operations, but you can include multiple
formulas in the same formula box and (necessarily) set up multiple output
pins.

                      +--------------------------------------------+
                      |                   Formula                  |
   +-----------+      +---+------------------------------+---------+
   | Integer A +----->| A |                              | Result  +-->
   +-----------+      |   |[ C = A[7], A[3,5] = B[5,7] ] |    A    +-->
                  +-->| B |                              |    B    +-->
   +-----------+  |   |   |                              |    C    +-->
   | Integer B +--+   +---+------------------------------+---------+
   +-----------+

[%%]


[9.0] MISCELLANEOUS ENHANCEMENTS

* Other minor changes include:

% Enum constants have an additional data output that returns the ordinal
   number of the choice the user made.

% The **** and Slider objects have added small up-and-down arrows to provide
   high-resolution (vernier) control inputs.

% The Meter object has control inputs to control the sub-ranges.

% You can now use Direct I/O to read the status of DSR and CTS lines on
   RS-232.

% Interface Operations now has an EXECUTE PASS CONTROL transaction to allow
   a program to pass control and then wait to get it back.

% There are three new system-information functions:

    - getEnv(<environment_variable>):  Read value of environment variable.
    - getHostName():                   Get network name of current host.
    - installDir():                    Get name of VEE install directory.

% The VEE program source file format has been modified to ensure that it
   changes as little as possible when additions are made.

[%%]


[10.0] FINAL COMMENTS & CAUTIONS

* Please remember the following items when dealing with VEE 4.0:

% The term "compiler" is misleading ... VEE 4.0 does not generate executable
   code ... but since runtime comes along with VEE now, this is not a big
   deal.

% Overall performance will only be increased by a factor of 3 or 4 ... but
   since this makes it competitive with other applications in its field,
   this is not a big deal, either.  The first time you run a program after it
   is brought into the VEE 4.0 environment, it will go through a compilation
   phase, meaning that it will take a little longer to execute the first time
   around.

% Use of compiled mode to get better speed may lead to some minor
   upward-compatibility problems ... a little tweaking may be required.

% VEE 4.0 programs are not backward-compatible to older versions of VEE.

[<>]

Outcomes