[Xtide-announce] XTide 2.14 development

David Flater dave at flaterco.com
Mon Oct 13 21:34:15 EDT 2014


Biggest changes since last dev snapshot:  libxtide; Android.

   XTide 2.14 DEVELOPMENT (2014-10-13)

    Moved all "common" files into a separate library and namespace,
    libxtide.  If libdstr is not provided the Dstr class gets included in
    libxtide.

    Enabled building libxtide and tide for Android:
      * Fixed configure.ac nit that blocked cross-compiling.
      * Added configure option --enable-lm_hard.
      * Added workaround for Android/Bionic quirk of failing on zoneinfo
        paths introduced by a colon character.  This fixes the time zones
        problem that affected MX Tides.
      * Added example script for cross-compiling libpng, libtcd, libxtide
        and tide for ARM Android on x86 Linux in scripts/Android.

    Other portability and code rot:
      * Updated Makefile.dj2 for DJGPP 2.04.
      * Changed GCC minimum version test to ignore Clang, which
        fraudulently identifies itself as an old GCC.  Bug report credit:
        Ryan Schmidt.
      * Changed GCC minimum version failure into a big ugly warning. Since
        initializer lists have become optional, some pre-4.4 versions work
        again.
      * Replaced a preprocessor test for Visual Studio with a more general
        configure-time check for whether std::vector has an
        initializer_list constructor.  This fixes the SafeVector build
        error on OS X Mountain Lion.  Mavericks was never afflicted. Bug
        report credit:  Dan Hinckley.

    New settings:
      * XTide*caldayfmt (-cf) controls the format string used to print days
        in calendars.
      * XTide*linebreak (-lb) controls whether or not calendar mode inserts
        a line break before prediction values.  This reduces truncation in
        text format and tweaks line wrapping in HTML and LaTeX formats.
      * XTide*omitunits (-ou) prints numbers with no ft/m/kt and adds a
        header line stating the units and datum (where possible).
      * XTide*pagebreak (-pb) controls whether or not calendar mode inserts
        a page break and repeats the station header for each month in text,
        HTML, and LaTeX formats.  Text uses form feeds and HTML uses a
        page-break-before style.

    New, experimental configurable --enable-moon-age replaces the moon
    phase column of calendar mode with moon age.  This number wants to be
    replaced by graphics showing the moon as it would appear
    (approximately) on each day of the lunar month as originally suggested
    by Kelly Bellis, but it's not easy to implement that consistently
    across all formats.  FWIW, Unicode 1F311 through 1F318 provide
    characters for 8 phases of the moon that could be used in UTF-8 text
    modes.

    (Tweak) Centered calendar cell contents in HTML and text formats as
    they already were in LaTeX format.

    (Note) In most modes the approximately zero prediction values
    associated with slack water events are output, but they are omitted in
    calendar mode.  Noted but not changed.

    Thanks to Kelly Bellis for suggestions to improve calendar mode.

    Yet to do:
      * libtcd needs --enable-lm_hard and build updates for VC++ (maybe
        DJGPP again).
      * Tide needs build updates for VC++ and maybe DJGPP again.
      * Add script for big-bang LTO build.
      * Test latest library and GCC versions for code rot.
      * Do something about Windows.
      * Clean up and update documentation.



More information about the XTide-announce mailing list