G7: New for 2013¶
Work in 2013 provided a few new features, improvements to existing features, and a variety of bug fixes. The most important improvements and new capabilities provided in the G7 software are these:
Improved Documentation: The G7 documentation was revised heavily in 2012 and has been updated in 2013, with new Help files, Users’ Guide, Reference Manual, Tutorial, and other documentation. Companion documents in HTML and PDF formats also were updated.
Interface Improvements:
Main menu items were added to load in a web browser the software documentation presented on Inforum web site and to assist the user when checking for software updates.
The Editor F1 (Help) key replaces the nonstandard F2 shortcut for the launch of Help files.
The G7 icon and images on the splash, configuration, and about dialogs pages was updated. The configuration dialog and About window were revised and improved.
Graph Series: Add right-click menu item in the Editor to display data in a graph for a selected series name or algebraic expression.
Strings, Functions, and Keywords:
Redefined xl name ws <name> so that the name is optional. If not specified, then the existing worksheet name can be recovered with the %xls keyword.
Modified %xlcol() to take either a column number and return equivalent column letters or to take column letters and return the equivalent number.
Added a -l rootname option to the listnames routines to store the series names as strings, where the string names are <root><integer> and the string definitions are the series names.
Added %nseries(bank_letter) function to return the number of series in the specified bank.
Replaced the %{…} routine with one that does proper Parentheses/Multiplication/Division/Addition/Subtraction integer arithmetic. Other %-routines and recursion may be employed within the function.
Added %exists(series_name) to return 1 (0) when the series is found (not found). The exists(<series_name>) routine provided in the if() command now is depricated.
Added %sexists(string_name) to return 1 (0) when the string is found (not found).
Numerical Routines:
Added @sign() that returns +1 (-1) if the argument is non-negative (negative).
Added %fabs(), %log() , %exp() scripting functions that accept a scalar argument.
Added a tolerance option to the set of ras commands .
Miscellaneous Improvements:
Added wsreset command to allow the workspace to be cleared and a new workspace established with new parameters and possibly in a new location.
Allow “update” as a command type for the save command; previously it was the default option but could not be specified manually.
Rewrote routines that handle the scripts that specify sector groups and @-functions. This corrects garbled printing of equations by the regression commands, equation saving with the save command, and title printing for the () shortcut in graph command.
In the resector routines, increase the maximum number of sectors from 600 to 1500.
Several internal codes were respecified to allow use of character sets with 8-bit extended ASCII representations.
Added sanity checks for the dates in g.cfg files.
An Abridged Listing of Bug Fixes:
Prevent overflow or run-on words when printing long series names with the listnames commands.
Fixed a problem with focus with the “file-execute” box on the main window.
Fixed problem in the vc command that caused incorrect date alignment between Vam banks and packed matrix files.
Fixed += in f and vf to handle missing values on both the LHS and RHS.
Added check to @chain routines to ensure that the specified base date frequecy matches that of the fdates.
Force destruction of existing show window before a new one may be created; this finally should fix persistent bugs. Improved the show window save functions though problems remain.
Fixed crash in Editor pop-up menu Type Series command when multiple lines were selected.
Fixed problem with expansion of %linelen.
Fixed problem with printing of settings with the line command.
In ipch command, switch from scientific notation to standard notation for printed coefficients.
In wsdump, fixed problem when printing a series with only missing values, and fixed problem with dates that could lead to incomplete printing of data, and eliminate automatic zapping after dumping data.
Attempt to fix bug in function command where an existing argument list could be lost, and thus the attempt to restore it fails after the function was executed with an alternative list.
In findvec, ensure that the Vam file is open before attempting to search it.
Fixed f command to allow “f x{2008-%fdates2} = y”, where previously the %fdates2 keyword was not processed properly.
Fixed problem in %strcmp() and related functions where the return value was not set properly.
Reworked find() to do a proper Vam-file search when called by G7 routines like %exists().
Attempted to fix a problem with listnames command where the G bank associated with a Vam file was not searched.
Improvements also were made to companion software, including the table-making program Compare and the model-building program IdBuild.
Compare:
Updated the chain-weighting routine to incorporate G7 updates.
Added many new printer control (pc) commmands and added documentation for all. Added documentation for the printing of these files.
Improved the appearance of screen formatting.
When performing zero/zero or zero/nonzero calculations, set the result to zero instead of a missing value.
IdBuild:
Increased buffer sizes for bank paths/names. Fixed problem with bank names that are surrounded by quotes.
Fixed memory leaks and other problems. Merged code with non-optimizing version of IdBuild to incorporate recent improvements to that version. Improved check for divide-by-zero problems. Fixed problem with @csum() groups.
Changed byte alignment to byte from quad word to ensure consistency with other programs.
Added code to initialize vectors and matrices to zero to eliminate problems with garbage in unused portions of series (i.e. dates beyond fdates ranges).
Improved the appearance of screen formatting.