]> Sergey Matveev's repositories - public-inbox.git/blobdiff - HACKING
init: use Import::run_die instead of system()
[public-inbox.git] / HACKING
diff --git a/HACKING b/HACKING
index f7cb92e96948b552bb360971c380e3ccb38ff371..859745ef3151c642c22623b6ce31327f3f563e67 100644 (file)
--- 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.