X-Git-Url: http://www.git.stargrave.org/?p=public-inbox.git;a=blobdiff_plain;f=HACKING;h=859745ef3151c642c22623b6ce31327f3f563e67;hp=2bf549fe2d97517a209ba8379fafc2ad70341eb1;hb=0acad050fe38033baedfed83f5976aeabebf3287;hpb=65323f060a3db731bb9fafa004336eeb4bbb8f00 diff --git a/HACKING b/HACKING index 2bf549fe..859745ef 100644 --- a/HACKING +++ b/HACKING @@ -40,7 +40,13 @@ the shiny new. Avoid relying on compiled modules too much. Even if it is Free, compiled code makes packages more expensive to audit, build, distribute and verify. public-inbox itself will only be implemented -in scripting languages (currently Perl 5). +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. @@ -50,7 +56,10 @@ requirements. See design_www.txt and design_notes.txt in the Documentation/ directory for design decisions made during development. -For now, one may optionally subscribe to the mailing list by -sending an email to: meta+subscribe@public-inbox.org -(and confirming). However, reading over the mailing list is -the least reliable method of reading a public-inbox. +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.