Joey Hess [Fri, 9 Oct 2009 21:15:40 +0000 (17:15 -0400)]
add_depends: optimise influence calculation
I made match_* functions whose influences can vary depending on the page
matched set a special "" influence to indicate this.
Then add_depends can try just one page, and if static influences are found,
stop there.
Joey Hess [Fri, 9 Oct 2009 18:51:02 +0000 (14:51 -0400)]
revert
Joey Hess [Fri, 9 Oct 2009 18:27:11 +0000 (14:27 -0400)]
rework influence calculation
Thought of a cleaner way to accumulate all influences in
pagespec_match_list, using the pagespec_match result object as an
accumulator.
(This also accumulates all influences from failed matches, rather than just
one failed match. I'm not sure if the old method was correct.)
Joey Hess [Fri, 9 Oct 2009 18:05:22 +0000 (14:05 -0400)]
move influence tests to pagespec_match_list.t
Joey Hess [Fri, 9 Oct 2009 17:37:06 +0000 (13:37 -0400)]
img: use presence dependency when linking to a page
Joey Hess [Fri, 9 Oct 2009 17:35:11 +0000 (13:35 -0400)]
brokenlinks: use pagespec_match_list
Joey Hess [Fri, 9 Oct 2009 17:33:49 +0000 (13:33 -0400)]
fix link
Joey Hess [Fri, 9 Oct 2009 17:28:41 +0000 (13:28 -0400)]
fix pagespec_match_list handling of list parameter
Joey Hess [Fri, 9 Oct 2009 17:20:41 +0000 (13:20 -0400)]
pagespec_match_list: change limit to filter
Joey Hess [Fri, 9 Oct 2009 17:07:50 +0000 (13:07 -0400)]
conditional: use pagespec_match_list
Joey Hess [Fri, 9 Oct 2009 17:02:10 +0000 (13:02 -0400)]
pagespec_match_list allow additional pagespec limit parameters again
Joey Hess [Fri, 9 Oct 2009 17:02:03 +0000 (13:02 -0400)]
indentation
Joey Hess [Fri, 9 Oct 2009 16:54:13 +0000 (12:54 -0400)]
conditional: use yesno
Joey Hess [Fri, 9 Oct 2009 16:48:16 +0000 (12:48 -0400)]
progress: switch to new pagespec_match_list
Joey Hess [Fri, 9 Oct 2009 16:35:41 +0000 (12:35 -0400)]
linkmap: Use new pagespec_match_list
Joey Hess [Fri, 9 Oct 2009 04:06:58 +0000 (00:06 -0400)]
fix test to use new calling convention
This test still fails several cases, since add_depends influence testing is
currently commented out.
Joey Hess [Fri, 9 Oct 2009 04:06:40 +0000 (00:06 -0400)]
add pagespec/sorting to underlay
Joey Hess [Fri, 9 Oct 2009 04:06:08 +0000 (00:06 -0400)]
don't link to inline, not available when directives underlay is not enabled
Joey Hess [Fri, 9 Oct 2009 03:55:50 +0000 (23:55 -0400)]
typo
Joey Hess [Fri, 9 Oct 2009 03:51:06 +0000 (23:51 -0400)]
rename use_pagespec to pagespec_match_list
To avoid breaking plugins, also support the old pagespec_match_list
calling convention, with a deprecation warning.
Joey Hess [Fri, 9 Oct 2009 03:48:08 +0000 (23:48 -0400)]
fix test broken by change to failing link() influence
Joey Hess [Fri, 9 Oct 2009 03:24:03 +0000 (23:24 -0400)]
calendar: rework so it can use use_pagespec
This was tricky because of the caching, and because use_pagespec always
adds a dependency. That would have made year calendars depend on the whole
pagespec, which is overly broad. So I removed the caching, format_month,
and in format_year just look at %pagesources to see if month pages are
available.
In format_month, I make it always call use_pagespec, so each month calendar
gets the right dependency and any influcences added. This means a bit more
work, but the added work is fairly minimal, and presence dependencies
remove a *lot* of work it used to do.
(100% untested!)
Joey Hess [Fri, 9 Oct 2009 02:56:36 +0000 (22:56 -0400)]
postsparkline: switch to use_pagespec
Also, fixed up the dependency type for time=mtime. That has
to remain a content dependency, sadly.
Joey Hess [Fri, 9 Oct 2009 02:56:12 +0000 (22:56 -0400)]
orphans: switch to use_pagespec
Joey Hess [Fri, 9 Oct 2009 00:54:06 +0000 (20:54 -0400)]
fix feedpages dependency
This dependency was missing before switching to use_pagespec.
It is correct to add it, but it needs to be combined with the regular
"pages" dependency to ensure that it does not match extra pages.
(Also fixed its dependency type.)
Joey Hess [Fri, 9 Oct 2009 00:33:58 +0000 (20:33 -0400)]
Merge branch 'master' into dependency-types
Conflicts:
IkiWiki.pm
IkiWiki/Render.pm
debian/changelog
Joey Hess [Thu, 8 Oct 2009 23:27:25 +0000 (19:27 -0400)]
pagestate: switch to use_pagespec
Joey Hess [Fri, 9 Oct 2009 00:27:56 +0000 (20:27 -0400)]
Optimize away most expensive file prune calls, when refreshing
Benchmarking refresh of a a wiki with 25 thousand pages showed
file_pruned() using most of the time. But, when refreshing, ikiwiki already
knows about nearly all the files. So we can skip calling file_pruned() for
those it knows about. While tricky to do, this sped up a refresh (that
otherwise does no work) by 10-50%.
Joey Hess [Thu, 8 Oct 2009 22:47:48 +0000 (18:47 -0400)]
use_pagespec: do not fail with error when unable to match, unless it fails
with an ErrorReason
Joey Hess [Thu, 8 Oct 2009 22:41:08 +0000 (18:41 -0400)]
pagecount: switched to use_pagespec
Joey Hess [Thu, 8 Oct 2009 22:26:36 +0000 (18:26 -0400)]
inline: switch to use_pagespec
Taking advantage of every single one of its features, of course.
Even had to add one more..
Joey Hess [Thu, 8 Oct 2009 22:17:36 +0000 (18:17 -0400)]
add sorting page
Joey Hess [Thu, 8 Oct 2009 22:00:10 +0000 (18:00 -0400)]
update
Joey Hess [Thu, 8 Oct 2009 21:52:20 +0000 (17:52 -0400)]
map: switch to use_pagespec
Joey Hess [Thu, 8 Oct 2009 20:49:53 +0000 (16:49 -0400)]
add use_pagespec and deptype functions
Joey Hess [Thu, 8 Oct 2009 20:49:03 +0000 (16:49 -0400)]
change how dependency types are specified to add_depends
Also, this fixes 2 bugs in dependency info.
Joey Hess [Thu, 8 Oct 2009 19:33:47 +0000 (15:33 -0400)]
found a way to get false positive influences
Joey Hess [Thu, 8 Oct 2009 17:56:54 +0000 (13:56 -0400)]
Merge branch 'master' of ssh://git.ikiwiki.info/srv/git/ikiwiki.info
Joey Hess [Thu, 8 Oct 2009 17:54:51 +0000 (13:54 -0400)]
update
Joey Hess [Thu, 8 Oct 2009 17:38:46 +0000 (13:38 -0400)]
fix handling of influences of pagespecs that fail to match
If a pagespec fails to match, I had been throwing the influences away, but
that is not right. Consider `backlink(foo)`, where foo does not exist.
It still needs to be added as an influence, because if it is created, it
will influence the pagespec to match.
But with that fix, `link(bar)` had as influences all pages, whether they
link to bar or not. Which is not necessary, because modifiying a page to
add a link to bar will directly cause the pagespec to match.
So, in match_link (and all the match_* functions for page metadata),
only return an influence if the match succeeds.
match_backlink had been implemented as the inverse of match_link, but that
is no longer completly true. While match_link does not return an influence
on failure, match_backlink does.
match_created_before/after also return the influence on failure, this way
if created_after(foo) currently fails because foo does not exist, it will
still update the page with the pagespec if foo is created.
http://shoorick.livejournal.com/ [Thu, 8 Oct 2009 17:07:41 +0000 (13:07 -0400)]
http://www.larted.org.uk/~dom/ [Thu, 8 Oct 2009 15:38:34 +0000 (11:38 -0400)]
add cpanrt
http://www.cse.unsw.edu.au/~willu/ [Thu, 8 Oct 2009 11:26:01 +0000 (07:26 -0400)]
Tweaks
http://smcv.pseudorandom.co.uk/ [Thu, 8 Oct 2009 10:38:40 +0000 (06:38 -0400)]
Joey Hess [Thu, 8 Oct 2009 08:06:53 +0000 (04:06 -0400)]
update
http://www.cse.unsw.edu.au/~willu/ [Thu, 8 Oct 2009 05:33:23 +0000 (01:33 -0400)]
Questions...
Joey Hess [Thu, 8 Oct 2009 02:08:19 +0000 (22:08 -0400)]
bugfix
Joey Hess [Thu, 8 Oct 2009 01:57:31 +0000 (21:57 -0400)]
remove explicit addition of dependencies for displayed pages
that hack is not needed, thanks to pagespec influences calculation
Joey Hess [Thu, 8 Oct 2009 01:48:03 +0000 (21:48 -0400)]
add type info to influence information
Joey Hess [Thu, 8 Oct 2009 01:26:57 +0000 (21:26 -0400)]
Merge branch 'master' into dependency-types
Joey Hess [Thu, 8 Oct 2009 01:26:50 +0000 (21:26 -0400)]
update
Joey Hess [Thu, 8 Oct 2009 01:13:10 +0000 (21:13 -0400)]
convert add_depends to use influences
No more horrible special-case pagespec parsing.
OTOH, matching over all pages to determine influences is a lot of work.
Joey Hess [Thu, 8 Oct 2009 00:36:25 +0000 (20:36 -0400)]
influences calculation implemented
Joey Hess [Thu, 8 Oct 2009 00:35:26 +0000 (20:35 -0400)]
more influences tests
Joey Hess [Thu, 8 Oct 2009 00:31:13 +0000 (20:31 -0400)]
add influence info to match_*
Also update docs, test suite.
Joey Hess [Thu, 8 Oct 2009 00:02:43 +0000 (20:02 -0400)]
Merge branch 'master' into dependency-types
Joey Hess [Wed, 7 Oct 2009 23:40:44 +0000 (19:40 -0400)]
make success and failreason objects carry an influences hash
The hash will be used used to record a set of pages that influenced the
result of a pagespec match.
The influences are merged together when boolean and/or are encountered
in a pagespec. That means using a non-short-circuiting OR operator. And
so I use & and | when translating pagespecs, since those bitwise operators
can be overloaded. ("and" and "or" cannot, apparently).
Joey Hess [Wed, 7 Oct 2009 22:06:49 +0000 (18:06 -0400)]
mention that pagespec_match returns an overloaded value
Joey Hess [Wed, 7 Oct 2009 22:04:52 +0000 (18:04 -0400)]
Merge branch 'master' into dependency-types
Joey Hess [Wed, 7 Oct 2009 22:04:13 +0000 (18:04 -0400)]
a theory of pagespec influence lists, for Will's perusal
Jogo [Wed, 7 Oct 2009 19:22:32 +0000 (15:22 -0400)]
Joey Hess [Wed, 7 Oct 2009 18:30:19 +0000 (14:30 -0400)]
close
Joey Hess [Wed, 7 Oct 2009 18:26:45 +0000 (14:26 -0400)]
Merge branch 'master' of ssh://git.ikiwiki.info/srv/git/ikiwiki.info
Joey Hess [Wed, 7 Oct 2009 18:25:45 +0000 (14:25 -0400)]
problem with explicit, presence dependencies
Joey Hess [Wed, 7 Oct 2009 18:11:35 +0000 (14:11 -0400)]
remove test case for closed bug
Joey Hess [Wed, 7 Oct 2009 18:08:03 +0000 (14:08 -0400)]
fix backlink new change detection code
Joey Hess [Wed, 7 Oct 2009 17:55:02 +0000 (13:55 -0400)]
limit to discussion pages of blog posts, not whole wiki
Thomas Schwinge [Wed, 7 Oct 2009 17:54:46 +0000 (19:54 +0200)]
Make it obvious for the reader of the rendered page that the debbug shortcut links to Debian bug reports.
Thomas Schwinge [Wed, 7 Oct 2009 17:53:28 +0000 (19:53 +0200)]
Use %S instead of %s for the debbug shortcut, so that things like [[!debbug 522689#38]] work as expected.
Joey Hess [Wed, 7 Oct 2009 17:36:40 +0000 (13:36 -0400)]
Merge branch 'master' into dependency-types
Joey Hess [Wed, 7 Oct 2009 17:35:48 +0000 (13:35 -0400)]
thoughts
Joey Hess [Wed, 7 Oct 2009 17:00:54 +0000 (13:00 -0400)]
Merge branch 'master' into dependency-types
http://www.cse.unsw.edu.au/~willu/ [Wed, 7 Oct 2009 06:40:32 +0000 (02:40 -0400)]
Comments (maybe not so helpful - sorry)
Joey Hess [Wed, 7 Oct 2009 00:20:45 +0000 (20:20 -0400)]
Merge branch 'master' into dependency-types
Conflicts:
doc/todo/dependency_types.mdwn
Joey Hess [Wed, 7 Oct 2009 00:20:05 +0000 (20:20 -0400)]
update
Joey Hess [Wed, 7 Oct 2009 00:19:17 +0000 (20:19 -0400)]
notes on removal problem
Joey Hess [Tue, 6 Oct 2009 23:29:28 +0000 (19:29 -0400)]
linkmap, pagestats: avoid using %links to get a list of pages
When a page is deleted, it is removed from %pagesources, but
not from %links. So use the former.
Joey Hess [Tue, 6 Oct 2009 23:24:17 +0000 (19:24 -0400)]
linkmap: does need presence deps
Otherwise, removal of a page with no links will not be noticed,
since no links will change.
Joey Hess [Tue, 6 Oct 2009 23:07:52 +0000 (19:07 -0400)]
add_depends should default to content dependencies if unknown type specified
Joey Hess [Tue, 6 Oct 2009 23:03:23 +0000 (19:03 -0400)]
oops!!
Joey Hess [Tue, 6 Oct 2009 22:45:22 +0000 (18:45 -0400)]
typo
Joey Hess [Tue, 6 Oct 2009 22:44:59 +0000 (18:44 -0400)]
support backlink() in pagespecs for links dependencies
Joey Hess [Tue, 6 Oct 2009 22:44:34 +0000 (18:44 -0400)]
update to test backlinks() pagespecs
Joey Hess [Tue, 6 Oct 2009 22:41:09 +0000 (18:41 -0400)]
presence dependencies not needed
Using just a link dependency is sufficient, since
Joey Hess [Tue, 6 Oct 2009 22:20:11 +0000 (18:20 -0400)]
pagespec for links dependencies
Joey Hess [Tue, 6 Oct 2009 22:09:46 +0000 (18:09 -0400)]
fix support of a single dependency that combines links and exists types
This is very common, and the code has to test each type differently, since
the list of candidates to test, as well as the test, will vary per type.
Much happier with this code now.
Joey Hess [Tue, 6 Oct 2009 21:47:10 +0000 (17:47 -0400)]
linkmap: Use a combination of presence and link dependencies.
This makes the map be regenerated much less frequently, so larger maps are
more practical to use now.
Joey Hess [Tue, 6 Oct 2009 08:45:57 +0000 (04:45 -0400)]
fix handling of links+content dependency
Such a dependency is unlikely, but can happen.
Joey Hess [Tue, 6 Oct 2009 06:00:34 +0000 (02:00 -0400)]
refactor 3
Only left one new global
Joey Hess [Tue, 6 Oct 2009 04:06:37 +0000 (00:06 -0400)]
refresh refactor 2
killed one global
Joey Hess [Tue, 6 Oct 2009 03:54:29 +0000 (23:54 -0400)]
split up refresh
I'd rather have the global variables than the 300 line function
Joey Hess [Tue, 6 Oct 2009 02:59:33 +0000 (22:59 -0400)]
new todo
Joey Hess [Tue, 6 Oct 2009 02:30:14 +0000 (22:30 -0400)]
update
Joey Hess [Tue, 6 Oct 2009 01:24:55 +0000 (21:24 -0400)]
new link change detection method and general code rework
This new method for determining when links on pages
have changed should be more efficient, since it avoids
double calculation of the bestlinks.
It also allows collecting data about the old links, before
the scan pass, so the data is accurate when pages move around
and bestlinks change.
Also got some code back to a saner indent level.
Joey Hess [Tue, 6 Oct 2009 00:54:38 +0000 (20:54 -0400)]
add among limit to pagestats
Joey Hess [Mon, 5 Oct 2009 21:44:15 +0000 (17:44 -0400)]
uh oh, this affects link deps
Joey Hess [Mon, 5 Oct 2009 21:15:37 +0000 (17:15 -0400)]
close
Joey Hess [Mon, 5 Oct 2009 21:12:38 +0000 (17:12 -0400)]
fixed a while ago
Joey Hess [Mon, 5 Oct 2009 21:11:08 +0000 (17:11 -0400)]
Merge branch 'master' into dependency-types
Joey Hess [Mon, 5 Oct 2009 21:11:03 +0000 (17:11 -0400)]
close