My current view of Hamlet and capabilities within Barrelfish is that the functionality of many MD parts of the kernel can be viewed as guarded type coercions over capability objects with a small but important library of side effects that may occur in the course of a coercion.
Hamlet both overconstrains and underconstrains our desired DSL for describing this new model of capability-based computation. However, because Hamlet is heavily relied on by the legacy portions of the Barrelfish tree, we cannot remove any functionality currently of the Hamlet language being used by Barrelfish.
Hence, we design a new language, Alewife, that encapsulates but evolves Hamlet. We note importantly that Alewife is not a generalization of Hamlet, but a an extension of the ideas that Hamlet represents in such a way as to support capability usage in strictly more code composing the barrelfish kernel's internals.
My current view of Hamlet and capabilities within Barrelfish is that the functionality of many MD parts of the kernel can be viewed as guarded type coercions over capability objects with a small but important library of side effects that may occur in the course of a coercion.
Hamlet both overconstrains and underconstrains our desired DSL for describing this new model of capability-based computation. However, because Hamlet is heavily relied on by the legacy portions of the Barrelfish tree, we cannot remove any functionality currently of the Hamlet language being used by Barrelfish.
Hence, we design a new language, Alewife, that encapsulates but evolves Hamlet. We note importantly that Alewife is not a generalization of Hamlet, but a an extension of the ideas that Hamlet represents in such a way as to support capability usage in strictly more code composing the barrelfish kernel's internals.