From 58b2b5cda96ffae89660598b76a59ac75c6d7dd0 Mon Sep 17 00:00:00 2001 From: Kevin Day Date: Sat, 17 Dec 2022 22:10:27 -0600 Subject: [PATCH] Update: Add Time and EpochTime specification documentation. The time specification markup is generated with the assistance of: fss_basic_list_read time.txt +Q -cn "Time Specification" | iki_read +Q -w -WWWWWWWWWWWWWWW bold '' '' italic '' '' character '' '' code '' '' unicode '' '' block '
' '
' script '
' '
' file '' '' ABI '' '' API '' '' ASCII '' '' EOF '' '' FLL '' '' FSS '' '' UTC '' '' -rrrrrrr ABI ABI API API ASCII ASCII EOF EOF FLL FLL FSS FSS UTC UTC --- fll/specifications.html | 30 ++- fll/specifications/other/time.html | 341 +++++++++++++++++++++++++++++ 2 files changed, 368 insertions(+), 3 deletions(-) create mode 100644 fll/specifications/other/time.html diff --git a/fll/specifications.html b/fll/specifications.html index d510ff1..3cf2644 100644 --- a/fll/specifications.html +++ b/fll/specifications.html @@ -119,6 +119,12 @@ + + @@ -145,7 +151,7 @@

- The Featureless Linux Library defines several standards for use in this project. Many of these standards are defined via the Featureless Settings Specifications. Most of these are focused on settings files (configuration files) but are written general enough to support a wide range of uses. The original project that the FLL project is built around is the Featureless Make program, also called Fake. The Fake program is a great example on how the FSS are intended to be used. + The Featureless Linux Library defines several standards for use in this project. Many of these standards are defined via the Featureless Settings Specifications. Most of these are focused on settings files (configuration files) but are written general enough to support a wide range of uses. The original project that the FLL project is built around is the Featureless Make program, also called Fake. The Fake program is a great example on how the FSS are intended to be used.

The standards are not limited to those defined in the FSS. There are the IKI standards (which is not an acronym). The term IKI plays off of the term Wiki. The IKI standard is intended to have simpler syntax than a Wiki syntax and is used in several FLL projects and even inside standards defined by FSS. @@ -300,8 +306,8 @@ Object_2 This is multiple\" Contents and the trailing quote does not need to be

Unless otherwise specified, comments are designated by the pound symbol # but only if only white space is to the left of the pound or the pound # is at the start of the line. There is no support for inline comments. - Unless otherwise specified, the start comment may be delimited by " in the same manner as Objects and Contents are. - This delimit only applies to the start of a comment (the pound code:#" character) as there is no terminating character for a comment (other than a newline \n). + Unless otherwise specified, the start comment may be delimited by \ in the same manner as Objects and Contents are. + This delimit only applies to the start of a comment (the pound # character) as there is no terminating character for a comment (other than a newline \n). A line containing a valid comment is in its entirety ignored. This means that if there is white space before the designation symbol (the pound # character) then that white space is ignored.

@@ -456,6 +462,24 @@ Contents would be:
+
+
+

Other

+
+ +
+

+ The FSS and the IKI are not the only standards provided by the FLL. +

+

+ The following are other specifications that are provided: +

+ +
+
+

Completeness Theorem

diff --git a/fll/specifications/other/time.html b/fll/specifications/other/time.html new file mode 100644 index 0000000..46b8b99 --- /dev/null +++ b/fll/specifications/other/time.html @@ -0,0 +1,341 @@ + + + + FLL - Specifications - Time and EpochTime + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+
+
+

Featureless Linux Library Specification

+
+ +
+
+

Time and EpochTime

+
+ +
+

+ There are two units of Time, the first is simply called Time and the second is called EpochTime. +

+

+ Both Time and EpochTime are measured without the year but may contain a year to designate the point in the counting begins. + These are both represented by a single 64-bit (unsigned) integer. + The default timezone is always UTC. +

+

+ The common form is intended as the non-technical form that is form common use. + This may have a negative value or be more than 64-bit digits long. + This is simply not expected to be interpreted as a unit of time on a computer (but nothing stops it from being interpreted). +

+

