]>
git.ozlabs.org Git - ccan/log
Rusty Russell [Mon, 8 Nov 2010 11:35:42 +0000 (22:05 +1030)]
likely: switch from using ccan/hashtable to ccan/htable
Rusty Russell [Mon, 8 Nov 2010 11:30:04 +0000 (22:00 +1030)]
rbtree: new module from Ronnie.
Rusty Russell [Mon, 8 Nov 2010 11:27:41 +0000 (21:57 +1030)]
hashtable: replaced by htable.
Rusty Russell [Mon, 8 Nov 2010 10:14:06 +0000 (20:44 +1030)]
talloc: define TALLOC_CTX
I'm not a fan of the SHOUTING, but it's upstream.
Rusty Russell [Mon, 8 Nov 2010 09:59:17 +0000 (20:29 +1030)]
iscsi: add LICENCE link
Rusty Russell [Mon, 8 Nov 2010 09:54:47 +0000 (20:24 +1030)]
iscsi: ccanize a little more, add silly simple test case.
Rusty Russell [Mon, 8 Nov 2010 09:19:41 +0000 (19:49 +1030)]
iscsi: new module from Ronnie.
Rusty Russell [Mon, 8 Nov 2010 03:02:51 +0000 (13:32 +1030)]
htable: push capacity limit from 66 to 75%
With the extra bits, long runs don't hurt our cache very much on search,
so we can pack quite a few in. Here are the runs at maximal density before
and after:
Before:
$ ./speed
3145000
Initial insert: 248 ns
Details: hash size
4194304 , mask bits 9, perfect 63%
Initial lookup (match): 122 ns
Initial lookup (miss): 142 ns
Initial lookup (random): 170 ns
Initial delete all: 134 ns
Details: rehashes
3145000
Initial re-inserting: 149 ns
Deleting first half: 73 ns
Details: rehashes
1572500 , delete markers
1572500
Adding (a different) half: 128 ns
Details: delete markers 0, perfect 62%
Lookup after half-change (match): 129 ns
Lookup after half-change (miss): 145 ns
Details: initial churn
Churning second time: 703 ns
Churning third time: 725 ns
Churning fourth time: 717 ns
Churning fifth time: 710 ns
Details: reinserting with spread
Details: delete markers 149261, perfect 57%
Details: worst run 254 (2 deleted)
Lookup after churn & spread (match): 132 ns
Lookup after churn & spread (miss): 159 ns
Lookup after churn & spread (random): 184 ns
Deleting half after churn & spread: 71 ns
Adding (a different) half after churn & spread: 129 ns
Details: delete markers 0, perfect 62%
After:
$ ./speed
3145727
Initial insert: 232 ns
Details: hash size
4194304 , mask bits 9, perfect 63%
Initial lookup (match): 122 ns
Initial lookup (miss): 141 ns
Initial lookup (random): 234 ns
Initial delete all: 129 ns
Details: rehashes
3145727
Initial re-inserting: 153 ns
Deleting first half: 80 ns
Details: rehashes
1572864 , delete markers
1572864
Adding (a different) half: 137 ns
Details: delete markers 0, perfect 62%
Lookup after half-change (match): 125 ns
Lookup after half-change (miss): 145 ns
Details: initial churn
Churning second time: 702 ns
Churning third time: 719 ns
Churning fourth time: 712 ns
Churning fifth time: 709 ns
Details: reinserting with spread
Details: delete markers 169474, perfect 56%
Details: worst run 248 (12 deleted)
Lookup after churn & spread (match): 129 ns
Lookup after churn & spread (miss): 159 ns
Lookup after churn & spread (random): 242 ns
Deleting half after churn & spread: 70 ns
Adding (a different) half after churn & spread: 133 ns
Details: delete markers 0, perfect 62%
Rusty Russell [Mon, 8 Nov 2010 05:54:31 +0000 (16:24 +1030)]
htable: restore perfect bit when resizing.
If the lower bit differs between pointers, we can lose our "perfect"
bit. Since we're rehashing the entire thing anyway, we can pick
another bit when we double the hash table.
Rusty Russell [Mon, 8 Nov 2010 05:54:06 +0000 (16:24 +1030)]
htable: use "perfect" bit to reduce rehashes.
Steal one bit to indicate an entry is in its perfect position. This
means we don't have to rehash it when we are rehashing the entire
table to get rid of deleted records, and we can still use it for
comparison during lookup.
Before: $ ./speed
50000000
Initial insert: 462 ns
Details: hash size
134217728 , mask bits 5, perfect 81%
Initial lookup (match): 161 ns
Initial lookup (miss): 168 ns
Initial lookup (random): 326 ns
Initial delete all: 164 ns
Details: rehashes
50000000
Initial re-inserting: 167 ns
Deleting first half: 86 ns
Details: rehashes
25000000 , delete markers
25000000
Adding (a different) half: 217 ns
Details: delete markers 0, perfect 81%
Lookup after half-change (match): 169 ns
Lookup after half-change (miss): 180 ns
Details: initial churn
Churning second time: 593 ns
Churning third time: 611 ns
Churning fourth time: 619 ns
Churning fifth time: 622 ns
Details: reinserting with spread
Details: delete markers
13800468 , perfect 73%
Details: worst run 48 (4 deleted)
Lookup after churn & spread (match): 192 ns
Lookup after churn & spread (miss): 211 ns
Lookup after churn & spread (random): 373 ns
Deleting half after churn & spread: 103 ns
Adding (a different) half after churn & spread: 102 ns
Details: delete markers
29539689 , perfect 72%
After:
Initial insert: 467 ns
Details: hash size
134217728 , mask bits 5, perfect 81%
Initial lookup (match): 163 ns
Initial lookup (miss): 171 ns
Initial lookup (random): 326 ns
Initial delete all: 170 ns
Details: rehashes
50000000
Initial re-inserting: 169 ns
Deleting first half: 88 ns
Details: rehashes
25000000 , delete markers
25000000
Adding (a different) half: 141 ns
Details: delete markers 0, perfect 81%
Lookup after half-change (match): 166 ns
Lookup after half-change (miss): 171 ns
Details: initial churn
Churning second time: 441 ns
Churning third time: 469 ns
Churning fourth time: 466 ns
Churning fifth time: 490 ns
Details: reinserting with spread
Details: delete markers
13800468 , perfect 73%
Details: worst run 48 (4 deleted)
Lookup after churn & spread (match): 197 ns
Lookup after churn & spread (miss): 209 ns
Lookup after churn & spread (random): 369 ns
Deleting half after churn & spread: 98 ns
Adding (a different) half after churn & spread: 100 ns
Details: delete markers
29539689 , perfect 72%
Rusty Russell [Mon, 8 Nov 2010 05:53:17 +0000 (16:23 +1030)]
htable: rehash to clear delete markers
Delete markers build up over time, even if we try to clean as we go.
So just garbage collect them when there are too many.
Before:
rusty@vivaldi:~/devel/cvs/ccan/ccan/htable/tools (htable)$ ./speed
50000000
Initial insert: 467 ns
Details: hash size
134217728 , mask bits 5, perfect 81%
Initial lookup (match): 160 ns
Initial lookup (miss): 169 ns
Initial lookup (random): 328 ns
Initial delete all: 165 ns
Details: rehashes
50000000
Initial re-inserting: 317 ns
Deleting first half: 86 ns
Details: rehashes
25000000 , delete markers
25000000
Adding (a different) half: 89 ns
Details: delete markers
18894324 , perfect 76%
Lookup after half-change (match): 174 ns
Lookup after half-change (miss): 203 ns
Details: initial churn
Churning second time: 816 ns
Churning third time: 615 ns
Churning fourth time: 621 ns
Churning fifth time: 846 ns
Details: reinserting with spread
Details: delete markers
11078719 , perfect 74%
Details: worst run 48 (4 deleted)
Lookup after churn & spread (match): 191 ns
Lookup after churn & spread (miss): 208 ns
Lookup after churn & spread (random): 374 ns
Deleting half after churn & spread: 102 ns
Adding (a different) half after churn & spread: 103 ns
Details: delete markers
27442234 , perfect 73%
After:
Initial insert: 462 ns
Details: hash size
134217728 , mask bits 5, perfect 81%
Initial lookup (match): 161 ns
Initial lookup (miss): 168 ns
Initial lookup (random): 326 ns
Initial delete all: 164 ns
Details: rehashes
50000000
Initial re-inserting: 167 ns
Deleting first half: 86 ns
Details: rehashes
25000000 , delete markers
25000000
Adding (a different) half: 217 ns
Details: delete markers 0, perfect 81%
Lookup after half-change (match): 169 ns
Lookup after half-change (miss): 180 ns
Details: initial churn
Churning second time: 593 ns
Churning third time: 611 ns
Churning fourth time: 619 ns
Churning fifth time: 622 ns
Details: reinserting with spread
Details: delete markers
13800468 , perfect 73%
Details: worst run 48 (4 deleted)
Lookup after churn & spread (match): 192 ns
Lookup after churn & spread (miss): 211 ns
Lookup after churn & spread (random): 373 ns
Deleting half after churn & spread: 103 ns
Adding (a different) half after churn & spread: 102 ns
Details: delete markers
29539689 , perfect 72%
Rusty Russell [Mon, 8 Nov 2010 05:51:20 +0000 (16:21 +1030)]
htable: speed benchmark
Rusty Russell [Mon, 8 Nov 2010 05:52:19 +0000 (16:22 +1030)]
htable: first implementation
Rusty Russell [Mon, 8 Nov 2010 05:51:06 +0000 (16:21 +1030)]
jmap: a speed benchmark
Rusty Russell [Mon, 8 Nov 2010 05:51:58 +0000 (16:21 +1030)]
jmap: fix incorrect prototype in header documentation.
Rusty Russell [Sun, 7 Nov 2010 01:45:10 +0000 (12:15 +1030)]
jmap: just use unsigned long, not size_t
Judy.h uses "Word_t" which it defines to an "unsigned long", so just use that.
If I were writing Judy from scratch, I'd use size_t or uintptr_t.
Rusty Russell [Sun, 7 Nov 2010 01:44:55 +0000 (12:14 +1030)]
jbitset: just use unsigned long, not size_t
Judy.h uses "Word_t" which it defines to an "unsigned long", so just use that.
If I were writing Judy from scratch, I'd use size_t or uintptr_t.
Rusty Russell [Sun, 7 Nov 2010 01:42:31 +0000 (12:12 +1030)]
ccanlint: fix compilation of chained examples.
Broken in
5378c864f9c37f39d906f599285da25a7db0c9fe : we were trying to
recompile the previous failed version. And the message we printed out
was unclear.
Rusty Russell [Thu, 4 Nov 2010 10:22:42 +0000 (20:52 +1030)]
antithread, foreach, grab_file, hashtable, str_talloc: fix _info depends.
For str_talloc and grab_file, avoid using ccan/str (it's just for tests).
Rusty Russell [Thu, 4 Nov 2010 10:14:00 +0000 (20:44 +1030)]
ccanlint: add --target
Much easier to run just a single test across the tree.
Rusty Russell [Thu, 4 Nov 2010 10:13:17 +0000 (20:43 +1030)]
ccanlint: add test to look for modules we use but don't list in _info.
Rusty Russell [Thu, 4 Nov 2010 10:11:44 +0000 (20:41 +1030)]
ccanlint: fix wrong initialization in example compilation.
I moved the code around and missed this.
Rusty Russell [Thu, 4 Nov 2010 10:10:52 +0000 (20:40 +1030)]
Makefile: make non-optimized variant comment a bit clearer.
Rusty Russell [Thu, 4 Nov 2010 04:32:13 +0000 (15:02 +1030)]
alignof, array_size, crc: provide comments to allow testing examples.
Rusty Russell [Thu, 4 Nov 2010 03:25:15 +0000 (13:55 +1030)]
ccanlint: try running example code.
Comments of form "// [given x] outputs y" we can check the examples do as expected.
Rusty Russell [Thu, 4 Nov 2010 02:11:13 +0000 (12:41 +1030)]
opt: fix junk after string in opt_show_charp.
Rusty Russell [Wed, 3 Nov 2010 22:34:58 +0000 (09:04 +1030)]
cleanup: get rid of unwanted tap/ toplevel which crept in.
Rusty Russell [Wed, 3 Nov 2010 13:14:48 +0000 (23:44 +1030)]
web: point to the configurator to generate config.h
Rusty Russell [Wed, 3 Nov 2010 13:07:33 +0000 (23:37 +1030)]
.gitignore: ignore configurator
Rusty Russell [Wed, 3 Nov 2010 12:48:10 +0000 (23:18 +1030)]
makefiles: add "scores" target.
Rusty Russell [Wed, 3 Nov 2010 12:48:10 +0000 (23:18 +1030)]
alloc: fix missing header in compilation of example.
Rusty Russell [Wed, 3 Nov 2010 12:55:57 +0000 (23:25 +1030)]
ccanlint: make tests non-compulsory, always print score.
No longer abort ccanlint because a test fails, but you will get a low
score if there are no tests.
(Note: total_score is filled in, even if it's overridden when the test is
run. This means that if the prereq fails, that total counts so there is
still a penalty!)
Rusty Russell [Wed, 3 Nov 2010 12:51:18 +0000 (23:21 +1030)]
ccanlint: with -vv, give details on attempts to compile examples.
The heuristics can be hinky, so tell people what we're doing.
Rusty Russell [Wed, 3 Nov 2010 00:21:07 +0000 (10:51 +1030)]
tools: new "configurator" tool.
A simple C program to generate config.h. It also saves the compiler and
flags for use by ccanlint (though they have to accept -c and -o).
Rusty Russell [Wed, 3 Nov 2010 00:20:03 +0000 (10:50 +1030)]
tdb2: fix gcc -O3 warnings on test/layout.c
Warnings about ignored returns, and uninitialized len after case statement.
Rusty Russell [Wed, 3 Nov 2010 00:17:39 +0000 (10:47 +1030)]
tdb: fix warnings with gcc -O3, and one test crash.
unsigned char * is allowed to alias, so we use that for byte reversing
rather than uint32_t. This is portable.
Remove warnings about ignoring pread/pwrite return values.
And initialize tdb before setjmp: with optimization, gcc validly saw this
as NULL and crashed.
Rusty Russell [Wed, 3 Nov 2010 00:16:42 +0000 (10:46 +1030)]
talloc: fix gcc -O3 aliasing warnings
A void * could point to anything, but a void ** can't point to any pointer.
So we use a void * and memcpy, which I believe is safe.
Rusty Russell [Wed, 3 Nov 2010 00:16:02 +0000 (10:46 +1030)]
opt: fix gcc -O3 warnings.
Rusty Russell [Wed, 3 Nov 2010 00:11:07 +0000 (10:41 +1030)]
jmap: fix aliasing issues, one real testcase bug
Compiling with gcc -O3 added some more warnings, especially about aliasing.
By setting Word_t to size_t we fix some of them, but jmap_@name_firstval
in JMAP_DEFINE_PTRIDX_TYPE we need to use a real size_t rather than lazily
casting our index to a size_t *.
Gcc also spotted taht we used idx[NUM] in test/run-ptridx-type.c; allocate
that and make the usage explicit.
Rusty Russell [Tue, 2 Nov 2010 01:25:33 +0000 (11:55 +1030)]
foreach: new module
Rusty Russell [Sat, 30 Oct 2010 10:15:59 +0000 (20:45 +1030)]
Merge branch 'judy'
Rusty Russell [Sat, 30 Oct 2010 10:15:36 +0000 (20:45 +1030)]
jmap: new module
Rusty Russell [Sat, 30 Oct 2010 10:14:42 +0000 (20:44 +1030)]
jbitset: new module.
Rusty Russell [Fri, 29 Oct 2010 09:16:33 +0000 (19:46 +1030)]
web: don't try to link to old bzr repository, use git.
Rusty Russell [Wed, 27 Oct 2010 11:49:44 +0000 (22:19 +1030)]
tap: restore buffering to stdout
I noticed this when I straced something; we're doing 1-byte writes.
This reduced the time for "make check" from 12m37s to 11m48s.
Rusty Russell [Tue, 26 Oct 2010 07:37:22 +0000 (18:07 +1030)]
gitify the tree, especially the web makefile.
Rusty Russell [Tue, 26 Oct 2010 09:00:27 +0000 (19:30 +1030)]
web: clean up directory
Rusty Russell [Tue, 26 Oct 2010 03:59:36 +0000 (14:29 +1030)]
ilog: rework to reduce interface.
If you've not got gcc, this is a bit of a lose. But for everyone else,
it's far simpler.
Rusty Russell [Mon, 25 Oct 2010 03:28:50 +0000 (13:58 +1030)]
opt: wean off getopt_long, beef up tests.
Doing our own parsing lost a few lines of code, too.
Our coverage is over 99% now.
Rusty Russell [Mon, 25 Oct 2010 00:08:55 +0000 (10:38 +1030)]
tdb2: extend test/layout to be able to place in file.
This was for lockcheck, but that didn't work very well. Seems like a useful
addition nonetheless.
Rusty Russell [Sun, 24 Oct 2010 22:51:51 +0000 (09:21 +1030)]
tdb2: fix intermittent test fail.
With correct seed, we could expand hash and break test.
Rusty Russell [Fri, 22 Oct 2010 01:25:43 +0000 (11:55 +1030)]
opt: change / separator to |
Paul Wayper points out that "or" has a better mental mapping, and more
importantly that this is how Perl's Getopt::Long does it.
I'm still leaving the - and -- in there, for reasons previously articulated
(grep-friendly and harder to get wrong).
Joey Adams [Thu, 21 Oct 2010 07:55:46 +0000 (18:25 +1030)]
avl: I attached a patch changing the AVL module to the MIT license.
Rusty Russell [Thu, 21 Oct 2010 07:54:19 +0000 (18:24 +1030)]
license: more changing of licence -> license.
Rusty Russell [Thu, 21 Oct 2010 07:51:27 +0000 (18:21 +1030)]
webpages: make sure target of licence links is included in tarballs.
Rusty Russell [Wed, 20 Oct 2010 05:40:16 +0000 (16:10 +1030)]
avl: new module
Rusty Russell [Wed, 20 Oct 2010 03:49:11 +0000 (14:19 +1030)]
tdb2: 64 bit fixes.
Rusty Russell [Wed, 20 Oct 2010 02:28:49 +0000 (12:58 +1030)]
typesafe_cb: 64 bit fixes.
In particular, gcc warns about cast from int to pointer.
Rusty Russell [Wed, 20 Oct 2010 02:28:20 +0000 (12:58 +1030)]
tdb: 64-bit fixes.
Rusty Russell [Wed, 20 Oct 2010 02:21:50 +0000 (12:51 +1030)]
tally: fixes for 64 bit machines.
Rusty Russell [Wed, 20 Oct 2010 02:20:18 +0000 (12:50 +1030)]
read_write_all: don't rely on write to pipe blocking in tests.
Instead, directly control write().
Rusty Russell [Wed, 20 Oct 2010 02:10:00 +0000 (12:40 +1030)]
opt: 64-bit compile fixes
%.* => unsigned, not size_t.
Rusty Russell [Wed, 20 Oct 2010 02:09:21 +0000 (12:39 +1030)]
ccan_tokenizer: 64-bit compile fixes.
%zu for size_t printf.
Rusty Russell [Wed, 20 Oct 2010 02:08:39 +0000 (12:38 +1030)]
alloc: fix 64-bit
Make sure we use 1UL to bitshift, not 1.
Rusty Russell [Wed, 20 Oct 2010 02:07:45 +0000 (12:37 +1030)]
tools: fixes for 64-bit.
printf's %.* means an unsigned arg, not a size_t.
Rusty Russell [Mon, 18 Oct 2010 02:54:20 +0000 (13:24 +1030)]
tdb2: fix infinite loop in tdb_check
check_free_list returns a length, not bool.
Rusty Russell [Mon, 18 Oct 2010 02:47:42 +0000 (13:17 +1030)]
tdb2: add tdb_attribute_seed for setting hash seed.
Particularly useful for reproduction, like tdbtorture.
Rusty Russell [Sun, 17 Oct 2010 05:33:02 +0000 (16:03 +1030)]
licence->license: US English is the standard for code.
If a Swedish-speaking Finn writes code in English, why should I complain about
a few weird spellings?
Rusty Russell [Sun, 17 Oct 2010 04:10:21 +0000 (14:40 +1030)]
tdb2: clarify locking heirarchy; hashes, freelist, then expand lock.
Rusty Russell [Fri, 15 Oct 2010 10:38:03 +0000 (21:08 +1030)]
tdb2: fix run-summary test
(Was succeeding in finding "Free bucket 8" string, because of "Free bucket 80:".
Rusty Russell [Thu, 14 Oct 2010 12:30:00 +0000 (23:00 +1030)]
opt: list ccan/typesafe_cb as a dependency.
Rusty Russell [Fri, 8 Oct 2010 00:56:17 +0000 (11:26 +1030)]
ccanlint: use opt package.
Now we get long options!
Rusty Russell [Thu, 7 Oct 2010 23:41:11 +0000 (10:11 +1030)]
opt: add opt_log_stderr_exit helper, and opt_usage NULL option.
The former encapsulates a common "just exit on error" case, the latter
avoids having to repeat the extra usage string.
(We actually would have crashed before if someone passed NULL there, even
though the documentation said you could).
Rusty Russell [Thu, 7 Oct 2010 04:12:20 +0000 (14:42 +1030)]
opt: fix example to compile.
Rusty Russell [Thu, 7 Oct 2010 03:35:20 +0000 (14:05 +1030)]
opt: remove gratuitous { } in initializers.
A little less typing for users.
Rusty Russell [Thu, 7 Oct 2010 03:29:42 +0000 (13:59 +1030)]
compiler, list, noerr, sparse_bsearch, str, str_talloc, stringmap, talloc_link, tdb, tdb2, typesafe_cb: fix examples
Phew, now they call compile!
Rusty Russell [Thu, 7 Oct 2010 03:26:11 +0000 (13:56 +1030)]
ccanlint: yet more modifications to example extraction and compile.
Now (with fixes) every ccanlint example compiles!
Rusty Russell [Thu, 7 Oct 2010 02:43:26 +0000 (13:13 +1030)]
ccanlint: rename files on collision even with keep=true.
Rusty Russell [Thu, 7 Oct 2010 02:42:57 +0000 (13:12 +1030)]
tools: fix bug in doc-extract, handle spaces in summary line
/**
* struct foo - some description
So, <identifier> here can have a space in it.
Rusty Russell [Thu, 7 Oct 2010 02:41:02 +0000 (13:11 +1030)]
compiler, talloc: warn if return from realloc-like functions isn't used.
This hit my doc extraction tool, so fix it!
Rusty Russell [Wed, 6 Oct 2010 17:11:20 +0000 (03:41 +1030)]
tdb: fixed unitialized vars.
Rusty Russell [Wed, 6 Oct 2010 17:10:03 +0000 (03:40 +1030)]
tdb2: fix uninitialized var.
Rusty Russell [Wed, 6 Oct 2010 17:01:55 +0000 (03:31 +1030)]
modules: update documentation examples so they compile under ccanlint.
This is everything up to the list module... now it's time for sleep.
Rusty Russell [Wed, 6 Oct 2010 16:59:30 +0000 (03:29 +1030)]
ccanlint: yet more heuristics for compiling examples.
Including intuiting ccan depends based on headers...
Rusty Russell [Wed, 6 Oct 2010 14:33:39 +0000 (01:03 +1030)]
array: fix example compile.
Rusty Russell [Wed, 6 Oct 2010 14:30:51 +0000 (01:00 +1030)]
hash: fix examples so they compile.
Rusty Russell [Wed, 6 Oct 2010 14:30:25 +0000 (01:00 +1030)]
talloc: fix examples so they compile.
Rusty Russell [Wed, 6 Oct 2010 14:29:55 +0000 (00:59 +1030)]
opt: fix examples so they compile.
Rusty Russell [Wed, 6 Oct 2010 14:29:09 +0000 (00:59 +1030)]
alloc: fix examples so they compile.
Rusty Russell [Wed, 6 Oct 2010 14:27:28 +0000 (00:57 +1030)]
tap: make examples compilable by ccanlint.
In particular, we can assume "somefunc()" exists in our examples.
Rusty Russell [Wed, 6 Oct 2010 14:25:49 +0000 (00:55 +1030)]
ccanlint: more heuristics for compiling examples.
Try to glue consecutive examples together if all else fails (works well for
ccan/alloc/alloc.h). This means we should put examples into list in order.
Rusty Russell [Wed, 6 Oct 2010 14:25:14 +0000 (00:55 +1030)]
tools: "See Also:" can be a section in documentation, so allow it.
Rusty Russell [Wed, 6 Oct 2010 03:31:24 +0000 (14:01 +1030)]
ccanlint: more heuristics for compiling examples.
These are from hash: the entire example is indented, there is no main(), and
there are unused static functions.
Rusty Russell [Wed, 6 Oct 2010 03:29:08 +0000 (13:59 +1030)]
ccanlint: really fix failing test logic.
Some of the compulsory tests don't have a total_score; treat that as "1".
And don't print out a score if the total is <= 1.
Rusty Russell [Wed, 6 Oct 2010 03:28:30 +0000 (13:58 +1030)]
ccanlint: link api tests against compiled objects
Don't assume that ../modulename.o already built!
Rusty Russell [Wed, 6 Oct 2010 02:25:38 +0000 (12:55 +1030)]
ccanlint: add somefunc() to help examples compile.
And don't require the module.o to already exist: link against generated .o files.
Rusty Russell [Wed, 6 Oct 2010 01:47:47 +0000 (12:17 +1030)]
ccanlint: actually try to compile examples.
Includes primitive attempt to place fragments into appropriate framework to
compile them.
Rusty Russell [Wed, 6 Oct 2010 01:45:31 +0000 (12:15 +1030)]
ccanlint: load file contents on demand, fix names for extracted examples.
We had example names like "example-opt.h-opt_parse", which got trimmed to
"example-opt". By using a basename of example-opt.h-opt_parse.c, we only
strip the final ".c" not the middle ".h".
Rusty Russell [Wed, 6 Oct 2010 01:44:35 +0000 (12:14 +1030)]
ccanlint: make sure we stop on failure of compulsory test.
Rusty Russell [Tue, 5 Oct 2010 23:11:11 +0000 (09:41 +1030)]
ccanlint: fix -k has_examples