Dear Solo5 users,

We have just updated, in fire, the new version of Solo5 to have a better
integration with Muen. We therefore advise you to update the tooling and
your unikernels accordingly if you are a Muen user - an update of the ABI
versions has also been done. We thank the Muen team for their
responsiveness to this new release.
Solo5 is now available via OPAM[^1]:
```
$ opam install solo5
```

We will update the robur.io repository accordingly to get this latest
version of Solo5 via `apt` (for more information on this repository, you
can see: https://robur.coop/Projects/Reproducible_builds).

Best,

[^1]: https://opam.ocaml.org/

On Tue, Apr 25, 2023 at 6:25 PM Romain Calascibetta <
[email protected]> wrote:

> Dear Solo5 user,
>
> We just cut the release of Solo5 0.8.0 which integrates several
> improvements and a breaking change. You can see the changelog here:
>
> * Be able to build `spt`, `virtio`, `muen` and `xen` targets on OpenBSD
>   (@adamsteen, #544). This change does not allow us to "run" these targets
> on
>   OpenBSD
> * Fix linker scripts with TLS (Thread Local Storage) sections
>   (@palainp, @hannesm, @dinosaure, #542)
> * Export TLS symbols (@palainp, @hannesm, @dinosaure, #546)
>   **breaking change** due to #542 & #546, tenders must be **upgraded**.
> Indeed,
>   solo5.0.7.* tenders will not be able to load correctly unikernels
> compiled
>   with solo5.0.8.0. The internal ABI version for `solo5-hvt`/`solo5-spt`
> was
>   upgraded accordingly.
>
>   This version implements Thread Local Storage. The user can initialise a
> TLS
>   block with `solo5_tls_init` on a pointer to `solo5_tls_size()` free
> bytes.
>   Then, the user is able to set the `tp` (Thread Pointer) pointer via
>   `solo5_set_tls_base(solo5_tls_tp_offset(tls_block))`. More details are
>   available into `solo5.h`.
>
>   Note: this change does not allow a Solo5 unikernel to use multiple
> cores! It
>   only provides an API required by OCaml 5 / pthread to launch, at most,
> one
>   thread.
> * Fix tests reported by NixOS (@greydot, @ehmry, #547)
> * Split out the `time.c` implementation between Muen and HVT
>   (@dinosaure, @Kensan, #552)
> * User hypercall instead of TSC-based clock when the user asks for the
>   wall-clock (@dinosaure, @reynir, #549, #550)
>
>   Note: only hvt & virtio are updated to avoid a clock drift on the
> wall-clock.
>   Indeed, when the unikernel is suspended, the wall-clock is not updated.
> Muen
>   & Xen still use a TSC-based wall-clock. The spt target was already in
> sync
>   with the host's wall-clock.
> * Improve the muen clock (@Kensan, #553)
> * Fix the `.bss` section according to #542 & #546. The `.bss` section is
> tagged
>   with `PT_LOAD`. Tenders are available to load this section properly.
>   (@Kensan, @dinosaure, #551, #554)
> * Fix the cross-compilation of Solo5 for `aarch64`
>   (@dinosaure, @palainp, @hannes, #555)
>
> As you can see, Solo5 is able to handle Thread Local Storages now. This
> improvement helps us to move forward with OCaml 5, MirageOS and unikernels
> which require this ABI. Due to this change, the layout of Solo5 unikernels
> was updated and we advise users to upgrade tenders and unikernels with
> Solo5 0.8.0 - otherwise, your tender will inform you that the ABI version
> is wrong. The Muen team is also aware of such a change. We would like to
> thank all contributors to this release for their advice and reviews.
>
> The project is available here:
> https://github.com/Solo5/solo5/releases/tag/v0.8.0
>
> Best,
>
> --
> Romain Calascibetta - http://din.osau.re/
>


-- 
Romain Calascibetta - http://din.osau.re/

Reply via email to