From mirageos-devel-bounces@lists.xenproject.org Sun May 05 19:54:12 2024
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 05 May 2024 19:54:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.717114.1119071 (Exim 4.92)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1s3hvu-00076S-38; Sun, 05 May 2024 19:54:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 717114.1119071; Sun, 05 May 2024 19:54:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1s3hvt-00076K-Ve; Sun, 05 May 2024 19:54:01 +0000
Received: by outflank-mailman (input) for mailman id 717114;
 Sun, 05 May 2024 19:54:01 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=LECe=MI=mehnert.org=hannes@srs-se1.protection.inumbo.net>)
 id 1s3hvs-00076B-E0
 for mirageos-devel@lists.xenproject.org; Sun, 05 May 2024 19:54:01 +0000
Received: from mail.mehnert.org (mail.mehnert.org [213.73.89.200])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 360982a6-0b19-11ef-909c-e314d9c70b13;
 Sun, 05 May 2024 21:53:58 +0200 (CEST)
Received: from [192.168.9.171] (p4fc12cd1.dip0.t-ipconnect.de [79.193.44.209])
 (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256
 client-signature RSA-PSS (2048 bits) client-digest SHA256)
 (Client CN "hannes@mehnert.org", Issuer "mehnert root CA" (not verified))
 by mail.mehnert.org (Postfix) with ESMTPS id ED6A412D4
 for <mirageos-devel@lists.xenproject.org>;
 Sun,  5 May 2024 21:53:56 +0200 (CEST)
X-BeenThere: mirageos-devel@lists.xenproject.org
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/mirageos-devel>, 
 <mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/mirageos-devel>, 
 <mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: mirageos-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "MirageOS-devel" <mirageos-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 360982a6-0b19-11ef-909c-e314d9c70b13
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mehnert.org; s=mail;
	t=1714938837; bh=h800ZDgg+FBdnWflD/HGJ8eAH9RKjbdKINQS9+hGVas=;
	h=Date:Subject:To:References:From:In-Reply-To;
	b=nUCHNtO2qNyNnDmbtcOv4eXIiHtYF0USR9dEgdbTEmrS6pUiUgWQU0Jr4HYWdE6PL
	 p5jkKpXfBSvD+8ExN1NDV7M6WJZUJt0HDQ3zKNIxXJwAC76l/TSD8+OZoFf5wS3Yty
	 zABInjtx3Sp6Pwzom6a0aYKyGyC5HWx5l61jEO6ZijF5OgexnhArWFlK+z0KufL/gJ
	 i2TIObJbS/IJ9Kn0QpWIkFcpZYlLXgHVJyd6/YDDtWDKpdFBHfp8789DCktHuwHVqZ
	 g+SbYycDbc/9BRBQXMkbTbpe1WbECuXN9Y/R+alTO5UnfhE0HpQMAUUMUWs5vuDvGT
	 15zLE2YswjioA==
Message-ID: <5d7e6ad3-3195-40ca-b0d1-ab5b18475e99@mehnert.org>
Date: Sun, 5 May 2024 21:53:45 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Next MirageOS meeting 2024-05-06
Content-Language: en-US
To: mirageos-devel@lists.xenproject.org
References: <6d59dce9-95e2-4715-82be-34b0c47added@app.fastmail.com>
From: Hannes Mehnert <hannes@mehnert.org>
Autocrypt: addr=hannes@mehnert.org; keydata=
 xsFLBEIw1AoBEADAtXwEV8F1DBpE9lnBTbHDNeZwDVp84MhxxIT5GUexGgbOWGSEWHhC3rYe
 FfGRUxF4M9P4fwxpxCS5YCvxoijWHeEf8nG5IkztVv5cw63E443XWHcCMc80YAwglZ2cSP4U
 GTNeKb9rqVPckk/PL348BYRawhzvZK+Bc+bUvbtPCfUXT1BWIxAR1dzsfpAQVNZ4bA06xOoP
 QJYVNgl/lWOmQgnSgb0dE2zsgddKTOj05ru7Q7LobB7WAUTRJVkZcXnrvI1SOt/WbPTyqF8l
 RBh94xCqFhv4SlqZVOTXxo9gw3LpDv/cYXRl/m7+/7Wljl3ziQ9cawA6O1mbw8nm7Sfa+TZl
 qo+5lXEenXG+MCbH0XnnL2I4BO6HSGDtKX6htTG2xs6w4r9mVxTGJuJcGrC0dxuz5j4jylt/
 KOVn9IaRKzhj8ga7kWffMp+JYdrn43732weoFFJxm78mD2ij4UbJtNkQIIcTv8IBJajHy2P3
 h1NuBIwwb7RmBav4oo0CKWoasIHFwjMSBpCzJ8QOHeO/F3TY3DZp7FTwViUgSXVJoewO9yFG
 ctX7MC27/F1IonU9/SJW0j+F3Vz32SfxUBrDnLYpO7/vwA8w+xmWLnl0iJN/8injz5+CigsP
 e7O66t4MtC9BVCuLu7a/ikH5nW0q6RyTW8of9eZIsuEyqF1ZPwAGKc0jSGFubmVzIE1laG5l
 cnQgPGhhbm5lc0BtZWhuZXJ0Lm9yZz7CwXQEEwECAB4FAkIw1A0CGwMGCwkIBwMCAxUCAwMW
 AgECHgECF4AACgkQvIlliN98KO5HYg//UD6gk4sFcNop/EQivcnpfPnHrrUddsBl9bovQSXb
 zIh5HY/8xhO5i87n5Aox9jYLcZwa6HJ3ElHMOa+n9AY4/+H8bd+BiHWTgEhEzcZqcYwyP2S2
 0X/e/m/+1XYs5tldKNZb7ruYRv6rNyUAF1H8EtYNaJpmGtXYurkMhWhEgeP9YB7svmkUN+JO
 og91tNhN1Wd10/JfKIytNcpXmW6zij0f3MJw/kdwIsmfSUMPaiEli+eB7nU0uLZWf4C3MWTT
 NmwNznEya5K9McH1Wc/lO9+oB+zRXFBUM/v9YaiyPZo0JcwSRdVYKvKteyqnL/lnx7vtkOnA
 EC/bcmMvlWLI+Q4Vw2cr2FKcIpJVwswZ5snFqgDr4O5JB88aEAzPFzyWWeBlVqXc0DbDu8jD
 YmG3yp/xn5UJQSRy6eUcXICNjJyIwekUCznRmhtGwkGFCFEZH/s2fQ7nETxZcuiE4meRnVQE
 9lOafI5D+dlsG3SlyN1x0YvrPismep7PwA6FX3cDyz2iUUj4xICLvRLU6kq892KuFmv75pop
 VAZjJMQqc8BG3oN2YkDcO4NEuOT9/r9muk/WH5Mqcs2BJEG6+yiQ13uMS5TxXiPFp3vKRlq0
 MFnm7YRZr5aK6B/WGLOHnRRb2OdAzUgsj4Qiyqvh8Ab+x9wjLwGePxlA1akrF2hQItfOwUsE
 QjDUdAEQAOHG4vdGxU3eH5hYDLYRsQP6ofoU36pV8iFEtZRJ833L5p9GP2xFUGVDH8yTdkdf
 QR1prsCJXA7sE/gYBf3k9lGicJQmYNo3uW9Ngz787BhiQJyW/JXcutyTt9b/AZmfJaDo1p0C
 8IEtoG7wt4+giFwAJ1brTJtyxlKOGcjWiKh1/dTh13muXSOPcCmhNs4Zm0YNjrhW9nIn1iik
 lpMRJCCxY1RNcU2VZXfTqq63UTaIrZ1lgYXWilnTdpXt5UEDYBw8Ee6tpPfQflC02e8hbDeD
 JEP9MTM9pmmPOwZQXP36hTryakKt1Kpw3hgC+Yx9q4wwaZ4XIiWUgopT5mlI+LhnzCgO05YN
 NcPrbsr6Js34gC3odNicD+C1jSdOXCqAPZZNiVx0PBjRv+LbBZhUkjQJxidvXmrp55pLm+Ua
 IVl3E/HpFY8kTaJBHP7jvLp+W4J9tP64Ijk5Y9F0z93JwMspG671xuomFsRxUtyO6vldd7qH
 1yVzDX7Dd0fAzMDOPQJW6zLiixCmA0McaZdeBXapMJDDoZAPY4pCbRyJJXe0tfv9ufzJrM8Z
 JHylONdBiIKWw0JldXkUvIGafl1JDOHjP1XoDWrSDO8yFhBR3uWxJy9u1s7aKvonQb5IcYU1
 nPu1Olg3doPugXyC0V05MIa68iKw+Kv8KtDDWyibndoTAAYpwsFfBBgBAgAJBQJCMNR1AhsM
 AAoJELyJZYjffCjuelUP/jlCsxLzu3fZpuORY2LsOQMd4nFHSZLUjauLxDUn8jE//32IIJ0v
 QV9ab4k7JCLOuYJTTd9aYD6rkITZIVhAcsR/FQZNgVOvGTj6tAmNyn385vMz0p4bLOOy5T0C
 KMLKzzS4Rt4XgtzvH2xDXSHfPsqS/t/5WFkO+aLgcPALldWGQPgRu5DNoCLr989gCGu5vmd4
 XwMRBt/LmJGI0v0EypL3eRmlGaUw5k6N1hStu4EETzdikAzXP5KTuloEXq/caYeUs/SIb5zi
 XVC1ISW0CIwj5ATbMh8DMG4splXCsajtnJjsKJATBZIWV4XoNqtgV+pQn1ShmW36nUfVGqzX
 AQ+9i/M+CCkxBrb85Bk8I1CA1nBHNk5SQqER40VRp6vcmuxvIBGi6t8dDWsDQ2q3kd4RjjDZ
 kYjSie7176bb9t5MfUGjA9WckHuyi+vjy3+sC/nRzByhXf+8iZsO2no3xWZkGUWI8F2hhpzW
 VsXqvC27LZvJk53fJbpuSueN8a7JKfbKPDqoDSsRaEtcM7ig475tqA/ZCzv6mdqhEV5buoLu
 cpW7UgYzjNQQXeYZygGWc7FTV3dqLmF1MY2+RlydQbUDjcj1CJ+UmKyxgoLyf7ru0sznr7Tp
 K4WDnVeJdWX1mqoSupF/u5LON1vpzh3OIl5NNAuV68Hb5On/ALC+DwFX
In-Reply-To: <6d59dce9-95e2-4715-82be-34b0c47added@app.fastmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Dear all,

as a reminder, this is in 11 hours. :)

See you soon,

Hannes


On 29/04/2024 09:11, Magnus Skjegstad wrote:
> Hi everyone,
> 
> The next MirageOS community call will be Monday May 6th at 9:00-10:00 CEST.
> 
> As usual everyone is welcome to attend this bi-weekly meeting. The current agenda is here: https://pad.data.coop/wGS4r8RyTKqQ73mcw7FrwA
> 
> Feel free to add any additional items you'd like to discuss.
> 
> The Jitsi link for the meeting is https://meet.jit.si/mirageos-call
> 
> See you there,
> 
> Magnus
> 



