Yary,
No, I can’t reproduce with independent test code so far. I gave it a quick try
but could not reproduce it (see the alphabet soup at the bottom of this thread).
ROLE.pm6
unit role ROLE;
method XXX () { say 'Nothing'; }
AAAAAAAAAAAAAAAAAAAA.pm6
unit class AAAAAAAAAAAAAAAAAAAA;
use AAAAAAAAAAAAAAAAAAAA::BBBBBBBBBBBBBBBBBBBB;
has AAAAAAAAAAAAAAAAAAAA::BBBBBBBBBBBBBBBBBBBB $.B;
submethod TWEAK { $!B = AAAAAAAAAAAAAAAAAAAA::BBBBBBBBBBBBBBBBBBBB.new(); }
AAAAAAAAAAAAAAAAAAAA/BBBBBBBBBBBBBBBBBBBB.pm6
use ROLE;
unit class AAAAAAAAAAAAAAAAAAAA::BBBBBBBBBBBBBBBBBBBB does ROLE;
use AAAAAAAAAAAAAAAAAAAA::BBBBBBBBBBBBBBBBBBBB::CCCCCCCCCCCCCCCCCCCC;
has AAAAAAAAAAAAAAAAAAAA::BBBBBBBBBBBBBBBBBBBB::CCCCCCCCCCCCCCCCCCCC $.C;
submethod TWEAK { $!C =
AAAAAAAAAAAAAAAAAAAA::BBBBBBBBBBBBBBBBBBBB::CCCCCCCCCCCCCCCCCCCC.new(); }
…
and so on
…
AAAAAAAAAAAAAAAAAAAA/BBBBBBBBBBBBBBBBBBBB/CCCCCCCCCCCCCCCCCCCC/DDDDDDDDDDDDDDDDDDDD/EEEEEEEEEEEEEEEEEEEE/FFFFFFFFFFFFFFFFFFFF/GGGGGGGGGGGGGGGGGGGG/HHHHHHHHHHHHHHHHHHHH/IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII.pm6
use ROLE;
unit class
AAAAAAAAAAAAAAAAAAAA::BBBBBBBBBBBBBBBBBBBB::CCCCCCCCCCCCCCCCCCCC::DDDDDDDDDDDDDDDDDDDD::EEEEEEEEEEEEEEEEEEEE::FFFFFFFFFFFFFFFFFFFF::GGGGGGGGGGGGGGGGGGGG::HHHHHHHHHHHHHHHHHHHH::IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
does ROLE;
use
AAAAAAAAAAAAAAAAAAAA::BBBBBBBBBBBBBBBBBBBB::CCCCCCCCCCCCCCCCCCCC::DDDDDDDDDDDDDDDDDDDD::EEEEEEEEEEEEEEEEEEEE::FFFFFFFFFFFFFFFFFFFF::GGGGGGGGGGGGGGGGGGGG::HHHHHHHHHHHHHHHHHHHH::IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII::JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ;
has
AAAAAAAAAAAAAAAAAAAA::BBBBBBBBBBBBBBBBBBBB::CCCCCCCCCCCCCCCCCCCC::DDDDDDDDDDDDDDDDDDDD::EEEEEEEEEEEEEEEEEEEE::FFFFFFFFFFFFFFFFFFFF::GGGGGGGGGGGGGGGGGGGG::HHHHHHHHHHHHHHHHHHHH::IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII::JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ
$.J;
submethod TWEAK { $!J =
AAAAAAAAAAAAAAAAAAAA::BBBBBBBBBBBBBBBBBBBB::CCCCCCCCCCCCCCCCCCCC::DDDDDDDDDDDDDDDDDDDD::EEEEEEEEEEEEEEEEEEEE::FFFFFFFFFFFFFFFFFFFF::GGGGGGGGGGGGGGGGGGGG::HHHHHHHHHHHHHHHHHHHH::IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII::JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ.new();
}
Those crazy-long names compiled just fine. All of my attempts to reproduce
this behavior outside of my project
(https://github.com/markldevine/perl6-Hypervisor-IBM-POWER-HMC) have failed so
far. I’m going to implement more modules with even more depth and see if I can
reproduce the problem elsewhere in the project’s code.
My work-around
* cp DynamicPowerSavingTunables.pm6 ../..
* vi ../../ DynamicPowerSavingTunables.pm6 # delete 46 chars from
‘unit class …’
* vi ../EnergyManagementConfiguration,pm6 # delete 46 chars from
‘need’, ‘has’ type, and assignment type
* ~/bin/ManagedSystems #
good compile, expected results
When I fold the module higher up in the hierarchy like the above, it
compiles/executes successfully. I’m stumped.
Thanks,
Mark
From: yary <[email protected]>
Sent: Wednesday, August 14, 2019 17:05
To: Mark Devine <[email protected]>
Cc: perl6-users <[email protected]>
Subject: Re: FW: Type name limit?
What's the simplest way to get the error- can you make a 1 or 2 line class
definition that should compile but doesn't?
On Wed, Aug 14, 2019, 10:27 AM Mark Devine
<[email protected]<mailto:[email protected]>> wrote:
Perl 6 Community,
Adding the gory details of my dilemma (JPG attached):
Red (longest & 2nd longest) fail to compile with:
===SORRY!===
Type
'Hypervisor::IBM::POWER::HMC::ManagedSystems::ManagedSystem::EnergyManagementConfiguration'
is not declared
at
/home/mdevine/github.com/perl6-Hypervisor-IBM-POWER-HMC/lib/Hypervisor/IBM/POWER/HMC/ManagedSystems/ManagedSystem.pm6<http://github.com/perl6-Hypervisor-IBM-POWER-HMC/lib/Hypervisor/IBM/POWER/HMC/ManagedSystems/ManagedSystem.pm6>
(Hypervisor::IBM::POWER::HMC::ManagedSystems::ManagedSystem):57
------> gedSystem::EnergyManagementConfiguration⏏
$.EnergyManagementConfigurati
Malformed has
at
/home/mdevine/github.com/perl6-Hypervisor-IBM-POWER-HMC/lib/Hypervisor/IBM/POWER/HMC/ManagedSystems/ManagedSystem.pm6<http://github.com/perl6-Hypervisor-IBM-POWER-HMC/lib/Hypervisor/IBM/POWER/HMC/ManagedSystems/ManagedSystem.pm6>
(Hypervisor::IBM::POWER::HMC::ManagedSystems::ManagedSystem):57
------> ER::HMC::ManagedSystems::ManagedSystem::⏏EnergyManagementConfiguration
Green compiles fine.
I started with the longest-name configuration, experienced the compile error,
copied the file up one directory, adjusted the names where required, then
experienced the compile error again. I repeated by copying
DynamicPowerSavingTunables.pm6 yet another directory higher/adjusting names and
it compiled successfully. I repeated this method from scratch a second time
with the same reproducible results.
I tested name length with this scenario, which compiled fine:
/home/mdevine/t/lib/
/home/mdevine/t/lib/AAAAAAAAAAAAAAAAAAAA
/home/mdevine/t/lib/AAAAAAAAAAAAAAAAAAAA/BBBBBBBBBBBBBBBBBBBB
/home/mdevine/t/lib/AAAAAAAAAAAAAAAAAAAA/BBBBBBBBBBBBBBBBBBBB/CCCCCCCCCCCCCCCCCCCC
/home/mdevine/t/lib/AAAAAAAAAAAAAAAAAAAA/BBBBBBBBBBBBBBBBBBBB/CCCCCCCCCCCCCCCCCCCC/DDDDDDDDDDDDDDDDDDDD
/home/mdevine/t/lib/AAAAAAAAAAAAAAAAAAAA/BBBBBBBBBBBBBBBBBBBB/CCCCCCCCCCCCCCCCCCCC/DDDDDDDDDDDDDDDDDDDD/EEEEEEEEEEEEEEEEEEEE
/home/mdevine/t/lib/AAAAAAAAAAAAAAAAAAAA/BBBBBBBBBBBBBBBBBBBB/CCCCCCCCCCCCCCCCCCCC/DDDDDDDDDDDDDDDDDDDD/EEEEEEEEEEEEEEEEEEEE/FFFFFFFFFFFFFFFFFFFF
/home/mdevine/t/lib/AAAAAAAAAAAAAAAAAAAA/BBBBBBBBBBBBBBBBBBBB/CCCCCCCCCCCCCCCCCCCC/DDDDDDDDDDDDDDDDDDDD/EEEEEEEEEEEEEEEEEEEE/FFFFFFFFFFFFFFFFFFFF/GGGGGGGGGGGGGGGGGGGG
/home/mdevine/t/lib/AAAAAAAAAAAAAAAAAAAA/BBBBBBBBBBBBBBBBBBBB/CCCCCCCCCCCCCCCCCCCC/DDDDDDDDDDDDDDDDDDDD/EEEEEEEEEEEEEEEEEEEE/FFFFFFFFFFFFFFFFFFFF/GGGGGGGGGGGGGGGGGGGG/HHHHHHHHHHHHHHHHHHHH
/home/mdevine/t/lib/AAAAAAAAAAAAAAAAAAAA/BBBBBBBBBBBBBBBBBBBB/CCCCCCCCCCCCCCCCCCCC/DDDDDDDDDDDDDDDDDDDD/EEEEEEEEEEEEEEEEEEEE/FFFFFFFFFFFFFFFFFFFF/GGGGGGGGGGGGGGGGGGGG/HHHHHHHHHHHHHHHHHHHH/IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
/home/mdevine/t/lib/AAAAAAAAAAAAAAAAAAAA/BBBBBBBBBBBBBBBBBBBB/CCCCCCCCCCCCCCCCCCCC/DDDDDDDDDDDDDDDDDDDD/EEEEEEEEEEEEEEEEEEEE/FFFFFFFFFFFFFFFFFFFF/GGGGGGGGGGGGGGGGGGGG/HHHHHHHHHHHHHHHHHHHH/IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII/JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ.pm6
/home/mdevine/t/lib/AAAAAAAAAAAAAAAAAAAA/BBBBBBBBBBBBBBBBBBBB/CCCCCCCCCCCCCCCCCCCC/DDDDDDDDDDDDDDDDDDDD/EEEEEEEEEEEEEEEEEEEE/FFFFFFFFFFFFFFFFFFFF/GGGGGGGGGGGGGGGGGGGG/HHHHHHHHHHHHHHHHHHHH/IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII.pm6
/home/mdevine/t/lib/AAAAAAAAAAAAAAAAAAAA/BBBBBBBBBBBBBBBBBBBB/CCCCCCCCCCCCCCCCCCCC/DDDDDDDDDDDDDDDDDDDD/EEEEEEEEEEEEEEEEEEEE/FFFFFFFFFFFFFFFFFFFF/GGGGGGGGGGGGGGGGGGGG/HHHHHHHHHHHHHHHHHHHH.pm6
/home/mdevine/t/lib/AAAAAAAAAAAAAAAAAAAA/BBBBBBBBBBBBBBBBBBBB/CCCCCCCCCCCCCCCCCCCC/DDDDDDDDDDDDDDDDDDDD/EEEEEEEEEEEEEEEEEEEE/FFFFFFFFFFFFFFFFFFFF/GGGGGGGGGGGGGGGGGGGG.pm6
/home/mdevine/t/lib/AAAAAAAAAAAAAAAAAAAA/BBBBBBBBBBBBBBBBBBBB/CCCCCCCCCCCCCCCCCCCC/DDDDDDDDDDDDDDDDDDDD/EEEEEEEEEEEEEEEEEEEE/FFFFFFFFFFFFFFFFFFFF.pm6
/home/mdevine/t/lib/AAAAAAAAAAAAAAAAAAAA/BBBBBBBBBBBBBBBBBBBB/CCCCCCCCCCCCCCCCCCCC/DDDDDDDDDDDDDDDDDDDD/EEEEEEEEEEEEEEEEEEEE.pm6
/home/mdevine/t/lib/AAAAAAAAAAAAAAAAAAAA/BBBBBBBBBBBBBBBBBBBB/CCCCCCCCCCCCCCCCCCCC/DDDDDDDDDDDDDDDDDDDD.pm6
/home/mdevine/t/lib/AAAAAAAAAAAAAAAAAAAA/BBBBBBBBBBBBBBBBBBBB/CCCCCCCCCCCCCCCCCCCC.pm6
/home/mdevine/t/lib/AAAAAAAAAAAAAAAAAAAA/BBBBBBBBBBBBBBBBBBBB.pm6
/home/mdevine/t/lib/AAAAAAAAAAAAAAAAAAAA.pm6
/home/mdevine/t/lib/h
/home/mdevine/t/lib/ROLE.pm6
Any insights? I am doing something fundamentally wrong?
Thanks,
Mark
-----Original Message-----
From: Mark Devine <[email protected]<mailto:[email protected]>>
Sent: Tuesday, August 13, 2019 20:29
To: perl6 <[email protected]<mailto:[email protected]>>
Subject: Type name limit?
This is Rakudo version 2019.07.1 built on MoarVM version 2019.07.1 implementing
Perl 6.d.
.
.
.