% Release Notes, MATLAB Compiler
% Version 2.1 (R12) 26-Jul-2000
%
% The options for the V2.1 Compiler are different from prior versions;
% use "mcc -?" for help on the current set of options.  See the
% "Command Line Differences" section below for details on which
% options have been changed.
%
% Compiler 2.1 New Features
%
% - MATLAB add-in for Visual Studio - Integrates the MATLAB Compiler
%   2.1 into Visual C/C++ 5 or 6.  When you run mbuild or mex -setup
%   it will automatically add the Project Wizard into Microsoft Visual
%   Studio so that you can use the Visual Studio environment to
%   compile and run M files.  There is also a toolbar for Visual
%   Studio which includes a Matrix Viewer.  This toolbar must be
%   enabled in a separate step.  Simply open Visual Studio and select
%   "Tools->Customize->Addins" from the menu.  In the dialog box,
%   select the check-box to enable the MATLAB addin.  See the section
%   on the MATLAB add-in in the documentation for additional
%   information.
%
% - Optimization - Several optimizations are now available using
%   Compiler 2.1.  Each optimization class can be turned on or off
%   individually using -O <class>:on or -O <class>:off.  You can also
%   specify -O all which turns on all of the optimizations available.
%
%   * fold_scalar_mxarrays - Fold scalar valued array constants
%   * fold_non_scalar_mxarrays - Fold non-scalar valued array constants
%   * optimize_integer_for_loops - Optimize for-loops with integer starts and increments
%
% - In addition to the compiler optimization work, we have focused
%   on the C/C++ Math Library to improve the performance
%   considerably.  We have added scalar accelerated versions of
%   many library functions and have worked to improve the overall
%   performance of all library applications.
%
% - MEX-Files - MEX-Files are now supported in the standalone
%   environment.  Specifying -h will automatically compile in any
%   referenced MEX-Files.  Specifying MEX-Files on the command line is
%   supported and will work the same way as compiling an M-File.
%   There is one restriction: you cannot run a compiler-generated
%   MEX-File from stand-alone code.  This is not an important
%   restriction because the M-File source can be included directly and
%   is preferred by the compiler.  See the documentation for full
%   details on this feature.
%
% - MLIB-Files - Now when compiling a collection of files (from a
%   toolbox for example) into a library, the compiler creates a
%   separate file with the M interface descriptions of the various M
%   functions that are available in the library.  This file can then
%   be used to compile other functions that make calls into the
%   M-Files in the library without recompiling the M-Files.  This
%   makes it possible to produce a shared library out of a toolbox and
%   then compile M-Files that make calls into that toolbox.  The
%   extension of these library description files is .MLIB.  See the
%   documentation on MLIB files for additional information.
%
% - MATLAB 5 integer data types (int8,16,32 and uint8,16,32) are
%   now supported.
%
% - EVAL is supported for strings that do not contain workspace
%   variables.
%
% - INPUT is supported with the same restriction as EVAL on the
%   input string
%
% - LOAD/SAVE without any variable names are both supported
%   completely
%
% - PAUSE is now supported
%
% - CONTINUE is supported
%
% - FUNCTION handles are supported
%
% - As of this release, Compiler 1.2 is no longer available and is
%   not supported due to the evolution of internal data structures
%   in MATLAB.
%
%
% Compiler 2.1 General Information
%
% The Compiler is available as an executable from the DOS/Unix Shell.
%
% The Compiler supports the following language features:
%
%     * Multi-dimensional Arrays
%     * Structures
%     * Cell Arrays
%     * Sparse Arrays
%     * varargin/varargout
%     * SWITCH/CASE
%     * TRY/CATCH
%     * EVALIN (MEX mode only)
%     * PERSISTENT
%
%  Unsupported features in this version of the Compiler are:
%
%     * User-defined classes (MATLAB Objects)
%     * Calls to the MATLAB Java interface
%
% For the latest information on the MATLAB C/C++ Math Library, see the 
% MATLABROOT/extern/examples/cmath/release.txt and
% MATLABROOT/extern/examples/cppmath/release.txt files, respectively.
%
% 
% NOTE for Windows 95/98/NT customers: In this release of the Compiler, the 
% following list of platform compiler vendors and product releases are
% supported "out-of-the-box":
%
%       MSVC C/C++ 4.2, 5.0, and 6.0(*)
%       Borland C++ 5.0, 5.02
%       Borland C++Builder 3, 4, 5
%       Borland C++ 5.5 (free command line tools)
%       LCC (C only compiler, bundled with MATLAB)
%
% (*) When installing MSVC 6.0, if you need to change where this compiler is 
%     installed, you must change the location of the Common directory (at the 
%     appropriate installer dialog.) If you change the location of the VC98 
%     directory from its default setting, the MEX and MBUILD scripts will not
%     work properly. 
%
% If you experience a problem when using the MATLAB Compiler, please
% fill out a bug report so that we can examine and fix the problem.
% (Type help COMPILER_BUG_REPORT for details.)
%
% Exception Handling and the Compiler-Generated C++ Code
%
% When using C++, we rely on the availability of exception handling in the
% C++ language.  Several of the compilers that we support do not properly 
% support C++ exception handling, and as a result our support for exception
% handling is limited on those platforms, namely:
%
%       GNU C++ 2.7.2             - Does not support C++ exception handling
%       Borland C++(all versions) - Has a restriction on support of goto 
%                                   statements within try/catch blocks.  The 
%                                   MATLAB Compiler sometimes generates goto 
%                                   statements for complicated "if" conditional 
%                                   statements.  The generated code for these 
%                                   will not compile in Borland C++, as a result
%                                   you will be required to simplify the if condition.
%
% NOTE: The -A debugline switch is implemented using try/catch statements,
%       use of this switch is also restricted in the above C++ 
%       implementations for the same reasons.
%
% Command Line Differences
%
% New Switches:
%   O <optimization> Optimization.  There are three possibilities:
%
%    <optimization class>:[on|off] - Turns the class on or off 
%    For example:  -O fold_scalar_mxarrays:on
%
%    list - Lists the available optimization classes.
%
%    <optimization level> - Uses a bundle file called
%    opt_bundle_<level> to determine which optimizations are on or off.
%    For example "-O all" looks for a bundle file called opt_bundle_all
%    and uses the switches present.  The current optimization
%    levels are "all" and "none".
%
% New Filetypes
%
%    Before this release, the compiler would pass files MLIB-Files
%    and MEX-Files specified on the compiler command line along to
%    MBUILD.  In this release, these files will be handled by the
%    compiler. See the sections above for more information about
%    MEX-File and MLIB-File handling in the compiler.
%
% Obsolete Switches
%
%    The -V1.2 switch is no longer supported, along with any and
%    all switches recognized by the V1.2 compiler.  
%

% $Revision: 1.32 $  $Date: 2000/08/31 21:33:44 $
% Copyright 1984-2000 The MathWorks, Inc.
