/
ModuleLoader-s0.pir
1242 lines (1240 loc) · 35.6 KB
/
ModuleLoader-s0.pir
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
.include 'cclass.pasm'
.include 'except_severity.pasm'
.include 'except_types.pasm'
.include 'iglobals.pasm'
.include 'interpinfo.pasm'
.include 'iterator.pasm'
.include 'sysinfo.pasm'
.include 'stat.pasm'
.include 'datatypes.pasm'
.loadlib "nqp_group"
.loadlib "nqp_ops"
.loadlib "nqp_bigint_ops"
.loadlib "trans_ops"
.loadlib "io_ops"
.HLL "nqp"
.namespace []
.sub "" :subid("cuid_1_1349901723.41") :anon :lex
.annotate 'file', "src\\ModuleLoader.pm"
.param pmc _lex_param_0 :slurpy
.const 'Sub' $P5015 = 'cuid_7_1349901723.41'
capture_lex $P5015
.lex "GLOBALish", $P101
.lex "$?PACKAGE", $P102
.lex "ModuleLoader", $P103
.lex "@ARGS", _lex_param_0
.local pmc ctxsave
find_dynamic_lex $P5001, "$*CTXSAVE"
set ctxsave, $P5001
isnull $I5001, ctxsave
box $P5006, $I5001
set $P5005, $P5006
if $I5001 goto unless10_end11
can $I5002, ctxsave, "ctxsave"
box $P5004, $I5002
set $P5003, $P5004
unless $I5002 goto if11_end13
$P5002 = ctxsave."ctxsave"()
set $P5003, $P5002
if11_end13:
set $P5005, $P5003
unless10_end11:
.annotate 'line', 1
.const 'Sub' $P5007 = 'cuid_7_1349901723.41'
capture_lex $P5007
$P5008 = $P5007()
nqp_get_sc_object $P5009, "6EBC33AD36BF21AA57CAA4B020565B7228223D55-1349901723.424", 1
set_hll_global "ModuleLoader", $P5009
set $P5014, _lex_param_0
unless _lex_param_0 goto if42_end114
load_bytecode "ModuleLoader.pbc"
get_hll_global $P5010, "ModuleLoader"
getinterp $P5012
set $P5011, $P5012["context"]
$P5013 = $P5010."set_mainline_module"($P5011)
set $P5014, $P5013
if42_end114:
.return ()
.end
.HLL "nqp"
.namespace []
.sub "" :subid("cuid_7_1349901723.41") :anon :lex :outer("cuid_1_1349901723.41")
.annotate 'file', "src\\ModuleLoader.pm"
.annotate 'line', 1
.const 'Sub' $P5011 = 'cuid_9_1349901723.41'
capture_lex $P5011
.const 'Sub' $P5011 = 'cuid_2_1349901723.41'
capture_lex $P5011
.const 'Sub' $P5011 = 'cuid_3_1349901723.41'
capture_lex $P5011
.const 'Sub' $P5011 = 'cuid_4_1349901723.41'
capture_lex $P5011
.const 'Sub' $P5011 = 'cuid_5_1349901723.41'
capture_lex $P5011
.const 'Sub' $P5011 = 'cuid_6_1349901723.41'
capture_lex $P5011
.lex "%modules_loaded", $P101
.lex "%settings_loaded", $P102
.lex "$stub_how", $P103
.lex "&merge_globals", $P104
.lex "$?PACKAGE", $P105
.lex "$?CLASS", $P106
new $P5001, 'Hash'
set $P101, $P5001
new $P5002, 'Hash'
set $P102, $P5002
null $P5003
set $P103, $P5003
.const 'Sub' $P5004 = 'cuid_9_1349901723.41'
capture_lex $P5004
set $P104, $P5004
.const 'Sub' $P5005 = 'cuid_2_1349901723.41'
capture_lex $P5005
.const 'Sub' $P5006 = 'cuid_3_1349901723.41'
capture_lex $P5006
.const 'Sub' $P5007 = 'cuid_4_1349901723.41'
capture_lex $P5007
box $P5008, "KnowHOW"
set $P103, $P5008
.const 'Sub' $P5009 = 'cuid_5_1349901723.41'
capture_lex $P5009
.const 'Sub' $P5010 = 'cuid_6_1349901723.41'
capture_lex $P5010
.return ($P5010)
.end
.HLL "nqp"
.namespace []
.sub "merge_globals" :subid("cuid_9_1349901723.41") :anon :lex :outer("cuid_7_1349901723.41")
.annotate 'file', "src\\ModuleLoader.pm"
.annotate 'line', 88
.param pmc _lex_param_0
.param pmc _lex_param_1
.const 'Sub' $P5014 = 'cuid_8_1349901723.41'
capture_lex $P5014
.const 'Sub' $P5014 = 'cuid_14_1349901723.41'
capture_lex $P5014
.lex "%known_symbols", $P101
.lex "$target", _lex_param_0
.lex "$source", _lex_param_1
new $P5001, 'Hash'
set $P101, $P5001
get_who $P5005, _lex_param_0
set $P5002, $P5005
iter $P5004, $P5005
for_next14:
unless $P5004, for_done16
shift $P5007, $P5004
for_redo15:
.const 'Sub' $P5006 = 'cuid_8_1349901723.41'
capture_lex $P5006
$P5002 = $P5006($P5007)
goto for_next14
for_done16:
get_who $P5011, _lex_param_1
set $P5008, $P5011
iter $P5010, $P5011
for_next39:
unless $P5010, for_done41
shift $P5013, $P5010
for_redo40:
.const 'Sub' $P5012 = 'cuid_14_1349901723.41'
capture_lex $P5012
$P5008 = $P5012($P5013)
goto for_next39
for_done41:
.return ($P5008)
.end
.HLL "nqp"
.namespace []
.sub "" :subid("cuid_8_1349901723.41") :anon :lex :outer("cuid_9_1349901723.41")
.annotate 'file', "src\\ModuleLoader.pm"
.annotate 'line', 93
.param pmc _lex_param_0
.lex "$_", _lex_param_0
find_lex $P5001, "%known_symbols"
.annotate 'line', 94
$P5002 = _lex_param_0."key"()
set $S5001, $P5002
box $P5003, 1
set $P5001[$S5001], $P5003
.return ($P5003)
.end
.HLL "nqp"
.namespace []
.sub "" :subid("cuid_14_1349901723.41") :anon :lex :outer("cuid_9_1349901723.41")
.annotate 'file', "src\\ModuleLoader.pm"
.annotate 'line', 96
.param pmc _lex_param_0
.const 'Sub' $P5017 = 'cuid_11_1349901723.41'
capture_lex $P5017
.const 'Sub' $P5017 = 'cuid_15_1349901723.41'
capture_lex $P5017
.lex "$sym", $P101
.lex "$_", _lex_param_0
null $P5001
set $P101, $P5001
.annotate 'line', 97
$P5002 = _lex_param_0."key"()
set $P101, $P5002
find_lex $P5003, "%known_symbols"
set $S5001, $P101
exists $I5002, $P5003[$S5001]
box $P5004, $I5002
isfalse $I5001, $P5004
unless $I5001 goto if12_else17
.const 'Sub' $P5005 = 'cuid_11_1349901723.41'
capture_lex $P5005
$P5006 = $P5005()
set $P5016, $P5006
goto if12_end18
if12_else17:
find_lex $P5009, "$target"
get_who $P5008, $P5009
set $S5002, $P101
set $P5007, $P5008[$S5002]
unless_null $P5007, fallback32
null $P5010
set $P5007, $P5010
fallback32:
get_id $I5004, $P5007
.annotate 'line', 120
$P5011 = _lex_param_0."value"()
get_id $I5005, $P5011
iseq $I5003, $I5004, $I5005
unless $I5003 goto if18_else30
null $P5012
set $P5015, $P5012
goto if18_end31
if18_else30:
.const 'Sub' $P5013 = 'cuid_15_1349901723.41'
capture_lex $P5013
$P5014 = $P5013()
set $P5015, $P5014
if18_end31:
set $P5016, $P5015
if12_end18:
.return ($P5016)
.end
.HLL "nqp"
.namespace []
.sub "" :subid("cuid_11_1349901723.41") :anon :lex :outer("cuid_14_1349901723.41")
.annotate 'file', "src\\ModuleLoader.pm"
.annotate 'line', 98
.const 'Sub' $P5015 = 'cuid_10_1349901723.41'
capture_lex $P5015
.const 'Sub' $P5015 = 'cuid_13_1349901723.41'
capture_lex $P5015
.lex "$source_is_stub", $P101
null $P5001
set $P101, $P5001
box $P5002, 0
set $P101, $P5002
new $P5005, 'ExceptionHandler'
set_label $P5005, catch_handler_1624
$P5005.'handle_types_except'(.CONTROL_ALL)
push_eh $P5005
.const 'Sub' $P5003 = 'cuid_10_1349901723.41'
capture_lex $P5003
$P5004 = $P5003()
set $P5006, $P5004
pop_eh
goto skip_handler_1523
catch_handler_1624:
.get_results ($P5005)
set $I10001, 1
set $P5005["handled"], $I10001
null $P10001
finalize $P5005
pop_upto_eh $P5005
pop_eh
set $P5006, $P10001
goto skip_handler_1523
skip_handler_1523:
unless $P101 goto if17_else25
.const 'Sub' $P5007 = 'cuid_13_1349901723.41'
capture_lex $P5007
$P5008 = $P5007()
set $P5014, $P5008
goto if17_end26
if17_else25:
.annotate 'line', 116
find_lex $P5010, "$target"
get_who $P5009, $P5010
find_lex $P5011, "$sym"
set $S5001, $P5011
.annotate 'line', 117
find_lex $P5012, "$_"
$P5013 = $P5012."value"()
set $P5009[$S5001], $P5013
set $P5014, $P5013
if17_end26:
.return ($P5014)
.end
.HLL "nqp"
.namespace []
.sub "" :subid("cuid_10_1349901723.41") :anon :lex :outer("cuid_11_1349901723.41")
.annotate 'file', "src\\ModuleLoader.pm"
.annotate 'line', 100
.lex "$source_mo", $P101
null $P5001
set $P101, $P5001
.annotate 'line', 101
find_lex $P5003, "$_"
$P5004 = $P5003."value"()
get_how $P5002, $P5004
set $P101, $P5002
.annotate 'line', 102
get_what $P5006, $P101
get_how $P5005, $P5006
$P5007 = $P5005."name"($P101)
set $S5001, $P5007
find_lex $P5008, "$stub_how"
set $S5002, $P5008
iseq $I5001, $S5001, $S5002
set $I5004, $I5001
unless $I5001 goto if14_end22
.annotate 'line', 103
find_lex $P5010, "$_"
$P5011 = $P5010."value"()
get_who $P5009, $P5011
isnull $I5003, $P5009
box $P5012, $I5003
isfalse $I5002, $P5012
set $I5004, $I5002
if14_end22:
box $P5017, $I5004
set $P5016, $P5017
unless $I5004 goto if13_end20
find_lex $P5014, "$_"
$P5015 = $P5014."value"()
get_who $P5013, $P5015
set $P5016, $P5013
if13_end20:
store_lex "$source_is_stub", $P5016
.return ($P5016)
.end
.HLL "nqp"
.namespace []
.sub "" :subid("cuid_13_1349901723.41") :anon :lex :outer("cuid_11_1349901723.41")
.annotate 'file', "src\\ModuleLoader.pm"
.annotate 'line', 105
.const 'Sub' $P5021 = 'cuid_12_1349901723.41'
capture_lex $P5021
.lex "$source", $P101
.lex "$source_clone", $P102
.lex "%WHO_clone", $P103
null $P5001
set $P101, $P5001
null $P5002
set $P102, $P5002
new $P5003, 'Hash'
set $P103, $P5003
.annotate 'line', 106
find_lex $P5004, "$_"
$P5005 = $P5004."value"()
set $P101, $P5005
.annotate 'line', 107
get_how $P5006, $P101
get_how $P5007, $P101
$P5008 = $P5007."name"($P101)
$P5009 = $P5006."new_type"($P5008 :named("name"))
set $P102, $P5009
.annotate 'line', 108
get_how $P5010, $P102
$P5011 = $P5010."compose"($P102)
get_who $P5015, $P101
set $P5012, $P5015
iter $P5014, $P5015
for_next27:
unless $P5014, for_done29
shift $P5017, $P5014
for_redo28:
.const 'Sub' $P5016 = 'cuid_12_1349901723.41'
capture_lex $P5016
$P5012 = $P5016($P5017)
goto for_next27
for_done29:
set_who $P102, $P103
find_lex $P5019, "$target"
get_who $P5018, $P5019
find_lex $P5020, "$sym"
set $S5001, $P5020
set $P5018[$S5001], $P102
.return ($P102)
.end
.HLL "nqp"
.namespace []
.sub "" :subid("cuid_12_1349901723.41") :anon :lex :outer("cuid_13_1349901723.41")
.annotate 'file', "src\\ModuleLoader.pm"
.annotate 'line', 110
.param pmc _lex_param_0
.lex "$_", _lex_param_0
find_lex $P5001, "%WHO_clone"
.annotate 'line', 111
$P5002 = _lex_param_0."key"()
set $S5001, $P5002
$P5003 = _lex_param_0."value"()
set $P5001[$S5001], $P5003
.return ($P5003)
.end
.HLL "nqp"
.namespace []
.sub "" :subid("cuid_15_1349901723.41") :anon :lex :outer("cuid_14_1349901723.41")
.annotate 'file', "src\\ModuleLoader.pm"
.annotate 'line', 123
.lex "$source_mo", $P101
.lex "$source_is_stub", $P102
.lex "$target_mo", $P103
.lex "$target_is_stub", $P104
null $P5001
set $P101, $P5001
null $P5002
set $P102, $P5002
null $P5003
set $P103, $P5003
null $P5004
set $P104, $P5004
.annotate 'line', 124
find_lex $P5006, "$_"
$P5007 = $P5006."value"()
get_how $P5005, $P5007
set $P101, $P5005
.annotate 'line', 125
get_what $P5009, $P101
get_how $P5008, $P5009
$P5010 = $P5008."name"($P101)
set $S5001, $P5010
find_lex $P5011, "$stub_how"
set $S5002, $P5011
iseq $I5001, $S5001, $S5002
box $P5012, $I5001
set $P102, $P5012
find_lex $P5016, "$target"
get_who $P5015, $P5016
find_lex $P5017, "$sym"
set $S5003, $P5017
set $P5014, $P5015[$S5003]
unless_null $P5014, fallback33
null $P5018
set $P5014, $P5018
fallback33:
get_how $P5013, $P5014
set $P103, $P5013
.annotate 'line', 127
get_what $P5020, $P103
get_how $P5019, $P5020
$P5021 = $P5019."name"($P103)
set $S5004, $P5021
find_lex $P5022, "$stub_how"
set $S5005, $P5022
iseq $I5002, $S5004, $S5005
box $P5023, $I5002
set $P104, $P5023
set $P5024, $P102
unless $P102 goto if20_end37
set $P5024, $P104
if20_end37:
unless $P5024 goto if19_else34
.annotate 'line', 128
.annotate 'line', 130
find_lex $P5027, "$target"
get_who $P5026, $P5027
find_lex $P5028, "$sym"
set $S5006, $P5028
set $P5025, $P5026[$S5006]
unless_null $P5025, fallback38
null $P5029
set $P5025, $P5029
fallback38:
find_lex $P5030, "$_"
$P5031 = $P5030."value"()
$P5032 = "&merge_globals"($P5025, $P5031)
set $P5035, $P5032
goto if19_end35
if19_else34:
.annotate 'line', 132
find_lex $P5033, "$sym"
set $S5008, $P5033
concat $S5007, "Merging GLOBAL symbols failed: duplicate definition of symbol ", $S5008
box $P5034, $S5007
die $P5034
set $P5035, $P5034
if19_end35:
.return ($P5035)
.end
.HLL "nqp"
.namespace []
.sub "search_path" :subid("cuid_2_1349901723.41") :anon :lex :outer("cuid_7_1349901723.41")
.annotate 'file', "src\\ModuleLoader.pm"
.annotate 'line', 5
.param pmc _lex_param_0
.param pmc _lex_param_1
.const 'Sub' $P5035 = 'cuid_16_1349901723.41'
capture_lex $P5035
.lex "@search_paths", $P101
.lex "$explicit", $P102
.lex "%conf", $P103
.lex "self", _lex_param_0
.lex "$explicit_path", _lex_param_1
new $P5001, 'ResizablePMCArray'
set $P101, $P5001
null $P5002
set $P102, $P5002
new $P5003, 'Hash'
set $P103, $P5003
new $P5016, 'ExceptionHandler'
set_label $P5016, catch_handler_2348
$P5016.'handle_types_except'(.CONTROL_ALL)
push_eh $P5016
.annotate 'line', 11
find_dynamic_lex $P5006, "%*COMPILING"
unless_null $P5006, fallback42
nqp_get_sc_object $P5009, "6EBC33AD36BF21AA57CAA4B020565B7228223D55-1349901723.424", 0
get_who $P5008, $P5009
set $P5007, $P5008["%COMPILING"]
unless_null $P5007, fallback43
nqp_get_sc_object $P5011, "6EBC33AD36BF21AA57CAA4B020565B7228223D55-1349901723.424", 0
get_who $P5010, $P5011
new $P5012, 'Hash'
set $P5010["%COMPILING"], $P5012
set $P5007, $P5012
fallback43:
unless_null $P5007, vivi_2144
die "Contextual %*COMPILING not found"
box $P5013, "Contextual %*COMPILING not found"
set $P5007, $P5013
vivi_2144:
set $P5006, $P5007
fallback42:
set $P5005, $P5006["%?OPTIONS"]
unless_null $P5005, fallback45
null $P5014
set $P5005, $P5014
fallback45:
set $S5001, _lex_param_1
set $P5004, $P5005[$S5001]
unless_null $P5004, fallback46
null $P5015
set $P5004, $P5015
fallback46:
set $P102, $P5004
set $P5017, $P102
pop_eh
goto skip_handler_2247
catch_handler_2348:
.get_results ($P5016)
set $I10001, 1
set $P5016["handled"], $I10001
null $P10001
finalize $P5016
pop_upto_eh $P5016
pop_eh
set $P5017, $P10001
goto skip_handler_2247
skip_handler_2247:
isnull $I5002, $P102
box $P5018, $I5002
isfalse $I5001, $P5018
box $P5020, $I5001
set $P5019, $P5020
unless $I5001 goto if25_end52
set $P5019, $P102
if25_end52:
unless $P5019 goto if24_else49
.annotate 'line', 12
.annotate 'line', 13
$P5021 = $P101."push"($P102)
set $P5024, $P5021
goto if24_end50
if24_else49:
.const 'Sub' $P5022 = 'cuid_16_1349901723.41'
capture_lex $P5022
$P5023 = $P5022()
set $P5024, $P5023
if24_end50:
.annotate 'line', 23
$P5025 = $P101."push"(".")
.annotate 'line', 24
$P5026 = $P101."push"("blib")
getinterp $P5028
set $P5027, $P5028[.IGLOBALS_CONFIG_HASH]
unless_null $P5027, fallback58
null $P5029
set $P5027, $P5029
fallback58:
set $P103, $P5027
.annotate 'line', 28
set $P5030, $P103["libdir"]
unless_null $P5030, fallback59
null $P5031
set $P5030, $P5031
fallback59:
set $S5004, $P5030
set $P5032, $P103["versiondir"]
unless_null $P5032, fallback60
null $P5033
set $P5032, $P5033
fallback60:
set $S5005, $P5032
concat $S5003, $S5004, $S5005
concat $S5002, $S5003, "/languages/nqp/lib"
$P5034 = $P101."push"($S5002)
.return ($P101)
.end
.HLL "nqp"
.namespace []
.sub "" :subid("cuid_16_1349901723.41") :anon :lex :outer("cuid_2_1349901723.41")
.annotate 'file', "src\\ModuleLoader.pm"
.annotate 'line', 15
.lex "@lib_paths", $P101
new $P5001, 'ResizablePMCArray'
set $P101, $P5001
getinterp $P5004
set $P5003, $P5004[.IGLOBALS_LIB_PATHS]
unless_null $P5003, fallback53
null $P5005
set $P5003, $P5005
fallback53:
set $P5002, $P5003[1]
unless_null $P5002, fallback54
null $P5006
set $P5002, $P5006
fallback54:
set $P101, $P5002
set $N5001, $P101
set $N5002, 3
isgt $I5001, $N5001, $N5002
box $P5012, $I5001
set $P5011, $P5012
unless $I5001 goto if26_end56
.annotate 'line', 17
.annotate 'line', 18
find_lex $P5007, "@search_paths"
set $P5008, $P101[0]
unless_null $P5008, fallback57
null $P5009
set $P5008, $P5009
fallback57:
$P5010 = $P5007."push"($P5008)
set $P5011, $P5010
if26_end56:
.return ($P5011)
.end
.HLL "nqp"
.namespace []
.sub "ctxsave" :subid("cuid_3_1349901723.41") :anon :lex :outer("cuid_7_1349901723.41")
.annotate 'file', "src\\ModuleLoader.pm"
.annotate 'line', 34
.param pmc _lex_param_0
.lex "self", _lex_param_0
$P0 = getinterp
$P5001 = $P0['context';1]
store_dynamic_lex "$*MAIN_CTX", $P5001
box $P5002, 0
store_dynamic_lex "$*CTXSAVE", $P5002
.return ($P5002)
.end
.HLL "nqp"
.namespace []
.sub "load_module" :subid("cuid_4_1349901723.41") :anon :lex :outer("cuid_7_1349901723.41")
.annotate 'file', "src\\ModuleLoader.pm"
.annotate 'line', 43
.param pmc _lex_param_0
.param pmc _lex_param_1
.param pmc _lex_param_2 :slurpy
.const 'Sub' $P5027 = 'cuid_17_1349901723.41'
capture_lex $P5027
.const 'Sub' $P5027 = 'cuid_18_1349901723.41'
capture_lex $P5027
.const 'Sub' $P5027 = 'cuid_19_1349901723.41'
capture_lex $P5027
.lex "$module_ctx", $P101
.lex "$path", $P102
.lex "@prefixes", $P103
.lex "self", _lex_param_0
.lex "$module_name", _lex_param_1
.lex "@global_merge_target", _lex_param_2
null $P5001
set $P101, $P5001
null $P5002
set $P102, $P5002
new $P5003, 'ResizablePMCArray'
set $P103, $P5003
root_new $P104, ['parrot';'Continuation']
set_label $P104, lexotic_61
.lex "RETURN", $P104
set $S5003, _lex_param_1
split $P5004, "::", $S5003
join $S5002, "/", $P5004
concat $S5001, $S5002, ".pbc"
box $P5005, $S5001
set $P102, $P5005
.annotate 'line', 49
nqp_decontainerize $P5006, _lex_param_0
$P5007 = $P5006."search_path"("module-path")
set $P103, $P5007
set $P5008, $P103
iter $P5010, $P103
new $P5012, 'ExceptionHandler', [.CONTROL_LOOP_NEXT;.CONTROL_LOOP_REDO;.CONTROL_LOOP_LAST]
set_label $P5012, for_handlers65
push_eh $P5012
for_next66:
unless $P5010, for_done68
shift $P5013, $P5010
for_redo67:
.const 'Sub' $P5011 = 'cuid_17_1349901723.41'
capture_lex $P5011
$P5008 = $P5011($P5013)
goto for_next66
for_handlers65:
.get_results ($P5012)
pop_upto_eh $P5012
getattribute $P5012, $P5012, 'type'
eq $P5012, .CONTROL_LOOP_NEXT, for_next66
eq $P5012, .CONTROL_LOOP_REDO, for_redo67
for_done68:
pop_eh
find_lex $P5014, "%modules_loaded"
set $S5004, $P102
exists $I5001, $P5014[$S5004]
unless $I5001 goto if28_else69
.annotate 'line', 56
find_lex $P5016, "%modules_loaded"
set $S5005, $P102
set $P5015, $P5016[$S5005]
unless_null $P5015, fallback71
null $P5017
set $P5015, $P5017
fallback71:
set $P101, $P5015
set $P5020, $P101
goto if28_end70
if28_else69:
.const 'Sub' $P5018 = 'cuid_18_1349901723.41'
capture_lex $P5018
$P5019 = $P5018()
set $P5020, $P5019
if28_end70:
defined $I5002, $P101
box $P5024, $I5002
set $P5023, $P5024
unless $I5002 goto if30_end76
.const 'Sub' $P5021 = 'cuid_19_1349901723.41'
capture_lex $P5021
$P5022 = $P5021()
set $P5023, $P5022
if30_end76:
find_lex $P5025, "RETURN"
$P5026 = $P5025($P101)
goto lexotic_62
lexotic_61:
.get_results ($P5026)
lexotic_62:
.return ($P5026)
.end
.HLL "nqp"
.namespace []
.sub "" :subid("cuid_17_1349901723.41") :anon :lex :outer("cuid_4_1349901723.41")
.annotate 'file', "src\\ModuleLoader.pm"
.annotate 'line', 50
.param pmc _lex_param_0
.lex "$prefix", _lex_param_0
set $S5003, _lex_param_0
concat $S5002, $S5003, "/"
find_lex $P5001, "$path"
set $S5004, $P5001
concat $S5001, $S5002, $S5004
stat $I5001, $S5001, 0
set $I5002, $I5001
unless $I5001 goto if27_end64
.annotate 'line', 51
set $S5007, _lex_param_0
concat $S5006, $S5007, "/"
find_lex $P5002, "$path"
set $S5008, $P5002
concat $S5005, $S5006, $S5008
box $P5003, $S5005
store_lex "$path", $P5003
die 0, .CONTROL_LOOP_LAST
set $I5002, 0
if27_end64:
.return ($I5002)
.end
.HLL "nqp"
.namespace []
.sub "" :subid("cuid_18_1349901723.41") :anon :lex :outer("cuid_4_1349901723.41")
.annotate 'file', "src\\ModuleLoader.pm"
.annotate 'line', 59
.lex "$*CTXSAVE", $P101
.lex "$*MAIN_CTX", $P102
.lex "$preserve_global", $P103
null $P5001
set $P101, $P5001
null $P5002
set $P102, $P5002
null $P5003
set $P103, $P5003
find_lex $P5005, "self"
nqp_decontainerize $P5004, $P5005
set $P101, $P5004
nqp_get_sc_object $P5006, "6EBC33AD36BF21AA57CAA4B020565B7228223D55-1349901723.424", 1
set $P102, $P5006
get_hll_global $P5007, "GLOBAL"
set $P103, $P5007
find_lex $P5008, "$path"
set $S5001, $P5008
load_bytecode $S5001
set_hll_global "GLOBAL", $P103
find_lex $P5009, "%modules_loaded"
find_lex $P5010, "$path"
set $S5002, $P5010
unless_null $P102, fallback72
nqp_get_sc_object $P5013, "6EBC33AD36BF21AA57CAA4B020565B7228223D55-1349901723.424", 0
get_who $P5012, $P5013
set $P5011, $P5012["$MAIN_CTX"]
unless_null $P5011, fallback73
null $P5014
set $P5011, $P5014
fallback73:
unless_null $P5011, vivi_2974
die "Contextual $*MAIN_CTX not found"
box $P5015, "Contextual $*MAIN_CTX not found"
set $P5011, $P5015
vivi_2974:
set $P102, $P5011
fallback72:
store_lex "$module_ctx", $P102
set $P5009[$S5002], $P102
.return ($P102)
.end
.HLL "nqp"
.namespace []
.sub "" :subid("cuid_19_1349901723.41") :anon :lex :outer("cuid_4_1349901723.41")
.annotate 'file', "src\\ModuleLoader.pm"
.annotate 'line', 69
.lex "$UNIT", $P101
null $P5001
set $P101, $P5001
find_lex $P5003, "$module_ctx"
getattribute $P5002, $P5003, "lex_pad"
set $P101, $P5002
set $P5004, $P101["GLOBALish"]
unless_null $P5004, fallback79
null $P5005
set $P5004, $P5005
fallback79:
isnull $I5001, $P5004
box $P5016, $I5001
set $P5015, $P5016
if $I5001 goto unless31_end78
.annotate 'line', 72
find_lex $P5006, "@global_merge_target"
set $N5001, $P5006
box $P5014, $N5001
set $P5013, $P5014
unless $N5001 goto if32_end81
.annotate 'line', 73
.annotate 'line', 74
find_lex $P5008, "@global_merge_target"
set $P5007, $P5008[0]
unless_null $P5007, fallback82
null $P5009
set $P5007, $P5009
fallback82:
set $P5010, $P101["GLOBALish"]
unless_null $P5010, fallback83
null $P5011
set $P5010, $P5011
fallback83:
$P5012 = "&merge_globals"($P5007, $P5010)
set $P5013, $P5012
if32_end81:
set $P5015, $P5013
unless31_end78:
.return ($P5015)
.end
.HLL "nqp"
.namespace []
.sub "load_setting" :subid("cuid_5_1349901723.41") :anon :lex :outer("cuid_7_1349901723.41")
.annotate 'file', "src\\ModuleLoader.pm"
.annotate 'line', 139
.param pmc _lex_param_0
.param pmc _lex_param_1
.const 'Sub' $P5008 = 'cuid_21_1349901723.41'
capture_lex $P5008
.lex "$setting", $P101
.lex "self", _lex_param_0
.lex "$setting_name", _lex_param_1
null $P5001
set $P101, $P5001
root_new $P102, ['parrot';'Continuation']
set_label $P102, lexotic_84
.lex "RETURN", $P102
set $S5001, _lex_param_1
isne $I5001, $S5001, "NULL"
box $P5005, $I5001
set $P5004, $P5005
unless $I5001 goto if33_end87
.const 'Sub' $P5002 = 'cuid_21_1349901723.41'
capture_lex $P5002
$P5003 = $P5002()
set $P5004, $P5003
if33_end87:
find_lex $P5006, "RETURN"
$P5007 = $P5006($P101)
goto lexotic_85
lexotic_84:
.get_results ($P5007)
lexotic_85:
.return ($P5007)
.end
.HLL "nqp"
.namespace []
.sub "" :subid("cuid_21_1349901723.41") :anon :lex :outer("cuid_5_1349901723.41")
.annotate 'file', "src\\ModuleLoader.pm"
.annotate 'line', 142
.const 'Sub' $P5022 = 'cuid_20_1349901723.41'
capture_lex $P5022
.const 'Sub' $P5022 = 'cuid_22_1349901723.41'
capture_lex $P5022
.lex "$path", $P101
.lex "@prefixes", $P102
null $P5001
set $P101, $P5001
new $P5002, 'ResizablePMCArray'
set $P102, $P5002
find_lex $P5003, "$setting_name"
set $S5002, $P5003
concat $S5001, $S5002, ".setting.pbc"
box $P5004, $S5001
set $P101, $P5004
.annotate 'line', 145
find_lex $P5006, "self"
nqp_decontainerize $P5005, $P5006
$P5007 = $P5005."search_path"("setting-path")
set $P102, $P5007
set $P5008, $P102
iter $P5010, $P102
new $P5012, 'ExceptionHandler', [.CONTROL_LOOP_NEXT;.CONTROL_LOOP_REDO;.CONTROL_LOOP_LAST]
set_label $P5012, for_handlers90
push_eh $P5012
for_next91:
unless $P5010, for_done93
shift $P5013, $P5010
for_redo92:
.const 'Sub' $P5011 = 'cuid_20_1349901723.41'
capture_lex $P5011
$P5008 = $P5011($P5013)
goto for_next91
for_handlers90:
.get_results ($P5012)
pop_upto_eh $P5012
getattribute $P5012, $P5012, 'type'
eq $P5012, .CONTROL_LOOP_NEXT, for_next91
eq $P5012, .CONTROL_LOOP_REDO, for_redo92
for_done93:
pop_eh
find_lex $P5014, "%settings_loaded"
set $S5003, $P101
exists $I5001, $P5014[$S5003]
box $P5018, $I5001
set $P5017, $P5018
if $I5001 goto unless35_end95
.const 'Sub' $P5015 = 'cuid_22_1349901723.41'
capture_lex $P5015
$P5016 = $P5015()
set $P5017, $P5016
unless35_end95:
find_lex $P5020, "%settings_loaded"
set $S5004, $P101
set $P5019, $P5020[$S5004]
unless_null $P5019, fallback104
null $P5021
set $P5019, $P5021
fallback104:
store_lex "$setting", $P5019
.return ($P5019)
.end
.HLL "nqp"
.namespace []
.sub "" :subid("cuid_20_1349901723.41") :anon :lex :outer("cuid_21_1349901723.41")
.annotate 'file', "src\\ModuleLoader.pm"
.annotate 'line', 146
.param pmc _lex_param_0
.lex "$prefix", _lex_param_0
set $S5003, _lex_param_0
concat $S5002, $S5003, "/"
find_lex $P5001, "$path"
set $S5004, $P5001
concat $S5001, $S5002, $S5004
stat $I5001, $S5001, 0
set $I5002, $I5001
unless $I5001 goto if34_end89
.annotate 'line', 147
set $S5007, _lex_param_0
concat $S5006, $S5007, "/"
find_lex $P5002, "$path"
set $S5008, $P5002
concat $S5005, $S5006, $S5008
box $P5003, $S5005
store_lex "$path", $P5003
die 0, .CONTROL_LOOP_LAST
set $I5002, 0
if34_end89:
.return ($I5002)
.end
.HLL "nqp"
.namespace []
.sub "" :subid("cuid_22_1349901723.41") :anon :lex :outer("cuid_21_1349901723.41")
.annotate 'file', "src\\ModuleLoader.pm"
.annotate 'line', 154
.lex "$*CTXSAVE", $P101
.lex "$*MAIN_CTX", $P102
.lex "$preserve_global", $P103
null $P5001
set $P101, $P5001
null $P5002
set $P102, $P5002
null $P5003