Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
546 commits
Select commit Hold shift + click to select a range
c88cef8
dart-runtime: Future.wait eagerError/cleanUp, typed List.from checks,…
shai-almog Sep 24, 2026
cae92d7
flutter-runtime: animateTo animates over its duration and curve; Comp…
shai-almog Sep 24, 2026
145775c
dart-transpiler: checked late fields, per-iteration sync*, hashAll ov…
shai-almog Sep 24, 2026
b7f265b
dart-runtime: int == double as the VM does, lastIndexWhere/lastIndexO…
shai-almog Sep 24, 2026
99463de
flutter-runtime: a provider given a new value rebuilds its dependents
shai-almog Sep 24, 2026
d1c9485
dart-transpiler: skip the packages/ asset root, lower List.lastIndexO…
shai-almog Sep 24, 2026
8a55429
Dialog: dispose a timed-out dialog only on the EDT
shai-almog Sep 24, 2026
13a6230
ContainerTransformTransition: cleanup releases the source and destina…
shai-almog Sep 24, 2026
e044ca2
dart-runtime: RegExp compiles in its constructor, IterableMixin throw…
shai-almog Sep 24, 2026
8f28bd9
flutter-runtime: ReverseAnimation and ProxyAnimation forward their pa…
shai-almog Sep 24, 2026
9d6cdee
dart-transpiler: lower Iterable.generate without type arguments
shai-almog Sep 24, 2026
39e3f69
fidelity: crop a screen that has stopped changing, not one fixed-slee…
shai-almog Sep 24, 2026
8d2733a
dart-runtime: thrown values are carried and caught as themselves; unm…
shai-almog Sep 24, 2026
72e48e7
flutter-runtime: awaitable dialogs, Selector's rebuild test, slider s…
shai-almog Sep 24, 2026
e375507
dart-transpiler: one ordered catch chain per try; lower identical, Li…
shai-almog Sep 24, 2026
71a8de9
flutter-bench: discount a slow runner, measured by pinned Flutter, fr…
shai-almog Sep 24, 2026
d83694e
dart-runtime: checked List.from and Uint8List.fromList, Dart-consiste…
shai-almog Sep 24, 2026
b294c09
flutter-runtime: per-element Selector cache, combining marks of every…
shai-almog Sep 24, 2026
c022e45
dart-transpiler: checked List.from, Object.hash through Dart hashes, …
shai-almog Sep 24, 2026
4c21456
dart-runtime: Dart errors for division by zero, Future.wait over a th…
shai-almog Sep 24, 2026
c6b6d6f
flutter-runtime: maxLength 0 is a limit, pushReplacementNamed keeps t…
shai-almog Sep 24, 2026
20bf6fa
dart-transpiler: lower replaceFirst, dynamic operands of && and ||, a…
shai-almog Sep 24, 2026
4009dc0
SimpleDateFormat: setTimeZone/getTimeZone, as java.text.DateFormat has
shai-almog Sep 24, 2026
83112e9
dart-runtime: identity collections use Dart identity; forEach detects…
shai-almog Sep 24, 2026
e415785
flutter-runtime: StatefulBuilder setState rebuilds, viewPadding carri…
shai-almog Sep 24, 2026
0a190c7
dart-transpiler: a class mixing in ChangeNotifier owns its listener list
shai-almog Sep 24, 2026
1c2be1e
copyright gate: header on SimpleDateFormatTest; SimpleDateFormat keep…
shai-almog Sep 24, 2026
570a391
flutter-bench: re-record the JavaScript size baseline
shai-almog Sep 24, 2026
424c67c
Merge remote-tracking branch 'origin/master' into flutter-dart-transp…
shai-almog Sep 24, 2026
1da7051
flutter-bench: settle from the marker, fail on a missing gated metric…
shai-almog Sep 24, 2026
50338ba
dart-transpiler: named arguments keep source order around any call
shai-almog Sep 24, 2026
8390e27
Merge remote-tracking branch 'origin/master' into flutter-dart-transp…
shai-almog Sep 25, 2026
daa510f
flutter-bench: fail the gate when Codename One is behind Flutter, and…
shai-almog Sep 25, 2026
e0003b5
builders: ship only the native theme the app loads, no transpiler met…
shai-almog Sep 25, 2026
4e38ce7
flutter-bench: measure what ships -- no MCP driver in the app, a stri…
shai-almog Sep 25, 2026
4dc0962
builders: and.hololight is not a build hint, so do not read it as one
shai-almog Sep 25, 2026
469f0db
flutter-bench: compare raw compute on every platform with the VM work…
shai-almog Sep 25, 2026
38f40d4
flutter-bench: build the compute table's intro as one explicit string
shai-almog Sep 25, 2026
c29117a
JavaScript port: IMUL is Math.imul, so int multiplication wraps like …
shai-almog Sep 25, 2026
fe9d3a4
flutter-bench: Flutter on Android takes its compute flag as a list; a…
shai-almog Sep 25, 2026
0ea3e97
flutter-bench: one period after a not-measured compute reason
shai-almog Sep 25, 2026
579c4bc
builders: keep the modern theme when the app asks the port for it
shai-almog Sep 25, 2026
fd5c172
flutter-runtime: a transform scaled to nothing paints nothing
shai-almog Sep 27, 2026
7a695cd
Mac port: answer the pre-window display size in pixels
shai-almog Sep 27, 2026
83f09b3
flutter-bench: stop timing our own compute check, and time Flutter's …
shai-almog Sep 27, 2026
7c12614
Merge remote-tracking branch 'origin/master' into flutter-dart-transp…
shai-almog Sep 27, 2026
54ed998
integration-tests: the staged-jar test generates with the archetype's…
shai-almog Sep 27, 2026
3d4b6f7
flutter-bench: find Flutter's content frame by wall time
shai-almog Sep 27, 2026
bd2c10b
iOS/Mac port: rasterise monochrome atlas glyphs through the CGFont path
shai-almog Sep 27, 2026
9a7af4c
Resources: parse through a private read buffer
shai-almog Sep 27, 2026
fcfb7d3
iOS/Mac port: size a bundled resource with stat, not by reading it
shai-almog Sep 27, 2026
2b4f6e9
Linux port: publish the accessibility tree in one hop to the GTK thread
shai-almog Sep 27, 2026
ac7a7e5
Fonts: stop rebuilding the same native font for every theme entry
shai-almog Sep 27, 2026
1989ad6
developer-guide CI: retry transient Central failures when installing …
shai-almog Sep 27, 2026
ef2e494
Fonts: put Font.createTrueTypeFont's load cache back
shai-almog Sep 27, 2026
731453a
Merge remote-tracking branch 'origin/master' into flutter-dart-transp…
shai-almog Sep 27, 2026
d7d1c49
Mac port: open the main window at the size it will really have
shai-almog Sep 27, 2026
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
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
5 changes: 4 additions & 1 deletion .github/workflows/developer-guide-docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,10 @@ 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 \
# 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.
RETRY_ONLY_MATCHING=transient xvfb-run -a bash scripts/ci/retry.sh mvn -B -ntp -f maven/pom.xml \
-pl core,javase,android,css-compiler,codenameone-maven-plugin,backend,backend-test \
-am install \
-Plocal-dev-javase \
Expand Down
Loading
Loading