G7: New for 2012¶
Work in 2012 provided some important new features, improvements to existing features, and a variety of bug fixes. The G7 documentation was revised heavily, with new Help files, Users’ Guide, Reference Manual, Tutorial, and other documentation. Several new routines have been added to the Software Demonstrations section of the Inforum web site to display the capabilities of G7.
The most important new capabilities are these:
Improved Documentation: The Help system for G7 and related software has been revised. The new system has native support in recent operating systems, including Windows 8, 7, and Vista. Companion documents also were created in HTML and PDF formats.
Workspace Enhancements:
Added wscache <on|off> command. When caching is on, reading and writing to the standard workspace (WS.*) is suspended and data are held in memory. When first turned on, data are read from the WS.* files, and when first turned off data are written to the hard drive in the WS.* files. Capacity in the cache is greater than on disk because of known limitations of the GBanks (WS.*) design, and so pushing data from memory to disk will fail if the WS.* bank capacity is exceeded. In some cases, script processing speed will increase dramatically with use of this routine. The size of the cache typically is limited by the two-gigabyte memory limit for 32-bit programs.
Added wsdump command to dump data from the cache to a text file. Data may be printed according to specified tdates. Otherwise, the routine will strip from the series any leading and trailing zeros, missing values, and garbage, and it only will print data that appear to be valid. The resulting text file may be read later by G7 or it may be compiled by Banker as a compressed bank.
Data Display Improvements:
Show Command: Restored the ability to store values that were modified in the show window. Added a “Save” button to the show menu, and users now will be prompted to save changes when the window closes. If the show window is closed by typing ESC, then upon exit the ESC code will be cleared to prevent the script from being killed since ESC also is used to interupt the processing of a G7 script.
Look Command: Improved performance for display of look window, where loading of a long stub file was noticably sluggish. The look window now automatically will adjust the frequency of gdates and tdates according to the frequency of the selected series.
Graphs: Improve internal error code returns for type and graph commands; this improves the user experience, particularly when these commands are employed within loops or subroutines. Improved layout of graph legends and allow longer series names to be displayed. Partially restored the display of line styles. Allow up to seven series to be shown at once. Allow algebraic expressions to be graphed.
Type: Add right-click menu item in the Editor to type data for a selected series name or algebraic expression.
Improvements to the Excel Interface:
Added xl freeze command to allow a spreadsheet to be frozen at a specified location.
Introduced the xl background <color> routine to set background colors of cells.
Added xl merge to allow cells to be merged.
Added xl subscript and xl superscript to modify the contents of cells.
Introduced the xl graph family of commands to create graph sheets built with data from the current worksheet.
Modified the xl write routine to print a series of dates in Excel date format.
Strings, Functions, and Keywords:
Introduced the %formatgiven1, %formatgiven2, %formatgiven3, %format1, %format2, and %format3 keywords to indicate whether the format has been set and to recover the current settings.
Enhancement of the %s() routine that recovers the contents of named strings.
Added %if(<condition>, <if true>, <if false>) function for general usage within scripts, where specification of <condition> is identical to that of the numerical @if() command.
Added “+=” operator to extend string contents with the str command.
Miscellaneous Improvements
Improved editor Find and Replace routines.
The Editor F10 (Execute) routine now operates in memory and no longer employs temporary text files; this improves speed and eliminates file clutter.
Added script controls for main menu items that control the command box history: commandcache <clear>, commandcache <print>, and commandcache <replay>.
Modified the @mean() and @stdev() functions to have the @ggr() syntax and fixed problems in all three.
Add a counter check to the chain-weighting routines to prevent overflow when reading series names. Increased the maximum number of series in the weighting process to 1500.
Increase the maximum number of variables for the matty command from 30 to 100.
Improved the printing of bank contents with the lis and lnc commands.
Added function clear command to remove user-defined functions.
Added timer command to calculate time intervals.
Added an optional date to control the extent of operations in the ls command.
An Abridged Listing of Bug Fixes:
Interface: Enabled the Edit button in the show window. Fixed an interface problem with the Compare window. Fixed a broken menu item in the Editor (Insert Text From File).
Strings, Functions, and Keywords: Fixed problems in %getval(). Fixed problems with parsing of %<integer>. Fixed precision problems that caused trouble for the %ceiling() and %floor() functions. Fix an endless loop condition caused by malformed “%{…(…)…}” scripts. Fixed a problem with the specification of the %xls keyword when an empty cell is read. Revised parsing of words within % routines so that text wrapped in “” is treated as one word. Modified treatment of unrecognized ‘%’ in routines for which %-expansion is optional.
Numerical Routines: Fixed a problem in @yoy() that was causing access violations. Fixed a problem in @Xchwt() routines that occured when the fdates range did not include the chain-weight base year and fixed divide-by-zero and other problems. Improved error detection in the ls command.
Fixed printing problem with listnames for compressed banks.
Note that the Visual C++ Redistributable package must be installed in order to use some of the newest features. The VC++ installer should be available at C:\PDG\C++Install. Run this installer (run as Administrator if using Vista or Windows 7) before attempting to run the demo routines for strings or the resector tools.