# New Ticket Created by Elizabeth Mattijsen # Please include the string: [perl #125780] # in the subject line of all future correspondence about this issue. # <URL: https://rt.perl.org/Ticket/Display.html?id=125780 >
[14:13:25] <azawawi> $?FILE is not working as expected [14:13:48] <azawawi> $?FILE is still refering to /home/azawawi/perl6-electron/.panda-work/1439208484_1/lib/Electron/App.pm6 [14:14:12] <azawawi> which panda create, installed and deleted that temp directory [14:14:18] <azawawi> s/create/created [14:14:45] <lizmat> m: say $?FILE; { my $?FILE = "foo"; say $?FILE } [14:14:47] <+camelia> rakudo-moar a32c14: OUTPUT«===SORRY!=== Error while compiling /tmp/jsbZpo1BlkCannot use ? twigil on my variableat /tmp/jsbZpo1Blk:1------> say $?FILE; { my $?FILE⏏ = "foo"; say $?FILE }» [14:14:56] <lizmat> m: say $?FILE; { my constant $?FILE = "foo"; say $?FILE } [14:14:57] <+camelia> rakudo-moar a32c14: OUTPUT«/tmp/bMlCVlwet8/tmp/bMlCVlwet8» [14:15:04] <lizmat> hmmm.... [14:18:32] <azawawi> lizmat: what's the point in having a compiled $?FILE which panda totally ignores? :) [14:19:11] <azawawi> my use case is that i need to find resources residing in lib/Foo/resources directory [14:19:55] <lizmat> there's %RESOURCE specced for that, alas NYI [14:20:00] <lizmat> hmmm.... [14:20:26] <lizmat> m: say $?FILE; { my constant $?FILE = "foo"; say $?FILE } # actually feels like a bug [14:20:29] <+camelia> rakudo-moar a32c14: OUTPUT«/tmp/StJKSHy18K/tmp/StJKSHy18K» [14:21:03] <lizmat> and I guess $?FILE should really be more runtime... [14:21:14] <azawawi> $*FILE ? [14:21:39] <azawawi> like http://perldoc.perl.org/functions/__FILE__.html [14:22:42] <lizmat> yeah, but P5 doesn't have the concept of precomp, so __FILE__ is always about the file that was just opened to be parsed [14:33:07] <jnthn> I'd say the bug is that constant $?FILE = ... doesn't complain the way my $?FILE = ... does. [14:33:39] <jnthn> You shouldn't be able to declare $? things yourself, they're special things for the compiler to resolve. And thus they're also compile-time constants and frozen in pre-comp [14:34:05] <jnthn> And no, $?FILE should not become more runtime. [14:34:41] <azawawi> jnthn: what about when panda compiles them in a temp folder .panda-work and then installs them? :) [14:34:45] <lizmat> ok, I'll take that from there then [14:36:09] <jnthn> azawawi: As I understand it, it probably should be giving the files to a CompUnitRepo object to install, and leaving pre-comp to Rakudo, in which case it can copy the file in place and pre-comp it in place. [14:41:24] <lizmat> jnthn: eh, you should be able to define $?FOO yourself, no? just not redefine existing ones? [14:42:39] <jnthn> lizmat: I'm...not sure it makes a lot of sense to allow that? [14:43:45] <lizmat> ok, so no "userland" $?vars then [14:44:03] <lizmat> I guess that'll make it easier to be sure to prevent future collisions [14:44:24] <jnthn> Right, it means we'll easily be able to introduce new ones in the future knowing only the compiler gets to set them