I work on the Dart Kernel team and I can say a little bit more about what
we're trying to achieve with it.
We see Kernel as an intermediate format something like object files. It is
focused on ahead-of-time compilation as done in dart2js, DDC, and the Dart
VM in AOT mode. It is designed to support separate compilation and
incremental recompilation.
We do view it as an implementation detail, which means you might have to
recompile your app for a new version of the SDK. For the time being, we
will allow ourselves to make changes to the language and binary format that
are not backwards compatible. Eventually, Kernel itself will be part of
the SDK instead of a third party dependency. Obviously we'll want our
tooling to make everything easy and seamless.
The Kernel language is a simple high-level OO language with Dart semantics,
which means that it's not necessarily an attractive compilation target for
other languages --- that's not our goal.
We'll have more to say in the coming months, and we welcome community input!
Post by DoHyung KimIf Kernel IR (preferably in its binary encoding) is treated like the
current snapshot, which is still an implementation detail and may be
incompatible across releases, then what you envision might make sense. The
idea of different flavors of Dart VM looks interesting to me, too.
DH
I don't want to see a separate compilation step to the kernel IR sneaks in
my development cycles. I have been hindered by such a step in my whole
career with JVM. ;)
I agree ... and loading from source is not going anywhere ... we just got
hot reloading.
But maybe it wouldn't be that bad if Bazel
<https://github.com/bazelbuild/bazel> delivers.
It seems (I may be wrong) the default workflow for web apps is soon gonna
be DDC/Bazel and ditch Dartium, which is a pain to roll forward.
It seems the VM is now very modular.
It includes JITs, AoT compilers, DBC interpreter, and loads from source,
Kernel IR or snapshots.
There could be many VM builds for specific workflows.
In development, the VM uses JIT (or DBC for iOS) and loads code from source.
For mobile release builds, it compiles them with a VM for AoT that loads
from source, and runs them in a VM stripped of all the above.
(Or maybe there's no VM at all, just a runtime lib).
For server builds, it only includes JIT and loads only from Kernel IR (or
snapshots).
--
For other discussions, see https://groups.google.com/a/dartlang.org/
For HOWTO questions, visit http://stackoverflow.com/tags/dart
To file a bug report or feature request, go to http://www.dartbug.com/new
---
You received this message because you are subscribed to the Google Groups
"Dart Misc" group.
To unsubscribe from this group and stop receiving emails from it, send an
--
For other discussions, see https://groups.google.com/a/dartlang.org/
For HOWTO questions, visit http://stackoverflow.com/tags/dart
To file a bug report or feature request, go to http://www.dartbug.com/new
---
You received this message because you are subscribed to the Google Groups "Dart Misc" group.
To unsubscribe from this group and stop receiving emails from it, send an email to misc+***@dartlang.org.