]> Sergey Matveev's repositories - public-inbox.git/blobdiff - HACKING
t/*.t: localize $SIG{__WARN__} changes
[public-inbox.git] / HACKING
diff --git a/HACKING b/HACKING
index 2bf549fe2d97517a209ba8379fafc2ad70341eb1..cceb686f2e83e41e07b14beae70fd96fc60d745d 100644 (file)
--- a/HACKING
+++ b/HACKING
@@ -32,7 +32,7 @@ may be too difficult to upgrade due to resource demands.
 Only depend on Free Software packages which exist in the "main"
 section of Debian "stable" distribution.  That is Debian 9.x
 ("stretch") as of this writing, but "oldstable" (8.x, "jessie")
-remains supported for v1 repositories.
+remains supported for v1 inboxes.
 
 In general, we favor mature and well-tested old things rather than
 the shiny new.
@@ -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,13 @@ 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.
+See Documentation/technical/ in the source tree for more details
+on specific topics, in particular data_structures.txt
+
+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.