On 17-04-17 19:12, Zoffix Znet via RT wrote:

thanks for the link, I will look into it.

The code for which the windows implementation fails but not on linux, 
can be found here;

https://github.com/MARTIMM/config-datalang-refine/blob/master/lib/Config/DataLang/Refine.pm6

the requires are at line 57 and 64
and the error is thrown at line 193 where the function is used.

thanks again,
Marcel

> On Mon, 17 Apr 2017 09:53:28 -0700, mt1...@gmail.com wrote:
>> Since I've installed perl6 version 2017.03-234-g0ebdaa4 built on MoarVM
>> version 2017.03-128-gc9ab59c, several modules are experiencing failures
>> when using the following construct (golfed down)(I am sure that the
>> module loads)
>>
>>
>> my $m = 'somemodule';
>> require ::($m);
>> my $o = ::($m).new;
>>
>>
>> However, in a simple setup it works fine. I could manage to rewrite
>> things in such a way that errors disappear, but I do not understand it.
>> A question is 'Are the symbols loaded lexically in such a way that it is
>> not possible to instantiate the class in another method?'
>>
>> A remaining bug on windows(with latest rakudostar) shows the error;
>>
>> Failed to load Config::TOML;
>> Lexical with name '&from-toml' does not exist in this frame
>>
>> when using something like the following
>>
>> my $m = 'Config::TOML';
>> require ::($m) <&from-toml>;
>>
>> see also
>> https://ci.appveyor.com/project/MARTIMM/config-datalang-refine/branch/master
>>
>>
>> Other things I've seen before are; not able to find the class name
>> symbol when I want to instatiate the class, or the .^name is shorter
>> than the real class name should be, which accounts for the first error.
>>
>>
>> Regards,
>> Marcel
>>
>>
> Can't reproduce either of the issues you describe. Do you have a piece of 
> code we can run that repos the problem?
>
> Also, have you seen the lexical require Upgrade Notification? 
> http://rakudo.org/2017/03/18/lexical-require-upgrade-info/
>
>      my $m = 'Test';
>      require ::($m) <&ok>;
>      ok 1, 1;
>      # OUTPUT: ok 1 - 1
>
>      my $m = 'DBIish';
>      require ::($m);
>      my $o = ::($m).new;
>      dd $o;
>      # OUTPUT: DBIish $o = DBIish.new

Reply via email to