Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.Sign up
Remove specialization of hvt tender at unikernel compile time #326
A long-standing design issue in Solo5 is the specialization of the hvt tender being done at unikernel compile time, which is a hold-over from the days of ukvm.
With the introduction of the spt tender the problem has become even more pronounced, so the time has come to remove this concept from the codebase.
Among other things (see linked mailing list post for more), this change is blocking:
The following sub-tasks are part of this work:
After this is complete I will raise a separate issue to deal with the actual implementation of multiple device support and adding back the enforcement of the host/unikernel contract by the tender as the two are ultimately intertwined.
Progress update: Working on this has led to an overdue refactoring of the build system, with the following overall goals:
Unfortunately there are far too many ways to shoot oneself in the foot with GNU make, so this will take some time to stabilise.
For those that want to follow along, my work in progress branch is at https://github.com/mato/solo5/tree/wip-no-specialization. This is not yet functional with OPAM/MirageOS.
referenced this issue
Mar 8, 2019
Progress update: The last week or so has been spent writing an end to end smoketest for Mirage/Solo5, and learning a lot of OCaml along the way! The E2E test is needed in order for me to be able to reproducibly test Solo5 API and build system changes against downstream Mirage/Solo5 using a single command (i.e. score the "Can you make an (end to end) build in one step?" on the Joel Test).
The E2E code temporarily lives at https://github.com/mato/e2e-mirage-solo5, and will likely move into the Solo5 repository under