Changes between Initial Version and Version 1 of Ticket #150
- Timestamp:
- 01/09/09 20:57:54 (13 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Ticket #150 – description
initial v1 1 1 This works fine: 2 2 3 {{{ 3 4 # demo.pir 4 5 .sub main :main 5 6 load_bytecode 'perl6.pbc' 6 7 .end 8 }}} 7 9 8 10 This fails, due to Perl6Str not existing 9 11 {{{ 10 12 # demo.pir 11 13 .HLL 'foo' … … 13 15 load_bytecode 'perl6.pbc' 14 16 .end 15 17 }}} 16 18 The runtime version using the 'loadlib' op can work, kind of. 17 19 18 20 Adding this to perl6.pir doesn't help: 19 21 {{{ 20 22 # perl6.pir 21 23 .HLL 'parrot' … … 24 26 $P0 = loadlib 'perl6_ops' 25 27 .end 26 28 }}} 27 29 Adding that same code to the example does work: 28 30 {{{ 29 31 # demo.pir 30 32 .HLL 'parrot' … … 37 39 load_bytecode 'perl6.pbc' 38 40 .end 39 41 }}} 40 42 This rather complicates attempts to use rakudo from another HLL. 41 43 … … 44 46 .loadlib is handled by do_loadlib in imcparser.c, which is: 45 47 48 {{{ 46 49 /* imcparser.c */ 47 50 do_loadlib(PARROT_INTERP, ARGIN(const char *lib)) … … 53 56 Parrot_register_HLL_lib(interp, s); 54 57 } 55 58 }}} 56 59 The loadlib op is handled by 'op loadlib' in core.ops: 57 60 {{{ 58 61 /* core.ops */ 59 62 inline op loadlib(out PMC, in STR) { 60 63 $1 = Parrot_load_lib(interp, $2, NULL); 61 64 } 62 65 }}} 63 66 You'll notice that the op version doesn't call Parrot_register_HLL_lib, but adding that to 'op loadlib' doesn't help. That's as far as I got in investigating this issue.