Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 0 additions & 6 deletions .changeset/faster-text-imports.md

This file was deleted.

24 changes: 0 additions & 24 deletions .changeset/perf-per-op-editing-regression.md

This file was deleted.

24 changes: 24 additions & 0 deletions crates/loro-wasm-map/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,29 @@
# loro-crdt-map

## 1.13.5

### Patch Changes

- 1727258: Improve text insert and snapshot import performance by avoiding duplicate text boundary validation and skipping eager imported change block parsing.
- 52d8168: Recover two per-operation editing slowdowns regressed since 1.11.

Both are constant-factor regressions on the per-op (auto-commit) editing path
introduced by the lazy-snapshot work in #985, measured against the 1.11.1
release.

1. Every `MapHandler`/`ListHandler`/`MovableListHandler` insert validated its
value with `ensure_no_regular_container_value`, which heap-allocated a `Vec`
on each call even for scalar values (the common case). A scalar fast-path now
skips the allocation and traversal entirely. `map create 10^4 key`:
~19.4ms -> ~10.7ms.
2. The per-op text bounds check (`TextHandler::len`/`len_unicode`/`len_utf16`)
took two `DocState` locks — one to check whether the container state was
decoded, then another to query the length. These are now consolidated into a
single `DocState::get_text_len` that takes one lock and one container-store
lookup. The lazy-snapshot memory behavior is preserved: a still-lazy
container reads its cached length metadata without materializing the full
richtext state. `bench_text B4 apply` (per-op text editing): ~389ms -> ~352ms.

## 1.13.4

### Patch Changes
Expand Down
2 changes: 1 addition & 1 deletion crates/loro-wasm-map/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "loro-crdt-map",
"version": "1.13.4",
"version": "1.13.5",
"description": "Source maps for the loro-crdt WebAssembly bundles.",
"repository": {
"type": "git",
Expand Down
24 changes: 24 additions & 0 deletions crates/loro-wasm/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,29 @@
# Changelog

## 1.13.5

### Patch Changes

- 1727258: Improve text insert and snapshot import performance by avoiding duplicate text boundary validation and skipping eager imported change block parsing.
- 52d8168: Recover two per-operation editing slowdowns regressed since 1.11.

Both are constant-factor regressions on the per-op (auto-commit) editing path
introduced by the lazy-snapshot work in #985, measured against the 1.11.1
release.

1. Every `MapHandler`/`ListHandler`/`MovableListHandler` insert validated its
value with `ensure_no_regular_container_value`, which heap-allocated a `Vec`
on each call even for scalar values (the common case). A scalar fast-path now
skips the allocation and traversal entirely. `map create 10^4 key`:
~19.4ms -> ~10.7ms.
2. The per-op text bounds check (`TextHandler::len`/`len_unicode`/`len_utf16`)
took two `DocState` locks — one to check whether the container state was
decoded, then another to query the length. These are now consolidated into a
single `DocState::get_text_len` that takes one lock and one container-store
lookup. The lazy-snapshot memory behavior is preserved: a still-lazy
container reads its cached length metadata without materializing the full
richtext state. `bench_text B4 apply` (per-op text editing): ~389ms -> ~352ms.

## 1.13.4

### Patch Changes
Expand Down
2 changes: 1 addition & 1 deletion crates/loro-wasm/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "loro-wasm"
version = "1.13.4"
version = "1.13.5"
edition = "2021"
publish = false
repository = "https://github.com/loro-dev/loro/"
Expand Down
2 changes: 1 addition & 1 deletion crates/loro-wasm/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "loro-crdt",
"version": "1.13.4",
"version": "1.13.5",
"description": "Loro CRDTs is a high-performance CRDT framework that makes your app state synchronized, collaborative and maintainable effortlessly.",
"keywords": [
"crdt",
Expand Down