in reply to Allen Ginsberg - Is About

I'm gonna dip my toe in the water here. I don't understand it completely (notably, the exact link between the arithmetic and the various padsv and gvsv entries in the debug output is beyond me), but here goes. This code: That being said, the trick to this, apart from the output of one copy feeding into another copy bit, is to get the main script to produce debugger output with just the correct sequence of padsv and gvsv lines (among others) to generate the text wanted. I suspect that somewhere in diotalevi's archives, there's a script that produces code to do just that for any text.

Very nice job, diotalevi!

Update: After a chatterbox conversation with diotalevi, I now (think I) understand the link between the script and it's debugger output. If you look carefully at the arithmetic expressions in the main part of the script, you will see that some of the variables there are declared before, using my (and are thus lexically scoped), while others (e.g. $a and $c) are not, and are thus global. Global scalars are stored in gvsv, lexically scoped ones in padsv structures. Hence, by carefully choosing the sequence of variable names (the calculations themselves are unimportant), diotalevi controls the output of the debugger, and thus the sequence of bits fed into tr. Brilliant!

Also note that, although I'm talking about 'the debugger' here, it's actually the B::Terse compiler backend that generates the output, not the debugger. It was just easier to write debugger instead of 'B::Terse backend' all the time :).

CU
Robartes-

Replies are listed 'Best First'.
Re^2: Allen Ginsberg - Is About
by diotalevi (Canon) on Mar 11, 2003 at 16:14 UTC