**[P] version** -- Version control

__Syntax__

Show version number to which command interpreter is set

__vers__**ion**

Interactively or in do-files (but not in ado-files or programs defined by
**program**)

Set command interpreter to version *#* and set other features such as
random-number generators (RNGs) to version *#*

__vers__**ion** *#*

__vers__**ion** *#***:** *command*

In ado-files or programs (but not interactively or in do-files)

Set command interpreter to version *#*, but do not set other features
such as RNGs to version *#*

__vers__**ion** *#* [**,** **born(***ddMONyyyy***)**]

__vers__**ion** *#* [**,** **born(***ddMONyyyy***)**]**:** *command*

Everywhere (interactively, in do-files, in ado-files, and in programs)

Set only the other features such as RNGs to version *#*

__vers__**ion** *#***,** **user**

__vers__**ion** *#***,** **user:** *command*

__Description__

**version** with no arguments shows the current internal version number to
which the command interpreter is set. It can be used interactively, in
do-files, or in ado-files.

**version** *#* sets the command interpreter and other features such as
random-number generators to version *#*. **version** *#* is used to allow old
programs to run correctly under more recent versions of Stata and to
ensure that new programs run correctly under future versions of Stata.

**version** *#***:** executes *command* under version *#* and then resets the version
to what it was before the **version** *#***:** ... command was given.

For information about external version control, see **[R] which**.

__Options__

**born(***ddMONyyyy***)** is rarely specified and indicates that the Stata
executable must be dated *ddMONyyyy* (for example, 13Jul2013) or later.
StataCorp and users sometimes write programs in ado-files that
require the Stata executable to be of a certain date. The **born()**
option allows us or the author of an ado-file to ensure that ado-code
that requires a certain updated executable is not run with an older
executable.

Generally all that matters is the version number, so you would not
use the **born()** option. You use **born()** in the rare case that you are
exploiting a feature added to the executable after the initial
release of that version of Stata. See whatsnew to browse the
features added to the current version of Stata since its original
release.

**user** causes **version** to backdate other features of Stata. For instance,
the results of Stata's random-number generators (RNGs) change --
improve -- with each version of Stata. The RNGs are said to be under
user-version control rather than version control.

If you type **version** *#* interactively or in your do-files, Stata not
only understands old syntax, it backdates (removes) improvements made
after *#*, such as those to the RNGs. You do not have to specify the
**user** option. The modern version of Stata will still produce the same
results as it produced in the past.

Programmers: When you type **version** *#* in your programs and ado-files,
Stata does not backdate the other improvements. If, for some reason,
you want to force the other improvements to be backdated, specify the
**user** option. Option **user** is seldom used except by those (say,
developers at StataCorp) needing to test that Stata works properly.

__Remarks__

All programs and do-files written for the current version of Stata should
include **version 15.1** as the first executable statement.

Programs and do-files written for earlier releases should include the
appropriate **version** line at the top.

Stata is continually being improved, meaning that programs and do-files
written for older versions might stop working. The solution is to
specify the version of Stata that you are using at the top of programs
and do-files that you write, for example,

--------------------------------- begin myprog.do ---
**version 15.1**

use mydata, clear
regress ...
...
----------------------------------- end myprog.do ---

------------------------------- begin example.ado ---
program myprog
**version 15.1**
...
end
--------------------------------- end example.ado ---

Future versions of Stata will then continue to interpret your programs
correctly.

All programs distributed by StataCorp have a version statement; thus, old
programs work even if Stata has changed.

__Summary of version changes__

There have been many changes made to Stata over the years. Most do not
matter in the sense that they will not break old programs even if the
version is not set correctly. However, some changes in Stata will break
old programs unless the version number is set back to the appropriate
version number. The list below outlines these important changes. This
list is probably of interest only to those trying to update an old
program to a new version's syntax -- most people will just set the
version number appropriately instead and not worry about any of this.

__If you set version to less than 15.1__

1. **esizei** for F tests after ANOVA has the following changes:
a. Epsilon-squared is labeled using "Omega-Squared", and the naive
confidence limits are also reported in the table.
b. The modern omega-squared statistic is no longer reported.

2. **estat esize** has the following changes:
a. Epsilon-squared is labeled using "Omega-Squared" and, when the
**omega** option is specified, is reported with confidence limits.
b. The **epsilon** option is not allowed.

3. **merge** will evaluate its **keep()** option before evaluating its
**assert()** option; thus, it will not result in an error in cases
where **keep()** discarded certain observations that would have
violated the specified **assert()** option.

4. **drop** and **keep** do not clear results stored in **r()**. They do not
store **r(N_drop)** and **r(k_drop)**, the number of observations and
number of variables dropped, respectively.

5. **gsem** assumes the **listwise** option when the **lclass()** option is
specified.

6. **zipfile** and **unzipfile** use a 32-bit library to compress and
uncompress zip files, which limits file size to 2 GBs.

__If you set version to less than 15.0__

