knowa_kernel 1.1.0
knowa_kernel: ^1.1.0 copied to clipboard
The runtime that executes Knowa code-push patches inside a Flutter app. Dependency-free. You do not depend on it directly: knowa_sdk does.
Changelog #
1.1.0 #
First release on pub.dev, under BSD-3-Clause. No API change.
aschecksnulllike any other value:null as intthrows aTypeError, as in Dart, where it used to evaluate to null. A failed cast'sTypeErrornow names both types instead of saying nothing.- A patch-class instance is an
Object. It used to answer false, socase Object oskipped every patch instance. on TypeErrorin a patch catches a failed cast; the core bridge could not answeris TypeError, so the catch clause itself failed.- Pattern cases in a
switchinside anasyncbody match. The asynchronous walker ignored them and fell through todefault. a == bwithnullon either side is identity, as in Dart: a patch class's own==is never asked about null. One that said yes to everything was equal to null.- A record the host built is refused by name when a patch asks
is Record. It used to answer no, so a record pattern moved quietly on to its next case; its fields cannot be read from here, so yes would only move the failure. - A failed cast names a patch record by its type, as Dart does —
(int, String, {bool ok})— rather than naming this runtime's own class. - A patch's own function answers a type test itself — it is a
Functionand nothing else — instead of being turned into a host callable for the bridge first, which cannot be done past four parameters:callback == nullthrew for one with five. null as Never— how the compiler spells a failedx!, having no null-check node — reports Dart's own message, "Null check operator used on a null value".- A top-level variable whose initialiser throws is left uninitialised, and the next read runs the initialiser again, as in Dart. It was marked initialised first, so every later read answered null. (The current compiler lowers such variables to a getter; this is for patches built before it.)
- The core bridge answers
<unmodifiable list>,<unmodifiable set>and<unmodifiable map>, which make a constant collection unmodifiable, and<LateInitializationError>, the Error a misusedlatevariable throws. Keys the compiler emits and no patch can spell; a runtime without them answers unresolved and the compiler's output falls back. List.unmodifiable,Set.unmodifiableandMap.unmodifiableare bound, andon UnsupportedError,ArgumentError,RangeError,FormatException,UnimplementedErrorandConcurrentModificationErrorcatch: the type test used to fail, taking the catch clause with it.
1.0.0 #
First frozen release. The Knowa packages version together from here.
0.1.0 #
First release. Not yet published to pub.dev; packages are consumed by path.