git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [RFC] gitweb wishlist and TODO list

From
Jakub Narebski <jnareb@gmail.com>
Date
Jun 20, 2006, 20:59 UTC
Message-ID
<e79njs$hue$1@sea.gmane.org>
In-Reply-To
<20060620201035.GT2609@pasky.or.cz>
Petr Baudis wrote:
> Dear diary, on Tue, Jun 20, 2006 at 06:51:18PM CEST, I got a letter
> where Jakub Narebski <jnareb@gmail.com> said that...
Show 5 quoted lines
>> * Refactor dispatch from if...elsif...else construction 
>>   to using 'name' => \&sub hash.
> 
> In other words, you say the result of the IRC discussion we had about
> symbol lookups and evals turned out really scary? ;-)

First, we need arrays (ordering!) of sets of possible actions for navbar, so we will have list of all possible actions.

Besides, simple test
        [...]
        sub dispatch {
          dispatch_ifelse(@_);
          #dispatch_hash(@_);
          #dispatch_callname(@_);
          #dispatch_anonsub(@_);
        }
        
        sub test_dispatch_all {
          dispatch(undef);
        
          dispatch("summary");
          [...]
          dispatch("tag");
                
          dispatch("unknown");
          dispatch("tag();injected();");
        }
        
        test_dispatch_all() foreach (1..10000);
run with '$ time ./test.pl > /dev/null' has shown that (suprise, suprise!)
that hash is fastest, then if...elsif...else variant, then 
  my $sub = \&{"git_$action"}; eval { &$sub() };
and last, much much worse is eval "..." version.
Of course test leaves something to be desired...
-- 
Jakub Narebski
Warsaw, Poland
ShadeHawk on #git
Previous: Petr BaudisNext: Petr Baudis
Message 25 of 35 in “[RFC] gitweb wishlist and TODO list”
  1. Jakub NarebskiJun 20, 2006
  2. Carl WorthJun 20, 2006
  3. Jakub NarebskiJun 20, 2006
  4. Petr BaudisJun 20, 2006
  5. Jakub NarebskiJun 20, 2006
  6. Petr BaudisJun 20, 2006
  7. Jakub NarebskiJun 21, 2006
  8. Martin LanghoffJun 20, 2006
  9. Jakub NarebskiJun 20, 2006
  10. Martin LanghoffJun 20, 2006
  11. Paul MackerrasJul 1, 2006
  12. Dennis StosbergJun 21, 2006
  13. 1/3 gitweb: Declare global variables with "our"Dennis Stosberg, Jun 21, 2006
  14. 2/3 Add a parameter to specify the repository pathDennis Stosberg, Jun 21, 2006
  15. 3/3 gitweb: Use --git-dir parameter instead of setting $ENV{'GIT_DIR'}Dennis Stosberg, Jun 21, 2006
  16. Timo HirvonenJun 21, 2006
  17. Jakub NarebskiJun 21, 2006
  18. Jakub NarebskiJun 21, 2006
  19. Dennis StosbergJun 22, 2006
  20. Ryan AndersonJun 22, 2006
  21. Ryan AndersonJun 21, 2006
  22. Jakub NarebskiJun 21, 2006
  23. Junio C HamanoJun 20, 2006
  24. Petr BaudisJun 20, 2006
  25. Jakub NarebskiJun 20, 2006
  26. Petr BaudisJun 20, 2006
  27. Thomas GlanzmannJun 20, 2006
  28. Josef WeidendorferJun 21, 2006
  29. Jakub NarebskiJun 21, 2006
  30. Josef WeidendorferJun 21, 2006
  31. Jakub NarebskiJun 21, 2006
  32. Jakub NarebskiJun 22, 2006
  33. Junio C HamanoJun 22, 2006
  34. Jakub NarebskiJun 21, 2006
  35. Josef WeidendorferJun 21, 2006

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.