Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Turn lib into a proper pragma
As lib.pm was itself a module, even a 'use lib' at the beginning of a script
would defeat any automatic precompilation because the old $*REPO created a
precompilation store object just to be replaced immediately replaced by a new
$*REPO.

By turning it into a pragma, a use lib will no longer trigger a module load.
  • Loading branch information
niner committed Nov 14, 2015
1 parent 3eea814 commit 1d90234
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 22 deletions.
7 changes: 0 additions & 7 deletions lib/lib.pm6

This file was deleted.

11 changes: 10 additions & 1 deletion src/Perl6/World.nqp
Expand Up @@ -828,7 +828,16 @@ class Perl6::World is HLL::World {
elsif $*PKGDECL {
self.throw($/, 'X::Package::UseLib', :what($*PKGDECL) );
}
return 0; # XXX carry on, while "lib" is still an actual file
my $PROCESS := nqp::gethllsym('perl6', 'PROCESS');
for $arglist -> $arg {
nqp::say("use lib $arg");
my $REPO := $PROCESS.WHO<$REPO>;
if nqp::istype($REPO, NQPMu) {
my &DYNAMIC := self.find_symbol(['&DYNAMIC']);
$REPO := &DYNAMIC('$*REPO');
}
$PROCESS.WHO<$REPO> := self.find_symbol(['CompUnitRepo']).new($arg, :next-repo($REPO));
}
}
else {
$DEBUG(" '$name' is not a valid pragma") if $DEBUG;
Expand Down
10 changes: 3 additions & 7 deletions tools/build/Makefile-JVM.in
Expand Up @@ -237,7 +237,6 @@ J_CLEANUPS = \
lib/NativeCall/Compiler/GNU.pm.jar \
lib/NativeCall/Compiler/MSVC.pm.jar \
lib/Test.pm.jar \
lib/lib.pm6.jar \
lib/newline.pm6.jar \
lib/Pod/To/Text.pm.jar \
j-rakudo_test_run.tar.gz \
Expand All @@ -253,7 +252,7 @@ J_CLEANUPS = \
J_HARNESS_WITH_FUDGE = $(PERL) t/harness --fudge --keep-exit-code --jvm
J_HARNESS = $(PERL) t/harness --jvm

j-all: $(PERL6_JAR) $(SETTING_JAR) $(J_RUNNER) lib/Test.pm.jar lib/lib.pm6.jar lib/Pod/To/Text.pm.jar lib/newline.pm6.jar \
j-all: $(PERL6_JAR) $(SETTING_JAR) $(J_RUNNER) lib/Test.pm.jar lib/Pod/To/Text.pm.jar lib/newline.pm6.jar \
lib/NativeCall.pm.jar lib/NativeCall/Types.pm.jar lib/NativeCall/Compiler/GNU.pm.jar lib/NativeCall/Compiler/MSVC.pm.jar $(PERL6_DEBUG_JAR) $(J_DEBUG_RUNNER)

$(RUNTIME_JAR): $(RUNTIME_JAVAS)
Expand Down Expand Up @@ -347,9 +346,6 @@ lib/NativeCall/Compiler/MSVC.pm.jar: lib/NativeCall/Compiler/MSVC.pm lib/NativeC
lib/Test.pm.jar: lib/Test.pm $(PERL6_JAR) $(SETTING_JAR) $(J_RUNNER)
.@slash@$(J_RUNNER) --target=jar --output=lib/Test.pm.jar -Ilib lib/Test.pm

lib/lib.pm6.jar: lib/lib.pm6 $(PERL6_JAR) $(SETTING_JAR) $(J_RUNNER)
.@slash@$(J_RUNNER) --target=jar --output=lib/lib.pm6.jar lib/lib.pm6

lib/Pod/To/Text.pm.jar: lib/Pod/To/Text.pm $(PERL6_JAR) $(SETTING_JAR) $(J_RUNNER)
.@slash@$(J_RUNNER) --target=jar --output=lib/Pod/To/Text.pm.jar lib/Pod/To/Text.pm

Expand Down Expand Up @@ -423,8 +419,8 @@ j-install: j-all tools/build/create-jvm-runner.pl
$(CP) lib/NativeCall/Compiler/MSVC.pm.jar $(DESTDIR)$(PERL6_LANG_DIR)/lib/NativeCall/Compiler
$(CP) lib/Test.pm $(DESTDIR)$(PERL6_LANG_DIR)/lib
$(CP) lib/Test.pm.jar $(DESTDIR)$(PERL6_LANG_DIR)/lib
$(CP) lib/lib.pm6 lib/newline.pm6 $(DESTDIR)$(PERL6_LANG_DIR)/lib
$(CP) lib/lib.pm6.jar lib/newline.pm6.jar $(DESTDIR)$(PERL6_LANG_DIR)/lib
$(CP) lib/newline.pm6 $(DESTDIR)$(PERL6_LANG_DIR)/lib
$(CP) lib/newline.pm6.jar $(DESTDIR)$(PERL6_LANG_DIR)/lib
$(MKPATH) $(DESTDIR)$(PERL6_LANG_DIR)/lib/Pod/To
$(CP) lib/Pod/To/Text.pm $(DESTDIR)$(PERL6_LANG_DIR)/lib/Pod/To
$(CP) lib/Pod/To/Text.pm.jar $(DESTDIR)$(PERL6_LANG_DIR)/lib/Pod/To
Expand Down
10 changes: 3 additions & 7 deletions tools/build/Makefile-Moar.in
Expand Up @@ -72,7 +72,6 @@ M_CLEANUPS = \
lib/NativeCall/Compiler/GNU.pm.moarvm \
lib/NativeCall/Compiler/MSVC.pm.moarvm \
lib/Test.pm.moarvm \
lib/lib.pm6.moarvm \
lib/newline.pm6.moarvm \
lib/Pod/To/Text.pm.moarvm \
rakudo_test_run.tar.gz \
Expand All @@ -89,7 +88,7 @@ M_CLEANUPS = \
M_HARNESS_WITH_FUDGE = $(PERL) t/harness --fudge --moar --keep-exit-code
HARNESS = $(PERL) t/harness

m-all: $(PERL6_MOAR) $(SETTING_MOAR) $(R_SETTING_MOAR) $(M_RUNNER) lib/Test.pm.moarvm lib/lib.pm6.moarvm lib/Pod/To/Text.pm.moarvm lib/newline.pm6.moarvm \
m-all: $(PERL6_MOAR) $(SETTING_MOAR) $(R_SETTING_MOAR) $(M_RUNNER) lib/Test.pm.moarvm lib/Pod/To/Text.pm.moarvm lib/newline.pm6.moarvm \
lib/NativeCall.pm.moarvm lib/NativeCall/Types.pm.moarvm lib/NativeCall/Compiler/GNU.pm.moarvm lib/NativeCall/Compiler/MSVC.pm.moarvm $(PERL6_DEBUG_MOAR) $(M_DEBUG_RUNNER) @m_all@

$(M_PERL6_OPS_DLL): $(M_PERL6_OPS_SRC) $(M_PERL6_CONT_SRC) Makefile
Expand Down Expand Up @@ -206,9 +205,6 @@ lib/NativeCall/Compiler/MSVC.pm.moarvm: lib/NativeCall/Compiler/MSVC.pm lib/Nati
lib/Test.pm.moarvm: lib/Test.pm $(PERL6_MOAR) $(SETTING_MOAR) $(M_RUNNER)
.@slash@$(M_RUNNER) --target=mbc --output=lib/Test.pm.moarvm -Ilib lib/Test.pm

lib/lib.pm6.moarvm: lib/lib.pm6 $(PERL6_MOAR) $(SETTING_MOAR) $(M_RUNNER)
.@slash@$(M_RUNNER) --target=mbc --output=lib/lib.pm6.moarvm lib/lib.pm6

lib/Pod/To/Text.pm.moarvm: lib/Pod/To/Text.pm $(PERL6_MOAR) $(SETTING_MOAR) $(M_RUNNER)
.@slash@$(M_RUNNER) --target=mbc --output=lib/Pod/To/Text.pm.moarvm lib/Pod/To/Text.pm

Expand Down Expand Up @@ -264,8 +260,8 @@ m-install: m-all tools/build/create-moar-runner.pl
$(CP) $(PERL6_MOAR) $(PERL6_DEBUG_MOAR) $(DESTDIR)$(PERL6_LANG_DIR)/runtime
$(MKPATH) $(DESTDIR)$(PERL6_LANG_DIR)/runtime/dynext
$(CP) $(M_PERL6_OPS_DLL) $(DESTDIR)$(PERL6_LANG_DIR)/runtime/dynext
$(CP) lib/NativeCall.pm lib/Test.pm lib/lib.pm6 lib/newline.pm6 $(DESTDIR)$(PERL6_LANG_DIR)/lib
$(CP) lib/NativeCall.pm.moarvm lib/Test.pm.moarvm lib/lib.pm6.moarvm lib/newline.pm6.moarvm $(DESTDIR)$(PERL6_LANG_DIR)/lib
$(CP) lib/NativeCall.pm lib/Test.pm lib/newline.pm6 $(DESTDIR)$(PERL6_LANG_DIR)/lib
$(CP) lib/NativeCall.pm.moarvm lib/Test.pm.moarvm lib/newline.pm6.moarvm $(DESTDIR)$(PERL6_LANG_DIR)/lib
$(MKPATH) $(DESTDIR)$(PERL6_LANG_DIR)/lib/NativeCall
$(CP) lib/NativeCall/Types.pm $(DESTDIR)$(PERL6_LANG_DIR)/lib/NativeCall
$(CP) lib/NativeCall/Types.pm.moarvm $(DESTDIR)$(PERL6_LANG_DIR)/lib/NativeCall
Expand Down

0 comments on commit 1d90234

Please sign in to comment.