Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
141 commits
Select commit Hold shift + click to select a range
33270f0
chore: project setup
millerjp Nov 17, 2025
98d8385
chore: project setup
millerjp Nov 17, 2025
9400dd4
Add automated native library build system
millerjp Nov 17, 2025
029ded5
Update macOS runners to avoid deprecation warnings
millerjp Nov 17, 2025
f1bf749
Fix YAML syntax error in workflow commit message
millerjp Nov 17, 2025
2cbe235
Make workflow manual-only and add target branch selection
millerjp Nov 17, 2025
7815ac3
Update native README to reflect automated workflow
millerjp Nov 17, 2025
dad3449
Add RE2 and Abseil documentation to native README
millerjp Nov 17, 2025
8ed6070
Add automated library verification to workflow
millerjp Nov 17, 2025
c8ec405
Add compiled native libraries for all platforms
github-actions[bot] Nov 17, 2025
0918621
Merge pull request #1 from axonops/native-libs-20251117-143128
millerjp Nov 17, 2025
38dbe6f
Switch to git commit pinning for maximum security
millerjp Nov 17, 2025
c0fd700
Rewrite native README for clarity and completeness
millerjp Nov 17, 2025
772ec8e
Remove Cassandra-specific language from README
millerjp Nov 17, 2025
4695a6b
SECURITY: Move commit hashes to GitHub Environment Variables
millerjp Nov 17, 2025
dd9c8b9
Use environment variables for all version information
millerjp Nov 17, 2025
143b958
Document all 4 environment variables in README
millerjp Nov 17, 2025
76605a1
Make gh CLI the primary rebuild method in README
millerjp Nov 17, 2025
2e2cda0
Fix environment variables not passed to Docker containers
millerjp Nov 17, 2025
73cee49
Add commit signature verification via GitHub API
millerjp Nov 17, 2025
ac69b65
Document automated commit signature verification in README
millerjp Nov 17, 2025
fdfe2e8
Fix signature verification parsing (trim whitespace)
millerjp Nov 17, 2025
d9d6169
Improve signature verification error handling
millerjp Nov 17, 2025
ee89eec
Use jq for JSON parsing (more reliable than grep)
millerjp Nov 17, 2025
740207e
Ensure jq installed everywhere, remove grep fallback
millerjp Nov 17, 2025
7431622
Add debugging output for signature verification
millerjp Nov 17, 2025
77d717f
Add compiled native libraries for all platforms
github-actions[bot] Nov 17, 2025
d68f78c
Merge pull request #2 from axonops/native-libs-20251117-160140
millerjp Nov 17, 2025
fa69b66
Implement Phase 1: Core RE2 Java API with native integration
millerjp Nov 17, 2025
458d924
Update development tracking files for Phase 1 completion
millerjp Nov 17, 2025
230b604
Expand test suite to 75 comprehensive tests
millerjp Nov 17, 2025
d5bc760
Update tracking files with comprehensive test results (75 tests)
millerjp Nov 17, 2025
0dd8149
Add proper JAR artifact build and cross-platform testing
millerjp Nov 17, 2025
c085ee7
Fix Linux static linking - use --whole-archive for Abseil
millerjp Nov 17, 2025
6d41aa4
Document Linux undefined symbol issue and resolution
millerjp Nov 17, 2025
7f62e48
Improve large-scale tests to actually test matching behavior
millerjp Nov 17, 2025
f3b0abb
Add comprehensive log processing tests for real-world use cases
millerjp Nov 17, 2025
6e40f36
Update tracking with 88 tests including log processing
millerjp Nov 17, 2025
795aed7
Add compiled native libraries for all platforms
github-actions[bot] Nov 17, 2025
1f5cad3
Merge pull request #3 from axonops/native-libs-20251117-172352
millerjp Nov 17, 2025
b065b54
Mark Phase 1 complete with v1.0.0-phase1 tag and full platform verifi…
millerjp Nov 17, 2025
174a6c5
Implement Phase 2: Pattern Caching with LRU and Idle Eviction
millerjp Nov 17, 2025
3de9cb1
Phase 2 WIP: Cache implementation complete, tests need fixing
millerjp Nov 17, 2025
5d5af54
Fix cache tests and add idle eviction tests - Phase 2 complete
millerjp Nov 17, 2025
695a2ed
Mark Phase 2 complete - all cache tests passing
millerjp Nov 17, 2025
29ffa82
CRITICAL: Implement reference counting to prevent use-after-free
millerjp Nov 17, 2025
1a4c8b9
Add critical eviction-while-in-use tests and fix reference counting v…
millerjp Nov 17, 2025
49fd118
Add concurrent cleanup and stress tests (116/116 passing)
millerjp Nov 17, 2025
ff76834
Complete comprehensive concurrency testing - 138 tests passing
millerjp Nov 17, 2025
2464d2f
Update tracking docs with complete Phase 2 test coverage (138 tests)
millerjp Nov 17, 2025
0a698f1
WIP: Update RE2Config to 6 parameters with production defaults
millerjp Nov 17, 2025
fef353c
Document Phase 2 configuration decisions
millerjp Nov 17, 2025
26a1a9f
Fix all test assertions for 50K cache size - 138/138 passing
millerjp Nov 17, 2025
c98b9ca
Implement resource tracking and limits enforcement
millerjp Nov 17, 2025
880673b
Update DEVELOPMENT_STATUS with resource tracking progress
millerjp Nov 17, 2025
84a51bc
Complete Phase 2 configuration with resource limits - 157/157 passing
millerjp Nov 17, 2025
edc4372
Complete thread safety analysis - ZERO critical issues found
millerjp Nov 17, 2025
8cf2383
CRITICAL FIX: Prevent memory leak when cache full and all patterns in…
millerjp Nov 17, 2025
002d00f
Update thread safety analysis with memory leak fix documentation
millerjp Nov 17, 2025
e11f77c
Document critical memory leak bug (found and fixed)
millerjp Nov 17, 2025
387aa01
Simplify: Always cache patterns for consistent API
millerjp Nov 17, 2025
7a2b307
Final DEVELOPMENT_STATUS update for Phase 2
millerjp Nov 17, 2025
e82471c
Add frequent deferred cleanup (5s) + shutdown hook with tests
millerjp Nov 17, 2025
6f45b96
Make deferred cleanup interval configurable with validation
millerjp Nov 17, 2025
fa6f63d
Improve documentation: fix examples, clarify dependencies, enhance co…
millerjp Nov 17, 2025
03d3b64
Add comprehensive licensing and attribution
millerjp Nov 17, 2025
c8bb2ce
Add Apache 2.0 license header to C++ wrapper
millerjp Nov 17, 2025
17af737
Add design decisions doc explaining native binding choice
millerjp Nov 17, 2025
c2615bc
Fix lifecycle methods to properly handle deferredCleanup list
millerjp Nov 17, 2025
88c893d
Optimize PatternCache with lock-free ConcurrentHashMap
millerjp Nov 18, 2025
b656b64
Add re2_pattern_memory() to expose native memory usage
millerjp Nov 18, 2025
e2c859a
Add compiled native libraries for all platforms
github-actions[bot] Nov 18, 2025
ab2aba3
Merge pull request #4 from axonops/native-libs-20251118-060840
millerjp Nov 18, 2025
4796c72
Add native memory tracking for compiled patterns
millerjp Nov 18, 2025
6e61010
Add defensive validation for cached pattern pointers
millerjp Nov 18, 2025
bff6dd3
Update documentation for Phase 2 performance enhancements
millerjp Nov 18, 2025
e65b551
Strengthen NativeMemoryTrackingTest assertions to use exact values
millerjp Nov 18, 2025
c739b42
Reduce verbose DEBUG logging to TRACE for CI and fix flaky test
millerjp Nov 18, 2025
a4c0ddc
Change cached pattern close() warning to TRACE level
millerjp Nov 18, 2025
c2eeea4
Add configurable eviction protection period (default 1s)
millerjp Nov 18, 2025
f8c7b79
Update progress tracking docs with eviction protection changes
millerjp Nov 18, 2025
5fe3c2d
Fix flaky CI tests for lock-free cache behavior
millerjp Nov 18, 2025
8ea8c36
Improve performance tests to measure correct behavior
millerjp Nov 18, 2025
7d13641
Redesign testEvictionDoesNotBlockAccess for reliability
millerjp Nov 18, 2025
3d08e4b
Migrate from JNA to JNI for improved performance
millerjp Nov 18, 2025
ef7c692
Fix JAVA_HOME detection for ARM64 Linux builds
millerjp Nov 18, 2025
539f74b
Fix GitHub API rate limiting by using GITHUB_TOKEN for authentication
millerjp Nov 18, 2025
82ec58e
Add compiled JNI native libraries for all platforms
github-actions[bot] Nov 18, 2025
5b03646
Merge pull request #5 from axonops/native-libs-20251118-135005
millerjp Nov 18, 2025
abc34aa
Complete JNI migration - remove JNA dependency
millerjp Nov 18, 2025
4443271
Add cache reconfiguration and document JNI performance benefits
millerjp Nov 18, 2025
ea094f4
Remove obsolete JNA wrapper (replaced by JNI)
millerjp Nov 18, 2025
320d2ab
Add comprehensive Unicode script tests
millerjp Nov 18, 2025
0be2d9f
Add Rocky Linux 9 testing for RHEL compatibility
millerjp Nov 18, 2025
9f455e2
Expand test matrix to 10 platforms with all LTS versions
millerjp Nov 18, 2025
45c0880
Fix GLIBC compatibility and test error propagation
millerjp Nov 18, 2025
6c7ba1d
Add libstdc++-static package for Rocky 8 build
millerjp Nov 18, 2025
a847fc2
Add compiled JNI native libraries for all platforms
github-actions[bot] Nov 18, 2025
a8be9fd
Merge pull request #6 from axonops/native-libs-20251118-162447
millerjp Nov 18, 2025
6ad8819
Install unzip in Ubuntu 22.04 ARM64 test container
millerjp Nov 18, 2025
ca7f63d
Update Linux build job names to indicate Rocky 8
millerjp Nov 18, 2025
34cc315
Add Docker layer caching for faster Linux builds
millerjp Nov 18, 2025
d88b8b6
Auto-invalidate Docker cache when Dockerfile changes
millerjp Nov 18, 2025
eb60329
Add Maven dependency caching for Docker container test jobs
millerjp Nov 18, 2025
cd37cbf
Relax performance test thresholds for QEMU ARM64 emulation
millerjp Nov 18, 2025
68b0fca
Skip performance assertions under QEMU emulation
millerjp Nov 18, 2025
ff28e71
Update DEVELOPMENT_STATUS for Phase 2.1 completion
millerjp Nov 18, 2025
d91f79a
Phase 4A: Multi-module refactor with 0.9.1 versioning (#7)
millerjp Nov 20, 2025
29643a3
Phase 4B: Metrics and logging integration (#8)
millerjp Nov 20, 2025
7cc5fe1
Add comprehensive code cleanup analysis for review
millerjp Nov 20, 2025
da22acb
Phase 1 Cleanup: Simplify exception handling and clarify internal API
millerjp Nov 21, 2025
6b33765
Add MetricNames constants for type safety
millerjp Nov 21, 2025
3b9d7c1
Add comprehensive Javadoc to MetricNames class
millerjp Nov 22, 2025
14e82bc
Fix MetricNames memory metric documentation - exact not estimated
millerjp Nov 22, 2025
42621fc
Add comprehensive architecture documentation to MetricNames
millerjp Nov 22, 2025
38d418c
Add comprehensive documentation to RE2Config
millerjp Nov 22, 2025
c771cea
Merge PR #9: Phase 1 Cleanup - Safety, correctness, and documentation
millerjp Nov 22, 2025
1ae2f64
Cleanup: Code organization, documentation, and performance (#10)
millerjp Nov 22, 2025
3095f3f
Add RE2 feature gap implementation plan and progress tracking
millerjp Nov 22, 2025
28e5754
Update JNI native libraries (RE2 2025-11-05) (#11)
github-actions[bot] Nov 24, 2025
9b0b99b
Merge development (native libraries merged)
millerjp Nov 24, 2025
2a0a6b3
Mark Phase 0 complete - Native Foundation delivered
millerjp Nov 24, 2025
48aa711
Merge main into development - bring Phase 1 bulk matching to development
millerjp Nov 24, 2025
7175909
Optimize write-heavy counters: AtomicLong → LongAdder
millerjp Nov 24, 2025
447ef7c
Fix performance regression: Remove hot-path getCacheHitRate() call
millerjp Nov 24, 2025
5ec18d3
Revert LongAdder optimization - AtomicLong faster on modern hardware
millerjp Nov 24, 2025
f9c6122
Add Chronicle Bytes zero-copy integration (Phase 1)
millerjp Nov 24, 2025
c69c872
Update workflow to expect 26 JNI functions
millerjp Nov 24, 2025
d2736e5
Add compiled JNI native libraries for all platforms (#13)
github-actions[bot] Nov 24, 2025
1fe9cae
Fix Chronicle Bytes compatibility and complete Phase 1 testing
millerjp Nov 24, 2025
ce8db56
Add public API exposure via ZeroCopyPattern adapter (Phase 2)
millerjp Nov 24, 2025
699a447
Finalize public API with method overloading (Phase 2 corrected)
millerjp Nov 24, 2025
ad95397
Add ByteBuffer API with intelligent routing (Phase 2 final)
millerjp Nov 24, 2025
71da7b1
Remove reflection - use DirectBuffer interface directly
millerjp Nov 24, 2025
8c2f72b
Remove Chronicle Bytes - use standard Java DirectByteBuffer only
millerjp Nov 24, 2025
bef7755
Merge zero-copy DirectByteBuffer support into development
millerjp Nov 24, 2025
ba97454
Add capture group support with MatchResult class (Phase 2)
millerjp Nov 24, 2025
41459cc
Merge capture group support into development (Phase 2)
millerjp Nov 25, 2025
bdf40aa
Complete Phases 1/2/3 with full metrics and zero-copy support
millerjp Nov 25, 2025
a5108db
Complete Phase 4 utilities and add zero-copy JNI tests
millerjp Nov 25, 2025
6446fea
Add IMPLEMENTATION_COMPLETE.md: Comprehensive feature audit
millerjp Nov 25, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 13 additions & 13 deletions .github/workflows/build-native.yml
Original file line number Diff line number Diff line change
Expand Up @@ -81,10 +81,10 @@ jobs:
echo "Exported JNI functions:"
nm -g libre2.dylib | grep ' T ' | grep 'Java_com_axonops_libre2_jni_RE2NativeJNI'

# Verify all 20 JNI functions exist
# Verify all 29 JNI functions exist (20 original + 6 zero-copy match + 3 zero-copy replace)
FUNC_COUNT=$(nm -g libre2.dylib | grep ' T ' | grep 'Java_com_axonops_libre2_jni_RE2NativeJNI' | wc -l)
if [ "$FUNC_COUNT" -ne 20 ]; then
echo "ERROR: Expected 20 exported JNI functions, found $FUNC_COUNT"
if [ "$FUNC_COUNT" -ne 29 ]; then
echo "ERROR: Expected 29 exported JNI functions, found $FUNC_COUNT"
exit 1
fi

Expand Down Expand Up @@ -148,10 +148,10 @@ jobs:
echo "Exported JNI functions:"
nm -g libre2.dylib | grep ' T ' | grep 'Java_com_axonops_libre2_jni_RE2NativeJNI'

# Verify all 20 JNI functions exist
# Verify all 29 JNI functions exist (20 original + 6 zero-copy match + 3 zero-copy replace)
FUNC_COUNT=$(nm -g libre2.dylib | grep ' T ' | grep 'Java_com_axonops_libre2_jni_RE2NativeJNI' | wc -l)
if [ "$FUNC_COUNT" -ne 20 ]; then
echo "ERROR: Expected 20 exported JNI functions, found $FUNC_COUNT"
if [ "$FUNC_COUNT" -ne 29 ]; then
echo "ERROR: Expected 29 exported JNI functions, found $FUNC_COUNT"
exit 1
fi

Expand Down Expand Up @@ -226,10 +226,10 @@ jobs:
echo "Exported JNI functions:"
docker run --rm -v "$(pwd):/output" re2-builder nm -D /output/libre2.so | grep ' T ' | grep 'Java_com_axonops_libre2_jni_RE2NativeJNI'

# Verify all 20 JNI functions exist
# Verify all 29 JNI functions exist (20 original + 6 zero-copy match + 3 zero-copy replace)
FUNC_COUNT=$(docker run --rm -v "$(pwd):/output" re2-builder nm -D /output/libre2.so | grep ' T ' | grep 'Java_com_axonops_libre2_jni_RE2NativeJNI' | wc -l)
if [ "$FUNC_COUNT" -ne 20 ]; then
echo "ERROR: Expected 20 exported JNI functions, found $FUNC_COUNT"
if [ "$FUNC_COUNT" -ne 29 ]; then
echo "ERROR: Expected 29 exported JNI functions, found $FUNC_COUNT"
exit 1
fi

Expand Down Expand Up @@ -306,10 +306,10 @@ jobs:
echo "Exported JNI functions:"
docker run --rm --platform linux/arm64 -v "$(pwd):/output" re2-builder-arm64 nm -D /output/libre2.so | grep ' T ' | grep 'Java_com_axonops_libre2_jni_RE2NativeJNI'

# Verify all 20 JNI functions exist
# Verify all 29 JNI functions exist (20 original + 6 zero-copy match + 3 zero-copy replace)
FUNC_COUNT=$(docker run --rm --platform linux/arm64 -v "$(pwd):/output" re2-builder-arm64 nm -D /output/libre2.so | grep ' T ' | grep 'Java_com_axonops_libre2_jni_RE2NativeJNI' | wc -l)
if [ "$FUNC_COUNT" -ne 20 ]; then
echo "ERROR: Expected 20 exported JNI functions, found $FUNC_COUNT"
if [ "$FUNC_COUNT" -ne 29 ]; then
echo "ERROR: Expected 29 exported JNI functions, found $FUNC_COUNT"
exit 1
fi

Expand Down Expand Up @@ -417,7 +417,7 @@ jobs:
- Abseil: 20250814.1

### Verification
All libraries export 9 JNI functions and are self-contained with only system dependencies.
All libraries export 29 JNI functions and are self-contained with only system dependencies.

### Next Steps
1. Review library sizes and dependencies
Expand Down
Loading