]> 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 2bf549fe2d97517a209ba8379fafc2ad70341eb1..859745ef3151c642c22623b6ce31327f3f563e67 100644 (file)
--- 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.