Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
603 commits
Select commit Hold shift + click to select a range
dba7c66
fidelity: capture only once every tile has painted where it will be c…
shai-almog Sep 27, 2026
bb22dba
Mac port: take the window's first size from its saved frame and fixed…
shai-almog Sep 27, 2026
0d5b820
parparvm-parallel-mark CI: retry transient Central failures
shai-almog Sep 27, 2026
45eee13
Windows screenshot CI: restore the Maven repository from the nearest …
shai-almog Sep 27, 2026
fd661d9
Merge remote-tracking branch 'origin/master' into flutter-dart-transp…
shai-almog Sep 28, 2026
f65cd25
iOS simulator tests: build the embedded watch app for the runner's ar…
shai-almog Sep 28, 2026
456458a
Merge remote-tracking branch 'origin/master' into flutter-dart-transp…
shai-almog Sep 28, 2026
d4d0524
Merge remote-tracking branch 'origin/master' into flutter-dart-transp…
shai-almog Sep 29, 2026
a148446
ParparVM: read DartLongList's array through CN1_ARRAY_DATA
shai-almog Sep 29, 2026
04551b7
CI: skip the translator-selected DLL intrinsics arm; fix the Telemetr…
shai-almog Sep 29, 2026
68f01f6
macOS: mark idle present surfaces purgeable
shai-almog Sep 29, 2026
a1a1fbe
ParparVM: cull what nothing reachable calls, not only what nothing calls
shai-almog Sep 29, 2026
217610a
ParparVM: inline threshold 50 on optimized C builds
shai-almog Sep 29, 2026
d2dfb9b
Desktop: honour desktop.width/height on native Linux and Windows; ben…
shai-almog Sep 29, 2026
175ae8d
macOS: purgeable screen texture at rest, memoryless stencil
shai-almog Sep 29, 2026
6560fe8
ParparVM: keep the size changes building under self-hosting and zig cc
shai-almog Sep 29, 2026
14c01ac
Metal: round overflowing pictures at the box instead of building a ro…
shai-almog Sep 29, 2026
1461dc1
flutter-bench: attribute compute failures against a host JVM reference
shai-almog Sep 29, 2026
23469b8
JS port: build objects from a per-class cached layout
shai-almog Sep 29, 2026
da0e534
JS port: hold a long that fits in 53 bits as a plain number
shai-almog Sep 29, 2026
24d3d37
JS port: emit collection and autobox natives as calls to their Java t…
shai-almog Sep 29, 2026
de43171
JS port: stop 64-bit long values flipping form on every operation
shai-almog Sep 29, 2026
f377038
JS port: allocate through a per-class function V8 can inline
shai-almog Sep 29, 2026
54b733a
JS port: call a virtual method directly when the receiver type allows…
shai-almog Sep 29, 2026
f91bd21
JS port: runtime strings are not interned; cheaper class-init guard, …
shai-almog Sep 29, 2026
c3a18ea
JS port: allocation-free identity counter; direct calls skip the gene…
shai-almog Sep 29, 2026
bb668dd
JS screenshots: reseed chart-time, whose golden recorded "Invalid Date"
shai-almog Sep 29, 2026
3b68a50
perf gate: calibrate Linux x64 AMD EPYC 9V45
shai-almog Sep 29, 2026
d8ebd8a
JS port: match bridge-built name stems only against the bridge sources
shai-almog Sep 29, 2026
c6865e1
JS port: allocation functions only where an allocation is hot
shai-almog Sep 29, 2026
d3d5071
JS port: run java.lang.System's static initializer instead of replaci…
shai-almog Sep 29, 2026
fa90f03
JS port: start the application lifecycle on the EDT
shai-almog Sep 29, 2026
737e3b7
JS port: hashCode/equals sites are synchronous; exact receiver type f…
shai-almog Sep 29, 2026
5eddfd3
Linux: cut three launch costs -- GDK GL probing, repeated font metric…
shai-almog Sep 29, 2026
75088bb
JS port: direct calls at the site, literal long constants, indexed na…
shai-almog Sep 29, 2026
074cf54
Linux: draw scaled images directly; cache text widths
shai-almog Sep 29, 2026
8c3d4c1
Windows: draw scaled images directly
shai-almog Sep 29, 2026
ed33954
JS port: numeric array stores stay numeric; inline bounds test in loops
shai-almog Sep 29, 2026
69997ed
JS tests: copyright header on the contended-monitor fixture
shai-almog Sep 29, 2026
8321d9c
JS port: string literals read in a loop keep their String in a slot
shai-almog Sep 29, 2026
fad4135
Windows screenshots: reseed the two scaled-image goldens
shai-almog Sep 29, 2026
47730f4
Linux screenshots: reseed the two scaled-image goldens (x64 and arm64)
shai-almog Sep 29, 2026
7537b75
perf gate: keep a failed benchmark's run logs where the job uploads them
shai-almog Sep 29, 2026
31a4b37
ParparVM CMake: inline threshold on generated sources only
shai-almog Sep 29, 2026
c8fae5f
ParparVM CMake: a GCC inline limit, so a gcc-built Linux app shrinks too
shai-almog Sep 29, 2026
725f476
Metal: load the default library once per pipeline cache
shai-almog Sep 29, 2026
ab9efbd
iOS bundle: ship PNGs as they are, and not the port's design notes
shai-almog Sep 29, 2026
2d6e77c
ParparVM cull: type-aware reachability for the C targets, with a CI trap
shai-almog Sep 29, 2026
5a4bd6c
ParparVM cull: seed reflection per Class.forName site, not per newIns…
shai-almog Sep 29, 2026
6e80b89
macOS: build the main window before [NSApp run], overlapping the VM boot
shai-almog Sep 29, 2026
97d4b84
iOS size: cull what only dead native C names; drop the loose legacy i…
shai-almog Sep 29, 2026
f1539c5
Merge remote-tracking branch 'origin/master' into flutter-dart-transp…
shai-almog Sep 30, 2026
d50f587
flutter-bench: re-record the Android code-size baseline
shai-almog Sep 30, 2026
d922cb9
macOS: document why the main window is built before [NSApp run]
shai-almog Sep 30, 2026
23e387a
Themes: custom mode ships and installs no native theme, on every port
shai-almog Sep 30, 2026
e6090c2
Theme install: defer the desktop base theme, build control glyphs on …
shai-almog Sep 30, 2026
0011310
Themes: nativeTheme=custom does not reach the JavaSE desktop
shai-almog Oct 1, 2026
0bcf456
flutter-bench: Android code-size baseline after the custom theme mode…
shai-almog Oct 1, 2026
927fb4b
perf gate: re-measure the Windows AMD Family 26 objectAllocation memo…
shai-almog Oct 1, 2026
0eb91fc
Translator: make the reachability cull cheap without changing what it…
shai-almog Oct 1, 2026
047c9d0
Merge remote-tracking branch 'origin/master' into flutter-dart-transp…
shai-almog Oct 1, 2026
8c399d5
Flutter runtime: cut first-build overhead in mount, styling and theme…
shai-almog Oct 1, 2026
456f136
Fidelity harness: wait for tile geometry, not just position, and rech…
shai-almog Oct 1, 2026
2fc4148
flutter-bench: Android code-size baseline after the runtime mount/sty…
shai-almog Oct 1, 2026
d070d57
flutter-bench: Android code-size tolerance +0.5%
shai-almog Oct 1, 2026
c2c7622
flutter-bench: keep the write token out of the job that runs pull req…
shai-almog Oct 1, 2026
b7f0e91
SimpleDateFormat: parse text without a zone in the configured zone
shai-almog Oct 1, 2026
4875edd
UIManager: install a deferred base theme before getThemeName and zoom…
shai-almog Oct 1, 2026
138159d
Dart transpiler and Flutter runtime: fixes from review
shai-almog Oct 1, 2026
a8b3826
perf gate: a crashed round records the native stacks of every thread
shai-almog Oct 1, 2026
12c3ddf
perf gate: linux-arm64 stringBuilding memory row tolerates the JDK's …
shai-almog Oct 1, 2026
20fe663
Merge remote-tracking branch 'origin/master' into flutter-dart-transp…
shai-almog Oct 1, 2026
9717cb0
Merge remote-tracking branch 'origin/master' into flutter-dart-transp…
shai-almog Oct 1, 2026
1b36753
flutter-bench: judge start-up and memory by the median of paired per-…
shai-almog Oct 2, 2026
0274c5c
Merge remote-tracking branch 'origin/master' into flutter-dart-transp…
shai-almog Oct 2, 2026
bebca11
macOS: serve the first frame before [NSApp run]; publish the window's…
shai-almog Oct 2, 2026
604b8ee
macOS: build the menu bar after the first frame
shai-almog Oct 2, 2026
2fc134c
Perf baselines: parameterise the overlay engine by a Layout, share th…
shai-almog Oct 2, 2026
30d1fe2
flutter-bench: regression baselines on the performance gate's overlay…
shai-almog Oct 2, 2026
c045041
flutter-bench: calibrate this branch's ratio rows and re-measure its …
shai-almog Oct 2, 2026
4432a53
ci: check and fold the Flutter benchmark's baselines with the perform…
shai-almog Oct 2, 2026
423d7e3
flutter-bench: document the regression baselines beside the head-to-h…
shai-almog Oct 2, 2026
4314574
flutter-bench: size rows are one-sided; a shrink is reported, not failed
shai-almog Oct 2, 2026
d8bac45
flutter-bench: calibrate pr/5883.json from run 37015988276 at 604b8ee2e5
shai-almog Oct 2, 2026
40867c4
flutter-bench: repair the README a scripted edit multiplied to 14 MB
shai-almog Oct 2, 2026
a8a84e6
flutter-bench: JavaScript reports a loss to Flutter without failing o…
shai-almog Oct 2, 2026
3393801
dart-transpiler: lifted statements run where their operand is evaluated
shai-almog Oct 3, 2026
bc69b4b
dart-transpiler: a lazy initialiser that throws runs again on the nex…
shai-almog Oct 3, 2026
b5aa47b
dart-runtime: Timer.cancel() unschedules the task on the Display path
shai-almog Oct 3, 2026
56e880e
dart-runtime: RegExp.allMatches is lazy, as Dart's is
shai-almog Oct 3, 2026
1ea1dc9
dart-transpiler: null-aware shorting of writes and indexes; setter wr…
shai-almog Oct 3, 2026
d4317f3
dart-transpiler: no unwind handler in a getter whose initialiser cann…
shai-almog Oct 3, 2026
33c52ee
dart-transpiler: an untyped variable has the type of the class it con…
shai-almog Oct 3, 2026
e028a96
dart-transpiler: generic members seen through subclasses, mixins and …
shai-almog Oct 3, 2026
290129e
flutter-bench: re-record the gallery's sizes after the transpiler cor…
shai-almog Oct 3, 2026
73741bc
NetworkTracerQueueTest: flush the EDT before checking a finished requ…
shai-almog Oct 3, 2026
827659c
Perf baselines: recalibrate Zen 3 Windows hello RAM from all its runs
shai-almog Oct 3, 2026
af3b033
flutter-bench: re-record macOS sizes after the transpiler correctness…
shai-almog Oct 3, 2026
e0e2a75
dart-runtime: document why removeWhere does not detect every modifyin…
shai-almog Oct 3, 2026
0d35e18
dart-runtime: a bracketed URI host must be an IP literal
shai-almog Oct 3, 2026
8c5c012
dart-transpiler: labels, local late, super.named, enum collisions, vo…
shai-almog Oct 3, 2026
8fc42c8
flutter-runtime: Localizations.of depends on the app's localizations
shai-almog Oct 3, 2026
e19fd9c
flutter-runtime: a real display-size change rebuilds the MediaQuery r…
shai-almog Oct 3, 2026
63676f4
dart-transpiler: infer untyped closure types; named constructors call…
shai-almog Oct 3, 2026
26bb7e2
ci: check a pull request's baselines against the branch it was merged…
shai-almog Oct 3, 2026
925f327
Android: never call into a WebView after destroy()
shai-almog Oct 3, 2026
9bc7e63
dart-runtime: decode a zone's surrogate pair by hand; ParparVM has no…
shai-almog Oct 3, 2026
00a2a83
SimpleDateFormat: equals and hashCode count the configured time zone
shai-almog Oct 3, 2026
1ee295c
dart-runtime: Uri drops the scheme's default port, as Dart's does
shai-almog Oct 3, 2026
6157ab6
dart-runtime: ArgumentError prints as Dart's does
shai-almog Oct 3, 2026
70e13cb
dart-transpiler: async closures, shared-body guards, extension scope,…
shai-almog Oct 3, 2026
bd5d423
dart-transpiler: a switch reads a getter of its subject once across c…
shai-almog Oct 3, 2026
78c6ead
dart-runtime: say at DartUri why an empty path gets no slash
shai-almog Oct 3, 2026
676ce80
ci: run the Dart transpiler and runtime tests, and fail if they skip
shai-almog Oct 3, 2026
6432299
dart-runtime: int.parse reads 0x up to 0xffffffffffffffff as bits, AS…
shai-almog Oct 3, 2026
ca36b63
dart-runtime: List.reversed throws when the list changes length mid-loop
shai-almog Oct 3, 2026
d2c9865
dart-runtime: Uri reads a port with int.parse's syntax, as Dart does
shai-almog Oct 3, 2026
b74fab8
dart-transpiler: Duration's operators compile and behave as Dart's
shai-almog Oct 3, 2026
710015a
dart-runtime: an oversized Uri port parses and Uri.port throws, as Da…
shai-almog Oct 3, 2026
0e43a16
flutter-runtime: Opacity composites its subtree once, through a layer
shai-almog Oct 3, 2026
441eb25
flutter-runtime: Transform hits its child where it is drawn
shai-almog Oct 3, 2026
6c21da3
flutter-runtime: ScrollController drives every attached list; a user …
shai-almog Oct 3, 2026
b26f5ef
flutter-runtime: Canvas.clipRect clips to the rectangle the transform…
shai-almog Oct 3, 2026
a437fba
flutter-runtime: declare Duration's operators in its Dart stub
shai-almog Oct 3, 2026
7dd1db8
flutter-runtime: TransformHitTestTest taps relative to where the box …
shai-almog Oct 3, 2026
176bafd
flutter-bench: re-record sizes after the review fixes
shai-almog Oct 3, 2026
f7830d8
perf gate: rebaseline recursion time on Windows x64 Intel Family 6 Mo…
shai-almog Oct 3, 2026
838f2d4
perf gate: recalibrate valueEscape time on Windows x64 Intel Family 6…
shai-almog Oct 3, 2026
00d7bd5
perf gate: recalibrate objectAllocation RAM on Windows x64 AMD Family…
shai-almog Oct 3, 2026
bee1f18
Merge remote-tracking branch 'origin/master' into flutter-dart-transp…
shai-almog Oct 3, 2026
a828d43
cn1app-archetype: default javaVersion back to auto; flutter-bench ask…
shai-almog Oct 3, 2026
b7ff588
flutter-bench: find the generated iOS and Android projects in either …
shai-almog Oct 3, 2026
0f4188f
Android: preload WebView JNI argument types in debuggable apps
shai-almog Oct 3, 2026
7808455
flutter-bench: recalibrate the iOS download size after the master merge
shai-almog Oct 3, 2026
c717e15
Merge remote-tracking branch 'origin/master' into flutter-dart-transp…
shai-almog Oct 8, 2026
483d5f9
Translator: ReachabilityCull reads opcodes from the in-tree classfile…
shai-almog Oct 8, 2026
be95ff2
perf gate: drop overlay rows master's fold re-measured
shai-almog Oct 8, 2026
bf3cd54
Translator: route the _dn peephole through rx, not String.replaceAll
shai-almog Oct 8, 2026
e565fc2
flutter-bench: recalibrate JavaScript sizes after the master merge
shai-almog Oct 8, 2026
69b81a5
vm/tests: TranslatorJavaApiSurfaceTest runs on JDK 8 too
shai-almog Oct 8, 2026
a3a06fa
perf gate: rebaseline translator RAM on Windows arm64 (D84)
shai-almog Oct 8, 2026
fe482ff
JS port: wait for the lifecycle before the main thread finishes
shai-almog Oct 8, 2026
d18ffd8
flutter-bench: recalibrate JavaScript sizes for the lifecycle fix
shai-almog Oct 8, 2026
5efe54b
perf gate: rebaseline hello RAM on Windows x64 AMD 25/1
shai-almog Oct 8, 2026
27ef65f
ParparVM: close the stop-the-world hold's resume window
shai-almog Oct 8, 2026
fa9f4cc
ParparVM GC verifier: a reference seen before its bump is not reclaimed
shai-almog Oct 8, 2026
6fd7152
ParparVM GC verifier: check that a held thread stays held, directly
shai-almog Oct 8, 2026
6b49c15
perf gate: drop the Windows x64 AMD 25/1 hello RAM rebaseline
shai-almog Oct 8, 2026
1f97b4f
Dart/Flutter runtime: const collections, Directionality, locale resol…
shai-almog Oct 8, 2026
358604f
dart-transpiler: type fields declared from untyped collection literals
shai-almog Oct 8, 2026
edc7448
ParparVM GC gates: fixtures that DeadFieldElimination had hollowed out
shai-almog Oct 8, 2026
0171bda
ParparVM GC: document why a weak referent on an owned page is not cle…
shai-almog Oct 8, 2026
88863e5
Flutter: mark Dart support experimental; recalibrate size and macOS R…
shai-almog Oct 8, 2026
6ebf543
Merge origin/master into flutter-dart-transpilation
shai-almog Oct 8, 2026
c59be6b
perf baseline: drop the macos-arm64 objectAllocation row master now owns
shai-almog Oct 8, 2026
c5c1aff
flutter-bench: recalibrate JavaScript sizes after the master merge
shai-almog Oct 8, 2026
0b14bca
Review fixes: routes, entry point, lazy statics, zone equality; cull …
shai-almog Oct 9, 2026
b55cc54
Merge origin/master into flutter-dart-transpilation
shai-almog Oct 9, 2026
e8d2fa7
Cull: narrow Class.forName of a literal; review fixes in Dart runtime…
shai-almog Oct 9, 2026
830bc1b
Merge remote-tracking branch 'origin/master' into flutter-dart-transp…
shai-almog Oct 10, 2026
bcb2148
Review fixes: checked DateTime arithmetic, nullable ==, controller du…
shai-almog Oct 10, 2026
233859d
ParparVM: resume handshake orders with a seq_cst store/load, not a fence
shai-almog Oct 10, 2026
8c2e73d
Merge remote-tracking branch 'origin/master' into flutter-dart-transp…
shai-almog Oct 10, 2026
a4254d5
Translator: getCallers returns a read-only view instead of a copy
shai-almog Oct 11, 2026
68d7233
Merge remote-tracking branch 'origin/master' into flutter-dart-transp…
shai-almog Oct 11, 2026
2d83aba
Implement Flutter platform channels for the Dart transpiler runtime
shai-almog Oct 11, 2026
068dd1c
cn1:import-flutter-project: import a Flutter app with one command
shai-almog Oct 11, 2026
88ab9d9
Flutter channels: convert Java values to Dart's types at the boundary
shai-almog Oct 11, 2026
331199a
Flutter chapter: open with the benchmark, import in one command, Java…
shai-almog Oct 11, 2026
4e1780c
Flutter runtime: Cupertino button, disabled TextField and TabBar indi…
shai-almog Oct 11, 2026
6f28505
Flutter chapter: recaptured text-field and colors after the runtime f…
shai-almog Oct 11, 2026
7ed5047
Merge remote-tracking branch 'origin/master' into flutter-dart-transp…
shai-almog Oct 11, 2026
47fa2de
Flutter runtime: FAB label/shadow, Shrine elevation, Cupertino button
shai-almog Oct 11, 2026
0ded06f
Merge remote-tracking branch 'origin/master' into flutter-dart-transp…
shai-almog Oct 11, 2026
7c9820f
Flutter chapter: alt text without commas; record the translator's low…
shai-almog Oct 11, 2026
cc97a35
Flutter runtime: Shrine NEXT shadow regression, Cupertino button/nav-bar
shai-almog Oct 11, 2026
169cb3f
Flutter chapter: every gallery screenshot captured in the phone skin
shai-almog Oct 11, 2026
f3713fd
flutter-runtime: disabled icon color, FAB/button/card elevation shadows
shai-almog Oct 11, 2026
8b05712
flutter-runtime: keep elevation shadows at 1mm and light; recapture t…
shai-almog Oct 11, 2026
7561cf9
Merge remote-tracking branch 'origin/master' into flutter-dart-transp…
shai-almog Oct 11, 2026
c54cdab
Flutter chapter: 'on the screen' (LanguageTool ON_OFF_SCREEN_HYPHEN)
shai-almog Oct 12, 2026
bb9ede3
Merge remote-tracking branch 'origin/master' into flutter-dart-transp…
shai-almog Oct 12, 2026
61b8595
Fix flutter-runtime review findings: repeat() completer leak, decorat…
shai-almog Oct 13, 2026
20c3260
Fix review findings: Graphics clip fallback, Dart Stream/Uri/DateTime
shai-almog Oct 13, 2026
845584f
Record the translator's lower memory on linux-arm64; note Overlay.of …
shai-almog Oct 13, 2026
3af2d66
Merge remote-tracking branch 'origin/master' into flutter-dart-transp…
shai-almog Oct 13, 2026
441cc7b
perf overlay: drop the linux-x64 translator row #6006 also rebaselined
shai-almog Oct 13, 2026
5968a40
GC verifier: wait for a late-published class, not only the bump; head…
shai-almog Oct 13, 2026
4a171b7
Fix review findings: RegExp group count, Stream listener errors, Snac…
shai-almog Oct 13, 2026
bcf75dd
Fix Flutter asset/version import review findings
shai-almog Oct 13, 2026
2d78fb3
Merge remote-tracking branch 'origin/master' into flutter-dart-transp…
shai-almog Oct 13, 2026
3bdf003
perf overlay: drop the stale arm64 translator row; record the Xeon 69…
shai-almog Oct 13, 2026
8fdf261
Fix flutter-runtime review findings: mirrored scale, Dismissible axis…
shai-almog Oct 13, 2026
0775cf9
flutter-bench: record Android code size after the runtime fixes (+0.51%)
shai-almog Oct 14, 2026
217d9b8
Fix dart-transpiler review findings: whereType intrinsic, Duration co…
shai-almog Oct 14, 2026
f0bab55
Fix review findings: DateTime local overflow narrowing, unmodifiable …
shai-almog Oct 14, 2026
b82924f
Flutter assets: give the generated manifest a name no asset can flatt…
shai-almog Oct 14, 2026
86a2c11
Merge remote-tracking branch 'origin/master' into flutter-dart-transp…
shai-almog Oct 14, 2026
a1e23b5
perf overlay: drop the Windows arm64 translator row #6010 also recorded
shai-almog Oct 14, 2026
8c15f01
perf overlay: record the getCallers memory improvement on linux-arm64…
shai-almog Oct 14, 2026
b6486c7
Fix review findings: DartListMapView mutators, StreamController close…
shai-almog Oct 14, 2026
d72350f
Flutter import: copy a single-file asset's resolution-variant siblings
shai-almog Oct 14, 2026
1d70b95
Fix review findings: identity-map keys() membership, image retry, Str…
shai-almog Oct 14, 2026
7e099f4
Merge remote-tracking branch 'origin/master' into flutter-dart-transp…
shai-almog Oct 14, 2026
5e44897
Fix dart-transpiler: bind a generic stub method's own type parameters
shai-almog Oct 14, 2026
9a081aa
Fix review findings: vertical PageView padEnds gap, ListView reverse
shai-almog Oct 14, 2026
0b60a2b
Fix review findings: Navigator nested-widget params/maybePop Future, …
shai-almog Oct 14, 2026
6245994
Merge remote-tracking branch 'origin/master' into flutter-dart-transp…
shai-almog Oct 14, 2026
02c0a05
perf overlay: windows-x64 translator memory; macOS recursion placement
shai-almog Oct 15, 2026
7991bd1
Fix build-engine review findings: Android versionName float narrowing…
shai-almog Oct 15, 2026
c82d0ed
Fix review findings: pre-init FlutterAssets.open(), identity-set toSe…
shai-almog Oct 15, 2026
f354bec
Merge remote-tracking branch 'origin/master' into flutter-dart-transp…
shai-almog Oct 15, 2026
8bbdafd
Fix review findings: Path addPath/shift geometry, RegExp.allMatches s…
shai-almog Oct 15, 2026
6f56f4d
dart-transpiler: diagnose a type-variable witness instead of lowering…
shai-almog Oct 15, 2026
fbba880
DefaultLookAndFeel: arm the lazy glyph-pending flags from construction
shai-almog Oct 15, 2026
08247e7
Transpiler: keep 'as T' on a type variable as an unchecked cast
shai-almog Oct 15, 2026
b9d370a
Fix flutter-runtime review findings: animateTo direction, repeat coun…
shai-almog Oct 15, 2026
42ce096
Flutter importer: find variants for a missing asset, honor the config…
shai-almog Oct 15, 2026
c3585fa
Fix review findings: FlutterAssets ratio-dir regex, DartList empty bu…
shai-almog Oct 15, 2026
e1f312b
Fix dart-transpiler review findings: stale showDialog/Navigator.push/…
shai-almog Oct 15, 2026
794cec9
Click combo popups on the EDT in ComboBoxPopupTestSupport
shai-almog Oct 15, 2026
c67b2ec
Fix dart-transpiler, Android, l10n and transition review findings
shai-almog Oct 15, 2026
f49fd37
Merge remote-tracking branch 'origin/master' into flutter-dart-transp…
shai-almog Oct 15, 2026
78aa3e1
flutter-bench: record JavaScript sizes after three review rounds and …
shai-almog Oct 15, 2026
a1a9fd5
Fix dart-transpiler review findings: stuck pushReplacementNamed futures,
shai-almog Oct 15, 2026
9de95e2
Fix programmatic style overrides lost under a deferred base theme
shai-almog Oct 15, 2026
79f4179
CupertinoPageTransitionTest: record draw order with an Image subclass…
shai-almog Oct 15, 2026
352bb7f
Merge remote-tracking branch 'origin/master' into flutter-dart-transp…
shai-almog Oct 15, 2026
b88c8d1
Fix dart-transpiler library-structure gaps: part files, conditional i…
shai-almog Oct 15, 2026
b9d85fd
Fix review findings: covariant override bridges, Dart iterator checks…
shai-almog Oct 16, 2026
eb95e12
Merge remote-tracking branch 'origin/master' into flutter-dart-transp…
shai-almog Oct 16, 2026
05f7ea1
Fix flutter-bench compile break and review findings: Form state, wher…
shai-almog Oct 16, 2026
49351dc
Fix review findings: restoration callbacks, RestorableRouteFuture.pre…
shai-almog Oct 16, 2026
4d4cabf
Merge remote-tracking branch 'origin/master' into flutter-dart-transp…
shai-almog Oct 16, 2026
9243b9b
Record review-fix code growth; android.nativeThemes.keepAll; raise Ja…
shai-almog Oct 16, 2026
0da3c26
Fix review findings: show/hide in name resolution, Uri host normaliza…
shai-almog Oct 16, 2026
ad846c4
Fix review findings: prefixed calls and barrel re-exports in name res…
shai-almog Oct 16, 2026
fb065ce
Fix review findings: unmount a wrapped tree removed with an ancestor,…
shai-almog Oct 16, 2026
ca289c9
Fix review findings: identity-set iterator checks, onCancel when a st…
shai-almog Oct 16, 2026
3feb61e
Fix review findings: install the Flutter runtime for guide demos, lib…
shai-almog Oct 16, 2026
1a066f9
Fix review findings: route on the stack before its page builds, pop r…
shai-almog Oct 16, 2026
7f3c569
Fix review findings: await on a nullable Future, reused manual transi…
shai-almog Oct 16, 2026
527252f
Merge remote-tracking branch 'origin/master' into flutter-dart-transp…
shai-almog Oct 16, 2026
828dd15
Fix copyright header and review findings: empty query keys, native ma…
shai-almog Oct 16, 2026
1ee07ef
Fix review findings: start-up GC off the EDT, overlay themes in app r…
shai-almog Oct 16, 2026
1a1d646
Fix review findings: dispose a dialog before its result, cancel upstr…
shai-almog Oct 16, 2026
b4689f9
Fix CI test display and review findings: replacement before the remov…
shai-almog Oct 16, 2026
9bb8f7b
Merge remote-tracking branch 'origin/master' into flutter-dart-transp…
shai-almog Oct 16, 2026
afbe4ca
Merge remote-tracking branch 'origin/master' into flutter-dart-transp…
shai-almog Oct 16, 2026
721fd79
Drop perf rebaselines #5984 also moved (linux-arm64 hello, windows-x6…
shai-almog Oct 16, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
145 changes: 145 additions & 0 deletions .github/workflows/dart-flutter-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,145 @@
name: Dart and Flutter tests

