From 17f989d0e7ce0dea0502dae732c5b026e9dab464 Mon Sep 17 00:00:00 2001 From: Aaron Son Date: Wed, 27 Aug 2025 00:45:39 -0700 Subject: [PATCH 1/2] Migrate go-icu-regex implementation to Cgo. This requires linking against an existing ICU4C library. If you build with the build tag icu_static, this package will set flags to build against a static build of icu4c instead of a dynamic one. --- .github/workflows/test.yml | 21 +- .gitignore | 2 + functions.go | 435 ----------------------------- go.mod | 1 - go.sum | 2 - icu/build.sh | 57 ---- icu/wasm/icu.wasm | Bin 802359 -> 0 bytes initialization.go | 28 -- {icu/src => internal/icu}/file.cpp | 7 +- internal/icu/file.h | 12 + internal/icu/icu.go | 182 ++++++++++++ internal/icu/icu_test.go | 36 +++ pool.go | 213 -------------- regex.go | 396 ++++---------------------- regex_test.go | 49 ++-- 15 files changed, 327 insertions(+), 1114 deletions(-) delete mode 100644 functions.go delete mode 100644 icu/build.sh delete mode 100644 icu/wasm/icu.wasm delete mode 100644 initialization.go rename {icu/src => internal/icu}/file.cpp (93%) create mode 100644 internal/icu/file.h create mode 100644 internal/icu/icu.go create mode 100644 internal/icu/icu_test.go delete mode 100644 pool.go diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 363e53d..bbded0b 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -19,9 +19,28 @@ jobs: go-version: ${{ matrix.go-version }} - name: Checkout code uses: actions/checkout@v3 + - name: Install ICU4C (MacOS) + if: ${{ matrix.platform == 'macos-latest' }} + run: | + dir=$(brew --cellar icu4c) + dir="$dir"/$(ls "$dir") + echo CGO_CPPFLAGS=-I$dir/include >> $GITHUB_ENV + echo CGO_LDFLAGS=-L$dir/lib >> $GITHUB_ENV + - name: Install ICU4C (Windows) + if: ${{ matrix.platform == 'windows-latest' }} + uses: msys2/setup-msys2@v2 + with: + path-type: inherit + msystem: UCRT64 + pacboy: icu:p toolchain:p pkg-config:p - name: Test - if: ${{ matrix.platform != 'ubuntu-latest' }} + if: ${{ matrix.platform == 'macos-latest' }} run: go test ./... + - name: Test + if: ${{ matrix.platform == 'windows-latest' }} + shell: msys2 {0} + run: | + go.exe test ./... - name: Test if: ${{ matrix.platform == 'ubuntu-latest' }} run: go test -race ./... diff --git a/.gitignore b/.gitignore index 3b34d04..0a050fd 100644 --- a/.gitignore +++ b/.gitignore @@ -40,3 +40,5 @@ test-server # OSX Files .DS_Store + +*~ diff --git a/functions.go b/functions.go deleted file mode 100644 index b99fda3..0000000 --- a/functions.go +++ /dev/null @@ -1,435 +0,0 @@ -// Copyright 2023 Dolthub, Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package regex - -import ( - "context" - "fmt" -) - -type URegularExpressionPtr uint32 -type UCharPtr uint32 -type UErrorCode int32 -type CharPtr int32 - -// void* malloc(size_t size) -func (pr *privateRegex) malloc(ctx context.Context, sz uint32) (uint32, error) { - pr.callStack[0] = uint64(sz) - err := pr.f_malloc.CallWithStack(ctx, pr.callStack[:]) - if err != nil { - return 0, err - } - return uint32(pr.callStack[0]), nil -} - -// void free(void* ptr) -func (pr *privateRegex) free(ctx context.Context, ptr uint32) error { - pr.callStack[0] = uint64(ptr) - return pr.f_free.CallWithStack(ctx, pr.callStack[:]) -} - -// UChar* replace(URegularExpression* regexp, UChar* replacement, int replacementLen, UChar* original, int originalSize, int start, int occurrence, int* returnSize) -func (pr *privateRegex) replace(ctx context.Context, regex URegularExpressionPtr, replacement UCharPtr, replacementLen int, original UCharPtr, originalSize int, start int, occurrence int, returnSize *int) (returnStr UCharPtr, err error) { - origSP := pr.g_globalStackVar.Get() - pr.g_globalStackVar.Set(origSP - 16) - defer func() { pr.g_globalStackVar.Set(origSP) }() - returnSizeAddr := origSP - 4 - pr.mod.Memory().WriteUint32Le(uint32(returnSizeAddr), uint32(*returnSize)) - defer func() { - res, ok := pr.mod.Memory().ReadUint32Le(uint32(returnSizeAddr)) - if !ok { - err = fmt.Errorf("could not read the return size") - } - *returnSize = int(res) - }() - - copy(pr.callStack[:], []uint64{uint64(regex), uint64(replacement), uint64(replacementLen), uint64(original), uint64(originalSize), uint64(start), uint64(occurrence), returnSizeAddr}) - err = pr.f_replace.CallWithStack(ctx, pr.callStack[:]) - if err != nil { - return 0, err - } - return UCharPtr(pr.callStack[0]), err -} - -// URegularExpression* uregex_open(const UChar* pattern, int32_t patternLength, uint32_t flags, UErrorCode* status); -func (pr *privateRegex) uregex_open(ctx context.Context, str UCharPtr, strlen int, flags uint32, uerr *UErrorCode) (ptr URegularExpressionPtr, err error) { - origSP := pr.g_globalStackVar.Get() - pr.g_globalStackVar.Set(origSP - 16) - defer func() { pr.g_globalStackVar.Set(origSP) }() - uerrAddr := origSP - 4 - pr.mod.Memory().WriteUint32Le(uint32(uerrAddr), uint32(*uerr)) - defer func() { - res, ok := pr.mod.Memory().ReadUint32Le(uint32(uerrAddr)) - if !ok { - err = fmt.Errorf("could not read UErrorCode") - } - *uerr = UErrorCode(res) - }() - - copy(pr.callStack[:], []uint64{uint64(str), uint64(strlen), uint64(flags), uint64(0), uerrAddr}) - err = pr.f_uregex_open.CallWithStack(ctx, pr.callStack[:]) - if err != nil { - return 0, err - } - return URegularExpressionPtr(pr.callStack[0]), nil -} - -// void uregex_close(URegularExpression* regexp) -func (pr *privateRegex) uregex_close(ctx context.Context, p URegularExpressionPtr) error { - pr.callStack[0] = uint64(p) - return pr.f_uregex_close.CallWithStack(ctx, pr.callStack[:]) -} - -// int32_t uregex_start(URegularExpression *regexp, int32_t groupNum, UErrorCode* status) -func (pr *privateRegex) uregex_start(ctx context.Context, regex URegularExpressionPtr, group int, uerr *UErrorCode) (idx int32, err error) { - origSP := pr.g_globalStackVar.Get() - pr.g_globalStackVar.Set(origSP - 16) - defer func() { pr.g_globalStackVar.Set(origSP) }() - uerrAddr := origSP - 4 - pr.mod.Memory().WriteUint32Le(uint32(uerrAddr), uint32(*uerr)) - defer func() { - res, ok := pr.mod.Memory().ReadUint32Le(uint32(uerrAddr)) - if !ok { - err = fmt.Errorf("could not read UErrorCode") - } - *uerr = UErrorCode(res) - }() - - copy(pr.callStack[:], []uint64{uint64(regex), uint64(group), uerrAddr}) - err = pr.f_uregex_start.CallWithStack(ctx, pr.callStack[:]) - if err != nil { - return 0, err - } - return int32(pr.callStack[0]), nil -} - -// int32_t uregex_end(URegularExpression* regexp, int32_t groupNum, UErrorCode* status) -func (pr *privateRegex) uregex_end(ctx context.Context, regex URegularExpressionPtr, group int, uerr *UErrorCode) (idx int32, err error) { - origSP := pr.g_globalStackVar.Get() - pr.g_globalStackVar.Set(origSP - 16) - defer func() { pr.g_globalStackVar.Set(origSP) }() - uerrAddr := origSP - 4 - pr.mod.Memory().WriteUint32Le(uint32(uerrAddr), uint32(*uerr)) - defer func() { - res, ok := pr.mod.Memory().ReadUint32Le(uint32(uerrAddr)) - if !ok { - err = fmt.Errorf("could not read UErrorCode") - } - *uerr = UErrorCode(res) - }() - - copy(pr.callStack[:], []uint64{uint64(regex), uint64(group), uerrAddr}) - err = pr.f_uregex_end.CallWithStack(ctx, pr.callStack[:]) - if err != nil { - return 0, err - } - return int32(pr.callStack[0]), nil -} - -// UBool uregex_find(URegularExpression* regexp, int32_t startIndex, UErrorCode* status) -func (pr *privateRegex) uregex_find(ctx context.Context, regex URegularExpressionPtr, startIndex int, uerr *UErrorCode) (ok bool, err error) { - origSP := pr.g_globalStackVar.Get() - pr.g_globalStackVar.Set(origSP - 16) - defer func() { pr.g_globalStackVar.Set(origSP) }() - uerrAddr := origSP - 4 - pr.mod.Memory().WriteUint32Le(uint32(uerrAddr), uint32(*uerr)) - defer func() { - res, ok := pr.mod.Memory().ReadUint32Le(uint32(uerrAddr)) - if !ok { - err = fmt.Errorf("could not read UErrorCode") - } - *uerr = UErrorCode(res) - }() - - copy(pr.callStack[:], []uint64{uint64(regex), uint64(startIndex), uerrAddr}) - err = pr.f_uregex_find.CallWithStack(ctx, pr.callStack[:]) - if err != nil { - return false, err - } - return pr.callStack[0] != 0, nil -} - -// UBool uregex_findNext(URegularExpression* regexp, UErrorCode* status) -func (pr *privateRegex) uregex_findNext(ctx context.Context, regex URegularExpressionPtr, uerr *UErrorCode) (ok bool, err error) { - origSP := pr.g_globalStackVar.Get() - pr.g_globalStackVar.Set(origSP - 16) - defer func() { pr.g_globalStackVar.Set(origSP) }() - uerrAddr := origSP - 4 - pr.mod.Memory().WriteUint32Le(uint32(uerrAddr), uint32(*uerr)) - defer func() { - res, ok := pr.mod.Memory().ReadUint32Le(uint32(uerrAddr)) - if !ok { - err = fmt.Errorf("could not read UErrorCode") - } - *uerr = UErrorCode(res) - }() - - copy(pr.callStack[:], []uint64{uint64(regex), uerrAddr}) - err = pr.f_uregex_findNext.CallWithStack(ctx, pr.callStack[:]) - if err != nil { - return false, err - } - return pr.callStack[0] != 0, nil -} - -// UChar* uregex_getText(URegularExpression *regexp, int32_t* textLength, UErrorCode* status) -func (pr *privateRegex) uregex_getText(ctx context.Context, p URegularExpressionPtr, textLength *int, uerr *UErrorCode) (text UCharPtr, err error) { - origSP := pr.g_globalStackVar.Get() - pr.g_globalStackVar.Set(origSP - 16) - defer func() { pr.g_globalStackVar.Set(origSP) }() - - uerrAddr := origSP - 4 - pr.mod.Memory().WriteUint32Le(uint32(uerrAddr), uint32(*uerr)) - defer func() { - res, ok := pr.mod.Memory().ReadUint32Le(uint32(uerrAddr)) - if !ok { - err = fmt.Errorf("could not read UErrorCode") - } - *uerr = UErrorCode(res) - }() - - textLengthAddr := origSP - 8 - pr.mod.Memory().WriteUint32Le(uint32(textLengthAddr), uint32(*textLength)) - defer func() { - res, ok := pr.mod.Memory().ReadUint32Le(uint32(textLengthAddr)) - if !ok { - err = fmt.Errorf("could not read textLength") - } - *textLength = int(res) - }() - - copy(pr.callStack[:], []uint64{uint64(p), textLengthAddr, uerrAddr}) - err = pr.f_uregex_getText.CallWithStack(ctx, pr.callStack[:]) - if err != nil { - return 0, err - } - return UCharPtr(pr.callStack[0]), nil -} - -// void uregex_setText(URegularExpression* regexp, const UChar* text, int32_t textLength, UErrorCode* status) -func (pr *privateRegex) uregex_setText(ctx context.Context, p URegularExpressionPtr, str UCharPtr, strlen int, uerr *UErrorCode) (err error) { - origSP := pr.g_globalStackVar.Get() - pr.g_globalStackVar.Set(origSP - 16) - defer func() { pr.g_globalStackVar.Set(origSP) }() - uerrAddr := origSP - 4 - pr.mod.Memory().WriteUint32Le(uint32(uerrAddr), uint32(*uerr)) - defer func() { - res, ok := pr.mod.Memory().ReadUint32Le(uint32(uerrAddr)) - if !ok { - err = fmt.Errorf("could not read UErrorCode") - } - *uerr = UErrorCode(res) - }() - - copy(pr.callStack[:], []uint64{uint64(p), uint64(str), uint64(strlen), uerrAddr}) - return pr.f_uregex_setText.CallWithStack(ctx, pr.callStack[:]) -} - -// int32_t uregex_replaceFirst(URegularExpression* regexp, const UChar* replacementText, int32_t replacementLength, UChar* destBuf, int32_t destCapacity, UErrorCode* status); -func (pr *privateRegex) uregex_replaceFirst(ctx context.Context, p URegularExpressionPtr, replacementText UCharPtr, replacementLength int, destBuf UCharPtr, destCapacity int, uerr *UErrorCode) (resultLength int, err error) { - origSP := pr.g_globalStackVar.Get() - pr.g_globalStackVar.Set(origSP - 16) - defer func() { pr.g_globalStackVar.Set(origSP) }() - - uerrAddr := origSP - 4 - pr.mod.Memory().WriteUint32Le(uint32(uerrAddr), uint32(*uerr)) - defer func() { - res, ok := pr.mod.Memory().ReadUint32Le(uint32(uerrAddr)) - if !ok { - err = fmt.Errorf("could not read UErrorCode") - } - *uerr = UErrorCode(res) - }() - - copy(pr.callStack[:], []uint64{uint64(p), uint64(replacementText), uint64(replacementLength), uint64(destBuf), uint64(destCapacity), uerrAddr}) - err = pr.f_uregex_replaceFirst.CallWithStack(ctx, pr.callStack[:]) - if err != nil { - return 0, err - } - return int(pr.callStack[0]), nil -} - -// int32_t uregex_replaceAll(URegularExpression* regexp, const UChar* replacementText, int32_t replacementLength, UChar* destBuf, int32_t destCapacity, UErrorCode* status); -func (pr *privateRegex) uregex_replaceAll(ctx context.Context, p URegularExpressionPtr, replacementText UCharPtr, replacementLength int, destBuf UCharPtr, destCapacity int, uerr *UErrorCode) (resultLength int, err error) { - origSP := pr.g_globalStackVar.Get() - pr.g_globalStackVar.Set(origSP - 16) - defer func() { pr.g_globalStackVar.Set(origSP) }() - - uerrAddr := origSP - 4 - pr.mod.Memory().WriteUint32Le(uint32(uerrAddr), uint32(*uerr)) - defer func() { - res, ok := pr.mod.Memory().ReadUint32Le(uint32(uerrAddr)) - if !ok { - err = fmt.Errorf("could not read UErrorCode") - } - *uerr = UErrorCode(res) - }() - - copy(pr.callStack[:], []uint64{uint64(p), uint64(replacementText), uint64(replacementLength), uint64(destBuf), uint64(destCapacity), uerrAddr}) - err = pr.f_uregex_replaceAll.CallWithStack(ctx, pr.callStack[:]) - if err != nil { - return 0, err - } - return int(pr.callStack[0]), nil -} - -// int32_t uregex_appendReplacement(URegularExpression* regexp, UChar* replacementText, int32_t replacementLength, UChar** destBuf, int32_t* destCapacity, UErrorCode* status) -func (pr *privateRegex) uregex_appendReplacement(ctx context.Context, p URegularExpressionPtr, replacementText UCharPtr, replacementLength int, destBuf *UCharPtr, destCapacity *int, uerr *UErrorCode) (resultLength int, err error) { - origSP := pr.g_globalStackVar.Get() - pr.g_globalStackVar.Set(origSP - 16) - defer func() { pr.g_globalStackVar.Set(origSP) }() - - uerrAddr := origSP - 4 - pr.mod.Memory().WriteUint32Le(uint32(uerrAddr), uint32(*uerr)) - defer func() { - res, ok := pr.mod.Memory().ReadUint32Le(uint32(uerrAddr)) - if !ok { - err = fmt.Errorf("could not read UErrorCode") - } - *uerr = UErrorCode(res) - }() - - destBufAddr := origSP - 8 - pr.mod.Memory().WriteUint32Le(uint32(destBufAddr), uint32(*destBuf)) - defer func() { - res, ok := pr.mod.Memory().ReadUint32Le(uint32(destBufAddr)) - if !ok { - err = fmt.Errorf("could not read destBuf") - } - *destBuf = UCharPtr(res) - }() - - destCapacityAddr := origSP - 12 - pr.mod.Memory().WriteUint32Le(uint32(destCapacityAddr), uint32(*destCapacity)) - defer func() { - res, ok := pr.mod.Memory().ReadUint32Le(uint32(destCapacityAddr)) - if !ok { - err = fmt.Errorf("could not read UErrorCode") - } - *destCapacity = int(res) - }() - - copy(pr.callStack[:], []uint64{uint64(p), uint64(replacementText), uint64(replacementLength), destBufAddr, destCapacityAddr, uerrAddr}) - err = pr.f_uregex_appendReplacement.CallWithStack(ctx, pr.callStack[:]) - if err != nil { - return 0, err - } - return int(pr.callStack[0]), nil -} - -// int32_t uregex_appendTail(URegularExpression* regexp, UChar** destBuf, int32_t* destCapacity, UErrorCode* status) -func (pr *privateRegex) uregex_appendTail(ctx context.Context, p URegularExpressionPtr, destBuf *UCharPtr, destCapacity *int, uerr *UErrorCode) (err error) { - origSP := pr.g_globalStackVar.Get() - pr.g_globalStackVar.Set(origSP - 16) - defer func() { pr.g_globalStackVar.Set(origSP) }() - - uerrAddr := origSP - 4 - pr.mod.Memory().WriteUint32Le(uint32(uerrAddr), uint32(*uerr)) - defer func() { - res, ok := pr.mod.Memory().ReadUint32Le(uint32(uerrAddr)) - if !ok { - err = fmt.Errorf("could not read UErrorCode") - } - *uerr = UErrorCode(res) - }() - - destBufAddr := origSP - 8 - pr.mod.Memory().WriteUint32Le(uint32(destBufAddr), uint32(*destBuf)) - defer func() { - res, ok := pr.mod.Memory().ReadUint32Le(uint32(destBufAddr)) - if !ok { - err = fmt.Errorf("could not read destBuf") - } - *destBuf = UCharPtr(res) - }() - - destCapacityAddr := origSP - 12 - pr.mod.Memory().WriteUint32Le(uint32(destCapacityAddr), uint32(*destCapacity)) - defer func() { - res, ok := pr.mod.Memory().ReadUint32Le(uint32(destCapacityAddr)) - if !ok { - err = fmt.Errorf("could not read UErrorCode") - } - *destCapacity = int(res) - }() - - copy(pr.callStack[:], []uint64{uint64(p), destBufAddr, destCapacityAddr, uerrAddr}) - return pr.f_uregex_appendTail.CallWithStack(ctx, pr.callStack[:]) -} - -// char* u_strToUTF8(char* dest, int32_t destCapacity, int32_t* pDestLength, const UChar* src, int32_t srcLength, UErrorCode* pErrorCode) -func (pr *privateRegex) u_strToUTF8(ctx context.Context, buff CharPtr, bufflen int, outlen *int, str UCharPtr, strlen int, uerr *UErrorCode) (err error) { - origSP := pr.g_globalStackVar.Get() - pr.g_globalStackVar.Set(origSP - 16) - defer func() { pr.g_globalStackVar.Set(origSP) }() - uerrAddr := origSP - 4 - pr.mod.Memory().WriteUint32Le(uint32(uerrAddr), uint32(*uerr)) - defer func() { - res, ok := pr.mod.Memory().ReadUint32Le(uint32(uerrAddr)) - if !ok { - err = fmt.Errorf("could not read UErrorCode") - } - *uerr = UErrorCode(res) - }() - - var outlenptr uint32 = 0 - if outlen != nil { - outlenptr = uint32(origSP - 8) - pr.mod.Memory().WriteUint32Le(outlenptr, uint32(*outlen)) - defer func() { - res, ok := pr.mod.Memory().ReadUint32Le(outlenptr) - if !ok { - err = fmt.Errorf("could not read UErrorCode") - } - *outlen = int(res) - }() - } - - copy(pr.callStack[:], []uint64{uint64(buff), uint64(bufflen), uint64(outlenptr), uint64(str), uint64(strlen), uerrAddr}) - return pr.f_u_strToUTF8.CallWithStack(ctx, pr.callStack[:]) -} - -// UChar* u_strFromUTF8(UChar* dest, int32_t destCapacity, int32_t* pDestLength, const char* src, int32_t srcLength, UErrorCode* pErrorCode) -func (pr *privateRegex) u_strFromUTF8(ctx context.Context, buff UCharPtr, bufflen int, outlen *int, str CharPtr, strlen int, uerr *UErrorCode) (err error) { - origSP := pr.g_globalStackVar.Get() - pr.g_globalStackVar.Set(origSP - 16) - defer func() { pr.g_globalStackVar.Set(origSP) }() - - uerrAddr := origSP - 4 - pr.mod.Memory().WriteUint32Le(uint32(uerrAddr), uint32(*uerr)) - defer func() { - res, ok := pr.mod.Memory().ReadUint32Le(uint32(uerrAddr)) - if !ok { - err = fmt.Errorf("could not read UErrorCode") - } - *uerr = UErrorCode(res) - }() - - var outlenptr uint32 = 0 - if outlen != nil { - outlenptr = uint32(origSP - 8) - pr.mod.Memory().WriteUint32Le(outlenptr, uint32(*outlen)) - defer func() { - res, ok := pr.mod.Memory().ReadUint32Le(outlenptr) - if !ok { - err = fmt.Errorf("could not read UErrorCode") - } - *outlen = int(res) - }() - } - - copy(pr.callStack[:], []uint64{uint64(buff), uint64(bufflen), uint64(outlenptr), uint64(str), uint64(strlen), uerrAddr}) - return pr.f_u_strFromUTF8.CallWithStack(ctx, pr.callStack[:]) -} diff --git a/go.mod b/go.mod index ba4fb66..ef9d468 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,6 @@ go 1.24 require ( github.com/stretchr/testify v1.8.2 - github.com/tetratelabs/wazero v1.9.0 gopkg.in/src-d/go-errors.v1 v1.0.0 ) diff --git a/go.sum b/go.sum index e33706b..73b0d96 100644 --- a/go.sum +++ b/go.sum @@ -12,8 +12,6 @@ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8= github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/tetratelabs/wazero v1.9.0 h1:IcZ56OuxrtaEz8UYNRHBrUa9bYeX9oVY93KspZZBf/I= -github.com/tetratelabs/wazero v1.9.0/go.mod h1:TSbcXCfFP0L2FGkRPxHphadXPjo1T6W+CseNNY7EkjM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/src-d/go-errors.v1 v1.0.0 h1:cooGdZnCjYbeS1zb1s6pVAAimTdKceRrpn7aKOnNIfc= diff --git a/icu/build.sh b/icu/build.sh deleted file mode 100644 index 914047d..0000000 --- a/icu/build.sh +++ /dev/null @@ -1,57 +0,0 @@ -#!/bin/bash - -set -e - -if ! command -v emcc &> /dev/null -then - echo "Emscripten is not installed, this script only supports version 3.1.38" - exit 1 -fi -if [[ $(emcc --version) != *"3.1.38"* ]]; then - echo "Emscripten is installed, but this must be compiled using version 3.1.38" - echo -e "Installed Version:\n $(emcc --version | head -n 1)" - exit 1 -fi - -if ! command -v wasm2wat &> /dev/null -then - echo "wasm2wat is not installed" - exit 1 -fi -if ! command -v wat2wasm &> /dev/null -then - echo "wat2wasm is not installed" - exit 1 -fi - - -EXPORTED_FUNCTIONS="_malloc," -EXPORTED_FUNCTIONS+="_free," -EXPORTED_FUNCTIONS+="_uregex_open_68," -EXPORTED_FUNCTIONS+="_uregex_close_68," -EXPORTED_FUNCTIONS+="_uregex_start_68," -EXPORTED_FUNCTIONS+="_uregex_end_68," -EXPORTED_FUNCTIONS+="_uregex_find_68," -EXPORTED_FUNCTIONS+="_uregex_findNext_68," -EXPORTED_FUNCTIONS+="_uregex_getText_68," -EXPORTED_FUNCTIONS+="_uregex_setText_68," -EXPORTED_FUNCTIONS+="_uregex_replaceFirst_68," -EXPORTED_FUNCTIONS+="_uregex_replaceAll_68," -EXPORTED_FUNCTIONS+="_uregex_appendReplacement_68," -EXPORTED_FUNCTIONS+="_uregex_appendTail_68," -EXPORTED_FUNCTIONS+="_u_strFromUTF8_68," -EXPORTED_FUNCTIONS+="_u_strToUTF8_68" - -emcc \ - -s EXPORTED_FUNCTIONS="$EXPORTED_FUNCTIONS" \ - -s USE_ICU=1 \ - -s WASM=1 \ - -s TOTAL_MEMORY=64MB \ - --no-entry -o wasm/icu.wasm \ - src/file.cpp \ - -Wl,--whole-archive -licu_i18n -Wl,--no-whole-archive - -wasm2wat -o wasm/icu.wat wasm/icu.wasm -sed -i 's/(export "memory" (memory 0))/(export "memory" (memory 0))(export "globalStackVar" (global 0))/' wasm/icu.wat -wat2wasm -o wasm/icu.wasm wasm/icu.wat -rm wasm/icu.wat \ No newline at end of file diff --git a/icu/wasm/icu.wasm b/icu/wasm/icu.wasm deleted file mode 100644 index c84e44ee19aeba073a73d551c45c34212d2f0cc0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 802359 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

