Repository navigation
Flutter port gaps: transpiler, runtime and Flutter API fixes from a real-world port - #6154
shai-almog wants to merge 178 commits into
Conversation
…tializer cascades, crash guards, super ==, symbols, shared case variables; dart:core members
…onvert encodings, io TLS exceptions
…patterns, constructor and static tear-offs
…tors, Future statics, typed reduce
…ews, converters and chunked sinks, Uri resolve, Symbol, regex named groups
… extensions and mixins, do-while, Symbol, object patterns on core types, clearer diagnostics
…dows, text decorations, dialog/sheet arguments, button variants, lifecycle observers
…tion, last-wins mixin members, read-only unmodifiable maps; Uint8List is a List<int>
… sheet handle/shape, forms/navigation/table widgets, intl compact formats, google_fonts families; club_hub covers the UI packages
… masks, blur filters, real date/time/range pickers, safe-area dialogs
…aces, private accessors, mixin on-type interfaces, multi-variable for loops, bare getters in extensions
…er, switcher, align, positioned, rotation, slide, text style, TweenAnimationBuilder); font variations, Cupertino dynamic colors, icon theme getters
…neric extensions with typed callbacks, exact extension selection
…edSize, switcher builders, overlay styles, TextInputType keyboards, path transforms
…arameters in function types, typed constructor tear-offs, empty records
…ent headers, overlap handles, draggable sheets, button/slider/bottom-nav themes, Float64List matrix storage; fix IconData tests
…every tear-off adapter; generic type-parameter binding at call sites
… const fromEnvironment, Uri.encodeFull/splitQueryString, interface getters from mixins
…king pinned/floating headers, overlay autocomplete, textScaler, horizontal grids; resync embedded material stub
…rs, FontFeature, MediaQuery text scaling fallback, SelectionChangedCause
…per parameters typed by position, named constructors on abstract classes Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… handoff, RawAutocomplete with arrow and enter keys Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…reads, inherited interface getter bridges, discard temp only for fully parenthesized statements Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…omplete field and options view builders, key handling tests Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…comprehensions, switch pattern promotion, generic stub extensions; Autocomplete builder stubs Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…redicates, int stores into Float64List, Codec Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…is! exits, this in interpolation, conditional common supertypes, generic stub mixin getters Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…n types Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…sures, function-type interning Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…edef type args, record function fields Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Compared 210 screenshots: 210 matched. Benchmark ResultsDetailed Performance Metrics
ParparVM vs HotSpot (JDK 25): Windows arm64Runner CPU: ARMv8 (64-bit) Family 8 Model D49 Revision 0, MICROSOFT CORPORATION (baseline Ratios are ParparVM / JDK 25: below 1.00x ParparVM is faster (time) or smaller (RAM). Median of 5 interleaved, paired rounds; every run's output was verified. A ratio more than 20% (time) / 25% (RAM) above its baseline in
Result: no regression |
…e values, generic closure fields, generator element types Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…parameter narrowing Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…anonicalization Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…listener removal, canonical static views Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…, signed casts; mixin super keys Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ped literals and named-param typedefs Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…nction bounds across nullability Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…er static function view, Function-typed named calls Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… returns Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…onstructor and instantiated-generic tear-off identity Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…f type args from context Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…s, implicit instantiation identity, ctor inference via parameters, Function.apply named args Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…fix-chosen constructor classes Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…-offs Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… witnesses, F-bounded instantiate-to-bounds Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…values, ctor tear-off equality across locals, strict prefix resolution Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…, declared generic fn identity, exact nested witnesses Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…artSet/DartMap, prefix-resolved class lookups Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…, supertype pinning for same-named classes Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…c value records/async/method tear-offs, main/print as values, explicit instantiation keys Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…eric instantiation, wide function values in Object slots Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… unconstrained type variables, prefixed typedef literals Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Closes the gaps a real-world Flutter port into Codename One ran into: language features the transpiler mishandled, runtime crashes, missing Flutter API, stubs that were too shallow,
dart:*gaps, and weak diagnostics. A clean-room acceptance app,scripts/flutter-apps/club_hub, follows the same shape as that port: it pulls in async, collection, hive, http, markdown, source_span, stream_channel, string_scanner, table_calendar, web_socket_channel and more, 699 Dart files in all. It now transpiles and compiles with zero errors.field_notesandpet_adoptionare still accepted.What changed
Transpiler (
maven/dart-transpiler)fold/mapSet,ListorIterableonly throughimplements, beside a superclass, get live views, mixin forwarders and covariant-return pinsNevercall gets a closing throwrethrowand guardless if-case count as leaving the methodasync mainwaits for runningasync*bodiesString.runes, and lone surrogates in literals are escaped.Runtimes (
maven/dart-runtime,maven/flutter-runtime)Stream/StreamTransformervariance fixes, and typedFile.openRead.TweenAnimationBuilder,AlignmentGeometryonAlign/Stack/transitions,Scaffold.persistentFooterButtons, and a typedshowDateRangePicker.Tests
expect.txtcomes from a realdart run; Flutter-only fixes have flutter-runtime unit tests.Verification
installof dart-runtime, dart-transpiler and flutter-runtime withCN1_DART_TESTS_REQUIRED=1: 1,329 tests, 0 failures, 0 skipped, including 244 behaviour cases.@author,@since, ASCII and copyright gates are clean.Known limits
whereType<Relay<int>>()keeps aRelay<String>that Dart would drop.async*bodies still run on their own thread; a CPS state-machine lowering is separate work.Function.applywith named arguments is unsupported.🤖 Generated with Claude Code