From 108a0454d05c744c4a05e298cfc8cbf157952414 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20H=C3=B6rnquist?= Date: Tue, 12 Sep 2023 10:23:59 +0200 Subject: Rework file tree structure for info files. --- doc/ref/general/base64.texi | 22 ++ doc/ref/general/bst.texi | 37 ++ doc/ref/general/crypto.texi | 17 + doc/ref/general/datetime.texi | 670 +++++++++++++++++++++++++++++++++++ doc/ref/general/glob.texi | 37 ++ doc/ref/general/graphviz.texi | 10 + doc/ref/general/io.texi | 31 ++ doc/ref/general/srfi-41.texi | 100 ++++++ doc/ref/general/util-config.texi | 93 +++++ doc/ref/general/util-exceptions.texi | 40 +++ doc/ref/general/util-path.texi | 62 ++++ doc/ref/general/util.texi | 359 +++++++++++++++++++ doc/ref/general/uuid.texi | 17 + doc/ref/general/xdg-basedir.texi | 62 ++++ doc/ref/general/zic.texi | 135 +++++++ 15 files changed, 1692 insertions(+) create mode 100644 doc/ref/general/base64.texi create mode 100644 doc/ref/general/bst.texi create mode 100644 doc/ref/general/crypto.texi create mode 100644 doc/ref/general/datetime.texi create mode 100644 doc/ref/general/glob.texi create mode 100644 doc/ref/general/graphviz.texi create mode 100644 doc/ref/general/io.texi create mode 100644 doc/ref/general/srfi-41.texi create mode 100644 doc/ref/general/util-config.texi create mode 100644 doc/ref/general/util-exceptions.texi create mode 100644 doc/ref/general/util-path.texi create mode 100644 doc/ref/general/util.texi create mode 100644 doc/ref/general/uuid.texi create mode 100644 doc/ref/general/xdg-basedir.texi create mode 100644 doc/ref/general/zic.texi (limited to 'doc/ref/general') diff --git a/doc/ref/general/base64.texi b/doc/ref/general/base64.texi new file mode 100644 index 00000000..ab6bba81 --- /dev/null +++ b/doc/ref/general/base64.texi @@ -0,0 +1,22 @@ +@node Base64 +@section Base64 + +@defun base64->bytevector bv +@defunx bytevector->base64 bv +Base procedure for all Base64 operations. +Takes and returns bytevectors. + +Throws @code{decoding-error} on invalid input. +@end defun + +@defun base64-string->bytevector string +@defunx bytevector->base64-string bv +Base64 side is strings, while data is bytevectors. +@end defun + + +@defun base64encode string [transcoder=(native-transcoder)] +@defunx base64decode string [transcoder=(native-transcoder)] +Highest level Base64 procedures. Both encoded and decoded data is +strings. +@end defun diff --git a/doc/ref/general/bst.texi b/doc/ref/general/bst.texi new file mode 100644 index 00000000..d2bba0ff --- /dev/null +++ b/doc/ref/general/bst.texi @@ -0,0 +1,37 @@ +@node Binary Search Tree +@section Binary Search Tree + +A simple ``read only'' binary search tree. + +@defun make-tree pred? lst +Constructs a new tree. @var{pred?} should be a procedure taking the +first element of @var{lst}, along with each element, and should return +a boolean value indicating if the specific element should go in the +left or right subtree. (left subtree is ``truthy'' values). + +This operation is done recursively. +@end defun + +@defun tree-node tree +Return the value of a tree node. +@end defun + +@defun left-subtree tree +Return all ``truthy'' children of tree node. +@end defun + +@defun right-subtree tree +Return all ``falsy children of tree node. +@end defun + +@defun length-of-longest-branch tree +Get the depth of a tree. +@end defun + +@defun tree-map proc tree +Apply proc onto the value of every node in tree, keeping the structure +of the tree. + +@b{Note:} this can cause the tree to no longer be a binary search +tree, but simply a ``formless'' binary tree. +@end defun diff --git a/doc/ref/general/crypto.texi b/doc/ref/general/crypto.texi new file mode 100644 index 00000000..b9e362d3 --- /dev/null +++ b/doc/ref/general/crypto.texi @@ -0,0 +1,17 @@ +@node Cryptographic and Hash Procedures +@section Cryptographic and Hash Procedures + +This module links libcrypto, exposing some hash procedures. + +@defun sha256 message +Calculate the sha256-sum of @var{message}. The message can either be a +bytevector or a string (in which case it will de encoded as UTF-8). + +Returns the checksum as a bytevector. +@end defun + +@defun checksum->string message-digest [port] +Generates a hex digest string from a checksum (generated by +@code{sha256}). The checksum is written to @var{port} if given, or +returned as a string otherwise. +@end defun diff --git a/doc/ref/general/datetime.texi b/doc/ref/general/datetime.texi new file mode 100644 index 00000000..037ac8d5 --- /dev/null +++ b/doc/ref/general/datetime.texi @@ -0,0 +1,670 @@ +@node Datetime +@section Datetime + +My datetime library, with focus on date manipulation in ways sensible +for humans. So that a date-time plus one day always keep the time of +day. +For example, 26 mars 2022 10:00 plus 1 day would give 27 mars 2022 +10:00, even though 25 hours have passed due to summer time starting +(in Sweden). + +Note that while some of these procedures mentions timezones, almost +nothing is actually done with it. + +@subsection Constants + +@defvar jan +@defvarx january +@defvarx feb +@defvarx february +@defvarx mar +@defvarx mars +@defvarx apr +@defvarx april +@defvarx may +@defvarx jun +@defvarx june +@defvarx jul +@defvarx july +@defvarx aug +@defvarx august +@defvarx sep +@defvarx september +@defvarx oct +@defvarx october +@defvarx nov +@defvarx november +@defvarx dec +@defvarx december +Numeric constants for all months. +@code{@var{jan} = 1}, @code{@var{dec} = 12}. +@end defvar + +@defvar sun +@defvarx sunday +@defvarx mon +@defvarx monday +@defvarx tue +@defvarx tuesday +@defvarx wed +@defvarx wednesday +@defvarx thu +@defvarx thursday +@defvarx fri +@defvarx friday +@defvarx sat +@defvarx saturday +@anchor{sunday} +Numeric constants for all weekdays. +@code{@var{sunday} = 0}, @code{@var{saturday} = 6}. +@end defvar + +@subsection Parameters and Configuration + +@deftp {parameter} week-start +@anchor{week-start} +Which weekday should be considered the first. Used for calculating +week numbers, the start dates of week, and is available for UI-code +and the like which wants it. +@end deftp + +@deftp {config} week-start +Configuration item, updates @xref{week-start}. +@end deftp + + +@subsection Datatypes + +@deftp {Immutable Record} year month day +Object representing a date, without any timezone information. +Given the date 2040-03-23 (in ISO-8601 format), @var{year} = 2020, +@var{month} = 3 and @var{day} = 23. + +Values higher than those usually used are possible, but not recommended. + +@defun date? x +Is @var{x} a date object? +@end defun + +@defun date [#:year=0] [#:month=0] [#:day=0] +Create a new date object. +@end defun + +@defun year +@defunx month +@defunx day +Fetch corresponding field from the date object. +@end defun +@end deftp + +@deftp {Immutable Record}