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 <not....@gmail.com>
Sent: Wednesday, August 14, 2019 17:05
To: Mark Devine <m...@markdevine.com>
Cc: perl6-users <perl6-users@perl.org>
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 
<m...@markdevine.com<mailto:m...@markdevine.com>> 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 <m...@markdevine.com<mailto:m...@markdevine.com>>
Sent: Tuesday, August 13, 2019 20:29
To: perl6 <perl6-users@perl.org<mailto:perl6-users@perl.org>>
Subject: Type name limit?



This is Rakudo version 2019.07.1 built on MoarVM version 2019.07.1 implementing 
Perl 6.d.

.

.

.

Reply via email to