Commit graph

632 commits

Author SHA1 Message Date
Zixuan Chen
9a3194edef chore(wasm): change the build methods 2022-12-09 10:46:55 +08:00
Zixuan Chen
572fe857a0 feat(wasm): root subscribe & unsubscribe 2022-12-09 10:46:55 +08:00
Zixuan Chen
b98c22570d fix: get container by id err 2022-12-09 10:46:55 +08:00
Zixuan Chen
2db272e857 chore(wasm): wasm build cfg 2022-12-09 10:46:47 +08:00
Zixuan Chen
0cd38270f9 bench(wasm): wasm bench
bench(wasm): add snapshot bench
2022-12-09 10:46:36 +08:00
Zixuan Chen
b1738e34a9 fix: to json result 2022-12-09 10:46:30 +08:00
Zixuan Chen
91e7b3ac87 feat: wasm encode decode basic 2022-12-09 10:46:30 +08:00
Zixuan Chen
f14905d562 feat: init encoding and build pipeline for wasm 2022-12-09 10:46:30 +08:00
Zixuan Chen
5040a6f511 refactor: change fn signature 2022-12-09 10:46:30 +08:00
Zixuan Chen
1933fe6a56 fix: refine rangemap interface 2022-12-07 11:03:10 +08:00
Zixuan Chen
594b60dafb
Perf store cache in parent node (#36)
* refactor: make internal and leaf use same type of cache

* refactor: add cache update

* test : add normalization to arb test

* test: fuzz

* fix: internal insert bug

* fix: missing utf16

* test: fix test sub overflow

* feat: use heapless for binary heap

* refactor: refine warning

* test: reduce test time

* perf: reduce computation when finding pos

* bench: fix ignore parse time in benching

* feat: make it compile in new sig (should be merged)

* fix: type err

* fix: fix type err

* fix: cache when merge & borrow

* refactor: simplify code

* fix: cumulated tree trait bug

* fix: a few fatal bugs (still buggy)

* fix: global tree trait

* refactor: rm an unused fn

* fix: insert at cursor bug

* fix: in cursor insert cache may be invalid

strip the checker there

* chore: remove needless check

* refactor: add inline to methods

* test: remove cfg=mem for mem example

* fix: type err
2022-12-06 16:34:46 +08:00
Zixuan Chen
2604c4a3fb refactor: make internal and leaf use same type of cache 2022-12-06 16:21:48 +08:00
Zixuan Chen
09b3f5722b test: add automerge x100 dataset 2022-12-06 16:21:48 +08:00
Zixuan Chen
39f514022e fix: make text container send&sync 2022-12-06 16:21:48 +08:00
Zixuan Chen
0b9b54f82d perf: speed up insert & del 2022-12-06 16:21:48 +08:00
Zixuan Chen
6312ab9eb6 refactor: use arc for raw_str 2022-12-06 16:21:48 +08:00
Zixuan Chen
c5d8100542 chore: cargo fix 2022-12-06 16:21:48 +08:00
Zixuan Chen
dce9f03821 feat: integrate to text container 2022-12-06 16:21:48 +08:00
Zixuan Chen
c25500df04 feat: introduce rope 2022-12-06 16:21:48 +08:00
Zixuan Chen
f757b86f5c
Fix: unsound (violate borrow stack rules) bugs detected by Miri (#32)
* fix: borrow stack bugs exposed by miri

* fix: use context to track notify when integrating

* fix: miri bugs

* fix: borrow stack bugs

* fix: set range miri err
2022-12-06 16:05:58 +08:00
Zixuan Chen
610a651b5c fix: vec slice is ill defined 2022-12-06 15:50:35 +08:00
Zixuan Chen
134866bf3d chore: rm unused fn 2022-12-06 15:40:56 +08:00
Zixuan Chen
65465774ef fix: cap 2022-12-06 15:40:07 +08:00
Zixuan Chen
1829a9ebca bench: fix ignore parse time in benching 2022-12-06 15:37:57 +08:00
Zixuan Chen
d718ed386f feat: add tracing spans 2022-12-06 15:37:57 +08:00
Zixuan Chen
e3b420e41c chore: add tracing dep 2022-12-06 15:37:57 +08:00
Zixuan Chen
89ae18e87c test: add size test for update encoding 2022-11-30 23:55:58 +08:00
Zixuan Chen
7adc399605 test: add recursive test for update encoding 2022-11-30 23:55:58 +08:00
Zixuan Chen
45c1a2e791 fix: decode deps 2022-11-30 23:55:58 +08:00
Zixuan Chen
94b9e95fc1 chore: cargo fix 2022-11-30 23:55:58 +08:00
Zixuan Chen
d3a0d10b12 feat: encode updates 2022-11-30 23:55:58 +08:00
Zixuan Chen
1794f31ab2 bench: add observed batch 2022-11-28 21:28:15 +08:00
Zixuan Chen
ad26a1b3a3 chore: remove todo 2022-11-28 21:05:37 +08:00
leeeon233
3faaf25991 fix: to_json resolve deep
Co-authored-by: Zixuan Chen <me@zxch3n.com>
2022-11-28 20:52:26 +08:00
Zixuan Chen
87942f2392 test: a case where skip del container failed 2022-11-28 20:38:52 +08:00
Zixuan Chen
8f6059df5a fix: map apply order 2022-11-28 20:06:46 +08:00
Zixuan Chen
882def3fc3 fix: list iter and slice err 2022-11-28 18:48:53 +08:00
Zixuan Chen
d2123a2099 fix: return none for deleted container when finding path 2022-11-28 18:14:05 +08:00
Zixuan Chen
fcffc2924f fix: still apply op from deleted container
behaviors should be consistent
2022-11-28 18:05:15 +08:00
Zixuan Chen
a7f21e3f44 fix: no panic when integrate an deleted container 2022-11-28 17:54:22 +08:00
Zixuan Chen
872220851d fix: should keep deleted container id in hierarchy 2022-11-28 17:43:22 +08:00
Zixuan Chen
361003f1f2 chore: remove debug log 2022-11-28 17:26:26 +08:00
Zixuan Chen
16dd4c7182 fix: apply effects order 2022-11-28 17:24:14 +08:00
Zixuan Chen
c611728d88 fix: should notify err 2022-11-25 02:48:43 +08:00
Zixuan Chen
fb8a0e2e7b fix: batch notify should be sorted by path length 2022-11-25 02:35:12 +08:00
Zixuan Chen
63bb791aba fix: import context diff should keep causal order 2022-11-25 01:39:51 +08:00
Zixuan Chen
06d53dd8a2 fix: add root tracking test & and fix several related bugs 2022-11-25 00:47:49 +08:00
Zixuan Chen
aaf4e6822b feat: root subscriber & apply event to value 2022-11-24 23:28:36 +08:00
Zixuan Chen
3bb2d3490d fix: encoding merge err 2022-11-24 22:02:10 +08:00
leeeon233
2e1d5080a5 fix: use LoroValue as json content 2022-11-24 22:00:52 +08:00
leeeon233
11292e3337 fix: to_json resolve deep
Co-authored-by: Zixuan Chen <me@zxch3n.com>
2022-11-24 22:00:52 +08:00
leeeon233
be0270140b feat: add decode state and loro to_json 2022-11-24 22:00:52 +08:00
Zixuan Chen
0c3c96c7fd ci: make test running concurrently 2022-11-24 22:00:11 +08:00
Zixuan Chen
8b7e787500 chore: refine impl 2022-11-24 21:10:00 +08:00
Zixuan Chen
c3188583fb test: add observer result check to fuzzer 2022-11-24 18:15:42 +08:00
Zixuan Chen
90e0dd0a28 chore: test cfg 2022-11-24 17:47:08 +08:00
Zixuan Chen
bcc2c57556 fix: fix several bugs 2022-11-24 17:46:34 +08:00
Zixuan Chen
76f995f48f fix: get path dead loop 2022-11-24 17:04:03 +08:00
Zixuan Chen
e2d766d490 test: add fuzzing tests for observer 2022-11-24 16:52:37 +08:00
Zixuan Chen
c574e7ea5b feat: add notify to map and list
Co-authored-by: Leonzhao <leeeon233@gmail.com>
2022-11-24 16:21:12 +08:00
leeeon233
4ed1eaee32 feat: add list notify
Co-authored-by: Zixuan Chen <me@zxch3n.com>
2022-11-24 15:34:23 +08:00
Zixuan Chen
e153f113b8 feat: subscribe unsubscribe
Co-authored-by: Leonzhao <leeeon233@gmail.com>
2022-11-24 15:10:21 +08:00
Zixuan Chen
59bdaae250 refactor: use import context & basic notify
Co-authored-by: Leonzhao <leeeon233@gmail.com>
2022-11-24 12:15:25 +08:00
Zixuan Chen
c798662dd1 fix: list assert err 2022-11-24 01:13:36 +08:00
Zixuan Chen
9bdb6b9fd4 feat: record hierarchical info 2022-11-24 01:01:40 +08:00
Zixuan Chen
aeb935455e chore: doc bk 2022-11-23 22:03:33 +08:00
Zixuan Chen
870b39ec37 fix: path reverse 2022-11-23 20:41:13 +08:00
Zixuan Chen
e3efcb75e5 refactor: make container idx a new type
move hierarchy back to log store. because we need to have
mut ref to both Hierarchy and Registry
2022-11-23 20:38:57 +08:00
Zixuan Chen
7f25c4aa8a refactor: move hierarchy to registry 2022-11-23 20:13:19 +08:00
Zixuan Chen
1ba7dfb44a Merge branch 'main' into feat-observe 2022-11-23 20:03:58 +08:00
Zixuan Chen
c04989d046 ci: speedup wasm-pack install 2022-11-23 19:59:57 +08:00
Zixuan Chen
109af2964d Merge branch 'main' into feat-observe 2022-11-23 19:54:32 +08:00
leeeon233
ca96b294d4 chore: wasm pack ci 2022-11-23 19:49:39 +08:00
leeeon233
2591ed3cc4 chore: typo 2022-11-23 19:49:39 +08:00
leeeon233
fcfc8fd6b9 refactor: prelim trait 2022-11-23 19:49:39 +08:00
leeeon233
cc129ee753 feat: expose ContainerID 2022-11-23 19:49:39 +08:00
leeeon233
4194c79fe7 fix: prelim compatible with pool 2022-11-23 19:49:39 +08:00
leeeon233
bc8235ff47 feat: add prelim
Co-authored-by: Zixuan Chen <me@zxch3n.com>
2022-11-23 19:49:39 +08:00
leeeon233
e124bbbec1 fix: wasm interface 2022-11-23 19:49:39 +08:00
leeeon233
71fd00418e test: add wasm test 2022-11-23 19:49:39 +08:00
leeeon233
973486067a fix: wasm add client id check 2022-11-23 19:49:39 +08:00
leeeon233
df3a708e48 feat: add context check 2022-11-23 19:49:39 +08:00
leeeon233
42ded24721 chore: add panic hook 2022-11-23 19:49:39 +08:00
leeeon233
47266773ba feat: add recursive wasm 2022-11-23 19:49:39 +08:00
Zixuan Chen
5da1a6a8fe refactor: init hierarchy 2022-11-23 18:12:23 +08:00
Zixuan Chen
1ae9bf2a48 feat: init delta 2022-11-23 16:26:38 +08:00
Zixuan Chen
6a98664bea refactor: remove illegal state 2022-11-21 21:01:59 +08:00
Zixuan Chen
6d095a6cbb chore: remove log 2022-11-21 20:40:06 +08:00
Zixuan Chen
889f564779 fix: encoding 2022-11-21 20:37:41 +08:00
Zixuan Chen
c1123ab2c1 chore: cargo fix 2022-11-21 20:31:06 +08:00
Zixuan Chen
780f756450 fix: remove unknown type on content 2022-11-21 20:30:20 +08:00
Zixuan Chen
09b77fc969 refactor: use inner content (buggy) 2022-11-21 19:52:09 +08:00
Zixuan Chen
7295e1c613 refactor: add inner content 2022-11-21 18:25:13 +08:00
Zixuan Chen
8dba7d1e3a refactor: rename content type 2022-11-21 18:12:12 +08:00
Zixuan Chen
65b513d75f refactor: add import export to map 2022-11-21 16:02:29 +08:00
Zixuan Chen
7a6e50931d chore: replace justfile with deno task 2022-11-21 12:50:15 +08:00
Zixuan Chen
8f7a5a08e0 refactor: fix warning and remove dead codes 2022-11-18 21:16:29 +08:00
Zixuan Chen
0c631697f7 docs: add doc about importing method 2022-11-18 17:30:27 +08:00
Zixuan Chen
c4064aad34 refactor: extract some common method to tracker 2022-11-18 16:57:37 +08:00
Zixuan Chen
78d6f99929 refactor: remove heads on lists 2022-11-18 16:40:20 +08:00
Zixuan Chen
2ecb156f30 fix: feature err 2022-11-18 16:40:11 +08:00
Zixuan Chen
e5c022b204 refactor: remove unused logics 2022-11-18 16:31:00 +08:00
Zixuan Chen
ce1bc62b03 refactor: add len method to all container 2022-11-18 16:19:35 +08:00
Zixuan Chen
5686a37f09 chore: cargo fix 2022-11-18 16:16:09 +08:00
Zixuan Chen
af26c9d782 refactor: extract import, improve readability 2022-11-18 01:08:39 +08:00
Zixuan Chen
c9e3a67963 test: fix range map tests 2022-11-18 00:32:18 +08:00
Zixuan Chen
521615b1a0 perf: replace returned vec with iterator 2022-11-18 00:32:18 +08:00
Zixuan Chen
402b174842 perf: avoid heap alloc 2022-11-18 00:32:18 +08:00
Zixuan Chen
878f6cf939 chore: refine map max children config 2022-11-18 00:32:18 +08:00
Zixuan Chen
f6adb76436 perf: remove needless change copy when importing 2022-11-18 00:32:18 +08:00
Zixuan Chen
ff9877db42 fix: remove needless notify 2022-11-18 00:32:05 +08:00
leeeon233
1a2486283b chore: rename columnar 2022-11-18 00:32:05 +08:00
leeeon233
090b6852b7 chore: columnar dependency use git path 2022-11-18 00:31:53 +08:00
leeeon233
c4995e7ba2 chore: add encode bench 2022-11-18 00:31:26 +08:00
leeeon233
c9f63b6594 feat: add compress 2022-11-18 00:31:11 +08:00
Zixuan Chen
8e8af7d4c6 chore: remove log 2022-11-18 00:07:06 +08:00
Zixuan Chen
b6c0c09c3d perf: cache tracker checkout 2022-11-18 00:04:50 +08:00
Zixuan Chen
3b42c06a01 fix: op iter bug 2022-11-17 23:44:57 +08:00
Zixuan Chen
e7b1148c8a fix: make directly apply faster 2022-11-17 23:17:36 +08:00
Zixuan Chen
f5ae229ca3 fix: make recursive case work
During applying new changes, retreat and forward should use
all the containers rather than just the container affected by current
applied changes.
2022-11-17 22:37:04 +08:00
Zixuan Chen
0c4afed968 refactor: use rich op when applying changes 2022-11-17 19:46:21 +08:00
Zixuan Chen
a2890f68ec chore: remove log 2022-11-17 19:03:06 +08:00
Zixuan Chen
8bb427a969 fix: empty input 2022-11-17 18:54:15 +08:00
Zixuan Chen
26a68dc64a fix: make it work for text container simple cases 2022-11-17 18:52:18 +08:00
Zixuan Chen
b89ac938db refactor: initialize new import pipeline 2022-11-17 17:11:55 +08:00
Zixuan Chen
a873078df0 refactor: remove OpContent type 2022-11-17 11:11:30 +08:00
Zixuan Chen
f89550d542 refactor: fix warnings 2022-11-17 10:48:46 +08:00
Zixuan Chen
4250095a98 refactor: add register container method 2022-11-17 10:31:56 +08:00
Zixuan Chen
215ddb3d01 refactor: rename dag partial iter to causal iter 2022-11-17 10:26:52 +08:00
Zixuan Chen
2a391b8797 test: add list containers bench 2022-11-17 10:22:28 +08:00
leeeon233
f468e3b57b fix: encode when only create container but no op 2022-11-16 17:01:03 +08:00
Zixuan Chen
33edd89e6e chore: rm needless type annotation 2022-11-16 11:07:21 +08:00
Zixuan Chen
0fff16faf3 test: add gzip size test 2022-11-15 17:41:55 +08:00
Zixuan Chen
5dd13f64ed perf: should use columnar strategy 2022-11-15 17:31:52 +08:00
Zixuan Chen
7ccb8eaeb2 perf: make deps encoding more compact 2022-11-15 17:22:46 +08:00
Zixuan Chen
fbb2403f8f fix: update crate path 2022-11-15 17:07:05 +08:00
Zixuan Chen
a91b43ab25 fix: encoding error 2022-11-15 17:01:45 +08:00
Zixuan Chen
6c1fef7c95 fix: make export less strict 2022-11-15 16:26:15 +08:00
Zixuan Chen
89a2659dfb fix: decode unknown 2022-11-15 16:15:15 +08:00
Zixuan Chen
afe084f4fe Merge remote-tracking branch 'origin/feat-encode-decode' into feat-gc-fast 2022-11-15 16:13:12 +08:00
Zixuan Chen
811d585fed feat: add gc feature gate 2022-11-15 16:02:42 +08:00
Zixuan Chen
ebe907dc8d test: update fuzzing type 2022-11-15 15:54:29 +08:00
Zixuan Chen
284f1e0862 fix: it's possible to enter the no sibling state 2022-11-15 15:53:03 +08:00
leeeon233
5ec8752d3d fix: make LoroValue serialize & deserialize compatible with json and binary 2022-11-15 15:50:41 +08:00
leeeon233
580f2e54be feat: impl loro decode
Co-authored-by: Zixuan Chen <me@zxch3n.com>
2022-11-15 15:50:41 +08:00
Zixuan Chen
c57d4b0e52 perf: reduce copies when encoding 2022-11-15 15:50:33 +08:00
Zixuan Chen
114e12944d fix: should use slicerange in text container 2022-11-15 14:37:18 +08:00
Zixuan Chen
985a8f6920 fix: export iter bug 2022-11-15 13:59:10 +08:00
Zixuan Chen
3d07e7e7e5 fix: bugs related to unknown type 2022-11-15 13:41:00 +08:00
Zixuan Chen
bced2f29c8 chore: doc 2022-11-15 11:46:51 +08:00