Work item list extracted from my back mail

Eric S. Raymond esr at thyrsus.com
Tue Apr 25 23:13:25 UTC 2017


This is the list of work items and potential work items I have
extracted from my back mail.

Serious bug: We have a report from MAYER Hans <Hans.Mayer at iiasa.ac.at> that
ifstats is broken, returning no output.  It should be possible to pin down
when this broke with a regression test.

Possible work item (Ian): See how much of the C statustoa() function
we can get rid of in favor of the Python implementation in pylib/util.c.

Possible work item (me): Change Mode 6 so it no longer ships system status
bits in hex, decoding them into a string token list instead, old
behavior preserved under ENABLE_CLASSIC_MODE. This is because the PLL*
definitions aren't guaranteed to be consistent across different system
versions.

Work item (me): Move the pivot application to timestamps as they are
received.  The current locus in sys_adjtime() is wrong.  This won't be
urgent until closer to 2036, but it's important - the current pivoting
machanism probably doesn't work. (And what's with the 10-year stepback
in there?)  Must figure out a way to test it. Can be post-1.0.

Work item (me): Hal wrote:

   We need a web page that summarizes this area - not the internal details, but
   the general problem and how it impacts users.

   NTP overflows in 2036
   32 bit signed time_t overflows in 2038
   GPS overflows every 1024 weeks (~20 years starting from 1980)
     First rollover was 22 August 1999
     They added 3 bits in ???
     Some older devices used pivot logic to extend their lifetime past 2000

   A description of pivoting and how it works.

   Good URLs for more info

Yes, we do need this.  Now we should add a description of SOURCE_DATE_EPOCH
and link to https://reproducible-builds.org/specs/source-date-epoch/

Work item: Replace

  typedef uint64_t l_fp;

with

  typedef uint64_t l_fp_time;
  typedef int64_t l_fp_offset;

Then replace all the places that used to use l_fp with the correct one.

Then iterate on making macros and removing casts in the main code.

Work item: Study this:

https://developers.google.com/time/smear#standardsmear

Are we implementing it?

Work item: New Mode 6 responses that unpack status bits into list of string
tags for the status bits.  Avoids potential problem with PLL bits (outside
our control) changing due to kernel mods.

Work item: There are two date/time to text modules, prettdyate.c and
humandate.c.  Hal notes that seems like one too many.  This whole area
feels ripe for more cleanup.  Hal thinks think one of the routines in
prettydate is only used by python.  This feels like an area where if
we start getting rid of things then we can get rid of more things that
nobody else uses.

Work item: The lfpfloat() function in the Python interface may be
dispensible. Convert the hex literal to float and divide by 1<<32
to scale to seconds since the NTP epoch.
-- 
		<a href="http://www.catb.org/~esr/">Eric S. Raymond</a>

Alcohol still kills more people every year than all `illegal' drugs put
together, and Prohibition only made it worse.  Oppose the War On Some Drugs!


More information about the devel mailing list