Compiler Reference
Information related to the compiler that is being used
What it is #
Routines #
Signatures are reproduced from the documentation, including their declared return types. A routine listed here is part of the type's published interface; whether Raku++ implements it is a separate question, answered by the examples below.
method id #
Returns a 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 release 2020.02, returns the name of the compiler's backend.
method build-date #
method build-date()
Up to Rakudo release 2019.03.1, it returned the date when it was built.
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. See Also: Systemic
Examples, run three ways #
Every example below comes from the official documentation, together with the output that documentation asserts. Each was then executed by Rakudo and by Raku++ when this page was built. Where the three agree, one result is shown; where they do not, all three are — because which of them is wrong is exactly the information worth having.
2 all-differ · 1 no-output · 1 not-runnable
class Compiler does Systemic {}Not executed: the documentation states no expected output for this example.
say $*RAKU.compiler; # OUTPUT: «rakudo (2020.02.16.g.28.bd.4247.a)»
rakudo (2020.02.16.g.28.bd.4247.a)
rakudo (2026.07)
All three differ. Needs a human.
Not yet examined. Which of these is correct has not been established — do not treat either engine as settled here.
say $*PERL.compiler.build-date; # OUTPUT: «2018-05-05T21:49:43Z»
Neither engine can run this in isolation — the example depends on context from the surrounding text.
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
distro::auth=https://www.opensuse.org/
distro::desc=2018-05-06T09:19:17.571307+02:00
Raku::can-language-versions=1 2 2.PREVIEW 2.TEST 2.TESTDEPR 3 3.PREVIEW
Raku::codename=
Raku::implementation=Rakudo
Raku::language-revision=2
Raku::language-revisions=1 mods
2 mods PREVIEW
TEST
TESTDEPR deprecate 1
3 mods PREVIEW require 1
require PREVIEW
Raku::prefix=/usr/local/Cellar/rakudo/2026.07
Raku::prev-setting-name=CORE.c CORE.c
CORE.d CORE.d
CORE.e CORE.e
NULL.c NULL.c
NULL.d CORE.c
NULL.e CORE.d
Raku::release-number=
Raku::source-digest=4be5fd7d8e99180ff03033586766d5d4e1f4e770
Raku::static-nqp-home=/usr/local/Cellar/nqp/2026.07/share/nqp
Raku::static-rakudo-home=/usr/local/Cellar/rakudo/2026.07/share/perl6
Raku::version=2026.07
distro::auth=Apple Inc.
distro::desc=Sequoia
distro::is-win=False
distro::name=macos
distro::path-sep=:
distro::release=24G517
distro::signature=
distro::version=15.7.4
kernel::arch=i386
kernel::archname=x86_64-darwin
kernel::auth=unknown
kernel::bits=64
kernel::desc=
kernel::hardware=x86_64
kernel::name=darwin
kernel::release=24.6.0
kernel::signature=
kernel::version=Darwin.Kernel.Version.24.6.0.Mon.Jan.19.22.01.13.PST.2026.root.xnu.11417.140.69.708.3.1.RELEASE_ARM.64._T.8122
moar::ar=ar
moar::arflags=rcs
moar::arout=
moar::as=as
moar::asm=.s
moar::asmout=-o
moar::asmswitch=-S
moar::auxclean=@:
moar::be=0
moar::bindir=/usr/local/Cellar/moarvm/2026.07/bin
moar::booltype=_Bool
moar::can_unaligned_int32=1
moar::can_unaligned_int64=1
moar::can_unaligned_num64=1
moar::cancgoto=1
moar::cat=cat
moar::cc=clang
moar::cc_covflags=-fprofile-instr-generate -fcoverage-mapping
moar::ccdebugflags=-g3
moar::ccdef=-D
moar::ccdefflags=-D_DARWIN_USE_64_BIT_INODE=1 -DHAVE_LIBFFI
moar::ccinc=-I
moar::ccincsystem=-isystem
moar::ccjitflags=
moar::ccmiscflags=-fno-omit-frame-pointer -fno-optimize-sibling-calls
moar::ccoptiflags=-O3 -DNDEBUG
moar::ccout=-o
moar::ccshared=
moar::ccswitch=-c
moar::ccwarnflags=-Wno-logical-op-parentheses
moar::cflags=-fwrapv -fno-omit-frame-pointer -fno-optimize-sibling-calls -O3 -DNDEBUG -Wno-logical-op-parentheses -D_DARWIN_USE_64_BIT_INODE=1 -DHAVE_LIBFFI -gdwarf-4 -DMVM_HEAPSNAPSHOT_FORMAT=3
moar::cincludes= -I/usr/local/Cellar/libuv/1.52.1/include -I/usr/local/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/include/ffi -I/usr/local/opt/zstd/include -I/usr/local/Cellar/mimalloc/3.4.3/include
moar::cmpclean=cd 3rdparty/cmp && $(RM) libcmp.a && $(RM) cmp.lib && $(RM) cmp.obj && $(MAKE) clean
moar::cmplib=3rdparty/cmp/libcmp.a
moar::cmpobjects=3rdparty/cmp/cmp.o
moar::cmprule=$(AR) $(ARFLAGS) $@ 3rdparty/cmp/*.o
moar::config=--c11-atomics --has-libffi --has-libtommath --has-mimalloc --optimize --pkgconfig=/usr/local/opt/pkgconf/bin/pkgconf --prefix=/usr/local/Cellar/moarvm/2026.07 --has-libuv
moar::cppout=>
moar::cppswitch=-E
moar::crossconf=
moar::dasm_flags=-D POSIX=1
moar::dcbclean=@:
moar::dcblib=__dcb__
moar::dcbobjects=
moar::dcbrule=@:
moar::dcclean=@:
moar::dclib=__dc__
moar::dcobjects=
moar::dcrule=@:
moar::defs[0]=_DARWIN_USE_64_BIT_INODE=1
moar::defs[1]=HAVE_LIBFFI
moar::dlclean=@:
moar::dll=lib%s.dylib
moar::dllexport=__attribute__ ((visibility ("default")))
moar::dllib=__dl__
moar::dllimport=__attribute__ ((visibility ("default")))
moar::dlllocal=__attribute__ ((visibility ("hidden")))
moar::dlobjects=
moar::dlrule=@:
moar::do_pty_ourself=1
moar::exe=
moar::expect_condition=__builtin_expect((condition), (expection))
moar::expect_likely=__builtin_expect(!!(condition), 1)
moar::expect_unlikely=__builtin_expect(!!(condition), 0)
moar::fallthrough=
moar::formatattribute=__attribute__((format(X, Y, Z)))
moar::has_booltype=1
moar::has_fn_malloc_trim=0
moar::has_isinf=1
moar::has_isnan=1
moar::has_libuv_pty=0
moar::has_pthread_setname_np=0
moar::has_pthread_yield=0
moar::has_rdtscp=1
moar::has_signbit=1
moar::has_stdatomic=1
moar::has_substandard_acos=0
moar::has_substandard_asin=0
moar::has_substandard_log10=0
moar::has_substandard_log=0
moar::has_substandard_pow=0
moar::has_thread_local=1
moar::heapsnapformat=3
moar::hllincludes=moar
moar::impinst=
moar::install=
moar::jit_arch=MVM_JIT_ARCH_X64
moar::jit_obj=$(JIT_OBJECTS) $(JIT_ARCH_X64)
moar::jit_platform=MVM_JIT_PLATFORM_POSIX
moar::laoclean=@:
moar::laolib=__lao__
moar::laoobjects=
moar::laorule=@:
moar::ld=clang
moar::ld_covflags=-fprofile-instr-generate -fcoverage-mapping
moar::lddebugflags=-g3
moar::lddir=-L
moar::ldflags= -O3 -DNDEBUG -Wl,-rpath,"//usr/local/Cellar/moarvm/2026.07/lib"
moar::ldimp=
moar::ldinstflags=
moar::ldlibs= -L/usr/local/Cellar/libuv/1.52.1/lib -L/usr/local/lib -L/usr/local/opt/zstd/lib -L/usr/local/Cellar/mimalloc/3.4.3/lib -lmimalloc -lffi -ltommath -luv -lpthread -lzstd
moar::ldmiscflags=
moar::ldoptiflags=-O3 -DNDEBUG
moar::ldout=-o
moar::ldrpath=-Wl,-rpath,"//usr/local/Cellar/moarvm/2026.07/lib"
moar::ldrpath_relocatable=-Wl,-rpath,@executable_path/../lib
moar::ldshared=-dynamiclib
moar::ldsys=-l%s
moar::ldusr=-l%s
moar::lib=lib%s.a
moar::libdir=/usr/local/Cellar/moarvm/2026.07/lib
moar::lincludes= -L/usr/local/Cellar/libuv/1.52.1/lib -L/usr/local/lib -L/usr/local/opt/zstd/lib -L/usr/local/Cellar/mimalloc/3.4.3/lib
moar::mainflags=-DMVM_SHARED
moar::mainlibs=-L. -lmoar
moar::make=/usr/bin/make
moar::mastdir=/usr/local/Cellar/moarvm/2026.07/share/nqp/lib/MAST
moar::mimalloc_include=
moar::mimalloc_object=
moar::mimallocclean=@:
moar::mimalloclib=__mimalloc__
moar::mimallocobjects=
moar::mimallocrule=@:
moar::mkflags=
moar::mknoisy=ifneq ($(NOISY), 1)MSG = @echoCMD = @NOOUT = > /dev/nullNOERR = 2> /dev/nullendif
moar::moar=libmoar.dylib
moar::moar_cincludes=
moar::moardll=libmoar.dylib
moar::moarlib=libmoar.a
moar::moarshared=-install_name "/usr/local/Cellar/moarvm/2026.07/lib/libmoar.dylib"
moar::moarshared_norelocatable=-install_name "/usr/local/Cellar/moarvm/2026.07/lib/libmoar.dylib"
moar::moarshared_relocatable=-install_name @rpath/libmoar.dylib
moar::name=moar
moar::nativecall_backend=libffi
moar::noreturnattribute=__attribute__((noreturn))
moar::noreturnspecifier=
moar::nul=/dev/null
moar::obj=.o
moar::objflags=-DMVM_BUILD_SHARED
moar::objout=-o
moar::os=darwin
moar::osname=darwin
moar::osvers=23.0
moar::perl=perl
moar::pkgconfig=/usr/local/opt/pkgconf/bin/pkgconf
moar::pkgconfig_works=1
moar::platform=$(PLATFORM_POSIX)
moar::prefix=/usr/local/Cellar/moarvm/2026.07
moar::ptr_size=8
moar::rm=rm -f
moar::sh=/bin/sh
moar::shaclean=$(RM) 3rdparty/sha1/libsha1.a 3rdparty/sha1/*.o
moar::shaincludedir=3rdparty/sha1
moar::shalib=3rdparty/sha1/libsha1.a
moar::shaobjects=3rdparty/sha1/sha1.o
moar::sharedlib=
moar::sharule=$(AR) $(ARFLAGS) $@ 3rdparty/sha1/*.o
moar::static_inline=static __inline__
moar::staticlib=
moar::thirdpartylibs=3rdparty/cmp/libcmp.a 3rdparty/sha1/libsha1.a
moar::thread_local=_Thread_local
moar::tomclean=@:
moar::tomlib=__tom__
moar::tomobjects=
moar::tomrule=@:
moar::translate_newline_output=0
moar::use_c11_atomics=1
moar::use_mimalloc=1
moar::usrlibs[0]=mimalloc
moar::usrlibs[1]=ffi
moar::usrlibs[2]=tommath
moar::usrlibs[3]=uv
moar::usrlibs[4]=pthread
moar::uvclean=@:
moar::uvlib=__uv__
moar::uvobjects=
moar::uvrule=@:
moar::vectorizerspecifier=_Pragma ("clang loop vectorize(enable)")
moar::version=2026.07
moar::versionmajor=2026
moar::versionminor=07
moar::versionpatch=0
repo::chain=inst#/Users/ash/.raku inst#/usr/local/Cellar/rakudo/2026.07/share/perl6/site inst#/usr/local/Cellar/rakudo/2026.07/share/perl6/vendor inst#/usr/local/Cellar/rakudo/2026.07/share/perl6/core ap# nqp# perl5#
All three differ. Needs a human.
Not yet examined. Which of these is correct has not been established — do not treat either engine as settled here.