Raku / examples

Many examples of Raku code
https://examples.raku.org/
Artistic License 2.0
295 stars 89 forks source link

`make html` fails #99

Open andinus opened 3 months ago

andinus commented 3 months ago

Running make html fails with:

[...]
Creating category index files                                                                                                                                                                               
Cannot resolve caller handle(Pod::To::HTML.new(de...: (Pod::Block::Table                                                                                                                                    
 ..., 0, None, :!defn); none of these signatures matches:                                                                                                                                                   
    (GenericPod: Nil, *%_)                                                                                                                                                                                  
    (GenericPod: Str $node, Int $in-level, Context $context, *%_ --> Str)                                                                                                                                   
    (GenericPod: Pod::Block::Code $node, Int $in-level, Context $context = Context::InPodCode, Bool :$defn = Bool::False, *%_ --> Str)                                                                      
    (GenericPod: Pod::Block::Comment $node, Int $in-level, Context $context = Context::None, Bool :$defn = Bool::False, *%_ --> Str)                                                                        
    (GenericPod: Pod::Block::Declarator $node, Int $in-level, Context $context, Bool :$defn = Bool::False, *%_ --> Str)                                                                                     
    (GenericPod: Pod::Block::Named $node, Int $in-level, Context $context = Context::None, Bool :$defn = Bool::False, *%_ --> Str)                                                                          
    (GenericPod: Pod::Block::Named $node where { ... }, Int $in-level, Context $context = Context::None, Bool :$defn = Bool::False, *%_ --> Str)                                                            
    (GenericPod: Pod::Block::Named $node where { ... }, Int $in-level, Context $context, Bool :$defn = Bool::False, *%_ --> Str)                                                                            
    (GenericPod: Pod::Block::Named $node where { ... }, Int $in-level, Context $context, Bool :$defn = Bool::False, *%_ --> Str)                                                                            
    (GenericPod: Pod::Block::Named $node where { ... }, Int $in-level, Context $context, Bool :$defn = Bool::False, *%_ --> Str)                                                                            
    (GenericPod: Pod::Block::Named $node where { ... }, Int $in-level, Context $context = Context::None, Bool :$defn = Bool::False, *%_ --> Str)                                                            
    (GenericPod: Pod::Block::Named $node where { ... }, Int $in-level, Context $context = Context::None, Bool :$defn = Bool::False, *%_ --> Str)                                                            
    (GenericPod: Pod::Block::Named $node where { ... }, Int $in-level, Context $context = Context::None, Bool :$defn = Bool::False, *%_ --> Str)                                                            
    (GenericPod: Pod::Block::Named $node where { ... }, Int $in-level, Context $context = Context::None, Bool :$defn = Bool::False, *%_ --> Str)                                                            
    (GenericPod: Pod::Block::Para $node, Int $in-level, Context $context where { ... }, Bool :$defn = Bool::False, *%_ --> Str)                                                                             
    (GenericPod: Pod::Block::Para $node, Int $in-level, Context $context, Bool :$defn = Bool::False, *%_ --> Str)                                                                                           
    (GenericPod: Pod::Block::Table $node, Int $in-level, Context $context, Bool :$defn = Bool::False, *%_ --> Str)                                                                                          
    (GenericPod: Pod::Defn $node, Int $in-level, Context $context, *%_ --> Str)                                                                                                                             
    (GenericPod: Pod::Heading $node, Int $in-level, Context $context, Bool :$defn = Bool::False, *%_ --> Str)                                                                                               
    (GenericPod: Pod::Item $node, Int $in-level is copy, Context $context, Bool :$defn = Bool::False, *%_ --> Str)                                                                                          
    (GenericPod: Pod::Raw $node, Int $in-level, Context $context = Context::None, Bool :$defn = Bool::False, *%_ --> Str)                                                                                   
    (GenericPod: Pod::Config $node, Int $in-level, Context $context = Context::None, Bool :$defn = Bool::False, *%_ --> Str)                                                                                
    (GenericPod: Pod::FormattingCode $node, Int $in-level, Context $context where { ... }, Bool :$defn = Bool::False, *%_ --> Str)                                                                          
    (GenericPod: Pod::FormattingCode $node where { ... }, Int $in-level, Context $context = Context::None, Bool :$defn = Bool::False, *%_ --> Str)                                                          
    (GenericPod: Pod::FormattingCode $node where { ... }, Int $in-level, Context $context = Context::None, Bool :$defn = Bool::False, *%_ --> Str)                                                          
    (GenericPod: Pod::FormattingCode $node where { ... }, Int $in-level, Context $context = Context::None, Bool :$defn = Bool::False, *%_ --> Str)                                                          
    (GenericPod: Pod::FormattingCode $node where { ... }, Int $in-level, $context = Context::None, Bool :$defn = Bool::False, *%_ --> Str)                                                                  
    (GenericPod: Pod::FormattingCode $node where { ... }, Int $in-level, Context $context = Context::None, Bool :$defn = Bool::False, *%_ --> Str)                                                              (GenericPod: Pod::FormattingCode $node where { ... }, Int $in-level, Context $context = Context::None, Bool :$defn = Bool::False, *%_ --> Str)                                                          
    (GenericPod: Pod::FormattingCode $node where { ... }, Int $in-level, Context $context = Context::None, Bool :$defn = Bool::False, *%_ --> Str)                                                          
    (GenericPod: Pod::FormattingCode $node where { ... }, Int $in-level, Context $context = Context::None, Bool :$defn = Bool::False, *%_ --> Str)                                                          
  in code  at /home/examples.raku.org/.raku/sources/901F1025C42CF990CDCEED32B5126CF84EFB01D3 (ProcessedPod) line 689                                                                                        
  in method handle at /home/examples.raku.org/.raku/sources/901F1025C42CF990CDCEED32B5126CF84EFB01D3 (ProcessedPod) line 687                                                                                
  in code  at /home/examples.raku.org/.raku/sources/901F1025C42CF990CDCEED32B5126CF84EFB01D3 (ProcessedPod) line 331                                                                                        
  in method process-pod at /home/examples.raku.org/.raku/sources/901F1025C42CF990CDCEED32B5126CF84EFB01D3 (ProcessedPod) line 331                                                                           
  in method render-tree at /home/examples.raku.org/.raku/sources/901F1025C42CF990CDCEED32B5126CF84EFB01D3 (ProcessedPod) line 348                                                                           
  in sub pod2html at /home/examples.raku.org/.raku/sources/B724BB3B7903E7B04A25FE65B2CA6547625F99D8 (Pod::To::HTML) line 663                                                                                
  in method p2h at /home/examples.raku.org/examples/lib/Pod/Htmlify.pm6 (Pod::Htmlify) line 217                                                                                                             
  in method write-category-indices at /home/examples.raku.org/examples/lib/Pod/Htmlify.pm6 (Pod::Htmlify) line 136                                                                                          
  in method build at /home/examples.raku.org/examples/lib/Pod/Htmlify.pm6 (Pod::Htmlify) line 30                                                                                                            
  in sub MAIN at htmlify.pl line 79                                                                                                                                                                         
  in block <unit> at htmlify.pl line 5  
andinus commented 3 months ago

Rakudo:

Welcome to Rakudo™ v2022.12.                                                                                                                                                                 
Implementing the Raku® Programming Language v6.d.                                                                                                                                            
Built on MoarVM version 2022.12. 

Input at the time of failure:

Pod::Block::Named.new(
    name => "pod",
    config => {},
    contents => [
                 Pod::Block::Named.new(
                     name => "TITLE",
                     config => {},
                     contents => [
                                  Pod::Block::Para.new(
                                      config => {},
                                      contents => ["99 problems"]
                                  )
                              ]
                 ),
                 (Pod::Block::Table.new(
                         caption => Any,
                         headers => ["File", "Title", "Author"],
                         config => {},
                         contents => [[Pod::FormattingCode.new(type => "L", meta => ["99-problems/P01-scottp.html"], config => {}, contents => ["P01-scottp.pl"]), "P01 - Find the last box of a list.", "Scott Penrose"],
                                      [Pod::FormattingCode.new(type => "L", meta => ["99-problems/P01-topo.html"], config => {}, contents => ["P01-topo.pl"]), "P01 - Find the last element of a list.", "Ryan Connelly"],
                                      [Pod::FormattingCode.new(type => "L", meta => ["99-problems/P02-scottp.html"], config => {}, contents => ["P02-scottp.pl"]), "P02 - Find the last but one box of a list.", "Scott Penrose"],
                                      [Pod::FormattingCode.new(type => "L", meta => ["99-problems/P02-topo.html"], config => {}, contents => ["P02-topo.pl"]), "P02 - Find the last two elements of a list.", "Ryan Connelly"],
                                      [Pod::FormattingCode.new(type => "L", meta => ["99-problems/P03-scottp.html"], config => {}, contents => ["P03-scottp.pl"]), "P03 - Find the K'th element of a list.", "Scott Penrose"],
                                      [Pod::FormattingCode.new(type => "L", meta => ["99-problems/P03-topo.html"], config => {}, contents => ["P03-topo.pl"]), "P03 - Find the ", "Ryan Connelly"],
                                      [Pod::FormattingCode.new(type => "L", meta => ["99-problems/P04-scottp.html"], config => {}, contents => ["P04-scottp.pl"]), "P04 - Find the number of elements of a list", "Scott Penrose"],
                                      [Pod::FormattingCode.new(type => "L", meta => ["99-problems/P04-topo.html"], config => {}, contents => ["P04-topo.pl"]), "P04 - Find the number of elements in a list.", "Ryan Connelly"],
                                      [Pod::FormattingCode.new(type => "L", meta => ["99-problems/P05-scottp.html"], config => {}, contents => ["P05-scottp.pl"]), "P05 - Reverse a list", "Scott Penrose"],
                                      [Pod::FormattingCode.new(type => "L", meta => ["99-problems/P05-topo.html"], config => {}, contents => ["P05-topo.pl"]), "P05 - Reverse a list.", "Ryan Connelly"],
                                      [Pod::FormattingCode.new(type => "L", meta => ["99-problems/P06-ajs.html"], config => {}, contents => ["P06-ajs.pl"]), "P06 - Find out whether a list is a palindrome.", "Aaron Sherman"],
                                      [Pod::FormattingCode.new(type => "L", meta => ["99-problems/P06-scottp.html"], config => {}, contents => ["P06-scottp.pl"]), "P06 - Find out whether a list is a palindrome.", "Scott Penrose"],
                                      [Pod::FormattingCode.new(type => "L", meta => ["99-problems/P06-topo.html"], config => {}, contents => ["P06-topo.pl"]), "P06 - Find out whether a list is a palindrome.", "Ryan Connelly"],
                                      [Pod::FormattingCode.new(type => "L", meta => ["99-problems/P07-eric256.html"], config => {}, contents => ["P07-eric256.pl"]), "P07 - Flatten a nested array structure.", "Eric Hodges"],
                                      [Pod::FormattingCode.new(type => "L", meta => ["99-problems/P07-topo.html"], config => {}, contents => ["P07-topo.pl"]), "P07 - Flatten a nested array structure.", "Orginally Ryan Connelly"],
                                      [Pod::FormattingCode.new(type => "L", meta => ["99-problems/P07-viklund.html"], config => {}, contents => ["P07-viklund.pl"]), "P07 - Flatten a nested array structure.", "Johan Viklund"],
                                      [Pod::FormattingCode.new(type => "L", meta => ["99-problems/P08-eric256.html"], config => {}, contents => ["P08-eric256.pl"]), "P08 - Eliminate consecutive duplicates of list elements.", "Eric Hodges"],
                                      [Pod::FormattingCode.new(type => "L", meta => ["99-problems/P08-topo.html"], config => {}, contents => ["P08-topo.pl"]), "P08 - Eliminate consecutive duplicates of list elements.", "Ryan Connelly"],
                                      [Pod::FormattingCode.new(type => "L", meta => ["99-problems/P08-viklund.html"], config => {}, contents => ["P08-viklund.pl"]), "P08 - Eliminate consecutive duplicates of list elements.", "Johan Viklund"],
                                      [Pod::FormattingCode.new(type => "L", meta => ["99-problems/P09-rje.html"], config => {}, contents => ["P09-rje.pl"]), "P09 - Pack consecutive duplicates of list elements into sublists.", "Rob Eaglestone"],
                                      [Pod::FormattingCode.new(type => "L", meta => ["99-problems/P09-scottp.html"], config => {}, contents => ["P09-scottp.pl"]), "P09 - Pack consecutive duplicates of list elements into sublists.", "Scott Penrose"],
                                      [Pod::FormattingCode.new(type => "L", meta => ["99-problems/P09-topo.html"], config => {}, contents => ["P09-topo.pl"]), "P09 - Pack consecutive duplicate elements of a list into sublists.", "Ryan Connelly"],
                                      [Pod::FormattingCode.new(type => "L", meta => ["99-problems/P09-unobe.html"], config => {}, contents => ["P09-unobe.pl"]), "P09 - Pack consecutive duplicates of list elements into sublists.", "David Romano"],
                                      [Pod::FormattingCode.new(type => "L", meta => ["99-problems/P10-scottp.html"], config => {}, contents => ["P10-scottp.pl"]), "P10 - Run-length encoding of a list.", "Scott Penrose"],
                                      [Pod::FormattingCode.new(type => "L", meta => ["99-problems/P10-topo.html"], config => {}, contents => ["P10-topo.pl"]), "P10 - Run-length encoding of a list.", "Ryan Connelly"],
                                      [Pod::FormattingCode.new(type => "L", meta => ["99-problems/P10-unobe.html"], config => {}, contents => ["P10-unobe.pl"]), "P10 - Run-length encoding of a list.", "David Romano"],
                                      [Pod::FormattingCode.new(type => "L", meta => ["99-problems/P11-topo.html"], config => {}, contents => ["P11-topo.pl"]), "P11 - Modified run-length encoding.", "Ryan Connelly"],
                                      [Pod::FormattingCode.new(type => "L", meta => ["99-problems/P11-unobe.html"], config => {}, contents => ["P11-unobe.pl"]), "P11 - Modified run-length encoding.", "David Romano"],
                                      [Pod::FormattingCode.new(type => "L", meta => ["99-problems/P12-rhebus.html"], config => {}, contents => ["P12-rhebus.pl"]), "P12 - Decode a run-length encoded list.", "Philip Potter"],
                                      [Pod::FormattingCode.new(type => "L", meta => ["99-problems/P12-topo.html"], config => {}, contents => ["P12-topo.pl"]), "P12 - Decode modified run-length encoding.", "Ryan Connelly"],
                                      [Pod::FormattingCode.new(type => "L", meta => ["99-problems/P12-unobe.html"], config => {}, contents => ["P12-unobe.pl"]), "P12 - Decode a run-length encoded list.", "David Romano"],
                                      [Pod::FormattingCode.new(type => "L", meta => ["99-problems/P13-rhebus.html"], config => {}, contents => ["P13-rhebus.pl"]), "P13 - Run-length encoding of a list (direct solution).", "Philip Potter"],
                                      [Pod::FormattingCode.new(type => "L", meta => ["99-problems/P13-topo.html"], config => {}, contents => ["P13-topo.pl"]), "P13 - Direct run-length encoding.", "Ryan Connelly"],
                                      [Pod::FormattingCode.new(type => "L", meta => ["99-problems/P13-viklund.html"], config => {}, contents => ["P13-viklund.pl"]), "P13 - Run-length encoding of a list (direct solution).", "Johan Viklund"],
                                      [Pod::FormattingCode.new(type => "L", meta => ["99-problems/P14-scottp.html"], config => {}, contents => ["P14-scottp.pl"]), "P14 - Duplicate the elements of a list.", "Scott Penrose"],
                                      [Pod::FormattingCode.new(type => "L", meta => ["99-problems/P14-topo.html"], config => {}, contents => ["P14-topo.pl"]), "P14 - Duplicate the elements in a list.", "Ryan Connelly"],
                                      [Pod::FormattingCode.new(type => "L", meta => ["99-problems/P14-viklund.html"], config => {}, contents => ["P14-viklund.pl"]), "P14 - Duplicate the elements of a list.", "Johan Viklund"],
                                      [Pod::FormattingCode.new(type => "L", meta => ["99-problems/P15-rhebus.html"], config => {}, contents => ["P15-rhebus.pl"]), "P15 - Replicate the elements of a list a given number of times.", "Philip Potter"],
                                      [Pod::FormattingCode.new(type => "L", meta => ["99-problems/P15-topo.html"], config => {}, contents => ["P15-topo.pl"]), "P15 - Replicate the elements of a list a given number of times.", "Ryan Connelly"],
                                      [Pod::FormattingCode.new(type => "L", meta => ["99-problems/P15-unobe.html"], config => {}, contents => ["P15-unobe.pl"]), "P15 - Replicate the elements of a list a given number of times.", "David Romano"],
                                      [Pod::FormattingCode.new(type => "L", meta => ["99-problems/P16-edpratomo.html"], config => {}, contents => ["P16-edpratomo.pl"]), "P16 (**) Drop every N'th element from a list.", "Edwin Pratomo"],
                                      [Pod::FormattingCode.new(type => "L", meta => ["99-problems/P16-topo.html"], config => {}, contents => ["P16-topo.pl"]), "P16 - Drop every ", "Ryan Connelly"],
                                      [Pod::FormattingCode.new(type => "L", meta => ["99-problems/P17-topo.html"], config => {}, contents => ["P17-topo.pl"]), "P17 - Split a list into two parts; the length of the first part is given.", "Ryan Connelly"],
                                      [Pod::FormattingCode.new(type => "L", meta => ["99-problems/P17-unobe.html"], config => {}, contents => ["P17-unobe.pl"]), "P17 - Split a list into two parts; the length of the first part is given.", "David Romano"],
                                      [Pod::FormattingCode.new(type => "L", meta => ["99-problems/P18-topo.html"], config => {}, contents => ["P18-topo.pl"]), "P18 - Extract a slice from a list. Indices start at 1.", "Ryan Connelly"],
                                      [Pod::FormattingCode.new(type => "L", meta => ["99-problems/P19-topo.html"], config => {}, contents => ["P19-topo.pl"]), "P19 - Rotate a list ", "Ryan Connelly"],
                                      [Pod::FormattingCode.new(type => "L", meta => ["99-problems/P20-rhebus.html"], config => {}, contents => ["P20-rhebus.pl"]), "P20 - Remove the K'th element from a list.", "Philip Potter"],
                                      [Pod::FormattingCode.new(type => "L", meta => ["99-problems/P20-topo.html"], config => {}, contents => ["P20-topo.pl"]), "P20 - Remove the ", "Ryan Connelly"],
                                      [Pod::FormattingCode.new(type => "L", meta => ["99-problems/P21-scottp.html"], config => {}, contents => ["P21-scottp.pl"]), "P21 - Insert an element at a given position into an array.", "Scott Penrose"],
                                      [Pod::FormattingCode.new(type => "L", meta => ["99-problems/P21-topo.html"], config => {}, contents => ["P21-topo.pl"]), "P21 - Insert an element at a given position into a list.", "Ryan Connelly"],
                                      [Pod::FormattingCode.new(type => "L", meta => ["99-problems/P22-scottp.html"], config => {}, contents => ["P22-scottp.pl"]), "P22 - Create a list containing all integers within a given range.", "Scott Penrose"],
                                      [Pod::FormattingCode.new(type => "L", meta => ["99-problems/P22-topo.html"], config => {}, contents => ["P22-topo.pl"]), "P22 - Create a list containing all integers within a given range.", "Ryan Connelly"],
                                      [Pod::FormattingCode.new(type => "L", meta => ["99-problems/P23-topo.html"], config => {}, contents => ["P23-topo.pl"]), "P23 - Extract a given number of randomly selected elements from a list.", "Ryan Connelly"],
                                      [Pod::FormattingCode.new(type => "L", meta => ["99-problems/P24-topo.html"], config => {}, contents => ["P24-topo.pl"]), "P24 - Draw ", "Ryan Connelly"],
                                      [Pod::FormattingCode.new(type => "L", meta => ["99-problems/P25-topo.html"], config => {}, contents => ["P25-topo.pl"]), "P25 - Generate a random permutation of the elements of a list.", "Ryan Connelly"],
                                      [Pod::FormattingCode.new(type => "L", meta => ["99-problems/P26-topo.html"], config => {}, contents => ["P26-topo.pl"]), "P26 - Generate the combinations of ", "Ryan Connelly"],
                                      [Pod::FormattingCode.new(type => "L", meta => ["99-problems/P31-rhebus.html"], config => {}, contents => ["P31-rhebus.pl"]), "P31 - Determine whether a given integer number is prime.", "Philip Potter"],
                                      [Pod::FormattingCode.new(type => "L", meta => ["99-problems/P32-rhebus.html"], config => {}, contents => ["P32-rhebus.pl"]), "P32 - Determine the greatest common divisor of two positive integer", "Philip Potter"],
                                      [Pod::FormattingCode.new(type => "L", meta => ["99-problems/P33-rhebus.html"], config => {}, contents => ["P33-rhebus.pl"]), "P33 - Determine whether two positive integer numbers are coprime.", "Philip Potter"],
                                      [Pod::FormattingCode.new(type => "L", meta => ["99-problems/P34-rhebus.html"], config => {}, contents => ["P34-rhebus.pl"]), "P34 - Calculate Euler's totient function phi(m).", "Philip Potter"],
                                      [Pod::FormattingCode.new(type => "L", meta => ["99-problems/P35-rhebus.html"], config => {}, contents => ["P35-rhebus.pl"]), "P35 - Determine the prime factors of a given positive integer.", "Philip Potter"],
                                      [Pod::FormattingCode.new(type => "L", meta => ["99-problems/P36-ovid.html"], config => {}, contents => ["P36-ovid.pl"]), "P36 - Determine the prime factors of a given positive integer (2).", "Curtis Poe"],
                                      [Pod::FormattingCode.new(type => "L", meta => ["99-problems/P36-rhebus.html"], config => {}, contents => ["P36-rhebus.pl"]), "P36 - Determine the prime factors of a given positive integer (2).", "Philip Potter"],
                                      [Pod::FormattingCode.new(type => "L", meta => ["99-problems/P37-rhebus.html"], config => {}, contents => ["P37-rhebus.pl"]), "P37 - Calculate Euler's totient function phi(m) (improved).", "Philip Potter"],
                                      [Pod::FormattingCode.new(type => "L", meta => ["99-problems/P39-rhebus.html"], config => {}, contents => ["P39-rhebus.pl"]), "P39 - A list of prime numbers.", "Curtis \"Ovid\" Poe"],
                                      [Pod::FormattingCode.new(type => "L", meta => ["99-problems/P40-rhebus.html"], config => {}, contents => ["P40-rhebus.pl"]), "P40 - Goldbach's conjecture.", "Philip Potter"],
                                      [Pod::FormattingCode.new(type => "L", meta => ["99-problems/P41-rhebus.html"], config => {}, contents => ["P41-rhebus.pl"]), "P41 - A list of Goldbach compositions.", "Philip Potter"],
                                      [Pod::FormattingCode.new(type => "L", meta => ["99-problems/P91-edpratomo.html"], config => {}, contents => ["P91-edpratomo.pl"]), "P91 - Knight's tour.", "Edwin Pratomo"]
                                     ]),
                 )
             ]
),
andinus commented 3 months ago

Also tested with newer Rakudo, fails with same error:

Welcome to Rakudo™ v2024.01.                                                                                                                                                                 
Implementing the Raku® Programming Language v6.d.                                                                                                                                            
Built on MoarVM version 2024.01. 
coke commented 3 months ago

raku/examples is still using 'htmlify.p6', which was replaced in raku/doc but never touched here. We should probably update examples to use the same mechanism used by raku/doc (see raku/doc-website), but perhaps we can bugfix the script short term.