[ts-ann] shim-070907 announced

R P Herrold herrold at owlriver.com
Sun Sep 9 12:27:31 EDT 2007

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

I pushed a notice out to Freshemat (I forgot to push one last 
month) with the following summary:

Changes: Merge OS/X ppc and x86 lines in the external release; 
add architecture-sensitive logic to build the clock timer 
header file for Mac OS/X ppc and x86_64 as well as i386; 
modify much of the error trace output to use cerr in place of 
stderr, in order to avoid format string integral-type word 
length problems between x86 and ppc; change the symbol SUNW to 
JAVA; add a few symbols for slightly) better European 
coverage; rate-limit history queries to at most one every 10 
seconds; continuing documentation work

The more complete statement from the News file is:

date: Fri Sep  7 2007
date: Fri Aug 31 2007
date: Wed Aug 29 2007
date: Mon Aug 27 2007
date: Thu Aug 23 2007
date: Wed Aug 22 2007
date: Tue Aug 21 2007
date: Mon Aug 20 2007
date: Mon Aug 13 2007
date: Fri Aug 10 2007
date: Thu Aug  9 2007
date: Fri Aug  3 2007
date: Thu Aug  2 2007

      * add a few symbols to Miscellany.sql, ProductMap.sql, and LocalSet.sql,
        in response to a user request; this gives (slightly) better European
        coverage.  Feel free to send in more new entries for the symbol tables.
        And thanks to the user who sent us the data.
      * add architecture-sensitive logic to build the clock timer header file
        for Mac OSX ppc and x86_64
      * modify much of the error trace output to use cerr in place of stderr,
        in order to avoid format string integral-type word length problems
        between i86 and ppc, and merge the 8.31 mac ppc fork with the main
        line; please use this release in place of the 8.31 tarball if you
        downloaded it.
      * the Fri 8.31 release is for MacOs only, and there only for experimental
        use --- it is a *known* problem that it will not compile for Linux
      * the Wed 8.29 release is not for general use -- please don't download
        it unless you know what you are doing.
      * In the database load files, change the symbol SUNW to JAVA
      * The shim for Mac OS X is broken, and we're working on it.  The critical
        problem is the inline assembler to read the processor time stamp
        counter, which we're planning to extend to handle PPC.  On a related
        but minor note, the version of g++ on Mac OS X 10.4.10 complains
        about %d (int) formats for natural, that is unsigned numbers, and the
        instances of such in the code have been fixed with the 070823 release.
        Also, old versions of g++ are unable to properly compile some of the
        template related code --- this is a known problem for, e.g.,  g++ 3.2.3
        --- so you will need to upgrade your mac to g++ 4.0, if it's not
        already there.
      * add DAX december future to LocalSet, for the benefit of European users.
        Please, if you are from across the pond, let us know how we can improve
        the default contract set in LocalSet.  We're not ignoring you, we just
        have trouble testing this stuff, since we don't have access to all the
        European symbols.  Please join the list, and speak up.  Although the
        future works, a tick subscription for the plain index doesn't; maybe
        problems with our IB tws account subscriptions, don't know; please let
        us know if it works for you.
      * rate-limit history queries to at most one every 10 seconds
      * modify the "pane" (synonym "window") option to close the display window
        when the shim exits; if you want the window to hang around, run the
        bin/tail.window script directly, prior to startup.
      * comment out most unfinished parts of the manual in the ps, pdf, and
        html forms; the *.tex sources for the partial chapters are still
        included in the tarball, so minor changes to manual.tex will give
        you the whole thing.
      * edit Ch. 3 of the manual, "Installation, Setup, and Startup", and
        add screenshots showing tail'd log output in a separate konsole
        window, via the pane (window popup) option
      * rename the "look" cmd, which serves as the dbms append operator,
        and reads in new records, as "read".  Eliminate bulk as a command
        and option name, leaving the bulk subscription command name as "load",
        and the name of the cmd line option forcing an init-time load, also
        to be "load".
      * make numerous minor changes to cmd line option handling logic,
        including updates to help text, so that ./shim --help is the best
        current documenation of the available options
      * make file output to the ShimText file of the current directory the
        default, so that there is no longer any need to request it via the
        Save option, and disable syslog output as default, requiring instead
        that the logd (or its synonym, syslog) option be provided explicitly
        requesting this feature. Default was syslog and no ShimText, and is
        currently the opposite, ShimText and no syslog.
      * trim space cost of manual in several ways, dropping tarball size back
        to 3+ meg; again, the manual is still the main offender here
      * add filename and timeout key-value pairs to config file language,
        password key-value pair, ditto, and password value to dbms command;
        see Ch. 3 of manual for details
      * fix bug in init option (prompted initialization commands at startup)
      * modify Makefile to change compilation default from distcc to g++;
        reversing the patch mk.patch will recover the original distcc definition
        for CC.
      * work on bind command
      * continue refactoring JobQue
      * reduce routing latency

... which is quite a mouthful.  We had two new sets of non-US 
user teams appear (in private communication -- Come on folks 
-- this project is Open Source, developmental and 
explorational; there _are_ no 'right' answers per se.  Feel 
free to join the mailing list as well, and to send email from 
a non-work address and 'uncloak' yourself) this month, 
including a a group seeking the PPC OS/X set.

With this release, I get clean compiles on i386 (CentOS 5 and 
Debian testing), x86_64 (CentOS 5), and ppc under OS/X (we had 
a few days with a testing candidate which was not at all happy 
other than on ppc, which has now been merged to work all 
places).  [This week, we now have a local DVD copy of 
OpenSolaris, and as time permits and for curiousity's sake, 
will convert a Sparc9 running 'Aurora 1.9' to OpenSolaris to 
see how the code (and indeed the TWS -- we have not run Java 
on sparc platforms before) reacts there.]

There is a small linktime error 64 bit against the database 
libraries [32 v 64 bit issue] (x86_64), and OS/X ppc as well, 
which I am looking into, and is probably just a path issue. 
I mentioned in the general list that I had worked around the 
issue on OS/X earlier in the week with the addition of:

> and editted the Makefile for the Apple unit:
> LIB       = -L/usr/local/mysql -lmysqlclient \
>         -L/usr/local/mysql/lib

The x64_64 fix is almost certainly going to be a similar 
library path fixup.  We know that the autotools can address 
this with a general solution, but the time and resources for 
that has not yet hit the front of the issue queue, as we are 
trying to get some other areas nailled down first.

As always, we hope for others to join us -- another area 
beside drilling in autoconf and friends, we would appreciate 
help is in getting .DEB packaging set up and working.  RPM 
.spec files are on the near horizon locally.  I looked into 
OS/X packaging over the weekend, and all I can say is that I 
am appalled with Apple's weakness of automatic dependency 
identification and resolution tools in that space.

As mentioned on the general mailing list I gave a LUG 
presentation on the shim, under Xen virtualiztion a couple of 
weeks ago, and that seemed to be well received.  The 
presentation materials and notes are at:

I collected the packages which we build locally under CentOS 
5 (as Red Hat for one reason or another does not include 
them upstream in RHEL), at:
along with a README -- graphviz, distcc, xpdf are basic tools 
to me  ;)   I need to re-roll the distcc to include a define, 
but it may be built thus:
    rpmbuild --define '_initrddir /etc/init.d' --rebuild \

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.  Please 
consider joining in the fun publicly.

-- The trading-shim team

More information about the ts-announce mailing list