From mirageos-devel-bounces@lists.xenproject.org Mon May 06 07:04:10 2024
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 06 May 2024 07:04:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.717237.1119256 (Exim 4.92)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1s3sOI-0007xB-R2; Mon, 06 May 2024 07:04:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 717237.1119256; Mon, 06 May 2024 07:04:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1s3sOI-0007x4-NW; Mon, 06 May 2024 07:04:02 +0000
Received: by outflank-mailman (input) for mailman id 717237;
 Mon, 06 May 2024 07:04:01 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=6doO=MJ=rezilyens.com=khatti@srs-se1.protection.inumbo.net>)
 id 1s3sOH-0007wy-Nq
 for mirageos-devel@lists.xenproject.org; Mon, 06 May 2024 07:04:01 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on20700.outbound.protection.outlook.com
 [2a01:111:f403:2418::700])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cd7ab07d-0b76-11ef-909c-e314d9c70b13;
 Mon, 06 May 2024 09:04:00 +0200 (CEST)
Received: from BY5PR14MB3830.namprd14.prod.outlook.com (2603:10b6:a03:1dc::21)
 by SJ2PR14MB6478.namprd14.prod.outlook.com (2603:10b6:a03:4cb::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7544.42; Mon, 6 May
 2024 07:03:51 +0000
Received: from BY5PR14MB3830.namprd14.prod.outlook.com
 ([fe80::397a:376c:678f:1b74]) by BY5PR14MB3830.namprd14.prod.outlook.com
 ([fe80::397a:376c:678f:1b74%7]) with mapi id 15.20.7544.041; Mon, 6 May 2024
 07:03:51 +0000
X-BeenThere: mirageos-devel@lists.xenproject.org
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/mirageos-devel>, 
 <mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/mirageos-devel>, 
 <mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: mirageos-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "MirageOS-devel" <mirageos-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cd7ab07d-0b76-11ef-909c-e314d9c70b13
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=ffc+sowTCrcuBB2JIx48ex7AYzVhZDR6BLP159pgZsMFw1XSiz/aBTYw8PkLm2DeBWgYS9fbcSglrhb3xCoqLsNnu6Ak0ipkhfww+kHi5pZRB7az/aaDEAC/w/+inJfecdI+urI7Ptbemh6U79duXl5ZN4+LpoxeyaGWOFJkdK1g6ik0crwuljfNaBcY6CME/eC27q9ZweBGgjiY+QWNrLOqv8yADOUZtDtf05mYTGCDeKwbsZaMjjMWuPZl+RUWjXpuMEUUCsq1PSlWxGScTRGJRYy1M+oKQR+XBJ7r+H4w3+ugufycv4dacL1y1iRZgVKGQyvc0hEQS84Wx1q8Jg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=aDNcvNgknyRZAo2MC467J1oqagrZzuq99SiGDtrxunM=;
 b=MSpa5An1eSijGnHANb2lm/myEx0oEo7bE8ez5WoS8BZwQxwEqz3XJcssXKHvwiXun12xbDdEEzCY3Du0vr/TSmPc9gSbTPayMo77nn0fB1HT1lPeqtbWLRMfDo9ZPyqcwWMh0r2SGDSVqIh9lYb1sXv+Jeh9Iy01qfyGxkhU6jZGgtbT5AHd8PgnsPlagh6ZwsqP1scB5PHeefvSYMyzCD7mn6K1jSTIss1ZkFOYLZXInlmZOA2GXEhbq4+Muk0KEZn+mPg2sTgh85h/aU/sme5wAq9ajg5tGLzJnnI3exluJIiOcUXMPMO8F+20w2+LQxZr+WFKZbnXsmgJMIEvkg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=rezilyens.com; dmarc=pass action=none
 header.from=rezilyens.com; dkim=pass header.d=rezilyens.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=Rezilyens.onmicrosoft.com; s=selector2-Rezilyens-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=aDNcvNgknyRZAo2MC467J1oqagrZzuq99SiGDtrxunM=;
 b=fojhc3GthL0cds3oXRTAyyc1kWbnm9/sGyw0FKN+EqAS7xKOs8N+ukYPe3N0OTeOTbbAhLuW1y+fwSZ5V6KrJeV9SjdFFjJ+CPK5QVK1jN0FwcnoyyXK23g9r2zAxJzYYyYEeQpn0MqQf92lQIA+nYzSMr7bFgW4qAGhfWeyfCM=
From: Kaushik Hatti <khatti@rezilyens.com>
To: Hannes Mehnert <hannes@mehnert.org>, "mirageos-devel@lists.xenproject.org"
	<mirageos-devel@lists.xenproject.org>
Subject: Re: Next MirageOS meeting 2024-05-06
Thread-Topic: Next MirageOS meeting 2024-05-06
Thread-Index: AQHamgScmMjV4DaSFk25C4DRHGfVS7GJF9aAgAC7CL8=
Date: Mon, 6 May 2024 07:03:50 +0000
Message-ID:
 <BY5PR14MB383071A1580184A796C27348D71C2@BY5PR14MB3830.namprd14.prod.outlook.com>
References: <6d59dce9-95e2-4715-82be-34b0c47added@app.fastmail.com>
 <5d7e6ad3-3195-40ca-b0d1-ab5b18475e99@mehnert.org>
In-Reply-To: <5d7e6ad3-3195-40ca-b0d1-ab5b18475e99@mehnert.org>
Accept-Language: en-US, en-GB
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_637699c4-baaa-43bb-9765-31cc29bfe1ca_Enabled=True;MSIP_Label_637699c4-baaa-43bb-9765-31cc29bfe1ca_SiteId=005b5237-b81a-4886-bab3-9b45e5bb1489;MSIP_Label_637699c4-baaa-43bb-9765-31cc29bfe1ca_SetDate=2024-05-06T07:03:50.480Z;MSIP_Label_637699c4-baaa-43bb-9765-31cc29bfe1ca_Name=General;MSIP_Label_637699c4-baaa-43bb-9765-31cc29bfe1ca_ContentBits=0;MSIP_Label_637699c4-baaa-43bb-9765-31cc29bfe1ca_Method=Privileged;
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=rezilyens.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: BY5PR14MB3830:EE_|SJ2PR14MB6478:EE_
x-ms-office365-filtering-correlation-id: 10418bb4-2d67-40f8-0cb7-08dc6d9aaf10
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230031|376005|366007|1800799015|38070700009;
x-microsoft-antispam-message-info:
 =?us-ascii?Q?caglbYv5dorGHNAk8DzbgFjnVtyyGeSPBtVbkQm32CBwrOqOXI/0H815XXxy?=
 =?us-ascii?Q?Ygpn9dGhHvdwr4bdGL7c1ut8Om3WDWSQLg/vBNFgL2JjxAIlxZuQOK0u5gz5?=
 =?us-ascii?Q?LEPr9jjHoUEzvXsrChZuHiBR0TSm6QFxxD47fW/63ANzI0isbi5B3SJqU5tu?=
 =?us-ascii?Q?Af3ydVGBj/FZYM/REePDdXhSZBm30ZPXXlnpZpYl8ZW14+e84Lneb/foGgiE?=
 =?us-ascii?Q?/hG/ZLNsUFbLnwrGv5wwbpTM7FptAUfHz34nrpaJvSyeFKBQjZMRknxoiiUv?=
 =?us-ascii?Q?EeQFj28xXLZmoxMF6HQABIhJDR4dUjdmXxfELRXRtw9yuwPxCI/KSa/aCFTZ?=
 =?us-ascii?Q?Q5ajq+lfPOZlZD6N4We/jvnmGBAvCfAzvCOZokoBJI3G4nSN8oC6Uarhuuzm?=
 =?us-ascii?Q?VL6TKYRzEuaX8LwZb6YoZVsyGxUeYcArUwDxwsZ9p1vHM2olaSXEMAqrXDbm?=
 =?us-ascii?Q?1Czan8lzwUEXP7Xigi4J9ow9vcriuBEC//z2HbJ97fTpVuPwh0zILy29WW6q?=
 =?us-ascii?Q?8MvR1LMf1pUExgkm3IiZlJOup2evKkriVPmiu9WpA+couJ7DV8rQ4OmpHQQw?=
 =?us-ascii?Q?gHkFkIABP1NTAwS+RiTCjWMWVYAZGYeP4/6ESaBqJ6RQaT446MBSOgmtqbVl?=
 =?us-ascii?Q?mbgxUFKqk9CA1rfYQcGW6ixPtuICg81uw1IKFttjFffNThz3tDD5tPhPcRFQ?=
 =?us-ascii?Q?ip5sAsjCXmZQermksJ646PczCKBA6aN0TA0IdieaGXu29KDEVpHFtKjw8oeQ?=
 =?us-ascii?Q?7Tv21yi0Q/aAP7rodhZ9aYsA3axM/nShM2GOZMLJvlsq7XW4Wr4EJCx4WZT6?=
 =?us-ascii?Q?hmOcW6dWWZ+mASW3AdPxO7LHL5b4LrxrLm7DoSqLlqxc352VwZgrDw6GIAme?=
 =?us-ascii?Q?vRuimNZZXeBFYi2/1/Hc2F4MlsvK80N+Xf6oVYYlY/ICXF/jqVpxLDMs7sc/?=
 =?us-ascii?Q?D/Bap8V9chX+TXMdhXDPS/er3x28EhopTb1o8X5XiaoJKIJhN618EDOzE024?=
 =?us-ascii?Q?kdtRGn83YN2NNEEmuDa5J1VJRkBH8nuucbXOQNk8nq8jXiwMRif2pc4OpPwR?=
 =?us-ascii?Q?xTNyEvqQLIJB+mQfqywUEEjkpWkM2d6+25zJHtk5P1AMVcKt3ljdWEHcEoqE?=
 =?us-ascii?Q?fXnRIHWVkdOr4GmkDw0voL8+Fout83iZqNnoPggYS4/O/9xeiJj/r+ZBPjTe?=
 =?us-ascii?Q?hLVMxspGzG0QbH3oDAYXESAbNrxDWdcrNx9BHOJCD54cBdDgp4fc0YfNRudS?=
 =?us-ascii?Q?Db81/j90xrO3MuKMsZ7nk8ADkdrc3crjHptCrW8Now=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BY5PR14MB3830.namprd14.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(376005)(366007)(1800799015)(38070700009);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?us-ascii?Q?P9xsFVaFE+Yo0S3jNSS6352zIpuTHWsrVhraSKVYMczjKzCBSQ2Kvf5nEMeM?=
 =?us-ascii?Q?T60H6RtSemxzD3H5gI2GjkgpZnpdRr1UlAUxTW6BxESNP5c9jmJC8I2xQNJ3?=
 =?us-ascii?Q?xCaRCFihwJKQchNZ5Ev9AQvJWlid/Df91GD7RAtoNijHUfuAnbcJxN6+eF8k?=
 =?us-ascii?Q?mRGA6F5JkliYvgvbH9IB38X74YTPly+UbKbLgDV8pZ/aWZM62Ii3cebXVQ3p?=
 =?us-ascii?Q?QU48OUgf48uU8PEhH+h6mtGfynyuudemjgltIeNO6nxx/M03YMXMYk8NMLqK?=
 =?us-ascii?Q?aKwNyRwT0VIO2HqanyQQjNTq38XCCuwDcVJUvyU9O42j4YzkjnouIJ8U2O/l?=
 =?us-ascii?Q?g1xjXvaxE7rAQdnxrETw8B+UdhX2VG/i3MiRNrNz+HyXgqKBEyfXR9cmY40r?=
 =?us-ascii?Q?0ptGW6oZ1XkQRG3S5z+t7makRzVPqsY1+Lxc2KxpVhf9/3hVL3+FnQBl5+/U?=
 =?us-ascii?Q?TvaVJQMOvW4t3NnRsHtw2E84IY9IYEGxeA5577HX0ckUVJh4KWYp5mcxD1Wi?=
 =?us-ascii?Q?r1Dj43JKsmxGhOZK4uPdfEHME6gWkLHHJVpxNZQygOf9YVvlNwM/k1YKgETP?=
 =?us-ascii?Q?R+S58NnsrqQBWgy5LKD9ydo3kCkLms6khVee54kppXTsbW7beXCmxfHcoK03?=
 =?us-ascii?Q?TNBVDZcrakkk/A/yBkC/klKugiigqur6CxpBx3qu1OPN1nx9oQ+2IhRj4lNH?=
 =?us-ascii?Q?DxMPFYzhyFHaMxjqFiaYBitPsqNROMVvzFDVO/pXVk4iFhIkM1dRutkzMvkv?=
 =?us-ascii?Q?8/o0NB0lWD7n9efYZMXwc/f/4DRDR6VZloMwvfJhGj0vOZQ/lG2b7glLaTcv?=
 =?us-ascii?Q?cK9vKc2dqKae60cggJ1U1penjZcqz+M8Fp7WcI135Tq+syOHV8yF9yNHOJ/a?=
 =?us-ascii?Q?A+mPAD80OON808wM8T6+NSD+Zyk+0fh3FcrsDt8PAzccWEOeZnKkamnduMP9?=
 =?us-ascii?Q?vEDxF5JX9ZS6BZvpFaKD84CjvAK3T4oD0xsCoc132l0/asWRk9PSRr45jW4N?=
 =?us-ascii?Q?k2faT9kRndVb4mj7vxjtqgC46iR0Ntag0WqQp38fRffGGX0Eirqz1ivxXI2I?=
 =?us-ascii?Q?CwQQO8hGHfxtmizFp2NGOoQcYxw3sr6cO4Qu04ioAje6AiARJPD1MZJKlQG+?=
 =?us-ascii?Q?7nAFKKjkKu2id4YP8yxeQEWN56Dt1mlJR8k4AKquyXMjUDn4OTtgTqVact54?=
 =?us-ascii?Q?yGOwkZET1csYUH4Lkho66Jq9k+fc12uc82cVraaSVZnPMB2ozCTl2XitgY1b?=
 =?us-ascii?Q?eJiDTNlMONK1gddL9aqMDv3AO/vgBYjRMjH9S39kMouLTlEUUajA2MjIgkJ2?=
 =?us-ascii?Q?JwYv0BxJ1/NSSeVjDdyfvLMAqbGRQnWw2x1Xd1cdGVUTgcraflZL3nNpqmGg?=
 =?us-ascii?Q?ZIpYXytldwfyMNvU5QwD2ifq88WwJ20sBEfA8eWQK8m5+KtsuptSmz9BKP/y?=
 =?us-ascii?Q?o1BTrsNm4Ch45f2PowjSp44QHpv3kEiaorSezsTcpUtbe1Di4XTb90jQe1wK?=
 =?us-ascii?Q?9QzFYxI89S4OBeFTfV6nHCvsePRhAjRF5PnLZVBZa38xgZdzZuzV1JuIH2RR?=
 =?us-ascii?Q?EKrNORpj2smLurdZD0gb+6uMq6aiXZuMPlvFyjjMiMwn41uz4h/PhHZqANjj?=
 =?us-ascii?Q?EN9kVlxlIQtY+x/gE4j0PmJ/DXwDF2OkXEzQZcNFJxxD?=
Content-Type: multipart/related;
	boundary="_004_BY5PR14MB383071A1580184A796C27348D71C2BY5PR14MB3830namp_";
	type="multipart/alternative"
MIME-Version: 1.0
X-OriginatorOrg: rezilyens.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: BY5PR14MB3830.namprd14.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 10418bb4-2d67-40f8-0cb7-08dc6d9aaf10
X-MS-Exchange-CrossTenant-originalarrivaltime: 06 May 2024 07:03:50.9198
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 005b5237-b81a-4886-bab3-9b45e5bb1489
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: pdlNhkEOKJTn16rpGPmZ56m/COhCEXleHv92KJ9rGFWxRYKzVX0LGEItDyJ++CwUe6C91PEN2dwfkR2wqMtXMA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR14MB6478

--_004_BY5PR14MB383071A1580184A796C27348D71C2BY5PR14MB3830namp_
Content-Type: multipart/alternative;
	boundary="_000_BY5PR14MB383071A1580184A796C27348D71C2BY5PR14MB3830namp_"

--_000_BY5PR14MB383071A1580184A796C27348D71C2BY5PR14MB3830namp_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Hi Hannes,

I am waiting in the lobby to be let in. My name reads "Kaushik & Rajesh".

Thanks,

Kaushik Hatti, Ph.D.,

CISO | Chief Data Scientist,

Rezilyens/Pinochle.ai,

Email: khatti@rezilyens.com<mailto:khatti@rezilyens.com>

www.rezilyens.com<http://www.rezilyens.com/>

www.pinochle.ai<http://www.pinochle.ai/>

[LinkedIn image of LinkedIn icon]<https://www.linkedin.com/in/kaushik-hatti=
/>

________________________________
From: MirageOS-devel <mirageos-devel-bounces@lists.xenproject.org> on behal=
f of Hannes Mehnert <hannes@mehnert.org>
Sent: Monday, May 6, 2024 01:23
To: mirageos-devel@lists.xenproject.org <mirageos-devel@lists.xenproject.or=
g>
Subject: Re: Next MirageOS meeting 2024-05-06

CAUTION: This email originated from outside of the organization. Do not cli=
ck links or open attachments unless you recognize the sender and know the c=
ontent is safe.


Dear all,

as a reminder, this is in 11 hours. :)