1. Scale and auxiliary parameters revert to the *eqname***:_cons** form
instead of **/***eqname* for the following estimation commands:

**biprobit**
**etpoisson**
**etregress**
**gsem**
**heckman**
**heckoprobit**
**heckprobit**
**irt**
**ivpoisson**
**mecloglog**
**meglm**
**melogit**
**menbreg**
**meologit**
**meoprobit**
**mepoisson**
**meprobit**
**mestreg**
**nbreg**
**ologit**
**oprobit**
**rocfit**
**scobit**
**sem**
**streg**
**tnbreg**
**tobit**
**truncreg**
**xtcloglog**
**xtintreg**
**xtlogit**
**xtnbreg**
**xtologit**
**xtoprobit**
**xtpoisson**
**xtprobit**
**xttobit**
**zinb**

2. **tobit** uses the old syntax; see **tobit_14**. The linear equation
name is reverted to **model**, and the scale parameter is reverted to
**sigma:_cons**.

3. **ml** translates **/***eqname* to **(***eqname***:)** instead of **(***eqname***:,**
**freeparm)**.

4. **xttobit** and **xtintreg** do not, by default, calculate and display
the likelihood-ratio test against the pooled model.

5. The variables within the column names of covariance estimates are
reversed for the following estimation commands:

**gsem**
**meglm**
**melogit**
**meprobit**
**mecloglog**
**meologit**
**meoprobit**
**mepoisson**
**menbreg**
**mestreg**

6. **javacall** does not require the **jars()** option to find JAR files,
although it is recommended. If the **jars()** option is not
specified, then all JAR files along the ado-path will be added to
the class-path for the plugin.

7. **estat gof** and **estat ggof** after **sem** compute the standardized root
mean squared residual (SRMR) by standardizing the fitted
covariance elements using fitted variances instead of the sample
variances.

8. **bayesmh** excludes omitted regression coefficients such as base
levels of factor variables from the estimation matrices **e(init)**,
**e(Cov)**, **e(ess)**, **e(mcse)**, **e(sd)**, **e(median)**, **e(mean)**, and **e(cri)**.

9. **xtstreg**, **mestreg**, and **gsem** will use a Weibull log likelihood
shifted by **log(***depvar***)** for each observation with a failure.

10. **streg**'s **strata()** option does not treat the stratum variable as a
factor variable during estimation. Instead, it generates
stratum-specific indicators (dummy variables) for the stratum
variable, includes them in the model, and then leaves them behind
after estimation in the current dataset. For example, if
**strata(drug)** is specified and **drug** contains values of 1, 2, and
3, **streg, strata(drug)** will generate two dummy variables called
**_Sdrug_2** and **_Sdrug_3** and will include them as independent
variables in the main equation and as covariates in the equations
for ancillary parameters (if any).

11. If user version is less than 15, the levels of factor variables
are tracked with the factor instead of the term, even if **set**
**fvtrack term** is in effect. See **set fvtrack**.

12. **icd10 clean** removes the period from the code in the specified
variable when it standardize the format of codes.

13. **frontier** and **xtfrontier** reverts auxiliary parameter to **/ilgtgamma**
instead of **/lgtgamma**.

14. **bayesmh** with nonlinear models follows different rules when you
specify linear combinations within substitutable expressions.
a. When you specify **{xb: x1 x2}**, the constant term is not included
automatically. That is, **{xb: x1 x2}** is equivalent to
**{xb_x1}*x1 + {xb_x2}*x2**.
b. Options **noconstant** and **xb** are not allowed within
linear-combination specifications.
c. Regression coefficients of linear combinations are defined as
**{***xbname***_***varname***}**. For example, if you specify a linear
combination **{xb: x1 x2}**, you refer to regression coefficients of
variables **x1** and **x2** as **{xb_x1}** and **{xb_x2}**.
d. The specification **{xb:z}** corresponds to the linear combination
containing variable **z**; that is, **{xb_z}*z**.
In addition, **bayesmh** uses a different ordering of parameters of
nonlinear specifications during simulation and when displaying
results. It simulates and displays parameters in the same order as
they appear in the nonlinear expression.

15. Matrix stripe name elements using **var()** or **cov()** will not be
transformed to a canonical form. For example, a stripe element
specified as **cov(a)** will not be transformed to **var(a)**, and a
stripe element specified as **var(a,b)** will not be transformed to
**cov(a,b)**.

__If you set version to less than 14.2__

1. **icd10** will use the old syntax and option names.

2. **predict** after **irt**, **gsem**, **meglm**, **melogit**, **meprobit**, **mecloglog**,
**meologit**, **meoprobit**, **mepoisson**, **menbreg**, and **mestreg** requires the
original estimation sample for computing empirical Bayes means,
empirical Bayes modes, and other predictions that are conditional
on them.

__If you set version to less than 14.1__

1. **ci** and **cii** use the old syntax; see **ci_14_0**.

2. **eteffects**, **teffects**, and **stteffects** will put the **r.** contrast
operator on the factor variable in the potential-outcome mean
equation (**POmean**).

