[Browse git] [gretl main page]

gretl: backward-incompatible changes

Although we try to keep these to a minimum, every now and then it becomes necessary to make backward-incompatible changes to gretl's scripting language. This log records such changes.

 
Version 2023c  
Version 2023b
Version 2023a
Version 2022c
Version 2022b
Version 2022a
Version 2021d
Version 2021c
Version 2021b
Version 2020e
Version 2020d
Version 2020c
Version 2020b
Version 2020a
Version 2019d
Version 2019c
Version 2019b
Version 2019a
Version 2018d
Version 2018c
Version 2018b
Version 2018a
Version 2017d
Version 2017c
Version 2017b
Version 2017a
Version 2016d
Version 2016c
Version 2016b
Version 2016a
Version 2015d
Version 1.10.2
Version 1.10.1
Version 1.10.0
Version 1.9.92
Version 1.9.91
Version 1.9.90
Version 1.9.14
Version 1.9.13
Version 1.9.12
Version 1.9.11
Version 1.9.10
Version 1.9.9
Version 1.9.8
Version 1.9.7
Version 1.9.6
Version 1.9.5
Version 1.9.4
Version 1.9.3
Version 1.9.2
Version 1.9.1
Version 1.9.0
Version 1.8.7
Version 1.8.6
Version 1.8.5
Version 1.8.4
Version 1.8.3
Version 1.8.2
Version 1.8.1
Version 1.8.0
Version 1.7.9
Version 1.7.7
Version 1.7.6
Version 1.7.5
Version 1.7.4
Version 1.7.3
 2023-12-05 Version 2023c [Back to top]

Compaction of undated daily data is now disabled, since it is
not a meaningful operation.

The long-deprecated "sscanf" and "sprintf" commands are now
removed: use the functions of the same names.

The old syntax for the "outfile" command, which was replaced
in gretl 2018c, is no longer supported. See the "outfile" help
text for current syntax.

There is new, preferred syntax for the --band option to the
"gnuplot" command, but the old syntax will continue to work
until further notice.

A new "set" variable, panel_robust, is the preferred replacement
for "set pcse on/off", but the latter will continue to work
until further notice.

 2023-07-21 Version 2023b [Back to top]

The "outfile" command with --tempfile option: the name of
the string variable to receive the tempfile name must now be
given as a parameter to the option flag (as documented).
Passing this name as a regular command argument is no longer
accepted.

"empty" is now a reserved word, providing a uniform means of 
initializing an empty matrix, bundle, array or string. Scripts
which use "empty" as an identifier will have to be modified.

The $test accessor after the "var" command with --lagselect
option now includes all six columns as shown in the printed
output. Previously it included only 3 columns, holding the
information criteria; this portion can be obtained via the
expression $test[,4:].

The new function typename() is recommended in place of the old
functions typeof() and typestr(), though the latter functions
are still available for backward compatibility.

 2023-03-02 Version 2023a [Back to top]

instring() and strstr() functions: the policy of automatically
escaping the string to be found has been discontinued.

 2022-11-01 Version 2022c [Back to top]

The deprecated command version of "sprintf" now provokes
warnings -- please use the function version instead

 2022-08-09 Version 2022b [Back to top]

The deprecated legacy function fft() has been replaced by a
version that assumes the native representation of complex
matrices introduced in 2019d. The transitional name assigned to
the new-style function, "fft2", remains in place as an alias to
the revised fft().

The "order" member of the $system bundle made available by the
"vecm" command has been redfined to equal the lag order in levels
for consistency with the documentation of vecm and its printed
output. (Before, "order" gave the lag order in differences.)

The --compat option for the "store" command (which enabled
saving a gretl binary datafile in the format used prior to gretl
2020b) has been removed.

 2022-02-02 Version 2022a [Back to top]

The identifying string for macOS in the $sysinfo bundle (under
the key "os") has been updated from "osx" to "macos".

If the optional second argument to the deseas() function is a
string, it must now be quoted ("T" or "X", as opposed to
unquoted T or X).

 2021-09-30 Version 2021d [Back to top]

In the output from the "biprobit" command, rho (the correlation
of the disturbances across the equations) is now included in
$coeff, $stderr and $vcv, in the last place of each.

 2021-08-30 Version 2021c [Back to top]

