Skip to content

Instantly share code, notes, and snippets.

@usev6
Created September 22, 2017 06:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save usev6/9a2fde23088b755914af263175641b4c to your computer and use it in GitHub Desktop.
Save usev6/9a2fde23088b755914af263175641b4c to your computer and use it in GitHub Desktop.
Take environmental variable NQP_LIB into account when looking for BOOTSTRAP.nqp
diff --git a/src/Perl6/ModuleLoader.nqp b/src/Perl6/ModuleLoader.nqp
index 96fb7c51a..90b7fb3f0 100644
--- a/src/Perl6/ModuleLoader.nqp
+++ b/src/Perl6/ModuleLoader.nqp
@@ -49,7 +49,7 @@ class Perl6::ModuleLoader does Perl6::ModuleLoaderVMConfig {
my $*CTXSAVE := self;
my $*MAIN_CTX;
my $file := 'Perl6/BOOTSTRAP' ~ self.file-extension;
- my $include := nqp::getcomp('perl6').cli-options<nqp-lib>;
+ my $include := nqp::getcomp('perl6').cli-options<nqp-lib> // nqp::atkey(nqp::getenvhash(), 'NQP_LIB');
$file := ($include ?? $include ~ '/' !! nqp::getcomp('perl6').config<libdir> ~ '/nqp/lib/') ~ $file;
if nqp::existskey(%modules_loaded, $file) {
@usev6
Copy link
Author

usev6 commented Sep 22, 2017

This way one could start the EvalServer with NQP_LIB set to 'blib' -- that should 'make test' work before 'make install'.

@usev6
Copy link
Author

usev6 commented Sep 22, 2017

Another option would be something like this:

diff --git a/src/Perl6/ModuleLoader.nqp b/src/Perl6/ModuleLoader.nqp
index 96fb7c51a..9a0039170 100644
--- a/src/Perl6/ModuleLoader.nqp
+++ b/src/Perl6/ModuleLoader.nqp
@@ -51,6 +51,12 @@ class Perl6::ModuleLoader does Perl6::ModuleLoaderVMConfig {
             my $file := 'Perl6/BOOTSTRAP' ~ self.file-extension;
             my $include := nqp::getcomp('perl6').cli-options<nqp-lib>;
             $file := ($include ?? $include ~ '/' !! nqp::getcomp('perl6').config<libdir> ~ '/nqp/lib/') ~ $file;
+#?if jvm
+            ## work around EvalServer not knowing about nqp::getcomp('perl6').cli-options<nqp-lib>
+            if !nqp::stat($file, nqp::const::STAT_EXISTS) {
+                $file := 'blib/Perl6/BOOTSTRAP' ~ self.file-extension;
+            }
+#?endif
 
             if nqp::existskey(%modules_loaded, $file) {
                 return nqp::ctxlexpad(%modules_loaded{$file});

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment