This log summarizes development of G7 since the last update of the G7 Help files. Copyright: Inforum 2021 Web Site: www.Inforum.umd.edu 03/05/12 Tried to fix endless loop caused by illegal "%(...)" script. 03/12/12 Fixed problem in @yoy() that was causing access violations. 03/20/12 Fixed problem in @Xchwt() that occured when the fdates range did not include the chain weight base year. 03/27/12 Fixed broken menu item in editor (Insert Text From File). 03/28/12 Improved error detection in ls command. Fixed memory leaks in chwt and chain. 04/02/12 Fixed parsing problems in "str parse". Added "function clear []". 04/04/12 Modified @mean() and @stdev() to have the @ggr() syntax and fixed some problems in all three. Improved error return codes in rhs.cpp. 04/04/12 Tweaked output of lis/lnc. Fixed EOF problem with fadd. 04/12/12 Fixed problem in graph command so that 7 series may be shown. Add counter check in chain routines to prevent overflow when reading series names. Increased MAXCHAIN to 1500. 04/13/12 In %s([,[,]]), make either the character specified or the end of the word. Revise 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. Increased the array size for chopbuf to avoid overflow. Fixed return-code problem in %getval(). Fixed problem with setting of %xls when an empty cell is read. Rename vector() as fvector(), a convention more like the existing dvector(); this avoids a conflict with STL. 04/14/12 Add wscache or wscache . When on, reading and writing to the standard workspace (ws.*) is suspended and data are held in memory. When turned on, data are read from ws.*, and when turned off data are written to ws.*. Capacity in memory is greater than on disk because of known limitations of the GBanks design, and so pushing data from memory to disk will fail if the ws.* bank capacity is exceeded. 04/18/12 Added wsdump [<"tdates">] to dump data to text file. If tdates option specified, then print data within tdates. Otherwise, strip leading and trailing zeros, missing values, and garbage, and just print data that appear to be valid. Added timer or timer to calculate time intervals. Added optional date to control extent of operations in the ls command: Format: ls [-] [date2] [direction] may be a: use x = a + b*y b = x{date} / AVG(y) * sign( x{date}*AVG(y) ) a = x{date} - b * y{date} where AVG(y) is calculated from fdate1 to , if direction is 'b', or from to fdate2, if direction is 'f'. This is useful when y{date} is close to zero so that scaling parameter b is large, thus scaling x excessively. If AVG(y) is close to zero, then b = x{date} * sign( x{date}*AVG(y) ). f: force the calculation using standard algorithm without reporting problems. i: if x and y are of opposite sign in the base year, use x = a + b*y b = x{date} / y{date} * sign( x{date}*y{date} ) a = x{date} - b * y{date} is the last period (direction is 'f') or first period (direction is 'b') that will be modified. If not given, then the values will be modified to the end of the sereies. 04/18/12 Added script controls for menu items added 06/09/11: commandcache , commandcache , commandcache . 04/23/12 Fixed printing problem with listnames for compressed banks. 04/30/12 Fixed divide-by-zero and other problems in chwt(). 05/01/12 Make the Editor F10 (Execute) routine employ a string list rather than a temporary text file. 05/03/12 Added %if(, , ) function, where specification of is identical for that of the if command. and either may be named strings or text within quotes. Added ungetword() function for internal use within utility.cpp. This offers unlimited capacity to store returned words and codes, though reversing course might not be possible if ungetting after a %-routine has been expanded. This is a limitation of unchop() and unfeed(), too, but there probably is no solution other than to make a copy of the original buffer, or perhaps to do all %-expansion separately and without inserting the expansion into the buffer. Needs further consideration, and %if() needs more testing. 05/04/12 Provide rdscale option for ctrl, with same syntax as for the scale command; must wrap group in () for rdscale option to be read. 05/08/12 Add QP extension to proportional scaling that automatically is applied when the standard algorithm fails. Fixed problem affecting try-catch and perhaps other flow control routines: unchop buffer was not getting cleared. 05/09/12 Fixed input buffer problem in vamcreate. If the show window is closed by typing ESC, then the show exit function now will clear the ESC code to prevent the script from being killed. 05/14/12 Increase limit on number of variables in matty from 30 to 100. For now, disable 05/08/12 work on extension to proportional scaling. 05/15/12 Fix problems in syntax checking and improve messages of RAS command. 05/16/12 Added "+=" operator to str command. 05/21/12 Continued to improve messaging, error handling, and to fix bugs in RAS and related routines. Fixed problem with alignment of data over time in RAS conditions, where equations were not aligned with workspace. 05/23/12 Rewrote much of the precon() routine. Now allow sc(max/min) <(row group)><(column group)> in addition to original block specification, where row-column groups must have the same number of elements and must form row-column pairs that identify the desired cells. 05/24/12 Rewrote RAS routine and supporting routines to employ double-precision calculations; this fixes some convergence problems. Need to adapt other routines to employ the double-precision versions of the supporting routines; meanwhile, conversion routines are in place to provide support for single-precision routines. 05/29/12 Make RAS routines skip conditions for which the control value is MISSING in a given period. Added fdates command to RAS conditions command set (not yet implemented for gvras routine). 05/31/12 Fixed bug in show command. 06/12/12 Fixed some unnecessary warning messages in %if() routine. 06/15/12 Corrected and adjusted the RAS convergence check. Improved screen output for RAS. 07/09/12 Passed a return code through the update command. 07/24/12 Fixed problems in @min and @max, where closing ')' was not being read. Began work to employ HTML Help files; included "htmlhelp.h". 07/25/12 Created htmlhelp.lib with "implib htmlhelp.lib hhctrl.ocx"; added to G7 directory, linked in g7.cpp. 07/26/12 Temporarily commented line in G7.cpp; need to replace. Got the new Help to launch, but needs more work for different menu items, command line, and to include methods to launch particular pages or sections. 07/26/12 Got help menu, icon, command line, and short-cut methods working and linked to appropriate locations in Help. 08/09/12 Allow temporary series to be graphed in similar fashion to type command: gr () () ... 08/10/12 Fixed up the line command to correct bugs in printing of line settings. 08/17/12 Returned to work on xl chart routine. 08/20/12 Define xl chart ... 08/21/12 Allow the series name to be omitted from the xl write routine; in this case the dates will be printed in Excel date format. 08/25/12 Fixed packed matrix handling in ras command. Conference 2012: 7.3845 09/10/12 Began work to prevent overflow or run-on words when printing long series names with listnames commands. 09/27/12 Rewrote the listnames routine and associated routines to use STL in place of Borland containers. Made the listnames interface dependent on a core routine that obtains a list of series names from the database classes. Added -l option to listnames routines to store the bank series names as strings, where the string names are and the string definitions are the series names. Added %nseries() that returns +-1. 10/04/12 Fixed a problem with focus for the "file-execute" box on the main window. 10/23/12 Fixed problem in pmmuldiv() routine that caused incorrect date alignment between Vam banks and packed matrix files. Replaced the routine that expands "%{...}" with one that does proper P/E/MDAS integer arithmetic (no exponentiation, but %-routines and recursion are supported). G7 7.3846 10/25/12 Fixed += in f and vf to handle missing values on LHS and RHS. Added check to @chain routines to ensure that the specified base date frequecy matches that of the fdates. 11/08/12 Updated icon and images on splash, config, and about dialogs. Changed Help shortcut from F2 to F1. 11/09/12 Updated the GConfig and About windows. Force destruction of existing Show window before a new one may be created; this finally should fix persistent bugs. 11/13/12 Allow "update" as a command type for save command; previously it was the default option but could not be specified manually (except with "save off"). 11/14/12 Added Help menu links to Inforum web site. 11/15/12 Fixed crash in Editor pop-up menu Type Series when multiple lines were selected. Added Graph Series pop-up menu item. 11/19/12 Rewrote various fill(s) routines to update pend pointer. Reworked @-functions to update pend pointer. This helps to fix up equation printing for r command, equation saving with save command, and titles for () shortcut in graph command. Need to watch output for other routines that rely on fill(s) routines. 11/27/12 Fixed problem with expansion of %linelen. 12/05/12 Fixed problem with printing of settings with line command. 12/12/12 In Resector class, increase maximum number of sectors from 600 to 1500. 12/14/12 Tweaked gridtype. 12/17/12 In ipch command, switch from scientific notation to standard notation for printed coefficients. Fix likely problem when printing the number of parameters to be read by the model. 01/02/13 7.3848 01/07/13 Forced writing of index file after turning off workspace cache. In wsdump, fix 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. 04/01/13 Added %fabs(), %log(), %exp(). Allow negatives in %-function numerical arguments. 04/11/13 Attempt to fix bug in function command where an existing argument list gets lost, and thus the attempt to restore it fails. 04/12/13 In findvec, ensure that vam file is open before attempting to search it. 04/18/13 Fixed up show window save functions (still prone to failure). Fixed f command to allow "f x{2008-%fdates2} = y". 04/24/13 In editor, LoadFromFile failed when the file was open for writing, e.g. with the save command. Store filename in save command; check whether it is open before attempting to open with editor (better way to do this?). Reworked find() to do a proper vam-file search when called by G7 routines like exists(). 04/25/13 Fixed numerical problems in ls command. 05/02/13 Redefined "xl name ws " so that name is optional; if not given, then the existing worksheet name can be recovered with "%xls". Attempted to fix problem with listnames command, where G bank associated with a Vam file was not searched. Are matrix names listed? 05/16/13 Redifined BREAK and CONTINUE codes to avoid interferance with 8-bit extended ASCII representations. 05/21/13 Added "wsreset []" command to allow the workspace to be cleared and a new workspace established with new parameters and possibly in a new location. If "g.cfg" is included in the path, then G7 automatically will open and read it; otherwise, the GUI will prompt the user to find and/or accept the settings in the optionally-specified directory. This needs more testing. Added sanity checks to dates in GConfig, but more is needed; sanity checking witin the GUI would be nice so that the user can fix problems. Modified feed() to check for and return characters of unchopped words; without this, unchop() followed by feed() has missed the unchopped words. G7.3849 05/23/13 Modified %xlcol() to take either a column number and return equivalent letters or column letters and return the equivalent number. Fixed problem in %strcmp() and related functions, where the return value was not set properly. In RunCmdFile(), add another check for error codes returned from chop(). 05/28/13 Added tolerance option to ras commands (-), where the default value is 0.000002. 06/29/13 In ls command, now return error if series cannot be found; old practice was to add a series of missing values. 08/02/13 Added %exists() to return 1 (0) when a series is found (not found); the exists() routine provided in the if() command now is depricated. Added %sexists() to return 1 (0) when a string name is found (not found). 08/23/13 Fixed problems that prevented the opening of the InterDyme dialog. 2013 World Conference: G7.386 09/06/13 Increased buffer size in fcmd. 10/14/13 Added frequency conversion function to GDates class. Added frequency conversion for the printing of dates in Excel::WriteNumberArray" 12/09/13 Changed some integer variables in G7 graph routines to floats to eliminate problems when long time series caused the graph width to be compresses. G7.3861 07/01/14 Tried to fix a bug in freq, added frequency checks to the ls command, and prevented ls from changing the frequency of a series. 08/15/14 Allow multiple series to be specified in del command. 08/16/14 Added "str store args " to store function/add-file arguments to root1, root2, .... 08/20/14 Added "xl gridlines [] []" 08/21/14 Added "xl border