refactor: unify android runtime c++ layout#45
Open
DjDeveloperr wants to merge 19 commits into
Open
Conversation
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Reverts fd62fdb so the imported Android runtime tests run as they do upstream instead of adding engine-specific gates in this monorepo refactor.
Ports the iOS QuickJS WeakRef keepalive clearing path to both Android QuickJS backends and clears those keepalives before explicit GC and JS exit.
Updates the Android C/C++ configuration to use monorepo NativeScript paths and an environment-provided NDK instead of stale pre-refactor local paths.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
platforms/android, while sharing Android C++ throughNativeScript/runtime/android,NativeScript/napi/android, andNativeScript/ffi/jni/napiNativeScript/ffi/objcand update generated-output/test wiring for the unified layoutHERMESandSHERMESonto the same Static Hermes (shermes) header/library surface already used by Apple;SHERMESremains only a compatibility engine selectorCommit Review Order
b16346f1refactor: move objc ffi under platform namespace055964e5refactor: move android jni napi ffi into shared treea0a2ed87refactor: move android runtime sources into shared tree8d214e29refactor: move android napi engines into shared tree04c486berefactor: wire android build to unified runtime layout3aab3c3bfix(apple): update objc ffi generated paths4def1b90fix(android): align hermes napi adapters86dec82ffix(android): preserve unified runtime behaviorda00c3affix(android): stabilize runtime test harness6bff08eefix: clean up runtime refactor paths15d7c2a4refactor(android): unify static hermes backend98918758fix(jni): handle static hermes constructor receivers5bc35047fix(objc): preserve bridge object ownership1668c885fix(quickjs): clear weak refs before forced gc6ba820c1test(ios): skip app main in scripted runnera0e09674revert(android): restore runtime test parity1dae9f74fix(android): clear quickjs weak refs before gc6d556df7chore(android): refresh native vscode pathsNote:
fd62fdb5added Android engine-specific runtime test gates during review, and is intentionally reverted bya0e09674. Review the net effect after the revert.Validation
git diff --checknpm run check:ffi-boundaries./gradlew ':runtime:buildCMakeDebug[x86]' -Pengine=QUICKJS_NG -PonlyX86::runtime:buildCMakeDebug[x86]completed; the Gradle invocation then failed in the:app:buildMetadatafinalizer path under local JDK 25 (:android-metadata-generator:compileKotlinrejects25.0.2, and:dts-generator:compileJavafails on existing-Werrorwarnings)./gradlew ':runtime:buildCMakeDebug[x86]' -Pengine=QUICKJS -PonlyX86::runtime:buildCMakeDebug[x86]and:runtime:buildCMakeRelWithDebInfo[x86]completed; same unrelated metadata finalizer failures under JDK 25fd62fdb5revert, Pixel_9_Pro_API_36 emulator, JDK 17, logs in/tmp/ns-runtime-android-engine-matrix-final-20260608-235950:V8-10: 443 specs, 0 failures, 12 skipped, 16 disabledV8-11: 443 specs, 0 failures, 12 skipped, 16 disabledV8-13: 443 specs, 0 failures, 12 skipped, 16 disabledQUICKJS: 443 specs, 0 failures, 12 skipped, 16 disabledQUICKJS_NG: 443 specs, 0 failures, 12 skipped, 16 disabledPRIMJS: 443 specs, 0 failures, 12 skipped, 16 disabled on rerun; initial run hit oneTNS Workers > Should keep the worker alive after errortimeout, logs in/tmp/ns-runtime-android-primjs-rerun-20260609-001236JSC: 442 specs, 0 failures, 36 skipped, 46 disabledHERMES: 442 specs, 0 failures, 52 skipped, 43 disabledSHERMES: 442 specs, 0 failures, 52 skipped, 43 disabledNativeScript/napi-android:V8-10: 443 specs, 0 failures, 12 skipped, 16 disabledPRIMJS: 443 specs, 0 failures, 12 skipped, 16 disablednapi-androidJSC crash atTNS Workers > Should throw exception when no parameter is passedwithNativeScriptException, with no XML result; parity logs in/tmp/ns-runtime-no-fd62-android-matrix-20260609-002813and/tmp/napi-android-standalone-jsc-parity-20260609-003053/tmp/ns-runtime-apple-matrix-final7:v8: 713 specs, 0 failures, 13 skippedhermes: 713 specs, 0 failures, 11 skippedquickjs: 713 specs, 0 failures, 13 skippedjsc: 713 specs, 0 failures, 13 skipped/tmp/ns-runtime-apple-matrix-final7:v8: 713 specs, 0 failures, 10 skippedhermes: 713 specs, 0 failures, 8 skippedquickjs: 713 specs, 0 failures, 10 skippedjsc: 713 specs, 0 failures, 10 skippedprimjs,quickjs_ng,v8-10,v8-11, andv8-13are still unsupported/unwired on Apple in this PRpython3 -m py_compile metadata-generator/build-step-metadata-generator.py