Martin Kleppmann
975338900c
Document another suspected bug
...
Testing this is harder because I need to construct a tree in which list
elements are split across multiple tree nodes, and the number of list
elements required to trigger this condition depends on the branching
factor of the tree, which I don't really want to hard-code into the
tests in case we change it...
2022-03-30 13:12:07 -04:00
Martin Kleppmann
361db06eb5
Delete unnecessary code
...
This check is not needed because the case `e == HEAD` can only happen if
`self.op` is a list insertion operation, and an insertion operation
always has empty `preds`, so it can never overwrite any existing list
element.
2022-03-30 13:12:07 -04:00
Martin Kleppmann
ba177c3d83
Fix broken handling of conflicts on list elements
2022-03-30 13:12:07 -04:00
Martin Kleppmann
fa0a8953dc
More tests and comments
2022-03-30 13:12:07 -04:00
Martin Kleppmann
cf508a94a9
Slight simplification
2022-03-30 13:12:07 -04:00
Martin Kleppmann
289dd95196
Fix index calculation for insertions at the head
2022-03-30 13:12:07 -04:00
Martin Kleppmann
c908979372
Fix search for the correct insertion position
2022-03-30 13:12:07 -04:00
Martin Kleppmann
7025bb6541
Tests and fixes for list patches
2022-03-30 13:12:07 -04:00
Martin Kleppmann
145969152a
Fix conversion of OpId to ExId when referring to root object
2022-03-30 13:12:07 -04:00
Martin Kleppmann
94ff10f690
Rename and reformat a bit
2022-03-30 13:12:07 -04:00
Martin Kleppmann
26efee509d
First patch implementation from pairing session with Orion
2022-03-30 13:12:01 -04:00
Andrew Jeffery
3039efca9b
Use pending_ops rather than direct len of operations
2022-03-30 12:18:44 +01:00
Andrew Jeffery
a989e294f8
Use entry api in index
2022-03-29 21:05:09 +01:00
Andrew Jeffery
3c294d8fca
Document some fields on structs
2022-03-29 21:05:03 +01:00
Andrew Jeffery
0af471a1a1
Document object_type function
2022-03-29 20:45:20 +01:00
Andrew Jeffery
0da8ceddce
Use iter() in IntoIterator
2022-03-29 20:34:20 +01:00
Orion Henry
be8f367d07
missing test tag
2022-03-29 11:39:25 -04:00
Orion Henry
93082ad6a9
Merge pull request #319 from jeffa5/experiment-broken-list
...
Add broken list tests
2022-03-29 11:14:46 -04:00
Orion Henry
fb586455dd
Merge branch 'experiment' into experiment-broken-list
2022-03-29 11:14:35 -04:00
Orion Henry
5d9880e1e1
Merge pull request #320 from jeffa5/experiment-last-elem
...
Fix nth query's last_elem
2022-03-29 11:08:31 -04:00
Andrew Jeffery
f002e7261b
Update comments
2022-03-28 10:37:14 +01:00
Andrew Jeffery
636fe75647
Simplify query_node for insert and nth
2022-03-28 10:34:00 +01:00
Andrew Jeffery
1c6032bee0
Reset B to 16
2022-03-28 10:33:42 +01:00
Andrew Jeffery
fb6f2787b2
Remove last_elem in nth query
2022-03-28 10:18:15 +01:00
Andrew Jeffery
ece1e22283
Fix clippy
2022-03-28 10:18:15 +01:00
Andrew Jeffery
8f201562c3
Add better comments
2022-03-28 10:18:15 +01:00
Andrew Jeffery
a19aae484c
Don't set last_seen unless the elemid was actually visible
2022-03-28 10:18:15 +01:00
Andrew Jeffery
b280138f84
Remove explicit len on index
2022-03-28 10:18:13 +01:00
Andrew Jeffery
1b5730c0ae
Fix insert query to not skip past insert positions
...
When inserting and we have seen enough elements then look for the first
index to insert at rather than skipping over it.
2022-03-28 10:17:46 +01:00
Andrew Jeffery
49c4bf4911
Rename has to has_visible
2022-03-28 10:17:46 +01:00
Andrew Jeffery
a30bdc3888
Add broken list tests
2022-03-28 10:17:46 +01:00
Andrew Jeffery
e945ebbe74
Remove last_elem from nth_at
2022-03-27 15:35:44 +01:00
Andrew Jeffery
20229ee2d0
Remove last_elem in nth query
2022-03-27 15:28:49 +01:00
Andrew Jeffery
83d298ce8d
Add test for broken last_elem
2022-03-27 15:28:49 +01:00
Andrew Jeffery
192356c099
Merge pull request #318 from jeffa5/experiment-query-consts
...
Remove unnecessary consts in queries
2022-03-26 12:35:39 -05:00
Andrew Jeffery
666782896d
Remove unnecessary consts in queries
2022-03-26 09:11:41 +00:00
Andrew Jeffery
edbfce056c
Merge pull request #317 from jeffa5/experiment-nonzero-start_op
...
Make start_op be nonzero to prevent bad loads
2022-03-24 12:17:28 -05:00
Andrew Jeffery
9cb52d127f
Merge pull request #316 from jeffa5/experiment-errors
...
Expose encoding and decoding errors
2022-03-24 12:17:12 -05:00
Andrew Jeffery
ed244d980a
Make start_op be nonzero to prevent bad loads
2022-03-24 16:42:46 +00:00
Andrew Jeffery
ec3785ab2b
Expose encoding and decoding errors
2022-03-24 16:20:23 +00:00
Orion Henry
f5e8b998ca
expose getChangeByHash in wasm
2022-03-23 09:34:44 -04:00
Orion Henry
9e1a063bc0
v20 - object replacement char
2022-03-14 14:47:54 -04:00
Andrew Jeffery
a4e8d20266
Optimise getting number of ops when applying tx or changes
2022-03-11 12:25:34 +00:00
Andrew Jeffery
ac18f7116f
And fixup IntoIterator
2022-03-11 12:25:18 +00:00
Andrew Jeffery
67251f4d53
Have splice take IntoIterator
2022-03-11 12:24:02 +00:00
Andrew Jeffery
2e49561ab2
Make splice take iterator instead of vec
2022-03-11 12:13:11 +00:00
Andrew Jeffery
927c867884
Replace no longer returns an op
2022-03-11 12:04:00 +00:00
Andrew Jeffery
288b4674a0
Merge pull request #308 from jeffa5/experiment-redundant-objid
...
Remove obj and change from Op
2022-03-11 11:40:52 +00:00
Andrew Jeffery
488df55385
Remove change field on Op as unused
...
This field was never read from.
2022-03-11 11:40:42 +00:00
Andrew Jeffery
a2cb15e936
Remove obj from the op as it can be gotten from the optree
...
This makes the Op struct smaller, helping memory usage and cache
coherence.
2022-03-11 11:40:28 +00:00