See you soon,

Hannes


On 29/04/2024 09:11, Magnus Skjegstad wrote:
> Hi everyone,
>
> The next MirageOS community call will be Monday May 6th at 9:00-10:00 CES=
T.
>
> As usual everyone is welcome to attend this bi-weekly meeting. The curren=
t agenda is here: https://pad.data.coop/wGS4r8RyTKqQ73mcw7FrwA
>
> Feel free to add any additional items you'd like to discuss.
>
> The Jitsi link for the meeting is https://meet.jit.si/mirageos-call
>
> See you there,
>
> Magnus
>



--_000_BY5PR14MB383071A1580184A796C27348D71C2BY5PR14MB3830namp_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<style type=3D"text/css" style=3D"display:none;"> P {margin-top:0;margin-bo=
ttom:0;} </style>
</head>
<body dir=3D"ltr">
<div class=3D"elementToProof" style=3D"font-family: Aptos, Aptos_EmbeddedFo=
nt, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; c=
olor: rgb(0, 0, 0);">
Hi Hannes,</div>
<div class=3D"elementToProof" style=3D"font-family: Aptos, Aptos_EmbeddedFo=
nt, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; c=
olor: rgb(0, 0, 0);">
<br>
</div>
<div class=3D"elementToProof" style=3D"font-family: Aptos, Aptos_EmbeddedFo=
nt, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; c=
olor: rgb(0, 0, 0);">
I am waiting in the lobby to be let in. My name reads &quot;Kaushik &amp; R=
ajesh&quot;.</div>
<div class=3D"elementToProof" style=3D"font-family: Aptos, Aptos_EmbeddedFo=
nt, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; c=
olor: rgb(0, 0, 0);">
<br>
</div>
<div class=3D"elementToProof" style=3D"font-family: Aptos, Aptos_EmbeddedFo=
nt, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; c=
olor: rgb(0, 0, 0);">
Thanks,</div>
<div id=3D"Signature" style=3D"color: inherit; background-color: inherit;">
<p style=3D"background-color: rgb(255, 255, 255); font-family: &quot;Segoe =
UI Web (West European)&quot;, &quot;Segoe UI&quot;, -apple-system, BlinkMac=
SystemFont, Roboto, &quot;Helvetica Neue&quot;, sans-serif; font-size: 12pt=
;">
<span style=3D"font-size: 11pt;">Kaushik Hatti, Ph.D.,</span></p>
<p style=3D"background-color: rgb(255, 255, 255); font-family: &quot;Segoe =
UI Web (West European)&quot;, &quot;Segoe UI&quot;, -apple-system, BlinkMac=
SystemFont, Roboto, &quot;Helvetica Neue&quot;, sans-serif; font-size: 12pt=
;">
<span style=3D"font-size: 11pt;">CISO | Chief Data Scientist,&nbsp;</span><=
/p>
<p style=3D"background-color: rgb(255, 255, 255); font-family: &quot;Segoe =
UI Web (West European)&quot;, &quot;Segoe UI&quot;, -apple-system, BlinkMac=
SystemFont, Roboto, &quot;Helvetica Neue&quot;, sans-serif; font-size: 12pt=
;">
<span style=3D"font-size: 11pt;">Rezilyens/Pinochle.ai,</span></p>
<p style=3D"background-color: rgb(255, 255, 255); font-family: &quot;Segoe =
UI Web (West European)&quot;, &quot;Segoe UI&quot;, -apple-system, BlinkMac=
SystemFont, Roboto, &quot;Helvetica Neue&quot;, sans-serif; font-size: 12pt=
;">
<span style=3D"font-size: 11pt;">Email: <a href=3D"mailto:khatti@rezilyens.=
com" style=3D"margin: 0px;">
khatti@rezilyens.com</a></span></p>
<p style=3D"background-color: rgb(255, 255, 255); font-family: &quot;Segoe =
UI Web (West European)&quot;, &quot;Segoe UI&quot;, -apple-system, BlinkMac=
SystemFont, Roboto, &quot;Helvetica Neue&quot;, sans-serif; font-size: 12pt=
;">
<span style=3D"font-size: 11pt;"><a href=3D"http://www.rezilyens.com/" styl=
e=3D"margin: 0px;">www.rezilyens.com</a></span></p>
<p style=3D"background-color: rgb(255, 255, 255); font-family: &quot;Segoe =
UI Web (West European)&quot;, &quot;Segoe UI&quot;, -apple-system, BlinkMac=
SystemFont, Roboto, &quot;Helvetica Neue&quot;, sans-serif; font-size: 12pt=
;">
<span style=3D"font-size: 11pt;"><a href=3D"http://www.pinochle.ai/" style=
=3D"margin: 0px;">www.pinochle.ai</a></span></p>
<p style=3D"background-color: rgb(255, 255, 255); font-family: &quot;Segoe =
UI Web (West European)&quot;, &quot;Segoe UI&quot;, -apple-system, BlinkMac=
SystemFont, Roboto, &quot;Helvetica Neue&quot;, sans-serif; font-size: 12pt=
;">
<a href=3D"https://www.linkedin.com/in/kaushik-hatti/" style=3D"margin: 0px=
;"><img alt=3D"LinkedIn=0A=
image of LinkedIn icon" width=3D"20" height=3D"20" style=3D"width: 20px; he=
ight: 20px; margin: 0px;" data-outlook-trace=3D"F:1|T:1" src=3D"cid:6729a25=
d-a7b0-4b33-a9d7-a3e6a8cf9cf6"></a></p>
</div>
<div id=3D"appendonsend"></div>
<hr style=3D"display:inline-block;width:98%" tabindex=3D"-1">
<div id=3D"divRplyFwdMsg" dir=3D"ltr"><font face=3D"Calibri, sans-serif" st=
yle=3D"font-size:11pt" color=3D"#000000"><b>From:</b> MirageOS-devel &lt;mi=
rageos-devel-bounces@lists.xenproject.org&gt; on behalf of Hannes Mehnert &=
lt;hannes@mehnert.org&gt;<br>
<b>Sent:</b> Monday, May 6, 2024 01:23<br>
<b>To:</b> mirageos-devel@lists.xenproject.org &lt;mirageos-devel@lists.xen=
project.org&gt;<br>
<b>Subject:</b> Re: Next MirageOS meeting 2024-05-06</font>
<div>&nbsp;</div>
</div>
<div class=3D"BodyFragment"><font size=3D"2"><span style=3D"font-size:11pt;=
">
<div class=3D"PlainText">CAUTION: This email originated from outside of the=
 organization. Do not click links or open attachments unless you recognize =
