On Tue Nov 18 17:58:53 2008, pmichaud wrote: > On Tue Nov 18 16:55:30 2008, [email protected] wrote: > > Given this PIR: > > > > .sub 'foo' :anon :immediate > > $P0 = newclass 'Bar' > > .end > > > > .sub 'main' :main > > $P0 = new 'Bar' > > $P0.'hi'() > > .end > > > > .namespace [ 'Bar' ] > > > > .sub 'hi' :method > > say "Hi!" > > .end > > > > ... the result is: > > > > Hi! > > > > Now compile it to PBC: > > > > $ ./parrot -o no_thaw.pbc no_thaw.pir > > $ ./parrot no_thaw.pbc > > > > Class 'Bar' not found > > current instr.: 'main' pc 6 (no_thaw.pir:6) > > > > See t/compilers/imcc/syn/hll.t #2 for a failing test. > > It's my understanding (from pdd19 and docs/pmc/subs.pod) that the above > is in fact the correct behavior -- :immediate subs only run > automatically when compiled, and not when "loaded" from either the > command line or via a load_bytecode op. > > To get the above to work even when run from the command line, add the > :init flag to 'foo'. > > Pm
I agree with Pm; :immediate subs are executed as soon as they are compiled, and to get the behavior you want, :init should work. Rejecting this ticket - if you feel strongly about this, chromatic, please open a new ticket via trac or bring it up at the next #ps. -- Will "Coke" Coleda _______________________________________________ http://lists.parrot.org/mailman/listinfo/parrot-dev
