Skip to content

Onigmo 6.0.0

Compare
Choose a tag to compare
@k-takata k-takata released this 10 Dec 09:35
· 187 commits to master since this release

This is the first major release of Onigmo. 🎉
Changes from Onigmo 5.15.0 are listed below.

Incompatible changes

  • The header file, library file and other files are renamed from oniguruma* or onig* to onigmo*. This aims to avoid conflict with Oniguruma 6.x. (Issue #66)
  • Source code for Ruby 2.x in ruby-2.x branch is now fully merged into the master branch. This includes the following changes:
    • Ruby specific parts are now sorrounded by #ifdef RUBY .. #endif.
    • Ruby specific onig_compile() is now named onig_compile_ruby().
    • Some APIs have end parameter now. E.g. onigenc_get_prev_char_head().
    • Some encoding names were changed. E.g.: "CP932" -> "Windows-31J".
    • Encoding structs and syntax structs are now constants.
  • The behavior of [[:punct:]] on Unicode encodings is changed. Now [[:punct:]] matches the nine characters $+<=>^|~` on all encodings. (Issue #42)
  • Drop support for very old compilers. For MSVC, VC2005 or later is required. For other platforms, ANSI C89 is required. (Issue #72)
  • Remove ONIG_OPTION_POSIX_REGION. (Issue #75)
  • Value of some constants were changed. E.g. ONIG_OPTION_NOTBOS
  • Remove onigenc_set_default_caseconv_table().
  • All THREAD_* macros are removed, because Onigmo is now thread-safe.

New features

  • Support Token Threaded VM on GCC and Clang. (PR #52)
  • Update Unicode database from 7.0.0 to 9.0.0.
  • Support true extended grapheme cluster. (Issue #46)
  • Add onig_{get,set}_parse_depth_limit(). (Issue #68)
  • Add onig_initialize().
  • Add onig_scan().
  • Support \uHHHH in Ruby syntax.
  • Support \o{OOO} in Perl syntax.
  • Use separate build directories for x86 and x64 on Windows. (Issue #67)
  • Some new encodings were imported from Ruby: KOI8-U, Windows-1250, Windows-1251, Windows-1252, Windows-1253, Windows-1254 and Windows-1257.
  • Support multiprocess build on MSVC.
  • Add build_nmake script for building with nmake. (PR #47)

Bug fixes

  • Fix that deeply nested capture groups cause stack overflow. (Issue #68)
  • Fix that some patterns cause crash. (Issue #65, etc.)
  • Fix that \G doesn't match properly with onig_search_gpos(). (Issue #53)
  • Fix that look-behind does not take Unicode case-folding into account. (Issue #18)
  • Fix that wrong capturing occurs after recursive match. (Issue #48)
  • Fix build error on systems using BSD make. (PR #55)
  • The behavior of named backreferences in Perl syntax was different from Perl. (Issue #74)
  • etc.

Many changes from Ruby and also from Oniguruma were merged.