[ts-ann] shim-070727 announced

R P Herrold herrold at owlriver.com
Tue Jul 31 09:16:09 EDT 2007

We announce shim-070727, which runs with the currently
shipping (upstream) TWS:
  	Build 875.3, Jul 26, 2007 5:08:09 PM
and some earlier versions as well.

Although it was released to FTP last Friday, I wanted to 
complete testing on the Debian units as well as on Centos 4 
and 5.  All seems to pass both the 'make test' suite, and my 
additional testing in each environment.  I will take a look at 
OS/X later today.  As so much has happened in the last few 
weeks in the shim, I have added a copy of the summary release 
information as released to Freshmeat, and then the full form 
NEWS file.

Summary of changes:

Re-license change to GPLv3 or later; improved command parser 
recovery after input errors; completeion of roll-in of RC file 
support; IPv6 ready getaddrinfo cutover; remove some ambiguity 
on 'info' command; LaTeX documentation fixes

Long form:

copyright (c) 2005--2007 Trading-shim.com, LLC  Columbus, OH
GPL version 3 or later, see COPYING for details

date: Fri Jul 27 2007
date: Tue Jul 24 2007
date: Mon Jul 23 2007
date: Fri Jul 20 2007
date: Thu Jul 19 2007
date: Wed Jul 18 2007
date: Tue Jul 17 2007
date: Fri Jul 13 2007
date: Wed Jul 11 2007
date: Mon Jul  9 2007
date: Fri Jul  6 2007
date: Fri Jun 29 2007
date: Mon Jun 25 2007
date: Fri Jun 22 2007
date: Thu Jun 21 2007
date: Tue Jun 19 2007
date: Mon Jun 18 2007

      * relicense sources under the GPL version 3
      * saving event text to a local file named ShimText is now automatic,
        rather than being controlled by the save option, and that file is
        set for line rather than full buffering, so that latency is much
      * fix command parsing error recovery and trace/error message output;
        command input should be able to correctly parse the very next correct
        message after one including a syntax error, and the explanatory message
        for that error should be reasonably understandable; it is both more
        concise and less cryptic than before.
      * much work has been done on connection parameter input; earlier tarballs
        in this series [prior to the last date above] do not necessarily include
        all of the following features; as is generally the case, you should
        prefer the last version of a series.
      * there is now a default .shimrc file in the tarball root directory
      * regression scripts now pull connection parameters via autoload
        from the bin/kv_pairs file
      * update old-style ipv4 ip-quad based connection logic to use
        getaddrinfo(), which is simple, general, reliable, and flexible.
        See RFC 2553 if you are interested.
      * connection parameters may be provided via any of the following means,
        in increasing order of priority:
          + 0 the hardwired connection parameters in data.c
          + 1 a .shimrc file in $HOME                    (see below for details)
          + 2 "   "      "   "  the current directory      "    "    "    "
          + 3 dbms and feed commands prompted for, once given the init option;
            see the init_opt function in the regression test scripts for an
            example of the command syntax.  There is a total timeout of 20
            seconds for the two commands.
      * the shim accepts a reasonably flexible format for .shimrc files:
          + a .shimrc file consists of name-value pairs such as follows:
DbmsName        mysql
DbmsHost        somehost
UserName        shim
TableSet        testing
FeedName        tws
FeedHost        otherhost
FeedPort        7496
          + pairs may be in any order
          + not all pairs need be provided; if the .shimrc file is incomplete,
            missing values are filled in from the defaults defined in data.c
          + the FeedHost value may be an ip address or a dns name
          + each pair must be on a line by itself
          + the file must have left-aligned pairs only, that is without
            comments, blank lines, or leading whitespace.
          + the Password key is currently ignored
          + for the forseeable future, only "mysql" and "tws" will be accepted
            as the DbmsName and FeedName values.  Sorry, no Oracle for the time
            being, see the manual for more on this.
      * as mentioned above, the init option is now supported.  it triggers
        prompts for both dbms and feed connection parameters at startup;
        for examples of the the dbms and feed commands, see the
        regression scripts, in particular bin/includes.
      * as part of ongoing work to allow more flexible contract lookup, the
        info cmd, which is being used as a guinea pig for the new features,
        produces various kinds of cruft on the stderr -- don't worry about it.
      * modify the syntax to the info (req contract data) command, deleting
        the dummy subscription add/del arg prior to the contract id, adding
        the trailing flag for include-expired contracts, and bumping the
        version up to eliminate a nag message; see the bin/includes regression
        test for examples.  The fixes depended on an earlier change, to
        separate ReqConData from the four subscription request types; note also
        that the info cmd used to be named data, and though was renamed to
        remove ambiguity with data mode, in any case still requests contract
      * the --help feature screens are increasingly out-of-date, and will be
        updated as part of future work on the commands chapter of the
        tutorial.  In particular, the --cmds, --reqs, and --msgs test modes
        have been effectively disabled.
      * add new stage to singletree construction; before/after is:
          + old: component, constants, stateful singletons
          + new:   ", early   "      ,   "        "       , late constants,
            with connection initialization delayed to the 4th stage
      * merge CmdQue and Feeder, and change from request queueing to command
            queing, so that tick id assignment is delayed as long as possible,
            to ensure that ids are sequential even when queued events are
            reordered.   Tick id construction has also been refactored.
      * refactor bulk subscriptions
      * fix bugs in news command
      * fix doc latex bugs due to changes in latex hyperref package
      * initialization bugfix

As always, the latest tarball is at
and prior releases in the ./attic/

We thank you for your interest; we welcome feedback, 
questions, constructive criticism, and comment.  We hope for 
others to join us, as this release has substantial code 
refactoring and restructuring to permit one to get a clear 
idea of program flow by reviewing just three files:
... in all perhaps 500 lines of clean code, will get one 

-- The trading-shim team

More information about the ts-announce mailing list