No known incompatible changes. But a warning that the old fft
function will be retired before long, in favor of what is now
called fft2.

 2021-05-04 Version 2021b [Back to top]

The "arbond" command is now officially deprecated in favor of
"dpanel" and will be removed in the next release.

The default format for data saved as ".gdtb" is now a straight
binary file, much faster than the old version.

The --csv option to the "store" command is removed. Giving a
suitable filename is sufficient.

The getline() function now calls for its second argument to be
given in pointer form, but the prior form is still accepted. 

2021-01-18, version 2021a

The command formerly known as "coint2" has been renamed as
"johansen". The old name is accepted as an alias for now, but
should not be used in new hansl code.

 2020-11-21 Version 2020e [Back to top]

The chowlin() function is now deprecated in favor of tdisagg(),
and the --interpolate option to the "data" command has been
removed, again in favor of use of tdisagg.

The obsolete usage of '=' to test for equality now provokes
an error: "==" must be used instead.

The $uhat accessor available after the negbin command now
returns generalized residuals instead of the difference between
y and $yhat.

 2020-08-06 Version 2020d [Back to top]

No known incompatible changes.

 2020-07-31 Version 2020c [Back to top]

The -q or --quiet option for the "loop" command is now
redundant; quiet operation has become the default. But the
option is still accepted. Use the --verbose option if you
wish to see more output.

The command "set initvals" is a one-shot (non-persistent)
setting. Not really backward incompatible because in effect
this has been the case for some time, in most uses.

 2020-04-11 Version 2020b [Back to top]

The function-form of "funcerr" has been undocumented, in favor
of the new errorif() function.

The original form of stack() for panel data has been replaced
with a version that takes up to three arguments -- see section
4.5 of the Gretl User's Guide for details. The old form still
works until further notice.

 2020-03-05 Version 2020a [Back to top]

Simplify iteration output from the --verbose flag for "mle"
and similar commands. But the previous behavior can be
obtained via "set max_verbose full".

The "eigengen" function is now deprecated, having been
superseded by the new "eigen".

 2019-12-22 Version 2019d [Back to top]

No known incompatible changes.

 2019-07-02 Version 2019c [Back to top]

The deprecated function isstring() has been removed.
Reminder: isnull() is also deprecated, but it has not yet
been removed.

 2019-05-21 Version 2019b [Back to top]

The BKW collinearity diagnostics have been split off from
the "vif" command in a new "bkw" command. Both commands
support the $result accessor to retrieve a matrix holding
the results.

 2019-01-24 Version 2019a [Back to top]

It is no longer permitted to create a named list which
contains the semicolon separator. The use of such a list
in the context of a "system" block with the "equations"
keyword was previously supported: now one should use an
array of lists for that purpose. See section 31.2 of the
Gretl User's Guide for details.

 2018-12-21 Version 2018d [Back to top]

Replace "install" command with new "pkg" command: this has
the same functionality but is more extensible for future use.
The old "install" syntax is still supported for backward
compatibility until further notice.

 2018-09-03 Version 2018c [Back to top]

No incompatible changes; but the syntax for a block
"outfile --write ... outfile --close" is now deprecated and was replaced
with "outfile ... end outfile". (The old form continues to work.)

 2018-08-11 Version 2018b [Back to top]

No incompatible changes.

 2018-03-17 Version 2018a [Back to top]

Renaming of functions associated with setting and retrieving
column and row names for matrices: colnames() to cnameset(),
rownames() to rnameset(), and colname() to cnameget(). The
original names are still accepted as aliases.

The command-form of "sprintf" is now deprecated in favor of the
function of the same name; the command-form continues to work
but should not be used in newly written hansl code.

The (experimental and undocumented) facility of treating a
string as a boolean variable (0 if string is empty, 1 if not)
is now removed. But note that the new function instring() is
intended for use as a boolean condition; it replaces the
undocumented use of strstr() in that capacity.

 2017-11-07 Version 2017d [Back to top]

The deprecated aliases "pi" and "macheps", for $pi and $macheps
respectively, have now been removed.

The --rolling option to the "fcast" command has been renamed
more accurately as --recursive. The old option-word remains
acceptable as an alias until further notice.

 2017-07-18 Version 2017c [Back to top]

