Commit graph

7 commits

Author SHA1 Message Date
vi 83c4cf1227 Supercompiled rule tries. 2018-06-30 19:06:31 -06:00
vi 00d2341394 Tighten some loops, change more interface.
This will save.. five comparisons.. occasionally? But it's a more
transparent design, and it seems more charitable to group interface
changes together.
2017-12-11 05:52:40 +01:00
vi c8fa18c5f4 rewrite(URL|Cookie) are now pure.
They have been pure since ed1933f, but now the types reflect that.

Breaking interface change.
2017-12-11 05:13:59 +01:00
vi ed1933f2c5 Remove the IO bottleneck.
Don't redundantly readIO/parse the rulesets; do this once, lazily
carrying out the involved operations. Rulesets are invariant over
executions.

This improves performance by a few orders of magnitude. Though at some
point we should substitute linear search for lookup on a generalised
suffix tree of rooted domains.

Breaking interface change, though I'll likely restore the old form
soon with IO TH.
2017-12-06 13:21:57 +01:00
vi e2d9556c6f Another example: CountUpgradeable.
Given a sequence of URIs on stdin, count the number we know how to
rewrite, together with the total number input. Coverage analysis?
2017-12-05 21:51:40 +01:00
vi c26afe01cf Don't admit package-wise parameterisation of rulesets.
As 'a6f28e07a1edc8f62f3dfaf7965b3a818c2f4a7f' showed, there may be
breaking changes in the structure of rulesets between releases. I
don't intend to verify that every pair in the product works (is there
reason to be interested in any other than the latest?), so let's not
acommodate any more than one.
2015-11-08 00:53:35 +08:00
vi 1b46c03817 Added an example program; a HTTP proxy server redirecting to HTTPS when possible. 2015-11-07 18:14:19 +08:00