<commit_before>class CompUnitRepo::Local::File {
    has @!paths;
    method new( *@location ) {
        self.bless(:@location)
    }

    method BUILD(:@location) {
        @!paths = @location>>.map(*.path);
        self
    }

    method Str { @!paths.Str }
    method gist { "CompUnitRepo::Local::File(" ~ @!paths.Str ~ ')' }

    method install($source, $from?) {
        ...
    }

    method files($file, :$name, :$auth, :$ver) {
    }

    method candidates($name, :$file, :$auth, :$ver) {
        my @candi;
        my Mu $c := nqp::gethllsym('perl6', 'ModuleLoader').p6ml.locate_candidates(
            $name, nqp::p6listitems(nqp::decont([ @!paths ])), :$file);
        if $c[0] {
            my $candi;
            $candi<ver> = Version.new('0');
            $candi<provides>{$name}<pm><file> = $c[0]<pm>;
#?if parrot
            $candi<provides>{$name}<pir><file> = $c[0]<load>;
#?endif
#?if jvm
            $candi<provides>{$name}<jar><file> = $c[0]<load>;
#?endif
#?if moar
            $candi<provides>{$name}<moarvm><file> = $c[0]<load>;
#?endif
            @candi.push: $candi;
        }
        @candi
    }
}<commit_msg>Can now use $*VM.precomp-ext<commit_after>class CompUnitRepo::Local::File {
    has @!paths;
    method new( *@location ) {
        self.bless(:@location)
    }

    method BUILD(:@location) {
        @!paths = @location>>.map(*.path);
        self
    }

    method Str { @!paths.Str }
    method gist { "CompUnitRepo::Local::File(" ~ @!paths.Str ~ ')' }

    method install($source, $from?) {
        ...
    }

    method files($file, :$name, :$auth, :$ver) {
    }

    method candidates($name, :$file, :$auth, :$ver) {
        my @candi;
        my Mu $c := nqp::gethllsym('perl6', 'ModuleLoader').p6ml.locate_candidates(
            $name, nqp::p6listitems(nqp::decont([ @!paths ])), :$file);
        if $c[0] {
            my $candi;
            $candi<ver> = Version.new('0');
            $candi<provides>{$name}<pm><file> = $c[0]<pm>;
            $candi<provides>{$name}{$*VM.precomp-ext}<file> = $c[0]<load>;
            @candi.push: $candi;
        }
        @candi
    }
}
{'fraction_non_alphanumeric': 0.20923656927426956, 'fraction_numerical': 0.007540056550424128, 'mean_word_length': 2.301710730948678, 'pattern_counts': {'":': 0, '<': 28, '<?xml version=': 0, '>': 32, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7373358', 'n_tokens_mistral': 829, 'n_tokens_neox': 792, 'n_words': 130}