the sender and know the content is safe.<br>
<br>
<br>
Dear all,<br>
<br>
as a reminder, this is in 11 hours. :)<br>
<br>
See you soon,<br>
<br>
Hannes<br>
<br>
<br>
On 29/04/2024 09:11, Magnus Skjegstad wrote:<br>
&gt; Hi everyone,<br>
&gt;<br>
&gt; The next MirageOS community call will be Monday May 6th at 9:00-10:00 =
CEST.<br>
&gt;<br>
&gt; As usual everyone is welcome to attend this bi-weekly meeting. The cur=
rent agenda is here:
<a href=3D"https://pad.data.coop/wGS4r8RyTKqQ73mcw7FrwA">https://pad.data.c=
oop/wGS4r8RyTKqQ73mcw7FrwA</a><br>
&gt;<br>
&gt; Feel free to add any additional items you'd like to discuss.<br>
&gt;<br>
&gt; The Jitsi link for the meeting is <a href=3D"https://meet.jit.si/mirag=
eos-call">https://meet.jit.si/mirageos-call</a><br>
&gt;<br>
&gt; See you there,<br>
&gt;<br>
&gt; Magnus<br>
&gt;<br>
<br>
<br>
</div>
</span></font></div>
</body>
</html>

--_000_BY5PR14MB383071A1580184A796C27348D71C2BY5PR14MB3830namp_--

--_004_BY5PR14MB383071A1580184A796C27348D71C2BY5PR14MB3830namp_
Content-Type: image/png; name="=?us-ascii?Q?Outlook-LinkedIn=0Ai.png?="
Content-Description: =?us-ascii?Q?Outlook-LinkedIn=0Ai.png?=
Content-Disposition: inline;
	filename="=?us-ascii?Q?Outlook-LinkedIn=0Ai.png?="; size=1604;
	creation-date="Mon, 06 May 2024 07:03:50 GMT";
	modification-date="Mon, 06 May 2024 07:03:50 GMT"
Content-ID: <6729a25d-a7b0-4b33-a9d7-a3e6a8cf9cf6>
Content-Transfer-Encoding: base64

iVBORw0KGgoAAAANSUhEUgAAAC0AAAAtCAMAAAANxBKoAAAAAXNSR0IArs4c6QAAAARnQU1BAACx
jwv8YQUAAAJ/UExURQAAAACA/wBVqgCqqgCAqg+HtA6AqhyAqhSFrRSFuBSAsROEqhOEsxKArRKJ
rRKJthGIsxqIsxaIsxSFrRSFsxSEsRSJsRmJsRmJtROHrRiHshaGrhaGsRaHrxWGsBWFrxeHsxeF
sRaEsRaHsRaHsxaJsxaGsBaIshaFrxaHsRaFrxWFsBWHshSHsRSHsxaFrhaGsBaGshaFrReHsReH
sxeIsxOErheErhWHshWIshWIsxWEsRWHshWFsBWFrxWFsBWCrhWGsBWFrhSHsBSHshaGsxaFsBaF
sRaHsBaFsRaGsBaGshaGsBSGshWGshWHsBWHsRWIsRWFrhWFrxaHsBaHsRaJsxaJtBWErhaFrxaH
sQh/qwmArAqArAuArAyBrQ2BrQ2CrQ6CrQ+CrQ+Crg+DrhCDrhGDrhGErhKErhKErxOErxSFrxWF
sBWGsBaGsBaGsRaHsRaHshaIshaJtBeGsBeKtheLtheLtxeMtxeMuBmIsRqIsRqIsh6KsyONtCON
tSSNtSWOtSaOtSaPtiiPti6SuDCUuTGUuTOVujSWujWWujaXuzqZvDuZvTyavT+bvkGcvkGdv0Se
wEWewEWfwEafwEefwUmhwUqhwkuhwkyiw1ioxmGtyWGtymSvy2Wvy2avy2ewzG+0znK2z3a40Hi5
0Xi50nm50nq60ny70327036804C91YG91Y3E2I/F2ZDF2ZvL3aPP4KbR4bfa57vc6MDe6sLf68Lg
68Xh68nj7crk7cvk7c3l7s/m79Dn8NHn8NLo8N7u9OHv9eHw9eXy9uby9uby9+fy9+fz9+jz9+n0
+PL4+vP5+/b6/Pv9/v3+/v7+//7//////82Sx9QAAABbdFJOUwACAwMGERISGRkaGxscHBweHi8y
MjQ0NDQ1NVJSU1RWV1hoaGhofn5/f4CEhJeXmJiYmZ2dnZ6esrKys7O01tbX19jg4OHj4+Tl5u3v
9vb39/f9/f39/f3+/v4bzNZBAAAACXBIWXMAACHVAAAh1QEEnLSdAAAC50lEQVRIS5WV9VsUQRiA
R0IMDEpRlBAMPFEUAQsVFZFSDEqF5VD3BI8bjgN397DALizswjoD9ezCblE5lPuDnGG+612Q95eJ
733m+aaRB34jo2JTC1Njo0L9oEeRgLFzMooE0YANolCUMSsmAPrlCE7MEgVDFWZUGQQxKzEYYu4M
mrpUqgbTRrWUM9kf4i6Epxn14DijN6aFg+HAa9LqGoi7U5Ov8gIL8EmW5AZm6MUEH/C68E4yQkQe
Y5I3mBSVCN1KiCowCaMKlNNg6AvCwEUD0pUm6KAmvT/Y02xJb+S49VD1wBjP5MDlkIfmyMNHFypY
3QN9bmCXnSyxdsXBX1br32al0aVkKg/Jhu3mblgJT5Xs6uzBxI6GoXHZRWo/VkPTAyma2CkCtCq3
PrF0vDuklDgWUhDyzTRAC2v5/Y11fC3W8DxfgXUatZqvhBDFkOmLRuRBg7Bn394D9dq6Y01NJw/z
+PjlK6fqNkCIkheCImyJkLFfWCyWm8UNbZ2dnS8bn3dYrX/enHeatBCBJjqOiPY1mWVLcf0PUnz6
TKdstf4+zUOUHJYJaIE9baxtJeE7xdu/MpHxSqeDMDbMR4VQJbjYX0zNz2jZcVQDYYxXKI3dfmJN
yZaPVL9aCmE6tnPeTvbbTRiXPKD2LQ7CNG/nNWH2jm+kaNWSo9BC7dt2m6zJMMd6g13/XcFeFeKy
l8xuaJO36V46zklPtjDb+Qza7J0/5W1pjPP5ttm7yKWQsdn5tt8drP1AgvfW7m4nxXtq36f2XbDZ
3UGBuXAvddfNZvNZfts1k8l0iey35hxpm8+wvdQvY/cSxdvufBnHceW1ulJSrKPtclLh4HYYpzD5
/96Txf3ARmE9v1X59reql+9gL99Y5JMgdvN+S67vN/kbVPnd/A19wHIQvkjh31k4GgwX/ONy5P60
uIEQdyfI87+cHgQxOQJiZtr+4s1FS2bEDIV+RfqGRo6ft3LuuMjh7v88Qv8A+bDorfmirAYAAAAA
SUVORK5CYII=

--_004_BY5PR14MB383071A1580184A796C27348D71C2BY5PR14MB3830namp_--


From mirageos-devel-bounces@lists.xenproject.org Tue May 07 16:17:32 2024
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 07 May 2024 16:17:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.718301.1120893 (Exim 4.92)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1s4NVM-0000Jy-1V; Tue, 07 May 2024 16:17:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 718301.1120893; Tue, 07 May 2024 16:17:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1s4NVL-0000Je-Tl; Tue, 07 May 2024 16:17:23 +0000
Received: by outflank-mailman (input) for mailman id 718301;
 Tue, 07 May 2024 16:17:22 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=megj=MK=mehnert.org=hannes@srs-se1.protection.inumbo.net>)
 id 1s4NVK-0000BA-AO
 for mirageos-devel@lists.xenproject.org; Tue, 07 May 2024 16:17:22 +0000
Received: from mail.mehnert.org (mail.mehnert.org [213.73.89.200])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 47c63074-0c8d-11ef-909c-e314d9c70b13;
 Tue, 07 May 2024 18:17:21 +0200 (CEST)
Received: from [192.168.42.80] (i5C74C12A.versanet.de [92.116.193.42])
 (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256
 client-signature RSA-PSS (2048 bits) client-digest SHA256)
 (Client CN "hannes@mehnert.org", Issuer "mehnert root CA" (not verified))
 by mail.mehnert.org (Postfix) with ESMTPS id 95FFCADB0
 for <mirageos-devel@lists.xenproject.org>;
 Tue,  7 May 2024 18:17:19 +0200 (CEST)
X-BeenThere: mirageos-devel@lists.xenproject.org
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/mirageos-devel>, 
 <mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/mirageos-devel>, 
 <mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: mirageos-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "MirageOS-devel" <mirageos-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 47c63074-0c8d-11ef-909c-e314d9c70b13
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mehnert.org; s=mail;
	t=1715098639; bh=CkX/bOjZzivthyS46D6cjiFpV265p6OJMdOZdINNPgM=;
	h=Date:To:From:Subject;
	b=bjROuYk6T8/axJJ6g734rfVFNkfIFgj+n5sVXaJWUb36W4NhOluyl2EbqncXShIvu
	 JXlREcmNsHORLCx9H9/iQmT8r3QKaTSqG0I3/92zQ31ABhQWXAUGoAWBdrA1YgzGIE
	 +W6q04r2INU7VW/2QLitcmFvRLGepaAvGiS09Kz+oyms4p3Zi1Lvm4oKD6OET5qRa3
	 y0XmXGbxDPfKXq7/QOjrV9GlhcVHTBOgsBKzeHViosGSClJm8KIC7Y0nQbo1cUdyDJ
	 5NGEIV//NT0b9WDh5VoiBnYUH7f/gAoWukrzlHjk6hHvnE7ysrR4hQ090nKKDBH3K+
	 7LoMBTZ4CYQgw==
Message-ID: <8916395b-7f89-44b1-850d-b587f91817f5@mehnert.org>
Date: Tue, 7 May 2024 18:17:19 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
To: mirageos-devel@lists.xenproject.org
Content-Language: en-US
From: Hannes Mehnert <hannes@mehnert.org>
Subject: [Request For Comments] Defunctorising MirageOS
Autocrypt: addr=hannes@mehnert.org; keydata=
 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
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Dear valued MirageOS developer (or person interested in MirageOS),

