class Compiler

Information related to the compiler that is being used

class Compiler does Systemic {}

Built-in class for providing compiler related information. Usually accessed through the compiler attribute of the $*RAKU dynamic variable.

say $*RAKU.compiler# OUTPUT: «rakudo (2020.02.16.g.28.bd.4247.a)␤»

Note: Before Rakudo version 2020.1 this was only available through the compiler attribute of the $*PERL dynamic variable. Since Rakudo version 2020.1 this is available through both the $*RAKU and the $*PERL variables.

Methods

method id

Returns an unique identifier, a long hexadecimal string

method release

It's empty, but it might contain the release number for specific releases.

method codename

It's empty, but it might contain the codename for specific releases.

method backend

method backend()

Since Rakudo version 2020.02, returns the name of the compiler's backend.

method build-date

method build-date()

Up to Rakudo version 2019.03.1, it returned the date when it was built.

say $*PERL.compiler.build-date#OUTPUT: «2018-05-05T21:49:43Z␤»

method verbose-config

method verbose-config(:$say)

If $say is True, it prints the different items included in the configuration of the compiler; if it is not, returns a Hash with the same information.

say $*RAKU.compiler.verbose-config# OUTPUT: «distro::auth=https://www.opensuse.org/␤distro::desc=2018-05-06T09:19:17.571307+02:00␤» ... And the rest of the configuration

See Also: Systemic

Type Graph

Type relations for Compiler
perl6-type-graph Compiler Compiler Any Any Compiler->Any Systemic Systemic Compiler->Systemic Mu Mu Any->Mu

Expand above chart

Routines supplied by role Systemic

Compiler does role Systemic, which provides the following routines:

(Systemic) method auth

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

(Systemic) 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.

(Systemic) method desc

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

(Systemic) method name

Instance method returning the name of the object.

(Systemic) method signature

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

(Systemic) method version

Instance method returning the version of the object as a Version object. Returns a Version object "unknown" if the version could not be established.

(Systemic) method gist

method gistSystemic:D: )

Instance method returning the name and version of the object.

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

$*RAKU is an object of the Raku type, which mixes in this role and thus implements this method.

(Systemic) method Str

method Str

Instance method returning the name of the object.

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