FASTLST Changes and Additions 1.30 - WARNING: FastLst v 1.30 is NOT a true "Drop In" replacement for v 1.20, anyway there is little to change: - Add a "CompressCfg " line to the "Global Info" section of your fastlst.cfg. - Remove all "Arc" and "UnArc" lines. - In each "Input block" section where you would like to be able to compress new nodelists (e.g. where Nodediffs are processed and you were using "Arc" statements), add one or more "ArcMethod ,[] ..." lines, where represents one of the archiving methods defined in (e.g. ZIP, LH, etc.) and the optional is an override for the initial character of the archived file extension (in the case it is named after the day of the year and you do not want to use the first character of the default extension, as defined in ). - See FastLst.Doc for more information. - DOS: There is a new 32 bit version with the DOS4GW extender. - OS/2: There is a new 16 bit version for those who still use OS/2 1.3. - OS/2 32: the "Priority" statement can be used to change the priority for the FastLst process. - The 32 bit versions can now be configured to use the temporary file instead of working in memory. The "FileMode" statement and the "-t" command line switch are used for selecting the mode. - The routines used in 32 bit versions for "in memory" work (no temporary file) have been completely rewritten in order to need far less memory. This way, the 32 bit versions usually allocate about 1/4 of the memory they needed with v 1.20. This is an important issue on systems with not too much physical RAM (especially for the DOS version, that cannot efficiently use virtual memory), but the benefits are noticeable even on systems with plenty of RAM (less OS/2 swap reorganization when FastLst ends). - The "TmpPath" config statement is no longer needed: FastLst will use the TMP or TEMP environment variable if no TmpPath statement is used. - If you want FastLst to kill all uncompressed nodelist (except for those that are not stored in compressed format too), just add a "KillSource" line to the "Global Info" section of FastLst.cfg. - All the ArcList and Arcdiff statements can now work WITHOUT the specification of the first letter of the extension, i.e. "ArcList NodeList.z??" can be changed to "ArcList NodeList.???" and "ArcDiff NodeDiff.z??" can be changed to "ArcDiff NodeDiff.???". This way FastLst will automatically handle any archive type that shows up in the ArcList directory. - Now all the nodelists and nodediffs can be maintained in many different archived formats. The archiving method for NodeDiffs must be specified using "ArcDiffMethod ,[] ...". - The "block" structure of the config file remains, but it becomes a lot more flexible: the majority of config verbs can now be anywhere in the config file, but they have effect on different nodelists depending on their position in the cfg. E.G.: "PasswordFile", being an address related verb, can be both in the "Output Nodelist" and "Input Nodelist" sections. If you use it after "Version7" but before the first "NodeList", then it will be used for all the NodeLists of that "Output block". If you use it after a "NodeList", it will be used (as in the past) for that Nodelist only. Other non-address related verbs (e.g. ArcMethod) can be everywhere (global, output nodelist, input nodelist) and the will affect the operations depending on their position (global: all the nodelists; output: all the nodelist in the current output block; input: the current nodelist only). - "NoRedir" verb: the nodes that should be redirected will acquire the empty string as phone number, so that you will never call a system different from that you think you are calling. - Many new verbs have been added to support external operations; the names are self explaining: BeforeArcList AfterArcList BeforeUnArcList AfterUnArcList BeforeUnArcDiff AfterUnArcDiff BeforeArcDiff AfterArcDiff All the preceding verbs support the %a (complete archive name) and %f (add/extract file name, no path) parameters. BeforeEdit AfterEdit The preceding verbs support the %l and %d parameters standing for the full pathnames of the NodeList and NodeDiff files. BeforeCompile AfterCompile The preceding verbs support the %l parameter only. BeforeKillSource The preceding verb does not support any parameter. It is executed even if "KillSource" is not used. It is a means to invoke a command before FastLst ends. The "NeededBeforeKill" verb must be used to specify the NodeLists needed by this command. See FastLst.Doc for more information. - A new cfg section is now available: "NoCompile". It is a means for maintaining a NodeList (applying nodediffs, archiving with different archivers etc.) without compiling it. - The 3D German PointListst is now internally supported by FastLst. Just use the "GermanPointList" verb in the pertaining block. - When all goes well, FastLst exists with errorlevel 0 if it has compiled something, 100 if nothing new to compile was found. - New method for evaluating the age of a variable extension arcfile: the file date is considered in addition to the 2 digits in the extension. This way you can keep a greater number of old files without creating problems to fastlst, even at the year crossing. - File descriptions in FILES.BBS are now maintained (deleted or added). New statements are available: ArcListDesc ArcDiffDesc can contain the following parameters: %d day %a archiver %D date, USA format %L Local date - The dash is now recognized as insignificant while doing the Dial and Cost translations. - The line # is specified when reporting a config error. - Some information about the compilation can now be reported to a fido/squish message area: see FastLst.Doc for a description for "MsgLogArea", "MsgRemArea" and related statements. - FastLst is now multitasking smarter: e.g. it retries for 15s when it has to delete the old compiled nodelists and rename the new ones. - New Export capability: FastLst is now able to "export" segments of nodelist: see the "Export" section in the docs. - The Dial and Cost tables can be unified: the old syntax is still supported, but a new way can be used for cost and dial specifications. I think that Europeans can continue using the old syntax (if they like), while the Americans should appreciate the new way (due to the complex dial translations needed). - Fixed bug that caused access violations when no "StatusLog" was used. 1.20 - WARNING: FastLst v 1.20 is NOT a "Drop In" replacement for previous versions; you MUST modify the config file following the comments in it before using this version. - In order to make available new powerful options without using clumsy syntax and risking subtle side effects and strange interactions, some obsolete features have been dropped and the methods to specify the files to be compiled have been modified. - FastLst is faster than ever: on my system and with my configuration, the OS/2 version is about 25% faster than v 1.16. If you time it, be aware that the OS/2 version optimizes memory allocation (and speed) basing on the needs of the previous compilation, so it is usually a bit slower on the first run with a new cfg. - The ancient "Version6" nodelist support has been dropped. However the sometime-useful fidouser.lst is still available. - The "MergeList" and "Kill999" options have been dropped. With version7 you can simply compile segments after the full list, since updated entries are put in the indexes in the place of old ones. - Added support for compiling multiple V7 nodelists with different output names. - Added support for automatic decompression of nodelists and nodediffs: no more complex batch files. - Now FastLst compiles an output nodelist only if some of its input lists are new: the -f command line switch has been added to force compilation. - Pay Attention: version 1.14 introduced a new behaviour in generating V7 indexes to circumvent a bug in Binkley 2.50 V7 search function. Now Binkley 2.58 should have fixed the bug, so FastLst goes back to the "correct" V7 index. A new cfg option has been added to keep using the "bug-circumvent" index form: see "V7BugFix" in the example config file. ******************************************************* * If you are using an older Binkley or some program * * that have got inspiration from Binkley 2.50 sources,* * you could experience "address not found" problems, * * unless you explicitly activate the "V7BugFix" * * option in fastlst.cfg. * ******************************************************* - The "KillOld" and "AutoErase" verbs have been dropped. Old nodelist and nodediff files are always erased. You can control how many archived files are to be kept via the new archive processing verbs. - The -o -s -l -g -m -p -b command line switches have been dropped since they are now useless. - The "include" cfg keyword and the -i command line switch have been dropped. You can still include lists of passwords in a separate file via the "PasswordFile" cfg keyword, that allows to optionally omit the "Password" keyword in front of each password specification. - Due to the frequent misunderstanding of the real meaning and function of the "Address" config option, I have decided to drop it. These days it is not much useful (in a nodelist compiler), since many systems have various different addresses and we are used to write addresses in the full 4D format to avoid ambiguities. In the various config options that require an address or a part of it, you now need to specify all the required fields, always starting with the zone number: no assumption is made on your zone/net/node. - The obsolete "MaxBaud" and "Baud" verb have been dropped. Should you use an old 2400 non error-correcting modem that needs equal DTE and DCE rates, make sure your front-end is configured to dial using its own max baud rate instead of the baud rate reported by the nodelist for the callee (AutoBaud in Binkley.cfg). - The "Country" and "UCost" verbs have been dropped, the "Dial" and "Cost" tables have been slightly modified to specify domestic and international defaults in a more coherent manner and to include "UCost" info. - The "TypeExact" verb has been substituted by the complementary "BitType" option. Thus the default is now the "Exact Type" used by Binkley 2.55 and newer. - The "TypeCost" verb has been dropped. It was used to differentiate CallCost basing on modem type. This way, in a multi-line environment, you could make each line call the appropriate modem types. To achieve the same goal, please use the front-end dial string selection options (ModemTrans in Binkley). - The totally useless "Name" and "Comments" options have been dropped. - The "Gated" config option has been dropped and the "GateAddr", "GateCoord" verbs have been replaced by "IncAddr", "ExcAddr", "IncCoord". - The "Interlist" config option has been dropped. It is substituted by the "IncSysOp" verb. - The "Type" and "CM" keywords have been dropped. Their functions are more cleanly implemented via the "NodeFlags" verb. - The "TypeDef" statement has been modified to a "table" form, for better coherency. - The addresses in Fidouser.Lst now always have the heading zone number, even if it is the same as yours. - Fixed little bug that could cause some cfg keywords not to be recognized unless followed by a comment 1.16 - Fixed bug in the Register routine that caused some keys not to work (1 every 256). 1.15 - Some programs skip the first entry in V6 nodelist, assuming it is a dummy entry that contains the version number of the nodelist. These programs could loose the "zone number" of the first zone compiled, thus assuming zone 0. Now FastLst puts the "version ID" entry at the start of nodelist V6. 1.14 - Some programs do not correctly read V7 indexes when an empty node appears (This happens when a key has no greater keys in the lower index level, so that it points to an empty node). Sometimes these programs could not find part of the V7 nodelist entries. Now FastLst adds a dummy duplicate key to avoid the problem. - New "Node,
,..." keyword to allow straightforwad addition of nodes without the need for Zone and Host lines. - Removed the Point flag in the output nodelist for point 0 entries (after the "Boss,..." keyword). 1.13 - When a totally empty line was found in a nodelist file a strange undesired nodelist entry was compiled. It was not a bug since FTS-0005 does not allow empty nodelist lines, however it has been fixed to avoid problems with private manually written nodelist segments. - The .DOC now reports an "undocumented" feature: when using the "Boss,
" method for pointlists, you can also use the point #0 to easily add the Boss entry, if useful. 1.12 - In the case of SysOps of multiple nodes, all the Name/Address couples are now put in the SysOp lists (fidouser.lst and sysop.ndx). This new behaviour allows to use the great "address choice" feature of TimEd (excellent Dos/OS2 message editor by Gerard van Essen 2:281/527). - New behaviour of "SysDup" option: since now all the name-duplicate sysop entries are kept by default, SysDup allows to keep (for a particular sysop name) only the entry with one of the specified addresses. - Many internal changes, not visible to users: if you find out a new unexpected behaviour, please let me know. - Removed redundant empty lines in nodelist.prn and nodelist.txt after comment lines. 1.11 - CRC is now checked on all nodelist files that have the expected CRC on the first line (previously it was checked when applying nodediffs only). - New errorlevel 10 for CRC Error while compiling nodelist (errorlevel 9 is still used for CRC Error while applying nodediff). - When merging the first line is skipped if it contains the CRC. - New -r command line switch to avoid exit on CRC Error. - New -s command line switch to override SYSOP.NDX base name. - Any file specification can contain drive and path, including -n -d -o -s overrides. - When using Version7 only, the added nodelist segments are appended to the end of the full main nodelist instead of the end of your zone. - Some small changes in Nodelist.Prn and Nodelist.Txt - Fixed bug introduced in v 1.10: when a region segment (no zone entry) was compiled as the main nodelist, zone 0 was erroneously assumed. Now the address levels not present in the main nodelist correctly default to the config address. 1.10 - OS/2: First 32 bit version, compiled by BC++. - OS/2: New "flat" index sorting (no more disk based merge-sort). - OS/2: "TmpPath" option in *.cfg not used any more. - OS/2: Long filename support - DOS: The "TmpPath" directory is now automatically created when necessary. - New improved Disk Full handling (errorlevel 4) - New "-o" command line switch to override output file names (NODEX.* -> .*). - New "KillAfter" config verb, to save old nodelist files in the case of compilation error. - New "Boss
" statement for easier pointlist support (see FastLst.DOC). - New optional partial address parameter in "MyList [default partial address]" to allow the addition of nodelist segments without the need of ZONE, HOST, node prefix lines (V7 only). See FastLst.DOC for more details. - New "-i" command line switch to allow easier different file inclusions. - New "KillOld" config statement to kill old versions of nodelist files. - New "Kill999" config statement to kill the .999 file that remains after merging with MergeList. - Now the .999 file is killed whenever FastLst begins execution, thus you do not have to manually delete it if you stop using the MergeList command. - Now the "Gated" config keyword prevents Hub coordinators of other zones to be put in the output nodelist (only ZC and NC remain). - New "GateAddr" config keyword allows to have only selected zones, regions and nets in the output files. - New "GateCoord" config keyword allows to have in the output files only selected coordinators from the excluded zones, regions and nets. - New errorlevel 9 exit after CRC error while applying a nodediff. If "Autoerase" is active, the nodediff and the resulting nodelist files are erased, otherwise they are renamed to NODEDIFF.BAD and NODELIST.BAD. - New "StatusLog" config statement to specify the log filename in the .cfg instead of the command line. - New "TypeExact" config option to set modem types in a way more coherent with the behaviour of Binkley 2.55 and newer. - New "SysDup" config option to override FastLst's choice when killing duplicate SysOp Names. 1.06 - OS/2: Fixed bug that caused some reg. keys not to work. - DOS: Fixed bug that sometimes caused memory problems during index sorting. 1.05 - New UCOST verbs to set User Cost Different from Call Cost. - OS/2: Fixed bug that sometimes caused "Disk Full" error. 1.04 - Changed redirection criteria: if you have a password with a hold/unpublished system or its coordinator, then it is NOT redirected; instead it gets an empty phone number string. - Slightly changed the algorithm to choose the entry for a multi-SysOp in Sysop.Ndx, so that he never gets data from an entry that is not used due to local segment override. - Added "Flags" Keyword to set the user defined bits. - OS/2: Fixed a bug that caused a "NULL POINTER" error when compiling only Version 6 and FidoUserLst. 1.03 - Added before comment output to fix video output when both comments and report are active, Thanks to Roberto Zanasi. - OS/2: First (16 bit) version, ported by Pasquale Cantiello. 1.02 - Null pointer bug fixed in Merge module, Thanks to Pasquale Cantiello. 1.01 - Minor message and DOC adjusting. 1.00 - First public release.