Files
lbmk/util/sbase/tsort.1
Leah Rowe e9a910b33c config/git: import suckless sbase
i currently use the output of sha512sum in several
places of xbmk, which is a bit unreliable in case
output changes.

other cases where i use util outputs in variables
are probably reliable, because i'm using mostly
posix utilities in those.

to mitigate this, i now import suckless sbase, which
has a reasonable sha512sum implementation.

*every* binary it builds is being placed in build.list,
because i'll probably start using more of them.

for example, i may start modifying the "date"
implementation, adding the GNU-specific options that
i need as mentioned on init.sh

i'm importing it in util/ because the sha512sum
util is needed for verifying project sources, so
if sbase itself is a "project source", that means
we can into a chicken and egg bootstrapping problem.

this is sbase at revision:
055cc1ae1b3a13c3d8f25af0a4a3316590efcd48

Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-10-04 09:20:12 +01:00

71 lines
1.4 KiB
Groff

.Dd February 16, 2016
.Dt TSORT 1
.Os sbase
.Sh NAME
.Nm tsort
.Nd topological sort
.Sh SYNOPSIS
.Nm
.Op Ar file
.Sh DESCRIPTION
.Nm
topologically sorts a graph.
The graph is read either from
.Ar file
or from standard input.
The result is not optimized for any particular usage.
Loops are detected and reported to standard error, but does not stop the
sort.
.Pp
The input is a list of edges (vertex pairs), where
the edge is directed from the first vertex to the
second vertex.
.Sh OPTIONS
None.
.Sh EXIT STATUS
.Bl -tag -width Ds
.It 0
The graph as successfully sorted.
.It 1
The graph as successfully sorted, but contained loops.
.It > 1
An error occurred.
.El
.Sh EXAMPLES
.Bd -literal -offset left
The input
a a
a b
a c
a c
a d
b c
c b
e f
or equivalently
a a a b a c a c a d
b c c b e f
represents the graph
┌─┐
↓ │
┏━━━┓
┌──────┃ a ┃──────┐
│ ┗━━━┛ │
│ │ │ │
↓ ↓ ↓ ↓
┏━━━┓───→┏━━━┓ ┏━━━┓
┃ b ┃ ┃ c ┃ ┃ d ┃
┗━━━┛←───┗━━━┛ ┗━━━┛
┏━━━┓ ┏━━━┓
┃ e ┃───→┃ f ┃
┗━━━┛ ┗━━━┛
.Ed
.Sh STANDARDS
POSIX.1-2013.