3. The **ivprobit** parameterization of the covariance parameters has
changed for models with more than one endogenous covariate. The
Cholesky factored covariance parameterization has been replaced
with the **atanh** transformation for the correlation parameters and
the **log** transformation for the standard deviations. Transformed
correlation parameters are labeled in the stripe of the
coefficient vector as **athrho***i***_***j*, *i*>*j*, and the transformed
standard-deviation parameters are labeled **lnsigma***i*, *i* __>__ 2.

4. **predict, pr** after **ivprobit** and **predict, pr** after **ivtobit** now
include the residuals from the endogenous model when computing
the probabilities. The estimates from **ivprobit** or **ivtobit** must
be run under version 14.1 or higher.

5. **predict** after **xttobit** and **xtintreg** will allow options **pr0()**,
**e0()**, and **ystar0()**.

6. **putexcel** will use the old formatting syntax and overwrite cell
formats by default.

7. **import delimited** will use a tab character (**\t**) instead of a comma
as the default delimiter if it cannot automatically determine the
delimiter used in the file.

__If you set version to less than 14.0__

1. As of Stata 14, Stata's random-number generators (RNGs) were
improved, renamed, and restructured; see **[R] set seed**. The
default RNG in Stata 14 is the 64-bit Mersenne Twister (**mt64**).
Before 14, the RNG was the 32-bit KISS (**kiss32**). If user version
is 14, RNG results are based on **mt64**. If user version is less
than 14, RNG results are based on **kiss32**. This also affects the
results of commands that use the RNGs, such as **bootstrap**,
**bsample**, and the **mi** suite of commands.

2. If the current RNG is **kiss32** and the **kiss32** seed has been set to
version 13.1 or earlier, then **runiform()** generates a random
variate on the interval [0,1). As of Stata 14, **runiform()**
generates random variates on the interval (0,1) for all RNGs.

3. **destring**'s **ignore()** option treats **asbytes** as the default rather
than **aschars**.

4. **etregress** reports the treatment coefficient without using
factor-variable notation (see **fvvarlist**). An **lf** evaluator is
also used in maximum likelihood estimation (see **ml**).

5. **icd9** and **icd9p** subcommands **check** and **generate** (with option
**description**) will alter the sort order. (Under later versions,
they preserve sort order.)

6. **ksmirnov** reports the corrected p-value for one-sample and
two-sample tests.

7. **margins** after **mixed** with multilevel weights will use only the
observation-level weights when computing means.

8. **margins**, after the following estimation commands, changes its
default prediction when neither option **predict()** nor option
**expression()** is specified.

a. For **heckoprobit**, the default is the marginal probability for
the first outcome.

b. For **manova**, **mvreg**, **mgarch ccc**, **mgarch dcc**, **mgarch dvech**,
**mgarch vcc**, **reg3**, **sureg**, **varbasic**, **var**, and **vec**, the default
is the linear prediction for the first equation.

c. For **mlogit**, **mprobit**, **ologit**, **oprobit**, and **slogit**, the default
is the probability for the first outcome.

d. For **meologit**, **meoprobit**, and **meqrlogit**, the default is the
probability for the first outcome. For models with random
effects, this default will typically cause an error because
empirical Bayes estimates are not allowed with **margins**.

e. For **clogit** and **xtlogit,fe**, the default will cause an error
because **predict(pc1)** is not allowed with **margins**.

f. For **gsem**, the default is the expected value for the first
outcome. For **family(multinomial)** and **family(ordinal)**, the
default is the probability for the first level of the first
outcome. For models with latent variables, this default will
typically cause an error because empirical Bayes estimates
are not allowed with **margins**.

g. For **rologit**, the default will cause an error because
**predict(pr)** is not allowed with **margins**.

h. For **sem**, the default will cause an error because **predict(xb)**
is not syntactically compatible with **margins**.

9. **mi impute pmm**, by default, will perform imputation using one
nearest neighbor; that is, it will assume option **knn(1)**.

10. **mlogit** and **mprobit** will not account for the base outcome equation
when constraints are specified using equation indices. For
example,

