=begin pod :kind("Type") :subkind("role") :category("domain-specific")

=TITLE role Systemic

=SUBTITLE Information related to the build system

Built-in class for providing built system related information.  Usually accessed
through dynamic variables mixing this role such as the
L«C<$*KERNEL>|/language/variables#Dynamic_variables»,
L«C<$*VM>|/language/variables#Dynamic_variables», or
L«C<$*RAKU>|/language/variables#Dynamic_variables».


=head1 Methods

=head2 method auth

Instance method returning the "auth" (as in "author" or "authority") of the
object. Returns "unknown" if the "auth" could not be established.

=head2 method config

Instance returning a hash with object configuration information. Subject to
change without notice, but can be helpful in environments where only one type of
virtual machine is in use, or to find about the configuration of any other
object that mixes in this role.

=head2 method desc

Instance method returning the "desc" (as in "description") of the VM object.
Returns a C<Str> type object if the "desc" could not be established.

=head2 method name

Instance method returning the name of the object.

=head2 method signature

Instance method returning the signature of the object. Returns a
C<Blob> type object if the signature could not be established.

=head2 method version

Instance method returning the version of the object as a
L<Version|/type/Version> object. Returns a C<Version> object "unknown" if the
version could not be established.

=head2 method gist

    method gist( Systemic:D: )

Instance method returning the name and version of the object.

    say $*RAKU.gist; # OUTPUT: «Raku (6.d)␤»

C<$*RAKU> is an object of the L<Raku|/type/Raku> type, which mixes in this role
and thus implements this method.

=head2 method Str

    method Str

Instance method returning the name of the object.

    say $*RAKU.Str; # OUTPUT: «Raku␤»

=end pod

# vim: expandtab softtabstop=4 shiftwidth=4 ft=perl6