# Runs the unit and behavior tests of the Dart transpiler and the two runtimes
# it targets (maven/dart-transpiler, maven/dart-runtime, maven/flutter-runtime).
#
# Nothing else does. pr.yml runs core-unittests only, and flutter-bench.yml
# builds these modules with -DskipTests. The transpiler's BehaviorTest and
# CompileGeneratedTest are also SKIPPED, not failed, when JAVA17_HOME or the
# runtime jars are missing, so a leg that merely forgot JAVA17_HOME would stay
# green having executed nothing. CN1_DART_TESTS_REQUIRED=1 below turns those
# skips into failures, and the last step checks the reports independently.

on:
pull_request:
paths:
- 'maven/dart-transpiler/**'
- 'maven/dart-runtime/**'
- 'maven/flutter-runtime/**'
# Everything those modules compile against: the runtimes depend on core,
# whose sources are CodenameOne/src, and -am builds factory with it.
- 'CodenameOne/src/**'
- 'Factory/src/**'
- 'maven/core/**'
- 'maven/factory/**'
- 'maven/pom.xml'
- 'scripts/ci/retry.sh'
- '.github/workflows/dart-flutter-tests.yml'
push:
branches:
- master
paths:
- 'maven/dart-transpiler/**'
- 'maven/dart-runtime/**'
- 'maven/flutter-runtime/**'
- 'CodenameOne/src/**'
- 'Factory/src/**'
- 'maven/core/**'
- 'maven/factory/**'
- 'maven/pom.xml'
- 'scripts/ci/retry.sh'
- '.github/workflows/dart-flutter-tests.yml'
workflow_dispatch:

permissions:
contents: read
# The pr-ci-container image lives on ghcr; without this the job dies in
# "Initialize containers" with a bare "denied".
packages: read

concurrency:
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

jobs:
dart-flutter-tests:
runs-on: ubuntu-24.04
timeout-minutes: 45
container: ghcr.io/codenameone/codenameone/pr-ci-container:latest
env:
# The behavior tests write UTF-8 sources and read UTF-8 output.
LANG: C.UTF-8
LC_ALL: C.UTF-8
defaults:
run:
shell: bash
steps:
- uses: actions/checkout@v6

- name: Check the container's JDK 17
run: |
if [ -z "${JAVA_HOME_17:-}" ] || [ ! -x "$JAVA_HOME_17/bin/javac" ]; then
echo "JAVA_HOME_17 is unset or has no javac: '${JAVA_HOME_17:-<unset>}'" >&2
exit 1
fi
echo "JAVA_HOME=$JAVA_HOME_17" >> "$GITHUB_ENV"
echo "JAVA17_HOME=$JAVA_HOME_17" >> "$GITHUB_ENV"
echo "$JAVA_HOME_17/bin" >> "$GITHUB_PATH"

- name: Cache Maven dependencies
uses: actions/cache@v5
with:
path: ~/.m2
key: ${{ runner.os }}-m2-dart-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-m2-dart-
${{ runner.os }}-m2

