Skip to content

Releases: chewing/libchewing

v0.9.0

10 Aug 22:35
v0.9.0
83e03cc
Compare
Choose a tag to compare

What's New in libchewing 0.9.0 (August 11, 2024)

  • Features

    • Support two new input modes:
      • Fuzzy mode - support prefix search, partial zhuyin search, toneless input.
      • Simple mode - like the traditional input method on Windows 95 which does
        not perform any intelligent phrasing.
    • Allow space key for pagination regardless of space_is_select_key mode.
    • Merge DOWN and SPACE key behavior in pagination.
    • A new option to disable fullwidth toggle key.
    • Workman layout support.
    • Load embedded mini dictionary if system dictionaries were not found.
    • Automatically load extra dictionaries found in search path
      • ${CHEWING_PATH}/dictionary.d/*.dat
    • Automatic snapshot selections when the curser is moved.
  • Developer Features

    • BREAKING: Remove language_mode and character_form methods (Rust).
    • BREAKING: Remove unused pinyin.tab file
    • BREAKING: Remove most unused C code but keep compat C headers.
    • Bump minimum supported Rust version to 1.77
    • Enable ELF symbol versioning. All existing symbols are marked as version
      CHEWING_0.5 and new symbols from this release are marked as CHEWING_0.9.
    • A new set of configuration API:
      • chewing_config_has_option
      • chewing_config_get_int
      • chewing_config_set_int
      • chewing_config_get_str
      • chewing_config_set_str
    • New API to get runtime library version:
      • chewing_version
      • chewing_version_major
      • chewing_version_minor
      • chewing_version_patch
      • chewing_version_extra
    • New API to acknowledge output buffers:
      • chewing_ack
    • Define version macros
      • CHEWING_VERSION_MAJOR
      • CHEWING_VERSION_MINOR
      • CHEWING_VERSION_PATCH
  • Bug Fixes

    • Separate special handling by pinyin variants (#298)
    • Panic when selecting phrases backwards at the end of buffer. (introduced in
      v0.8.0)
  • Dictionary

    • Default dictionary updates and fixes (#331)
  • Performance

    • Optimize K shortest path algorithm to handle long pre-edit buffer. This
      allowed us to remove the special DP algorithm and keep only the graph search
      based algorithm in conversion.
  • Testing

    • Add benchmarks for the conversion module
    • Add tests for options and default values
    • Add test for chewing_config_set_str
    • Test chewing_config_set_str with chewing.keyboard_type
    • Allow switching keyboard layout in genkeystroke
    • Add test for simple engine symbol input
    • Support new editor options in the fuzzer.
    • Generate test cases from fuzzer input.
  • Miscellaneous Tasks

    • Drop outdated ChangeLog
    • Add option to turn off tests run
    • Use system corrosion if available
    • Regenerate chewing.h using latest cbindgen
    • Include CTest and use the built-in BUILD_TESTING option
    • Manage SQLite dependency with CMake
    • Print status about SQLite3 module
    • Remove unused test files
    • Bump Corrosion to v0.5
    • Fix building without using CMake presets
    • Force linking chewing_version obj file
    • Append git describe to version string for unreleased version.
  • New Contributors

Full Changelog: v0.8.5...v0.9.0

v0.9.0-rc.3

27 Jul 23:21
v0.9.0-rc.3
f189488
Compare
Choose a tag to compare
v0.9.0-rc.3 Pre-release
Pre-release

What's New in libchewing 0.9.0-rc.3 (July 28, 2024)

  • Bug fixes

    • Add back 0.5.x compat C headers. (introduced in v0.9.0-rc.1)
    • Panic when connecting symbol to symbol or symbol to phrase. (introduced in v0.9.0-rc.1)
    • Panic when selecting phrases backwards at the end of buffer. (introduced in v0.8.0)
    • Panic when autocommit in select mode triggered by the simple engine. (introduced in v0.9.0-rc.2)
  • Testing

    • Support new editor options in the fuzzer.
    • Generate test cases from fuzzer input.
  • Misc

    • Append git describe to version string for unreleased version.

Full Changelog: v0.9.0-rc.2...v0.9.0-rc.3

v0.9.0-rc.2

21 Jul 22:50
v0.9.0-rc.2
d2e1118
Compare
Choose a tag to compare
v0.9.0-rc.2 Pre-release
Pre-release

What's New in libchewing 0.9.0-rc.2 (July 22, 2024)

  • Features
    • Revert mode switch notifications change.
    • Make simple engine compatiable with Plain Zhuyin in ibus-chewing.
    • Automatic snapshot selections when the curser is moved.
  • Developer Features
    • Define version macros
      • CHEWING_VERSION_MAJOR
      • CHEWING_VERSION_MINOR
      • CHEWING_VERSION_PATCH

Full Changelog: v0.9.0-rc.1...v0.9.0-rc.2

v0.9.0-rc.1

16 Jul 12:32
v0.9.0-rc.1
a77806d
Compare
Choose a tag to compare
v0.9.0-rc.1 Pre-release
Pre-release

What's New in libchewing 0.9.0-rc.1 (July 16, 2024)

  • Features

    • Support two new input modes:
      • Fuzzy mode - support prefix search, partial zhuyin search, toneless input.
      • Simple mode - like the traditional input method on Windows 95 which does
        not perform any intelligent phrasing.
    • Allow space key for pagination regardless of space_is_select_key mode.
    • Merge DOWN and SPACE key behavior in pagination.
    • A new option to disable fullwidth toggle key.
    • Workman layout support.
    • Load embedded mini dictionary if system dictionaries were not found.
    • Show notification about mode switches triggered by input.
    • Automatically load extra dictionaries found in search path
      • ${CHEWING_PATH}/dictionary.d/*.dat
  • Developer Features

    • BREAKING: Remove language_mode and character_form methods
    • BREAKING: Remove unused pinyin.tab file
    • BREAKING: Remove most unused C code
    • Bump minimum supported Rust version to 1.77
    • Enable ELF symbol versioning. All existing symbols are marked as version
      CHEWING_0.5 and new symbols from this release are marked as CHEWING_0.9.
    • A new set of configuration API:
      • chewing_config_has_option
      • chewing_config_get_int
      • chewing_config_set_int
      • chewing_config_get_str
      • chewing_config_set_str
    • New API to get runtime library version:
      • chewing_version
      • chewing_version_major
      • chewing_version_minor
      • chewing_version_patch
      • chewing_version_extra
    • New API to acknowledge output buffers:
      • chewing_ack
  • Bug Fixes

    • Separate special handling by pinyin variants (#298)
  • Dictionary

    • Default dictionary updates and fixes (#331)
  • Performance

    • Optimize K shortest path algorithm to handle long pre-edit buffer. This
      allowed us to remove the special DP algorithm and keep only the graph search
      based algorithm in conversion.
  • Testing

    • Add benchmarks for the conversion module
    • Add tests for options and default values
    • Add test for chewing_config_set_str
    • Test chewing_config_set_str with chewing.keyboard_type
    • Allow switching keyboard layout in genkeystroke
    • Add test for simple engine symbol input
  • Miscellaneous Tasks

    • Drop outdated ChangeLog
    • Add option to turn off tests run
    • Use system corrosion if available
    • Regenerate chewing.h using latest cbindgen
    • Include CTest and use the built-in BUILD_TESTING option
    • Manage SQLite dependency with CMake
    • Print status about SQLite3 module
    • Remove unused test files
    • Bump Corrosion to v0.5
    • Fix building without using CMake presets
    • Force linking chewing_version obj file
  • New Contributors

Full Changelog: v0.8.5...v0.9.0-rc.1

v0.8.5

08 Jul 21:24
v0.8.5
9be4851
Compare
Choose a tag to compare

What's New in libchewing 0.8.5 (July 8, 2024)

  • Changed

    • Bump default Corrosion version to v0.5
  • Bug fixed

    • Hanyu Pinyin empty rime handling. (#585, introduced in v0.8.0, reported by Jidanni)
    • Printable non A-Z chars should output symbols in pinyin. (#592, introduced in v0.8.0, reported by Jidanni)

Full Changelog: v0.8.4...v0.8.5

v0.8.4

31 May 22:46
v0.8.4
9199c9e
Compare
Choose a tag to compare

What's New in libchewing 0.8.4 (Jun 1, 2024)

  • Bug fixed
    • Config options were incorrectly reset after certain operations. (introduced in v0.8.0)
    • Incorrect mapping for KB_DVORAK and KB_DVORAK_HSU layouts. (introduced in v0.8.0)
    • Installation failure if build with testing off. (introduced in v0.8.3)

Full Changelog: v0.8.3...v0.8.4

v0.8.3

25 May 10:16
v0.8.3
02e9211
Compare
Choose a tag to compare

What's New in libchewing 0.8.3 (May 25, 2024)

  • Changed

    • Simplified build options on the Windows platform.
    • Enabled CTest BUILD_TESTING option to disable tests.
    • Default uses system Corrosion if available.
  • Bug fixed

    • Fix more wrong Hsu (許氏) keyboard fuzz conversion (ㄍㄧ to ㄐㄧ and ㄍㄩ to ㄐㄩ) (introduced in v0.8.0)

Full Changelog: v0.8.2...v0.8.3

v0.8.2

21 May 13:36
v0.8.2
bf99982
Compare
Choose a tag to compare

What's New in libchewing 0.8.2 (May 21, 2024)

  • Bug fixed
    • Wrong Hsu (許氏) keyboard fuzz conversion (ㄍㄧ to ㄐㄧ and ㄍㄩ to ㄐㄩ) (introduced in v0.8.0)
    • Wrong symbol map location when building as a CMake submodule.

Full Changelog: v0.8.1...v0.8.2

v0.8.1

15 May 13:17
v0.8.1
b57d968
Compare
Choose a tag to compare

What's New in libchewing 0.8.1 (May 15, 2024)

  • Buf fixed
    • Fail to build on aarch64 due to type mismatch. (introduced in v0.8.0)

Full Changelog: v0.8.0...v0.8.1

v0.8.0

14 May 12:41
v0.8.0
8f7c805
Compare
Choose a tag to compare

What's New in libchewing 0.8.0 (May 14, 2024)

BREAKING CHANGE

New dictionary format is not compatible with old tools. Existing user dictionary
will be automatically backed up and migrated however old tools might not be able
to manipulate the dictionary directly.

The chewing-editor program can still be used to edit user dictionaries. In
this release we also introduced a new chewing-cli tool to inspect/dump/build
user dictionaries. See chewing-cli(1) for more details.

This version also closed/fixed many issues. Find the complete list of closed
issues here: https://github.com/chewing/libchewing/milestone/7?closed=1

  • Added

    • A new command line tool chewing-cli is included in this release. It can
      create or inspect dictionary files.
    • Reintroduce DictionaryMut as a separate trait.
  • Changed

    • CMake default preset switched to build with rust.
    • CMake minimum required version bumped to 3.24.0.
    • System dictionary and user dictionary file now uses platform standard paths.
      See https://docs.rs/chewing/latest/chewing/path/fn.data_dir.html for
      details.
    • Improved TrieBufDictionary::from ergonomics.
    • Rename DictEntries to Entries.
    • Ensure all fallible API returns Error.
    • Improved algorithm so using Tab key to find alternative phrasing is more
      responsive.
    • Easy symbol input now accepts arbitrary long "symbols". (rust)
    • Removed duplicated symbols "●" and "○" from symbols input.
  • Buf fixed

    • chewing_cand_CheckDone result was reversed in capi (introduced in v0.7.0)
    • Correctly ignore instead of absorb keys when the pre-edit buffer is empty.
      (introduced in v0.6.0)
    • Reset pagination page number when searching for next candidate range.
      (introduced in v0.7.0)
    • chewing_bopomofo_String_static did not return key sequence for pinyin input
      mode. (introduced in v0.6.0)
    • Different chewing_*_static() functions were using one shared global buffer.
      (introduced in v0.6.0)
    • Special symbol selection missed a couple symbols that was in C version.
      (introduced in v0.7.0)
    • Panics when a new selection replaces more than one existing selections.
      (introduced in v0.7.0)
    • Selection created from alternative bopomofo was not considered in
      conversion. (introduced in v0.6.0)
  • Removed

    • HashMap implemented Dictionary was removed.
  • Documentation

    • Clarify the accepted value of chewing_handle_Default method.

Full Changelog: v0.7.0...v0.8.0