Zixuan Chen
4e64051c58
fix: detect importing outdated updates on gc doc
2024-08-26 22:14:23 +08:00
Zixuan Chen
cfe8652415
feat: basic gc mode impl
2024-08-26 21:21:33 +08:00
Zixuan Chen
82d035442c
feat: add new export from mode for new storage format
2024-08-26 17:10:38 +08:00
Zixuan Chen
f293a796f2
Merge branch 'dev' into feat-gc
2024-08-25 21:14:04 +08:00
Zixuan Chen
e084eca580
Merge branch 'main' into dev
2024-08-25 21:12:07 +08:00
Leon Zhao
2f0a3ab92f
fix: delete the **bring back** tree node from the undo container remap ( #423 )
2024-08-25 20:34:05 +08:00
Zixuan Chen
8fbfea4bda
test: skip undo-redo assertion in fuzz for now
2024-08-25 19:42:57 +08:00
Zixuan Chen
4f338dc14d
refactor: org fast snapshot
2024-08-25 19:27:46 +08:00
Zixuan Chen
03c3e0b0b8
refactor: rm arc in tree hist cache
2024-08-24 15:05:38 +08:00
Zixuan Chen
ca9298507e
refactor: make tree history cache fields private
2024-08-24 15:02:59 +08:00
Zixuan Chen
1812caea65
Refactor: use kv internally for docstate ( #426 )
...
* refactor: use kv in state
* refactor: do not load the state into the inner fxhashmap if not needed
* refactor: calc offset without unsafe code
* style: replace unsafe code
2024-08-24 14:16:06 +08:00
Zixuan Chen
95bec549d7
feat: support commit message ( #429 )
...
* feat: support commit message
* test: refine test
2024-08-24 14:15:40 +08:00
Zixuan Chen
81515ba6d3
refactor: reuse the peer id in map fast snapshot if we can ( #430 )
2024-08-24 14:15:10 +08:00
Zixuan Chen
c2c727de6f
test: use less strict tree tracker for fuzzing
2024-08-23 23:36:28 +08:00
Zixuan Chen
5ba3fba3f3
Fix real_id setting err in tracker ( #427 )
...
* test: add a failed test case
* fix: tracker real_id setting err
2024-08-22 21:42:00 +08:00
leeeon233
a6f8c9c2d2
fix: tree apply diff when before dead after alive
2024-08-22 16:44:52 +08:00
Zixuan Chen
bcabf682e9
test: a failed case
2024-08-22 13:25:19 +08:00
Zixuan Chen
3f2c7d9498
fix: ignore undo failures
...
It could happen when using movable list in collab env. But it's extremely rare.
2024-08-21 23:27:43 +08:00
Leon Zhao
7402ff6788
chore: new fuzz test
2024-08-21 22:56:58 +08:00
Zixuan Chen
86aeaad97d
fix: movable list apply diff err
2024-08-21 18:38:46 +08:00
Zixuan Chen
f142afd431
test: minimize
2024-08-21 18:21:25 +08:00
Leon Zhao
2b2270ab99
test: add test
2024-08-21 18:21:25 +08:00
Zixuan Chen
5a03e7fa3a
fix: issue when getting container value
2024-08-21 12:02:35 +08:00
Zixuan Chen
d689db619f
feat: get path to container
2024-08-21 12:02:07 +08:00
Zixuan Chen
be0a7979cd
chore: fix type err
2024-08-21 11:30:03 +08:00
Zixuan Chen
0717aadd79
feat(dev): add a way to analyze the containers of the doc
2024-08-21 11:18:06 +08:00
Zixuan Chen
37046f8e41
chore: rm log
2024-08-20 19:54:37 +08:00
Zixuan Chen
be0f32eed6
fix: iter change error
2024-08-20 19:50:47 +08:00
Zixuan Chen
a7d9f3f5d3
test: add a failed test case
2024-08-20 08:34:11 +08:00
Zixuan Chen
544a8ebfcc
test: add a multithread test case minify method
2024-08-20 01:41:44 +08:00
Zixuan Chen
5b7ac90e54
refactor: simplify state code
2024-08-20 00:20:25 +08:00
Leon Zhao
79e9f29656
fix: delete the **bring back** tree node from the undo container remap ( #423 )
2024-08-19 21:52:30 +08:00
Zixuan Chen
1d58d69f28
test: add load + get value bench
2024-08-19 21:30:03 +08:00
Zixuan Chen
8ac4322bb6
test: add text bench
2024-08-19 21:15:48 +08:00
Zixuan Chen
c8bd656658
test: avoid super slow fuzzing unit
2024-08-19 17:15:08 +08:00
Zixuan Chen
d192c8607f
chore: display wasm size after building
2024-08-19 15:30:15 +08:00
Zixuan Chen
756f0c9ecf
fix: fix a few place that violate the dag's invariants
2024-08-19 15:12:20 +08:00
Zixuan Chen
65b9263231
refactor: add external_vv to change_store
2024-08-19 12:01:27 +08:00
Zixuan Chen
5f70310681
chore: fix warning - rm a redundant field
2024-08-19 11:39:35 +08:00
Zixuan Chen
ea5f91f6a6
chore: fix typos
2024-08-19 11:36:59 +08:00
Zixuan Chen
0619d7ae89
refactor: refine history cache (use type as constrain)
2024-08-19 11:34:34 +08:00
Zixuan Chen
c206365455
chore: fix warnings
2024-08-19 11:26:10 +08:00
Zixuan Chen
1c6221cf45
test: add a new failed test case
2024-08-19 10:59:57 +08:00
Zixuan Chen
3e70302d51
refactor: org change_store
2024-08-19 10:59:21 +08:00
Zixuan Chen
b06f617d3b
fix: frontiers_to_vv err
2024-08-18 21:45:11 +08:00
Zixuan Chen
6fd6aeb13d
fix: map event error
2024-08-18 20:40:53 +08:00
Zixuan Chen
b5eb176b3f
fix: mark flush on push_change
2024-08-18 18:32:41 +08:00
Zixuan Chen
6f9329adc2
fix: change_store loading cache error
2024-08-18 18:15:53 +08:00
Zixuan Chen
21c915163b
fix: avoid dag internal lock issue
2024-08-18 16:38:44 +08:00
Zixuan Chen
32922d20f5
fix: potential child parent link issue & map entry idlp bug
2024-08-18 16:23:17 +08:00
Zixuan Chen
3ba8ad5f12
fix: getting parent for root container error
2024-08-18 15:07:56 +08:00
Zixuan Chen
c97f1eec58
fix: tree snapshot encode decode err
2024-08-18 14:40:23 +08:00
Zixuan Chen
0c59bd2dcc
refactor: simplify dag and inserting change
2024-08-18 14:34:27 +08:00
Zixuan Chen
4df37ba170
fix: tree fast snapshot err
2024-08-18 14:32:39 +08:00
Zixuan Chen
fbd5d6725a
fix: bugs related to fast snapshot
2024-08-18 00:54:27 +08:00
Zixuan Chen
6c88847756
feat: now support treating fast snapshot as updates
2024-08-18 00:31:18 +08:00
Zixuan Chen
d8e2cdb756
refactor: rm outdated code
2024-08-17 23:53:18 +08:00
Zixuan Chen
c23e29ddb1
perf: replace md5 with xxhash for checksum
2024-08-17 23:32:09 +08:00
Zixuan Chen
1fc4b01f56
refactor: refine change store inner
2024-08-17 22:17:04 +08:00
Zixuan Chen
24a4f9839e
fix: add text example for bench & fix a few related bugs
2024-08-17 22:00:39 +08:00
Zixuan Chen
6126906ec2
perf: make idlp to id much faster
...
by using binary search on top of .range
2024-08-17 21:16:44 +08:00
Zixuan Chen
89327c3d68
feat: fast snapshot mode init
2024-08-17 19:04:19 +08:00
Zixuan Chen
f2d02f9fca
fix: container store fast snapshot
2024-08-17 16:52:46 +08:00
Zixuan Chen
24583ba33a
refactor: refine parent info register
2024-08-17 15:05:54 +08:00
Zixuan Chen
a7816af173
fix: lock issues
2024-08-16 23:52:58 +08:00
Zixuan Chen
a134bf88e3
feat: make dag able to lazy load the graph
2024-08-16 23:39:42 +08:00
Zixuan Chen
14178eeb2c
refactor: move handle new change inside loro_dag
2024-08-16 15:29:51 +08:00
Zixuan Chen
7a460414d4
fix: get lamport lte
...
fix failed wasm tests
2024-08-16 12:14:07 +08:00
Zixuan Chen
59e31c1370
refactor: provide better encapsulation for dag
...
make all the fields private
2024-08-16 11:40:29 +08:00
Zixuan Chen
35f0f811eb
refactor: move dag logic to dag mod
2024-08-16 10:56:35 +08:00
Zixuan Chen
cb3458b862
docs: leave some comments
2024-08-16 10:47:56 +08:00
Zixuan Chen
dd5c1bea72
refactor: reduce op inner content size by 1/6
2024-08-16 10:45:04 +08:00
Zixuan Chen
c0a8d4fc36
refactor: rm the unsound workaround and just use clone
2024-08-15 22:48:39 +08:00
Zixuan Chen
ea20f62d31
fix: make it work
...
but it may be unsound
2024-08-15 22:21:57 +08:00
Zixuan Chen
6568af86b9
chore: bk did not fix lifetime issue
2024-08-15 18:12:55 +08:00
Zixuan Chen
e05d991954
refactor: rm the need for refresh frontiers
2024-08-15 10:33:46 +08:00
Zixuan Chen
0aa534a9ba
chore: save frontiers to kv as well
2024-08-15 08:44:35 +08:00
Zixuan Chen
de8f9e38aa
refactor: change store internal
2024-08-15 08:28:11 +08:00
Zixuan Chen
957a002741
refactor: org tree state
2024-08-14 17:51:45 +08:00
Zixuan Chen
e19e1af543
perf: better tree fast snapshot
2024-08-13 22:47:55 +08:00
Zixuan Chen
a8c1180810
refactor: add an optional field about bool_rle in tree for future use
2024-08-13 21:27:19 +08:00
Zixuan Chen
1e12fd6b20
perf: optimize tree checkout diff a bit
2024-08-13 20:34:07 +08:00
Zixuan Chen
2881b45bfe
perf: reduce mem use of tree history cache
2024-08-13 20:30:20 +08:00
Zixuan Chen
c8f505539e
refactor: wrap a arc around tree op
2024-08-13 17:51:24 +08:00
Zixuan Chen
0c1e1d47a2
fix: refine tree ds a bit
2024-08-13 17:38:37 +08:00
Zixuan Chen
fac3f07a70
perf: optimize how tree history cache store ops mapping
2024-08-13 16:55:18 +08:00
Zixuan Chen
68b717cfb3
chore: tree ds
2024-08-13 16:43:39 +08:00
Zixuan Chen
32687f61e8
chore: add rle vec
2024-08-13 11:47:57 +08:00
Zixuan Chen
7b81bed19d
refactor: rm unused code
2024-08-12 13:42:36 +08:00
Zixuan Chen
a615104fb1
perf: speedup id_to_cursor worst case
...
https://linear.app/loro/issue/LORO-834
2024-08-11 22:56:36 +08:00
Zixuan Chen
bf5a03e152
refactor: bk, before enable tree insert set
2024-08-11 20:48:43 +08:00
Zixuan Chen
84fe79e63f
test: bench large movable list
2024-08-11 17:36:58 +08:00
Zixuan Chen
0faa860d59
docs: rm warning
2024-08-11 11:04:53 +08:00
Zixuan Chen
870230c3e1
perf: optimize mem layout of history cache of map and movable list (experimental)
...
This change has not been benchmarked yet. Maybe need to be reverted.
2024-08-10 23:49:14 +08:00
Zixuan Chen
e00337d7d8
chore: cleanup
2024-08-10 17:38:24 +08:00
Zixuan Chen
0bac73b029
perf: optimize how to store fractional index in change block
2024-08-10 15:40:56 +08:00
Zixuan Chen
c8bab8f663
chore: add rand
2024-08-10 15:38:06 +08:00
Zixuan Chen
0ff6a736e0
test: add tree mem bench
2024-08-10 15:36:35 +08:00
Zixuan Chen
bdc8b4b908
fix: split large change when importing
2024-08-09 17:27:07 +08:00
Zixuan Chen
42329a20ea
feat: add a few methods to free memory
2024-08-09 16:03:13 +08:00
Zixuan Chen
ce842a3aee
chore: add 10M cells bench
2024-08-09 14:56:56 +08:00
Zixuan Chen
be191f32bd
chore: add method to monitor the memory usage
2024-08-09 14:31:33 +08:00
Zixuan Chen
65cf79da66
feat: api to free history cache
2024-08-09 12:02:15 +08:00
Zixuan Chen
b5503f8d99
docs: refine docs about event ( #417 )
2024-08-09 04:10:11 +08:00
Zixuan Chen
94f8acd224
refactor: lazy load the history cache
2024-08-08 23:27:55 +08:00
Zixuan Chen
480e74b083
refactor: differentiate two different history cache
2024-08-08 21:26:03 +08:00
Zixuan Chen
868ee2e8cc
docs: add notes about apply diff
2024-08-08 18:27:49 +08:00
Zixuan Chen
2b6dae8393
fix: tree event when using import greater updates
2024-08-08 17:58:12 +08:00
Zixuan Chen
b40f273b7a
refactor: add import greater updates mode to tree import
2024-08-08 16:33:02 +08:00
Zixuan Chen
62d4c9ca5d
fix: add importGreaterUpdates variants to diffmode
2024-08-08 14:57:11 +08:00
Zixuan Chen
de78cf9636
refactor: add linear diff calc mode to tree
2024-08-08 10:39:04 +08:00
Zixuan Chen
9d8221ca29
fix: text diff calc refactor err
2024-08-08 00:36:59 +08:00
Zixuan Chen
af274eac79
refactor: add linear mode for text
2024-08-07 23:42:15 +08:00
Zixuan Chen
a9c6c32b3e
refactor: rename op group to history cache
2024-08-07 19:26:21 +08:00
Zixuan Chen
76ff328290
refactor: use less history cache for movable list diff calc
2024-08-07 19:25:40 +08:00
Zixuan Chen
fd26e6c71a
refactor: rm group list pos to elem id map in movable list history cache
2024-08-07 00:05:18 +08:00
Zixuan Chen
e79397c6b4
refactor: rename move's from_id to elem_id
2024-08-06 23:47:13 +08:00
Zixuan Chen
b791157494
refactor: make map import independent from history cache
2024-08-06 23:22:24 +08:00
Zixuan Chen
06ea79b900
refactor: add diff mode
2024-08-06 17:10:51 +08:00
Zixuan Chen
7e7fe782b4
refactor: refine movable list internal event
2024-08-06 15:34:55 +08:00
Zixuan Chen
86d3e65159
docs: fix typo
2024-07-31 23:01:35 +08:00
东灯
251c9c7787
feat: check invalid root container name ( #411 )
2024-07-29 15:06:31 +08:00
Zixuan Chen
59c89ad8e7
fix: workaround lldb bug make loro crate debuggable ( #414 )
2024-07-29 12:06:07 +08:00
东灯
9d7b5b8474
feat & perf: add map.contains_key and perf map.len ( #409 )
...
* feat & perf: add map.contains_key and perf map.len
* chore: remove unused import
2024-07-25 16:40:08 +08:00
东灯
7e4500620d
style: use clippy to perf code ( #407 )
2024-07-24 17:39:29 +08:00
Zixuan Chen
e13c7ff174
chore: add method to ensure cids in block header are decoded
2024-07-24 16:06:33 +08:00
Zixuan Chen
618c38c7b9
fix: resolve LORO-766
2024-07-24 15:44:48 +08:00
东灯
e01505e013
feat: add text update API ( #404 )
...
* feat: add diff algorithm
* feat: implement DiffHook
* feat: add rust/typescript API
* feat: use u8 to enable SIMD
* feat: add SIMD support
* test: add a failed test case
* revert: change to unicode index
* fix: text event index correctness when using utf8 or unicode
* fix: use unicode index
* fix: apply delta
* fix: remove splice_unicode
---------
Co-authored-by: Zixuan Chen <remch183@outlook.com>
2024-07-23 21:22:47 +08:00
Patrick Arminio
b8f9fafed0
Add code
to the default rich text configuration ( #406 )
2024-07-21 19:14:22 +08:00
Zixuan Chen
3d516a3e18
refactor: op group -> history cache
2024-07-18 15:44:50 +08:00
Zixuan Chen
06cd6b577d
refactor: rename "OpGroup" to "ContainerHistoryCache"
2024-07-17 12:32:03 +08:00
Zixuan Chen
59f09e7162
Merge branch 'main' into zxch3n/kv-store-trait
2024-07-17 12:16:53 +08:00
Zixuan Chen
ca6a7c897e
fix: warnings
2024-07-17 12:15:16 +08:00
Zixuan Chen
b39c45fa2e
chore: rm export blocks and import blocks
2024-07-17 12:10:58 +08:00
github-actions[bot]
d2b0520f86
chore: version packages ( #403 )
...
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-07-14 17:03:19 +08:00
Yang Si
ce88b326dd
fix: when computing the len of the map, do not count elements that are None ( #402 )
2024-07-14 16:40:46 +08:00
Zixuan Chen
bc63d250e2
Merge branch 'main' into zxch3n/kv-store-trait
2024-07-14 13:59:14 +08:00
东灯
c710ec3dd3
feat: add more text api ( #398 )
...
* feat: add char_at
* feat: add slice
* feat: add splice
* feat: add rust/typescript API
* fix: ci test
* fix: patch
* fix: patch
* Update crates/loro-wasm/src/lib.rs
Co-authored-by: Zixuan Chen <remch183@outlook.com>
* Update crates/loro-wasm/src/lib.rs
Co-authored-by: Zixuan Chen <remch183@outlook.com>
* Update crates/loro/src/lib.rs
Co-authored-by: Zixuan Chen <remch183@outlook.com>
* perf: use entity index
* fix: patch
* fix: error brackets
---------
Co-authored-by: Zixuan Chen <remch183@outlook.com>
2024-07-14 13:06:04 +08:00
东灯
2f95480e96
feat: add text iter ( #400 )
...
* feat: add text iter
* doc: fix return error
* doc: add callback explain
* perf: change to iterate spans
2024-07-13 23:34:37 +08:00
Leon Zhao
00e9c8d031
fix: tree diff calc children should be sorted by idlp ( #401 )
2024-07-13 23:26:38 +08:00
Zixuan Chen
9f7783516d
refactor: use BTree in dag
2024-07-12 22:51:13 +08:00
Zixuan Chen
2a4e089208
chore: rm logs
2024-07-12 18:12:21 +08:00
Zixuan Chen
46000420e8
Merge main
2024-07-12 16:15:54 +08:00
Zixuan Chen
23fbae1f80
refactor: make vv in dag optional
2024-07-12 15:19:40 +08:00
Leon Zhao
71e5afa6cc
fix: tree undo when processing deleted node ( #399 )
2024-07-12 10:53:48 +08:00
Zixuan Chen
a924b3e55b
fix: change block encode & decode
2024-07-11 23:54:09 +08:00
Leon Zhao
00e7bf2911
chore: rename position to fractional_index ( #381 )
...
Breaking Change:
- rename `position` to `fractional_index`
2024-07-11 22:03:48 +08:00
东灯
86c760abd0
feat: add insert_utf8 and delete_utf8 for Rust Text API ( #396 )
...
* feat: add insert_utf8
* chore: merge insert functions
* fix: use utf8_to_unicode_index to reslove index
* fix: add bound-check and use unicode PosType
* feat: add delete_utf8
* perf: O(LogN) insert_utf8
* feat: add utf-16 cross unicode check
* perf: O(LogN) delete_utf8
* chore: add api
* chore: remove unused function
* fix: api name and bindgen name
* test: add utf8 js test
---------
Co-authored-by: Zixuan Chen <remch183@outlook.com>
2024-07-10 10:20:08 +08:00
Zixuan Chen
354f429381
feat: impl import_all export_all apis
2024-07-09 23:07:57 +08:00
Zixuan Chen
27daa08b77
pr: impl kv store
2024-07-09 00:32:16 +08:00
Zixuan Chen
f802ede4b9
refactor: impl HasCounter explicitly to speedup
2024-07-09 00:02:41 +08:00
Zixuan Chen
d69e4c9c30
Refactor ChangeStore to use external KV store and improve block management
...
- Add ID serialization methods in loro-common
- Update KvStore trait with binary search and double-ended iterator
- Modify export/import blocks to use bytes::Bytes
- Refactor ChangeStore to use external KV store for persistence
- Implement flush, encode_all, and decode_all methods for ChangeStore
- Update change retrieval and iteration methods to work with new block management
- Improve block parsing and caching mechanisms
2024-07-08 17:33:57 +08:00
Zixuan Chen
391bd5ad0a
bk: kv store init; refine block encode format
2024-07-04 23:41:53 +08:00
Zixuan Chen
ec905635fd
chore: update fuzz config
2024-07-04 20:06:18 +08:00
Zixuan Chen
9047065843
Fix undo with checkout ( #375 )
...
* fix: should transform checkout event
* chore: update fuzz dep
* chore: add pos to error info
* fix: clear undo/redo stack when checkingout
* test: update fuzz dep
* test: a new failed test case
* fix: tree transform
* chore: fuzz
* chore: add log
* chore: add more logs
* fix: compose err
* chore: fuzz test dep
* test: a failed tree case
* fix: undo tree event
* fix: do not compare tree position in fuzz
* fix: fuzz rev
* test: a failed tree case
* fix: add tree compose
* chore: add comment
* chore: fuzz
* fix: test
* fix: tree transform
* fix: tree transform index
* fix: sort tree index
* chore: fuzz
* fix: undo/redo remote change effect compose
* bk
* fix: tree undo redo (#385 )
* fix: event hint none
* chore: fuzz version
* ci: fuzz
* bk: weird err
* fix: type err
* fix: fractional index between
* fix: wasm counter feature
* test: a new failed case
* fix: recursively create child nodes
* fix: filter empty event
* bk
* bk
* fix: tree undo redo remap
* chore: clean
* bk
* fix: tree need remap first
* fix: tree undo effect
* fix: tree diff calc
* fix: tree fuzz check eq func
* fix: remove EventHint None
* chore: cargo fix
* fix: tree uncreate
* fix: fuzz tree assert only structure
* refactor: rename methods
* fix: movable tree apply delta
* fix: another movable list issue
* chore: fuzz only check 1 actor's history
---------
Co-authored-by: Leon Zhao <leeeon233@gmail.com>
2024-07-04 18:15:44 +08:00
Zixuan Chen
fc46f429f1
docs: update wasm docs
2024-06-29 13:45:47 +08:00
github-actions[bot]
c3a763e07d
chore: version packages
2024-06-28 00:04:09 +08:00
Zixuan Chen
1e94248128
Feat fork ( #393 )
...
* feat: fork
* chore: add changeset
2024-06-26 21:05:04 +08:00
github-actions[bot]
b30bb18f77
chore: version packages
2024-06-21 12:11:28 +08:00
Zixuan Chen
439e4e9829
Add packages' repo and basic doc ( #390 )
...
* docs: update the pkg desc
* chore: changeset
2024-06-21 12:08:13 +08:00
Leon Zhao
fb028f861d
fix: export CommitOptions & JsonSchema ( #389 )
2024-06-20 16:52:36 +08:00
Zixuan Chen
3848db5a9e
fix: warnings
2024-06-20 16:30:03 +08:00
Zixuan Chen
6cb5aad4c7
chore: fuzz
2024-06-20 16:21:57 +08:00
Zixuan Chen
a276010128
feat: replace states with container store
2024-06-20 13:17:32 +08:00
Zixuan Chen
fcdbaed172
fix: warnings
2024-06-18 19:38:10 +08:00
Zixuan Chen
9c050b8b0b
refactor: fix name err & add counter state fast snapshot
2024-06-18 18:17:46 +08:00
Zixuan Chen
d6c8a632ad
Merge branch 'main' into zxch3n/container-store
2024-06-18 18:09:14 +08:00
Zixuan Chen
572635dad2
feat: tree state
2024-06-18 14:36:14 +08:00
Zixuan Chen
a290f29bb5
bk: tree impl (untested)
2024-06-14 18:37:51 +08:00
Zixuan Chen
3729deb12d
feat: richtext snapshot
2024-06-14 12:32:08 +08:00
Zixuan Chen
e857227330
feat: movable list snapshot
2024-06-13 22:49:43 +08:00
Zixuan Chen
0d3709b79e
feat: map snapshot
2024-06-13 17:50:29 +08:00
Zixuan Chen
01427947f7
feat: list fast snapshot
2024-06-13 16:16:52 +08:00
github-actions[bot]
2940029b63
chore: version packages ( #386 )
...
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-06-13 15:31:53 +08:00
Leon Zhao
0b3c6ba1d0
fix: merge
2024-06-13 15:11:29 +08:00
Zixuan Chen
4dd609ca51
fix: cids encode/decode
2024-06-13 14:48:10 +08:00
Leon Zhao
afac34755f
feat: implementing Counter and expose to js side ( #384 )
2024-06-13 14:43:19 +08:00
Zixuan Chen
e54da5d838
bk: container store encode/decode
2024-06-13 12:13:30 +08:00
Zixuan Chen
d71fee144d
bk: container store impl
2024-06-12 11:43:02 +08:00
Leon Zhao
a941cddfb7
feat: export any range version with json schema ( #383 )
2024-06-11 20:08:03 +08:00
Leon Zhao
881167b18e
fix: tree state get FI by index error ( #382 )
2024-06-11 15:19:12 +08:00
Zixuan Chen
9be969dd38
chore: release
2024-06-07 14:14:26 +08:00
Leon Zhao
2df2a52b05
feat: Stable JSON representation for history ( #368 )
...
---------
Co-authored-by: Zixuan Chen <remch183@outlook.com>
2024-06-07 13:18:30 +08:00
Zixuan Chen
d2973df859
refactor: rm unused code ( #380 )
2024-06-07 10:17:23 +08:00
github-actions[bot]
f86421ee75
chore: version packages ( #379 )
...
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-06-06 16:59:07 +08:00
Zixuan Chen
dc55055b6f
Perf cache WASM text toDelta result ( #378 )
...
* refactor: make cursor transformation in undo/redo better
* chore: add release info
* perf: cache to_delta value in wasm
* chore: release msg
2024-06-06 16:54:52 +08:00
Zixuan Chen
6d47015f6e
Refactor undo cursor ( #377 )
...
* refactor: make cursor transformation in undo/redo better
* chore: add release info
2024-06-06 16:49:36 +08:00
Zixuan Chen
2fc20e94aa
refactor: rm oplog.changes
2024-06-04 23:44:29 +08:00
Zixuan Chen
3a842a90ee
refactor: rm more usage of changes
2024-06-04 23:08:38 +08:00
Zixuan Chen
2ff4a88a49
refactor: replace merge change iter with change_store
2024-06-04 21:53:30 +08:00
Zixuan Chen
ad9c3a79bd
Merge branch 'main' into zxch3n/loro-649
2024-06-04 20:59:36 +08:00
Zixuan Chen
7e09e858fe
refactor: use change store to iter ops and find by idlp
2024-06-04 19:11:44 +08:00
Zixuan Chen
6dcf801dd3
feat: add necessary query entry for change_store
2024-06-04 15:45:24 +08:00
Zixuan Chen
1f3290ef80
refactor: rm has_dependents field in change
...
It's not longer required
2024-06-04 15:24:26 +08:00
Zixuan Chen
54637a7b42
Publish v0.16.2 to crates.io ( #374 )
...
* chore: mark dev-utils not published
* chore: release rust crates
* chore: publish fi
* chore: pre publish fi
* chore: update lockfile
* test: change fuzz rev
2024-05-29 22:55:55 +08:00
Leon Zhao
cd04b27d65
fix: fuzz cache and counter feature ( #373 )
...
* fix: fuzz cache and counter feature
* fix: rev
2024-05-29 22:44:21 +08:00
Zixuan Chen
338601308e
feat: add iter changes and get change to change_store
2024-05-29 19:01:45 +08:00
Zixuan Chen
8e0a4c6cc8
refactor: wrap block in Arc
2024-05-29 18:09:02 +08:00
Zixuan Chen
fd6e945d4b
fix: import change merge err
2024-05-28 22:09:15 +08:00
Zixuan Chen
c84ef7df99
test: setup baseline bench
2024-05-28 20:27:41 +08:00
Zixuan Chen
d5de22008e
feat: estimate change size
2024-05-28 16:46:42 +08:00
Zixuan Chen
3caacee82f
feat: decode ops in block
2024-05-28 14:44:37 +08:00
Zixuan Chen
b13b4bcf94
refactor: reuse more serde_columnar code
2024-05-27 19:02:01 +08:00
Zixuan Chen
0c81543b6e
chore: bk impl for block encode & decode
2024-05-27 11:52:23 +08:00
Leon Zhao
4a0c8b6ddd
fix: tree transform when a
and b
is equal ( #371 )
...
* test: add test
2024-05-25 08:32:56 +08:00
github-actions[bot]
7fc85b1b04
chore: version packages ( #370 )
...
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-05-23 10:28:24 +08:00
Zixuan Chen
6700dad19b
feat: Add event listener and native support of cursor transformation for undo/redo ( #369 )
2024-05-23 10:19:08 +08:00
github-actions[bot]
c8bbb437ca
chore: version packages ( #366 )
...
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-05-21 13:12:38 +08:00
Zixuan Chen
1a347cab72
feat: refine undo impl ( #365 )
...
* feat: refine undo impl
- Add "unfo" origin for undo and redo event
- Allow users to skip certain local operations
- Skip undo/redo ops that're not visible to users
* feat: add returned bool value to indicate whether undo/redo is executed
2024-05-21 13:08:43 +08:00
Zixuan Chen
c124efc531
chore: update .npmignore
2024-05-21 06:48:45 +08:00
github-actions[bot]
d01fd66e39
chore: version packages ( #364 )
...
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-05-21 06:40:05 +08:00
Zixuan Chen
321e0e72a4
Undo ( #361 )
...
https://github.com/loro-dev/loro/pull/361
---------
Co-authored-by: Leon Zhao <leeeon233@gmail.com>
2024-05-21 06:14:49 +08:00
Leon Zhao
26753f0d4d
fix: better jitter for fractional index ( #360 )
...
* fix: better jitter
2024-05-16 15:26:49 +08:00
Leon Zhao
6e14e5b117
Feat: Make the encoding format forward and backward compatible ( #329 )
2024-05-13 21:37:10 +08:00
Gábor Szabó
d958767b13
add repository to Cargo.toml ( #358 )
2024-05-10 21:14:17 +08:00
Zixuan Chen
ea7d8b0669
fix: refine error message on corrupted data ( #356 )
...
* fix: refine error message on corrupted data
* fix: comment
2024-05-10 11:06:01 +08:00
github-actions[bot]
3f23a67bb4
chore: version packages ( #355 )
...
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-05-09 16:31:21 +08:00
Zixuan Chen
a9484b48a2
Fix potential movable list bug ( #354 )
...
* fix: upgrade wasm-bindgen to fix str free err
* chore: fix ci
* fix: potential bug in movable list op group
2024-05-09 15:46:19 +08:00
Zixuan Chen
0660b1a1be
fix: upgrade wasm-bindgen to fix str free err ( #353 )
...
* fix: upgrade wasm-bindgen to fix str free err
* chore: fix ci
2024-05-09 15:22:34 +08:00
Leon Zhao
51a673822e
fix: tree fuzz sort value ( #351 )
2024-05-07 19:39:38 +08:00
Leon Zhao
fffd49b5fa
Use fractional index to order the children of the tree ( #298 )
...
* feat: fractional index
---------
Co-authored-by: Zixuan Chen <remch183@outlook.com>
2024-05-07 14:01:13 +08:00
Zixuan Chen
4021ad820c
chore: loro-rs v0.5.1
2024-05-06 13:37:55 +08:00
Gábor Szabó
93726186c5
add repository field ( #350 )
2024-05-06 07:43:46 +08:00
github-actions[bot]
da8a0f63e5
chore: version packages
2024-05-04 11:41:30 +08:00
Zixuan Chen
dd8c7f7392
perf: delete span merge err ( #348 )
...
* perf: delete span merge err
* fix: slicing of DeleteSpanWIthId
* fix: sliceable err
2024-05-04 11:32:49 +08:00
Zixuan Chen
456ff12503
chore: warn missing debug impl ( #347 )
2024-05-04 11:32:31 +08:00
Zixuan Chen
659c9c54ea
fix(wasm): movable list .kind() ( #342 )
2024-05-04 11:32:18 +08:00
github-actions[bot]
307df25691
chore: version packages ( #346 )
...
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-05-02 16:54:47 +08:00
Zixuan Chen
c2da94a557
fix: upgrade generic-btree to allow large btree ( #344 )
2024-05-02 16:45:33 +08:00
Leon Zhao
cd8b9a31e7
fix: missing MovableList in all container type ( #343 )
2024-05-02 11:28:28 +08:00
Zixuan Chen
8bf180827f
fix: get cursor err on text and movable list ( #337 )
2024-04-29 21:42:50 +08:00
Zixuan Chen
ce178df1e8
docs: minor fix on set_change_merge_interval api ( #341 )
2024-04-29 21:42:37 +08:00
Zixuan Chen
2918d01906
fix: refine ts type; reject invalid operations ( #334 )
2024-04-29 21:42:08 +08:00
Zixuan Chen
ca5f762646
fix: impl a few unimplemented! for movable tree ( #335 )
2024-04-29 21:40:57 +08:00
Zixuan Chen
e5dfded0f3
chore: skip the checking if not debug_assertions ( #340 )
2024-04-29 21:40:05 +08:00
Zixuan Chen
996ce70e45
docs: add warn(missing_docs) to loro and loro-wasm ( #339 )
2024-04-29 19:35:21 +08:00
Zixuan Chen
f869b959f3
chore: specify loro-delta version in loro
2024-04-29 18:16:00 +08:00
Zixuan Chen
5660bcc4a5
chore: bump loro-rs to v0.5.0
2024-04-29 18:09:07 +08:00
Leon Zhao
6224974124
chore: rename js toJSON ( #338 )
2024-04-29 16:23:00 +08:00
Leon Zhao
a1ec948c32
fix: fuzz tree delete nested ( #336 )
2024-04-28 17:06:47 +08:00
github-actions[bot]
41d198d9e4
chore: version packages ( #333 )
...
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-04-26 12:29:22 +08:00
Zixuan Chen
31a8569840
Movable List ( #293 )
...
* bk: add move op content
* bk: add inner_movable_list diff and related stuff
* perf: high perf state
* fix: update old list item cache
* fix: should use id in del
* feat: two kinds of len for movable list state
* bk: add op index to movable list
* bk: make basic handler test pass
* refactor: add move_from to list event
* fix: make all existing tests pass
* bk: list move event hint into event
* bk: convert inner event into user event
Co-authored-by: Leon <leeeon233@gmail.com>
* fix: convert issue when inserting new value
* feat: add op group for movable list
* feat: diff calc
* feat: add mov support to tracker
* fix: when applying diff, state should be force update
* feat: encoded op
* feat: snapshot encode
* fix: pass basic sync
* fix: snapshot encode/decode
* fix: warnings
* feat: expose mov list to loro crate
* test: fuzz movable list
* test: fix fuzz integration
* fix: movable list basic move sync
* fix: movable list events
* fix: movable event err
* fix: register child container on movable list
* fix: should not return child index if the value is already overwritten
* fix: local event err in movable list
* fix: get elem at pos
* refactor: extract mut op that could break invariants
* fix: event err
* fix: child container to elem err
* fix: bringback event issue
* fix: event err
* fix: event emit
* fix: id to cursor iter issue
* chore: fix a few warnings
* fix: warnings
* fix: fix move in tracker
* test: add consistency check
* test: fix tracker
* refactor: simplify event conversion in docstate
* refactor: refine move event
* refactor: simplify the maintain of parent child links
* fix: revive err
* fix: warnings
* fix: it's possible that pos change but cannot find the respective list item
* fix: elem may be dropped after snapshot
* fix: warnings
* fix: richtext time travel issue
* fix: move op used wrong delete id on tracker
* fix: handle events created by concurrent moves correctly
* fix: event hint error, used op index for list event
* fix: move_from flag err
* fix: id to cursor get err
* test: add mov fuzz target
* fix: the pos of inserting new container
* fix: used wrong event hint index
* fix: del event hint
* fix: warnings
* fix: internal diff to event err
* fix: event's move flag error
This "move" flag does not actually mean that the insertion
is caused by the move op.
就算是 move 造成的它不一定就能是 true
它得是下游真的能在“前一个版本的 array 里找到“,才能是 true
* fix: remove redundant elements from the movable list
The Movable List is currently flawed; an element may not exist on the movable list state, yet there are operations that revive its corresponding list item. In such cases, the diff calculation does not send back the corresponding element state (this occurs when tracing back, which fuzz testing currently does not cover. It might only be exposed by randomly switching to a version and then checking for consistency; otherwise, as long as all elements are in memory, this problem does not arise).
Moreover, there is no need to store elements in the state that do not have a corresponding list item. They will be deleted during the Snapshot, and relying on "them still being in the state" is incorrect behavior. Such adjustments also eliminate the need to maintain the `pending_elements` field.
By allowing the opgroup to record the mapping from pos id to state id, we can ensure that the events sent to the movable list state will include the corresponding state.
Movable List 现在是有错的,elem 可能不存在 movable list state 上,但是又有操作把它对应的 list item 复活了,此时 diff calc 不会把对应 element 状态发送回来(往前回溯的时候会出现,fuzz 现在没覆盖到。得有随意切换一个版本然后 check consistency 才可能会暴露;否则现在大家 elements 都在内存,就没这个问题)
而且我们没有必要在状态中存储没有对应 list item 的 element。在 Snapshot 的时候它们都会被删掉,如果依赖了“它们还会在 state 内”就是错误的行为。这样的调整也让我们不需要去维护 pending_elements 这个 field 了
通过让 opgroup 记录了 pos id → state id 的映射,可以保证发给 movable list state 的事件中会带上对应的 state
* test: make fuzzer stricter
* test: test expectation error
* refactor: rename stable pos to cursor
* tests: chore list bench init
* test: add bench
* bench: add mov & set bench
* feat(wasm): movable list js api
* fix: make movablelist able to attach even if it's already attached & refine the type of subscribe
* fix: remove the loro doc param in .unsub
* refactor: refine ts types and export setContainer api
* chore: fix warnings
* chore: rm debug logs
* perf: reduce mem usage of opgroup
* bench: add list criterion bench
---------
Co-authored-by: Leon <leeeon233@gmail.com>
2024-04-26 12:08:53 +08:00
github-actions[bot]
1b59909490
chore: version packages ( #332 )
...
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-04-24 19:29:58 +08:00
Leon Zhao
684d121702
fix: insert attach container ( #331 )
...
* fix: insert attached container
* test: insert attached container
* test: add more assert for insert container
2024-04-24 16:50:05 +08:00
Zixuan Chen
9d4f7aa8a3
DeltaRope ( #327 )
...
* feat: delta rope support init
* perf: use generic-btree v0.9.0
* refactor: improve readability and maintainability
* fix: fix several issues about composing
* fix: a few more issue about composing deletions
* test: rich text
* fix: cover more edge cases
* refactor: use deltarope for list event
* refactor: replace text delta with DeltaRope
* fix: list fuzz err
* fix: safety issue on insert_many
* chore: refine impl of text delta
* refactor: use Replace instead of insert+del in DeltaItem (#330 )
* refactor: use Replace instead of insert+del in DeltaItem
* fix: each deltaitem should have non-zero rle_len
Updated generic-btree dependency to version 0.10.3 and refactored DeltaItem and DeltaRope implementations in loro-delta. Refine compose impl
* fix: update generic-btree to fix the update leaf issue
* chore: lockfile
* chore: clippy fix
* refactor: make composing easier to understand
* refactor: simplify the impl of composing
2024-04-24 13:53:26 +08:00
Zixuan Chen
f99bfd8e21
Refactor rm unused code ( #328 )
...
* chore: init
* fix: fuzz config
* refactor: rm unused code
2024-04-22 21:20:00 +08:00
github-actions[bot]
4700ead1c1
chore: version packages ( #326 )
...
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-04-18 19:56:47 +08:00
Zixuan Chen
a32b75ad3b
fix(js): allow convert from undefined to LoroValue ( #323 )
2024-04-18 09:47:00 +08:00
Zixuan Chen
2fc44206fb
Fix rich text cursor pos ( #324 )
...
* test: add text cursor test
* fix: should return event index
2024-04-18 09:46:50 +08:00
github-actions[bot]
e8352ad38d
chore: version packages ( #321 )
...
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-04-17 15:15:17 +08:00