# JDK 17, because the runtimes compile at release 17: maven/pom.xml adds
# them to the reactor only on 17+ (flutter-modules), and the transpiler
# only gets them on its test classpath there (transpiler-tests).
#
# verify rather than test: the transpiler's harness links the generated
# Java against the runtime JARS in each module's target/, which test never
# packages. Javadoc and the static analysis gates are skipped -- they are
# not what this job is for, and the core's run in pr.yml.
- name: Run the transpiler and runtime tests
env:
CN1_DART_TESTS_REQUIRED: '1'
# Retry only a dependency-resolution failure, never a failing test.
RETRY_ONLY_MATCHING: transient
run: |
cd maven
bash ../scripts/ci/retry.sh mvn -B verify \
-pl core,dart-runtime,flutter-runtime,dart-transpiler -am \
-Dmaven.javadoc.skip=true -Dmaven.source.skip=true \
-Dspotbugs.skip=true -Dpmd.skip=true -Dcheckstyle.skip=true -Djacoco.skip=true

# Independent of the switch above: a module whose tests silently stopped
# running (a profile that no longer activates, a surefire include that
# matches nothing) produces no report at all, which no test can notice.
- name: Check that every suite ran
run: |
python3 - <<'EOF'
import glob, os, sys
import xml.etree.ElementTree as ET