No incompatible changes.

 2017-05-26 Version 2017b [Back to top]

No incompatible changes.

 2017-04-15 Version 2017a [Back to top]

The old interface to the Kalman filter has now been removed.

Use of the single character '=' to represent the boolean
operator "is equal to" is deprecated: '==' should be used for
this purpose.

 2016-11-19 Version 2016d [Back to top]

New code in the Ziggurat mechanism (for greater speed and better
coverage of the real line) means that gretl's random normal
variates will not be the same as in 2016c for any given seed.

The option of using the Box-Muller method in generating random
normal variates has been removed (we now only use the Ziggurat).

The second element in the vector returned by fcstats() is now
the RMSE instead of the MSE, since it seems this is the statistic
that is in fact wanted more often.

 2016-07-06 Version 2016c [Back to top]

The original interface to gretl's Kalman filter facility is
now deprecated in favor of a new bundle-based interface. The
old interface will likely be removed in version 2016d.

 2016-04-14 Version 2016b [Back to top]

The options --quiet and --show-plot for the "freq" command
are deprecated in favor of the new --plot=arg option. To
emulate --quiet use --plot=none, and use --plot=display
in place of --show-plot.

 2016-01-26 Version 2016a [Back to top]

The function isnull() is deprecated; the recommendation
is to use (the negation of) exists() instead

The function pxsum() (cross-sectional sum for panel data)
now skips missing values. To get the original variant,
where any missing values led to an NA result, the new
pxnobs() function can be used, as in:

series y = pxnobs(x)==max($unit) ? pxsum(x) : NA 

Support for gnuplot versions older than 4.6.0 (of March
2012) has been removed.

 2015-10-19 Version 2015d [Back to top]

The use of the "-f" flag to supply a filename for the
"eqnprint" and "tabprint" commands is deprecated. Please
use the new --output option.

 2015-09-13 Version 1.10.2 [Back to top]

No incompatible changes.

 2015-04-04 Version 1.10.1 [Back to top]

No incompatible changes.

 2015-04-02 Version 1.10.0 [Back to top]

The function genseries() has been redefined: the second
argument is now officially an expression that evaluates to
a series, rather than a string. However the string form is
still accepted.

