@@ -489,18 +489,38 @@ class NQP::World is HLL::World {
489
489
490
490
# Adds libraries that NQP code depends on.
491
491
method libs () {
492
+ # ?if parrot
492
493
# Need to load the NQP dynops/dympmcs, plus any extras requested.
493
494
my @ loadlibs := [' nqp_group' , ' nqp_ops' , ' nqp_bigint_ops' , ' trans_ops' , ' io_ops' ];
494
495
if % * COMPILING <%?OPTIONS ><vmlibs > {
495
496
for nqp :: split (' ,' , % * COMPILING <%?OPTIONS ><vmlibs >) {
496
497
@ loadlibs . push ($ _ );
497
498
}
498
499
}
499
- QAST ::VM. new (
500
- loadlibs => @ loadlibs ,
501
- jvm => QAST ::Op. new ( : op(' null' ) ),
502
- moar => QAST ::Op. new ( : op(' null' ) )
503
- );
500
+ QAST ::VM. new ( : @ loadlibs );
501
+ # ?endif
502
+ # ?if jvm
503
+ QAST ::Op. new ( : op(' null' ) )
504
+ # ?endif
505
+ # ?if moar
506
+ my $ libs := QAST ::Stmts. new ();
507
+ if % * COMPILING <%?OPTIONS ><vmlibs > {
508
+ for nqp :: split (' ,' , % * COMPILING <%?OPTIONS ><vmlibs >) {
509
+ my @ bits := nqp :: split (' =' , $ _ );
510
+ $ libs . push (QAST ::VM. new (
511
+ : moarop(' loadlib' ),
512
+ QAST ::SVal. new ( : value(@ bits [0 ]) ),
513
+ QAST ::SVal. new ( : value(@ bits [0 ]) )
514
+ ));
515
+ $ libs . push (QAST ::VM. new (
516
+ : moarop(' loadext' ),
517
+ QAST ::SVal. new ( : value(@ bits [0 ]) ),
518
+ QAST ::SVal. new ( : value(@ bits [1 ]) )
519
+ ));
520
+ }
521
+ }
522
+ $ libs
523
+ # ?endif
504
524
}
505
525
506
526
# Adds some initial tasks.
0 commit comments