def totals(pattern):
tests = skipped = 0
files = glob.glob(pattern)
for f in files:
r = ET.parse(f).getroot()
tests += int(r.get("tests", 0))
skipped += int(r.get("skipped", 0))
return len(files), tests, skipped

failed = False
for module in ("dart-runtime", "flutter-runtime", "dart-transpiler"):
n, tests, skipped = totals("maven/%s/target/surefire-reports/TEST-*.xml" % module)
print("%s: %d reports, %d tests, %d skipped" % (module, n, tests, skipped))
if tests == 0:
print("::error::%s ran no tests" % module)
failed = True

harness = "maven/dart-transpiler/target/surefire-reports/TEST-com.codename1.dart.transpiler.harness.%s.xml"
cases = [d for d in os.listdir("maven/dart-transpiler/src/test/resources/behavior")
if os.path.isdir(os.path.join("maven/dart-transpiler/src/test/resources/behavior", d))]
for name, expected in (("BehaviorTest", len(cases)), ("CompileGeneratedTest", 2)):
n, tests, skipped = totals(harness % name)
print("%s: %d tests, %d skipped (expected %d)" % (name, tests, skipped, expected))
if n == 0 or tests < expected or skipped != 0:
print("::error::%s did not run every case: %d run, %d skipped, %d expected"
% (name, tests, skipped, expected))
failed = True
sys.exit(1 if failed else 0)
EOF
10 changes: 8 additions & 2 deletions .github/workflows/developer-guide-docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -158,8 +158,14 @@ jobs:
if: github.event_name != 'pull_request' || steps.changes.outputs.docs == 'true' || steps.changes.outputs.demos == 'true' || steps.changes.outputs.workflow == 'true'
run: |
set -euo pipefail
xvfb-run -a mvn -B -ntp -f maven/pom.xml \
-pl core,javase,android,css-compiler,codenameone-maven-plugin,backend,backend-test \
# Through retry.sh, transient failures only, like the demo install below:
# this is the step that resolves the most from Central, and a single 502
# on a plugin dependency (maven-shared-utils) failed the whole guide build.
# dart-runtime and flutter-runtime: docs/demos/common depends on the Flutter
# runtime at this version, which nothing else selected here pulls in; they are
# in the reactor because this job runs on JDK 17 (the flutter-modules profile).
RETRY_ONLY_MATCHING=transient xvfb-run -a bash scripts/ci/retry.sh mvn -B -ntp -f maven/pom.xml \
Comment thread
shai-almog marked this conversation as resolved.
-pl core,javase,android,css-compiler,codenameone-maven-plugin,backend,backend-test,dart-runtime,flutter-runtime \
-am install \
-Plocal-dev-javase \
-DskipTests \
Expand Down
Loading
Loading