diff --git a/.github/workflows/js.yml b/.github/workflows/js.yml index 3982321..9ee1899 100644 --- a/.github/workflows/js.yml +++ b/.github/workflows/js.yml @@ -12,7 +12,7 @@ jobs: build: runs-on: ubuntu-24.04 env: - EMSCRIPTEN_VERSION: '4.0.20' + EMSCRIPTEN_VERSION: '4.0.22' steps: - uses: actions/checkout@v6 with: diff --git a/cskk b/cskk index f64da6b..1c010fd 160000 --- a/cskk +++ b/cskk @@ -1 +1 @@ -Subproject commit f64da6be433fdcd017189397b5977de7fcfbb7cf +Subproject commit 1c010fd96afca2fbb7c9b584bd73eccfaf42c1b6 diff --git a/ecm b/ecm index d8d80bc..f8447eb 160000 --- a/ecm +++ b/ecm @@ -1 +1 @@ -Subproject commit d8d80bcc61341239519392eef1360c796bf25931 +Subproject commit f8447eb308c27724be2bcd3a0e8c2f4bd5d9f52f diff --git a/libchewing b/libchewing index 93a9a24..51fb091 160000 --- a/libchewing +++ b/libchewing @@ -1 +1 @@ -Subproject commit 93a9a24bae6173f23c620df314b55c596c7622dd +Subproject commit 51fb09179d2f60a0e014f31d40093c5aacf80460 diff --git a/librime b/librime index 75bc43a..65dad2c 160000 --- a/librime +++ b/librime @@ -1 +1 @@ -Subproject commit 75bc43ae9acdd2042d150a8c446e9ac8b6d77c84 +Subproject commit 65dad2c2f1755204903278880004ad7c8d3d0ba9 diff --git a/libxkbcommon b/libxkbcommon index 3049d31..6f76d19 160000 --- a/libxkbcommon +++ b/libxkbcommon @@ -1 +1 @@ -Subproject commit 3049d310694fd70f1269bf48a1200aa4259e79b1 +Subproject commit 6f76d19db72b5d450e927b41e1e96cbe3252aba8 diff --git a/patches/libchewing.patch b/patches/libchewing.patch index 7efc18b..3f0a954 100644 --- a/patches/libchewing.patch +++ b/patches/libchewing.patch @@ -1,12 +1,11 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt -index 1465dfb..ecc58d8 100644 +index d1f1aa2..b707706 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -71,8 +71,17 @@ if(NOT Corrosion_FOUND) +@@ -75,7 +75,17 @@ corrosion_import_crate(MANIFEST_PATH Cargo.toml CRATES chewing_capi) + if(BUILD_TESTING) + corrosion_import_crate(MANIFEST_PATH Cargo.toml CRATES chewing_testhelper) endif() - - corrosion_import_crate(MANIFEST_PATH Cargo.toml CRATES chewing_capi) --corrosion_import_crate(MANIFEST_PATH Cargo.toml CRATES chewing_testhelper) +if (EMSCRIPTEN) + corrosion_add_target_rustflags(chewing_capi -C panic=unwind) + set(CARGO_FEATURES "") @@ -21,9 +20,9 @@ index 1465dfb..ecc58d8 100644 if(WITH_SQLITE3) corrosion_set_features(chewing_capi FEATURES sqlite) -@@ -158,8 +167,9 @@ set(ALL_INC - ${INC_DIR}/mod_aux.h - ) +@@ -168,8 +178,9 @@ if(NOT USE_SYSTEM_CHEWING_CLI) + set(CHEWING_CLI $) + endif() -add_subdirectory(doc) +if (NOT EMSCRIPTEN) @@ -32,7 +31,7 @@ index 1465dfb..ecc58d8 100644 if(BUILD_TESTING) add_subdirectory(tests) endif() -@@ -176,7 +186,7 @@ target_include_directories(libchewing +@@ -183,7 +194,7 @@ target_include_directories(libchewing ) corrosion_set_env_vars(chewing_capi @@ -41,7 +40,7 @@ index 1465dfb..ecc58d8 100644 ) target_link_libraries(libchewing PRIVATE chewing_capi) target_link_libraries(chewing_capi INTERFACE ${SQLite3_LIBRARIES}) -@@ -227,13 +237,12 @@ endif() +@@ -234,12 +245,13 @@ endif() install(FILES ${ALL_INC} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/chewing) install(FILES ${PROJECT_BINARY_DIR}/chewing.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) @@ -52,27 +51,36 @@ index 1465dfb..ecc58d8 100644 INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) ++if(NOT EMSCRIPTEN) + install( + FILES + ${PROJECT_BINARY_DIR}/data/dict/chewing/tsi.dat +@@ -249,7 +261,7 @@ install( + DESTINATION + ${CMAKE_INSTALL_DATADIR}/libchewing + ) -install(IMPORTED_RUNTIME_ARTIFACTS chewing-cli DESTINATION ${CMAKE_INSTALL_BINDIR}) ++endif() # generate CMake Config files include(CMakePackageConfigHelpers) diff --git a/Cargo.toml b/Cargo.toml -index 9d7b4f2..557bb18 100644 +index fccb102..9022072 100644 --- a/Cargo.toml +++ b/Cargo.toml -@@ -28,6 +28,7 @@ tempfile = { workspace = true } - [features] - default = [] +@@ -30,6 +30,7 @@ default = [] sqlite = ["dep:rusqlite"] + sqlite-bundled = ["sqlite", "rusqlite/bundled"] + log = ["tracing/log"] +threading = [] [workspace] members = ["capi", "fuzzer", "tests/testhelper", "tools"] diff --git a/src/dictionary/trie_buf.rs b/src/dictionary/trie_buf.rs -index dd51478..c2a8f34 100644 +index 933e0ba..5a844fe 100644 --- a/src/dictionary/trie_buf.rs +++ b/src/dictionary/trie_buf.rs -@@ -217,6 +217,7 @@ impl TrieBuf { +@@ -209,6 +209,7 @@ impl TrieBuf { pub(crate) fn sync(&mut self) -> Result<(), UpdateDictionaryError> { info!("Synchronize dictionary from disk..."); @@ -80,7 +88,7 @@ index dd51478..c2a8f34 100644 if let Some(join_handle) = self.join_handle.take() { if !join_handle.is_finished() { info!("Aborted. Wait until previous sync is finished."); -@@ -246,6 +247,7 @@ impl TrieBuf { +@@ -238,6 +239,7 @@ impl TrieBuf { self.trie = Some(Trie::open(self.path().unwrap())?); } } @@ -88,7 +96,7 @@ index dd51478..c2a8f34 100644 Ok(()) } -@@ -266,6 +268,7 @@ impl TrieBuf { +@@ -258,6 +260,7 @@ impl TrieBuf { join_handle: None, dirty: false, }; @@ -96,7 +104,7 @@ index dd51478..c2a8f34 100644 self.join_handle = Some(thread::spawn(move || { let mut builder = TrieBuilder::new(); info!("Saving snapshot..."); -@@ -281,6 +284,30 @@ impl TrieBuf { +@@ -273,6 +276,30 @@ impl TrieBuf { info!(" Done"); Ok(()) })); @@ -127,7 +135,7 @@ index dd51478..c2a8f34 100644 self.dirty = false; } } -@@ -376,10 +403,12 @@ impl Drop for TrieBuf { +@@ -357,10 +384,12 @@ impl Drop for TrieBuf { fn drop(&mut self) { let _ = self.sync(); let _ = self.flush(); diff --git a/scripts/boost.py b/scripts/boost.py index 0533d70..9815bad 100644 --- a/scripts/boost.py +++ b/scripts/boost.py @@ -1,7 +1,7 @@ import os from common import CMakeBuilder, MACOS_ARCH, PLATFORM, cache, ensure, sed -version = '1.89.0' +version = '1.90.0' boost_dir = f'boost-{version}' boost_tar = f'{boost_dir}-cmake.tar.xz'