Out of curiosity, might there be any convenient way to support heredoc parameters in PIR function calls? (I suspect the answer is "no", but thought I'd ask just in case.)
Currently PGE builds code to be compiled by emitting a sequence of function calls, each call appends another line of output to a string pmc. Of course, each of these calls takes some amount of overhead, and it might be nice if instead of writing emit(code, " lastpos = length target") emit(code, " gpad = new PerlArray") emit(code, " rcache = new PerlHash") emit(code, " captscope = mob") emit(code, " bsr %s", label) one could instead write: emit(code, <<"CODE", label) lastpos = length target gpad = new PerlArray rcache = new PerlHash captscope = mob bsr %s CODE thus converting the five emit statements into one. Yes, I know I can do $S0 = <<"CODE" ... CODE emit(code, $S0, label) but I'm not a fan of writing the $S0 variables -- they seem to distract the code. I may just go with something like code .= " lastpos = length target" code .= " gpad = new PerlArray" code .= " rcache = new PerlHash" code .= " captscope = mob" emit(code, " bsr %s", label) which at least changes the first four to be parrot ops instead of function calls for each. Any other thoughts or suggestions? Pm