X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=HACKING;h=fbcfb552eb63da5478e5bad9aa5620404ad8f034;hb=92591ada8897d7aa523cf3b7412784b17eeb1771;hp=5e02302c64c0941516a3a720a7f414fc232bb4d3;hpb=d87053bf6cae0258125e84e1531d5f1206c53288;p=public-inbox.git diff --git a/HACKING b/HACKING index 5e02302c..fbcfb552 100644 --- a/HACKING +++ b/HACKING @@ -40,8 +40,8 @@ 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) and optional JIT-compiled C -(via Inline::C) +in scripting languages (currently Perl 5) and optional +Just-Ahead-of-Time-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 @@ -56,6 +56,27 @@ requirements. See design_www.txt and design_notes.txt in the Documentation/ directory for design decisions made during development. +See Documentation/technical/ in the source tree for more details +on specific topics, in particular data_structures.txt + +Faster tests +------------ + +The `make test' target provided by MakeMaker does not run in +parallel. Our `make check' target supports parallel runs, and +it also creates a `.prove' file to optimize `make check-run'. + +The prove(1) command (distributed with Perl) may also be used +for finer-grained testing: prove -bvw t/foo.t + +If using a make(1) (e.g. GNU make) with `include' support, the +`config.mak' Makefile snippet can be used to set environment +variables such as PERL_INLINE_DIRECTORY and TMPDIR. + +With PERL_INLINE_DIRECTORY set to enable Inline::C support and +TMPDIR pointed to a tmpfs(5) mount, `make check-run' takes 6-10s +(load-dependent) on a busy workstation built in 2010. + Perl notes ----------