Skip to main content

knowa_kernel 1.1.0 copy "knowa_kernel: ^1.1.0" to clipboard
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.

  • as checks null like any other value: null as int throws a TypeError, as in Dart, where it used to evaluate to null. A failed cast's TypeError now names both types instead of saying nothing.
  • A patch-class instance is an Object. It used to answer false, so case Object o skipped every patch instance.
  • on TypeError in a patch catches a failed cast; the core bridge could not answer is TypeError, so the catch clause itself failed.
  • Pattern cases in a switch inside an async body match. The asynchronous walker ignored them and fell through to default.
  • a == b with null on 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 Function and nothing else — instead of being turned into a host callable for the bridge first, which cannot be done past four parameters: callback == null threw for one with five.
  • null as Never — how the compiler spells a failed x!, 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 misused late variable 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.unmodifiable and Map.unmodifiable are bound, and on UnsupportedError, ArgumentError, RangeError, FormatException, UnimplementedError and ConcurrentModificationError catch: 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.

0
likes
130
points
537
downloads

Documentation

API reference

Publisher

verified publisherknowalabs.com

Weekly Downloads

The runtime that executes Knowa code-push patches inside a Flutter app. Dependency-free. You do not depend on it directly: knowa_sdk does.

Homepage

Topics

#code-push #ota-updates #runtime

License

BSD-3-Clause (license)

More

Packages that depend on knowa_kernel