The old fit-type options for the "gnuplot" command (namely
inverse-fit, loess-fit, quadratic-fit, linear-fit, cubic-fit,
semilog-fit and suppress-fitted have been replaced by a
single --fit option which requires a parameter specifying the
type of fit, or "none".

The obsolete, undocumented "set" variable halt_on_error has
been removed.

The old syntax for user-defined functions that was the
standard prior to gretl 1.8.4 is no longer supported.

Some obsolete, undocumented function-name aliases have been
removed: "pval" (use "pvalue") and "date" (use "obslabel").

 2014-09-20 Version 1.9.92 [Back to top]

The behavior of the "append" command: by default, this now
strictly appends (series and/or observations). The old
behavior, whereby overlapping data-points are updated from
the specified data file, now requires the --update-overlap
option.

When specifying a compaction method with the "data" command
you should now use the new --compact option. The old syntax,
of the form "(compact=method)", is now deprecated.

The alias of "addobs" for "dataset addobs" is officially 
deprecated and will likely be removed in gretl 1.10.

The functions islist() and isseries(), deprecated since gretl
1.9.11, have now been removed.

 2014-07-28 Version 1.9.91 [Back to top]

The "old-style" syntax for defining a function that was the
standard prior to gretl 1.8.4 (August 2009) is now officially
deprecated, and support will be removed in gretl 1.10. See
the chapter titled "User-defined functions" in the User's 
Guide for details.

The "set" variable halt_on_error is deprecated and will be
removed in gretl 1.10. To prevent a script from aborting on
errors the "catch" command-modifier should be used instead.

 2014-05-02 Version 1.9.90 [Back to top]

The "set" variable "RNG" has been removed: the RNG is the SFMT
(Simd-oriented Fast Mersenne Twister) and the option of using
the GLib implementation of the Mersenne Twister (which was 
gretl's RNG up to version 1.9.3) is no longer available.

Support for reading and writing data in the format of ESL,
gretl's ancestor, has been removed.

Use of "end loop" in place of "endloop" is now officially
deprecated, and will be removed before long.

 2013-11-21 Version 1.9.14 [Back to top]

No intentional backward-incompatible changes

 2013-10-24 Version 1.9.13 [Back to top]

The default criterion used in connection with the --test-down
option for the "adf" command is now the modified AIC as
recommended by Ng and Perron (Econometrica, 2001). To obtain
the same results as in earlier gretl versions you can specify
--test-down=tstat.

The (undocumented) way in which date identifiers (such as 
2004:01 for January 2004) could stand in for numerical values
in some commands has been removed. If you need the 1-based
observation number based on such dates, use the obsnum()
function. This applies only to contexts where the documentation
of a command calls for a scalar numerical value; if a command
claims to accept a date or observation string as an argument,
it still does.

The following old, undocumented alias of "import" for the
"open" command has been removed.

 2013-03-15 Version 1.9.12 [Back to top]

The special treatment that supported the use of @-substitution
in an unquoted argument to printf has been removed. For example,
 
  string strvar = "some string"
  printf "strvar = %s\n", strvar    # correct
  printf "strvar = %s\n", "@strvar" # ugly but legal
  printf "strvar = %s\n", @strvar   # no longer supported!

 2012-11-21 Version 1.9.11 [Back to top]

The functions islist(), isseries() and isstring() are deprecated,
and will be removed before long. Note that the generic isnull()
can be used to check whether or not a function argument that has
a default of "null" has been supplied by the caller.

 2012-11-05 Version 1.9.10 [Back to top]

The option for specifying how to read data from a fixed format
text file using the "open" command has been renamed from --cols
to --fixed-cols.

The built-in constants "pi" and "macheps" have been renamed as
"$pi" and "$macheps". The old names continue to work at present 
but they will be removed before long.

The --labels option to the "setobs" command has been removed.
Its functionality (and more) is now available via the new
"markers" command.

 2012-06-01 Version 1.9.9 [Back to top]

No intentional backward-incompatible changes

 2012-03-29 Version 1.9.8 [Back to top]

In performing "$-substitution" for the index variable in the 
context of loops, $-accessors are now protected. For example 
"$jalpha" will now not turn into "1alpha" on the first interation 
of a loop indexed by j.

 2011-12-22 Version 1.9.7 [Back to top]

In cointegration analysis gretl now treats restricted exogenous 
regressors (that is, exogenous terms that are restricted to the
cointegration space) as per Ox and PcGive: we don't lag these
terms in the initial OLS regressions, as we did before.

The optional "ymax" parameter to the "logistic" estimation
command is now treated as a regular option. This means that
any scripts that use the old syntax "ymax=value" should be
revised to use "--ymax=value".

The following aliases, deprecated since gretl 1.9.0, have now 
been removed and should be replaced as indicated:

 "end if"    endif
 "corc"      ar1
 "hilu"      ar1 ... --hilu
 "pwe"       ar1 ... --pwe
 "hccm"      ols ... --jackknife
 "lmtest"    modtest
 "testuhat"  modtest --normality

In internationalized TeX output, gretl now always uses UTF-8
encoding (before we used the specific locale encoding on
platforms where UTF-8 was not "native").

GUI: the menu item /View/Scalars has been merged into the
Icon view window (under /View/Icon view).

 2011-10-17 Version 1.9.6 [Back to top]

When a new series is declared without specifying any values,
the values default to NA, and not zero as in gretl <= 1.9.5.

The "omit" command: the --wald option, which prevents the 
replacement of the original model with the restricted version, 
is renamed as --test-only. The undocumented behavior by which
the --quiet option also had this effect is now gone: this
option only affects what gets printed.

 2011-04-22 Version 1.9.5 [Back to top]

Matrix operators: "B / A" now has the same semantics as 
Octave/Matlab "matrix right division"; for square A, it's in
principle equivalent to B * inv(A). Also, "\" (not previously
defined as an operator in gretl) now serves for "matrix left 
division". In practical terms, occurrences of B/A in existing
gretl scripts -- where they produced, in effect, inv(A)*B --
should be replaced by A\B to produce the same effect.

 2011-02-24 Version 1.9.4 [Back to top]

The default random number generator has been changed from 
GLib's implementation of the Mersenne Twister to the 
SIMD-oriented Fast Mersenne Twister. For purposes of
replication you can revert to the previous generator
via the command "set RNG MT".

The redundant function makemask() has been removed.

The old, deprecated aliases "noecho" (use "set echo off") and
"seed" (use "set seed") have been removed.

The "sscanf" command is deprecated in favor of the function
of the same name.

 2010-11-29 Version 1.9.3 [Back to top]

No intentional backward-incompatible changes

 2010-11-03 Version 1.9.2 [Back to top]

Testing for fractional integration is now factored out of
the "pergm" command and has its own, more functional,
command, namely "fractint".

The --continue option for arima and certain other commands,
deprecated as of version 1.9.0, is now removed; use 
"catch" instead.

The command "dataset expand" has been modified: you can no
longer expand directly from annual to monthly data, but you
now have the option of interpolating rather than repeating
the lower-frequency values (for annual to quarterly or 
quarterly to monthly expansion). 

 2010-06-24 Version 1.9.1 [Back to top]

The old genpois function is now removed.

 2010-05-02 Version 1.9.0 [Back to top]

Many old (and now undocumented) aliasas are now officially 
deprecated and will be removed before long, including the 
following:

noecho   (use "set echo off")
seed X   (use "set seed X")
end if   (use "endif")
corc     (use "ar1")
hilu     (use "ar1 ... --hilu")
pwe      (use "ar1 ... --pwe")
hccm     (use "ols ... --jackknife")
lmtest   (use "modtest")
testuhat (use "modtest")

The following parameters to the "set" command are now declared
obsolete and will be removed before long: bkbp_k, bkbp_limits,
hp_lambda. Use the optional arguments to the functions 
bkfilt and hpfilt instead.

Gretl now requires gnuplot version 4.2.0 or higher for
graphing.  Since version 4.2 was released in March 2007,
hopefully this should not be too onerous.

The "criteria" command has been removed.  A small function
package is available on the gretl server that replaces this
command.

The commands "graph" and "plot" have been consolidated as
options to the new command "textplot"; but the old commands
are retained as aliases for the present.

The function genpois() is now deprecated.  Please use
randgen() with a first argument of 'P' instead.

The --continue option for the commands arma, garch, mle
nls and gmm (which allowed continuation of script execution
in face of an error) is now deprecated in favor of the
new "catch" prefix, as in "catch arma 2 2 ; y".  For the
present the --continue option remains an acceptable alias
for the use of "catch", but this will be removed at some
point.

The internal variable "obs" used to get the year in the
case of annual time series data, but a 1-based index in all
other cases.  This has now been made consistent: it always
gives the 1-based index.  Any scripts that rely on the old
behavior with annual data can be fixed quite easily --
substitute, e.g., "obsnum(1970)" for plain "1970" when you
wish to compare a year against the obs series.  For example, 
to create a dummy variable with value 1 in 1970 only:

  series d70 = (obs=obsnum(1970))? 1 : 0

 2010-01-24 Version 1.8.7 [Back to top]

The accessor $vcv is no longer available for VARs.  The
full covariance matrix can be retrieved as 

  $sigma ** $xtxinv 

where "**" is the Kronecker product operator and $xtxinv
is a newly defined accessor for X'X^{-1}.

With the new (and faster) Ziggurat implementation for the
normal RNG, gretl 1.8.7 will not produce the same sequence
of normal samples for a given random seed as gretl <= 1.8.6.
However, you can force backward compatibility by doing
"set normal_rand box-muller".

 2009-11-25 Version 1.8.6 [Back to top]

ARIMAX models (i.e. ARIMA models with non-zero order of 
integration and including exogenous regressors): we now
follow the practice of most ARIMA software, and apply the
differencing operator to both the dependent variable
and the exogenous regressors.  Previously gretl left the
regressors in level form; you can reinstate that
behavior via a new "arima" option, --y-diff-only.

 2009-10-10 Version 1.8.5 [Back to top]

The --long option to the "print" command has been removed,
along with the longdigits variable in the "set" command.
These were long ago rendered redundant by the "printf"
command.

 2009-08-28 Version 1.8.4 [Back to top]

Gretl uses "to" as a syntactic element in some contexts;
this has now been added to the list of reserved words.

 2009-08-10 Version 1.8.3 [Back to top]

Remove redundant function strcmp: strncmp may be used with 
the third argument omitted, or strings can be compared for
equality directly.

Remove the temporary "set" variable "protect_lists".  Lists
given as arguments to user-defined functions are now
always protected.

Warning: although it's not recognized in the manual, we have
up till now accepted "end if" as an alias for the correct
termination of an "if" clause, namely "endif" (with no space).
This is slated for removal before long; please update scripts.

 2009-07-08 Version 1.8.2 [Back to top]

No intentional backward-incompatible changes

 2009-05-21 Version 1.8.1 [Back to top]

The default calculation method for the Hausman test in relation
to the random effects estimator has been reversed: we now use 
the regression method by default, and the matrix-difference 
method only if the --matrix-diff option is given.  For the 
present, the --hausman-reg option has been retained but it
does not really do anything, it just confirms the default.

The command "lmtest" has been renamed as "modtest".  However,
"lmtest" has been retained as an alias so this is not a
true incompatibility.

The gretl reference manual says that the names of gretl
commands are reserved, and cannot be used as the names of 
variables.  This has not been properly enforced in the past,
but it is now.

The exponentation operator, '^', now associates rightward,
which is how it works in most mathematical software: e.g.

 2009-01-23 Version 1.8.0 [Back to top]

The obsolete command "rhodiff" as been removed.  To create
a quasi-differenced series (as rhodiff did), use the "genr"
command.

The obsolete mechanism "save=" for saving residuals and/or
fitted values from system estimation has been removed; please
use the accessors $uhat and $yhat for this purpose.

The matrices returned by the accessors $sigma and $vcv for VAR
systems now have a degrees of freedom correction.

 2008-09-28 Version 1.7.9 [Back to top]

The "values" function no longer automatically truncates its 
argument (series or vector) to integer.  To get the old 
behavior for an argument x you should do values(int(x)).

Generation of monthly dummy variables: these dummies are
now named "dm1", "dm2", ... , "dm12".  Previously we tried
to use 3-letter abbreviations for the names of the months in
the current locale, but this is too error-prone given
different possible character encodings and (new) support
for languages that do not use the Roman character set.

 2008-08-28 Version 1.7.7 [Back to top]

Ordered probit and logit: the presentation of the cut-points in
ordered response models is now that used by Stata and R, not
by William Greene as previously.  That is, we don't estimate a
generic constant, but report n-1 cut points, where n is the
number of response levels.

 2008-07-30 Version 1.7.6 [Back to top]

List arguments to user-defined functions:

In the context of a "foreach" loop across such a list, the
accessor $i still gets the name of the variable at position i 
in the list, but the variable is not "visible" by that name
within the function.  To get a handle on the variable (e.g.
for use on the right-hand side of a genr command), use the
new syntax listname.varname.  See the chapter on functions in
the User's Guide for details.

 2008-06-12 Version 1.7.5 [Back to top]

$sigma and $vcv accessors:

The $sigma and $vcv accessors have been changed for some model 
types. Now $sigma always refers to a measure associated with the 
residual variance, while $vcv always refer to the variance of
the parameter estimates.

In the case of VARs/VECMs, $vcv formerly referred to the cross-
equation covariance of the residuals.  Now $sigma is used for
that purpose; $vcv gets the variance of the coefficients, which
was not previously accessible.

logical operators:

We are now enforcing what the gretl manual has said for quite
some time: logical OR is represented by "||" and logical AND
by "&&".  The single "|" is now reserved for row-wise matrix
concatenation, and the single "&" for "taking the address of"
a variable.  Previously we tried to guess when "|" and "&" were
intended to represent OR and AND respectively, as in the
original gretl syntax, but no more.

 2008-03-21 Version 1.7.4 [Back to top]

The old "multiply" command has been removed.

The old commands "corc", "hilu" and "pwe" are consolidated
into a new one, "ar1".  The old command words remain as
aliases but their use is deprecated.

 2008-02-29 Version 1.7.3 [Back to top]

You cannot define a user-function having the same name as
a built-in function.