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 <[email protected]> wrote:
>
> On 2021-02-16 Joseph Brenner <[email protected]> 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
>