$CASE/gen/ver_13/chgen/aareadme - RJL 050608 (Updated in $CASE/04f522/lechner/genv13SBLMMM_Final/chgen) -------------- chgen13 is a new version of chgen, integrating two major adaptations of genv11 = genmerge that upgraded chgen to support logging and replay for bde's X11-based editor without losing its generality and independence from bde. WARNING: Bde is still fragile and needs bug-fix testing much of which is not related to bde/pr_util from chgen. The first update (chgenv12) was by Sathya Jaganathan in $CASE/gen/ver_12/chgen/{src,srcMain}. That resulted in chgen12 which produced bde/pr_util/pr_log.c. This file works with bde/src/bdeReplay.cc's logging facility. It was never checked into chgen's CVS repository at $GENROOT. The second update (chgenv13) was by the Spring 2005 SWEngI class (05s523). This class adapted chgenv12 to generate bde/pr_util code revisions. These simplified the functional interface between pr_log.c and Replay.cc, and allowed more code to be auto-generated by genv13 without losing chgen13's generality and independence from bde. In addition, the genv13 team added a new chgen output source code file gen_accessors.c. This generates file pr_accessors.c of object-based functions to read and update each field of each table or class in chgen's input file schema.sch. This pair was adapted from A Reinig's olcarchitecture function generators in the JiuicePlant Simulator $CASE/JPsim/olcarch. They are more amenable to C++ code generation as in gencpp than the pr_set_field and pr_get_field mcros in gen/ver_12. Each update altered about 2K lines of chgen source code and the chgen13 result was merged back onto the main trunk of the chgen repository. Chgen13 and bde now both compile essentially warning-free (with gcc/g++/imake) on both alpha and linux platforms both with and without the -log option of chgen. In the bde application, logging and/or replay of database changes only happens when bde/configure.h includes #define BDELOG and #define GENLOG: #ifdef BDELOG conditionally compiles bdeReplay.cc in bde/src, while #ifdef GENLOG compiles pr_log.c in bde/pr_util. #ifdef GENLOG is also used to use the -log option of chgen to conditionally generate pr_log.c in bde/pr_util. CAUTION: There is no expectation (yet) that log and replay functions can enabled be concurrently. That requires some re-entrant code and removal of global variables. This work began in the 05s523 bdeState and bdeEvent logging projects. Since it requires schema.sch changes, it depended on chgen13 so bde/pr_util can be automatically regenerated. Thanks to the 05s523 team for this major refactoring effort: Swathi Boddireddy, Sesha Malladi and Mallika Mulakaluri, assisted by Scot Frye and Kevin Yang (bdeStateLog project) and Harsh Jha, Norm Gross (bdeEventLog project). ========================================= RJL011021: I retagged $CASE/99s523/genmerge/chgenv11 with branch tag01f522 then checked it out here in $CASE/gen/chgen/ - RJL cvs diff shows this tree identical to the most current repository version. diff shows identical trees here and $CASE/99s523/genmerge/chgenv11/chgen, except for these changes to aareadme. TBD: introduce revision log symbols so rev history is included in chgen files as it is in bde files. ------------------------------------------------- $CASE/99s523/genmerge/chgenv11/chgen/aareadme - Rev. by RJL 011021 Update RJL 011021: I think I figured out how to replace a Ntag with b Ttag: Today I did these two commands: cvs tag -b tag01f522 (tag must begin with a letter) cvs update -A -r tag01f522 (-A:forget current tag, replace with -r argument The cvs diffs (prior and new) are not significantly different, except aareaadme in . and src. Update RJL 990909: ------------------------------------- The executable $CASE/99s523/genmerge/chgenv11/chgen/executables/chgen11 is the latest one, for an alpha CPU. I ran ../chgen11 ansi -metafile ../../src/metaschema.sch in executables/testChgen1 and you can see the results there: $CASE/99s523/genmerge/chgenv11/chgen/executables/testChgen11 The file metaschema.h states which gen version produced it. Note the schema metaschema.sch has tables SV, VV, TS, TT and TA. It is for bootstrapping chgen, not the usual application, but it shows that executable runs. Always use -ansi and -metafile options when executing chgen11; -metafile also generated ../../src/metaschema.msdat reltive to the executables/testChgen11 directory. ----------------------------------------- ============================================================= Part 1: Progress bu Joe Karner in $CASE/99s523/genmerge: JSK 99/5/11: Checked in the 99s523 changes for genv11 (the name of the tagged version). This version of chgen allows for chgen bootstrapping. For information on this capability, review the file doc/genv11_project.doc. JSK 99/5/5: Checked in the 98f523 changes from rrassman. Also updated the rcs version id source to generate correctly. Rob Rassman enabled pr_replay to correctly process the pr_set_* commands. His project report is in the doc directory as genlog_replay_report.doc (a text version is also available as genlog_replay_report.txt). Output from the enroll test case matches Rassman's results. JSK 99/4/28: Checked in the 97f522 changes from ctwang. These were enhancements for the log function (see doc/project_report_97f522.txt for details). Please note there is a new test case, see chgen/test/enroll. The schooldb8 and schooldb12 cases are also working. JSK 99/4/21: Testing updates of mainline from checked out version of tag genlog. The first goal is to get rcs $Id information into the source files. This is accomplished by putting the following line just after the main() call of each of the chgen/src/*.c files and at the top of the chgen/src/*.h files. ----------------------------------------------------------- Part 2: initial aareadme - from aareadme in case/gen/ver_8 (was in case/93su523/gen/base): RJL 94/12/6 Rev 94/12/6: Makefile points to a non-existent BIN-DIR so I changed it - RJL Problem: sccs edit + sccs delta unable to create lock file on SCCS. Either someone else has it checked out or I am fogetting something that enables sccs to work for me. It's been a long time. Rev. 94/5/4: I revised gen/ver_8/doc/chgen_manual8.tex tonight, to correct an error in gen v8 documentation that JMolloy reported in the 93f523/93fsym/base/doc final report: The error is in defining arg3 of pr_find as a string-valued key field. From gen v7 on, it should be a value of type hcg_key (unsigned int). Passing XXcurr->XXid is OK since that is also type hcg_key. Passing a char[8] value like "XX000001" is wrong; it should be decoded by decode_rtnstr("XX000001"). Caution: don't use decode_retstr more than once in an arg list: Declare temporary unsigned ints and use decode() to return their values. (See gen/ver_7 and gen/ver_8 user guides.) ---------------------------------------------------------------- I copied the directory /usr/proj3/case/93su523/gen/base and then removed the contents of /usr/proj3/case/93su523/gen/base. Other subdirs of the genv8 team were not disturbed under /usr/proj3/case/93su523/gen, but will be removed when space requires it. WARNING: src/* files are dated a week earlier than src/SCCS files.~ WARNING: lut.h is called-for in the Makefile but is MISSING from src/*.h This is because lut.c is generated via the makefile from an intermediate file gen_lut.c; similarly witrh gen_lut.h I believe. New SUbj: key_t was replaced by hcg_key in olcarch and in gen/ver_8. For some reason it is still key_t in gen/ver_7/src/SCCS/s.gen_defines.c It appears from fr.tex of project /usr/proj3/case/93su523/gen/jpowell(?) that hcg_key replaced a simple char*[9] declaration not key_t. There is mail about this on eagle that I can't find yet. - RJL 94/5/10.