in reply to Re^2: eval('__PACKAGE__') is always main?!!!
in thread eval('__PACKAGE__') is always main?!!!

Eek, you're right; the unquoted __PACKAGE__ of course comes from the un-evaled compile-time pass, and hence does say "foo".

I can't find mention of this behavior in the docs (eval is where I'd like it to be), so yes, I'd consider this a bug.