I understand that the symbols must be used in the same block as the 
require statement. There is then still a problem, namely the difference 
between linux and windows.

In the mean time I will try to get the usage of the functions to the 
block where it is required.

Marcel
> 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