On Mon, May 18, 2020 at 12:35:47PM -0700, ToddAndMargo via perl6-users wrote: > On 2020-05-17 22:28, Paul Procacci wrote: > > Don't 'say' anything. Just let the optimizer spit out the QAST that you > > are interested in looking at. > > The following spits out a diff after optimization: > > > > # diff -u <(perl6 --target=optimize -e '"test".IO.e') <(perl6 > > --target=optimize -e '"test".IO.e.Bool') > > > > >> Huh. Not sure what I am looking at > > > > You aren't specific. Is it the error message you received because you > > used 'say' improperly or is it the QAST? > > - How to use 'say' is in the documentation. > > - A QAST is pretty close to an AST and I'd start there on wikipedia or > > something. > > I was looking for the difference between > > 'say if "test".IO.d', and
Please note that in my example a couple of messages ago I did not write "say if 'h:/'.IO.d", I wrote "say 'yes' if 'h:/'.IO.d". The difference is very important and leads directly to the error-like message you got. > 'say "test".IO.d.Bool' > > This is were 'if" has to unscramble a "True" or > "text message" return. > > But, I have no idea what all that stuff is that comes > back anyway, so I think I will give up. It's the internal representation of the program you told Raku to parse and execute; the truth is that, just like in a sci-fi story about a machine that is supposed to answer any question, but only comes back with "the question has not been asked correctly", and just as with using low-level debugging tools like strace on Unix-like systems, to ask the right question one already needs to know most of the answer. The QAST is most useful to those who already have some idea how a compiler generally works, how a pseudocode virtual machine works, how a just-in-time compiler works, and how they all handle different expressions and the relationships between different types. G'luck, Peter -- -- Peter Pentchev r...@ringlet.net r...@debian.org p...@storpool.com PGP key: http://people.FreeBSD.org/~roam/roam.key.asc Key fingerprint 2EE7 A7A5 17FC 124C F115 C354 651E EFB0 2527 DF13
signature.asc
Description: PGP signature