Search code examples
rakupre-compilation

What is the best way to flush precompiled perl6 modules?


I am trying to refactor some code. My approach (using vi) is to copy my old libraries from /lib to /lib2. That way I can hack out big sections, but still have a framework to refactor.

So I go ahead and change mymain.p6 header from use lib '../lib'; to use lib '../lib2';. Then I delete a chunk of the lines in ../lib2/mylibrary.pm6 and make darn sure :w is doing what I expect.

Imagine my surprise when my program still works perfectly despite having been largely deleted. It even works when I rm -R /lib, so nothing back there is persisting.

Is there a chance that I have a precomp of the old lib module lying around? If so, how can I flush it?

This is Rakudo Star version 2019.03.1 built on MoarVM version 2019.03 implementing Perl 6.d.


Solution

  • Precompiled modules are stored in the precomp directory. You can try to rename or delete the ~/.precomp directory.

    See also this SO question here.