It's not about gist truncating long lists. After all, when it does so it ends 
the output with triple dot.

Yet nobody spotted that not every methods in the list are represented by their 
names. Alongside with something like 'elems' there are many 
'Method+{is-nodal}.new' entries. This is due to `is nodal` trait mixin a role 
into a method object. Why this breaks Routine's gist method I'm not ready to 
answer.

The correct output is produced when we explicitly ask for code object name, 
i.e. when method .name is used one way or another. One can try this to see the 
difference:

say Set.^methods.map: *.gist
say Set.^methods.map: *.name

Best regards,
Vadim Belman

> On Feb 16, 2021, at 3:38 PM, Gianni Ceccarelli <dak...@thenautilus.net> wrote:
> 
> On 2021-02-16 Joseph Brenner <doom...@gmail.com> wrote:
>> But I don't see them in the list from .^methods:
>> 
>>  say $s.^methods;
>> 
>>  say so $s.^methods.gist.grep(/<<keys>>/);     # False
> 
> ``say`` calls ``.gist``, which produces a *truncated* string
> representation for long lists::
> 
>    $ raku -e 'say (^1000).List'
>    (0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 
> 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 
> 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 
> 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 ...)
> 
> If you grep the list itself, instead of its gist::
> 
>    $ raku -e 'Set.^methods.map(*.name).grep(/keys/)>>.say'
>    keys
> 
> -- 
>       Dakkar - <Mobilis in mobile>
>       GPG public key fingerprint = A071 E618 DD2C 5901 9574
>                                    6FE2 40EA 9883 7519 3F88
>                           key id = 0x75193F88
> 

Reply via email to