as mentioned in the last MirageOS community meeting, and also at the 
retreat in Marrakesh, I started to work on removing functors from 
MirageOS - and use the linking trick (use the interface for compilation 
of dependencies, and only when compiling the executable provide the 
implementation) - pioneered (as far as I'm aware) by Daniel Buenzli, and 
integrated into dune as "dune variants".

Let me show you the diff for the hello world unikernel as a unified diff:

```
--- a/tutorial/hello/config.ml
+++ b/tutorial/hello/config.ml
@@ -1,6 +1,7 @@
  open Mirage

  let main =
-  main "Unikernel.Hello" (time @-> job) ~packages:[ package "duration" ]
+  let extra_deps = [ dep default_time ] in
+  main ~extra_deps "Unikernel" job ~packages:[ package "duration" ]

-let () = register "hello" [ main $ default_time ]
+let () = register "hello" [ main ]

--- a/tutorial/hello/unikernel.ml
+++ b/tutorial/hello/unikernel.ml
@@ -1,12 +1,10 @@
  open Lwt.Infix

-module Hello (Time : Mirage_time.S) = struct
  let start _time =
    let rec loop = function
      | 0 -> Lwt.return_unit
      | n ->
        Logs.info (fun f -> f "hello");
-          Time.sleep_ns (Duration.of_sec 1) >>= fun () -> loop (n - 1)
+      Mirage_time.sleep_ns (Duration.of_sec 1) >>= fun () -> loop (n - 1)
    in
    loop 4
-end
```

To describe the changes: we no longer apply default_time to the main in 
config.ml (the $ sign), and also the signature of the unikernel changed 
(from "time @-> job" to "job"). The unikernel itself is no longer a functor.

The benefits, apart from the headspace you need to understand the hello 
world, is also editor navigation -- you can directly jump to the 
definitions (which you can't in the earlier code, since Mirage_time.S is 
abstract, and merlin doesn't know which implementation will be used).

## Motivation

Besides from code readability and editor support, I find it important to 
evaluate the abstraction mechanisms we use. And a functor is really nice 
and useful, but not really needed for something that you'll only have 
once in your binary -- and let's face it, on solo5 we'll use the solo5 
mirage-time implementation, on unix the unix one - there's no mix and 
match -- and nobody would ever want to have two different sleep_ns 
functions that behave differently in a single unikernel.

The motivation also comes from various people whom I talked to that 
wanted to port OCaml libraries over to MirageOS, and discovered they'd 
need to restructure the code heavily.

## Other examples

If you're keen to look into other unikernel changes, I opened 
https://github.com/mirage/mirage-skeleton/pull/394 as a draft.

## Try it out

If you're keen to explore it for yourself and get your hands dirty, 
don't hesitate to create a fresh opam switch and add my opam overlay:
```
opam switch create mirage-time-defunctorised 4.14.2
eval `opam env`
opam repo add defunc 
https://github.com/hannesm/mirage-time-defunctorised.git
opam install mirage
```

## Implementation

So, below we're now using dune variants - you can take a look into 
mirage-time https://github.com/mirage/mirage-time/pull/14 -- how this is 
achieved. Due to the state of how `sleep_ns` was implemented earlier, 
this currently needs a modification to mirage-runtime 
(https://github.com/mirage/mirage/pull/1526), and mirage-solo5 and 
mirage-xen being adapted with it 
(https://github.com/mirage/mirage-solo5/pull/96, 
https://github.com/mirage/mirage-xen/pull/54).

Mirage-time is a virtual library, and has a default implementation (the 
unix one), while there's a second one (the solo5 one). The mirage tool 
generates, depending on the target, the dependency onto mirage-time.unix 
or mirage-time.solo5 (see 
https://github.com/mirage/mirage/pull/1529/commits/ff4d1a8924158c4145683b884f55ee869518f69f).

I went further and adapted the users:
- mirage-crypto-rng https://github.com/mirage/mirage-crypto/pull/229
- arp https://github.com/mirage/arp/pull/30
- tcpip https://github.com/mirage/mirage-tcpip/pull/515
- mirage-vnetif https://github.com/mirage/mirage-vnetif/pull/36
- charrua https://github.com/mirage/charrua/pull/125

What I noticed is that in arp there was a test case with a Fast_time, 
where the implementation of sleep_ns devided the given time by 600 to 
run more quickly. I easily found a different mechanism (increasing the 
tick from every 1500ms to every 2ms) which resulted in the test cases 
succeeding.

The full PR for mirage is https://github.com/mirage/mirage/pull/1529

## Downsides

As just outlined, passing a Fast_time isn't possible anymore. But I 
couldn't find any use apart from the arp test case - and there I could 
revise the code, which is more readable right now.

Another question is about extensibility: so what if someone comes up 
with a new mirage-time implementation that is faster, uses less memory, 
... -- I guess we all agree that we want to use it, and we just merge it 
into mirage-time. So, really, we only ever need one mirage-time 
implementation in a unikernel! :)

Another axis is what if someone wants to develop a new mirage backend 
(let's say unikraft) -- well, you'll have to extend the mirage-time 
repository with the new implementation, and the mirage tool to use the 
given implementation for the unikraft target. This isn't too different 
from what would be needed at the moment, where the mirage tool would be 
extended to use the "mirage-time-unikraft" package (NB: dune variants 
may only be in the same opam package). I don't see we're loosing 
anything here (esp. seeing how MirageOS currently evolves).

## Upsides

- code readability
- editor support
- less frightening for newcomers
- less generated code
- performance? (haven't measured this)

## Future

I'm not yet 100% happy with the result: I think the "~extra_deps" is a 
big hammer for what we need -- a simpler way we could have in mirage is 
to define "default_time" as a `package` - so it could be added as (in 
config.ml):

`main ~packages:[ package "duration" ; time ]`

And that `time` would resolve to "mirage-time.unix" or 
"mirage-time.solo5" at mirage configure time (depending on the target 
used). Since "Mirage_time" doesn't need any initialization function 
being called, such a lightweight approach would be preferably.

The downside is that our "start" needs to be delayed so other top-level 
functions have a chance to be setup (i.e. the Mirage_logs reporter). I 
think we need a different solution here.

## Comments?

Please feel free to comment in this mail thread. If you have opinions 
about the changed code, please comment on the individual PRs linked above.

I'm aware we have various other abstraction mechanisms and build system 
tricks in OCaml (first class modules, conditional compilation, ...). My 
current plan is to use dune variants since it looks like a nice 
lightweight approach for the flexibility we need. Feel free to go down a 
different path and let us then compare the results (but please refrain 
from discussing what could be nicer with a different approach that 
hasn't been tried out - too many unknowns won't help the discussion).

## Future II

Mirage-time was only the beginning ;) If there's positive feedback, I 
have unfinished and unclean changes to remove Random and Clock as 
functor arguments.

I believe it will make MirageOS more approachable and easier to get 
adapted by OCaml programmers (and others as well). From what I remember, 
the plan with mirage 4 was to try out the dune variants -- so now 2 
years after the 4.0.0 release, here we are :)

My belief is that other packages, such as mirage-net and mirage-block 
could benefit as well from using dune variants. I'm happy to continue 
that line of work and figure out what are the things that are not doable 
with this approach.



Thanks for reading until the end :D

Hannes


From mirageos-devel-bounces@lists.xenproject.org Wed May 08 09:31:11 2024
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 08 May 2024 09:31:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.718648.1121136 (Exim 4.92)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1s4ddb-0003XC-W9; Wed, 08 May 2024 09:30:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 718648.1121136; Wed, 08 May 2024 09:30:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1s4ddb-0003X5-T5; Wed, 08 May 2024 09:30:59 +0000
Received: by outflank-mailman (input) for mailman id 718648;
 Wed, 08 May 2024 09:30:58 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Ri1b=ML=mehnert.org=hannes@srs-se1.protection.inumbo.net>)
 id 1s4dda-0003Ww-3E
 for mirageos-devel@lists.xenproject.org; Wed, 08 May 2024 09:30:58 +0000
Received: from mail.mehnert.org (mail.mehnert.org [213.73.89.200])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ab747caf-0d1d-11ef-b4bb-af5377834399;
 Wed, 08 May 2024 11:30:56 +0200 (CEST)
Received: from [192.168.42.80] (i5C74C080.versanet.de [92.116.192.128])
 (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256
 client-signature RSA-PSS (2048 bits) client-digest SHA256)
 (Client CN "hannes@mehnert.org", Issuer "mehnert root CA" (not verified))
 by mail.mehnert.org (Postfix) with ESMTPS id 8A17411AC1
 for <mirageos-devel@lists.xenproject.org>;
 Wed,  8 May 2024 11:30:54 +0200 (CEST)
X-BeenThere: mirageos-devel@lists.xenproject.org
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/mirageos-devel>, 
 <mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/mirageos-devel>, 
 <mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: mirageos-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "MirageOS-devel" <mirageos-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ab747caf-0d1d-11ef-b4bb-af5377834399
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mehnert.org; s=mail;
	t=1715160654; bh=VbYzyN9D43MqCn9jXBPCoq3Vn+CGAalGbN0QmeVxu0A=;
	h=Date:Subject:To:References:From:In-Reply-To;
	b=kONB7Hx93yWk038SEOKZl7HLwKBThNSIKCoF814hGYpbzYQarEiLJZMI4HMrriYcy
	 TLKHjOEb4furQjyKfszSsh/TCY2o6UpIabVO3vyeI6zBKw/hEQJaWDhxJrwUgxWiYr
	 kfZOA2jfG49MOo5Im2J8j2ftrgrAELVp7EB8HUBvs32oSnraesnNmJQn7W2FI8f4ba
	 yAYiLRX/8LQ0YjUlDdSeg5r0tAfEndK45F47TeIgGGVARudwpAqCyKAWwBApC3D5ez
	 noyygMqyIwvAVWyTxTLZhpMV4RmWlMi1BLcN01yYK9gkZ4Vvq61wt4EiqoYdU7RoQK
	 ZvMdqIw5XMChQ==
Message-ID: <b788f80b-d148-4cb5-8428-53d234df9e9e@mehnert.org>
Date: Wed, 8 May 2024 11:30:54 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Another HEADSUP: mirage-random-test, mirage-random-stdlib
Content-Language: en-US
To: mirageos-devel@lists.xenproject.org
References: <c5805901-603d-4417-a321-421846c77842@mehnert.org>
From: Hannes Mehnert <hannes@mehnert.org>
Autocrypt: addr=hannes@mehnert.org; keydata=
 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
In-Reply-To: <c5805901-603d-4417-a321-421846c77842@mehnert.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Dear everyone,

mirage - the tool - removed the support for choosing the 
"mirage-random-stdlib" in mid-March 2020 (release v3.7.5). Nobody misses it.

Today, I archived the mirage-random-stdlib and mirage-random-test 
repository. For all users of mirage-random-test: use mirage-crypto-rng 
instead :) There are pending PRs for all reverse dependencies (which 
will hit opam-repository with releases soon).

The motivation is to keep our code in a manageable state - remove 
unnecessary abstractions where we can. Also, soon the mirage-random 
abstraction may be history (see the mirage-time defunctorised thread for 
further information).


Have a great day,

Hannes


From mirageos-devel-bounces@lists.xenproject.org Thu May 09 19:39:09 2024
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 09 May 2024 19:39:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.719383.1122145 (Exim 4.92)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1s59bX-0004D4-4Y; Thu, 09 May 2024 19:38:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 719383.1122145; Thu, 09 May 2024 19:38:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1s59bX-0004Cw-1k; Thu, 09 May 2024 19:38:59 +0000
Received: by outflank-mailman (input) for mailman id 719383;
 Thu, 09 May 2024 19:38:57 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=JnOR=MM=gmail.com=reynirr@srs-se1.protection.inumbo.net>)
 id 1s59bV-0004Ca-Lf
 for mirageos-devel@lists.xenproject.org; Thu, 09 May 2024 19:38:57 +0000
Received: from mail-lf1-x133.google.com (mail-lf1-x133.google.com
 [2a00:1450:4864:20::133])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c63e81f7-0e3b-11ef-909c-e314d9c70b13;
 Thu, 09 May 2024 21:38:56 +0200 (CEST)
Received: by mail-lf1-x133.google.com with SMTP id
 2adb3069b0e04-51f4d2676d1so1411199e87.3
 for <mirageos-devel@lists.xenproject.org>;
 Thu, 09 May 2024 12:38:56 -0700 (PDT)
Received: from [192.168.1.86] (176-23-192-106-dynamic.dk.customer.tdc.net.
 [176.23.192.106]) by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-521f39d32b6sm413767e87.288.2024.05.09.12.38.54
 for <mirageos-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 09 May 2024 12:38:54 -0700 (PDT)
X-BeenThere: mirageos-devel@lists.xenproject.org
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/mirageos-devel>, 
 <mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/mirageos-devel>, 
 <mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: mirageos-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "MirageOS-devel" <mirageos-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c63e81f7-0e3b-11ef-909c-e314d9c70b13
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1715283536; x=1715888336; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:to:subject:user-agent:mime-version:date:message-id:from
         :to:cc:subject:date:message-id:reply-to;
        bh=GFyTbrlwikANaRCikt32mtJq7iSRx39LMR/OgR/gv6M=;
        b=HEgYiT01vnYT8jAayka4ZB2eqlraZZ4WAKjT2qCNV17/2OUFIgDbNSFNi+1l4MdQZJ
         bPF1jE6le/fsPN1PyUp+cPidipx5BeR59Yxtb3i/w2xkty5FnOfnXmuaXWVBu8b7zv24
         7sOCuw6kb5jF4ksEir9ezsMhzi/I+ejdle48+QqPtzxkP4effJkvxQ1AFNsR7G4ZSA/e
         RPC9Ep8rbq3q2MCcRaIEZcFjzncv/tJz4Uf9C7G0sTyYvVskxGcAKPz3VWAzRXmduSQ0
         vF2MyYYr1OlCtZfwqOJNY9ARbKTz9f3hLBkj0tQJhe/5ox123ElmqXuH3/UEHNOm+4w4
         zA8A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1715283536; x=1715888336;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:to:subject:user-agent:mime-version:date:message-id
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=GFyTbrlwikANaRCikt32mtJq7iSRx39LMR/OgR/gv6M=;
        b=vEYdk7gfirOrJx06sh1yDAAhLEjqLPu7qZR0ITwe0H1Jh5U5lzeGPQKYG/X1UNiJ4Y
         WYTt3fpKUoD9V8b9n1wzXLkhaID9moKxnf49/dQFQGK0ofpXYMQJ+YTzuvM7pMJfHqQ0
         BEbN/epSprTK0LtlLDA0q0IJE0aoCRMxjsK6jzahvKYIPBQKmCHML++pP1upgpTHMD+z
         gp6w1vqtr0BJlf6aJHIz6GdcaXRq5CMxOBcnZQ06cMvhEalGsBVJoNs+EvFZ4lqyzt1d
         /ASHNiNbZzLE/2EX12z3VPr6tujBwGzBjSDXUEUhWIzExktBwdMBercXvhYq75zgG4JA
         9y5g==
X-Gm-Message-State: AOJu0Yxg+cxhLMdHgIqdCtXh9e5marFFFooejpabPpBTnE0que7nn027
	pyyTzPw8zxFbC+1yWTs/NwYOKT8DW96s7AGpSFED48B3nhpKx3KJt8l7Lw==
X-Google-Smtp-Source: AGHT+IGAWnssIQ/iZxhDdkg9gZ3EjeLzaatsbgR6hmmEFv1UQl+H5o9pA8Z6hbfu8p9kLRwV88YLxA==
X-Received: by 2002:ac2:54b9:0:b0:51f:d72:cd2d with SMTP id 2adb3069b0e04-5220fc7aeb4mr325218e87.22.1715283535478;
        Thu, 09 May 2024 12:38:55 -0700 (PDT)
Message-ID: <7f299250-949c-429a-b74c-37d4452305a4@gmail.com>
Date: Thu, 9 May 2024 21:38:53 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [Request For Comments] Defunctorising MirageOS
To: mirageos-devel@lists.xenproject.org
References: <8916395b-7f89-44b1-850d-b587f91817f5@mehnert.org>
Content-Language: en-US
From: =?UTF-8?Q?Reynir_Bj=C3=B6rnsson?= <reynirr@gmail.com>
In-Reply-To: <8916395b-7f89-44b1-850d-b587f91817f5@mehnert.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Dear Hannnes & list,

I think this is a very promising approach. I think there are a number of 
devices where you would mostly expect only one 'raw' device. Time, 
network and block devices are good examples in my opinion.

A case I have in mind is block devices where we have at least two 
"overlay" block implementations: ccm_block[0] and 
mirage-block-partition[1]. The latter is authored by me and currently 
not integrated into mirage. In both cases they functorize over 
Mirage_block and provide an interface satisfying Mirage_block. In the 
former case block operations are transparently encrypted and in the 
latter case disk partitioning is (transparently) enforced. In both cases 
this can be useful with e.g. tar-mirage where the tar archive is 
encrypted (ok maybe less so) or where the tar archive does not start at 
offset zero.

Surely there is a middle ground. Maybe we can keep the interface / 
module type while having raw devices (that satisfy the interface) using 
the linker trick. Then we are able to choose to use the raw device or 
abstract over the implementation.

I am sure the above concerns can be addressed somehow while using dune 
variants, so I am in favor of going forward in this direction.

[0]: https://github.com/sg2342/mirage-block-ccm
[1]: https://github.com/reynir/mirage-block-partition

Best,
Reynir

On 07/05/2024 18:17, Hannes Mehnert wrote:
> Dear valued MirageOS developer (or person interested in MirageOS),
> 
> as mentioned in the last MirageOS community meeting, and also at the 
> retreat in Marrakesh, I started to work on removing functors from 
> MirageOS - and use the linking trick (use the interface for compilation 
> of dependencies, and only when compiling the executable provide the 
> implementation) - pioneered (as far as I'm aware) by Daniel Buenzli, and 
> integrated into dune as "dune variants".
> 
> Let me show you the diff for the hello world unikernel as a unified diff:
> 
> ```
> --- a/tutorial/hello/config.ml
> +++ b/tutorial/hello/config.ml
> @@ -1,6 +1,7 @@
>   open Mirage
> 
>   let main =
> -  main "Unikernel.Hello" (time @-> job) ~packages:[ package "duration" ]
> +  let extra_deps = [ dep default_time ] in
> +  main ~extra_deps "Unikernel" job ~packages:[ package "duration" ]
> 
> -let () = register "hello" [ main $ default_time ]
> +let () = register "hello" [ main ]
> 
> --- a/tutorial/hello/unikernel.ml
> +++ b/tutorial/hello/unikernel.ml
> @@ -1,12 +1,10 @@
>   open Lwt.Infix
> 
> -module Hello (Time : Mirage_time.S) = struct
>   let start _time =
>     let rec loop = function
>       | 0 -> Lwt.return_unit
>       | n ->
>         Logs.info (fun f -> f "hello");
> -          Time.sleep_ns (Duration.of_sec 1) >>= fun () -> loop (n - 1)
> +      Mirage_time.sleep_ns (Duration.of_sec 1) >>= fun () -> loop (n - 1)
>     in
>     loop 4
> -end
> ```
> 
> To describe the changes: we no longer apply default_time to the main in 
> config.ml (the $ sign), and also the signature of the unikernel changed 
> (from "time @-> job" to "job"). The unikernel itself is no longer a 
> functor.
> 
> The benefits, apart from the headspace you need to understand the hello 
> world, is also editor navigation -- you can directly jump to the 
> definitions (which you can't in the earlier code, since Mirage_time.S is 
> abstract, and merlin doesn't know which implementation will be used).
> 
> ## Motivation
> 
> Besides from code readability and editor support, I find it important to 
> evaluate the abstraction mechanisms we use. And a functor is really nice 
> and useful, but not really needed for something that you'll only have 
> once in your binary -- and let's face it, on solo5 we'll use the solo5 
> mirage-time implementation, on unix the unix one - there's no mix and 
> match -- and nobody would ever want to have two different sleep_ns 
> functions that behave differently in a single unikernel.
> 
> The motivation also comes from various people whom I talked to that 
> wanted to port OCaml libraries over to MirageOS, and discovered they'd 
> need to restructure the code heavily.
> 
> ## Other examples
> 
> If you're keen to look into other unikernel changes, I opened 
> https://github.com/mirage/mirage-skeleton/pull/394 as a draft.
> 
> ## Try it out
> 
> If you're keen to explore it for yourself and get your hands dirty, 
> don't hesitate to create a fresh opam switch and add my opam overlay:
> ```
> opam switch create mirage-time-defunctorised 4.14.2
> eval `opam env`
> opam repo add defunc 
> https://github.com/hannesm/mirage-time-defunctorised.git
> opam install mirage
> ```
> 
> ## Implementation
> 
> So, below we're now using dune variants - you can take a look into 
> mirage-time https://github.com/mirage/mirage-time/pull/14 -- how this is 
> achieved. Due to the state of how `sleep_ns` was implemented earlier, 
> this currently needs a modification to mirage-runtime 
> (https://github.com/mirage/mirage/pull/1526), and mirage-solo5 and 
> mirage-xen being adapted with it 
> (https://github.com/mirage/mirage-solo5/pull/96, 
> https://github.com/mirage/mirage-xen/pull/54).
> 
> Mirage-time is a virtual library, and has a default implementation (the 
> unix one), while there's a second one (the solo5 one). The mirage tool 
> generates, depending on the target, the dependency onto mirage-time.unix 
> or mirage-time.solo5 (see 
> https://github.com/mirage/mirage/pull/1529/commits/ff4d1a8924158c4145683b884f55ee869518f69f).
> 
> I went further and adapted the users:
> - mirage-crypto-rng https://github.com/mirage/mirage-crypto/pull/229
> - arp https://github.com/mirage/arp/pull/30
> - tcpip https://github.com/mirage/mirage-tcpip/pull/515
> - mirage-vnetif https://github.com/mirage/mirage-vnetif/pull/36
> - charrua https://github.com/mirage/charrua/pull/125
> 
> What I noticed is that in arp there was a test case with a Fast_time, 
> where the implementation of sleep_ns devided the given time by 600 to 
> run more quickly. I easily found a different mechanism (increasing the 
> tick from every 1500ms to every 2ms) which resulted in the test cases 
> succeeding.
> 
> The full PR for mirage is https://github.com/mirage/mirage/pull/1529
> 
> ## Downsides
> 
> As just outlined, passing a Fast_time isn't possible anymore. But I 
> couldn't find any use apart from the arp test case - and there I could 
> revise the code, which is more readable right now.
> 
> Another question is about extensibility: so what if someone comes up 
> with a new mirage-time implementation that is faster, uses less memory, 
> ... -- I guess we all agree that we want to use it, and we just merge it 
> into mirage-time. So, really, we only ever need one mirage-time 
> implementation in a unikernel! :)
> 
> Another axis is what if someone wants to develop a new mirage backend 
> (let's say unikraft) -- well, you'll have to extend the mirage-time 
> repository with the new implementation, and the mirage tool to use the 
> given implementation for the unikraft target. This isn't too different 
> from what would be needed at the moment, where the mirage tool would be 
> extended to use the "mirage-time-unikraft" package (NB: dune variants 
> may only be in the same opam package). I don't see we're loosing 
> anything here (esp. seeing how MirageOS currently evolves).
> 
> ## Upsides
> 
> - code readability
> - editor support
> - less frightening for newcomers
> - less generated code
> - performance? (haven't measured this)
> 
> ## Future
> 
> I'm not yet 100% happy with the result: I think the "~extra_deps" is a 
> big hammer for what we need -- a simpler way we could have in mirage is 
> to define "default_time" as a `package` - so it could be added as (in 
> config.ml):
> 
> `main ~packages:[ package "duration" ; time ]`
> 
> And that `time` would resolve to "mirage-time.unix" or 
> "mirage-time.solo5" at mirage configure time (depending on the target 
> used). Since "Mirage_time" doesn't need any initialization function 
> being called, such a lightweight approach would be preferably.
> 
> The downside is that our "start" needs to be delayed so other top-level 
> functions have a chance to be setup (i.e. the Mirage_logs reporter). I 
> think we need a different solution here.
> 
> ## Comments?
> 
> Please feel free to comment in this mail thread. If you have opinions 
> about the changed code, please comment on the individual PRs linked above.
> 
> I'm aware we have various other abstraction mechanisms and build system 
> tricks in OCaml (first class modules, conditional compilation, ...). My 
> current plan is to use dune variants since it looks like a nice 
> lightweight approach for the flexibility we need. Feel free to go down a 
> different path and let us then compare the results (but please refrain 
> from discussing what could be nicer with a different approach that 
> hasn't been tried out - too many unknowns won't help the discussion).
> 
> ## Future II
> 
> Mirage-time was only the beginning ;) If there's positive feedback, I 
> have unfinished and unclean changes to remove Random and Clock as 
> functor arguments.
> 
> I believe it will make MirageOS more approachable and easier to get 
> adapted by OCaml programmers (and others as well). From what I remember, 
> the plan with mirage 4 was to try out the dune variants -- so now 2 
> years after the 4.0.0 release, here we are :)
> 
> My belief is that other packages, such as mirage-net and mirage-block 
> could benefit as well from using dune variants. I'm happy to continue 
> that line of work and figure out what are the things that are not doable 
> with this approach.
> 
> 
> 
> Thanks for reading until the end :D
> 
> Hannes
> 


From mirageos-devel-bounces@lists.xenproject.org Mon May 13 08:25:13 2024
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 13 May 2024 08:25:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.720747.1123656 (Exim 4.92)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1s6QzZ-00037b-JM; Mon, 13 May 2024 08:25:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 720747.1123656; Mon, 13 May 2024 08:25:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1s6QzZ-00037U-GV; Mon, 13 May 2024 08:25:05 +0000
Received: by outflank-mailman (input) for mailman id 720747;
 Mon, 13 May 2024 08:25:04 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=OuHV=MQ=mehnert.org=hannes@srs-se1.protection.inumbo.net>)
 id 1s6QzX-00037E-Jh
 for mirageos-devel@lists.xenproject.org; Mon, 13 May 2024 08:25:04 +0000
Received: from mail.mehnert.org (mail.mehnert.org [213.73.89.200])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4afc1491-1102-11ef-909d-e314d9c70b13;
 Mon, 13 May 2024 10:25:02 +0200 (CEST)
Received: from [192.168.42.80] (i5C74C3A8.versanet.de [92.116.195.168])
 (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256
 client-signature RSA-PSS (2048 bits) client-digest SHA256)
 (Client CN "hannes@mehnert.org", Issuer "mehnert root CA" (not verified))
 by mail.mehnert.org (Postfix) with ESMTPS id 060E83799
 for <mirageos-devel@lists.xenproject.org>;
 Mon, 13 May 2024 10:25:01 +0200 (CEST)
X-BeenThere: mirageos-devel@lists.xenproject.org
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/mirageos-devel>, 
 <mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/mirageos-devel>, 
 <mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: mirageos-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "MirageOS-devel" <mirageos-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4afc1491-1102-11ef-909d-e314d9c70b13
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mehnert.org; s=mail;
	t=1715588701; bh=y6SK3OivUSeC7z0DRSE2i22wIBHfpzXwAqWrDN7+AEo=;
	h=Date:Subject:To:References:From:In-Reply-To;
	b=rA2doFwYsZ1ccMulZr2n5Tt2J46tS2OgHkS/5zF1Hmdg4LxRhs6QQ0Dph3/6zPQtR
	 1m6Du0r/2FzFeVjVJmtPLGKdK6lGqTiRZjPw+GzzAo0kMl281qih8FaoDnds4eJLSV
	 4DcLf/4Gbnv7uJCnmzdLlb+ZpWml6kpyE0QNCcRy3bKG6/jeRcZy+MsolAViTd+0MH
	 dweCvQrcBVSdXIuXvAi0b6EhJ32JRgAQEfO2gAg4LQAPypsBxCUa/cdJlekc1U1aNQ
	 9KV1vbN1QipgOi7uAqnfZA/KhjYaHgw3K09z7BhETD1U2LlsmJeiH3vcxIagdrZ/xI
	 v07eBaFh8w+PQ==
Message-ID: <c63476de-ae9e-4113-9e1f-433768873a3a@mehnert.org>
Date: Mon, 13 May 2024 10:25:00 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Next MirageOS meeting 2024-05-06
To: mirageos-devel@lists.xenproject.org
References: <6d59dce9-95e2-4715-82be-34b0c47added@app.fastmail.com>
Content-Language: en-US
From: Hannes Mehnert <hannes@mehnert.org>
Autocrypt: addr=hannes@mehnert.org; keydata=
 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
In-Reply-To: <6d59dce9-95e2-4715-82be-34b0c47added@app.fastmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hey,

here are the notes from our meeting. Next meeting next week (Monday 
20th, 09:00 CEST 
https://www.timeanddate.com/worldclock/fixedtime.html?msg=MirageOS+call&iso=20240520T07&ah=1 


Participants: Thomas G, Kaushik, Rajesh, Pierre, Samuel, Vincent Balat, 
Hannes, Reynir, Pixie

Agenda:

- MirageOS retreat
     - Hannes: It was amazing! Good food! 17 participants (1/3 who came 
by bus/train). Lots of discussions about deployments. Lots of good 
discussion focused on documentation. ~10 PRs to the mirage website. Lots 
of different stuff happening. Blog posts are upcoming. Jules ported 
unikernels to mirage 4.5. Found a few issues and opened PRs. Thomas to 
check those.
- Mirage and Dune virtual libraries (defunctorisation)
     - Hannes: found a few issues in dune variants. That seems to be a 
good idea. Discussed with Leandro and Vincent to port bigger libraires 
([Riot](https://github.com/riot-ml/riot) and Ocsigen) to Mirage. It was 
not easy to them because of functors. Related to Time/Clock/Random issue 
with defunctorisation. Experimented with conditional compilation and 
dune variants. The complicated part is the network stack. But actually 
we do not need functors for the network stack. Current status: lots of 
overlays but succeeded to build the network example in the tutorial 
(using the TCP/IP stack) without functors. Still working on how to 
reproduce the Dune issues for the Dune team to fix.
     - The motivating example: think of a network device (mirage-net), 
for a given target (unix/solo5/xen), we'll only ever want the one 
network interface implementation 
(mirage-net-unix/mirage-net-solo5/mirage-net-xen) -- and don't want to 
mix them --> we can use dune variants (or conditional compilation)
     - another motivation is the clock implementation: who would want a 
unikernel with two different clocks
     - Thomas: really interesting to simplify the functor stack for the 
80% of use-cases. What about virtual network: 
https://github.com/mirage/mirage-vnetif? What about the storage stack 
(where the "default storage" is harder to define)
     - mirage-kv - you may want to have a KV store backed by memory and 
a KV store backed by memory in the same unikernel -> functors are fine here
     - mirage-block - same argument as mirage-net -- we will only have a 
single implementation (depending on the target -- 
mirage-block-unix/mirage-block-xen/mirage-block-solo5) -- and not mix them
     - Thomas: interested in keeping the functors for "special" applications
- ocsigen porting issues
   - (a) functors (you need to refactor your code to have a module that 
is functorized and the shared code elsewhere, so you need to call the 
code indirectly)
   - (b) static bundled files (maybe a tar archive)
   - (c) logging (there's syslog)
   - (d) configuration files (is dynlink supported by MirageOS? no. but 
there's a path to include the configuration into the binary)
   - (e) Makefile and build system (MirageOS builds in a dune monorepo)
- OCaml 5
     - Samuel: the PR for solo5 + OCaml 5.2 is opened. A few extra 
patches to be pushed soon.
     - Samuel: started exploring the unikraft backend with Fabrice (to 
be as similar as possible as the solo5 changes)
     - Pierre: to try on mirage-qubes-firewall; Samuel and Thomas will 
try to test it with mirage-www
     - Pierre: what's the status with io-page/allocations? Could you 
rebase the PR on the head of ocaml-solo5 to simplify testing? Samuel 
will - no changes to the allocator so should merge fine.
- Ocsigen + Dream
   - kaushik: what is the difference / where does it sit?
   - kaushik: what does dream offer? is it a subset of ocsigen?
   - kaushik: ocsigen: fully end-to-end framework, dream: API for server
   - vincent: what you can do with dream, you can do with ocsigen - but 
ocsigen is a full stack, you can do more with it
   - vincent: dream is likely easier to use if you're only developing on 
the server side
   - vincent: with ocsigen, you can integrate client-side as well, and 
go the full way to mobile applications
   - thomas: dream works with mirageos, ocsigen not yet
   - thomas: mirage-www uses dream (it is only a static site)
   - vincent: people start with dream, and then want to add features and 
need to do everything manually -- think when you start where you want to go
- next meeting in two weeks (may 20th) 09:00 CEST


From mirageos-devel-bounces@lists.xenproject.org Tue May 21 09:51:32 2024
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 21 May 2024 09:51:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.726715.1131060 (Exim 4.92)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1s9M9T-00037y-AJ; Tue, 21 May 2024 09:51:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 726715.1131060; Tue, 21 May 2024 09:51:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1s9M9T-00037r-6y; Tue, 21 May 2024 09:51:23 +0000
Received: by outflank-mailman (input) for mailman id 726715;
 Tue, 21 May 2024 09:51:22 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Fabl=MY=mehnert.org=hannes@srs-se1.protection.inumbo.net>)
 id 1s9M9R-00037k-Jw
 for mirageos-devel@lists.xenproject.org; Tue, 21 May 2024 09:51:22 +0000
Received: from mail.mehnert.org (mail.mehnert.org [213.73.89.200])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ac93f633-1757-11ef-909f-e314d9c70b13;
 Tue, 21 May 2024 11:51:20 +0200 (CEST)
Received: from [192.168.42.80] (i5C74C175.versanet.de [92.116.193.117])
 (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256
 client-signature RSA-PSS (2048 bits) client-digest SHA256)
 (Client CN "hannes@mehnert.org", Issuer "mehnert root CA" (not verified))
 by mail.mehnert.org (Postfix) with ESMTPS id F37097AE9
 for <mirageos-devel@lists.xenproject.org>;
 Tue, 21 May 2024 11:51:18 +0200 (CEST)
X-BeenThere: mirageos-devel@lists.xenproject.org
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/mirageos-devel>, 
 <mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/mirageos-devel>, 
 <mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: mirageos-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "MirageOS-devel" <mirageos-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ac93f633-1757-11ef-909f-e314d9c70b13
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mehnert.org; s=mail;
	t=1716285079; bh=iFs5yQY3tS/HozmrGlKBkj5m3vgswrPzFTLiOtdGHcc=;
	h=Date:From:Subject:To;
	b=PPxoax7V13Q1tSGse7JFqAhmFpK8ZYpHtb1CBelhWCOro5mkPH8k5xPmGJ/DLpYJA
	 tTMgYP3qwiqwncBoowpF2dOxLu1xzR+9GuNdT8IvWCNRSjcYcfoj91ead1RvaKkdsE
	 45aV8P3H8G4nPKN2TkC8X4dHPGmvjlWUKmjuLs4MvYrPGon/j2jTTwHnx7ePgcqUBZ
	 yCZfpCMbKHCE3n0wH/E92WnT509anlfmgVItuoJC6LDarPBJNJtn9Av2Tu39yPRE3t
	 eD/w4SkMBk3l5ikkw/RHfcePLQ+9+MBhbTuYfXzxm6doxCEnyKeKIrPeFD6cMfZfdX
	 D4TEeOvABvVOg==
Message-ID: <11bb0fc3-e97d-4a3c-b1a4-2961ddfcbf64@mehnert.org>
Date: Tue, 21 May 2024 11:51:18 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Hannes Mehnert <hannes@mehnert.org>
Subject: Next MirageOS meeting 2024-05-27
To: mirageos-devel@lists.xenproject.org
Content-Language: en-US
Autocrypt: addr=hannes@mehnert.org; keydata=
 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
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi everyone,

The next MirageOS community call will be Monday May 27th at 9:00-10:00 
CEST. 
https://www.timeanddate.com/worldclock/fixedtime.html?msg=MirageOS+call&iso=20240527T07&ah=1

As usual everyone is welcome to attend this bi-weekly meeting. The 
current agenda is here: https://pad.data.coop/wGS4r8RyTKqQ73mcw7FrwA

Feel free to add any additional items you'd like to discuss.
The Jitsi link for the meeting is https://meet.jit.si/mirageos-call

As last time, we may move to another video conferencing solution if 
jitsi doesn't work for us.


See you there,

Hannes


From mirageos-devel-bounces@lists.xenproject.org Mon May 27 10:57:35 2024
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 27 May 2024 10:57:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.730680.1135835 (Exim 4.92)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1sBY2h-00050C-1o; Mon, 27 May 2024 10:57:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 730680.1135835; Mon, 27 May 2024 10:57:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1sBY2g-000504-VB; Mon, 27 May 2024 10:57:26 +0000
Received: by outflank-mailman (input) for mailman id 730680;
 Mon, 27 May 2024 10:57:25 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=CyCT=M6=mehnert.org=hannes@srs-se1.protection.inumbo.net>)
 id 1sBY2e-0004zr-QI
 for mirageos-devel@lists.xenproject.org; Mon, 27 May 2024 10:57:25 +0000
Received: from mail.mehnert.org (mail.mehnert.org [213.73.89.200])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e3fa93f6-1c17-11ef-b4bb-af5377834399;
 Mon, 27 May 2024 12:57:20 +0200 (CEST)
Received: from [192.168.42.80] (i5C74C146.versanet.de [92.116.193.70])
 (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256
 client-signature RSA-PSS (2048 bits) client-digest SHA256)
 (Client CN "hannes@mehnert.org", Issuer "mehnert root CA" (not verified))
 by mail.mehnert.org (Postfix) with ESMTPS id DE109DC12
 for <mirageos-devel@lists.xenproject.org>;
 Mon, 27 May 2024 12:57:19 +0200 (CEST)
X-BeenThere: mirageos-devel@lists.xenproject.org
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/mirageos-devel>, 
 <mailto:mirageos-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:mirageos-devel@lists.xenproject.org>
List-Help: <mailto:mirageos-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/mirageos-devel>, 
 <mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: mirageos-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "MirageOS-devel" <mirageos-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e3fa93f6-1c17-11ef-b4bb-af5377834399
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mehnert.org; s=mail;
	t=1716807439; bh=e2O4jW51pMty4+XPRFivw46LmC0XKZXB3/xvjExP53Y=;
	h=Date:Subject:To:References:From:In-Reply-To;
	b=kNw7eQiV40tQ0ukOy4Tg9MTa7crY765Xgu8zjPAu0U6w7vXn3NORvbiZ44LXp7Vk7
	 cfL5U3kQC2bmWy8c4BfMt22Ogoa0h/BPIy/wy+pJq608y5Rcxv+Iyofm3dJtUBMN3h
	 fTp4l37uVJeXxWpPe83ygU4SWgT096HXcZ5ZsPwYtIal8Twqe3t634QVSiqQTXSQxp
	 Yr1KELw9+Zr5GGoc2h+YkYRBDa/sGx8RHMpVy32cPyYM7eb8bDAAvRdcQhAs4frUOE
	 V3lTbHFGrZVtHtEeJrCRjer92CR6inaiABfmA8BJkmATi1sWnoFALacH9/SvvIJVry
	 lUE4qCMaj+lrA==
Message-ID: <c8b546d9-1cd1-4000-8828-6366399ca584@mehnert.org>
Date: Mon, 27 May 2024 12:57:19 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Next MirageOS meeting 2024-06-10
To: mirageos-devel@lists.xenproject.org
References: <11bb0fc3-e97d-4a3c-b1a4-2961ddfcbf64@mehnert.org>
Content-Language: en-US
From: Hannes Mehnert <hannes@mehnert.org>
Autocrypt: addr=hannes@mehnert.org; keydata=
 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
In-Reply-To: <11bb0fc3-e97d-4a3c-b1a4-2961ddfcbf64@mehnert.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hello,

our next meeting is in two weeks, June 10th at 09:00 CEST 
(https://www.timeanddate.com/worldclock/fixedtime.html?msg=MirageOS+call&iso=20240610T07&ah=1)

As usual everyone is welcome to attend this bi-weekly meeting. The 
current agenda is here: https://pad.data.coop/wGS4r8RyTKqQ73mcw7FrwA

Feel free to add any additional items you'd like to discuss. The Jitsi 
link for the meeting is https://meet.jit.si/mirageos-call


The notes from today's meeting:
Participants: Pierre, Thomas G., Shakthi, Sabine, Hannes, Samuel

Agenda:
- mirage 4.5.0 and 4.5.1 released \o/
- the dune-variant approach for defunctorisation
- OCaml-solo5 goes OCaml 5.2
     - merge and add a branch for Ocaml 4.4?
- next meeting june 10th 09:00 CEST

Notes:
#### mirage 4.5
- Hannes: we have made a new release of Mirage!! Mirage 4.5 splits 
runtime and configuration time keys. 4.5.1 fixes a few bugs (and adds 
one breaking change). mirage-skeleton has been updated - all Hannes' 
unikernels as well. Mirage doesn't depend on mirage-runtime anymore. 
Summary: seems to work great!
- Pierre: qubes-mirage-firewall also uses mirage 4.5
- Thomas: 4.5 was released just before the retreat, so we had time to 
find some bugs in that

#### dune variants / defunctorisation
- Hannes: Lucas added dune variant in Dune when we released mirage4. The 
idea was to use this but we dropped the idea at the time. Investigated 
using dune variants instead of functors durung the retreat. The result: 
4.5.1 now uses dune variant for mirage-bootvar (used to be 4 
repositories! now just one that uses variants and works nicely). The 
code is much clearer: a single repo - easier to compare the various 
implementation for unix/xen/solo5. Bigger topic: could we generalise 
this to the entire network stack. Also for the time device. Hit a bug in 
Dune (https://github.com/ocaml/dune/issues/10460) - found a small repro 
case and reported to Dune. Rudi found a fix and Dune master is now 
fixed. How do we move forward now?
- mirage-time defunctorisation https://github.com/mirage/mirage/pull/1529
- Thomas: where to get rid of functors?
   - everywhere? at the application side, everything should be static
   - but when you write libraries, it is a bit unclear
   - also for testing
   - if you look at the file system / block device stack, you may need 
some flexibility here
   - it is useful to get rid of functors where we can
- Thomas: if there's a way to keep functors when we develop the 
libraries, but the exposed interface is very simple (no functor)
- Thomas: error messages -- if you're using Time, but forget the 
dependency, you get not so nice error messages
- Hannes:
     - Time/Clock/Random: no need for functor
     - mirage-net/ethernet/arp: no need for a functor
     - Block: CCM/partioning; VPN: also provide a network stack - here 
having a functor makes sense
- Thomas: we expose some internal complexity (what is functorised / what 
is not?) to the user - how to communicate to the user whether a device 
is functorised or not (put it on the extra_deps vs in the type (`@->`) 
and application (`$`))
- Hannes: maybe `extra_deps` is not the right thing -- since we want to 
depend only on `mirage-time` / `mirage-clock` with the target-specific 
implementation
   - Samuel: we can add a dependency on mirage-time / mirage-clock in 
all the unikernels
- Thomas: for the RNG it is a bit more complex, since we need to call 
the `initialize` function
- Samuel: maybe we could always link time and clock with the unikernel - 
everyone: good idea!
- Hannes: let's wait for the Dune release with the fix about dune 
variants - and make progress on time/clock!
- Pierre: this is a good move, but the mirage-block-ccm should stay as is :D
- Thomas: the question is where do we want this flexibility? Look at POSIX
    - Hannes: this is a great analogy - on UNIX systems we have tun/tap 
devices (for VPN etc.), and also block devices which support encryption 
-- so maybe at the device level it makes sense to have the abstraction

#### OCaml 5 + solo5
- https://github.com/mirage/ocaml-solo5/pull/134
- Samuel: the behaviour with the GC changed a lot in OCaml 5, someone 
has a good example to test a long-running unikernel?
- Hannes: maybe the retreat website, where we graph the memory usage 
(and thus have a comparison between last months and with OCaml 5)
- Samuel: didn't manage to compile mirage-www yet, stuck in opam-monorepo
   - Thomas will look into that issue this week
- Pierre: will swap his qubes-firewall to OCaml 5 this week, last week 
saw ~10-20% performance improvement with OCaml 5
- OCaml 5.2 supports compaction now, but we've to manually call 
`Gc.compact ()`
- Pierre: at the early OCaml 5 stages, each domain allocated 2MB stack - 
we set the maximum domains to 1 in ocaml-solo5
- Samuel: when ocaml-solo5 is built, it sets the number of domains to 1
- Pierre: solo5 already reserves 1MB for the global stack

#### MirageOS and Unikraft
- Samuel: there are small examples, currently quite a lot needs to be 
done manually
- Samuel: the question is who drives the build, unikraft wants to have 
control, mirage as well
- Samuel: we will need something like ocaml-unikraft (similar to 
ocaml-solo5), at the moment `musl` is used
- Samuel: there's some basic support for SMP in unikraft, but not yet 
enough for OCaml (scheduling)
- Samuel: from performance perspective, one thing that is interesting is 
the support of ring interfaces
- Thomas: the build system changes, we should talk with unikraft so that 
they're aware of what we do (and if they change stuff, we get informed)


