X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=HACKING;h=859745ef3151c642c22623b6ce31327f3f563e67;hb=4821798351defce82c102e46d6f5f84f0cdc0e34;hp=f7cb92e96948b552bb360971c380e3ccb38ff371;hpb=b1759e873fcd861e76be4b702119e70af267c9f4;p=public-inbox.git diff --git a/HACKING b/HACKING index f7cb92e9..859745ef 100644 --- a/HACKING +++ b/HACKING @@ -43,6 +43,11 @@ distribute and verify. public-inbox itself will only be implemented in scripting languages (currently Perl 5) and optional JIT-compiled C (via Inline::C) +Do not recurse on user-supplied data. Neither Perl or C handle +deep recursion gracefully. See lib/PublicInbox/SearchThread.pm +and lib/PublicInbox/MsgIter.pm for examples of non-recursive +alternatives to previously-recursive algorithms. + Performance should be reasonably good for server administrators, too, and we will sacrifice features to achieve predictable performance. Encouraging folks to self-host will be easier with lower hardware @@ -50,3 +55,11 @@ requirements. See design_www.txt and design_notes.txt in the Documentation/ directory for design decisions made during development. + +Perl notes +---------- + +* \w, \s, \d character classes all match Unicode characters; + so write out class ranges (e.g "[0-9]") if you only intend to + match ASCII. Do not use the "/a" (ASCII) modifier, that requires + Perl 5.14 and we're only depending on 5.10.1 at the moment.