+ The technical forms are limit to 64-bit unsigned for technical use but should technology advance to a point where larger bits are needed then this allows for that. + The systems should expect 64-bit and larger bits would have to become common before something larger than 64-bit is the expected or assumed default. + Negative signs can be allowed but they must not prevent the full use of the 64-bit. + The implementation of how this is done is left to the implementer except that the signs are immediately to the left of the digit. + For example 2022:-5 would be 5 units after the start of the year 2022. + Because the negative is allowed, so must the positive character (such as 2022:+5). + A positive value is the default interpretation when no sign is valid. +

+
+
+ +
+
+

Time

+
+ +
+

+ The unit of time called Time is counted increments of a nanosecond, or 10^-9 seconds. + A unit of Time is, therefore, equivalent to a nanosecond. + The default year for Time is the current year. +

+

+ The unit Time has two technical forms and one common form, with the year and without the year. +

+

+ Key: +

+
    +
  • \s = White space.
  • +
  • \d = The digits used to represent time (a digit).
  • +
  • * = Zero or more occurrences.
  • +
  • + = One or more occurrences.
  • +
  • : = A single colon : (U+003A).
  • +
  • " = A single double-quote " (U+003A).
  • +
+

+ The common form of Time: +

+

+ Before Structure: +

+
    +
  • +
+

+ Structure: +

+
    +
  • \s*\d+\s*\U*\s*
  • +
+

+ After Structure: +

+
    +
  • +
+

+ Example: +

+
    +
  • 86400
  • +
  • 86400 T
  • +
  • 86400 Time
  • +
+

+ The first technical form of Time: +

+

+ Before Structure: +

+
    +
  • +
+

+ Structure: +

+
    +
  • \s*\d+:\d+\s*\U*\s*
  • +
+

+ After Structure: +

+
    +
  • +
+

+ Example: +

+
    +
  • 2022:86400
  • +
  • 2022:86400 T
  • +
  • 2022:86400 Time
  • +
  • 2022:86400 MT
  • +
  • 2022:86400 MegaTime
  • +
+

+ The second technical form of Time: +

+

+ Before Structure: +

+
    +
  • +
+

+ Structure: +

+
    +
  • \s*:\d+\s*\U*\s*
  • +
+

+ After Structure: +

+
    +
  • +
+

+ Example: +

+
    +
  • :86400
  • +
  • :86400 T
  • +
  • :86400 Time
  • +
  • :86400 MT
  • +
  • :86400 MegaTime
  • +
+
+
+ +
+
+

EpochTime

+
+ +
+

+ The unit of time called EpochTime is counted increments of a second, or 10^-9 seconds. + A unit of EpochTime is, therefore, equivalent to a second. + The default year for EpochTime is the UNIX Epoch, sometimes called Unix time. +

+

+ The unit EpochTime has two technical forms and one common form, with the year and without the year. +

+

+ The common form of EpochTime: +

+

+ Before Structure: +

+
    +
  • +
+

+ Structure: +

+
    +
  • \s*\d+\s*\U*\s*
  • +
+

+ After Structure: +

+
    +
  • +
+

+ Example: +

+
    +
  • 86400
  • +
  • 86400 ET
  • +
  • 86400 EpochTime
  • +
  • 86400 MET
  • +
  • 86400 MegaEpochTime
  • +
+

+ The first technical form of EpochTime: +

+

+ Before Structure: +

+
    +
  • +
+

+ Structure: +

+
    +
  • \s*\d+::\d+\s*\U*\s*
  • +
+

+ After Structure: +

+
    +
  • +
+

+ Example: +

+
    +
  • 2022::86400
  • +
  • 2022::86400 ET
  • +
  • 2022::86400 EpochTime
  • +
  • 2022::86400 MET
  • +
  • 2022::86400 MegaEpochTime
  • +
+

+ The second technical form of Time: +

+

+ Before Structure: +

+
    +
  • +
+

+ Structure: +

+
    +
  • \s*:\d+\s*\U*\s*
  • +
+

+ After Structure: +

+
    +
  • +
+

+ Example: +

+
    +
  • ::86400
  • +
  • ::86400 ET
  • +
  • ::86400 EpochTime
  • +
  • ::86400 MET
  • +
  • ::86400 MegaEpochTime
  • +
+
+
+
+
+
+ + -- 2.47.3