Raku looks for modules in multiple locations. While its possible to add additional locations, it is not currently possible to remove locations. The ability to remove locations would be useful when invoking applications to ensure that dependencies installed in default repos don't end up getting loaded in code by e.g. use
statements. Technically this could be accomplished with a third-party repository, but it would be beneficial for it to be easy to use core functionality.
Currently we have the following:
$ raku -e 'use lib "xxx"; .say for $*REPO.repo-chain'
file#/Users/nlogan/repos/xxx
inst#/Users/nlogan/.raku
inst#/Users/nlogan/.rakubrew/versions/moar-2022.07/install/share/perl6/site
inst#/Users/nlogan/.rakubrew/versions/moar-2022.07/install/share/perl6/vendor
inst#/Users/nlogan/.rakubrew/versions/moar-2022.07/install/share/perl6/core
ap#
nqp#
perl5#
This grant aims to deliver the ability to do something like the following:
$ RAKU_DEFAULT_REPO_CHAIN="inst#/foo,inst#bar" raku -e 'use lib "xxx"; .say for $*REPO.repo-chain'
file#/Users/nlogan/repos/xxx
inst#/foo
inst#/bar
I am Nick Logan, ugexe on github. I have been a co-author of the Raku module manager Zef, and a core developer of the Raku programming language for approximately 10 years. I am also a member of the Raku Steering Council.