**sysuse auto**
**constraint 1 [#2]turn = [#2]trunk**
**mlogit rep78 turn trunk, baseoutcome(1) constraint(1)**

will result in **[3]turn = [3]trunk** instead of **[2]turn = [2]trunk**.

**mlogit** and **mprobit** will not allow constraints defined using
outcome values that are associated with a value label. For
example,

**label define replab 1 "A" 2 "B" 3 "C" 4 "D" 5 "E"**
**label values rep78 replab**
**constraint 2 [2]turn = [2]trunk**
**mprobit rep78 turn trunk, baseoutcome(1) constraint(1)**

will drop constraint 2.

**mprobit**'s estimated coefficients will only be accessible using
the outcome value when the equation name is the outcome value.

11. **predict** after **gsem** defaults to using the empirical Bayes mean
estimates instead of computing predictions that are marginal with
respect to latent variables.

12. The default predictions after **meglm**, **melogit**, **meprobit**,
**mecloglog**, **meologit**, **meoprobit**, **mepoisson**, and **menbreg** are
computed using the empirical Bayes mean estimates instead of
computing predictions that are marginal with respect to the
random effects.

13. **reg3** and **sureg** will let collinear variables be identified using
matrix inversion instead of using **_rmcoll**.

14. **svy jackknife** will use the default delete-1 multiplier instead of
unit values specified in the **multiplier()** suboption of option
**jkrweight()** of **svyset**.

__If you set version to less than 13.1__

1. **mecloglog**, **melogit**, and **meprobit** retain perfect predictors for
binary outcome models unless the **noasis** option is specified.

2. **bootstrap** and **bsample** with option **idcluster()** will create a
unique identifier for each resampled cluster but only within
strata if the **strata()** option is specified.

__If you set version to less than 13.0__

1. The two-argument version of **normalden()** and **lnnormalden()**,
respectively, return the rescaled standard normal density and its
log. The rescaled standard normal density can be interpreted as
the density of s*X at s*x, where X is standard normal. The Mata
functions **normalden()** and **lnnormalden()** have matching behavior.

2. **margins** will use the standard normal distribution for p-value and
confidence interval calculations even if computing margins of the
linear prediction and if the current estimation results have the
residual degrees of freedom posted to **e(df_r)**.

3. **nlcom** and **predictnl** will use the *t* distribution for p-value and
confidence interval calculations if the current estimation
results have the residual degrees of freedom posted to **e(df_r)**.

4. **testnl** will use the *F* distribution for p-value calculations if
the current estimation results have the residual degrees of
freedom posted to **e(df_r)**.

5. **estimates table** will recognize the original meaning of the **label**
option, which is to display variable labels rather than variable
names.

6. **proportion** will use the normal approximation to compute the
limits of confidence intervals.

7. **tsreport**, by default, produces no output and only saves
**r(N_gaps)**.

8. **predict** after **boxcox** allows statistic **xbt**. Additionally,
statistics **yhat** and **residuals** are estimated using the
back-transform method, while version 13 uses the smearing method
to compute predicted values.

9. When you use macros, the results of string expressions will have
leading spaces trimmed.

10. **sem** will report zero-valued constraints on covariances between
exogenous variables.

11. **merge** will evaluate its **keep()** option before evaluating its
**assert()** option; thus it will not result in an error in cases
where **keep()** discarded certain observations that would have
violated the specified **assert()** option.

12. **decode** will create strings of at most 244 characters long, even
if value labels are longer than that.

13. **infix** with the **str** type specification will create strings of at
most 244 characters long.

14. **infile** (free format) will create strings of at most 244
characters long.

15. **file write** will write at most 244 characters of the result of a
string expression.

16. The domain of the degrees-of-freedom argument of functions
**nchi2()**, **invnchi2()**, and **npnchi2()** will be from 1 to 200
(integers only). In version 13.0, this domain is from 2e-10 to
1e+6 (may be nonintegral). The domain (or range) of the
noncentrality parameter in functions **nchi2()**, **invnchi2()**, and
**npnchi2()** will be from 0 to 1,000. In version 13.0, this domain
(or range) is from 0 to 10,000. The Mata functions **nchi2()**,
**invnchi2()**, and **npnchi2()** have matching behavior.

__If you set version to less than 12.1__

1. **qreg** uses the original standard-error calculation instead of the
improved calculation in version 12.1 that uses a better bandwidth
and offers options to control the density estimator.

2. **rnormal()** under user-version 12.0 may produce different variates
than **rnormal()** produces under user-version 12.1. The version of
**rnormal()** is determined by the version at the time you **set seed**
(see item 4 under "If you set version to less than 11.2").
Variates produced under version 12.1 are identical to those
produced under version 11.2.

__If you set version to less than 12.0__

1. **xtmixed** will report restricted maximum-likelihood (REML) results.
If you want maximum likelihood (ML) results, you must specify the
**mle** option.

2. **estat gof** after **poisson** will report only the deviance statistic
by default. To get the Pearson statistic, you must specify the
**pearson** option.

3. **cnsreg** will not check for collinear variables prior to estimation
even if the **collinear** option is not specified.

4. **margins** behaves as if **estimtolerance(1e-7)** was specified even if
a different value is specified.

5. **sfrancia** uses the Box-Cox transformation instead of an algorithm
based on the log transformation for approximating the sampling
distribution of the W' statistic for testing normality.

6. **mi estimate** computes fractions of missing information and
relative efficiencies using large-sample degrees of freedom
rather than using a small-sample adjustment.

7. **mi impute monotone** omits imputation variables that do not contain
any missing values in the imputation sample from the imputation
model.

__If you set version to less than 11.2__

1. **drawnorm** produces different results because of changes in the
**rnormal()** function, which are described below.

2. **mi impute** produces different results because of changes in the
**rnormal()** function, which are described below. The statistical
properties of these results are neither better nor worse than
modern results, but they are different.

3. Function **rnormal()**, the Gaussian random-number generation
function, produces different values before user-version 11.2.
These pseudo-random number sequences were found to be
insufficiently random for certain applications.

4. *Aside:* Version control for all random-number generators is
specified at the time the **set seed** command is given, not at the
time the random-number generation function such as **rnormal()** is
used. For instance, typing

. *(assume user-version is set to be 11.2 or later)*

. **set seed 123456789**

. *any_command ...*

causes *any_command* to use that version of **rnormal()** even if
*any_command* is an ado-file containing an explicit **version**
statement setting the version to less than 11.2. This occurs
because the version of **rnormal()** that is used was determined at
the time the seed was set, and the seed was set under version
11.2 or later.

This works in both directions. Consider

. **version 11.1: set seed 123456789**

. *any_command ...*

In this case, *any_command* uses the older version of **rnormal()**
because the seed was set under version 11.1, before **rnormal()** was
updated. *any_command* uses the older version of **rnormal()** even if
*any_command* itself includes an explicit **version** statement setting
the version to 11.2 or later.

Thus both older and newer ado-files can use the newer or older
**rnormal()**, and they can do so without modification. The only
case in which you need to modify a do-file or ado-file is when it
is older, it contains **set seed**, and you now want it to use the
new **rnormal()**. In that case, find the **set seed** command in the
do-file or ado-file,

**version 10** // *for example*
...
**set seed 123456789**
...

and change it to read

**version 10** // *for example*
...
**version 11.2: set seed 123456789**
...

You need to change only the one line.

5. *Aside, continued:* Everything written above about prefixing **set**
**seed** with a **version** is irrelevant if you are restoring the seed
to a state previously obtained from **c(rngstate)**:

**set seed X075bcd151f123bb5159a55e50022865700023e53**

The string state **X075bcd151f123bb5159a55e50022865700023e53**
includes the version number at the time the seed was set.
Prefixing the above with **version**, whether older or newer, will do
no harm but is unnecessary.

__If you set version to less than 11.1__

1. **xtnbreg, re** returns **xtn_re** in **e(cmd2)**, and **xtnbreg, fe** returns
**xtn_fe** in **e(cmd2)**. As of version 11.1, **xtnbreg** instead returns
the **e(model)** macro, containing **re**, **fe**, or **pa**, indicating which
model was specified.

__If you set version to less than 11.0__

1. **anova** reverts to pre-Stata 11 syntax. Options **category()**,
**class()**, **continuous()**, **regress**, **anova**, **noanova**, and **detail** are
allowed, while factor-variable notation (the **i.** and **c.**
operators) is not allowed. The ***** symbol indicates interaction
(instead of **#**), and therefore *****, **-**, and **?** are not allowed for
variable-name expansion. Noninteger and negative values are
allowed as category levels.

2. **correlate**'s **_coef** option is allowed.

3. **ereturn display** ignores the scalars in **e()**. As of version 11,
**ereturn** **display** checks that the value of scalar **e(k_eq)** contains
the number of equations in **e(b)** if it is set.

4. **manova** reverts to pre-Stata 11 syntax. Options **category()**,
**class()**, **continuous()**, and **detail** are allowed, while
factor-variable notation (the **i.** and **c.** operators) is not
allowed. The ***** symbol indicates interaction (instead of **#**), and
therefore *****, **-**, and **?** are not allowed for variable-name
expansion. Noninteger and negative values are allowed as
category levels.

5. **odbc insert** will insert data by constructing an SQL insert
statement and will not use parameterized inserts.

6. **odbc load** will quote the table name used in the SQL SELECT
statement that loads your data unless the **noquote** option is used.

7. **outfile** will not export date-formatted variables as strings.

8. **predict** options **scores** and **csnell** after **stcox** will produce
partial, observation-level diagnostics instead of subject-level
diagnostics. This matters only if you have multiple records per
subject in your survival data.

9. Abbreviating **predict** option **scores** with **sc** after **stcox** is
allowed. Modern syntax requires **sco** minimally.

10. **predict** options **mgale** and **csnell** after **streg** will produce
partial, observation-level diagnostics instead of subject-level
diagnostics. This matters only if you have multiple records per
subject in your survival data.

11. Abbreviating **predict** option **csnell** with **cs** after **streg** is
allowed. Modern syntax requires **csn** minimally.

12. **xtreg, re vce(robust)** uses the Huber/White/sandwich estimator of
the variance-covariance of the estimator (VCE). As of version
11, **xtreg, re vce(robust)** is equivalent to **xtreg, re vce(cluster**
*panelvar***)**, where *panelvar* identifies the panels.

13. **logistic**, **logit**, **blogit**, and **mlogit** will not display the
exponentiated constant when coefficients are displayed in
"eform", for example, odds-ratios instead of coefficients in
logistic regression.

__If you set version to less than 10.1__

1. Function **Binomial()** is allowed. The modern replacement for
**Binomial()** is **binomialtail()**.

2. **canon** will display raw coefficients and conditionally estimated
standard errors and confidence intervals in a standard estimation
table by default, rather than raw coefficients in matrix form.

3. **drawnorm** uses **invnormal(uniform())** to generate normal random
variates instead of using **rnormal()**.

4. **egen** function **mode()** with option **missing** will not treat missing
values as a category.

5. The **reshape** J variable value and variable labels and all xij
variable labels, when reshaping from long to wide and back to
long, will not be preserved.

6. **xtmixed**, **xtmelogit**, and **xtmepoisson**, without an explicit level
variable (or **_all**) followed by a colon in the random-effects
specification, assume a specification of **_all:**.

__If you set version to less than 10__

1. **ca** and **camat**, instead of reporting percent inertias, report
inertias such that their sums equal the total inertia.

2. **cf****, verbose** produces the same output as **cf, all**.

3. **clear** will perform the same list of actions as **clear all**, except
for **program drop _all**.

4. **cnreg** and **tobit** will no longer accept the **vce()** option.

5. **datasignature** runs **_datasignature**, which is what the
**datasignature** command was in Stata 9.

6. Functions **norm()**, **normd()**, **normden()**, **invnorm()**, and **lnfact()**,
which were renamed in Stata 9, are allowed. The corresponding
modern functions are **normal()**, **normalden()**, **normalden()**,
**invnormal()**, and **lnfactorial()**.

7. **graph use** will name the graph and window Graph, rather than
naming after the filename, unless the **name()** option is specified.

8. **mdslong**'s **force** option corrects problems with the supplied
proximity information and multiple measurements on (i,j) are
averaged. In version 10, measurements for (i,j) and (j,i) are
averaged if **force** is specified, but additional multiple
measurements result in an error even if **force** is specified.

9. **mkspline** calculates percentiles for linear splines using **egen**'s
**pctile()** function instead of using the **centile** command. In
addition, **fweight**s are not allowed for linear splines.

10. **mlogit** had the following name changes in its **e()** results:

Old name New name
-------------------------------------
**e(basecat)** **e(baseout)**
**e(ibasecat)** **e(ibaseout)**
**e(k_cat)** **e(k_out)**
**e(cat)** **e(out)**

11. **odbc load** will import date-and-time variables as **%td** instead of
**%tc**, and TIME data types will be imported as strings.

12. **score**, a command associated with the **factor** command of Stata 8,
is allowed.

13. **sts graph**'s **risktable()** option and **sts list**'s **survival** option are
not allowed.

14. **syntax** **[,** *whatever***(real** *...***)]** uses a **%9.0g** format instead of a
**%18.0g** format for the number placed in the *whatever* local macro.

15. **xtabond** will use the version 9 **xtabond** instead of **xtdpd** to
perform the computations, the output will be in differences
instead of levels, and the constant will be a time trend instead
of a constant in levels. **estat abond** and **estat sargan** will not
work, and **predict** will have the version 9 syntax.

16. **xtlogit**, **xtprobit**, **xtcloglog**, **xtintreg**, **xttobit**, and **xtpoisson,**
**normal** random-effects models will use default
**intmethod(aghermite)**.

__If you set version to less than 9.2__

1. Mata structures introduced in Stata 9.2 are available even if you
set version to less than 9.2. The only version control issue is
that the format of **.mlib** libraries is different. You do not need
to recompile old Mata code. However, because of the format
change, you will not be able to add new members to old libraries.
Libraries cannot contain a mix of old and new code. To add new
members, you must first rebuild the old library.

__If you set version to less than 9.1__

1. **logit**, **probit**, and **dprobit** will accept **aweight**s. Support for
**aweight**s was removed from these commands because the
interpretation of **aweight**ed data is nonsensical for these models.

2. **nl** will not allow the **vce()** option; no longer reports each
parameter as its own equation; reports the previous sum of
squares after each iteration instead of the new sum of squares in
the iteration log; reports an overall model F test; allows fewer
**predict** options; and will not allow **mfx** or **lrtest** postestimation
commands.

3. **permute** uses one random uniform variable (instead of two) to
generate Monte Carlo permutations of the permute variable.

4. **xtreg, fe** adjusts the robust-cluster VCE for the within
transform.

5. **xtreg, fe** and **xtreg, re** do not require that the panels are nested
within the clusters when computing the cluster-robust VCE.

__If you set version to less than 9__

1. **svyset** reverts to pre-Stata 9 syntax and logic. The dataset must
be **svyset** by the pre-Stata 9 **svyset** command to use the pre-Stata
9 estimation commands **svygnbreg**, **svyheckman**, **svyheckprob**,
**svyivreg**, **svylogit**, **svymlogit**, **svynbreg**, **svyologit**, **svyoprobit**,
**svypoisson**, **svyprobit**, and **svyregress**.

2. **factor**, **pca**, and related commands revert to pre-Stata 9 behavior.

To begin with, **factor** and **pca** store things differently. Before
Stata 9, these commands were a strange mix of e-class and
r-class; they set **e(sample)** but otherwise mostly stored results
in **r()**. They also stored secret matrices under odd names that
everyone knew about and fetched via **matrix get()**. All of that is
restored.

Second, **factor,** **ml** **protect** uses a different random-number
generator, one that is not settable by the more modern **factor**'s
**seed()** option.

Third, **rotate** reverts to pre-Stata 9 syntax and logic.

Fourth, old command **score** stops issuing warning messages that it
is out of date.

Finally, old command **greigen** works as it used to work, syntax and
logic. (As of Stata 9, **greigen** was undocumented and configured
to call through to the modern **screeplot**.)

3. **nl** reverts to pre-Stata 9 syntax.

4. **bootstrap**, **bstat**, and **jknife** revert to pre-Stata 9 syntax and
logic.

5. **rocfit** reverts to pre-Stata 9 syntax and logic.

6. **sw** reverts to pre-Stata 9 syntax and logic.

7. **cluster dendrogram** reverts to pre-Stata 9 syntax and logic.

8. Pre-Stata 8 *[sic]* command **xthausman** will work. **xthausman** was
replaced by **hausman** in Stata 8.

9. **irf graph** and **xtline** allow the **byopts()** option to be abbreviated
**by()** rather than requiring at least **byop()**.

10. **dotplot** will allow the **by()** option as a synonym for the **over()**
option.

11. **glm** defaults the **iterate()** option to 50 rather than **c(maxiter)**.

12. **histogram** places white space below the horizontal axis.

13. **ml display** changes the look of survey results.

14. **ologit** and **oprobit** revert to pre-Stata 9 logic in how **e(b)** and
**e(V)** are stored. Results were stored in two equations, with all
cutpoints stored in the second.

15. **tobit** and **cnreg** revert to pre-Stata 9 logic in how **e(b)** and **e(V)**
are stored. Results were stored in one equation containing both
coefficients and the ancillary variance parameter.

16. **tabstat** returns a result in matrix **r(StatTot)** rather than
**r(StatTotal)**.

17. **glogit** and **gprobit**, the weighted-least-squares estimators, use a
different formula for the weights. In Stata 9, a new (better)
formula was adopted, see Greene (1997, *Econometric Analysis, 3rd*
*ed.*, Prentice Hall, 896).

18. **xtintreg**, **xtlogit**, **xtprobit**, **xtcloglog**, **xtpoisson**, and **xttobit**
revert to using nonadaptive Gauss-Hermite quadrature rather than
adaptive quadrature. Also, the **quad()** option (modern name
**intpoints()**) comes back to life.

19. **set help** will be allowed (but it will not do anything).

20. In input, **\\** will be substituted to **\** always, not just after the
macro-substitution characters **$** and **`**.

__If you set version to 8.1 or less__

1. **graph twoway** default axis titles show the labels or variable
names for all variables plotted on an axis instead of leaving the
axis title blank when the axis represents multiple variables.

2. **clogit** will not allow the **vce()** option nor many of the **ml**
**maximize** options.

__If you set version to 8.0 or less__

1. **ml** ignores the **constraint()** option if there are no predictors in
the first equation.

2. **outfile** automatically includes the extended missing-value codes
(**.a**, **.b**, ..., **.z**) in its output. With version 8.1 or later,
extended missing-value codes are treated like the system missing
value **.** and are changed to null strings (**""**) unless the **missing**
and **comma** options are specified.

__If you set version to 7.0 or less__

1. **graph** uses the old syntax; see **graph7**.

2. **estimates** reverts to the previous interpretation and syntax, and
**_estimates** and **ereturn** are not recognized as Stata commands.

3. The **svy** commands allow the **svyset** parameters to be specified as
part of the command.

4. Also, the following commands revert to their old syntax: **ac**,
**acprplot**, **avplot**, **avplots**, **bootstrap**, **bs**, **bsample**, **bstat**, **cchart**,
**cprplot**, **cumsp**, **cusum**, **dotplot**, **findit**, **fracplot**, **gladder**,
**greigen**, **grmeanby**, **histogram**, **intreg**, **kdensity**, **lowess**, **lroc**,
**lsens**, **ltable**, **lvr2plot**, **newey**, **pac**, **pchart**, **pchi**, **pergram**,
**pkexamine**, **pksumm**, **pnorm**, **qchi**, **qladder**, **qnorm**, **qqplot**, **quantile**,
**rchart**, **roccomp**, **rocplot**, **roctab**, **rvfplot**, **rvpplot**, **serrbar**,
**shewhart**, **simulate**, **spikeplot**, **stci**, **stcoxkm**, **stcurve**, **stphplot**,
**stphtest**, **strate**, **sts**, **symplot**, **tabodds**, **test**, **wntestb**, **xchart**,
and **xcorr**. Most of these are because of the change of the **graph**
command.

5. Throughout Stata, **.** == **.a** == **.b** == ... == **.z**.

6. Missing values in matrices are less likely to be accepted.

7. **generate** *x* **=** *string_expression* will produce an error; you are
required to specify the type; see **[D] generate**.

8. **if**, **while**, **foreach**, **forvalues**, and other commands that use the
open and close braces, **{** and **}**, often allow the item enclosed in
the braces to appear on the same line as the braces.

9. **test** allows the coefficient names not to match 1 to 1 (regardless
of order) when testing equality of coefficients of two equations.
The test is performed on the coefficients in common.

10. **list** allows the **doublespace** option, which is then treated as if
it were the **separator(1)** option. Also, even with the version set
to 7.0 or less, **list** uses the new style of listing unless the
**clean** option is specified to remove the dividing and separating
lines.

11. **outfile** uses right justification for strings.

12. **reldif****(***x***,***y***)** with *x* and *y* as equal missing values, such as
**reldif(.r,.r)**, returns system missing (**.**) instead of 0.

13. **query**, in addition to showing all the settings normally shown,
shows the values of **set** parameters that apply only to the earlier
versions.

14. **matrix score**, when looking up variable names associated with the
elements of the specified vector, expands variable name
abbreviations.

15. **xthausman** continues to work (for one more release) but recommends
the use of **hausman** instead.

__If you set version to 6.0 or less__

1. Macro substitution is made on the basis of the first seven
(local) or eight (global) characters of the name; **`thisthatwhat'**
is the same as **`thistha'**.

2. **syntax** returns the result of parsing a long option name in the
local macro formed from the first seven characters of the option
name.

3. **display** starts in non-SMCL mode; the **in smcl** directive may be
used to set smcl mode on.

4. **invt(***df***,***p***)** returns the inverse two-tailed cumulative t
distribution; **invttail(***df***,(1-***p***)/2)** is a new alternative to
**invt(***df***,***p***)**. In version 13.0, **invt(***df***,***p***)** returns the inverse
cumulative Student's t distribution: if **t(***df***,***t***)** = *p*, then
**invt(***df***,***p***)** = *t*.

5. **invchi()** works; **invchi2(***a***,1-***b***)** is a new alternative to
**invchi(***a***,***b***)**.

6. **post** will allow expressions that are not bound in parentheses.

7. Option **basehazard()** is allowed in **cox** and **stcox**; it has been
renamed to **basehc()**, which is understood regardless of version
setting.

8. **log using** can have a **noproc** option.

9. **log close**, **log off**, and **log on** will close, turn off, or turn on a
**cmdlog** if present and a **log** is not.

10. **set log linesize**, **set log pagesize**, **set display linesize**, and **set**
**display pagesize** are allowed.

11. Extended **macro** functions **log**, **set log linesize**, and **set log**
**pagesize** enabled.

12. **insheet** will recognize only the first eight characters of
variable names and will provide default names for variables if
the first eight characters are not unique.

13. **jackknife** (or **jknife**) will call the older STB version of the
command.

__If you set version to 5.0 or less__

1. **date()** defaults to twentieth century for two-digit years.

2. **predict** becomes the built-in command equivalent to **_predict**.

3. **,** & **\** matrix operators allow the first matrix to not exist; now
use **nullmat()**.

4. **matrix** ...**=get(_b)** returns a matrix instead of a row vector after
**mlogit**.

5. **test** after **anova** understands the **error()** option instead of the
new "**/**" syntax.

6. **ologit** and **oprobit** default weight types are **aweight**s.

7. **heckman** default weight type is **fweight**s.

8. **svyregress**, **svylogit**, and **svyprobit** compute meff and meft by
default.

[Note: For **xtgee**, **xtpoisson**, and **xtprobit**, the default will not be
**aweight**s as you would expect under version control; **iweight**s
is the default despite setting the version number back to
5.0.]

__If you set version to 4.0 or less__

1. -2^2 = (-2)^2 = 4 (After 4.0: -2^2 = -(2^2) = -4)

2. **describe** sets the contents of **_result()** differently.

3. **merge** does not automatically promote variables.

4. **logit** and **probit** default weight types are **aweight**s.

5. **set prefix** is shown by **query**.

6. **hareg**, **hereg**, **hlogit**, **hprobit**, and **hreg** work.

7. **collapse** has the old syntax.

__If you set version to 3.1 or less__

1. **uniform()** refers to the old random-number generator.

2. **set seed** sets the old random-number seed.

3. **replace** defaults to **nopromote** behavior.

4. The old %macro notation is allowed (it no longer is).

__If you set version to 3.0 or less__

1. tempfiles are not automatically erased.

__If you set version to 2.5 or less__

1. Missing strings are stored as **"."** by **infile**.

__If you set version to 2.1 or less__

1. **display** does not respect **quietly**.

2. Macros hold numbers in short format.

__Using the old Stata 3.1 random-number generator__

**uniform()** and **set seed** refer to the old Stata 3.1 random-number generator
if you set version 3.1 or earlier. You can also access the old
random-number generator even with version set to 15.1 by referring to
**uniform0()**. You can set the old random-number generator's seed by typing
**set seed0** -- it works just like **set seed**; see **seed**. The initial seed of
the old random-number generator is **set seed0 1001**.

There is no reason you should want to use the old random-number
generator. It was satisfactory but the new one is better.