mirror of
https://github.com/leejet/stable-diffusion.cpp.git
synced 2026-09-24 20:20:37 +00:00
89 lines
2.8 KiB
Markdown
89 lines
2.8 KiB
Markdown
# Oniguruma source subset
|
|
|
|
This directory contains the Oniguruma sources needed by sd.cpp's
|
|
[UTF-8 regex wrapper](../../src/core/regex.cpp).
|
|
|
|
## Upstream source
|
|
|
|
- Repository: [kkos/oniguruma](https://github.com/kkos/oniguruma)
|
|
- Release: `v6.9.10`
|
|
- Commit: [`4ef89209a239c1aea328cf13c05a2807e5c146d1`](https://github.com/kkos/oniguruma/tree/4ef89209a239c1aea328cf13c05a2807e5c146d1)
|
|
- License: [BSD-2-Clause](COPYING)
|
|
|
|
The 24 upstream files below were copied without local modifications. `COPYING`
|
|
comes from the upstream repository root; all other files come from upstream
|
|
`src/` and retain their original filenames, flattened into this directory.
|
|
This README is maintained by sd.cpp and is not part of the upstream copy.
|
|
|
|
## File selection
|
|
|
|
The following 13 C files are compiled separately:
|
|
|
|
```text
|
|
ascii.c
|
|
regcomp.c
|
|
regenc.c
|
|
regerror.c
|
|
regexec.c
|
|
regparse.c
|
|
st.c
|
|
unicode.c
|
|
unicode_fold1_key.c
|
|
unicode_fold2_key.c
|
|
unicode_fold3_key.c
|
|
unicode_unfold_key.c
|
|
utf8.c
|
|
```
|
|
|
|
Four Unicode data tables are included by `unicode.c` and must not be compiled
|
|
as separate translation units. They were copied from upstream as supplied;
|
|
sd.cpp does not regenerate them:
|
|
|
|
```text
|
|
unicode_fold_data.c
|
|
unicode_property_data.c
|
|
unicode_egcb_data.c
|
|
unicode_wb_data.c
|
|
```
|
|
|
|
The remaining files are five headers, the platform configuration template,
|
|
and the license:
|
|
|
|
```text
|
|
oniguruma.h
|
|
regint.h
|
|
regenc.h
|
|
regparse.h
|
|
st.h
|
|
config.h.cmake.in
|
|
COPYING
|
|
```
|
|
|
|
The wrapper uses `ONIG_ENCODING_UTF8` and `ONIG_SYNTAX_ONIGURUMA`. ASCII support
|
|
is also retained because the engine requires it for initialization and error
|
|
handling. Unicode property, case-folding, grapheme-cluster and word-boundary
|
|
support remain enabled as in upstream.
|
|
|
|
Other encodings, GNU/POSIX compatibility APIs, unused API implementations,
|
|
upstream tests, examples, build scripts and packaging files are omitted.
|
|
This subset supports sd.cpp's internal wrapper; it does not provide the full
|
|
Oniguruma API declared in `oniguruma.h`.
|
|
|
|
## Build integration
|
|
|
|
[The parent CMake file](../CMakeLists.txt) detects platform headers and type
|
|
sizes, then generates `config.h` from `config.h.cmake.in` in the build directory.
|
|
It builds the 13 C files as the `onig` OBJECT target with `ONIG_STATIC` and
|
|
position-independent code enabled. The resulting objects are included directly
|
|
in the sd.cpp static or shared library, with no separate Oniguruma library
|
|
required by consumers.
|
|
|
|
Keep all 24 upstream files under version control, including the Unicode tables,
|
|
configuration template and license. Generated `config.h` and build artifacts
|
|
belong in the build directory.
|
|
|
|
When refreshing this subset, copy the listed files from the selected upstream
|
|
revision, retain `COPYING`, and update the revision recorded here.
|
|
Recheck source dependencies and the CMake configuration, then validate the
|
|
regex wrapper and tokenizer output on supported platforms.
|