X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=HACKING;h=fbcfb552eb63da5478e5bad9aa5620404ad8f034;hb=92591ada8897d7aa523cf3b7412784b17eeb1771;hp=cceb686f2e83e41e07b14beae70fd96fc60d745d;hpb=fcbf7f7cc38bd68b771608a64f9de724f1ff78c1;p=public-inbox.git diff --git a/HACKING b/HACKING index cceb686f..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 @@ -59,6 +59,24 @@ 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 ----------