LCkW(l(IJmVe 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 Yf;O*FTFZYoavy%-=KYk~wW9F<0KvgdNdN!< diff --git a/initialization.go b/initialization.go deleted file mode 100644 index 24b40d3..0000000 --- a/initialization.go +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright 2023 Dolthub, Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package regex - -import ( - _ "embed" - - "github.com/tetratelabs/wazero" -) - -// Embedded data that will be loaded into our WASM runtime -var ( - //go:embed icu/wasm/icu.wasm - icuWasm []byte // This is generated using the "build.sh" script in the "icu" folder - icuConfig = wazero.NewModuleConfig() -) diff --git a/icu/src/file.cpp b/internal/icu/file.cpp similarity index 93% rename from icu/src/file.cpp rename to internal/icu/file.cpp index f249b77..87f6b2b 100644 --- a/icu/src/file.cpp +++ b/internal/icu/file.cpp @@ -1,7 +1,10 @@ // This code has been adapted from https://github.com/mysql/mysql-server/blob/ea7087d885006918ad54458e7aad215b1650312c/sql/regexp/regexp_engine.cc -#include +// #cgo macos CFLAGS: -Ibin/darwin-aarch64/include +// #cgo macos CXXFLAGS: -Ibin/darwin-aarch64/include + #include "unicode/regex.h" +#include "cstring" #ifdef __cplusplus extern "C" { @@ -53,7 +56,7 @@ void appendTail(URegularExpression* m_re, std::u16string& m_replace_buffer, int& m_replace_buffer_pos += tail_size; } -UChar* EMSCRIPTEN_KEEPALIVE replace(URegularExpression* regexp, UChar* replacement, int replacementLen, UChar* original, int originalSize, int start, int occurrence, int* returnSize) { +UChar* replace(URegularExpression* regexp, UChar* replacement, int replacementLen, UChar* original, int originalSize, int start, int occurrence, int* returnSize) { *returnSize = originalSize; UErrorCode m_error_code = U_ZERO_ERROR; std::u16string m_replace_buffer; diff --git a/internal/icu/file.h b/internal/icu/file.h new file mode 100644 index 0000000..b98499a --- /dev/null +++ b/internal/icu/file.h @@ -0,0 +1,12 @@ +#include "unicode/regex.h" + +#ifdef __cplusplus +extern "C" { +#endif + +UChar* replace(URegularExpression* regexp, UChar* replacement, int replacementLen, UChar* original, int originalSize, int start, int occurrence, int* returnSize); + + +#ifdef __cplusplus +} // extern "C" +#endif diff --git a/internal/icu/icu.go b/internal/icu/icu.go new file mode 100644 index 0000000..f76985b --- /dev/null +++ b/internal/icu/icu.go @@ -0,0 +1,182 @@ +package icu + +// #cgo CXXFLAGS: -std=c++17 +// #cgo !windows LDFLAGS: -licui18n -licuuc -licudata +// #cgo icu_static CPPFLAGS: -DU_STATIC_IMPLEMENTATION +// #cgo windows,icu_static LDFLAGS: -lsicuin -lsicuuc -lsicudt +// #cgo windows,!icu_static LDFLAGS: -licuin -licuuc -licudt +// #include "unicode/uregex.h" +// #include +// #include "file.h" +import "C" + +import ( + "runtime" + "unicode/utf16" + "unsafe" +) + +type URegularExpression struct { + ptr *C.URegularExpression + cleanup runtime.Cleanup +} + +type UErrorCode C.UErrorCode + +func Uregex_open(str *UCharStr, flags uint32, uerr *UErrorCode) *URegularExpression { + res := new(URegularExpression) + var ec C.UErrorCode + res.ptr = C.uregex_open(str.ptr, C.int32_t(str.len), C.uint32_t(flags), nil, &ec) + if uerr != nil { + *uerr = UErrorCode(ec) + } + res.cleanup = runtime.AddCleanup(res, func(ptr *C.URegularExpression) { + C.uregex_close(ptr) + }, res.ptr) + return res +} + +func (re *URegularExpression) Free() { + re.cleanup.Stop() + C.uregex_close(re.ptr) +} + +func Uregex_start(regex *URegularExpression, group int, uerr *UErrorCode) (idx int32) { + var ec C.UErrorCode + res := C.uregex_start(regex.ptr, C.int32_t(group), &ec) + if uerr != nil { + *uerr = UErrorCode(ec) + } + return int32(res) +} + +func Uregex_end(regex *URegularExpression, group int, uerr *UErrorCode) (idx int32) { + var ec C.UErrorCode + res := C.uregex_end(regex.ptr, C.int32_t(group), &ec) + if uerr != nil { + *uerr = UErrorCode(ec) + } + return int32(res) +} + +func Uregex_find(regex *URegularExpression, startIndex int, uerr *UErrorCode) (ok bool) { + var ec C.UErrorCode + res := C.uregex_find(regex.ptr, C.int32_t(startIndex), &ec) + if uerr != nil { + *uerr = UErrorCode(ec) + } + return res != 0 +} + +func Uregex_findNext(regex *URegularExpression, uerr *UErrorCode) (ok bool) { + var ec C.UErrorCode + res := C.uregex_findNext(regex.ptr, &ec) + if uerr != nil { + *uerr = UErrorCode(ec) + } + return res != 0 +} + +func Uregex_setText(regex *URegularExpression, str *UCharStr, uerr *UErrorCode) { + var ec C.UErrorCode + C.uregex_setText(regex.ptr, str.ptr, C.int32_t(str.len), &ec) + if uerr != nil { + *uerr = UErrorCode(ec) + } +} + +func Replace(regex *URegularExpression, replacement string, original *UCharStr, start int, occurrence int) string { + var replacementStr UCharStr + replacementStr.SetString(replacement) + defer replacementStr.Free() + var res UCharStr + var resLen C.int + res.ptr = C.replace(regex.ptr, replacementStr.ptr, C.int(replacementStr.len), original.ptr, C.int(original.len), C.int(start), C.int(occurrence), &resLen) + res.len = int(resLen) + if res.ptr != original.ptr { + // replace will not allocate if there is no match, returning original instead. + // we return a non-owning reference here if that is the case, but need to take + // ownership of the storage if it is newly allocated for us. + res.cap = int(resLen) + } + defer res.Free() + return res.GetString() +} + +// A small wrapper around an allocated blob of memory and a populated *UChar. +type UCharStr struct { + ptr *C.UChar + len int + // If cap != 0, this UCharStr owns the ptr and is responsible for deallocating it. + cap int + + cleanup runtime.Cleanup +} + +func (s *UCharStr) SetString(str string) { + uints := utf16.Encode([]rune(str)) + sz := len(uints) + 1 + s.alloc(sz) + var i int + for i = 0; i < len(uints); i++ { + *(*C.UChar)(unsafe.Pointer(uintptr(unsafe.Pointer(s.ptr)) + uintptr(i)*C.sizeof_UChar)) = C.UChar(uints[i]) + } + *(*C.UChar)(unsafe.Pointer(uintptr(unsafe.Pointer(s.ptr)) + uintptr(i)*C.sizeof_UChar)) = C.UChar(0) + s.len = len(uints) +} + +func (s *UCharStr) GetString() string { + codeunits := make([]uint16, s.len) + for i := 0; i < s.len; i++ { + codeunits[i] = uint16(*(*C.UChar)(unsafe.Pointer(uintptr(unsafe.Pointer(s.ptr)) + uintptr(i)*C.sizeof_UChar))) + } + return string(utf16.Decode(codeunits)) +} + +func (s *UCharStr) GetSubstring(start, end int) string { + return s.slice(start, end).GetString() +} + +func (s *UCharStr) alloc(sz int) { + if sz < 64 { + sz = 64 + } + if sz > s.cap { + s.Free() + s.cap = NextPow2(sz) + s.ptr = (*C.UChar)(C.malloc(C.size_t(s.cap * C.sizeof_UChar))) + s.cleanup = runtime.AddCleanup(s, func(ptr *C.UChar) { + C.free(unsafe.Pointer(ptr)) + }, s.ptr) + } +} + +func (s *UCharStr) Free() { + if s.cap > 0 { + s.cleanup.Stop() + C.free(unsafe.Pointer(s.ptr)) + s.cap = 0 + s.ptr = nil + s.len = 0 + } +} + +func (s *UCharStr) slice(start, end int) *UCharStr { + // slice never owns the storage and must not outlive the owning *UCharStr, including a SetString called on it. + var res UCharStr + res.len = end-start + res.ptr = (*C.UChar)(unsafe.Pointer(uintptr(unsafe.Pointer(s.ptr)) + 2 * uintptr(start))) + return &res +} + +func NextPow2(i int) int { + ui := uint32(i) + ui-- + ui |= ui >> 1 + ui |= ui >> 2 + ui |= ui >> 4 + ui |= ui >> 8 + ui |= ui >> 16 + ui++ + return int(ui) +} diff --git a/internal/icu/icu_test.go b/internal/icu/icu_test.go new file mode 100644 index 0000000..1c6adc3 --- /dev/null +++ b/internal/icu/icu_test.go @@ -0,0 +1,36 @@ +package icu + +import ( + "testing" + + "github.com/stretchr/testify/assert" +) + +func TestNextPow2(t *testing.T) { + assert.Equal(t, 32, NextPow2(32)) + assert.Equal(t, 64, NextPow2(33)) +} + +func TestUCharStr(t *testing.T) { + var s UCharStr + defer s.Free() + assert.Equal(t, 0, s.len) + assert.Equal(t, 0, s.cap) + assert.Equal(t, "", s.GetString()) + s.SetString("hello, world!") + assert.Equal(t, 13, s.len) + assert.Equal(t, 64, s.cap) + assert.Equal(t, "hello, world!", s.GetString()) + s.SetString("hello, world! this is a longer string and it requires a reallocation. we just keep adding words until it is bigger than 64 characters.") + assert.Equal(t, 134, s.len) + assert.Equal(t, 256, s.cap) + assert.Equal(t, "hello, world! this is a longer string and it requires a reallocation. we just keep adding words until it is bigger than 64 characters.", s.GetString()) + s.SetString("hello, world!") + assert.Equal(t, 13, s.len) + assert.Equal(t, 256, s.cap) + assert.Equal(t, "hello, world!", s.GetString()) + + assert.Equal(t, "hello", s.GetSubstring(0,5)) + assert.Equal(t, "ello", s.GetSubstring(1,5)) + assert.Equal(t, "world", s.GetSubstring(7, 12)) +} diff --git a/pool.go b/pool.go deleted file mode 100644 index c73a69d..0000000 --- a/pool.go +++ /dev/null @@ -1,213 +0,0 @@ -// Copyright 2024 Dolthub, Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package regex - -import ( - "context" - "reflect" - "runtime" - "sync" - - "github.com/tetratelabs/wazero" - "github.com/tetratelabs/wazero/api" - "github.com/tetratelabs/wazero/imports/wasi_snapshot_preview1" -) - -// modulePool is the pool that is used internally by the project. -var modulePool = NewPool() - -// RuntimeTracker tracks all relevant information that the Pool needs regarding a runtime. -type RuntimeTracker struct { - id uint64 - r wazero.Runtime - compiled wazero.CompiledModule - modules []api.Module - max uint64 - fetches uint64 -} - -// Pool is a special pool object for handling ICU regex modules. The cause isn't quite clear, but runtimes continue to -// hold onto memory even when their owned modules are closed, so this special pool type will also recycle the runtimes -// once a certain number of modules have been fetched. -type Pool struct { - mutex *sync.Mutex - runtimes []*RuntimeTracker - outstandingMods map[uintptr]uint64 - nextId uint64 - maxFetch uint64 -} - -// NewPool creates a new *Pool. -func NewPool() *Pool { - r, compiled := createRuntime(context.Background()) - pool := &Pool{ - mutex: &sync.Mutex{}, - runtimes: []*RuntimeTracker{{ - id: 1, - r: r, - compiled: compiled, - modules: make([]api.Module, 0, 16), - max: 0, - fetches: 0, - }}, - outstandingMods: make(map[uintptr]uint64), - nextId: 2, - maxFetch: 128, - } - return pool -} - -// Get returns a new module from the pool. -func (pool *Pool) Get() api.Module { - pool.mutex.Lock() - defer pool.mutex.Unlock() - - ctx := context.Background() - rtracker := pool.runtimes[len(pool.runtimes)-1] - rtracker.fetches++ - // If we've used up the number of fetches allowed in this runtime, then we'll create a new one - if rtracker.fetches >= pool.maxFetch { - r, compiled := createRuntime(ctx) - rtracker = &RuntimeTracker{ - id: pool.nextId, - r: r, - compiled: compiled, - modules: make([]api.Module, 0, 16), - max: 0, - fetches: 0, - } - pool.runtimes = append(pool.runtimes, rtracker) - pool.nextId++ - } - var module api.Module - // If the runtime has no modules remaining, then we need to create a new module - if len(rtracker.modules) == 0 { - rtracker.max++ - var err error - module, err = rtracker.r.InstantiateModule(ctx, rtracker.compiled, icuConfig) - if err != nil { - panic(err) - } - } else { - // Pop the last module from the slice - module = rtracker.modules[len(rtracker.modules)-1] - rtracker.modules = rtracker.modules[:len(rtracker.modules)-1] - } - // Now we need to track that this module is being returned - pool.outstandingMods[reflect.ValueOf(module).Pointer()] = rtracker.id - runtime.SetFinalizer(module, func(module api.Module) { - pool.finalized(module) - }) - return module -} - -// Put returns the module to the pool. -func (pool *Pool) Put(module api.Module) { - pool.mutex.Lock() - defer pool.mutex.Unlock() - pool.receivedModule(module, true) -} - -// finalized is called by the finalizer, and only exists to catch orphaned modules. -func (pool *Pool) finalized(module api.Module) { - pool.mutex.Lock() - defer pool.mutex.Unlock() - pool.receivedModule(module, false) -} - -// receivedModule is called when either the module is returned through Put, or the finalizer catches an orphaned module -// through finalized. -func (pool *Pool) receivedModule(module api.Module, isPut bool) { - // Remove the finalizer that was set when the object was fetched. - // This is only called from Put, as the finalizer is being called so we don't want to remove it. - if isPut { - runtime.SetFinalizer(module, nil) - } - // Grab the runtime ID and remove the module from the tracking map - ptr := reflect.ValueOf(module).Pointer() - runtimeId := pool.outstandingMods[ptr] - delete(pool.outstandingMods, ptr) - for rtrackerIdx := 0; rtrackerIdx < len(pool.runtimes); rtrackerIdx++ { - ctx := context.Background() - rtracker := pool.runtimes[rtrackerIdx] - // If this is a different runtime, then we still need to check whether it should be removed - if rtracker.id != runtimeId { - if rtracker.fetches >= pool.maxFetch && uint64(len(rtracker.modules)) >= rtracker.max { - pool.closeRuntime(ctx, rtrackerIdx, rtracker) - rtrackerIdx-- - } - continue - } - if isPut { - // Add the module back to the runtime when called from Put - rtracker.modules = append(rtracker.modules, module) - } else { - // We remove the module from the runtime altogether when called from the finalizer - rtracker.max-- - _ = module.Close(ctx) - } - // If this runtime has run out of fetches and all of its modules are back, then we need to close and remove it - if rtracker.fetches >= pool.maxFetch && uint64(len(rtracker.modules)) >= rtracker.max { - pool.closeRuntime(ctx, rtrackerIdx, rtracker) - } - return - } - // We could not find the runtime ID (or the module was not in the map), which should never happen - panic("go-icu-regex pool found orphaned module") -} - -// closeRuntime closes the given runtime, as well as removing it from the list of runtimes. -func (pool *Pool) closeRuntime(ctx context.Context, rtrackerIdx int, rtracker *RuntimeTracker) { - // First we'll close all the modules, then we'll close the runtime itself - for _, mod := range rtracker.modules { - _ = mod.Close(ctx) - } - _ = rtracker.r.Close(ctx) - // We then remove the runtime from the slice - newSlice := make([]*RuntimeTracker, len(pool.runtimes)-1) - copy(newSlice, pool.runtimes[:rtrackerIdx]) - copy(newSlice[rtrackerIdx:], pool.runtimes[rtrackerIdx+1:]) - pool.runtimes = newSlice -} - -// createRuntime creates a new runtime, as well as compiling the ICU module. The compiled module is only valid with the -// runtime that compiled it. -func createRuntime(ctx context.Context) (wazero.Runtime, wazero.CompiledModule) { - r := wazero.NewRuntime(ctx) - wasi_snapshot_preview1.MustInstantiate(ctx, r) - envBuilder := r.NewHostModuleBuilder("env") - noop_two := func(int32, int32) int32 { return -1 } - noop_four := func(int32, int32, int32, int32) int32 { return -1 } - envBuilder.NewFunctionBuilder().WithFunc(noop_two).Export("__syscall_stat64") - envBuilder.NewFunctionBuilder().WithFunc(noop_two).Export("__syscall_lstat64") - envBuilder.NewFunctionBuilder().WithFunc(noop_two).Export("__syscall_fstat64") - envBuilder.NewFunctionBuilder().WithFunc(noop_four).Export("__syscall_newfstatat") - _, err := envBuilder.Instantiate(ctx) - if err != nil { - panic(err) - } - compiledIcuWasm, err := r.CompileModule(ctx, icuWasm) - if err != nil { - panic(err) - } - return r, compiledIcuWasm -} - -// SetPoolFetchMax determines how many fetches are allowed from the internal Pool before a runtime is recycled. -func SetPoolFetchMax(maxFetch uint64) { - modulePool.mutex.Lock() - defer modulePool.mutex.Unlock() - modulePool.maxFetch = maxFetch -} diff --git a/regex.go b/regex.go index 1133666..20c635d 100644 --- a/regex.go +++ b/regex.go @@ -17,12 +17,10 @@ package regex import ( "context" "fmt" - "runtime" - "sync/atomic" - "unicode/utf16" - "github.com/tetratelabs/wazero/api" "gopkg.in/src-d/go-errors.v1" + + "github.com/dolthub/go-icu-regex/internal/icu" ) // Regex is an interface that wraps around the ICU library, exposing ICU's regular expression functionality. It is @@ -47,9 +45,6 @@ type Regex interface { // Substring returns the match of the previously-set match string, using the previously-set regex. Must call // SetRegexString and SetMatchString before this function. `start` and `occurrence` start at 1, not 0. Substring(ctx context.Context, start int, occurrence int) (string, bool, error) - // StringBufferSize returns the size of the string buffers, in bytes. If the string buffer is not being used, then - // this returns zero. - StringBufferSize() uint32 // Close frees up the internal resources. This MUST be called, else a panic will occur at some non-deterministic time. Close() error } @@ -63,30 +58,6 @@ var ( ErrInvalidRegex = errors.NewKind("the given regular expression is invalid") ) -// ShouldPanic determines whether the finalizer will panic if it finds a Regex that has not been closed. -var ShouldPanic = true - -// RegexLeakHandler is a callback function that will be invoked if a finalizer is called for a Regex that has not -// been closed. This allows applications to provide custom handling logic beyond panicing if a Regex leak is detected. -var regexLeakHandler atomic.Value - -// SetRegexLeakHandler sets a |handler| function to be executed if a finalizer is called for a Regex instance that -// has not been properly closed through it's Close() method. Note that if a custom leak handler function is provided, -// the ShouldPanic variable will be ignored and the code will not panic if a Regex leak is detected. -func SetRegexLeakHandler(handler func()) { - regexLeakHandler.Store(handler) -} - -// getRegexLeakHandler returns the custom handler function set by SetRegexLeakHandler, or nil if no custom handler has -// been set. -func getRegexLeakHandler() func() { - val := regexLeakHandler.Load() - if val == nil { - return nil - } - return val.(func()) -} - // RegexFlags are flags to define the behavior of the regular expression. Use OR (|) to combine flags. All flag values // were taken directly from ICU. type RegexFlags uint32 @@ -130,145 +101,36 @@ const ( RegexFlags_Error_On_Unknown_Escapes RegexFlags = 512 ) -// CreateRegex creates a Regex, with a region of memory that has been preallocated to support strings that are less than -// or equal to the given size. Such strings will skip the allocation and deallocation phases, which save time. A size of -// zero will force all strings to be allocated and deallocated. The buffer is defined for one string, therefore double -// the amount given will actually be consumed (regex and match strings). Once the Regex is done with, you must remember -// to call Close. This Regex is intended for single-threaded use only, therefore it is advised for each thread to use -// its own Regex when one is needed. +// CreateRegex creates a Regex. |stringBufferInBytes| is a hint to allocate string buffers +// for a certain size to avoid reallocation in the future, but is currently unused by the +// primary implementation. func CreateRegex(stringBufferInBytes uint32) Regex { - mod := modulePool.Get() - pr := &privateRegex{ - mod: mod, - regexPtr: 0, - regexStrUPtr: 0, - matchStrUPtr: 0, - matchStrUPtrLen: 0, - - bufferSize: stringBufferInBytes, - regexStrBuffer: 0, - matchStrBuffer: 0, - - g_globalStackVar: mod.ExportedGlobal("globalStackVar").(api.MutableGlobal), - - f_malloc: mod.ExportedFunction("malloc"), - f_free: mod.ExportedFunction("free"), - f_replace: mod.ExportedFunction("replace"), - f_uregex_open: mod.ExportedFunction("uregex_open_68"), - f_uregex_close: mod.ExportedFunction("uregex_close_68"), - f_uregex_start: mod.ExportedFunction("uregex_start_68"), - f_uregex_end: mod.ExportedFunction("uregex_end_68"), - f_uregex_find: mod.ExportedFunction("uregex_find_68"), - f_uregex_findNext: mod.ExportedFunction("uregex_findNext_68"), - f_uregex_getText: mod.ExportedFunction("uregex_getText_68"), - f_uregex_setText: mod.ExportedFunction("uregex_setText_68"), - f_uregex_replaceFirst: mod.ExportedFunction("uregex_replaceFirst_68"), - f_uregex_replaceAll: mod.ExportedFunction("uregex_replaceAll_68"), - f_uregex_appendReplacement: mod.ExportedFunction("uregex_appendReplacement_68"), - f_uregex_appendTail: mod.ExportedFunction("uregex_appendTail_68"), - f_u_strToUTF8: mod.ExportedFunction("u_strToUTF8_68"), - f_u_strFromUTF8: mod.ExportedFunction("u_strFromUTF8_68"), - } - // If we're creating string buffers, then we'll preallocate them - if stringBufferInBytes > 0 { - ctx := context.Background() - regexStrBuffer, err := pr.malloc(ctx, stringBufferInBytes) - if err != nil || regexStrBuffer == 0 { - // If we get an error or couldn't allocate the buffer, then we'll just disable the string buffer - pr.bufferSize = 0 - } else { - matchStrBuffer, err := pr.malloc(ctx, stringBufferInBytes) - if err != nil || matchStrBuffer == 0 { - pr.bufferSize = 0 - if err = pr.free(ctx, regexStrBuffer); err != nil { - panic(err) // This shouldn't fail, so we'll panic here, because something is very wrong - } - } else { - pr.regexStrBuffer = UCharPtr(regexStrBuffer) - pr.matchStrBuffer = UCharPtr(matchStrBuffer) - } - } - } - // This finalizer will let us know if a user never called Close. Although the module would eventually be reclaimed - // by GC, this finalizer ensures that regexes are being used as efficiently as possible by maximizing pool rotations. - // Hopefully, this would be caught during development and not in production. - runtime.SetFinalizer(pr, func(pr *privateRegex) { - if pr.mod != nil { - if leakHandler := getRegexLeakHandler(); leakHandler != nil { - leakHandler() - } else if ShouldPanic { - panic("Finalizer found a Regex that was never closed") - } - _ = pr.Close() - } - }) - return pr + return &privateRegex{} } // privateRegex is the private implementation of the Regex interface. type privateRegex struct { - mod api.Module - regexPtr URegularExpressionPtr - regexStrUPtr UCharPtr - matchStrUPtr UCharPtr - matchStrUPtrLen int - callStack [8]uint64 - - // Buffer details - bufferSize uint32 - regexStrBuffer UCharPtr - matchStrBuffer UCharPtr - - // Global Variables - g_globalStackVar api.MutableGlobal - // Functions - f_malloc api.Function - f_free api.Function - f_replace api.Function - f_uregex_open api.Function - f_uregex_close api.Function - f_uregex_start api.Function - f_uregex_end api.Function - f_uregex_find api.Function - f_uregex_findNext api.Function - f_uregex_getText api.Function - f_uregex_setText api.Function - f_uregex_replaceFirst api.Function - f_uregex_replaceAll api.Function - f_uregex_appendReplacement api.Function - f_uregex_appendTail api.Function - f_u_strToUTF8 api.Function - f_u_strFromUTF8 api.Function + regexPtr *icu.URegularExpression + regexStr icu.UCharStr + matchStr icu.UCharStr + matchSet bool } var _ Regex = (*privateRegex)(nil) // SetRegexString implements the interface Regex. func (pr *privateRegex) SetRegexString(ctx context.Context, regexStr string, flags RegexFlags) (err error) { - // Free any previously-set regex strings - if err = pr.closeRegexPtrs(); err != nil { - return err + if pr.regexPtr != nil { + pr.regexPtr.Free() + pr.regexPtr = nil } - // Convert regexStr to UTF16LE and then copy it to WASM memory - utf16RegexStr, regexStrULen := toUTF16(regexStr) - if uint32(regexStrULen*2) <= pr.bufferSize { - pr.regexStrUPtr = pr.regexStrBuffer - } else { - regexStrUPtr, err := pr.malloc(ctx, uint32(regexStrULen*2)) - if err != nil { - return err - } - pr.regexStrUPtr = UCharPtr(regexStrUPtr) - } - pr.mod.Memory().Write(uint32(pr.regexStrUPtr), utf16RegexStr) + pr.regexStr.SetString(regexStr) + pr.matchSet = false // Create the URegularExpression* - errorCode := UErrorCode(0) - regex, err := pr.uregex_open(ctx, pr.regexStrUPtr, regexStrULen, uint32(flags), &errorCode) - if err != nil { - return err - } + errorCode := icu.UErrorCode(0) + regex := icu.Uregex_open(&pr.regexStr, uint32(flags), &errorCode) if errorCode > 0 { return ErrInvalidRegex.New() } @@ -279,35 +141,16 @@ func (pr *privateRegex) SetRegexString(ctx context.Context, regexStr string, fla // SetMatchString implements the interface Regex. func (pr *privateRegex) SetMatchString(ctx context.Context, matchStr string) (err error) { // Check for the regex pointer first - if pr.regexPtr == 0 { + if pr.regexPtr == nil { return ErrRegexNotYetSet.New() } - // Reset the match string pointer if necessary - if err = pr.closeMatchPtr(); err != nil { - return err - } - - // Convert matchStr to UTF16LE and then copy it to WASM memory - utf16MatchStr, matchStrULen := toUTF16(matchStr) - if uint32(matchStrULen*2) <= pr.bufferSize { - pr.matchStrUPtr = pr.matchStrBuffer - } else { - matchStrUPtr, err := pr.malloc(ctx, uint32(matchStrULen*2)) - if err != nil { - return err - } - pr.matchStrUPtr = UCharPtr(matchStrUPtr) - } - pr.matchStrUPtrLen = matchStrULen - pr.mod.Memory().Write(uint32(pr.matchStrUPtr), utf16MatchStr) + pr.matchStr.SetString(matchStr) + pr.matchSet = true // Set the text on the URegularExpression* - errorCode := UErrorCode(0) - err = pr.uregex_setText(ctx, pr.regexPtr, pr.matchStrUPtr, matchStrULen, &errorCode) - if err != nil { - return err - } + errorCode := icu.UErrorCode(0) + icu.Uregex_setText(pr.regexPtr, &pr.matchStr, &errorCode) if errorCode > 0 { return fmt.Errorf("unexpected UErrorCode from uregex_setText: %d", errorCode) } @@ -317,26 +160,20 @@ func (pr *privateRegex) SetMatchString(ctx context.Context, matchStr string) (er // IndexOf implements the interface Regex. func (pr *privateRegex) IndexOf(ctx context.Context, start int, occurrence int, endIndex bool) (int, error) { // Check for the regex pointer first - if pr.regexPtr == 0 { + if pr.regexPtr == nil { return 0, ErrRegexNotYetSet.New() } // Check that the match string has been set - if pr.matchStrUPtr == 0 { + if !pr.matchSet { return 0, ErrMatchNotYetSet.New() } // Look for a match - var errorCode UErrorCode - ok, err := pr.uregex_find(ctx, pr.regexPtr, start-1, &errorCode) - if err != nil { - return 0, err - } + var errorCode icu.UErrorCode + ok := icu.Uregex_find(pr.regexPtr, start-1, &errorCode) for i := 1; i < occurrence && ok; i++ { - ok, err = pr.uregex_findNext(ctx, pr.regexPtr, &errorCode) - if err != nil { - return 0, err - } + ok = icu.Uregex_findNext(pr.regexPtr, &errorCode) } if !ok { return 0, nil @@ -345,16 +182,10 @@ func (pr *privateRegex) IndexOf(ctx context.Context, start int, occurrence int, // Get the index of the match var index int if endIndex { - index32, err := pr.uregex_end(ctx, pr.regexPtr, 0, &errorCode) - if err != nil { - return 0, err - } + index32 := icu.Uregex_end(pr.regexPtr, 0, &errorCode) index = int(index32) } else { - index32, err := pr.uregex_start(ctx, pr.regexPtr, 0, &errorCode) - if err != nil { - return 0, err - } + index32 := icu.Uregex_start(pr.regexPtr, 0, &errorCode) index = int(index32) } if errorCode > 0 { @@ -367,26 +198,20 @@ func (pr *privateRegex) IndexOf(ctx context.Context, start int, occurrence int, // Matches implements the interface Regex. func (pr *privateRegex) Matches(ctx context.Context, start int, occurrence int) (ok bool, err error) { // Check for the regex pointer first - if pr.regexPtr == 0 { + if pr.regexPtr == nil { return false, ErrRegexNotYetSet.New() } // Check that the match string has been set - if pr.matchStrUPtr == 0 { + if !pr.matchSet { return false, ErrMatchNotYetSet.New() } // Return if we found a match - var errorCode UErrorCode - ok, err = pr.uregex_find(ctx, pr.regexPtr, start, &errorCode) - if err != nil { - return false, err - } + var errorCode icu.UErrorCode + ok = icu.Uregex_find(pr.regexPtr, start, &errorCode) for i := 1; i < occurrence && ok; i++ { - ok, err = pr.uregex_findNext(ctx, pr.regexPtr, &errorCode) - if err != nil { - return false, err - } + ok = icu.Uregex_findNext(pr.regexPtr, &errorCode) } if errorCode > 0 { return false, fmt.Errorf("unexpected UErrorCode from uregex_find/uregex_findNext: %d", errorCode) @@ -395,177 +220,62 @@ func (pr *privateRegex) Matches(ctx context.Context, start int, occurrence int) } // Replace implements the interface Regex. -func (pr *privateRegex) Replace(ctx context.Context, replacementStr string, start int, occurrence int) (replacedStr string, err error) { +func (pr *privateRegex) Replace(ctx context.Context, replacement string, start int, occurrence int) (replacedStr string, err error) { // Check for the regex pointer first - if pr.regexPtr == 0 { + if pr.regexPtr == nil { return "", ErrRegexNotYetSet.New() } // Check that the match string has been set - if pr.matchStrUPtr == 0 { + if !pr.matchSet { return "", ErrMatchNotYetSet.New() } - // Convert replacementStr to UTF16LE and then copy it to WASM memory - //TODO: should probably copy this once and enforce that it has been set before running (also free & reset in Close) - utf16ReplacementStr, replacementStrULen := toUTF16(replacementStr) - replacementStrUPtr, err := pr.malloc(ctx, uint32(replacementStrULen*2)) - if err != nil { - return "", err - } - defer func() { - if fErr := pr.free(ctx, replacementStrUPtr); err == nil { - err = fErr - } - }() - pr.mod.Memory().Write(replacementStrUPtr, utf16ReplacementStr) - - // Move to the starting position - var returnSize int - returnStr, err := pr.replace(ctx, pr.regexPtr, UCharPtr(replacementStrUPtr), replacementStrULen, pr.matchStrUPtr, pr.matchStrUPtrLen, start-1, occurrence, &returnSize) - if err != nil { - return "", err - } - defer func() { - if fErr := pr.free(ctx, uint32(returnStr)); err == nil { - err = fErr - } - }() - returnStrBytes, ok := pr.mod.Memory().Read(uint32(returnStr), uint32(returnSize*2)) - if !ok { - return "", fmt.Errorf("somehow failed when retrieving the string with replacements") - } - return fromUTF16(returnStrBytes), nil + return icu.Replace(pr.regexPtr, replacement, &pr.matchStr, start-1, occurrence), nil } // Substring implements the interface Regex. func (pr *privateRegex) Substring(ctx context.Context, start int, occurrence int) (string, bool, error) { // Check for the regex pointer first - if pr.regexPtr == 0 { + if pr.regexPtr == nil { return "", false, ErrRegexNotYetSet.New() } // Check that the match string has been set - if pr.matchStrUPtr == 0 { + if !pr.matchSet { return "", false, ErrMatchNotYetSet.New() } // Look for a match - var errorCode UErrorCode - ok, err := pr.uregex_find(ctx, pr.regexPtr, start-1, &errorCode) - if err != nil { - return "", false, err - } + var errorCode icu.UErrorCode + ok := icu.Uregex_find(pr.regexPtr, start-1, &errorCode) for i := 1; i < occurrence && ok; i++ { - ok, err = pr.uregex_findNext(ctx, pr.regexPtr, &errorCode) - if err != nil { - return "", false, err - } + ok = icu.Uregex_findNext(pr.regexPtr, &errorCode) } if !ok { return "", false, nil } // Get the bounds of the match - idxStart, err := pr.uregex_start(ctx, pr.regexPtr, 0, &errorCode) - if err != nil { - return "", false, err - } - idxEnd, err := pr.uregex_end(ctx, pr.regexPtr, 0, &errorCode) - if err != nil { - return "", false, err - } + idxStart := icu.Uregex_start(pr.regexPtr, 0, &errorCode) + idxEnd := icu.Uregex_end(pr.regexPtr, 0, &errorCode) if errorCode > 0 { return "", false, fmt.Errorf("unexpected UErrorCode from uregex_find/uregex_findNext: %d", errorCode) } - returnStrBytes, ok := pr.mod.Memory().Read(uint32(pr.matchStrUPtr)+uint32(idxStart*2), uint32((idxEnd-idxStart)*2)) - if !ok { - return "", false, fmt.Errorf("somehow failed when retrieving the substring") - } - return fromUTF16(returnStrBytes), true, nil -} - -// StringBufferSize implements the interface Regex. -func (pr *privateRegex) StringBufferSize() uint32 { - return pr.bufferSize + return pr.matchStr.GetSubstring(int(idxStart), int(idxEnd)), true, nil } // Close implements the interface Regex. func (pr *privateRegex) Close() (err error) { - if pr == nil || pr.mod == nil { + if pr == nil { return nil } - err = pr.closeRegexPtrs() - if nErr := pr.closeMatchPtr(); err == nil { - err = nErr - } - // As we do not free the buffers in the other close functions (since they may be called without intending to close - // the regex as a whole), we take care of freeing them here. - if pr.bufferSize > 0 { - ctx := context.Background() - if nErr := pr.free(ctx, uint32(pr.regexStrBuffer)); err == nil { - err = nErr - } - if nErr := pr.free(ctx, uint32(pr.matchStrBuffer)); err == nil { - err = nErr - } - } - if pr.mod != nil { - modulePool.Put(pr.mod) - pr.mod = nil - runtime.SetFinalizer(pr, nil) - } - return err -} - -// closeRegexPtr closes the regex pointers if they exist. This will not free the string buffer if it is being used. -func (pr *privateRegex) closeRegexPtrs() (err error) { - ctx := context.Background() - if pr.regexPtr != 0 { - err = pr.uregex_close(ctx, pr.regexPtr) - } - if pr.regexStrUPtr != pr.regexStrBuffer && pr.regexStrUPtr != 0 { - if freeErr := pr.free(ctx, uint32(pr.regexStrUPtr)); err == nil { - err = freeErr - } - } - pr.regexPtr = 0 - pr.regexStrUPtr = 0 - return err -} - -// closeMatchPtr closes the match string pointer if it exists. This will not free the string buffer if it is being used. -func (pr *privateRegex) closeMatchPtr() (err error) { - if pr.matchStrUPtr != pr.matchStrBuffer && pr.matchStrUPtr != 0 { - err = pr.free(context.Background(), uint32(pr.matchStrUPtr)) - } - pr.matchStrUPtr = 0 - pr.matchStrUPtrLen = 0 - return err -} - -// toUTF16 returns a byte slice that contains the given string converted to UTF16LE, which is required for use with the -// ICU library. The length returned is the length that should be passed to ICU functions. -func toUTF16(str string) (convertedString []byte, length int) { - // ICU complains about the lack of NULL-termination, but it works anyway. Adding NULL at the end seems to - // prevent some matches (both a single NULL and two NULLs since it's a char16_t array). We just ignore the warning. - utf16Raw := utf16.Encode([]rune(str)) - length = len(utf16Raw) - convertedString = make([]byte, length*2) - for i := 0; i < length; i++ { - convertedString[2*i] = byte(utf16Raw[i]) - convertedString[(2*i)+1] = byte(utf16Raw[i] >> 8) - } - return -} - -// fromUTF16 returns a string from a byte slice that contains a string in the UTF16LE format, which is how strings will -// be returned from the ICU library. -func fromUTF16(convertedString []byte) string { - utf16Raw := make([]uint16, len(convertedString)/2) - for i := 0; i < len(utf16Raw); i++ { - utf16Raw[i] = uint16(convertedString[2*i]) | (uint16(convertedString[(2*i)+1]) << 8) + if pr.regexPtr != nil { + pr.regexPtr.Free() + pr.regexPtr = nil } - return string(utf16.Decode(utf16Raw)) + pr.matchStr.Free() + pr.regexStr.Free() + return nil } diff --git a/regex_test.go b/regex_test.go index dba06bd..4863e80 100644 --- a/regex_test.go +++ b/regex_test.go @@ -16,14 +16,27 @@ package regex import ( "context" - "runtime" - "sync/atomic" + "sync" "testing" - "time" "github.com/stretchr/testify/require" ) +func TestRegexpMatchLoop(t *testing.T) { + // Just test concurrency. + var wg sync.WaitGroup + wg.Add(16) + for i := 0; i < 16; i++ { + go func() { + defer wg.Done() + for i := 0; i < 2048; i++ { + TestRegexMatch(t) + } + }() + } + wg.Wait() +} + func TestRegexMatch(t *testing.T) { ctx := context.Background() regex := CreateRegex(512 * 1024) @@ -66,9 +79,7 @@ func TestRegexMatch(t *testing.T) { require.True(t, ok) require.NoError(t, regex.Close()) - // 4GB buffer is too big, so it should just disable it and not error. Shouldn't affect anything else though. - regex = CreateRegex(0xFFFFFFFF) - require.Equal(t, uint32(0), regex.StringBufferSize()) + regex = CreateRegex(128) require.NoError(t, regex.SetRegexString(ctx, `^abcde$`, RegexFlags_None)) err = regex.SetMatchString(ctx, "abcde") require.NoError(t, err) @@ -190,29 +201,3 @@ func TestRegexSubstring(t *testing.T) { require.Equal(t, "ghx", substr) require.NoError(t, regex.Close()) } - -// TestRegexLeakHandler asserts that RegexLeakHandler is invoked when a regex is not closed before -// it gets garbage collected. -func TestRegexLeakHandler(t *testing.T) { - leakHandlerCalled := atomic.Bool{} - - SetRegexLeakHandler(func() { - leakHandlerCalled.Store(true) - }) - defer func() { - SetRegexLeakHandler(nil) - }() - - regex := CreateRegex(1024) - regex.Close() - regex = nil - runtime.GC() - time.Sleep(500 * time.Millisecond) - require.False(t, leakHandlerCalled.Load()) - - regex = CreateRegex(1024) - regex = nil - runtime.GC() - time.Sleep(500 * time.Millisecond) - require.True(t, leakHandlerCalled.Load()) -} From 2f5fb959acb6137476a3ceb58f9ef5211013ec7b Mon Sep 17 00:00:00 2001 From: Aaron Son Date: Thu, 4 Sep 2025 02:01:31 -0700 Subject: [PATCH 2/2] README.md: Update the readme. --- README.md | 48 +++++++++++++++++++++++++++++------------------- 1 file changed, 29 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index ed88ba5..bb52d68 100644 --- a/README.md +++ b/README.md @@ -1,28 +1,38 @@ # ICU Regular Expressions in Go -The [ICU library](https://github.com/unicode-org/icu) is used in MySQL to parse regular expressions. -Go's built-in regular expressions follow a different standard than ICU, and thus can cause inconsistencies when attempting to match MySQL's behavior. -These inconsistencies would hopefully result in an error (prompting user intervention), but may silently return unexpected results, raising no alarm when data is being modified in unexpected ways. +Minimal bindings to [ICU4C](https://github.com/unicode-org/icu)'s regex implementation, for use in Go. -To get around this, we've implemented the necessary ICU functions by compiling them into a [WebAssembly](https://webassembly.org/) module, and running the module using the [wazero](https://github.com/tetratelabs/wazero) library. -Although this approach does come with a performance penalty, this allows for implementing packages to retain cross-compilation support, as CGo is not invoked due to this package. +This package is not intended to be a general purpose binding. It's primary purpose is to support [dolt](https://github.com/dolthub/dolt)'s need for ICU-compatible regexes in order to implement MySQL-compatible functionality. -## Building +# Use -To make modifications to the compiled WASM module, we've included a [build script](icu/build.sh). -The requirements are as follows: +```go +// Create a regex +regex := regex.CreateRegex(1024) +defer regex.Close() +// Set its pattern +regex.SetRegexString(context.TODO(), "[abc]+", regex.RegexFlags_None) +// Set its match string +regex.SetMatchString(context.TODO(), "123abcabcabcdef") +// Extract a matching substring; note start and occurence number are 1 indexed. +substr, ok, err := regex.Substring(context.TODO(), 1, 1) +assert.NoError(t, err) +assert.True(t, ok) +assert.Equals(t, substr, "abcabcabc") +``` -* Emscripten v3.1.38 -* wasm2wat -* wat2wasm +# Building and Dependencies -Other Emscripten versions may compile just fine, however they have not been tested, and thus we restrict compilation to only the tested version. -This also means that the ICU library is version [68.1](https://github.com/unicode-org/icu/tree/5d81f6f9a0edc47892a1d2af7024f835b47deb82), as that is the only version that our supported version of Emscripten has ported. -Both `wasm2wat` and `wat2wasm` exist to expose the global stack variable, as not all platforms will expose the variable. -None of the exposed functions require [ICU's data](https://unicode-org.github.io/icu/userguide/icu_data/), thus it has been excluded to save on space and memory usage. -MySQL, although collation aware (and in spite of what the documentation may suggest), does not make use of any collation functionality in the context of regular expressions. +This library, and consequently anything that depends on it, requires ICU4C to build and link against. This library does not ship a pre-compiled version of ICU4C and does not build ICU4C alongside itself as part of its Cgo binding. Consequently, building this library or anything that depends on it requires a C++ toolchain and a version of ICU4C installed. -## Notes +For Windows, this library currently only supports MinGW. We are happy to accept changes to support other toolchains based on Go build tags, for example. -Due to the high startup-cost of the WASM runtime, this package _enforces_ that all Regex objects are closed before being dereferenced. -If any Regex objects are dereferenced before being closed, then a panic will occur at some non-deterministic point in the future. \ No newline at end of file +For Linux, a package like `libicu-dev` typically has the necessary library. + +For Windows, with msys2, `pacman -S icu-devel` installs the necessary development libraries. + +For macOS, `brew install icu4c` will install the necsesary library, but it is not on the default search path of the toolchain. Building with something like `CGO_CPPFLAGS=-I$(brew --cellar icu4c)/$(ls $(brew --cellar icu4c))/include CGO_LDFLAGS=-L$(brew --cellar icu4c)/$(ls $(brew --cellar icu4c))/lib` is potentially necessary. + +There is some support for statically linking ICU4C, by building with the build tag `icu_static`. Currently this only changes the linker line for a Windows build. For a macOS or Linux build to link it statically, the build tag `icu_static` should still be used, but it should also be the case that the dynamic libraries are not installed. + +When using a self-built dynamic library on macOS, the resulting binaries work best if `runConfigureICU` is run with `--enable-rpath`, so that the ICU4C dynamic libraries are discoverable by the built binary at their installed location.