Move SSD area membership helpers to typed Kotlin
ober
422e5fac68faf40b6a796c82302b48359797e801
--- a/.build.yml +++ b/.build.yml @@ -5,7 +5,7 @@ packages: - make=4.4.1-r4 sources: # Build dependency: full immutable commit, mirrored in dependencies.lock.json. - - "https://git.sr.ht/~lisp/jerboa#beef0c004ba40d64aa2a00afb510e31cdfdda9e7" + - "https://git.sr.ht/~lisp/jerboa#ef86e0761a15de93a61c67d177b4cadaf882d529" # The second source is the build subject selected by the SourceHut submitter. - https://git.sr.ht/~lisp/jerboa-android tasks: @@ -14,6 +14,6 @@ tasks: test "$(apk info -v chez-scheme)" = chez-scheme-10.3.0-r2 test "$(apk info -v git)" = git-2.54.0-r0 test "$(apk info -v make)" = make-4.4.1-r4 - test "$(git -C ../jerboa rev-parse HEAD)" = beef0c004ba40d64aa2a00afb510e31cdfdda9e7 - test "$(git -C ../jerboa rev-parse 'HEAD^{tree}')" = a215813fdd7e2648ebf385ca0af397af73b73b3e + test "$(git -C ../jerboa rev-parse HEAD)" = ef86e0761a15de93a61c67d177b4cadaf882d529 + test "$(git -C ../jerboa rev-parse 'HEAD^{tree}')" = ca975cbb04f1ca057e3f9cb1404795622a79d6c4 JERBOA="chez --libdirs .:../jerboa/lib --script" make test --- a/dependencies.lock.json +++ b/dependencies.lock.json @@ -11,8 +11,8 @@ "generator_runtime": { "name": "jerboa", "repository": "https://git.sr.ht/~lisp/jerboa", - "commit": "beef0c004ba40d64aa2a00afb510e31cdfdda9e7", - "tree": "a215813fdd7e2648ebf385ca0af397af73b73b3e" + "commit": "ef86e0761a15de93a61c67d177b4cadaf882d529", + "tree": "ca975cbb04f1ca057e3f9cb1404795622a79d6c4" }, "assurance_tools": { "osv_scanner": { --- a/jandroid.ss +++ b/jandroid.ss @@ -843,19 +843,35 @@ (kt-file-declarations file))]) (kotlin-file->string merged))) +(def (merge-kotlin-imports file imports) + (make-kt-file + (kt-file-package file) + imports + (kt-file-declarations file))) + (def (write-typed-kotlin-files spec root) - (for-each - (lambda (file-form) - (let-values ([(path imports library-form) - (typed-kotlin-file-parts file-form)]) - (unless (string=? (path-extension path) ".kt") - (error 'typed-kotlin-file "generated Kotlin path must end in .kt" - path)) + (let* ([entries + (map + (lambda (file-form) + (let-values ([(path imports library-form) + (typed-kotlin-file-parts file-form)]) + (unless (string=? (path-extension path) ".kt") + (error 'typed-kotlin-file "generated Kotlin path must end in .kt" + path)) + (list path imports library-form))) + (typed-kotlin-files spec))] + [kotlin-files + (typed-library-forms->kotlin-files + (map caddr entries))]) + (for-each + (lambda (entry file) (write-generated-file root - (path-join "app" "src" "main" "java" path) - (typed-library-form->kotlin-string/imports library-form imports)))) - (typed-kotlin-files spec))) + (path-join "app" "src" "main" "java" (car entry)) + (kotlin-file->string + (merge-kotlin-imports file (cadr entry))))) + entries + kotlin-files))) (def (generated-main-activity? spec relative) (let ([wanted (path-join (package-path (app-id spec)) "MainActivity.kt")]) --- a/scripts/verify-supply-chain.sh +++ b/scripts/verify-supply-chain.sh @@ -3,8 +3,8 @@ set -eu repo=$(CDPATH= cd -- "$(dirname -- "$0")/.." && pwd -P) lock="$repo/dependencies.lock.json" -jerboa_commit=beef0c004ba40d64aa2a00afb510e31cdfdda9e7 # gitsafe:ignore -jerboa_tree=a215813fdd7e2648ebf385ca0af397af73b73b3e # gitsafe:ignore +jerboa_commit=ef86e0761a15de93a61c67d177b4cadaf882d529 # gitsafe:ignore +jerboa_tree=ca975cbb04f1ca057e3f9cb1404795622a79d6c4 # gitsafe:ignore gradle_sha=20f1b1176237254a6fc204d8434196fa11a4cfb387567519c61556e8710aed78 jdk_macos_sha=8fa1eff40bb637a33613b2ccb8b12c70dc3661cc22cf8e784943715769a05336 jdk_linux_sha=d8afc263758141a66e0e3aafc321e783f7016696f4eaea067d340a269037d331 --- a/templates/ssd-review.ss +++ b/templates/ssd-review.ss @@ -231,7 +231,8 @@ SsdSession-imageWidth SsdSession-imageHeight SsdSession-cells SsdSession-groups SsdSession-ocrWords SsdSession-suppressedGroups - SsdSession-ssdArea SsdSession-ssdArea-set!) + SsdSession-ssdArea SsdSession-ssdArea-set! + ssdSessionCellInsideSsdArea ssdSessionGroupInsideSsdArea) (type Int32) (type FloatArray) (type SsdCell) @@ -251,7 +252,19 @@ (groups : (MutableList SsdGroup)) (ocrWords : (MutableList OcrWord)) (suppressedGroups : (MutableList SsdGroup)) - (mut ssdArea : (Nullable FloatArray)))))) + (mut ssdArea : (Nullable FloatArray)))) + (def (ssdSessionCellInsideSsdArea (session : SsdSession) (cell : SsdCell)) : Bool + (if (nullable-null? (SsdSession-ssdArea session)) + #t + (rectCenterInside + (ssdCellRect cell) + (nullable-get (SsdSession-ssdArea session))))) + (def (ssdSessionGroupInsideSsdArea (session : SsdSession) (group : SsdGroup)) : Bool + (if (nullable-null? (SsdSession-ssdArea session)) + #t + (rectCenterInside + (SsdGroup-bbox group) + (nullable-get (SsdSession-ssdArea session))))))) (typed-kotlin-file "com/sfb/ssdreview/SourceKey.kt" (typed-library (com sfb ssdreview) @@ -2825,12 +2838,6 @@ " group.bbox = floatArrayOf(x1, y1, x2, y2)" "}" "" - "fun ssdSessionCellInsideSsdArea(session: SsdSession, cell: SsdCell): Boolean =" - " session.ssdArea?.let { area -> rectCenterInside(ssdCellRect(cell), area) } ?: true" - "" - "fun ssdSessionGroupInsideSsdArea(session: SsdSession, group: SsdGroup): Boolean =" - " session.ssdArea?.let { area -> rectCenterInside(group.bbox, area) } ?: true" - "" "fun ssdSessionSetSsdArea(session: SsdSession, area: FloatArray): Int {" " session.ssdArea = floatArrayOf(" " min(area[0], area[2]),"