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

Re: [PATCHv7.1 3/4] gitweb: File based caching layer (from git.kernel.org)

From
Ddemerphq <demerphq@gmail.com>
Date
Nov 29, 2010, 23:26 UTC
Message-ID
<AANLkTim5V_50Er8OiNTWDHNzvqJ3J+biOwuqnBdnR4jH@mail.gmail.com>
In-Reply-To
<AANLkTinX9Phu+SuOyEWtAsMz182VkfVkJva1ep==V-zQ@mail.gmail.com>
On 30 November 2010 00:07, demerphq <demerphq@gmail.com> wrote:
Show 22 quoted lines
> 2010/11/13 Jakub Narebski <jnareb@gmail.com>:
>> -       binmode STDOUT, ':raw';
>> -       print <$fd>;
>> -       binmode STDOUT, ':utf8'; # as set at the beginning of gitweb.cgi
>> +       if ($caching_enabled) {
>> +               open BINOUT, '>', $fullhashbinpath or die_error(500, "Could not open bin dump file");
>> +       }else{
>> +               open BINOUT, '>', \$fullhashbinpath or die_error(500, "Could not open bin dump file");
>> +       }
>> +       binmode BINOUT, ':raw';
>> +       print BINOUT <$fd>;
>> +       binmode BINOUT, ':utf8'; # as set at the beginning of gitweb.cgi
>> +       close BINOUT;
>
> Why do you use dynamically scoped file handles here as opposed to
> lexically scoped ones?
>
> And why do you change the output discipline on BINOUT immediately
> before closing the file, and after you print data to it?
>
> Doing so sortof makes sense when the filedhandle is STDOUT, but not
> when it is BINOUT.
Also in this code:
2010/11/28 Jakub Narebski <jnareb@gmail.com>:
Show 8 quoted lines
> +#
> +# Includes
> +#
> +if (!exists $INC{'cache.pl'}) {
> +       my $return = do 'cache.pl';
> +       die $@ if $@;
> +       die "Couldn't read 'cache.pl': $!" if (!defined $return);
> +}
Why is that preferred to:
   require 'cache.pl';

And why is this thing even a .pl file? Why isnt it called lib/GitWeb/Cache.pm or something like that?

-- 
perl -Mre=debug -e "/just|another|perl|hacker/"
Previous: demerphqNext: Jakub Narebski
Message 34 of 43 in “Gitweb caching v7”
  1. 0/3 Gitweb caching v7John 'Warthog9' Hawley, Oct 28, 2010
  2. 1/3 gitweb: Add option to force version matchJohn 'Warthog9' Hawley, Oct 28, 2010
  3. Jakub NarebskiOct 28, 2010
  4. Junio C HamanoOct 28, 2010
  5. 2/3 gitweb: add output buffering and associated functionsJohn 'Warthog9' Hawley, Oct 28, 2010
  6. Jakub NarebskiOct 28, 2010
  7. 3/3 gitweb: File based caching layer (from git.kernel.org)John 'Warthog9' Hawley, Oct 28, 2010
  8. Jakub NarebskiOct 28, 2010
  9. Junio C HamanoOct 28, 2010
  10. Junio C HamanoOct 29, 2010
  11. Jakub NarebskiOct 30, 2010
  12. Junio C HamanoOct 31, 2010
  13. Jakub NarebskiOct 31, 2010
  14. 0/4 Gitweb caching v7.1Jakub Narebski, Nov 1, 2010
  15. 0/4 Gitweb caching v7.2Jakub Narebski, Nov 12, 2010
  16. 1/4 gitweb: Prepare for splitting gitwebJakub Narebski, Nov 12, 2010
  17. Junio C HamanoNov 17, 2010
  18. Jakub NarebskiNov 18, 2010
  19. 1/4 gitweb: Prepare for splitting gitwebJakub Narebski, Dec 2, 2010
  20. Junio C HamanoDec 2, 2010
  21. Jakub NarebskiDec 2, 2010
  22. Junio C HamanoDec 2, 2010
  23. Jakub NarebskiDec 2, 2010
  24. 2/4 gitweb: add output buffering and associated functionsJakub Narebski, Nov 12, 2010
  25. 3/4 gitweb: File based caching layer (from git.kernel.org)Jakub Narebski, Nov 12, 2010
  26. 3/4 gitweb: File based caching layer (from git.kernel.org)Jakub Narebski, Nov 28, 2010
  27. Jakub NarebskiNov 28, 2010
  28. Junio C HamanoNov 29, 2010
  29. Junio C HamanoNov 29, 2010
  30. 3/4 gitweb: File based caching layer (from git.kernel.org)Jakub Narebski, Nov 29, 2010
  31. Junio C HamanoNov 30, 2010
  32. Jakub NarebskiNov 30, 2010
  33. demerphqNov 29, 2010
  34. demerphqNov 29, 2010
  35. Jakub NarebskiNov 29, 2010
  36. 4/4 gitweb: Minimal testing of gitweb cachingJakub Narebski, Nov 13, 2010
  37. Junio C HamanoNov 17, 2010
  38. Jakub NarebskiNov 17, 2010
  39. 1/4 gitweb: Prepare for splitting gitwebJakub Narebski, Nov 1, 2010
  40. 1/4 gitweb: Prepare for splitting gitwebJakub Narebski, Nov 1, 2010
  41. 2/4 gitweb: add output buffering and associated functionsJakub Narebski, Nov 1, 2010
  42. 3/4 gitweb: File based caching layer (from git.kernel.org)Jakub Narebski, Nov 1, 2010
  43. 4/4 gitweb: Minimal testing of gitweb cachingJakub Narebski, Nov 1, 2010

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.