Reverted insert tags appending, fixed insert issues in named btrees
Changing insert tags to append seems to have broken insertion into named
btrees in a subtle way.
Consider what happens when we insert immediately before a bid that
splits the btree:
1. namelookup returns the right rbyd, with rid=-1
2. converting this into a bid gives us the left rbyd, with rid=weight
3. the commit to insert the bid ends up inserting into the left rbyd
This doesn't initially seem like an issue, both entries are effectively
the same right? Well, not when you have names. The split name tells you
what _follows_, so this unintentional flipping causes the new name to
get placed in the wrong bucket.
It's not clear if it's possible to fix this, at least not without
inverting the split names to indicate what precedes, but that's a step
too far.
This was not detected earlier because I disabled the low-level
rbyd/btree/mtree tests temporarily due to high porting cost. Guess that
goes to show there's a cost to deferring test ports for too long.
---
This issue, along with being inconsistencies between rids/bids and mids,
and being a relatively unintuitive pattern, is the final nail in the
coffin for insert tags inserting after.
Now, insert tags insert before, like in most other systems, and insert
tags in attr-list just have an implicit +1 before them to allow splits
in attr-lists to work.
This is not a pure revert, as some of the changes with all the code
moving around revealed some better detail-level ideas.
And yes, rbyd/btree tests are up to date now. Unfortunately the mtree
tests require a bit more work.
---
One thing definitely worth noting, btree merges were broken! A mistake
in the has-parent condition meant we were never attempting to merge
btrees!
This hid some bugs in the actual btree merge code caused by mixing the
implicit swap of child rbyds to deduplicate code paths with btree commit
now needing to track bid/rid separately from the attr-list.
This should be fixed now. Interesting to note this bug has been in
lfsr_btree_commit_ for a while now! I think ever since we switched to
using trunks for the has-parent check. We just haven't been merging
btree nodes at all. But since not-merging isn't technically an error,
it's difficult to test for.
Code changes:
code stack
before: 33808 2896
after: 33964 (+0.5%) 2896 (+0.0%)
This commit is contained in:
+13
-13
@@ -28,7 +28,7 @@ code = '''
|
||||
lfs_size_t bid, lfsr_tag_t tag, lfs_size_t weight,
|
||||
lfsr_data_t data) {
|
||||
LFS_ASSERT(bid <= btree->weight);
|
||||
return lfsr_btree_commit(lfs, btree, bid-1, LFSR_ATTRS(
|
||||
return lfsr_btree_commit(lfs, btree, bid, LFSR_ATTRS(
|
||||
LFSR_ATTR(TAG(tag), +weight, DATA(data))));
|
||||
}
|
||||
|
||||
@@ -3184,7 +3184,7 @@ code = '''
|
||||
// create a single-entry tree
|
||||
lfsr_btree_t btree;
|
||||
lfsr_btree_alloc(&lfs, &btree) => 0;
|
||||
lfsr_btree_commit(&lfs, &btree, -1, LFSR_ATTRS(
|
||||
lfsr_btree_commit(&lfs, &btree, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(NAME, +1,
|
||||
CAT(LFSR_DATA_LEB128(0), LFSR_DATA_BUF("aaa", 3))),
|
||||
LFSR_ATTR(DATA, 0, BUF("0", 1)))) => 0;
|
||||
@@ -3236,7 +3236,7 @@ code = '''
|
||||
// create a two-entry tree
|
||||
lfsr_btree_t btree;
|
||||
lfsr_btree_alloc(&lfs, &btree) => 0;
|
||||
lfsr_btree_commit(&lfs, &btree, -1, LFSR_ATTRS(
|
||||
lfsr_btree_commit(&lfs, &btree, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(NAME, +1,
|
||||
CAT(LFSR_DATA_LEB128(0), LFSR_DATA_BUF("aaa", 3))),
|
||||
LFSR_ATTR(DATA, 0, BUF("0", 1)))) => 0;
|
||||
@@ -3300,7 +3300,7 @@ code = '''
|
||||
// create a two-entry tree
|
||||
lfsr_btree_t btree;
|
||||
lfsr_btree_alloc(&lfs, &btree) => 0;
|
||||
lfsr_btree_commit(&lfs, &btree, -1, LFSR_ATTRS(
|
||||
lfsr_btree_commit(&lfs, &btree, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(NAME, +1,
|
||||
CAT(LFSR_DATA_LEB128(0), LFSR_DATA_BUF("aaa", 3))),
|
||||
LFSR_ATTR(DATA, 0, BUF("0", 1)))) => 0;
|
||||
@@ -3376,7 +3376,7 @@ code = '''
|
||||
// create a two-entry tree
|
||||
lfsr_btree_t btree;
|
||||
lfsr_btree_alloc(&lfs, &btree) => 0;
|
||||
lfsr_btree_commit(&lfs, &btree, -1, LFSR_ATTRS(
|
||||
lfsr_btree_commit(&lfs, &btree, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(NAME, +1,
|
||||
CAT(LFSR_DATA_LEB128(0), LFSR_DATA_BUF("aaa", 3))),
|
||||
LFSR_ATTR( DATA, 0, BUF("0", 1)))) => 0;
|
||||
@@ -3458,7 +3458,7 @@ code = '''
|
||||
char name[3] = {
|
||||
alphas[(0/26/26) % 26], alphas[(0/26) % 26], alphas[0 % 26]
|
||||
};
|
||||
lfsr_btree_commit(&lfs, &btree, -1, LFSR_ATTRS(
|
||||
lfsr_btree_commit(&lfs, &btree, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(NAME, +1,
|
||||
CAT(LFSR_DATA_LEB128(0), LFSR_DATA_BUF(name, 3))),
|
||||
LFSR_ATTR(DATA, 0, BUF(&nums[0 % 10], 1)))) => 0;
|
||||
@@ -3527,7 +3527,7 @@ code = '''
|
||||
// create a btree
|
||||
lfsr_btree_t btree;
|
||||
lfsr_btree_alloc(&lfs, &btree) => 0;
|
||||
lfsr_btree_commit(&lfs, &btree, -1, LFSR_ATTRS(
|
||||
lfsr_btree_commit(&lfs, &btree, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(NAME, +1,
|
||||
CAT(LFSR_DATA_LEB128(0), LFSR_DATA_BUF("___", 3))),
|
||||
LFSR_ATTR(DATA, 0, BUF("_", 1)))) => 0;
|
||||
@@ -3645,7 +3645,7 @@ code = '''
|
||||
char name[3] = {
|
||||
alphas[(0/26/26) % 26], alphas[(0/26) % 26], alphas[0 % 26]
|
||||
};
|
||||
lfsr_btree_commit(&lfs, &btree, -1, LFSR_ATTRS(
|
||||
lfsr_btree_commit(&lfs, &btree, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(NAME, +W,
|
||||
CAT(LFSR_DATA_LEB128(0), LFSR_DATA_BUF(name, 3))),
|
||||
LFSR_ATTR(DATA, 0, BUF(&nums[0 % 10], 1)))) => 0;
|
||||
@@ -3715,7 +3715,7 @@ code = '''
|
||||
// create a btree
|
||||
lfsr_btree_t btree;
|
||||
lfsr_btree_alloc(&lfs, &btree) => 0;
|
||||
lfsr_btree_commit(&lfs, &btree, -1, LFSR_ATTRS(
|
||||
lfsr_btree_commit(&lfs, &btree, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(NAME, +W,
|
||||
CAT(LFSR_DATA_LEB128(0), LFSR_DATA_BUF("___", 3))),
|
||||
LFSR_ATTR(DATA, 0, BUF("_", 1)))) => 0;
|
||||
@@ -3869,7 +3869,7 @@ code = '''
|
||||
// create a btree
|
||||
lfsr_btree_t btree;
|
||||
lfsr_btree_alloc(&lfs, &btree) => 0;
|
||||
lfsr_btree_commit(&lfs, &btree, -1, LFSR_ATTRS(
|
||||
lfsr_btree_commit(&lfs, &btree, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(NAME, +1,
|
||||
CAT(LFSR_DATA_LEB128(0), LFSR_DATA_BUF("___", 3))),
|
||||
LFSR_ATTR(DATA, 0, BUF("_", 1)))) => 0;
|
||||
@@ -3919,7 +3919,7 @@ code = '''
|
||||
assert(lfs_cmp(cmp) != 0);
|
||||
if (lfs_cmp(cmp) > 0) {
|
||||
int err = lfsr_btree_commit(&lfs, &btree,
|
||||
split_bid-1, LFSR_ATTRS(
|
||||
split_bid, LFSR_ATTRS(
|
||||
LFSR_ATTR(NAME, +1, CAT(
|
||||
LFSR_DATA_LEB128(0),
|
||||
LFSR_DATA_BUF(name, 3))),
|
||||
@@ -4039,7 +4039,7 @@ code = '''
|
||||
// create a btree
|
||||
lfsr_btree_t btree;
|
||||
lfsr_btree_alloc(&lfs, &btree) => 0;
|
||||
lfsr_btree_commit(&lfs, &btree, -1, LFSR_ATTRS(
|
||||
lfsr_btree_commit(&lfs, &btree, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(NAME, +W,
|
||||
CAT(LFSR_DATA_LEB128(0), LFSR_DATA_BUF("___", 3))),
|
||||
LFSR_ATTR(DATA, 0, BUF("_", 1)))) => 0;
|
||||
@@ -4101,7 +4101,7 @@ code = '''
|
||||
assert(lfs_cmp(cmp) != 0);
|
||||
if (lfs_cmp(cmp) > 0) {
|
||||
int err = lfsr_btree_commit(&lfs, &btree,
|
||||
split_bid-(split_weight-1)-1, LFSR_ATTRS(
|
||||
split_bid-(split_weight-1), LFSR_ATTRS(
|
||||
LFSR_ATTR(NAME, +weight, CAT(
|
||||
LFSR_DATA_LEB128(0),
|
||||
LFSR_DATA_BUF(name, 3))),
|
||||
|
||||
+123
-123
@@ -3695,7 +3695,7 @@ code = '''
|
||||
// try to create one rid
|
||||
rbyd = init_rbyd;
|
||||
lfs_bd_erase(&lfs, rbyd.blocks[0]) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xaa\xaa\xaa\xaa", 4)))) => 0;
|
||||
|
||||
assert(rbyd.weight == 1);
|
||||
@@ -3710,7 +3710,7 @@ code = '''
|
||||
// try to create two ids
|
||||
rbyd = init_rbyd;
|
||||
lfs_bd_erase(&lfs, rbyd.blocks[0]) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xaa\xaa\xaa\xaa", 4)),
|
||||
LFSR_ATTR(REG, +1, BUF("\xbb\xbb\xbb\xbb", 4)))) => 0;
|
||||
|
||||
@@ -3730,7 +3730,7 @@ code = '''
|
||||
// create a third to the right
|
||||
rbyd = init_rbyd;
|
||||
lfs_bd_erase(&lfs, rbyd.blocks[0]) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xaa\xaa\xaa\xaa", 4)),
|
||||
LFSR_ATTR(REG, +1, BUF("\xbb\xbb\xbb\xbb", 4)),
|
||||
LFSR_ATTR(REG, +1, BUF("\xcc\xcc\xcc\xcc", 4)))) => 0;
|
||||
@@ -3772,7 +3772,7 @@ code = '''
|
||||
// try to create one rid
|
||||
rbyd = init_rbyd;
|
||||
lfs_bd_erase(&lfs, rbyd.blocks[0]) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xaa\xaa\xaa\xaa", 4)))) => 0;
|
||||
|
||||
assert(rbyd.weight == 1);
|
||||
@@ -3789,9 +3789,9 @@ code = '''
|
||||
// try to create two ids
|
||||
rbyd = init_rbyd;
|
||||
lfs_bd_erase(&lfs, rbyd.blocks[0]) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xaa\xaa\xaa\xaa", 4)))) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xaa\xaa\xaa\xaa", 4)))) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xbb\xbb\xbb\xbb", 4)))) => 0;
|
||||
|
||||
assert(rbyd.weight == 2);
|
||||
@@ -3810,9 +3810,9 @@ code = '''
|
||||
// try to create two in the other direction
|
||||
rbyd = init_rbyd;
|
||||
lfs_bd_erase(&lfs, rbyd.blocks[0]) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xbb\xbb\xbb\xbb", 4)))) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xaa\xaa\xaa\xaa", 4)))) => 0;
|
||||
|
||||
assert(rbyd.weight == 2);
|
||||
@@ -3831,11 +3831,11 @@ code = '''
|
||||
// create a third to the right
|
||||
rbyd = init_rbyd;
|
||||
lfs_bd_erase(&lfs, rbyd.blocks[0]) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xaa\xaa\xaa\xaa", 4)))) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xbb\xbb\xbb\xbb", 4)))) => 0;
|
||||
LFSR_ATTR(REG, +1, BUF("\xaa\xaa\xaa\xaa", 4)))) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xbb\xbb\xbb\xbb", 4)))) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 2, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xcc\xcc\xcc\xcc", 4)))) => 0;
|
||||
|
||||
assert(rbyd.weight == 3);
|
||||
@@ -3858,11 +3858,11 @@ code = '''
|
||||
// create a third to the left
|
||||
rbyd = init_rbyd;
|
||||
lfs_bd_erase(&lfs, rbyd.blocks[0]) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xbb\xbb\xbb\xbb", 4)))) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xbb\xbb\xbb\xbb", 4)))) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xcc\xcc\xcc\xcc", 4)))) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xaa\xaa\xaa\xaa", 4)))) => 0;
|
||||
|
||||
assert(rbyd.weight == 3);
|
||||
@@ -3885,11 +3885,11 @@ code = '''
|
||||
// create a third in the middle
|
||||
rbyd = init_rbyd;
|
||||
lfs_bd_erase(&lfs, rbyd.blocks[0]) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xaa\xaa\xaa\xaa", 4)))) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xcc\xcc\xcc\xcc", 4)))) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xbb\xbb\xbb\xbb", 4)))) => 0;
|
||||
|
||||
assert(rbyd.weight == 3);
|
||||
@@ -3975,7 +3975,7 @@ code = '''
|
||||
}
|
||||
}
|
||||
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid-1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF(names[perm[j] % 6], 4)))) => 0;
|
||||
}
|
||||
|
||||
@@ -4033,7 +4033,7 @@ code = '''
|
||||
// the tag requested
|
||||
rbyd = init_rbyd;
|
||||
lfs_bd_erase(&lfs, rbyd.blocks[0]) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 00000000, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xaa\xaa\xaa\xaa", 4)),
|
||||
LFSR_ATTR(REG, +1, BUF("\xbb\xbb\xbb\xbb", 4)))) => 0;
|
||||
|
||||
@@ -4097,9 +4097,9 @@ code = '''
|
||||
// the tag requested
|
||||
rbyd = init_rbyd;
|
||||
lfs_bd_erase(&lfs, rbyd.blocks[0]) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xaa\xaa\xaa\xaa", 4)))) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xaa\xaa\xaa\xaa", 4)))) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xbb\xbb\xbb\xbb", 4)))) => 0;
|
||||
|
||||
lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, 0,
|
||||
@@ -4140,9 +4140,9 @@ code = '''
|
||||
// also try the other direction
|
||||
rbyd = init_rbyd;
|
||||
lfs_bd_erase(&lfs, rbyd.blocks[0]) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xbb\xbb\xbb\xbb", 4)))) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xaa\xaa\xaa\xaa", 4)))) => 0;
|
||||
|
||||
lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, 0,
|
||||
@@ -4245,7 +4245,7 @@ code = '''
|
||||
}
|
||||
}
|
||||
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid-1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF(names[perm[j] % 6], 4)))) => 0;
|
||||
}
|
||||
|
||||
@@ -4315,7 +4315,7 @@ code = '''
|
||||
: (uint16_t)TEST_PRNG(&prng);
|
||||
x = x % (rbyd.weight+1);
|
||||
|
||||
int err = lfsr_rbyd_commit(&lfs, &rbyd, x-1, LFSR_ATTRS(
|
||||
int err = lfsr_rbyd_commit(&lfs, &rbyd, x, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF(names[x % 6], 4))));
|
||||
if (err == LFS_ERR_RANGE) {
|
||||
break;
|
||||
@@ -4361,7 +4361,7 @@ code = '''
|
||||
// try to create one rid
|
||||
rbyd = init_rbyd;
|
||||
lfs_bd_erase(&lfs, rbyd.blocks[0]) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xaa\xaa\xaa\xaa", 4)),
|
||||
LFSR_ATTR(UATTR(1), 0, BUF("\xaa\xaa", 2)))) => 0;
|
||||
|
||||
@@ -4381,7 +4381,7 @@ code = '''
|
||||
// try to create two ids
|
||||
rbyd = init_rbyd;
|
||||
lfs_bd_erase(&lfs, rbyd.blocks[0]) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xaa\xaa\xaa\xaa", 4)),
|
||||
LFSR_ATTR(UATTR(1), 0, BUF("\xaa\xaa", 2)),
|
||||
LFSR_ATTR(REG, +1, BUF("\xbb\xbb\xbb\xbb", 4)),
|
||||
@@ -4411,7 +4411,7 @@ code = '''
|
||||
// create a third to the right
|
||||
rbyd = init_rbyd;
|
||||
lfs_bd_erase(&lfs, rbyd.blocks[0]) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xaa\xaa\xaa\xaa", 4)),
|
||||
LFSR_ATTR(UATTR(1), 0, BUF("\xaa\xaa", 2)),
|
||||
LFSR_ATTR(REG, +1, BUF("\xbb\xbb\xbb\xbb", 4)),
|
||||
@@ -4485,7 +4485,7 @@ code = '''
|
||||
// try to create one rid
|
||||
rbyd = init_rbyd;
|
||||
lfs_bd_erase(&lfs, rbyd.blocks[0]) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xaa\xaa\xaa\xaa", 4)))) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(UATTR(1), 0, BUF("\xaa\xaa", 2)))) => 0;
|
||||
@@ -4506,11 +4506,11 @@ code = '''
|
||||
// try to create two ids
|
||||
rbyd = init_rbyd;
|
||||
lfs_bd_erase(&lfs, rbyd.blocks[0]) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xaa\xaa\xaa\xaa", 4)))) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(UATTR(1), 0, BUF("\xaa\xaa", 2)))) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xbb\xbb\xbb\xbb", 4)))) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS(
|
||||
LFSR_ATTR(UATTR(1), 0, BUF("\xbb\xbb", 2)))) => 0;
|
||||
@@ -4539,11 +4539,11 @@ code = '''
|
||||
// try to create two in the other direction
|
||||
rbyd = init_rbyd;
|
||||
lfs_bd_erase(&lfs, rbyd.blocks[0]) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xbb\xbb\xbb\xbb", 4)))) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(UATTR(1), 0, BUF("\xbb\xbb", 2)))) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xaa\xaa\xaa\xaa", 4)))) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(UATTR(1), 0, BUF("\xaa\xaa", 2)))) => 0;
|
||||
@@ -4572,15 +4572,15 @@ code = '''
|
||||
// create a third to the right
|
||||
rbyd = init_rbyd;
|
||||
lfs_bd_erase(&lfs, rbyd.blocks[0]) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xaa\xaa\xaa\xaa", 4)))) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(UATTR(1), 0, BUF("\xaa\xaa", 2)))) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xbb\xbb\xbb\xbb", 4)))) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS(
|
||||
LFSR_ATTR(UATTR(1), 0, BUF("\xbb\xbb", 2)))) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 2, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xcc\xcc\xcc\xcc", 4)))) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 2, LFSR_ATTRS(
|
||||
LFSR_ATTR(UATTR(1), 0, BUF("\xcc\xcc", 2)))) => 0;
|
||||
@@ -4634,15 +4634,15 @@ code = '''
|
||||
// create a third to the left
|
||||
rbyd = init_rbyd;
|
||||
lfs_bd_erase(&lfs, rbyd.blocks[0]) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xbb\xbb\xbb\xbb", 4)))) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(UATTR(1), 0, BUF("\xbb\xbb", 2)))) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xcc\xcc\xcc\xcc", 4)))) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS(
|
||||
LFSR_ATTR(UATTR(1), 0, BUF("\xcc\xcc", 2)))) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xaa\xaa\xaa\xaa", 4)))) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(UATTR(1), 0, BUF("\xaa\xaa", 2)))) => 0;
|
||||
@@ -4679,15 +4679,15 @@ code = '''
|
||||
// create a third in the middle
|
||||
rbyd = init_rbyd;
|
||||
lfs_bd_erase(&lfs, rbyd.blocks[0]) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xaa\xaa\xaa\xaa", 4)))) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(UATTR(1), 0, BUF("\xaa\xaa", 2)))) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xcc\xcc\xcc\xcc", 4)))) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS(
|
||||
LFSR_ATTR(UATTR(1), 0, BUF("\xcc\xcc", 2)))) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xbb\xbb\xbb\xbb", 4)))) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS(
|
||||
LFSR_ATTR(UATTR(1), 0, BUF("\xbb\xbb", 2)))) => 0;
|
||||
@@ -4788,7 +4788,7 @@ code = '''
|
||||
}
|
||||
}
|
||||
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid-1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF(names[perm[j] % 6], 4)))) => 0;
|
||||
// note uattrs have a smaller size to help debugging
|
||||
for (unsigned u = 0; u < M; u++) {
|
||||
@@ -4857,7 +4857,7 @@ code = '''
|
||||
// the tag requested
|
||||
rbyd = init_rbyd;
|
||||
lfs_bd_erase(&lfs, rbyd.blocks[0]) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xaa\xaa\xaa\xaa", 4)),
|
||||
LFSR_ATTR(UATTR(1), 0, BUF("\xaa\xaa", 2)),
|
||||
LFSR_ATTR(REG, +1, BUF("\xbb\xbb\xbb\xbb", 4)),
|
||||
@@ -4951,11 +4951,11 @@ code = '''
|
||||
// the tag requested
|
||||
rbyd = init_rbyd;
|
||||
lfs_bd_erase(&lfs, rbyd.blocks[0]) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xaa\xaa\xaa\xaa", 4)))) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(UATTR(1), 0, BUF("\xaa\xaa", 2)))) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xbb\xbb\xbb\xbb", 4)))) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS(
|
||||
LFSR_ATTR(UATTR(1), 0, BUF("\xbb\xbb", 2)))) => 0;
|
||||
@@ -5026,11 +5026,11 @@ code = '''
|
||||
// also try the other direction
|
||||
rbyd = init_rbyd;
|
||||
lfs_bd_erase(&lfs, rbyd.blocks[0]) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xbb\xbb\xbb\xbb", 4)))) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(UATTR(1), 0, BUF("\xbb\xbb", 2)))) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xaa\xaa\xaa\xaa", 4)))) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(UATTR(1), 0, BUF("\xaa\xaa", 2)))) => 0;
|
||||
@@ -5164,7 +5164,7 @@ code = '''
|
||||
}
|
||||
}
|
||||
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid-1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF(names[perm[j] % 6], 4)))) => 0;
|
||||
// note uattrs have a smaller size to help debugging
|
||||
for (unsigned u = 0; u < M; u++) {
|
||||
@@ -5248,7 +5248,7 @@ code = '''
|
||||
lfs_bd_erase(&lfs, rbyd.blocks[0]) => 0;
|
||||
|
||||
for (unsigned j = 0; j < N; j++) {
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, j-1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, j, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF(names[j % 6], 4)))) => 0;
|
||||
// note uattrs have a smaller size to help debugging
|
||||
for (unsigned u = 0; u < M; u++) {
|
||||
@@ -5407,7 +5407,7 @@ code = '''
|
||||
}
|
||||
}
|
||||
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid-1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF(names[perm[j] % 6], 4)))) => 0;
|
||||
// note uattrs have a smaller size to help debugging
|
||||
for (unsigned u = 0; u < M; u++) {
|
||||
@@ -5575,7 +5575,7 @@ code = '''
|
||||
lfs_bd_erase(&lfs, rbyd.blocks[0]) => 0;
|
||||
|
||||
for (unsigned j = 0; j < N; j++) {
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, j-1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, j, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF(names[j % 6], 4)))) => 0;
|
||||
// note uattrs have a smaller size to help debugging
|
||||
for (unsigned u = 0; u < M; u++) {
|
||||
@@ -5717,7 +5717,7 @@ code = '''
|
||||
attrs[1+u] = LFSR_ATTR(UATTR(u+1), 0, BUF(names[x % 6], 2));
|
||||
}
|
||||
|
||||
int err = lfsr_rbyd_commit(&lfs, &rbyd, x-1, attrs, 1+M);
|
||||
int err = lfsr_rbyd_commit(&lfs, &rbyd, x, attrs, 1+M);
|
||||
if (err == LFS_ERR_RANGE) {
|
||||
break;
|
||||
}
|
||||
@@ -5821,7 +5821,7 @@ code = '''
|
||||
LFSR_ATTR(UATTR(perm[j]+1), 0,
|
||||
BUF(names[perm[j] % 6], 1)))) => 0;
|
||||
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid-1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1,
|
||||
BUF(names[perm[j] % 6], 4)))) => 0;
|
||||
}
|
||||
@@ -5960,7 +5960,7 @@ code = '''
|
||||
LFSR_ATTR(UATTR(perm[j]+1), 0,
|
||||
BUF(names[perm[j] % 6], 1)))) => 0;
|
||||
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid-1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1,
|
||||
BUF(names[perm[j] % 6], 4)))) => 0;
|
||||
for (unsigned u = 0; u < M; u++) {
|
||||
@@ -6071,7 +6071,7 @@ code = '''
|
||||
// try to delete one rid
|
||||
rbyd = init_rbyd;
|
||||
lfs_bd_erase(&lfs, rbyd.blocks[0]) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xaa\xaa\xaa\xaa", 4)),
|
||||
LFSR_ATTR(REG, +1, BUF("\xbb\xbb\xbb\xbb", 4)))) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS(
|
||||
@@ -6091,7 +6091,7 @@ code = '''
|
||||
// try to delete the other rid
|
||||
rbyd = init_rbyd;
|
||||
lfs_bd_erase(&lfs, rbyd.blocks[0]) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xaa\xaa\xaa\xaa", 4)),
|
||||
LFSR_ATTR(REG, +1, BUF("\xbb\xbb\xbb\xbb", 4)))) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
@@ -6111,7 +6111,7 @@ code = '''
|
||||
// try to delete the largest of three
|
||||
rbyd = init_rbyd;
|
||||
lfs_bd_erase(&lfs, rbyd.blocks[0]) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xaa\xaa\xaa\xaa", 4)),
|
||||
LFSR_ATTR(REG, +1, BUF("\xbb\xbb\xbb\xbb", 4)),
|
||||
LFSR_ATTR(REG, +1, BUF("\xcc\xcc\xcc\xcc", 4)))) => 0;
|
||||
@@ -6134,7 +6134,7 @@ code = '''
|
||||
// try to delete the smallest of three
|
||||
rbyd = init_rbyd;
|
||||
lfs_bd_erase(&lfs, rbyd.blocks[0]) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xaa\xaa\xaa\xaa", 4)),
|
||||
LFSR_ATTR(REG, +1, BUF("\xbb\xbb\xbb\xbb", 4)),
|
||||
LFSR_ATTR(REG, +1, BUF("\xcc\xcc\xcc\xcc", 4)))) => 0;
|
||||
@@ -6157,7 +6157,7 @@ code = '''
|
||||
// try to delete the middle
|
||||
rbyd = init_rbyd;
|
||||
lfs_bd_erase(&lfs, rbyd.blocks[0]) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xaa\xaa\xaa\xaa", 4)),
|
||||
LFSR_ATTR(REG, +1, BUF("\xbb\xbb\xbb\xbb", 4)),
|
||||
LFSR_ATTR(REG, +1, BUF("\xcc\xcc\xcc\xcc", 4)))) => 0;
|
||||
@@ -6197,7 +6197,7 @@ code = '''
|
||||
// try to delete one rid
|
||||
rbyd = init_rbyd;
|
||||
lfs_bd_erase(&lfs, rbyd.blocks[0]) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xaa\xaa\xaa\xaa", 4)),
|
||||
LFSR_ATTR(UATTR(1), 0, BUF("\xaa\xaa", 2)),
|
||||
LFSR_ATTR(REG, +1, BUF("\xbb\xbb\xbb\xbb", 4)),
|
||||
@@ -6233,7 +6233,7 @@ code = '''
|
||||
// try to delete the other rid
|
||||
rbyd = init_rbyd;
|
||||
lfs_bd_erase(&lfs, rbyd.blocks[0]) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xaa\xaa\xaa\xaa", 4)),
|
||||
LFSR_ATTR(UATTR(1), 0, BUF("\xaa\xaa", 2)),
|
||||
LFSR_ATTR(REG, +1, BUF("\xbb\xbb\xbb\xbb", 4)),
|
||||
@@ -6269,7 +6269,7 @@ code = '''
|
||||
// try to delete the largest of three
|
||||
rbyd = init_rbyd;
|
||||
lfs_bd_erase(&lfs, rbyd.blocks[0]) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xaa\xaa\xaa\xaa", 4)),
|
||||
LFSR_ATTR(UATTR(1), 0, BUF("\xaa\xaa", 2)),
|
||||
LFSR_ATTR(REG, +1, BUF("\xbb\xbb\xbb\xbb", 4)),
|
||||
@@ -6318,7 +6318,7 @@ code = '''
|
||||
// try to delete the smallest of three
|
||||
rbyd = init_rbyd;
|
||||
lfs_bd_erase(&lfs, rbyd.blocks[0]) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xaa\xaa\xaa\xaa", 4)),
|
||||
LFSR_ATTR(UATTR(1), 0, BUF("\xaa\xaa", 2)),
|
||||
LFSR_ATTR(REG, +1, BUF("\xbb\xbb\xbb\xbb", 4)),
|
||||
@@ -6368,7 +6368,7 @@ code = '''
|
||||
// try to delete the middle
|
||||
rbyd = init_rbyd;
|
||||
lfs_bd_erase(&lfs, rbyd.blocks[0]) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xaa\xaa\xaa\xaa", 4)),
|
||||
LFSR_ATTR(UATTR(1), 0, BUF("\xaa\xaa", 2)),
|
||||
LFSR_ATTR(REG, +1, BUF("\xbb\xbb\xbb\xbb", 4)),
|
||||
@@ -6484,7 +6484,7 @@ code = '''
|
||||
}
|
||||
}
|
||||
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid-1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF(names[perm[j] % 6], 4)))) => 0;
|
||||
}
|
||||
assert(rbyd.weight == N);
|
||||
@@ -6527,7 +6527,7 @@ code = '''
|
||||
|
||||
// try recreating the rid to make sure things still work
|
||||
printf("--- create: %d ---\n", j);
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, j-1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, j, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF(names[j % 6], 6)))) => 0;
|
||||
assert(rbyd.weight == N);
|
||||
|
||||
@@ -6640,7 +6640,7 @@ code = '''
|
||||
}
|
||||
}
|
||||
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid-1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF(names[perm[j] % 6], 4)))) => 0;
|
||||
// note uattrs have a smaller size to help debugging
|
||||
for (unsigned u = 0; u < M; u++) {
|
||||
@@ -6701,7 +6701,7 @@ code = '''
|
||||
|
||||
// try recreating the rid to make sure things still work
|
||||
printf("--- create: %d ---\n", j);
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, j-1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, j, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF(names[j % 6], 6)))) => 0;
|
||||
for (unsigned u = 0; u < M; u++) {
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, j, LFSR_ATTRS(
|
||||
@@ -6831,7 +6831,7 @@ code = '''
|
||||
}
|
||||
}
|
||||
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid-1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF(names[perm[j] % 6], 4)))) => 0;
|
||||
}
|
||||
assert(rbyd.weight == N);
|
||||
@@ -6957,7 +6957,7 @@ code = '''
|
||||
}
|
||||
}
|
||||
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid-1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF(names[perm[j] % 6], 4)))) => 0;
|
||||
// note uattrs have a smaller size to help debugging
|
||||
for (unsigned u = 0; u < M; u++) {
|
||||
@@ -7057,7 +7057,7 @@ code = '''
|
||||
// create and delete one rid
|
||||
rbyd = init_rbyd;
|
||||
lfs_bd_erase(&lfs, rbyd.blocks[0]) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xaa\xaa\xaa\xaa", 4)))) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(RM, -1, NULL()))) => 0;
|
||||
@@ -7074,7 +7074,7 @@ code = '''
|
||||
// create and delete two ids
|
||||
rbyd = init_rbyd;
|
||||
lfs_bd_erase(&lfs, rbyd.blocks[0]) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xaa\xaa\xaa\xaa", 4)),
|
||||
LFSR_ATTR(REG, +1, BUF("\xbb\xbb\xbb\xbb", 4)))) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS(
|
||||
@@ -7093,7 +7093,7 @@ code = '''
|
||||
// create and delete two ids in the other order
|
||||
rbyd = init_rbyd;
|
||||
lfs_bd_erase(&lfs, rbyd.blocks[0]) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xaa\xaa\xaa\xaa", 4)),
|
||||
LFSR_ATTR(REG, +1, BUF("\xbb\xbb\xbb\xbb", 4)))) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
@@ -7113,7 +7113,7 @@ code = '''
|
||||
// create and delete three ids
|
||||
rbyd = init_rbyd;
|
||||
lfs_bd_erase(&lfs, rbyd.blocks[0]) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xaa\xaa\xaa\xaa", 4)),
|
||||
LFSR_ATTR(REG, +1, BUF("\xbb\xbb\xbb\xbb", 4)),
|
||||
LFSR_ATTR(REG, +1, BUF("\xcc\xcc\xcc\xcc", 4)))) => 0;
|
||||
@@ -7134,7 +7134,7 @@ code = '''
|
||||
// create and delete three ids in the other order
|
||||
rbyd = init_rbyd;
|
||||
lfs_bd_erase(&lfs, rbyd.blocks[0]) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xaa\xaa\xaa\xaa", 4)),
|
||||
LFSR_ATTR(REG, +1, BUF("\xbb\xbb\xbb\xbb", 4)),
|
||||
LFSR_ATTR(REG, +1, BUF("\xcc\xcc\xcc\xcc", 4)))) => 0;
|
||||
@@ -7175,7 +7175,7 @@ code = '''
|
||||
// create and delete one rid
|
||||
rbyd = init_rbyd;
|
||||
lfs_bd_erase(&lfs, rbyd.blocks[0]) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xaa\xaa\xaa\xaa", 4)),
|
||||
LFSR_ATTR(UATTR(1), 0, BUF("\xaa\xaa", 2)))) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
@@ -7193,7 +7193,7 @@ code = '''
|
||||
// create and delete two ids
|
||||
rbyd = init_rbyd;
|
||||
lfs_bd_erase(&lfs, rbyd.blocks[0]) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xaa\xaa\xaa\xaa", 4)),
|
||||
LFSR_ATTR(UATTR(1), 0, BUF("\xaa\xaa", 2)),
|
||||
LFSR_ATTR(REG, +1, BUF("\xbb\xbb\xbb\xbb", 4)),
|
||||
@@ -7214,7 +7214,7 @@ code = '''
|
||||
// create and delete two ids in the other order
|
||||
rbyd = init_rbyd;
|
||||
lfs_bd_erase(&lfs, rbyd.blocks[0]) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xaa\xaa\xaa\xaa", 4)),
|
||||
LFSR_ATTR(UATTR(1), 0, BUF("\xaa\xaa", 2)),
|
||||
LFSR_ATTR(REG, +1, BUF("\xbb\xbb\xbb\xbb", 4)),
|
||||
@@ -7236,7 +7236,7 @@ code = '''
|
||||
// create and delete three ids
|
||||
rbyd = init_rbyd;
|
||||
lfs_bd_erase(&lfs, rbyd.blocks[0]) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xaa\xaa\xaa\xaa", 4)),
|
||||
LFSR_ATTR(UATTR(1), 0, BUF("\xaa\xaa", 2)),
|
||||
LFSR_ATTR(REG, +1, BUF("\xbb\xbb\xbb\xbb", 4)),
|
||||
@@ -7260,7 +7260,7 @@ code = '''
|
||||
// create and delete three ids in the other order
|
||||
rbyd = init_rbyd;
|
||||
lfs_bd_erase(&lfs, rbyd.blocks[0]) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xaa\xaa\xaa\xaa", 4)),
|
||||
LFSR_ATTR(UATTR(1), 0, BUF("\xaa\xaa", 2)),
|
||||
LFSR_ATTR(REG, +1, BUF("\xbb\xbb\xbb\xbb", 4)),
|
||||
@@ -7325,7 +7325,7 @@ code = '''
|
||||
lfs_bd_erase(&lfs, rbyd.blocks[0]) => 0;
|
||||
|
||||
for (unsigned j = 0; j < N; j++) {
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, j-1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, j, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF(names[j % 6], 4)))) => 0;
|
||||
}
|
||||
assert(rbyd.weight == N);
|
||||
@@ -7388,7 +7388,7 @@ code = '''
|
||||
=> LFS_ERR_NOENT;
|
||||
|
||||
// try resuming from all tags being removed
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1,
|
||||
BUF("\xaa\xaa\xaa\xaa\xaa\xaa", 6)))) => 0;
|
||||
assert(rbyd.weight == 1);
|
||||
@@ -7470,7 +7470,7 @@ code = '''
|
||||
lfs_bd_erase(&lfs, rbyd.blocks[0]) => 0;
|
||||
|
||||
for (unsigned j = 0; j < N; j++) {
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, j-1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, j, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF(names[j % 6], 4)))) => 0;
|
||||
// note uattrs have a smaller size to help debugging
|
||||
for (unsigned u = 0; u < M; u++) {
|
||||
@@ -7538,7 +7538,7 @@ code = '''
|
||||
=> LFS_ERR_NOENT;
|
||||
|
||||
// try resuming from all tags being removed
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1,
|
||||
BUF("\xaa\xaa\xaa\xaa\xaa\xaa", 6)))) => 0;
|
||||
for (unsigned u = 0; u < M; u++) {
|
||||
@@ -7655,7 +7655,7 @@ code = '''
|
||||
sim[rid] = alpha[i % 26];
|
||||
count += 1;
|
||||
// update our rbyd
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid-1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF(&alpha[i % 26], 1)))) => 0;
|
||||
} else {
|
||||
// update our sim
|
||||
@@ -7725,7 +7725,7 @@ code = '''
|
||||
// make id0 with weight w1
|
||||
rbyd = init_rbyd;
|
||||
lfs_bd_erase(&lfs, rbyd.blocks[0]) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xaa\xaa\xaa\xaa", 4)))) => 0;
|
||||
|
||||
lfsr_rbyd_lookupnext(&lfs, &rbyd, 0, LFSR_TAG_REG,
|
||||
@@ -7744,7 +7744,7 @@ code = '''
|
||||
assert(lfsr_data_size(&data_) == 4);
|
||||
|
||||
// make id2 with weight w2
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +2, BUF("\xbb\xbb\xbb\xbb", 4)))) => 0;
|
||||
|
||||
lfsr_rbyd_lookupnext(&lfs, &rbyd, 0, LFSR_TAG_REG,
|
||||
@@ -7775,7 +7775,7 @@ code = '''
|
||||
assert(lfsr_data_size(&data_) == 4);
|
||||
|
||||
// make id5 with weight w3
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 2, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 3, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +3, BUF("\xcc\xcc\xcc\xcc", 4)))) => 0;
|
||||
|
||||
lfsr_rbyd_lookupnext(&lfs, &rbyd, 0, LFSR_TAG_REG,
|
||||
@@ -7818,7 +7818,7 @@ code = '''
|
||||
assert(lfsr_data_size(&data_) == 4);
|
||||
|
||||
// make id9 with weight w4
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 5, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 6, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +4, BUF("\xdd\xdd\xdd\xdd", 4)))) => 0;
|
||||
|
||||
lfsr_rbyd_lookupnext(&lfs, &rbyd, 0, LFSR_TAG_REG,
|
||||
@@ -7873,7 +7873,7 @@ code = '''
|
||||
assert(lfsr_data_size(&data_) == 4);
|
||||
|
||||
// make id14 with weight w5
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 9, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 10, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +5, BUF("\xee\xee\xee\xee", 4)))) => 0;
|
||||
|
||||
lfsr_rbyd_lookupnext(&lfs, &rbyd, 0, LFSR_TAG_REG,
|
||||
@@ -7961,7 +7961,7 @@ code = '''
|
||||
|
||||
rbyd = init_rbyd;
|
||||
lfs_bd_erase(&lfs, rbyd.blocks[0]) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
// make id0 with weight w1
|
||||
LFSR_ATTR(REG, +1, BUF("\xaa\xaa\xaa\xaa", 4)),
|
||||
// make id2 with weight w2
|
||||
@@ -8108,7 +8108,7 @@ code = '''
|
||||
}
|
||||
}
|
||||
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid*W-1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid*W, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +W,
|
||||
BUF(names[perm[j] % 6], 4)))) => 0;
|
||||
}
|
||||
@@ -8195,7 +8195,7 @@ code = '''
|
||||
}
|
||||
}
|
||||
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid*W-1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid*W, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +W,
|
||||
BUF(names[perm[j] % 6], 4)))) => 0;
|
||||
}
|
||||
@@ -8302,7 +8302,7 @@ code = '''
|
||||
assert(lfsr_data_size(&data_) == 2);
|
||||
|
||||
// make id2 with weight w2
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xbb\xbb\xbb\xbb", 4)),
|
||||
LFSR_ATTR(UATTR(1), 0, BUF("\xbb\xbb", 2)),
|
||||
LFSR_ATTR(GROW, +1, NULL()),
|
||||
@@ -8396,7 +8396,7 @@ code = '''
|
||||
assert(lfsr_data_size(&data_) == 2);
|
||||
|
||||
// make id5 with weight w3
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 2, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 3, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xcc\xcc\xcc\xcc", 4)),
|
||||
LFSR_ATTR(UATTR(1), 0, BUF("\xcc\xcc", 2)),
|
||||
LFSR_ATTR(GROW, +2, NULL()),
|
||||
@@ -8526,7 +8526,7 @@ code = '''
|
||||
assert(lfsr_data_size(&data_) == 2);
|
||||
|
||||
// make id9 with weight w4
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 5, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 6, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xdd\xdd\xdd\xdd", 4)),
|
||||
LFSR_ATTR(UATTR(1), 0, BUF("\xdd\xdd", 2)),
|
||||
LFSR_ATTR(GROW, +3, NULL()),
|
||||
@@ -8692,7 +8692,7 @@ code = '''
|
||||
assert(lfsr_data_size(&data_) == 2);
|
||||
|
||||
// make id14 with weight w5
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 9, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, 10, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF("\xee\xee\xee\xee", 4)),
|
||||
LFSR_ATTR(UATTR(1), 0, BUF("\xee\xee", 2)),
|
||||
LFSR_ATTR(GROW, +4, NULL()),
|
||||
@@ -9212,7 +9212,7 @@ code = '''
|
||||
}
|
||||
}
|
||||
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid*W-1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid*W, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF(names[perm[j] % 6], 4)),
|
||||
LFSR_ATTR(UATTR(1), 0, BUF(names[perm[j] % 6], 2)),
|
||||
LFSR_ATTR(GROW, +W-1, NULL()),
|
||||
@@ -9323,7 +9323,7 @@ code = '''
|
||||
}
|
||||
}
|
||||
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid*W-1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid*W, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF(names[perm[j] % 6], 4)),
|
||||
LFSR_ATTR(UATTR(1), 0, BUF(names[perm[j] % 6], 2)),
|
||||
LFSR_ATTR(GROW, +W-1, NULL()),
|
||||
@@ -9441,7 +9441,7 @@ code = '''
|
||||
}
|
||||
}
|
||||
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid*W-1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid*W, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +W,
|
||||
BUF(names[perm[j] % 6], 4)))) => 0;
|
||||
}
|
||||
@@ -9570,7 +9570,7 @@ code = '''
|
||||
}
|
||||
}
|
||||
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid*W-1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid*W, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +W,
|
||||
BUF(names[perm[j] % 6], 4)))) => 0;
|
||||
}
|
||||
@@ -9708,7 +9708,7 @@ code = '''
|
||||
}
|
||||
}
|
||||
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid*W-1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid*W, LFSR_ATTRS(
|
||||
LFSR_ATTR(UATTR(2), +W,
|
||||
BUF(names[perm[j] % 6], 4)))) => 0;
|
||||
}
|
||||
@@ -9858,7 +9858,7 @@ code = '''
|
||||
}
|
||||
}
|
||||
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid*W-1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid*W, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +W,
|
||||
BUF(names[perm[j] % 6], 4)))) => 0;
|
||||
}
|
||||
@@ -9987,7 +9987,7 @@ code = '''
|
||||
}
|
||||
}
|
||||
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid*W-1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid*W, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +W,
|
||||
BUF(names[perm[j] % 6], 4)))) => 0;
|
||||
}
|
||||
@@ -10125,7 +10125,7 @@ code = '''
|
||||
}
|
||||
}
|
||||
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid*W-1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid*W, LFSR_ATTRS(
|
||||
LFSR_ATTR(UATTR(2), +W,
|
||||
BUF(names[perm[j] % 6], 4)))) => 0;
|
||||
}
|
||||
@@ -10274,7 +10274,7 @@ code = '''
|
||||
}
|
||||
}
|
||||
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid*W-1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid*W, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +W,
|
||||
BUF(names[perm[j] % 6], 4)))) => 0;
|
||||
}
|
||||
@@ -10331,7 +10331,7 @@ code = '''
|
||||
|
||||
// try recreating the rid to make sure things still work
|
||||
printf("--- create: %d ---\n", j);
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, j*W-1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, j*W, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +W, BUF(names[j % 6], 6)))) => 0;
|
||||
assert(rbyd.weight == N*W);
|
||||
|
||||
@@ -10430,7 +10430,7 @@ code = '''
|
||||
}
|
||||
}
|
||||
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid*W-1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid*W, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +W,
|
||||
BUF(names[perm[j] % 6], 4)))) => 0;
|
||||
}
|
||||
@@ -10623,7 +10623,7 @@ code = '''
|
||||
sim[rid*(M+1)] = alpha[i % 26];
|
||||
count += 1;
|
||||
// update our rbyd
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid-1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF(&alpha[i % 26], 1)))) => 0;
|
||||
} else if (op == 1) {
|
||||
// update our sim
|
||||
@@ -10788,7 +10788,7 @@ code = '''
|
||||
sim_weights[rid] = weight;
|
||||
count += 1;
|
||||
// update our rbyd
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, weighted_rid-1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, weighted_rid, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +weight, BUF(&alpha[i % 26], 1)))) => 0;
|
||||
} else if (op == 1) {
|
||||
// get the correct weight from the sim
|
||||
@@ -10950,7 +10950,7 @@ code = '''
|
||||
}
|
||||
|
||||
// give each attr a subtype based on its rid + SHIFT
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid-1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF(names[perm[j] % 6], 4)),
|
||||
LFSR_ATTR(UATTR((perm[j] + SHIFT) & 0x7f), 0,
|
||||
BUF(names[perm[j] % 6], 2)))) => 0;
|
||||
@@ -11037,7 +11037,7 @@ code = '''
|
||||
}
|
||||
|
||||
// give each attr a subtype based on its rid + SHIFT
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid-1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF(names[perm[j] % 6], 4)),
|
||||
LFSR_ATTR(UATTR((perm[j] + SHIFT) & 0x7f), 0,
|
||||
BUF(names[perm[j] % 6], 2)))) => 0;
|
||||
@@ -11176,7 +11176,7 @@ code = '''
|
||||
}
|
||||
|
||||
// give each attr a subtype based on its rid + SHIFT
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid-1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF(names[perm[j] % 6], 4)),
|
||||
LFSR_ATTR(UATTR((perm[j] + SHIFT) & 0x7f), 0,
|
||||
BUF(names[perm[j] % 6], 2)))) => 0;
|
||||
@@ -11317,7 +11317,7 @@ code = '''
|
||||
}
|
||||
|
||||
// give each attr a subtype based on its rid + SHIFT
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid-1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF(names[perm[j] % 6], 4)),
|
||||
LFSR_ATTR(UATTR((perm[j] + SHIFT) & 0x7f), 0,
|
||||
BUF(names[perm[j] % 6], 2)),
|
||||
@@ -11406,7 +11406,7 @@ code = '''
|
||||
}
|
||||
|
||||
// give each attr a subtype based on its rid + SHIFT
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid-1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF(names[perm[j] % 6], 4)),
|
||||
LFSR_ATTR(UATTR((perm[j] + SHIFT) & 0x7f), 0,
|
||||
BUF(names[perm[j] % 6], 2)),
|
||||
@@ -11554,7 +11554,7 @@ code = '''
|
||||
}
|
||||
|
||||
// give each attr a subtype based on its rid + SHIFT
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid-1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF(names[perm[j] % 6], 4)),
|
||||
LFSR_ATTR(UATTR((perm[j] + SHIFT) & 0x7f), 0,
|
||||
BUF(names[perm[j] % 6], 2)),
|
||||
@@ -11704,7 +11704,7 @@ code = '''
|
||||
}
|
||||
|
||||
// give each attr a subtype based on its rid + SHIFT
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid-1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid, LFSR_ATTRS(
|
||||
LFSR_ATTR(UATTR((perm[j] + SHIFT) & 0x7f), +1,
|
||||
BUF(names[perm[j] % 6], 4)))) => 0;
|
||||
}
|
||||
@@ -11790,7 +11790,7 @@ code = '''
|
||||
}
|
||||
|
||||
// give each attr a subtype based on its rid + SHIFT
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid-1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid, LFSR_ATTRS(
|
||||
LFSR_ATTR(UATTR((perm[j] + SHIFT) & 0x7f), +1,
|
||||
BUF(names[perm[j] % 6], 4)))) => 0;
|
||||
}
|
||||
@@ -11931,7 +11931,7 @@ code = '''
|
||||
}
|
||||
|
||||
// give each attr a subtype based on its rid + SHIFT
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid-1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid, LFSR_ATTRS(
|
||||
LFSR_ATTR(UATTR((perm[j] + SHIFT) & 0x7f), +1,
|
||||
BUF(names[perm[j] % 6], 4)))) => 0;
|
||||
}
|
||||
@@ -12065,7 +12065,7 @@ code = '''
|
||||
}
|
||||
|
||||
// give each attr a subtype based on its rid + SHIFT
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid-1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF(names[perm[j] % 6], 4)),
|
||||
LFSR_ATTR(UATTR((perm[j] + SHIFT) & 0x7f), 0,
|
||||
BUF(names[perm[j] % 6], 2)))) => 0;
|
||||
@@ -12152,7 +12152,7 @@ code = '''
|
||||
}
|
||||
|
||||
// give each attr a subtype based on its rid + SHIFT
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid-1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF(names[perm[j] % 6], 4)),
|
||||
LFSR_ATTR(UATTR((perm[j] + SHIFT) & 0x7f), 0,
|
||||
BUF(names[perm[j] % 6], 2)))) => 0;
|
||||
@@ -12291,7 +12291,7 @@ code = '''
|
||||
}
|
||||
|
||||
// give each attr a subtype based on its rid + SHIFT
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid-1, LFSR_ATTRS(
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, rid, LFSR_ATTRS(
|
||||
LFSR_ATTR(REG, +1, BUF(names[perm[j] % 6], 4)),
|
||||
LFSR_ATTR(UATTR((perm[j] + SHIFT) & 0x7f), 0,
|
||||
BUF(names[perm[j] % 6], 2)))) => 0;
|
||||
|
||||
Reference in New Issue
Block a user