X-Git-Url: http://www.git.stargrave.org/?p=public-inbox.git;a=blobdiff_plain;f=HACKING;h=1070d3ff341fc6bc7f78e8a43078718f5e9a1094;hp=5e02302c64c0941516a3a720a7f414fc232bb4d3;hb=HEAD;hpb=d87053bf6cae0258125e84e1531d5f1206c53288 diff --git a/HACKING b/HACKING index 5e02302c..1070d3ff 100644 --- a/HACKING +++ b/HACKING @@ -4,7 +4,7 @@ hacking public-inbox Send all patches and "git request-pull"-formatted emails to our self-hosting inbox at meta@public-inbox.org It is archived at: https://public-inbox.org/meta/ -and http://hjrcffqmbrq6wope.onion/meta/ (using Tor) +and http://4uok3hntl7oi7b4uf4rtfwefqeexfzil2w6kgk2jn5z2f764irre7byd.onion/meta/ (using Tor) Contributions are email-driven, just like contributing to git itself or the Linux kernel; however anonymous and pseudonymous @@ -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,54 @@ 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 + +Optional packages for testing and development +--------------------------------------------- + +Optional packages testing and development: + +- Plack::Test deb: libplack-test-perl + pkg: p5-Plack + rpm: perl-Plack-Test + +- Plack::Test::ExternalServer deb: libplack-test-externalserver-perl + pkg: p5-Plack-Test-ExternalServer + +- Test::Simple deb: perl-modules-5.$MINOR + pkg: perl5 + rpm: perl-Test-Simple + +- XML::TreePP deb: libxml-treepp-perl + pkg: p5-XML-TreePP + rpm: perl-XML-TreePP + +Email::MIME is optional as of public-inbox v1.5.0 but still +used for maintainer comparison tests: + +* Email::MIME deb: libemail-mime-perl + pkg: p5-Email-MIME + rpm: perl-Email-MIME + +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 ----------