From mirageos-devel-bounces@lists.xenproject.org Sat Jan 02 12:07:30 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sat, 02 Jan 2016 12:07:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aFKxs-0004Wq-JS; Sat, 02 Jan 2016 12:07:20 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <talex5@gmail.com>) id 1aFKxq-0004Wl-RK
	for mirageos-devel@lists.xenproject.org; Sat, 02 Jan 2016 12:07:18 +0000
Received: from [85.158.139.211] by server-1.bemta-5.messagelabs.com id
	F9/4C-32615-67DB7865; Sat, 02 Jan 2016 12:07:18 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-11.tower-206.messagelabs.com!1451736436!13578447!1
X-Originating-IP: [209.85.213.47]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 59557 invoked from network); 2 Jan 2016 12:07:17 -0000
Received: from mail-vk0-f47.google.com (HELO mail-vk0-f47.google.com)
	(209.85.213.47)
	by server-11.tower-206.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 2 Jan 2016 12:07:17 -0000
Received: by mail-vk0-f47.google.com with SMTP id a188so232630627vkc.0
	for <mirageos-devel@lists.xenproject.org>;
	Sat, 02 Jan 2016 04:07:17 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:date:message-id:subject:from:to:content-type;
	bh=w+UtGX/X39k7moAkZA+UR4Al690qB2X+w7KT6741WCk=;
	b=V0k2lItVyUur6Pj+ckyRF4MJqfdqMxrMcCB+DFiR/HjnC2bOt/36R+4L4i+t+W7Lir
	nYYHRZw8cKiC8KhuGAwNxdtJ8c2r+1KtWpbJdVJ6WKuYIMBL1Gu4Sg1lvsGIeoxE4moD
	6C4wo8Ny5yArgJb98PuCAhoO554FB0HB/DlEXPz5PXbw9Mz0DxPWIdVQoMHXKyK9DFq1
	8b54DB+hM+tlvYbrats6AtUPANLZz9eNnuPArv7wSlHaMQyAEyLwmAmYyRJ2z8Nkqa/n
	2GwI6TjXehIaRdoHpxblDNm8WX0F/09161Vv2tSnbD5ceOSWZ/+r7yKszC+PVTAzu37D
	sLFA==
MIME-Version: 1.0
X-Received: by 10.31.129.11 with SMTP id c11mr48848802vkd.52.1451736436185;
	Sat, 02 Jan 2016 04:07:16 -0800 (PST)
Received: by 10.31.128.84 with HTTP; Sat, 2 Jan 2016 04:07:16 -0800 (PST)
Date: Sat, 2 Jan 2016 12:07:16 +0000
Message-ID: <CAG4opy_AC7SOMUJo3X2zhroeJiOVPqV5QHyeMzaoUkU5+RA3Vw@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: [MirageOS-devel] A Unikernel Firewall for QubesOS
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

I have a Mirage firewall running now under Qubes:

  http://roscidus.com/blog/blog/2016/01/01/a-unikernel-firewall-for-qubesos/

There are some things that need fixing though:

- I'm using an old version of mirage-nat, as the current version
requires Irmin. I think there were some plans to factor this out -
what's the status of this? I think only the new version has code to
expire entries, right?

- You need to generate an unused port for NAT. I copied simple-nat's
system of picking a random number and retrying but (as the TODO there
says) this will eventually run out of ports and hang. I assume we
should add some kind of free-port tracking to tcpip, right? pcb.ml's
getid has a better strategy of searching forward from the last port it
used, but it will also hang if it runs out (as noted by another TODO).
The UDP code doesn't seem to track free ports at all (fails with a
TODO if you ask it to pick a free one).

- I'm not sure what the protocol is for disconnecting netback clients.
Currently I just set the interface state to Closed, but the XenStore
directory in "backend/vif" remains - is this documented somewhere?

- Mirage allows you to access memory after unmapping it. This isn't
safe (may page-fault or give access to someone else's data). I've
added checks in mirage-net-xen to make sure we don't try to access a
ring after unmapping it [1], but I think this should be fixed at the
Bigarray level [2].

- mirage-nat doesn't do NAT for ICMP packets, so ping doesn't work yet.

- mirage-nat mutates packets in-place. It might be cleaner if it made
a copy instead (it could copy just the header and return [new_header;
old_payload]). Since mirage-net copies the data into the shared ring
anyway, there should be very little overhead to doing it this way.

- mirage-nat works on whole Ethernet frames. I believe NAT only
applies to the IP layer - it would make my code cleaner if I could
strip off the Ethernet header when the frame arrives and just work
with the IP layer. It might simplify the mirage-nat API too.

- I don't validate checksums on incoming packets, and always
recalculate after NAT before sending. We should probably track this
properly and support checksum offload. This will require an interface
change to NETWORK.

- I made some changes to mirage-nat (exposed checksum code in tcpip
and used that directly, and removed the unused "direction" argument as
it was confusing me). Might be useful to merge these upstream.


[1] https://github.com/mirage/mirage-net-xen/compare/master...talex5:disconnect?expand=1
[2] https://github.com/ocaml/ocaml/commit/af6f20ef0afc4f8ab9d3cc89042038b55930e09d

-- 
Dr Thomas Leonard        http://roscidus.com/blog/
GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Sat Jan 02 12:07:30 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sat, 02 Jan 2016 12:07:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aFKxs-0004Wq-JS; Sat, 02 Jan 2016 12:07:20 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <talex5@gmail.com>) id 1aFKxq-0004Wl-RK
	for mirageos-devel@lists.xenproject.org; Sat, 02 Jan 2016 12:07:18 +0000
Received: from [85.158.139.211] by server-1.bemta-5.messagelabs.com id
	F9/4C-32615-67DB7865; Sat, 02 Jan 2016 12:07:18 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-11.tower-206.messagelabs.com!1451736436!13578447!1
X-Originating-IP: [209.85.213.47]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 59557 invoked from network); 2 Jan 2016 12:07:17 -0000
Received: from mail-vk0-f47.google.com (HELO mail-vk0-f47.google.com)
	(209.85.213.47)
	by server-11.tower-206.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 2 Jan 2016 12:07:17 -0000
Received: by mail-vk0-f47.google.com with SMTP id a188so232630627vkc.0
	for <mirageos-devel@lists.xenproject.org>;
	Sat, 02 Jan 2016 04:07:17 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:date:message-id:subject:from:to:content-type;
	bh=w+UtGX/X39k7moAkZA+UR4Al690qB2X+w7KT6741WCk=;
	b=V0k2lItVyUur6Pj+ckyRF4MJqfdqMxrMcCB+DFiR/HjnC2bOt/36R+4L4i+t+W7Lir
	nYYHRZw8cKiC8KhuGAwNxdtJ8c2r+1KtWpbJdVJ6WKuYIMBL1Gu4Sg1lvsGIeoxE4moD
	6C4wo8Ny5yArgJb98PuCAhoO554FB0HB/DlEXPz5PXbw9Mz0DxPWIdVQoMHXKyK9DFq1
	8b54DB+hM+tlvYbrats6AtUPANLZz9eNnuPArv7wSlHaMQyAEyLwmAmYyRJ2z8Nkqa/n
	2GwI6TjXehIaRdoHpxblDNm8WX0F/09161Vv2tSnbD5ceOSWZ/+r7yKszC+PVTAzu37D
	sLFA==
MIME-Version: 1.0
X-Received: by 10.31.129.11 with SMTP id c11mr48848802vkd.52.1451736436185;
	Sat, 02 Jan 2016 04:07:16 -0800 (PST)
Received: by 10.31.128.84 with HTTP; Sat, 2 Jan 2016 04:07:16 -0800 (PST)
Date: Sat, 2 Jan 2016 12:07:16 +0000
Message-ID: <CAG4opy_AC7SOMUJo3X2zhroeJiOVPqV5QHyeMzaoUkU5+RA3Vw@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: [MirageOS-devel] A Unikernel Firewall for QubesOS
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

I have a Mirage firewall running now under Qubes:

  http://roscidus.com/blog/blog/2016/01/01/a-unikernel-firewall-for-qubesos/

There are some things that need fixing though:

- I'm using an old version of mirage-nat, as the current version
requires Irmin. I think there were some plans to factor this out -
what's the status of this? I think only the new version has code to
expire entries, right?

- You need to generate an unused port for NAT. I copied simple-nat's
system of picking a random number and retrying but (as the TODO there
says) this will eventually run out of ports and hang. I assume we
should add some kind of free-port tracking to tcpip, right? pcb.ml's
getid has a better strategy of searching forward from the last port it
used, but it will also hang if it runs out (as noted by another TODO).
The UDP code doesn't seem to track free ports at all (fails with a
TODO if you ask it to pick a free one).

- I'm not sure what the protocol is for disconnecting netback clients.
Currently I just set the interface state to Closed, but the XenStore
directory in "backend/vif" remains - is this documented somewhere?

- Mirage allows you to access memory after unmapping it. This isn't
safe (may page-fault or give access to someone else's data). I've
added checks in mirage-net-xen to make sure we don't try to access a
ring after unmapping it [1], but I think this should be fixed at the
Bigarray level [2].

- mirage-nat doesn't do NAT for ICMP packets, so ping doesn't work yet.

- mirage-nat mutates packets in-place. It might be cleaner if it made
a copy instead (it could copy just the header and return [new_header;
old_payload]). Since mirage-net copies the data into the shared ring
anyway, there should be very little overhead to doing it this way.

- mirage-nat works on whole Ethernet frames. I believe NAT only
applies to the IP layer - it would make my code cleaner if I could
strip off the Ethernet header when the frame arrives and just work
with the IP layer. It might simplify the mirage-nat API too.

- I don't validate checksums on incoming packets, and always
recalculate after NAT before sending. We should probably track this
properly and support checksum offload. This will require an interface
change to NETWORK.

- I made some changes to mirage-nat (exposed checksum code in tcpip
and used that directly, and removed the unused "direction" argument as
it was confusing me). Might be useful to merge these upstream.


[1] https://github.com/mirage/mirage-net-xen/compare/master...talex5:disconnect?expand=1
[2] https://github.com/ocaml/ocaml/commit/af6f20ef0afc4f8ab9d3cc89042038b55930e09d

-- 
Dr Thomas Leonard        http://roscidus.com/blog/
GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Sat Jan 02 12:14:58 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sat, 02 Jan 2016 12:14:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aFL5F-0004fN-Mx; Sat, 02 Jan 2016 12:14:57 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <anil@recoil.org>) id 1aFL5E-0004fI-Ih
	for mirageos-devel@lists.xenproject.org; Sat, 02 Jan 2016 12:14:56 +0000
Received: from [193.109.254.147] by server-2.bemta-14.messagelabs.com id
	76/AB-12889-F3FB7865; Sat, 02 Jan 2016 12:14:55 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-4.tower-27.messagelabs.com!1451736892!13327091!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=0.2 required=7.0 tests=RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 20717 invoked from network); 2 Jan 2016 12:14:52 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-4.tower-27.messagelabs.com with DHE-RSA-AES256-GCM-SHA384
	encrypted SMTP; 2 Jan 2016 12:14:52 -0000
Received: by bark.recoil.org (OpenSMTPD) with ESMTPSA id 96b4158c
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Sat, 2 Jan 2016 12:14:51 +0000 (GMT)
Mime-Version: 1.0 (Mac OS X Mail 9.1 \(3096.5\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <CAG4opy_AC7SOMUJo3X2zhroeJiOVPqV5QHyeMzaoUkU5+RA3Vw@mail.gmail.com>
Date: Sat, 2 Jan 2016 12:14:49 +0000
Message-Id: <5D5DE037-E183-4A3F-B2EA-B0488CE95FB3@recoil.org>
References: <CAG4opy_AC7SOMUJo3X2zhroeJiOVPqV5QHyeMzaoUkU5+RA3Vw@mail.gmail.com>
To: Thomas Leonard <talex5@gmail.com>
X-Mailer: Apple Mail (2.3096.5)
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] A Unikernel Firewall for QubesOS
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 2 Jan 2016, at 12:07, Thomas Leonard <talex5@gmail.com> wrote:
> 
> I have a Mirage firewall running now under Qubes:
> 
>  http://roscidus.com/blog/blog/2016/01/01/a-unikernel-firewall-for-qubesos/
> 

Awesome!

> There are some things that need fixing though:
> 
> - I'm using an old version of mirage-nat, as the current version
> requires Irmin. I think there were some plans to factor this out -
> what's the status of this? I think only the new version has code to
> expire entries, right?
> 
> - You need to generate an unused port for NAT. I copied simple-nat's
> system of picking a random number and retrying but (as the TODO there
> says) this will eventually run out of ports and hang. I assume we
> should add some kind of free-port tracking to tcpip, right? pcb.ml's
> getid has a better strategy of searching forward from the last port it
> used, but it will also hang if it runs out (as noted by another TODO).
> The UDP code doesn't seem to track free ports at all (fails with a
> TODO if you ask it to pick a free one).

Yes, we need a standalone free-port picking datastructure for a few things:
- udp source port selection
- tcp/ip source port selection
- ipv4 id selection also needs some form of non-repeating selector
  but we don't currently fragment outbound at the moment.

For randomising this, a linear congruential generator is what the
OpenBSD stack uses.

> 
> - I'm not sure what the protocol is for disconnecting netback clients.
> Currently I just set the interface state to Closed, but the XenStore
> directory in "backend/vif" remains - is this documented somewhere?

Good question, not sure.

> - Mirage allows you to access memory after unmapping it. This isn't
> safe (may page-fault or give access to someone else's data). I've
> added checks in mirage-net-xen to make sure we don't try to access a
> ring after unmapping it [1], but I think this should be fixed at the
> Bigarray level [2].
> 

Did that Bigarray patch get committed into OCaml 4.03dev?  I dont
have a checkout handy here and it's hard to map a commit to the 
associated PRs in the web UI.

> - mirage-nat doesn't do NAT for ICMP packets, so ping doesn't work yet.

Presumably this also means that UDP NAT doesnt work?

> - mirage-nat mutates packets in-place. It might be cleaner if it made
> a copy instead (it could copy just the header and return [new_header;
> old_payload]). Since mirage-net copies the data into the shared ring
> anyway, there should be very little overhead to doing it this way

> 
> - mirage-nat works on whole Ethernet frames. I believe NAT only
> applies to the IP layer - it would make my code cleaner if I could
> strip off the Ethernet header when the frame arrives and just work
> with the IP layer. It might simplify the mirage-nat API too.
> 
> - I don't validate checksums on incoming packets, and always
> recalculate after NAT before sending. We should probably track this
> properly and support checksum offload. This will require an interface
> change to NETWORK.

Yeah, there's a general need for feature flags to be added to the
NETWORK device interfaces...

Looking forward to trying this out on my Cubieboard at home soon!

Anil


_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Sat Jan 02 12:14:58 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sat, 02 Jan 2016 12:14:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aFL5F-0004fN-Mx; Sat, 02 Jan 2016 12:14:57 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <anil@recoil.org>) id 1aFL5E-0004fI-Ih
	for mirageos-devel@lists.xenproject.org; Sat, 02 Jan 2016 12:14:56 +0000
Received: from [193.109.254.147] by server-2.bemta-14.messagelabs.com id
	76/AB-12889-F3FB7865; Sat, 02 Jan 2016 12:14:55 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-4.tower-27.messagelabs.com!1451736892!13327091!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=0.2 required=7.0 tests=RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 20717 invoked from network); 2 Jan 2016 12:14:52 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-4.tower-27.messagelabs.com with DHE-RSA-AES256-GCM-SHA384
	encrypted SMTP; 2 Jan 2016 12:14:52 -0000
Received: by bark.recoil.org (OpenSMTPD) with ESMTPSA id 96b4158c
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Sat, 2 Jan 2016 12:14:51 +0000 (GMT)
Mime-Version: 1.0 (Mac OS X Mail 9.1 \(3096.5\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <CAG4opy_AC7SOMUJo3X2zhroeJiOVPqV5QHyeMzaoUkU5+RA3Vw@mail.gmail.com>
Date: Sat, 2 Jan 2016 12:14:49 +0000
Message-Id: <5D5DE037-E183-4A3F-B2EA-B0488CE95FB3@recoil.org>
References: <CAG4opy_AC7SOMUJo3X2zhroeJiOVPqV5QHyeMzaoUkU5+RA3Vw@mail.gmail.com>
To: Thomas Leonard <talex5@gmail.com>
X-Mailer: Apple Mail (2.3096.5)
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] A Unikernel Firewall for QubesOS
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 2 Jan 2016, at 12:07, Thomas Leonard <talex5@gmail.com> wrote:
> 
> I have a Mirage firewall running now under Qubes:
> 
>  http://roscidus.com/blog/blog/2016/01/01/a-unikernel-firewall-for-qubesos/
> 

Awesome!

> There are some things that need fixing though:
> 
> - I'm using an old version of mirage-nat, as the current version
> requires Irmin. I think there were some plans to factor this out -
> what's the status of this? I think only the new version has code to
> expire entries, right?
> 
> - You need to generate an unused port for NAT. I copied simple-nat's
> system of picking a random number and retrying but (as the TODO there
> says) this will eventually run out of ports and hang. I assume we
> should add some kind of free-port tracking to tcpip, right? pcb.ml's
> getid has a better strategy of searching forward from the last port it
> used, but it will also hang if it runs out (as noted by another TODO).
> The UDP code doesn't seem to track free ports at all (fails with a
> TODO if you ask it to pick a free one).

Yes, we need a standalone free-port picking datastructure for a few things:
- udp source port selection
- tcp/ip source port selection
- ipv4 id selection also needs some form of non-repeating selector
  but we don't currently fragment outbound at the moment.

For randomising this, a linear congruential generator is what the
OpenBSD stack uses.

> 
> - I'm not sure what the protocol is for disconnecting netback clients.
> Currently I just set the interface state to Closed, but the XenStore
> directory in "backend/vif" remains - is this documented somewhere?

Good question, not sure.

> - Mirage allows you to access memory after unmapping it. This isn't
> safe (may page-fault or give access to someone else's data). I've
> added checks in mirage-net-xen to make sure we don't try to access a
> ring after unmapping it [1], but I think this should be fixed at the
> Bigarray level [2].
> 

Did that Bigarray patch get committed into OCaml 4.03dev?  I dont
have a checkout handy here and it's hard to map a commit to the 
associated PRs in the web UI.

> - mirage-nat doesn't do NAT for ICMP packets, so ping doesn't work yet.

Presumably this also means that UDP NAT doesnt work?

> - mirage-nat mutates packets in-place. It might be cleaner if it made
> a copy instead (it could copy just the header and return [new_header;
> old_payload]). Since mirage-net copies the data into the shared ring
> anyway, there should be very little overhead to doing it this way

> 
> - mirage-nat works on whole Ethernet frames. I believe NAT only
> applies to the IP layer - it would make my code cleaner if I could
> strip off the Ethernet header when the frame arrives and just work
> with the IP layer. It might simplify the mirage-nat API too.
> 
> - I don't validate checksums on incoming packets, and always
> recalculate after NAT before sending. We should probably track this
> properly and support checksum offload. This will require an interface
> change to NETWORK.

Yeah, there's a general need for feature flags to be added to the
NETWORK device interfaces...

Looking forward to trying this out on my Cubieboard at home soon!

Anil


_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Sat Jan 02 14:38:51 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sat, 02 Jan 2016 14:38:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aFNKL-0006nH-Ud; Sat, 02 Jan 2016 14:38:41 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mindy@somerandomidiot.com>) id 1aFNKL-0006nC-3i
	for mirageos-devel@lists.xenproject.org; Sat, 02 Jan 2016 14:38:41 +0000
Received: from [85.158.139.211] by server-15.bemta-5.messagelabs.com id
	F4/AC-16870-0F0E7865; Sat, 02 Jan 2016 14:38:40 +0000
X-Env-Sender: mindy@somerandomidiot.com
X-Msg-Ref: server-5.tower-206.messagelabs.com!1451745486!13591508!1
X-Originating-IP: [217.70.183.198]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 50564 invoked from network); 2 Jan 2016 14:38:06 -0000
Received: from relay6-d.mail.gandi.net (HELO relay6-d.mail.gandi.net)
	(217.70.183.198)
	by server-5.tower-206.messagelabs.com with DHE-RSA-AES256-GCM-SHA384
	encrypted SMTP; 2 Jan 2016 14:38:06 -0000
Received: from mfilter29-d.gandi.net (mfilter29-d.gandi.net [217.70.178.160])
	by relay6-d.mail.gandi.net (Postfix) with ESMTP id 8F80CFB882
	for <mirageos-devel@lists.xenproject.org>;
	Sat,  2 Jan 2016 15:38:06 +0100 (CET)
X-Virus-Scanned: Debian amavisd-new at mfilter29-d.gandi.net
Received: from relay6-d.mail.gandi.net ([IPv6:::ffff:217.70.183.198])
	by mfilter29-d.gandi.net (mfilter29-d.gandi.net [::ffff:10.0.15.180])
	(amavisd-new, port 10024)
	with ESMTP id Vq69YQL75c_h for <mirageos-devel@lists.xenproject.org>;
	Sat,  2 Jan 2016 15:38:05 +0100 (CET)
X-Originating-IP: 81.134.29.229
Received: from [192.168.1.108] (host81-134-29-229.in-addr.btopenworld.com
	[81.134.29.229]) (Authenticated sender: guybrush@somerandomidiot.com)
	by relay6-d.mail.gandi.net (Postfix) with ESMTPSA id 0FB93FB881
	for <mirageos-devel@lists.xenproject.org>;
	Sat,  2 Jan 2016 15:38:04 +0100 (CET)
To: mirageos-devel@lists.xenproject.org
References: <CAG4opy_AC7SOMUJo3X2zhroeJiOVPqV5QHyeMzaoUkU5+RA3Vw@mail.gmail.com>
	<5D5DE037-E183-4A3F-B2EA-B0488CE95FB3@recoil.org>
From: Mindy <mindy@somerandomidiot.com>
Message-ID: <5687E017.2020807@somerandomidiot.com>
Date: Sat, 2 Jan 2016 14:35:03 +0000
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101
	Thunderbird/38.3.0
MIME-Version: 1.0
In-Reply-To: <5D5DE037-E183-4A3F-B2EA-B0488CE95FB3@recoil.org>
Subject: Re: [MirageOS-devel] A Unikernel Firewall for QubesOS
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 01/02/2016 12:14 PM, Anil Madhavapeddy wrote:
> On 2 Jan 2016, at 12:07, Thomas Leonard <talex5@gmail.com> wrote:
>> I have a Mirage firewall running now under Qubes:
>>
>>   http://roscidus.com/blog/blog/2016/01/01/a-unikernel-firewall-for-qubesos/
>>
> Awesome!

Seconded!  This is very cool; I look forward to using it myself. :)

>
>> There are some things that need fixing though:
>>
>> - I'm using an old version of mirage-nat, as the current version
>> requires Irmin. I think there were some plans to factor this out -
>> what's the status of this?

In progress.  I've been distracted by other things but hope to have it 
finished soon.  Having users for this library is a huge motivator, so in 
combination with the points you raise below mirage-nat is probably 
headed for a 1.0 re

>> I think only the new version has code to
>> expire entries, right?

Yes, but with some very stupid and broken logic; rather than doing 
anything intelligent with state tracking there's a simple 
wall-clock-based timeout with a much longer horizon for TCP connections 
than UDP ones.  It really ought to do something smarter before release.

>>
>> - You need to generate an unused port for NAT. I copied simple-nat's
>> system of picking a random number and retrying but (as the TODO there
>> says) this will eventually run out of ports and hang. I assume we
>> should add some kind of free-port tracking to tcpip, right? pcb.ml's
>> getid has a better strategy of searching forward from the last port it
>> used, but it will also hang if it runs out (as noted by another TODO).
>> The UDP code doesn't seem to track free ports at all (fails with a
>> TODO if you ask it to pick a free one).
> Yes, we need a standalone free-port picking datastructure for a few things:
> - udp source port selection
> - tcp/ip source port selection
> - ipv4 id selection also needs some form of non-repeating selector
>    but we don't currently fragment outbound at the moment.
>
> For randomising this, a linear congruential generator is what the
> OpenBSD stack uses.

Agreed with all above.

>
>> - I'm not sure what the protocol is for disconnecting netback clients.
>> Currently I just set the interface state to Closed, but the XenStore
>> directory in "backend/vif" remains - is this documented somewhere?
> Good question, not sure.
>
>> - Mirage allows you to access memory after unmapping it. This isn't
>> safe (may page-fault or give access to someone else's data). I've
>> added checks in mirage-net-xen to make sure we don't try to access a
>> ring after unmapping it [1], but I think this should be fixed at the
>> Bigarray level [2].
>>
> Did that Bigarray patch get committed into OCaml 4.03dev?  I dont
> have a checkout handy here and it's hard to map a commit to the
> associated PRs in the web UI.
>
>> - mirage-nat doesn't do NAT for ICMP packets, so ping doesn't work yet.
> Presumably this also means that UDP NAT doesnt work?
>

Since most firewalls implement default-drop for incoming packets which 
don't match a rule, most stacks are quite used to not receiving ICMP 
errors for attempted UDP connections that aren't to open ports.  Or 
possibly I misunderstand?  At any rate, mirage-nat creates rules for UDP 
connections and rewrites headers just as it does for TCP.

>> - mirage-nat mutates packets in-place. It might be cleaner if it made
>> a copy instead (it could copy just the header and return [new_header;
>> old_payload]). Since mirage-net copies the data into the shared ring
>> anyway, there should be very little overhead to doing it this way

I had assumed there would be high overhead to a copying approach, but 
what you say merits trying it out.  I agree that a copy would be cleaner.

>> - mirage-nat works on whole Ethernet frames. I believe NAT only
>> applies to the IP layer - it would make my code cleaner if I could
>> strip off the Ethernet header when the frame arrives and just work
>> with the IP layer. It might simplify the mirage-nat API too.

I'll think about this a bit.

>>
>> - I don't validate checksums on incoming packets, and always
>> recalculate after NAT before sending. We should probably track this
>> properly and support checksum offload. This will require an interface
>> change to NETWORK.
> Yeah, there's a general need for feature flags to be added to the
> NETWORK device interfaces...
>
> Looking forward to trying this out on my Cubieboard at home soon!
>
> Anil
>
>
> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel


_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Sat Jan 02 14:38:51 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sat, 02 Jan 2016 14:38:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aFNKL-0006nH-Ud; Sat, 02 Jan 2016 14:38:41 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mindy@somerandomidiot.com>) id 1aFNKL-0006nC-3i
	for mirageos-devel@lists.xenproject.org; Sat, 02 Jan 2016 14:38:41 +0000
Received: from [85.158.139.211] by server-15.bemta-5.messagelabs.com id
	F4/AC-16870-0F0E7865; Sat, 02 Jan 2016 14:38:40 +0000
X-Env-Sender: mindy@somerandomidiot.com
X-Msg-Ref: server-5.tower-206.messagelabs.com!1451745486!13591508!1
X-Originating-IP: [217.70.183.198]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 50564 invoked from network); 2 Jan 2016 14:38:06 -0000
Received: from relay6-d.mail.gandi.net (HELO relay6-d.mail.gandi.net)
	(217.70.183.198)
	by server-5.tower-206.messagelabs.com with DHE-RSA-AES256-GCM-SHA384
	encrypted SMTP; 2 Jan 2016 14:38:06 -0000
Received: from mfilter29-d.gandi.net (mfilter29-d.gandi.net [217.70.178.160])
	by relay6-d.mail.gandi.net (Postfix) with ESMTP id 8F80CFB882
	for <mirageos-devel@lists.xenproject.org>;
	Sat,  2 Jan 2016 15:38:06 +0100 (CET)
X-Virus-Scanned: Debian amavisd-new at mfilter29-d.gandi.net
Received: from relay6-d.mail.gandi.net ([IPv6:::ffff:217.70.183.198])
	by mfilter29-d.gandi.net (mfilter29-d.gandi.net [::ffff:10.0.15.180])
	(amavisd-new, port 10024)
	with ESMTP id Vq69YQL75c_h for <mirageos-devel@lists.xenproject.org>;
	Sat,  2 Jan 2016 15:38:05 +0100 (CET)
X-Originating-IP: 81.134.29.229
Received: from [192.168.1.108] (host81-134-29-229.in-addr.btopenworld.com
	[81.134.29.229]) (Authenticated sender: guybrush@somerandomidiot.com)
	by relay6-d.mail.gandi.net (Postfix) with ESMTPSA id 0FB93FB881
	for <mirageos-devel@lists.xenproject.org>;
	Sat,  2 Jan 2016 15:38:04 +0100 (CET)
To: mirageos-devel@lists.xenproject.org
References: <CAG4opy_AC7SOMUJo3X2zhroeJiOVPqV5QHyeMzaoUkU5+RA3Vw@mail.gmail.com>
	<5D5DE037-E183-4A3F-B2EA-B0488CE95FB3@recoil.org>
From: Mindy <mindy@somerandomidiot.com>
Message-ID: <5687E017.2020807@somerandomidiot.com>
Date: Sat, 2 Jan 2016 14:35:03 +0000
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101
	Thunderbird/38.3.0
MIME-Version: 1.0
In-Reply-To: <5D5DE037-E183-4A3F-B2EA-B0488CE95FB3@recoil.org>
Subject: Re: [MirageOS-devel] A Unikernel Firewall for QubesOS
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 01/02/2016 12:14 PM, Anil Madhavapeddy wrote:
> On 2 Jan 2016, at 12:07, Thomas Leonard <talex5@gmail.com> wrote:
>> I have a Mirage firewall running now under Qubes:
>>
>>   http://roscidus.com/blog/blog/2016/01/01/a-unikernel-firewall-for-qubesos/
>>
> Awesome!

Seconded!  This is very cool; I look forward to using it myself. :)

>
>> There are some things that need fixing though:
>>
>> - I'm using an old version of mirage-nat, as the current version
>> requires Irmin. I think there were some plans to factor this out -
>> what's the status of this?

In progress.  I've been distracted by other things but hope to have it 
finished soon.  Having users for this library is a huge motivator, so in 
combination with the points you raise below mirage-nat is probably 
headed for a 1.0 re

>> I think only the new version has code to
>> expire entries, right?

Yes, but with some very stupid and broken logic; rather than doing 
anything intelligent with state tracking there's a simple 
wall-clock-based timeout with a much longer horizon for TCP connections 
than UDP ones.  It really ought to do something smarter before release.

>>
>> - You need to generate an unused port for NAT. I copied simple-nat's
>> system of picking a random number and retrying but (as the TODO there
>> says) this will eventually run out of ports and hang. I assume we
>> should add some kind of free-port tracking to tcpip, right? pcb.ml's
>> getid has a better strategy of searching forward from the last port it
>> used, but it will also hang if it runs out (as noted by another TODO).
>> The UDP code doesn't seem to track free ports at all (fails with a
>> TODO if you ask it to pick a free one).
> Yes, we need a standalone free-port picking datastructure for a few things:
> - udp source port selection
> - tcp/ip source port selection
> - ipv4 id selection also needs some form of non-repeating selector
>    but we don't currently fragment outbound at the moment.
>
> For randomising this, a linear congruential generator is what the
> OpenBSD stack uses.

Agreed with all above.

>
>> - I'm not sure what the protocol is for disconnecting netback clients.
>> Currently I just set the interface state to Closed, but the XenStore
>> directory in "backend/vif" remains - is this documented somewhere?
> Good question, not sure.
>
>> - Mirage allows you to access memory after unmapping it. This isn't
>> safe (may page-fault or give access to someone else's data). I've
>> added checks in mirage-net-xen to make sure we don't try to access a
>> ring after unmapping it [1], but I think this should be fixed at the
>> Bigarray level [2].
>>
> Did that Bigarray patch get committed into OCaml 4.03dev?  I dont
> have a checkout handy here and it's hard to map a commit to the
> associated PRs in the web UI.
>
>> - mirage-nat doesn't do NAT for ICMP packets, so ping doesn't work yet.
> Presumably this also means that UDP NAT doesnt work?
>

Since most firewalls implement default-drop for incoming packets which 
don't match a rule, most stacks are quite used to not receiving ICMP 
errors for attempted UDP connections that aren't to open ports.  Or 
possibly I misunderstand?  At any rate, mirage-nat creates rules for UDP 
connections and rewrites headers just as it does for TCP.

>> - mirage-nat mutates packets in-place. It might be cleaner if it made
>> a copy instead (it could copy just the header and return [new_header;
>> old_payload]). Since mirage-net copies the data into the shared ring
>> anyway, there should be very little overhead to doing it this way

I had assumed there would be high overhead to a copying approach, but 
what you say merits trying it out.  I agree that a copy would be cleaner.

>> - mirage-nat works on whole Ethernet frames. I believe NAT only
>> applies to the IP layer - it would make my code cleaner if I could
>> strip off the Ethernet header when the frame arrives and just work
>> with the IP layer. It might simplify the mirage-nat API too.

I'll think about this a bit.

>>
>> - I don't validate checksums on incoming packets, and always
>> recalculate after NAT before sending. We should probably track this
>> properly and support checksum offload. This will require an interface
>> change to NETWORK.
> Yeah, there's a general need for feature flags to be added to the
> NETWORK device interfaces...
>
> Looking forward to trying this out on my Cubieboard at home soon!
>
> Anil
>
>
> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel


_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Sat Jan 02 14:58:48 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sat, 02 Jan 2016 14:58:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aFNdl-0007FM-8h; Sat, 02 Jan 2016 14:58:45 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <scott.dj@gmail.com>) id 1aFNdi-0007FH-Sf
	for mirageos-devel@lists.xenproject.org; Sat, 02 Jan 2016 14:58:43 +0000
Received: from [85.158.139.211] by server-2.bemta-5.messagelabs.com id
	C4/53-31450-2A5E7865; Sat, 02 Jan 2016 14:58:42 +0000
X-Env-Sender: scott.dj@gmail.com
X-Msg-Ref: server-9.tower-206.messagelabs.com!1451746717!13593786!1
X-Originating-IP: [74.125.82.42]
X-SpamReason: No, hits=0.9 required=7.0 tests=BODY_RANDOM_LONG,
	HTML_30_40,HTML_MESSAGE,RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 1712 invoked from network); 2 Jan 2016 14:58:37 -0000
Received: from mail-wm0-f42.google.com (HELO mail-wm0-f42.google.com)
	(74.125.82.42)
	by server-9.tower-206.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 2 Jan 2016 14:58:37 -0000
Received: by mail-wm0-f42.google.com with SMTP id l65so122138029wmf.1
	for <mirageos-devel@lists.xenproject.org>;
	Sat, 02 Jan 2016 06:58:37 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=Tho9fPP8YIcz+aJVLIqSmyvpptBR2zdB/xB+5uuvqbE=;
	b=EF4vRy+eqc41hI/+M22wIpDWyUUMmsECaMtEncaJjiOY4A7aVjd8on0t/LupfqZpOa
	VPqN+TsfhD0o30IbbGwtqMvDS5yfRoXmaAVcpcKBLDCDBJ9Y+385ZyL38wFsLluVl12u
	UAnzTi1iMpH9Y5FhHw8a8kpjbkyFdjmbP6NFfxCy0+Qgzw2IxeoRDdcoPhQZ1Hd+3eyo
	jQjUWI8t+2oED8GRalcuoMug/PEeFXqZlGQYnCM0j0AhuHi+8JsOQbbHR5IGrKEfLDt2
	ymXv6O/vqujKn6OvYzmU46lndgAEOVW+d8OSHa+bV66RTYH40vYS0NiW0EQw/v3vZqzH
	+vjg==
MIME-Version: 1.0
X-Received: by 10.194.48.106 with SMTP id k10mr34731457wjn.86.1451746717560;
	Sat, 02 Jan 2016 06:58:37 -0800 (PST)
Received: by 10.28.137.2 with HTTP; Sat, 2 Jan 2016 06:58:37 -0800 (PST)
In-Reply-To: <CAG4opy_AC7SOMUJo3X2zhroeJiOVPqV5QHyeMzaoUkU5+RA3Vw@mail.gmail.com>
References: <CAG4opy_AC7SOMUJo3X2zhroeJiOVPqV5QHyeMzaoUkU5+RA3Vw@mail.gmail.com>
Date: Sat, 2 Jan 2016 14:58:37 +0000
Message-ID: <CAG_esB1oxCJHfO1ZNn7+7eFLE-tbq8XpEb+T+u5vRP9ZhfyVBw@mail.gmail.com>
From: David Scott <scott.dj@gmail.com>
To: Thomas Leonard <talex5@gmail.com>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] A Unikernel Firewall for QubesOS
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============1534751786866448463=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============1534751786866448463==
Content-Type: multipart/alternative; boundary=047d7b86c8aa67791605285b1fdb

--047d7b86c8aa67791605285b1fdb
Content-Type: text/plain; charset=UTF-8

On Sat, Jan 2, 2016 at 12:07 PM, Thomas Leonard <talex5@gmail.com> wrote:

> I have a Mirage firewall running now under Qubes:
>
>
> http://roscidus.com/blog/blog/2016/01/01/a-unikernel-firewall-for-qubesos/
>
>
Excellent stuff!


> There are some things that need fixing though:
>
> - I'm using an old version of mirage-nat, as the current version
> requires Irmin. I think there were some plans to factor this out -
> what's the status of this? I think only the new version has code to
> expire entries, right?
>
> - You need to generate an unused port for NAT. I copied simple-nat's
> system of picking a random number and retrying but (as the TODO there
> says) this will eventually run out of ports and hang. I assume we
> should add some kind of free-port tracking to tcpip, right? pcb.ml's
> getid has a better strategy of searching forward from the last port it
> used, but it will also hang if it runs out (as noted by another TODO).
> The UDP code doesn't seem to track free ports at all (fails with a
> TODO if you ask it to pick a free one).
>
> - I'm not sure what the protocol is for disconnecting netback clients.
> Currently I just set the interface state to Closed, but the XenStore
> directory in "backend/vif" remains - is this documented somewhere?
>

I used to believe that the toolstack's job was to manage (create + destroy)
the backend/frontend directories in xenstore, and it was up to the backend
and frontend implementations to keep their important state somewhere safe
(i.e. not xenstore or in shared memory, where another party could modify it
and invalidate some invariant). For example if someone runs `xenstore-rm
<backend>` I imagined the backend would still remember its configuration
and would be able to clean up afterwards, and not leak.

However I think the policy changed in September, probably to accommodate
not-very-defensively-written backends:

https://github.com/mirage/xen/commit/546678c6a60f64fb186640460dfa69a837c8fba5

It looks like the driver domain now has to delete its own directory, when
it has finished using it.

BTW it just occurred to me that the Windows PV drivers perform an
interesting hotunplug-hotplug dance when they are first connected
(apparently this is caused by a strangeness of the Windows driver model).
To make this work we'll need to support the `online` backend key --
basically the frontend can initiate an unplug at any time, which should
cause the backend to close but not delete itself (because `online=1`). The
frontend can then plug itself back in. In the case of a toolstack-initiated
hot unplug, the toolstack will set `online=0` first, so the backend will
know it's safe to self-delete.

Cheers,
Dave



>
> - Mirage allows you to access memory after unmapping it. This isn't
> safe (may page-fault or give access to someone else's data). I've
> added checks in mirage-net-xen to make sure we don't try to access a
> ring after unmapping it [1], but I think this should be fixed at the
> Bigarray level [2].
>
> - mirage-nat doesn't do NAT for ICMP packets, so ping doesn't work yet.
>
> - mirage-nat mutates packets in-place. It might be cleaner if it made
> a copy instead (it could copy just the header and return [new_header;
> old_payload]). Since mirage-net copies the data into the shared ring
> anyway, there should be very little overhead to doing it this way.
>
> - mirage-nat works on whole Ethernet frames. I believe NAT only
> applies to the IP layer - it would make my code cleaner if I could
> strip off the Ethernet header when the frame arrives and just work
> with the IP layer. It might simplify the mirage-nat API too.
>
> - I don't validate checksums on incoming packets, and always
> recalculate after NAT before sending. We should probably track this
> properly and support checksum offload. This will require an interface
> change to NETWORK.
>
> - I made some changes to mirage-nat (exposed checksum code in tcpip
> and used that directly, and removed the unused "direction" argument as
> it was confusing me). Might be useful to merge these upstream.
>
>
> [1]
> https://github.com/mirage/mirage-net-xen/compare/master...talex5:disconnect?expand=1
> [2]
> https://github.com/ocaml/ocaml/commit/af6f20ef0afc4f8ab9d3cc89042038b55930e09d
>
> --
> Dr Thomas Leonard        http://roscidus.com/blog/
> GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA
>
> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>



-- 
Dave Scott

--047d7b86c8aa67791605285b1fdb
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Sat, Jan 2, 2016 at 12:07 PM, Thomas Leonard <span dir=3D"ltr">&lt;<=
a href=3D"mailto:talex5@gmail.com" target=3D"_blank">talex5@gmail.com</a>&g=
t;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0px 0=
px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);borde=
r-left-style:solid;padding-left:1ex">I have a Mirage firewall running now u=
nder Qubes:<br>
<br>
=C2=A0 <a href=3D"http://roscidus.com/blog/blog/2016/01/01/a-unikernel-fire=
wall-for-qubesos/" rel=3D"noreferrer" target=3D"_blank">http://roscidus.com=
/blog/blog/2016/01/01/a-unikernel-firewall-for-qubesos/</a><br>
<br></blockquote><div><br></div><div>Excellent stuff!</div><div>=C2=A0</div=
><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border=
-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;=
padding-left:1ex">
There are some things that need fixing though:<br>
<br>
- I&#39;m using an old version of mirage-nat, as the current version<br>
requires Irmin. I think there were some plans to factor this out -<br>
what&#39;s the status of this? I think only the new version has code to<br>
expire entries, right?<br>
<br>
- You need to generate an unused port for NAT. I copied simple-nat&#39;s<br=
>
system of picking a random number and retrying but (as the TODO there<br>
says) this will eventually run out of ports and hang. I assume we<br>
should add some kind of free-port tracking to tcpip, right? <a href=3D"http=
://pcb.ml" rel=3D"noreferrer" target=3D"_blank">pcb.ml</a>&#39;s<br>
getid has a better strategy of searching forward from the last port it<br>
used, but it will also hang if it runs out (as noted by another TODO).<br>
The UDP code doesn&#39;t seem to track free ports at all (fails with a<br>
TODO if you ask it to pick a free one).<br>
<br>
- I&#39;m not sure what the protocol is for disconnecting netback clients.<=
br>
Currently I just set the interface state to Closed, but the XenStore<br>
directory in &quot;backend/vif&quot; remains - is this documented somewhere=
?<br></blockquote><div><br></div><div>I used to believe that the toolstack&=
#39;s job was to manage (create + destroy) the backend/frontend directories=
 in xenstore, and it was up to the backend and frontend implementations to =
keep their important state somewhere safe (i.e. not xenstore or in shared m=
emory, where another party could modify it and invalidate some invariant). =
For example if someone runs `xenstore-rm &lt;backend&gt;` I imagined the ba=
ckend would still remember its configuration and would be able to clean up =
afterwards, and not leak.</div><div><br></div><div>However I think the poli=
cy changed in September, probably to accommodate not-very-defensively-writt=
en backends:</div><div><br></div><div><a href=3D"https://github.com/mirage/=
xen/commit/546678c6a60f64fb186640460dfa69a837c8fba5">https://github.com/mir=
age/xen/commit/546678c6a60f64fb186640460dfa69a837c8fba5</a><br></div><div><=
br></div><div>It looks like the driver domain now has to delete its own dir=
ectory, when it has finished using it.</div><div><br></div><div>BTW it just=
 occurred to me that the Windows PV drivers perform an interesting hotunplu=
g-hotplug dance when they are first connected (apparently this is caused by=
 a strangeness of the Windows driver model). To make this work we&#39;ll ne=
ed to support the `online` backend key -- basically the frontend can initia=
te an unplug at any time, which should cause the backend to close but not d=
elete itself (because `online=3D1`). The frontend can then plug itself back=
 in. In the case of a toolstack-initiated hot unplug, the toolstack will se=
t `online=3D0` first, so the backend will know it&#39;s safe to self-delete=
.</div><div><br></div><div>Cheers,</div><div>Dave</div><div><br></div><div>=
=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0=
.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-s=
tyle:solid;padding-left:1ex">
<br>
- Mirage allows you to access memory after unmapping it. This isn&#39;t<br>
safe (may page-fault or give access to someone else&#39;s data). I&#39;ve<b=
r>
added checks in mirage-net-xen to make sure we don&#39;t try to access a<br=
>
ring after unmapping it [1], but I think this should be fixed at the<br>
Bigarray level [2].<br>
<br>
- mirage-nat doesn&#39;t do NAT for ICMP packets, so ping doesn&#39;t work =
yet.<br>
<br>
- mirage-nat mutates packets in-place. It might be cleaner if it made<br>
a copy instead (it could copy just the header and return [new_header;<br>
old_payload]). Since mirage-net copies the data into the shared ring<br>
anyway, there should be very little overhead to doing it this way.<br>
<br>
- mirage-nat works on whole Ethernet frames. I believe NAT only<br>
applies to the IP layer - it would make my code cleaner if I could<br>
strip off the Ethernet header when the frame arrives and just work<br>
with the IP layer. It might simplify the mirage-nat API too.<br>
<br>
- I don&#39;t validate checksums on incoming packets, and always<br>
recalculate after NAT before sending. We should probably track this<br>
properly and support checksum offload. This will require an interface<br>
change to NETWORK.<br>
<br>
- I made some changes to mirage-nat (exposed checksum code in tcpip<br>
and used that directly, and removed the unused &quot;direction&quot; argume=
nt as<br>
it was confusing me). Might be useful to merge these upstream.<br>
<br>
<br>
[1] <a href=3D"https://github.com/mirage/mirage-net-xen/compare/master...ta=
lex5:disconnect?expand=3D1" rel=3D"noreferrer" target=3D"_blank">https://gi=
thub.com/mirage/mirage-net-xen/compare/master...talex5:disconnect?expand=3D=
1</a><br>
[2] <a href=3D"https://github.com/ocaml/ocaml/commit/af6f20ef0afc4f8ab9d3cc=
89042038b55930e09d" rel=3D"noreferrer" target=3D"_blank">https://github.com=
/ocaml/ocaml/commit/af6f20ef0afc4f8ab9d3cc89042038b55930e09d</a><br>
<span class=3D""><font color=3D"#888888"><br>
--<br>
Dr Thomas Leonard=C2=A0 =C2=A0 =C2=A0 =C2=A0 <a href=3D"http://roscidus.com=
/blog/" rel=3D"noreferrer" target=3D"_blank">http://roscidus.com/blog/</a><=
br>
GPG: DA98 25AE CAD0 8975 7CDA=C2=A0 BD8E 0713 3F96 CA74 D8BA<br>
<br>
_______________________________________________<br>
MirageOS-devel mailing list<br>
<a href=3D"mailto:MirageOS-devel@lists.xenproject.org">MirageOS-devel@lists=
.xenproject.org</a><br>
<a href=3D"http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-de=
vel" rel=3D"noreferrer" target=3D"_blank">http://lists.xenproject.org/cgi-b=
in/mailman/listinfo/mirageos-devel</a><br>
</font></span></blockquote></div><br><br clear=3D"all"><div><br></div>-- <b=
r><div class=3D"gmail_signature">Dave Scott</div>
</div></div>

--047d7b86c8aa67791605285b1fdb--


--===============1534751786866448463==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============1534751786866448463==--


From mirageos-devel-bounces@lists.xenproject.org Sat Jan 02 14:58:48 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sat, 02 Jan 2016 14:58:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aFNdl-0007FM-8h; Sat, 02 Jan 2016 14:58:45 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <scott.dj@gmail.com>) id 1aFNdi-0007FH-Sf
	for mirageos-devel@lists.xenproject.org; Sat, 02 Jan 2016 14:58:43 +0000
Received: from [85.158.139.211] by server-2.bemta-5.messagelabs.com id
	C4/53-31450-2A5E7865; Sat, 02 Jan 2016 14:58:42 +0000
X-Env-Sender: scott.dj@gmail.com
X-Msg-Ref: server-9.tower-206.messagelabs.com!1451746717!13593786!1
X-Originating-IP: [74.125.82.42]
X-SpamReason: No, hits=0.9 required=7.0 tests=BODY_RANDOM_LONG,
	HTML_30_40,HTML_MESSAGE,RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 1712 invoked from network); 2 Jan 2016 14:58:37 -0000
Received: from mail-wm0-f42.google.com (HELO mail-wm0-f42.google.com)
	(74.125.82.42)
	by server-9.tower-206.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 2 Jan 2016 14:58:37 -0000
Received: by mail-wm0-f42.google.com with SMTP id l65so122138029wmf.1
	for <mirageos-devel@lists.xenproject.org>;
	Sat, 02 Jan 2016 06:58:37 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=Tho9fPP8YIcz+aJVLIqSmyvpptBR2zdB/xB+5uuvqbE=;
	b=EF4vRy+eqc41hI/+M22wIpDWyUUMmsECaMtEncaJjiOY4A7aVjd8on0t/LupfqZpOa
	VPqN+TsfhD0o30IbbGwtqMvDS5yfRoXmaAVcpcKBLDCDBJ9Y+385ZyL38wFsLluVl12u
	UAnzTi1iMpH9Y5FhHw8a8kpjbkyFdjmbP6NFfxCy0+Qgzw2IxeoRDdcoPhQZ1Hd+3eyo
	jQjUWI8t+2oED8GRalcuoMug/PEeFXqZlGQYnCM0j0AhuHi+8JsOQbbHR5IGrKEfLDt2
	ymXv6O/vqujKn6OvYzmU46lndgAEOVW+d8OSHa+bV66RTYH40vYS0NiW0EQw/v3vZqzH
	+vjg==
MIME-Version: 1.0
X-Received: by 10.194.48.106 with SMTP id k10mr34731457wjn.86.1451746717560;
	Sat, 02 Jan 2016 06:58:37 -0800 (PST)
Received: by 10.28.137.2 with HTTP; Sat, 2 Jan 2016 06:58:37 -0800 (PST)
In-Reply-To: <CAG4opy_AC7SOMUJo3X2zhroeJiOVPqV5QHyeMzaoUkU5+RA3Vw@mail.gmail.com>
References: <CAG4opy_AC7SOMUJo3X2zhroeJiOVPqV5QHyeMzaoUkU5+RA3Vw@mail.gmail.com>
Date: Sat, 2 Jan 2016 14:58:37 +0000
Message-ID: <CAG_esB1oxCJHfO1ZNn7+7eFLE-tbq8XpEb+T+u5vRP9ZhfyVBw@mail.gmail.com>
From: David Scott <scott.dj@gmail.com>
To: Thomas Leonard <talex5@gmail.com>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] A Unikernel Firewall for QubesOS
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============1534751786866448463=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============1534751786866448463==
Content-Type: multipart/alternative; boundary=047d7b86c8aa67791605285b1fdb

--047d7b86c8aa67791605285b1fdb
Content-Type: text/plain; charset=UTF-8

On Sat, Jan 2, 2016 at 12:07 PM, Thomas Leonard <talex5@gmail.com> wrote:

> I have a Mirage firewall running now under Qubes:
>
>
> http://roscidus.com/blog/blog/2016/01/01/a-unikernel-firewall-for-qubesos/
>
>
Excellent stuff!


> There are some things that need fixing though:
>
> - I'm using an old version of mirage-nat, as the current version
> requires Irmin. I think there were some plans to factor this out -
> what's the status of this? I think only the new version has code to
> expire entries, right?
>
> - You need to generate an unused port for NAT. I copied simple-nat's
> system of picking a random number and retrying but (as the TODO there
> says) this will eventually run out of ports and hang. I assume we
> should add some kind of free-port tracking to tcpip, right? pcb.ml's
> getid has a better strategy of searching forward from the last port it
> used, but it will also hang if it runs out (as noted by another TODO).
> The UDP code doesn't seem to track free ports at all (fails with a
> TODO if you ask it to pick a free one).
>
> - I'm not sure what the protocol is for disconnecting netback clients.
> Currently I just set the interface state to Closed, but the XenStore
> directory in "backend/vif" remains - is this documented somewhere?
>

I used to believe that the toolstack's job was to manage (create + destroy)
the backend/frontend directories in xenstore, and it was up to the backend
and frontend implementations to keep their important state somewhere safe
(i.e. not xenstore or in shared memory, where another party could modify it
and invalidate some invariant). For example if someone runs `xenstore-rm
<backend>` I imagined the backend would still remember its configuration
and would be able to clean up afterwards, and not leak.

However I think the policy changed in September, probably to accommodate
not-very-defensively-written backends:

https://github.com/mirage/xen/commit/546678c6a60f64fb186640460dfa69a837c8fba5

It looks like the driver domain now has to delete its own directory, when
it has finished using it.

BTW it just occurred to me that the Windows PV drivers perform an
interesting hotunplug-hotplug dance when they are first connected
(apparently this is caused by a strangeness of the Windows driver model).
To make this work we'll need to support the `online` backend key --
basically the frontend can initiate an unplug at any time, which should
cause the backend to close but not delete itself (because `online=1`). The
frontend can then plug itself back in. In the case of a toolstack-initiated
hot unplug, the toolstack will set `online=0` first, so the backend will
know it's safe to self-delete.

Cheers,
Dave



>
> - Mirage allows you to access memory after unmapping it. This isn't
> safe (may page-fault or give access to someone else's data). I've
> added checks in mirage-net-xen to make sure we don't try to access a
> ring after unmapping it [1], but I think this should be fixed at the
> Bigarray level [2].
>
> - mirage-nat doesn't do NAT for ICMP packets, so ping doesn't work yet.
>
> - mirage-nat mutates packets in-place. It might be cleaner if it made
> a copy instead (it could copy just the header and return [new_header;
> old_payload]). Since mirage-net copies the data into the shared ring
> anyway, there should be very little overhead to doing it this way.
>
> - mirage-nat works on whole Ethernet frames. I believe NAT only
> applies to the IP layer - it would make my code cleaner if I could
> strip off the Ethernet header when the frame arrives and just work
> with the IP layer. It might simplify the mirage-nat API too.
>
> - I don't validate checksums on incoming packets, and always
> recalculate after NAT before sending. We should probably track this
> properly and support checksum offload. This will require an interface
> change to NETWORK.
>
> - I made some changes to mirage-nat (exposed checksum code in tcpip
> and used that directly, and removed the unused "direction" argument as
> it was confusing me). Might be useful to merge these upstream.
>
>
> [1]
> https://github.com/mirage/mirage-net-xen/compare/master...talex5:disconnect?expand=1
> [2]
> https://github.com/ocaml/ocaml/commit/af6f20ef0afc4f8ab9d3cc89042038b55930e09d
>
> --
> Dr Thomas Leonard        http://roscidus.com/blog/
> GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA
>
> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>



-- 
Dave Scott

--047d7b86c8aa67791605285b1fdb
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Sat, Jan 2, 2016 at 12:07 PM, Thomas Leonard <span dir=3D"ltr">&lt;<=
a href=3D"mailto:talex5@gmail.com" target=3D"_blank">talex5@gmail.com</a>&g=
t;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0px 0=
px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);borde=
r-left-style:solid;padding-left:1ex">I have a Mirage firewall running now u=
nder Qubes:<br>
<br>
=C2=A0 <a href=3D"http://roscidus.com/blog/blog/2016/01/01/a-unikernel-fire=
wall-for-qubesos/" rel=3D"noreferrer" target=3D"_blank">http://roscidus.com=
/blog/blog/2016/01/01/a-unikernel-firewall-for-qubesos/</a><br>
<br></blockquote><div><br></div><div>Excellent stuff!</div><div>=C2=A0</div=
><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border=
-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;=
padding-left:1ex">
There are some things that need fixing though:<br>
<br>
- I&#39;m using an old version of mirage-nat, as the current version<br>
requires Irmin. I think there were some plans to factor this out -<br>
what&#39;s the status of this? I think only the new version has code to<br>
expire entries, right?<br>
<br>
- You need to generate an unused port for NAT. I copied simple-nat&#39;s<br=
>
system of picking a random number and retrying but (as the TODO there<br>
says) this will eventually run out of ports and hang. I assume we<br>
should add some kind of free-port tracking to tcpip, right? <a href=3D"http=
://pcb.ml" rel=3D"noreferrer" target=3D"_blank">pcb.ml</a>&#39;s<br>
getid has a better strategy of searching forward from the last port it<br>
used, but it will also hang if it runs out (as noted by another TODO).<br>
The UDP code doesn&#39;t seem to track free ports at all (fails with a<br>
TODO if you ask it to pick a free one).<br>
<br>
- I&#39;m not sure what the protocol is for disconnecting netback clients.<=
br>
Currently I just set the interface state to Closed, but the XenStore<br>
directory in &quot;backend/vif&quot; remains - is this documented somewhere=
?<br></blockquote><div><br></div><div>I used to believe that the toolstack&=
#39;s job was to manage (create + destroy) the backend/frontend directories=
 in xenstore, and it was up to the backend and frontend implementations to =
keep their important state somewhere safe (i.e. not xenstore or in shared m=
emory, where another party could modify it and invalidate some invariant). =
For example if someone runs `xenstore-rm &lt;backend&gt;` I imagined the ba=
ckend would still remember its configuration and would be able to clean up =
afterwards, and not leak.</div><div><br></div><div>However I think the poli=
cy changed in September, probably to accommodate not-very-defensively-writt=
en backends:</div><div><br></div><div><a href=3D"https://github.com/mirage/=
xen/commit/546678c6a60f64fb186640460dfa69a837c8fba5">https://github.com/mir=
age/xen/commit/546678c6a60f64fb186640460dfa69a837c8fba5</a><br></div><div><=
br></div><div>It looks like the driver domain now has to delete its own dir=
ectory, when it has finished using it.</div><div><br></div><div>BTW it just=
 occurred to me that the Windows PV drivers perform an interesting hotunplu=
g-hotplug dance when they are first connected (apparently this is caused by=
 a strangeness of the Windows driver model). To make this work we&#39;ll ne=
ed to support the `online` backend key -- basically the frontend can initia=
te an unplug at any time, which should cause the backend to close but not d=
elete itself (because `online=3D1`). The frontend can then plug itself back=
 in. In the case of a toolstack-initiated hot unplug, the toolstack will se=
t `online=3D0` first, so the backend will know it&#39;s safe to self-delete=
.</div><div><br></div><div>Cheers,</div><div>Dave</div><div><br></div><div>=
=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0=
.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-s=
tyle:solid;padding-left:1ex">
<br>
- Mirage allows you to access memory after unmapping it. This isn&#39;t<br>
safe (may page-fault or give access to someone else&#39;s data). I&#39;ve<b=
r>
added checks in mirage-net-xen to make sure we don&#39;t try to access a<br=
>
ring after unmapping it [1], but I think this should be fixed at the<br>
Bigarray level [2].<br>
<br>
- mirage-nat doesn&#39;t do NAT for ICMP packets, so ping doesn&#39;t work =
yet.<br>
<br>
- mirage-nat mutates packets in-place. It might be cleaner if it made<br>
a copy instead (it could copy just the header and return [new_header;<br>
old_payload]). Since mirage-net copies the data into the shared ring<br>
anyway, there should be very little overhead to doing it this way.<br>
<br>
- mirage-nat works on whole Ethernet frames. I believe NAT only<br>
applies to the IP layer - it would make my code cleaner if I could<br>
strip off the Ethernet header when the frame arrives and just work<br>
with the IP layer. It might simplify the mirage-nat API too.<br>
<br>
- I don&#39;t validate checksums on incoming packets, and always<br>
recalculate after NAT before sending. We should probably track this<br>
properly and support checksum offload. This will require an interface<br>
change to NETWORK.<br>
<br>
- I made some changes to mirage-nat (exposed checksum code in tcpip<br>
and used that directly, and removed the unused &quot;direction&quot; argume=
nt as<br>
it was confusing me). Might be useful to merge these upstream.<br>
<br>
<br>
[1] <a href=3D"https://github.com/mirage/mirage-net-xen/compare/master...ta=
lex5:disconnect?expand=3D1" rel=3D"noreferrer" target=3D"_blank">https://gi=
thub.com/mirage/mirage-net-xen/compare/master...talex5:disconnect?expand=3D=
1</a><br>
[2] <a href=3D"https://github.com/ocaml/ocaml/commit/af6f20ef0afc4f8ab9d3cc=
89042038b55930e09d" rel=3D"noreferrer" target=3D"_blank">https://github.com=
/ocaml/ocaml/commit/af6f20ef0afc4f8ab9d3cc89042038b55930e09d</a><br>
<span class=3D""><font color=3D"#888888"><br>
--<br>
Dr Thomas Leonard=C2=A0 =C2=A0 =C2=A0 =C2=A0 <a href=3D"http://roscidus.com=
/blog/" rel=3D"noreferrer" target=3D"_blank">http://roscidus.com/blog/</a><=
br>
GPG: DA98 25AE CAD0 8975 7CDA=C2=A0 BD8E 0713 3F96 CA74 D8BA<br>
<br>
_______________________________________________<br>
MirageOS-devel mailing list<br>
<a href=3D"mailto:MirageOS-devel@lists.xenproject.org">MirageOS-devel@lists=
.xenproject.org</a><br>
<a href=3D"http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-de=
vel" rel=3D"noreferrer" target=3D"_blank">http://lists.xenproject.org/cgi-b=
in/mailman/listinfo/mirageos-devel</a><br>
</font></span></blockquote></div><br><br clear=3D"all"><div><br></div>-- <b=
r><div class=3D"gmail_signature">Dave Scott</div>
</div></div>

--047d7b86c8aa67791605285b1fdb--


--===============1534751786866448463==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============1534751786866448463==--


From mirageos-devel-bounces@lists.xenproject.org Sun Jan 03 10:39:14 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 03 Jan 2016 10:39:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aFg3y-0000Bx-ER; Sun, 03 Jan 2016 10:39:02 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <talex5@gmail.com>) id 1aFg3w-0000BW-2P
	for mirageos-devel@lists.xenproject.org; Sun, 03 Jan 2016 10:39:00 +0000
Received: from [85.158.137.68] by server-15.bemta-3.messagelabs.com id
	77/DA-12946-24AF8865; Sun, 03 Jan 2016 10:38:58 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-14.tower-31.messagelabs.com!1451817537!13634190!1
X-Originating-IP: [209.85.213.43]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 60804 invoked from network); 3 Jan 2016 10:38:57 -0000
Received: from mail-vk0-f43.google.com (HELO mail-vk0-f43.google.com)
	(209.85.213.43)
	by server-14.tower-31.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 3 Jan 2016 10:38:57 -0000
Received: by mail-vk0-f43.google.com with SMTP id k1so110734492vkb.2
	for <mirageos-devel@lists.xenproject.org>;
	Sun, 03 Jan 2016 02:38:57 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=YQ9ZAeK2dSdJllikwVXelshEN+CRERDN20w4GYX+O08=;
	b=q0ohDvx+ufwLFIcW2gFHtll7VttmecQk6B3wvpCxIVSztVOj1PLdH8zNuHGBePArXh
	f79s9vEFqKk3seSnNtgXU8Du9Fdzoek/+yyxTpomiHAwaaM2nwIJ+ckC5BT+M05MA9eU
	jBMqHdAlCwPNVCmbd5GpEm/VhLZVMZLnBNpcNusvA/AZKTSh46s0o5QzF/9wVnxUE70U
	JIZf3DXuOqd6ezMnl2pMcqjlw5XLnErDEfiVJVSDwmwetQmjKsNfAr8Un94O2BLbyjVE
	tYi2oLpcAWFFzBcYYVhl1c4/x97ZjPI/qFvOdEKkqypzXmUbWbXoQ6VVh+nuhpAiyXs+
	pSRg==
MIME-Version: 1.0
X-Received: by 10.31.168.205 with SMTP id r196mr57669534vke.120.1451817536596; 
	Sun, 03 Jan 2016 02:38:56 -0800 (PST)
Received: by 10.31.128.84 with HTTP; Sun, 3 Jan 2016 02:38:56 -0800 (PST)
In-Reply-To: <5687E017.2020807@somerandomidiot.com>
References: <CAG4opy_AC7SOMUJo3X2zhroeJiOVPqV5QHyeMzaoUkU5+RA3Vw@mail.gmail.com>
	<5D5DE037-E183-4A3F-B2EA-B0488CE95FB3@recoil.org>
	<5687E017.2020807@somerandomidiot.com>
Date: Sun, 3 Jan 2016 10:38:56 +0000
Message-ID: <CAG4opy-4_AM3FE7NQftuBTg7bMgAwJ612d-KmZC2hmJrSuf1-w@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Mindy <mindy@somerandomidiot.com>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] A Unikernel Firewall for QubesOS
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 2 January 2016 at 14:35, Mindy <mindy@somerandomidiot.com> wrote:
> On 01/02/2016 12:14 PM, Anil Madhavapeddy wrote:
>>
>> On 2 Jan 2016, at 12:07, Thomas Leonard <talex5@gmail.com> wrote:
>>>
>>> I have a Mirage firewall running now under Qubes:
>>>
>>>
>>> http://roscidus.com/blog/blog/2016/01/01/a-unikernel-firewall-for-qubesos/
>>>
>> Awesome!
>
>
> Seconded!  This is very cool; I look forward to using it myself. :)
>
>>
>>> There are some things that need fixing though:
>>>
>>> - I'm using an old version of mirage-nat, as the current version
>>> requires Irmin. I think there were some plans to factor this out -
>>> what's the status of this?
>
> In progress.  I've been distracted by other things but hope to have it
> finished soon.  Having users for this library is a huge motivator, so in
> combination with the points you raise below mirage-nat is probably headed
> for a 1.0 re

Great :-) Having this library saved me a huge amount of work!

>>> I think only the new version has code to
>>> expire entries, right?
>
>
> Yes, but with some very stupid and broken logic; rather than doing anything
> intelligent with state tracking there's a simple wall-clock-based timeout
> with a much longer horizon for TCP connections than UDP ones.  It really
> ought to do something smarter before release.

As a quick workaround, mirage-firewall now drops the entire NAT table
if it runs out of memory or takes too long to find a free port.

>>> - You need to generate an unused port for NAT. I copied simple-nat's
>>> system of picking a random number and retrying but (as the TODO there
>>> says) this will eventually run out of ports and hang. I assume we
>>> should add some kind of free-port tracking to tcpip, right? pcb.ml's
>>> getid has a better strategy of searching forward from the last port it
>>> used, but it will also hang if it runs out (as noted by another TODO).
>>> The UDP code doesn't seem to track free ports at all (fails with a
>>> TODO if you ask it to pick a free one).
>>
>> Yes, we need a standalone free-port picking datastructure for a few
>> things:
>> - udp source port selection
>> - tcp/ip source port selection
>> - ipv4 id selection also needs some form of non-repeating selector
>>    but we don't currently fragment outbound at the moment.
>>
>> For randomising this, a linear congruential generator is what the
>> OpenBSD stack uses.
>
>
> Agreed with all above.
>
>>
>>> - I'm not sure what the protocol is for disconnecting netback clients.
>>> Currently I just set the interface state to Closed, but the XenStore
>>> directory in "backend/vif" remains - is this documented somewhere?
>>
>> Good question, not sure.
>>
>>> - Mirage allows you to access memory after unmapping it. This isn't
>>> safe (may page-fault or give access to someone else's data). I've
>>> added checks in mirage-net-xen to make sure we don't try to access a
>>> ring after unmapping it [1], but I think this should be fixed at the
>>> Bigarray level [2].
>>>
>> Did that Bigarray patch get committed into OCaml 4.03dev?  I dont
>> have a checkout handy here and it's hard to map a commit to the
>> associated PRs in the web UI.

I haven't submitted a PR yet. Need to update it to master and test.

>>> - mirage-nat doesn't do NAT for ICMP packets, so ping doesn't work yet.
>>
>> Presumably this also means that UDP NAT doesnt work?

UDP NAT seems to be working fine. mirage-firewall uses it to redirect
DNS requests.

> Since most firewalls implement default-drop for incoming packets which don't
> match a rule, most stacks are quite used to not receiving ICMP errors for
> attempted UDP connections that aren't to open ports.  Or possibly I
> misunderstand?  At any rate, mirage-nat creates rules for UDP connections
> and rewrites headers just as it does for TCP.
>
>>> - mirage-nat mutates packets in-place. It might be cleaner if it made
>>> a copy instead (it could copy just the header and return [new_header;
>>> old_payload]). Since mirage-net copies the data into the shared ring
>>> anyway, there should be very little overhead to doing it this way
>
> I had assumed there would be high overhead to a copying approach, but what
> you say merits trying it out.  I agree that a copy would be cleaner.
>
>>> - mirage-nat works on whole Ethernet frames. I believe NAT only
>>> applies to the IP layer - it would make my code cleaner if I could
>>> strip off the Ethernet header when the frame arrives and just work
>>> with the IP layer. It might simplify the mirage-nat API too.
>
> I'll think about this a bit.
>
>>> - I don't validate checksums on incoming packets, and always
>>> recalculate after NAT before sending. We should probably track this
>>> properly and support checksum offload. This will require an interface
>>> change to NETWORK.
>>
>> Yeah, there's a general need for feature flags to be added to the
>> NETWORK device interfaces...
>>
>> Looking forward to trying this out on my Cubieboard at home soon!


-- 
Dr Thomas Leonard        http://roscidus.com/blog/
GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Sun Jan 03 10:39:14 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 03 Jan 2016 10:39:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aFg3y-0000Bx-ER; Sun, 03 Jan 2016 10:39:02 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <talex5@gmail.com>) id 1aFg3w-0000BW-2P
	for mirageos-devel@lists.xenproject.org; Sun, 03 Jan 2016 10:39:00 +0000
Received: from [85.158.137.68] by server-15.bemta-3.messagelabs.com id
	77/DA-12946-24AF8865; Sun, 03 Jan 2016 10:38:58 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-14.tower-31.messagelabs.com!1451817537!13634190!1
X-Originating-IP: [209.85.213.43]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 60804 invoked from network); 3 Jan 2016 10:38:57 -0000
Received: from mail-vk0-f43.google.com (HELO mail-vk0-f43.google.com)
	(209.85.213.43)
	by server-14.tower-31.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 3 Jan 2016 10:38:57 -0000
Received: by mail-vk0-f43.google.com with SMTP id k1so110734492vkb.2
	for <mirageos-devel@lists.xenproject.org>;
	Sun, 03 Jan 2016 02:38:57 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=YQ9ZAeK2dSdJllikwVXelshEN+CRERDN20w4GYX+O08=;
	b=q0ohDvx+ufwLFIcW2gFHtll7VttmecQk6B3wvpCxIVSztVOj1PLdH8zNuHGBePArXh
	f79s9vEFqKk3seSnNtgXU8Du9Fdzoek/+yyxTpomiHAwaaM2nwIJ+ckC5BT+M05MA9eU
	jBMqHdAlCwPNVCmbd5GpEm/VhLZVMZLnBNpcNusvA/AZKTSh46s0o5QzF/9wVnxUE70U
	JIZf3DXuOqd6ezMnl2pMcqjlw5XLnErDEfiVJVSDwmwetQmjKsNfAr8Un94O2BLbyjVE
	tYi2oLpcAWFFzBcYYVhl1c4/x97ZjPI/qFvOdEKkqypzXmUbWbXoQ6VVh+nuhpAiyXs+
	pSRg==
MIME-Version: 1.0
X-Received: by 10.31.168.205 with SMTP id r196mr57669534vke.120.1451817536596; 
	Sun, 03 Jan 2016 02:38:56 -0800 (PST)
Received: by 10.31.128.84 with HTTP; Sun, 3 Jan 2016 02:38:56 -0800 (PST)
In-Reply-To: <5687E017.2020807@somerandomidiot.com>
References: <CAG4opy_AC7SOMUJo3X2zhroeJiOVPqV5QHyeMzaoUkU5+RA3Vw@mail.gmail.com>
	<5D5DE037-E183-4A3F-B2EA-B0488CE95FB3@recoil.org>
	<5687E017.2020807@somerandomidiot.com>
Date: Sun, 3 Jan 2016 10:38:56 +0000
Message-ID: <CAG4opy-4_AM3FE7NQftuBTg7bMgAwJ612d-KmZC2hmJrSuf1-w@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Mindy <mindy@somerandomidiot.com>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] A Unikernel Firewall for QubesOS
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 2 January 2016 at 14:35, Mindy <mindy@somerandomidiot.com> wrote:
> On 01/02/2016 12:14 PM, Anil Madhavapeddy wrote:
>>
>> On 2 Jan 2016, at 12:07, Thomas Leonard <talex5@gmail.com> wrote:
>>>
>>> I have a Mirage firewall running now under Qubes:
>>>
>>>
>>> http://roscidus.com/blog/blog/2016/01/01/a-unikernel-firewall-for-qubesos/
>>>
>> Awesome!
>
>
> Seconded!  This is very cool; I look forward to using it myself. :)
>
>>
>>> There are some things that need fixing though:
>>>
>>> - I'm using an old version of mirage-nat, as the current version
>>> requires Irmin. I think there were some plans to factor this out -
>>> what's the status of this?
>
> In progress.  I've been distracted by other things but hope to have it
> finished soon.  Having users for this library is a huge motivator, so in
> combination with the points you raise below mirage-nat is probably headed
> for a 1.0 re

Great :-) Having this library saved me a huge amount of work!

>>> I think only the new version has code to
>>> expire entries, right?
>
>
> Yes, but with some very stupid and broken logic; rather than doing anything
> intelligent with state tracking there's a simple wall-clock-based timeout
> with a much longer horizon for TCP connections than UDP ones.  It really
> ought to do something smarter before release.

As a quick workaround, mirage-firewall now drops the entire NAT table
if it runs out of memory or takes too long to find a free port.

>>> - You need to generate an unused port for NAT. I copied simple-nat's
>>> system of picking a random number and retrying but (as the TODO there
>>> says) this will eventually run out of ports and hang. I assume we
>>> should add some kind of free-port tracking to tcpip, right? pcb.ml's
>>> getid has a better strategy of searching forward from the last port it
>>> used, but it will also hang if it runs out (as noted by another TODO).
>>> The UDP code doesn't seem to track free ports at all (fails with a
>>> TODO if you ask it to pick a free one).
>>
>> Yes, we need a standalone free-port picking datastructure for a few
>> things:
>> - udp source port selection
>> - tcp/ip source port selection
>> - ipv4 id selection also needs some form of non-repeating selector
>>    but we don't currently fragment outbound at the moment.
>>
>> For randomising this, a linear congruential generator is what the
>> OpenBSD stack uses.
>
>
> Agreed with all above.
>
>>
>>> - I'm not sure what the protocol is for disconnecting netback clients.
>>> Currently I just set the interface state to Closed, but the XenStore
>>> directory in "backend/vif" remains - is this documented somewhere?
>>
>> Good question, not sure.
>>
>>> - Mirage allows you to access memory after unmapping it. This isn't
>>> safe (may page-fault or give access to someone else's data). I've
>>> added checks in mirage-net-xen to make sure we don't try to access a
>>> ring after unmapping it [1], but I think this should be fixed at the
>>> Bigarray level [2].
>>>
>> Did that Bigarray patch get committed into OCaml 4.03dev?  I dont
>> have a checkout handy here and it's hard to map a commit to the
>> associated PRs in the web UI.

I haven't submitted a PR yet. Need to update it to master and test.

>>> - mirage-nat doesn't do NAT for ICMP packets, so ping doesn't work yet.
>>
>> Presumably this also means that UDP NAT doesnt work?

UDP NAT seems to be working fine. mirage-firewall uses it to redirect
DNS requests.

> Since most firewalls implement default-drop for incoming packets which don't
> match a rule, most stacks are quite used to not receiving ICMP errors for
> attempted UDP connections that aren't to open ports.  Or possibly I
> misunderstand?  At any rate, mirage-nat creates rules for UDP connections
> and rewrites headers just as it does for TCP.
>
>>> - mirage-nat mutates packets in-place. It might be cleaner if it made
>>> a copy instead (it could copy just the header and return [new_header;
>>> old_payload]). Since mirage-net copies the data into the shared ring
>>> anyway, there should be very little overhead to doing it this way
>
> I had assumed there would be high overhead to a copying approach, but what
> you say merits trying it out.  I agree that a copy would be cleaner.
>
>>> - mirage-nat works on whole Ethernet frames. I believe NAT only
>>> applies to the IP layer - it would make my code cleaner if I could
>>> strip off the Ethernet header when the frame arrives and just work
>>> with the IP layer. It might simplify the mirage-nat API too.
>
> I'll think about this a bit.
>
>>> - I don't validate checksums on incoming packets, and always
>>> recalculate after NAT before sending. We should probably track this
>>> properly and support checksum offload. This will require an interface
>>> change to NETWORK.
>>
>> Yeah, there's a general need for feature flags to be added to the
>> NETWORK device interfaces...
>>
>> Looking forward to trying this out on my Cubieboard at home soon!


-- 
Dr Thomas Leonard        http://roscidus.com/blog/
GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Mon Jan 04 12:27:36 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 04 Jan 2016 12:27:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aG4ER-0006pQ-AS; Mon, 04 Jan 2016 12:27:27 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <anil@recoil.org>) id 1aG4EP-0006pK-Vy
	for mirageos-devel@lists.xenproject.org; Mon, 04 Jan 2016 12:27:26 +0000
Received: from [85.158.143.35] by server-2.bemta-4.messagelabs.com id
	83/6B-27104-D256A865; Mon, 04 Jan 2016 12:27:25 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-16.tower-21.messagelabs.com!1451910444!3900566!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=0.2 required=7.0 tests=RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 11775 invoked from network); 4 Jan 2016 12:27:24 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-16.tower-21.messagelabs.com with DHE-RSA-AES256-GCM-SHA384
	encrypted SMTP; 4 Jan 2016 12:27:24 -0000
Received: from bark.recoil.org (localhost [127.0.0.1])
	by bark.recoil.org (OpenSMTPD) with ESMTP id 1453c365;
	Mon, 4 Jan 2016 12:27:23 +0000 (GMT)
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=recoil.org; h=content-type
	:mime-version:subject:from:in-reply-to:date:cc
	:content-transfer-encoding:message-id:references:to; s=
	selector1; bh=MJvcUWjAvaUwvQTqqFIJXyjKccM=; b=BzdbF50eIHCeDx7LVQ
	6HO3aKcyYzV8sfx+GpK6kIa15ynYYXQve5WtpYB7WTjIMcEgM77ZOxKvjDf02UUG
	mSfswfuntEWtaszh3EuF6uEwbIgyos8NnkzGHrBFD9Pmf8PvLPYXuUaQcV6Hg89v
	2HgAyzj/KIn6bkTBD112bn96I=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=recoil.org; h=content-type
	:mime-version:subject:from:in-reply-to:date:cc
	:content-transfer-encoding:message-id:references:to; q=dns; s=
	selector1; b=EsUB7Tb7Mm+OxX8QBpreG6BnAzFx67pc+Ez4JS6mr9isLPvidT6
	GstGU2ZDfkHyLD7iERWAFXFfYyL5p+bGnjr7rQ/s/wDf7qlUdTUPdtMGHNunqurt
	/LKGmAE0T/Gtdf4bvZNZQvLUplpNfs3DhnkpF3Xs0MQ+SCH456rsb2Sk=
Received: by bark.recoil.org (OpenSMTPD) with ESMTPSA id c046b084
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Mon, 4 Jan 2016 12:27:23 +0000 (GMT)
Mime-Version: 1.0 (Mac OS X Mail 9.1 \(3096.5\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <20160104121514.GB906@nodbug.lucina.net>
Date: Mon, 4 Jan 2016 12:27:20 +0000
Message-Id: <9FD6403E-920C-44BE-AAE2-976B14D200A4@recoil.org>
References: <20151221142552.GA5387@nodbug.lucina.net> <567FC653.9060605@iki.fi>
	<20151227191025.GA10060@nodbug.lucina.net>
	<56853624.2080802@iki.fi> <20160104121514.GB906@nodbug.lucina.net>
To: martin@lucina.net
X-Mailer: Apple Mail (2.3096.5)
Cc: rumpkernel-users <rumpkernel-users@freelists.org>,
	mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] [RFC/PULL]: Rumprun configuration
	specification and rototill
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 4 Jan 2016, at 12:15, Martin Lucina <martin@lucina.net> wrote:
> 
> If I have a Mirage/Rumprun hybrid unikernel (whether using -k or not,
> irrelevant) and I would like Rumprun to mount some block devices, but
> Mirage to handle the network stack, can I express this using a single
> JSON configuration?
> 
> I've not thought about this enough, but it would seem to imply that Rumprun
> config would handle "fs", but not "net", which would be passed to Mirage
> somehow. A strawman of how this could work:
> 
> 1) We would need to specify the method that rumprun uses to pass the
> configuration on to the application. This could be as simple as writing it
> out to "/config.json".
> 
> 2) In a hybrid unikernel as described above, presumably -lrumpnet_netinet
> and -lrumpnet_netinet6 would not be linked in. This would have to be
> exposed to config.c somehow (through a data structure with a list of
> baked-in components at rumprun-bake time?), and on this basis (no netinet),
> config.c would not handle those parts of the configuration.
> 
> I may be completely off on the wrong track here -- would appreciate input
> from the Mirage (and other?) unikernel folks on this list. This would also
> be a good discussion to have on the "cross-project" unikernel.org once the
> discourse.org setup there is complete.

It sounds to me like this is a map function over the configuration: you
want to pass the JSON tree to a function that descends over the various
nodes that convert the configuration into a concrete (device_tree,linker)
tuple.

The output of this could then grabbed by the linker or domain builder in
order to satisfy their particular jobs.  Bear in mind that Mirage or
HalVM may also want their own linking flags that are OCaml- or Haskell-
specific as well.

So if Mirage provided a set of command-line binaries that accepted
a JSON configuration fragment for just the network and storage setup,
and rumprun have the ability to shell out to them to delegate a portion
of the configuration, that might be a nice way to glue different toolchains
together...?

(Assuming I've understood rumprun's role in this correctly as the main
entrypoint command).

-anil

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Mon Jan 04 12:27:36 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 04 Jan 2016 12:27:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aG4ER-0006pQ-AS; Mon, 04 Jan 2016 12:27:27 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <anil@recoil.org>) id 1aG4EP-0006pK-Vy
	for mirageos-devel@lists.xenproject.org; Mon, 04 Jan 2016 12:27:26 +0000
Received: from [85.158.143.35] by server-2.bemta-4.messagelabs.com id
	83/6B-27104-D256A865; Mon, 04 Jan 2016 12:27:25 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-16.tower-21.messagelabs.com!1451910444!3900566!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=0.2 required=7.0 tests=RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 11775 invoked from network); 4 Jan 2016 12:27:24 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-16.tower-21.messagelabs.com with DHE-RSA-AES256-GCM-SHA384
	encrypted SMTP; 4 Jan 2016 12:27:24 -0000
Received: from bark.recoil.org (localhost [127.0.0.1])
	by bark.recoil.org (OpenSMTPD) with ESMTP id 1453c365;
	Mon, 4 Jan 2016 12:27:23 +0000 (GMT)
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=recoil.org; h=content-type
	:mime-version:subject:from:in-reply-to:date:cc
	:content-transfer-encoding:message-id:references:to; s=
	selector1; bh=MJvcUWjAvaUwvQTqqFIJXyjKccM=; b=BzdbF50eIHCeDx7LVQ
	6HO3aKcyYzV8sfx+GpK6kIa15ynYYXQve5WtpYB7WTjIMcEgM77ZOxKvjDf02UUG
	mSfswfuntEWtaszh3EuF6uEwbIgyos8NnkzGHrBFD9Pmf8PvLPYXuUaQcV6Hg89v
	2HgAyzj/KIn6bkTBD112bn96I=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=recoil.org; h=content-type
	:mime-version:subject:from:in-reply-to:date:cc
	:content-transfer-encoding:message-id:references:to; q=dns; s=
	selector1; b=EsUB7Tb7Mm+OxX8QBpreG6BnAzFx67pc+Ez4JS6mr9isLPvidT6
	GstGU2ZDfkHyLD7iERWAFXFfYyL5p+bGnjr7rQ/s/wDf7qlUdTUPdtMGHNunqurt
	/LKGmAE0T/Gtdf4bvZNZQvLUplpNfs3DhnkpF3Xs0MQ+SCH456rsb2Sk=
Received: by bark.recoil.org (OpenSMTPD) with ESMTPSA id c046b084
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Mon, 4 Jan 2016 12:27:23 +0000 (GMT)
Mime-Version: 1.0 (Mac OS X Mail 9.1 \(3096.5\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <20160104121514.GB906@nodbug.lucina.net>
Date: Mon, 4 Jan 2016 12:27:20 +0000
Message-Id: <9FD6403E-920C-44BE-AAE2-976B14D200A4@recoil.org>
References: <20151221142552.GA5387@nodbug.lucina.net> <567FC653.9060605@iki.fi>
	<20151227191025.GA10060@nodbug.lucina.net>
	<56853624.2080802@iki.fi> <20160104121514.GB906@nodbug.lucina.net>
To: martin@lucina.net
X-Mailer: Apple Mail (2.3096.5)
Cc: rumpkernel-users <rumpkernel-users@freelists.org>,
	mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] [RFC/PULL]: Rumprun configuration
	specification and rototill
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 4 Jan 2016, at 12:15, Martin Lucina <martin@lucina.net> wrote:
> 
> If I have a Mirage/Rumprun hybrid unikernel (whether using -k or not,
> irrelevant) and I would like Rumprun to mount some block devices, but
> Mirage to handle the network stack, can I express this using a single
> JSON configuration?
> 
> I've not thought about this enough, but it would seem to imply that Rumprun
> config would handle "fs", but not "net", which would be passed to Mirage
> somehow. A strawman of how this could work:
> 
> 1) We would need to specify the method that rumprun uses to pass the
> configuration on to the application. This could be as simple as writing it
> out to "/config.json".
> 
> 2) In a hybrid unikernel as described above, presumably -lrumpnet_netinet
> and -lrumpnet_netinet6 would not be linked in. This would have to be
> exposed to config.c somehow (through a data structure with a list of
> baked-in components at rumprun-bake time?), and on this basis (no netinet),
> config.c would not handle those parts of the configuration.
> 
> I may be completely off on the wrong track here -- would appreciate input
> from the Mirage (and other?) unikernel folks on this list. This would also
> be a good discussion to have on the "cross-project" unikernel.org once the
> discourse.org setup there is complete.

It sounds to me like this is a map function over the configuration: you
want to pass the JSON tree to a function that descends over the various
nodes that convert the configuration into a concrete (device_tree,linker)
tuple.

The output of this could then grabbed by the linker or domain builder in
order to satisfy their particular jobs.  Bear in mind that Mirage or
HalVM may also want their own linking flags that are OCaml- or Haskell-
specific as well.

So if Mirage provided a set of command-line binaries that accepted
a JSON configuration fragment for just the network and storage setup,
and rumprun have the ability to shell out to them to delegate a portion
of the configuration, that might be a nice way to glue different toolchains
together...?

(Assuming I've understood rumprun's role in this correctly as the main
entrypoint command).

-anil

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Mon Jan 04 14:26:31 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 04 Jan 2016 14:26:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aG65U-00069O-PJ; Mon, 04 Jan 2016 14:26:20 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <talex5@gmail.com>) id 1aG65T-00069J-Nu
	for mirageos-devel@lists.xenproject.org; Mon, 04 Jan 2016 14:26:19 +0000
Received: from [85.158.137.68] by server-16.bemta-3.messagelabs.com id
	3E/7D-07451-A018A865; Mon, 04 Jan 2016 14:26:18 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-8.tower-31.messagelabs.com!1451917575!13953244!1
X-Originating-IP: [209.85.213.53]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 35607 invoked from network); 4 Jan 2016 14:26:16 -0000
Received: from mail-vk0-f53.google.com (HELO mail-vk0-f53.google.com)
	(209.85.213.53)
	by server-8.tower-31.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 4 Jan 2016 14:26:16 -0000
Received: by mail-vk0-f53.google.com with SMTP id a123so91414682vkh.1
	for <mirageos-devel@lists.xenproject.org>;
	Mon, 04 Jan 2016 06:26:16 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:date:message-id:subject:from:to:content-type;
	bh=gtRTv9LSe8ladA8iVPf3yBtW+lIs1vnbGoIUI4CBWzs=;
	b=Y54SwBrr67SHaXkWzSZkStULhN6kD8uefc4bADfUVGprpFn5xuKcG48PR2RRO2CZ84
	wmXNTfX/iKjaLmlCG+LUAZh48skNXVOCJiPlaFjisH3Gdk4lUyAI/ZZHiYrWLbjGU7DH
	Jebssh7ExdKFx1ktEf+Ns4kyNCNU/zq44XJjiaIHzOfVfjz9CWALEx5OvCZpAgy5JjXw
	EVtWNsKfHGZF0lZaLF6ChNeeU53gvsQPXBVfKeWMysMO9TF9bzQH1KvGh1H/U7vJrb/O
	QvrO/AoCJy6JWAOpeDgzpGwNg7FRj7AY8pgMfikyZd1aSTsMo1foNFV7aCy7WCBFeoYD
	4ZLw==
MIME-Version: 1.0
X-Received: by 10.31.16.101 with SMTP id g98mr61980701vki.41.1451917575333;
	Mon, 04 Jan 2016 06:26:15 -0800 (PST)
Received: by 10.31.128.84 with HTTP; Mon, 4 Jan 2016 06:26:15 -0800 (PST)
Date: Mon, 4 Jan 2016 14:26:15 +0000
Message-ID: <CAG4opy-Rqu4EqKMCFDbN8XTe6DECMteGp5dDo-d1E+ZzG4RKTQ@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: [MirageOS-devel] Unmapping grants is unsafe
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 3 January 2016 at 10:38, Thomas Leonard <talex5@gmail.com> wrote:
> On 2 January 2016 at 14:35, Mindy <mindy@somerandomidiot.com> wrote:
>> On 01/02/2016 12:14 PM, Anil Madhavapeddy wrote:
>>>
>>> On 2 Jan 2016, at 12:07, Thomas Leonard <talex5@gmail.com> wrote:
>>>>
>>>> I have a Mirage firewall running now under Qubes:
>>>>
>>>>
>>>> http://roscidus.com/blog/blog/2016/01/01/a-unikernel-firewall-for-qubesos/
[...]
>>>> - Mirage allows you to access memory after unmapping it. This isn't
>>>> safe (may page-fault or give access to someone else's data). I've
>>>> added checks in mirage-net-xen to make sure we don't try to access a
>>>> ring after unmapping it [1], but I think this should be fixed at the
>>>> Bigarray level [2].
>>>>
>>> Did that Bigarray patch get committed into OCaml 4.03dev?  I dont
>>> have a checkout handy here and it's hard to map a commit to the
>>> associated PRs in the web UI.
>
> I haven't submitted a PR yet. Need to update it to master and test.

https://github.com/ocaml/ocaml/pull/389

However, they're not keen on merging it, for performance reasons.
Also, it would mean changing Cstruct, which currently says:

> We try to maintain the property that no constructed [t] can ever point out of
> its underlying buffer. This property is guarded by all of the constructing
> functions and the fact that the type is private, and used by various
> functions that would otherwise be completely unsafe.

I wonder if we should instead change Gnt.Gnttab.Local_mapping.to_buf
so that instead of returning an Io_page it returns something else,
which provides similar operations but:

a) checks every access to ensure it hasn't been unmapped, and
b) doesn't allow you to get a Cstruct or Bigarray from it.

However, this would mean a largish API change.


-- 
Dr Thomas Leonard        http://roscidus.com/blog/
GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Mon Jan 04 14:26:31 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 04 Jan 2016 14:26:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aG65U-00069O-PJ; Mon, 04 Jan 2016 14:26:20 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <talex5@gmail.com>) id 1aG65T-00069J-Nu
	for mirageos-devel@lists.xenproject.org; Mon, 04 Jan 2016 14:26:19 +0000
Received: from [85.158.137.68] by server-16.bemta-3.messagelabs.com id
	3E/7D-07451-A018A865; Mon, 04 Jan 2016 14:26:18 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-8.tower-31.messagelabs.com!1451917575!13953244!1
X-Originating-IP: [209.85.213.53]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 35607 invoked from network); 4 Jan 2016 14:26:16 -0000
Received: from mail-vk0-f53.google.com (HELO mail-vk0-f53.google.com)
	(209.85.213.53)
	by server-8.tower-31.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 4 Jan 2016 14:26:16 -0000
Received: by mail-vk0-f53.google.com with SMTP id a123so91414682vkh.1
	for <mirageos-devel@lists.xenproject.org>;
	Mon, 04 Jan 2016 06:26:16 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:date:message-id:subject:from:to:content-type;
	bh=gtRTv9LSe8ladA8iVPf3yBtW+lIs1vnbGoIUI4CBWzs=;
	b=Y54SwBrr67SHaXkWzSZkStULhN6kD8uefc4bADfUVGprpFn5xuKcG48PR2RRO2CZ84
	wmXNTfX/iKjaLmlCG+LUAZh48skNXVOCJiPlaFjisH3Gdk4lUyAI/ZZHiYrWLbjGU7DH
	Jebssh7ExdKFx1ktEf+Ns4kyNCNU/zq44XJjiaIHzOfVfjz9CWALEx5OvCZpAgy5JjXw
	EVtWNsKfHGZF0lZaLF6ChNeeU53gvsQPXBVfKeWMysMO9TF9bzQH1KvGh1H/U7vJrb/O
	QvrO/AoCJy6JWAOpeDgzpGwNg7FRj7AY8pgMfikyZd1aSTsMo1foNFV7aCy7WCBFeoYD
	4ZLw==
MIME-Version: 1.0
X-Received: by 10.31.16.101 with SMTP id g98mr61980701vki.41.1451917575333;
	Mon, 04 Jan 2016 06:26:15 -0800 (PST)
Received: by 10.31.128.84 with HTTP; Mon, 4 Jan 2016 06:26:15 -0800 (PST)
Date: Mon, 4 Jan 2016 14:26:15 +0000
Message-ID: <CAG4opy-Rqu4EqKMCFDbN8XTe6DECMteGp5dDo-d1E+ZzG4RKTQ@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: [MirageOS-devel] Unmapping grants is unsafe
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 3 January 2016 at 10:38, Thomas Leonard <talex5@gmail.com> wrote:
> On 2 January 2016 at 14:35, Mindy <mindy@somerandomidiot.com> wrote:
>> On 01/02/2016 12:14 PM, Anil Madhavapeddy wrote:
>>>
>>> On 2 Jan 2016, at 12:07, Thomas Leonard <talex5@gmail.com> wrote:
>>>>
>>>> I have a Mirage firewall running now under Qubes:
>>>>
>>>>
>>>> http://roscidus.com/blog/blog/2016/01/01/a-unikernel-firewall-for-qubesos/
[...]
>>>> - Mirage allows you to access memory after unmapping it. This isn't
>>>> safe (may page-fault or give access to someone else's data). I've
>>>> added checks in mirage-net-xen to make sure we don't try to access a
>>>> ring after unmapping it [1], but I think this should be fixed at the
>>>> Bigarray level [2].
>>>>
>>> Did that Bigarray patch get committed into OCaml 4.03dev?  I dont
>>> have a checkout handy here and it's hard to map a commit to the
>>> associated PRs in the web UI.
>
> I haven't submitted a PR yet. Need to update it to master and test.

https://github.com/ocaml/ocaml/pull/389

However, they're not keen on merging it, for performance reasons.
Also, it would mean changing Cstruct, which currently says:

> We try to maintain the property that no constructed [t] can ever point out of
> its underlying buffer. This property is guarded by all of the constructing
> functions and the fact that the type is private, and used by various
> functions that would otherwise be completely unsafe.

I wonder if we should instead change Gnt.Gnttab.Local_mapping.to_buf
so that instead of returning an Io_page it returns something else,
which provides similar operations but:

a) checks every access to ensure it hasn't been unmapped, and
b) doesn't allow you to get a Cstruct or Bigarray from it.

However, this would mean a largish API change.


-- 
Dr Thomas Leonard        http://roscidus.com/blog/
GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Mon Jan 04 19:21:25 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 04 Jan 2016 19:21:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aGAgt-000694-T0; Mon, 04 Jan 2016 19:21:15 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <djwillia@us.ibm.com>) id 1aGAgs-00068t-Cp
	for mirageos-devel@lists.xenproject.org; Mon, 04 Jan 2016 19:21:14 +0000
Received: from [193.109.254.147] by server-11.bemta-14.messagelabs.com id
	8B/A8-28228-926CA865; Mon, 04 Jan 2016 19:21:13 +0000
X-Env-Sender: djwillia@us.ibm.com
X-Msg-Ref: server-8.tower-27.messagelabs.com!1451935269!10871861!1
X-Originating-IP: [32.97.110.153]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
	VHJ1c3RlZCBJUDogMzIuOTcuMTEwLjE1MyA9PiAzNjQwMzA=\n
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 58905 invoked from network); 4 Jan 2016 19:21:10 -0000
Received: from e35.co.us.ibm.com (HELO e35.co.us.ibm.com) (32.97.110.153)
	by server-8.tower-27.messagelabs.com with CAMELLIA256-SHA encrypted
	SMTP; 4 Jan 2016 19:21:10 -0000
Received: from localhost
	by e35.co.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only!
	Violators will be prosecuted
	for <mirageos-devel@lists.xenproject.org> from <djwillia@us.ibm.com>;
	Mon, 4 Jan 2016 12:21:09 -0700
Received: from d03dlp01.boulder.ibm.com (9.17.202.177)
	by e35.co.us.ibm.com (192.168.1.135) with IBM ESMTP SMTP Gateway:
	Authorized Use Only! Violators will be prosecuted; 
	Mon, 4 Jan 2016 12:21:07 -0700
X-IBM-Helo: d03dlp01.boulder.ibm.com
X-IBM-MailFrom: djwillia@us.ibm.com
X-IBM-RcptTo: mirageos-devel@lists.xenproject.org
Received: from b03cxnp07029.gho.boulder.ibm.com
	(b03cxnp07029.gho.boulder.ibm.com [9.17.130.16])
	by d03dlp01.boulder.ibm.com (Postfix) with ESMTP id 66F8D1FF0046
	for <mirageos-devel@lists.xenproject.org>;
	Mon,  4 Jan 2016 12:09:17 -0700 (MST)
Received: from d03av03.boulder.ibm.com (d03av03.boulder.ibm.com [9.17.195.169])
	by b03cxnp07029.gho.boulder.ibm.com (8.14.9/8.14.9/NCO v10.0) with
	ESMTP id u04JL6kH28704922 for <mirageos-devel@lists.xenproject.org>;
	Mon, 4 Jan 2016 12:21:06 -0700
Received: from d03av03.boulder.ibm.com (localhost [127.0.0.1])
	by d03av03.boulder.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP
	id u04JL6i9008559 for <mirageos-devel@lists.xenproject.org>;
	Mon, 4 Jan 2016 12:21:06 -0700
Received: from d50lp01.ny.us.ibm.com (d50lp01.pok.ibm.com [146.89.104.207])
	by d03av03.boulder.ibm.com (8.14.4/8.14.4/NCO v10.0 AVin) with ESMTP id
	u04JL5Tp008434
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK)
	for <mirageos-devel@lists.xenproject.org>;
	Mon, 4 Jan 2016 12:21:06 -0700
Message-Id: <201601041921.u04JL5Tp008434@d03av03.boulder.ibm.com>
Received: from /spool/local
	by d50lp01.ny.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use
	Only! Violators will be prosecuted
	for <mirageos-devel@lists.xenproject.org> from <djwillia@us.ibm.com>;
	Mon, 4 Jan 2016 14:21:05 -0500
Received: from smtp.notes.na.collabserv.com (192.155.248.66)
	by d50lp01.ny.us.ibm.com (158.87.18.20) with IBM ESMTP SMTP Gateway:
	Authorized Use Only! Violators will be prosecuted; 
	(version=TLSv1/SSLv3 cipher=AES256-SHA bits=256/256)
	Mon, 4 Jan 2016 14:21:02 -0500
Received: from /spool/local
	by smtp.notes.na.collabserv.com with smtp.notes.na.collabserv.com ESMTP
	for <mirageos-devel@lists.xenproject.org> from <djwillia@us.ibm.com>;
	Mon, 4 Jan 2016 19:21:01 -0000
Received: from us1a3-smtp03.a3.dal06.isc4sb.com (10.106.154.94)
	by smtp.notes.na.collabserv.com (10.106.227.127) with
	smtp.notes.na.collabserv.com ESMTP; Mon, 4 Jan 2016 19:21:00 -0000
Received: from us1a3-mail131.a3.dal06.isc4sb.com ([10.146.45.162])
	by us1a3-smtp03.a3.dal06.isc4sb.com
	with ESMTP id 2016010419212881-381377 ;
	Mon, 4 Jan 2016 19:21:28 +0000 
To: mirageos-devel@lists.xenproject.org
From: "Daniel J Williams" <djwillia@us.ibm.com>
Date: Mon, 4 Jan 2016 14:20:57 -0500
X-KeepSent: 7254AD20:78A10D4E-00257F30:0068FA8D;
 type=4; name=$KeepSent
X-Mailer: IBM Notes Release 9.0.1FP3 SHF226 March 23, 2015
X-LLNOutbound: False
X-Disclaimed: 31271
X-TNEFEvaluated: 1
x-cbid: 16010419-0013-0000-0000-00001B8DBA7E
X-IBM-ISS-SpamDetectors: Score=0.439231; BY=0.292875; FL=0; FP=0; FZ=0; HX=0; 
	KW=0; PH=0; SC=0.439231; ST=0; TS=0; UL=0; ISC=
X-IBM-ISS-DetailInfo: BY=3.00004754; HX=3.00000237; KW=3.00000007;
	PH=3.00000004; SC=3.00000129; SDB=6.00640505; UDB=6.00288202;
	UTC=2016-01-04 19:21:01
x-cbparentid: 16010419-9588-0000-0000-00000168856E
X-TM-AS-MML: disable
X-Content-Scanned: Fidelis XPS MAILER
Subject: [MirageOS-devel] Announcing Solo5 (for Mirage on KVM/QEMU)
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="===============2892983238842837528=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org


--===============2892983238842837528==
Content-type: multipart/alternative; 
	Boundary="0__=8FBBF5A3DFFB7C1D8f9e8a93df938690918c8FBBF5A3DFFB7C1D"
Content-Disposition: inline


--0__=8FBBF5A3DFFB7C1D8f9e8a93df938690918c8FBBF5A3DFFB7C1D
Content-Transfer-Encoding: quoted-printable
Content-type: text/plain; charset=US-ASCII


Hello Mirage community,

Happy New Year!

I've now released the minimal kernel library I mentioned a month ago
on this list.  It essentially initializes HW and bootstraps the Mirage
OS stack (like mini-os, but runs on a bare HW abstraction from
KVM/QEMU).  It's called Solo5.

Most interesting to others on this list is Solo5's ability to run a
few Mirage applications on KVM/QEMU.  I have bundled up the entire
build environment into a Docker container, so hopefully trying things
out is easy!  Full instructions are available at:

https://github.com/djwillia/solo5/tree/mirage

Any and all feedback is welcome!

Dan

--0__=8FBBF5A3DFFB7C1D8f9e8a93df938690918c8FBBF5A3DFFB7C1D
Content-Transfer-Encoding: quoted-printable
Content-type: text/html; charset=US-ASCII
Content-Disposition: inline

<html><body><p><tt>Hello Mirage community,</tt><br><br><tt>Happy New Year!<=
/tt><br><br><tt>I've now released the minimal kernel library I mentioned a =
month ago</tt><br><tt>on this list. &nbsp;It essentially initializes HW and=
 bootstraps the Mirage</tt><br><tt>OS stack (like mini-os, but runs on a ba=
re HW abstraction from</tt><br><tt>KVM/QEMU). &nbsp;It's called Solo5.</tt>=
<br><br><tt>Most interesting to others on this list is Solo5's ability to r=
un a</tt><br><tt>few Mirage applications on KVM/QEMU. &nbsp;I have bundled =
up the entire</tt><br><tt>build environment into a Docker container, so hop=
efully trying things</tt><br><tt>out is easy! &nbsp;Full instructions are a=
vailable at:</tt><br><br><a href=3D"https://github.com/djwillia/solo5/tree/=
mirage"><tt>https://github.com/djwillia/solo5/tree/mirage</tt></a><br><br><=
tt>Any and all feedback is welcome!</tt><br><br><tt>Dan</tt><br><BR>
</body></html>

--0__=8FBBF5A3DFFB7C1D8f9e8a93df938690918c8FBBF5A3DFFB7C1D--



--===============2892983238842837528==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============2892983238842837528==--



From mirageos-devel-bounces@lists.xenproject.org Mon Jan 04 19:21:25 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 04 Jan 2016 19:21:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aGAgt-000694-T0; Mon, 04 Jan 2016 19:21:15 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <djwillia@us.ibm.com>) id 1aGAgs-00068t-Cp
	for mirageos-devel@lists.xenproject.org; Mon, 04 Jan 2016 19:21:14 +0000
Received: from [193.109.254.147] by server-11.bemta-14.messagelabs.com id
	8B/A8-28228-926CA865; Mon, 04 Jan 2016 19:21:13 +0000
X-Env-Sender: djwillia@us.ibm.com
X-Msg-Ref: server-8.tower-27.messagelabs.com!1451935269!10871861!1
X-Originating-IP: [32.97.110.153]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
	VHJ1c3RlZCBJUDogMzIuOTcuMTEwLjE1MyA9PiAzNjQwMzA=\n
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 58905 invoked from network); 4 Jan 2016 19:21:10 -0000
Received: from e35.co.us.ibm.com (HELO e35.co.us.ibm.com) (32.97.110.153)
	by server-8.tower-27.messagelabs.com with CAMELLIA256-SHA encrypted
	SMTP; 4 Jan 2016 19:21:10 -0000
Received: from localhost
	by e35.co.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only!
	Violators will be prosecuted
	for <mirageos-devel@lists.xenproject.org> from <djwillia@us.ibm.com>;
	Mon, 4 Jan 2016 12:21:09 -0700
Received: from d03dlp01.boulder.ibm.com (9.17.202.177)
	by e35.co.us.ibm.com (192.168.1.135) with IBM ESMTP SMTP Gateway:
	Authorized Use Only! Violators will be prosecuted; 
	Mon, 4 Jan 2016 12:21:07 -0700
X-IBM-Helo: d03dlp01.boulder.ibm.com
X-IBM-MailFrom: djwillia@us.ibm.com
X-IBM-RcptTo: mirageos-devel@lists.xenproject.org
Received: from b03cxnp07029.gho.boulder.ibm.com
	(b03cxnp07029.gho.boulder.ibm.com [9.17.130.16])
	by d03dlp01.boulder.ibm.com (Postfix) with ESMTP id 66F8D1FF0046
	for <mirageos-devel@lists.xenproject.org>;
	Mon,  4 Jan 2016 12:09:17 -0700 (MST)
Received: from d03av03.boulder.ibm.com (d03av03.boulder.ibm.com [9.17.195.169])
	by b03cxnp07029.gho.boulder.ibm.com (8.14.9/8.14.9/NCO v10.0) with
	ESMTP id u04JL6kH28704922 for <mirageos-devel@lists.xenproject.org>;
	Mon, 4 Jan 2016 12:21:06 -0700
Received: from d03av03.boulder.ibm.com (localhost [127.0.0.1])
	by d03av03.boulder.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP
	id u04JL6i9008559 for <mirageos-devel@lists.xenproject.org>;
	Mon, 4 Jan 2016 12:21:06 -0700
Received: from d50lp01.ny.us.ibm.com (d50lp01.pok.ibm.com [146.89.104.207])
	by d03av03.boulder.ibm.com (8.14.4/8.14.4/NCO v10.0 AVin) with ESMTP id
	u04JL5Tp008434
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK)
	for <mirageos-devel@lists.xenproject.org>;
	Mon, 4 Jan 2016 12:21:06 -0700
Message-Id: <201601041921.u04JL5Tp008434@d03av03.boulder.ibm.com>
Received: from /spool/local
	by d50lp01.ny.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use
	Only! Violators will be prosecuted
	for <mirageos-devel@lists.xenproject.org> from <djwillia@us.ibm.com>;
	Mon, 4 Jan 2016 14:21:05 -0500
Received: from smtp.notes.na.collabserv.com (192.155.248.66)
	by d50lp01.ny.us.ibm.com (158.87.18.20) with IBM ESMTP SMTP Gateway:
	Authorized Use Only! Violators will be prosecuted; 
	(version=TLSv1/SSLv3 cipher=AES256-SHA bits=256/256)
	Mon, 4 Jan 2016 14:21:02 -0500
Received: from /spool/local
	by smtp.notes.na.collabserv.com with smtp.notes.na.collabserv.com ESMTP
	for <mirageos-devel@lists.xenproject.org> from <djwillia@us.ibm.com>;
	Mon, 4 Jan 2016 19:21:01 -0000
Received: from us1a3-smtp03.a3.dal06.isc4sb.com (10.106.154.94)
	by smtp.notes.na.collabserv.com (10.106.227.127) with
	smtp.notes.na.collabserv.com ESMTP; Mon, 4 Jan 2016 19:21:00 -0000
Received: from us1a3-mail131.a3.dal06.isc4sb.com ([10.146.45.162])
	by us1a3-smtp03.a3.dal06.isc4sb.com
	with ESMTP id 2016010419212881-381377 ;
	Mon, 4 Jan 2016 19:21:28 +0000 
To: mirageos-devel@lists.xenproject.org
From: "Daniel J Williams" <djwillia@us.ibm.com>
Date: Mon, 4 Jan 2016 14:20:57 -0500
X-KeepSent: 7254AD20:78A10D4E-00257F30:0068FA8D;
 type=4; name=$KeepSent
X-Mailer: IBM Notes Release 9.0.1FP3 SHF226 March 23, 2015
X-LLNOutbound: False
X-Disclaimed: 31271
X-TNEFEvaluated: 1
x-cbid: 16010419-0013-0000-0000-00001B8DBA7E
X-IBM-ISS-SpamDetectors: Score=0.439231; BY=0.292875; FL=0; FP=0; FZ=0; HX=0; 
	KW=0; PH=0; SC=0.439231; ST=0; TS=0; UL=0; ISC=
X-IBM-ISS-DetailInfo: BY=3.00004754; HX=3.00000237; KW=3.00000007;
	PH=3.00000004; SC=3.00000129; SDB=6.00640505; UDB=6.00288202;
	UTC=2016-01-04 19:21:01
x-cbparentid: 16010419-9588-0000-0000-00000168856E
X-TM-AS-MML: disable
X-Content-Scanned: Fidelis XPS MAILER
Subject: [MirageOS-devel] Announcing Solo5 (for Mirage on KVM/QEMU)
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="===============2892983238842837528=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org


--===============2892983238842837528==
Content-type: multipart/alternative; 
	Boundary="0__=8FBBF5A3DFFB7C1D8f9e8a93df938690918c8FBBF5A3DFFB7C1D"
Content-Disposition: inline


--0__=8FBBF5A3DFFB7C1D8f9e8a93df938690918c8FBBF5A3DFFB7C1D
Content-Transfer-Encoding: quoted-printable
Content-type: text/plain; charset=US-ASCII


Hello Mirage community,

Happy New Year!

I've now released the minimal kernel library I mentioned a month ago
on this list.  It essentially initializes HW and bootstraps the Mirage
OS stack (like mini-os, but runs on a bare HW abstraction from
KVM/QEMU).  It's called Solo5.

Most interesting to others on this list is Solo5's ability to run a
few Mirage applications on KVM/QEMU.  I have bundled up the entire
build environment into a Docker container, so hopefully trying things
out is easy!  Full instructions are available at:

https://github.com/djwillia/solo5/tree/mirage

Any and all feedback is welcome!

Dan

--0__=8FBBF5A3DFFB7C1D8f9e8a93df938690918c8FBBF5A3DFFB7C1D
Content-Transfer-Encoding: quoted-printable
Content-type: text/html; charset=US-ASCII
Content-Disposition: inline

<html><body><p><tt>Hello Mirage community,</tt><br><br><tt>Happy New Year!<=
/tt><br><br><tt>I've now released the minimal kernel library I mentioned a =
month ago</tt><br><tt>on this list. &nbsp;It essentially initializes HW and=
 bootstraps the Mirage</tt><br><tt>OS stack (like mini-os, but runs on a ba=
re HW abstraction from</tt><br><tt>KVM/QEMU). &nbsp;It's called Solo5.</tt>=
<br><br><tt>Most interesting to others on this list is Solo5's ability to r=
un a</tt><br><tt>few Mirage applications on KVM/QEMU. &nbsp;I have bundled =
up the entire</tt><br><tt>build environment into a Docker container, so hop=
efully trying things</tt><br><tt>out is easy! &nbsp;Full instructions are a=
vailable at:</tt><br><br><a href=3D"https://github.com/djwillia/solo5/tree/=
mirage"><tt>https://github.com/djwillia/solo5/tree/mirage</tt></a><br><br><=
tt>Any and all feedback is welcome!</tt><br><br><tt>Dan</tt><br><BR>
</body></html>

--0__=8FBBF5A3DFFB7C1D8f9e8a93df938690918c8FBBF5A3DFFB7C1D--



--===============2892983238842837528==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============2892983238842837528==--



From mirageos-devel-bounces@lists.xenproject.org Mon Jan 04 19:36:16 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 04 Jan 2016 19:36:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aGAvN-0006ou-Pm; Mon, 04 Jan 2016 19:36:13 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <amc79@cam.ac.uk>) id 1aGAvM-0006ok-6k
	for mirageos-devel@lists.xenproject.org; Mon, 04 Jan 2016 19:36:12 +0000
Received: from [85.158.137.68] by server-6.bemta-3.messagelabs.com id
	6C/07-29649-BA9CA865; Mon, 04 Jan 2016 19:36:11 +0000
X-Env-Sender: amc79@cam.ac.uk
X-Msg-Ref: server-15.tower-31.messagelabs.com!1451936168!13576256!1
X-Originating-IP: [131.111.8.133]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 49814 invoked from network); 4 Jan 2016 19:36:08 -0000
Received: from ppsw-33.csi.cam.ac.uk (HELO ppsw-33.csi.cam.ac.uk)
	(131.111.8.133)
	by server-15.tower-31.messagelabs.com with DHE-RSA-AES256-GCM-SHA384
	encrypted SMTP; 4 Jan 2016 19:36:08 -0000
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: http://www.cam.ac.uk/cs/email/scanner/
Received: from cpc91232-cmbg18-2-0-cust222.5-4.cable.virginm.net
	([82.2.124.223]:38061 helo=[10.0.1.8])
	by ppsw-33.csi.cam.ac.uk (smtp.hermes.cam.ac.uk [131.111.8.157]:25)
	with esmtpsa (PLAIN:amc79) (TLSv1:ECDHE-RSA-AES256-SHA:256)
	id 1aGAvI-000KUA-hR (Exim 4.86_36-e07b163)
	(return-path <amc79@cam.ac.uk>); Mon, 04 Jan 2016 19:36:08 +0000
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Amir Chaudhry <amc79@cam.ac.uk>
In-Reply-To: <201601041921.u04JL5Tp008434@d03av03.boulder.ibm.com>
Date: Mon, 4 Jan 2016 19:36:07 +0000
Message-Id: <92667048-70B0-4D95-BF86-98D3CAD145C2@cam.ac.uk>
References: <201601041921.u04JL5Tp008434@d03av03.boulder.ibm.com>
To: Daniel J Williams <djwillia@us.ibm.com>
X-Mailer: Apple Mail (2.2104)
Cc: mirageos-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel] Announcing Solo5 (for Mirage on KVM/QEMU)
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

SGkgRGFuLCBUaGlzIGlzIGdyZWF0IGFuZCBjb25ncmF0cyBvbiB0aGUgcmVsZWFzZSEKCldvdWxk
IHlvdSBiZSB1cCBmb3Igd3JpdGluZyBhbiBpbnRybyBwb3N0IHRvIHRoaXMgd29yayBmb3IgdGhl
IE1pcmFnZU9TIGJsb2c/IDopCgpJ4oCZdmUgbWFkZSBhIHRyYWNraW5nIGlzc3VlIGF0OiBodHRw
czovL2dpdGh1Yi5jb20vbWlyYWdlL21pcmFnZS13d3cvaXNzdWVzLzQyNQoKQW1pcgoKPiBPbiA0
IEphbiAyMDE2LCBhdCAxOToyMCwgRGFuaWVsIEogV2lsbGlhbXMgPGRqd2lsbGlhQHVzLmlibS5j
b20+IHdyb3RlOgo+IAo+IEhlbGxvIE1pcmFnZSBjb21tdW5pdHksCj4gCj4gSGFwcHkgTmV3IFll
YXIhCj4gCj4gSSd2ZSBub3cgcmVsZWFzZWQgdGhlIG1pbmltYWwga2VybmVsIGxpYnJhcnkgSSBt
ZW50aW9uZWQgYSBtb250aCBhZ28KPiBvbiB0aGlzIGxpc3QuICBJdCBlc3NlbnRpYWxseSBpbml0
aWFsaXplcyBIVyBhbmQgYm9vdHN0cmFwcyB0aGUgTWlyYWdlCj4gT1Mgc3RhY2sgKGxpa2UgbWlu
aS1vcywgYnV0IHJ1bnMgb24gYSBiYXJlIEhXIGFic3RyYWN0aW9uIGZyb20KPiBLVk0vUUVNVSku
ICBJdCdzIGNhbGxlZCBTb2xvNS4KPiAKPiBNb3N0IGludGVyZXN0aW5nIHRvIG90aGVycyBvbiB0
aGlzIGxpc3QgaXMgU29sbzUncyBhYmlsaXR5IHRvIHJ1biBhCj4gZmV3IE1pcmFnZSBhcHBsaWNh
dGlvbnMgb24gS1ZNL1FFTVUuICBJIGhhdmUgYnVuZGxlZCB1cCB0aGUgZW50aXJlCj4gYnVpbGQg
ZW52aXJvbm1lbnQgaW50byBhIERvY2tlciBjb250YWluZXIsIHNvIGhvcGVmdWxseSB0cnlpbmcg
dGhpbmdzCj4gb3V0IGlzIGVhc3khICBGdWxsIGluc3RydWN0aW9ucyBhcmUgYXZhaWxhYmxlIGF0
Ogo+IAo+IGh0dHBzOi8vZ2l0aHViLmNvbS9kandpbGxpYS9zb2xvNS90cmVlL21pcmFnZQo+IAo+
IEFueSBhbmQgYWxsIGZlZWRiYWNrIGlzIHdlbGNvbWUhCj4gCj4gRGFuCj4gCj4gX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBNaXJhZ2VPUy1kZXZlbCBt
YWlsaW5nIGxpc3QKPiBNaXJhZ2VPUy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwo+IGh0dHA6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vbWlyYWdlb3Mt
ZGV2ZWwKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpN
aXJhZ2VPUy1kZXZlbCBtYWlsaW5nIGxpc3QKTWlyYWdlT1MtZGV2ZWxAbGlzdHMueGVucHJvamVj
dC5vcmcKaHR0cDovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5m
by9taXJhZ2Vvcy1kZXZlbAo=

From mirageos-devel-bounces@lists.xenproject.org Mon Jan 04 19:36:16 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 04 Jan 2016 19:36:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aGAvN-0006ou-Pm; Mon, 04 Jan 2016 19:36:13 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <amc79@cam.ac.uk>) id 1aGAvM-0006ok-6k
	for mirageos-devel@lists.xenproject.org; Mon, 04 Jan 2016 19:36:12 +0000
Received: from [85.158.137.68] by server-6.bemta-3.messagelabs.com id
	6C/07-29649-BA9CA865; Mon, 04 Jan 2016 19:36:11 +0000
X-Env-Sender: amc79@cam.ac.uk
X-Msg-Ref: server-15.tower-31.messagelabs.com!1451936168!13576256!1
X-Originating-IP: [131.111.8.133]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 49814 invoked from network); 4 Jan 2016 19:36:08 -0000
Received: from ppsw-33.csi.cam.ac.uk (HELO ppsw-33.csi.cam.ac.uk)
	(131.111.8.133)
	by server-15.tower-31.messagelabs.com with DHE-RSA-AES256-GCM-SHA384
	encrypted SMTP; 4 Jan 2016 19:36:08 -0000
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: http://www.cam.ac.uk/cs/email/scanner/
Received: from cpc91232-cmbg18-2-0-cust222.5-4.cable.virginm.net
	([82.2.124.223]:38061 helo=[10.0.1.8])
	by ppsw-33.csi.cam.ac.uk (smtp.hermes.cam.ac.uk [131.111.8.157]:25)
	with esmtpsa (PLAIN:amc79) (TLSv1:ECDHE-RSA-AES256-SHA:256)
	id 1aGAvI-000KUA-hR (Exim 4.86_36-e07b163)
	(return-path <amc79@cam.ac.uk>); Mon, 04 Jan 2016 19:36:08 +0000
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Amir Chaudhry <amc79@cam.ac.uk>
In-Reply-To: <201601041921.u04JL5Tp008434@d03av03.boulder.ibm.com>
Date: Mon, 4 Jan 2016 19:36:07 +0000
Message-Id: <92667048-70B0-4D95-BF86-98D3CAD145C2@cam.ac.uk>
References: <201601041921.u04JL5Tp008434@d03av03.boulder.ibm.com>
To: Daniel J Williams <djwillia@us.ibm.com>
X-Mailer: Apple Mail (2.2104)
Cc: mirageos-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel] Announcing Solo5 (for Mirage on KVM/QEMU)
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

SGkgRGFuLCBUaGlzIGlzIGdyZWF0IGFuZCBjb25ncmF0cyBvbiB0aGUgcmVsZWFzZSEKCldvdWxk
IHlvdSBiZSB1cCBmb3Igd3JpdGluZyBhbiBpbnRybyBwb3N0IHRvIHRoaXMgd29yayBmb3IgdGhl
IE1pcmFnZU9TIGJsb2c/IDopCgpJ4oCZdmUgbWFkZSBhIHRyYWNraW5nIGlzc3VlIGF0OiBodHRw
czovL2dpdGh1Yi5jb20vbWlyYWdlL21pcmFnZS13d3cvaXNzdWVzLzQyNQoKQW1pcgoKPiBPbiA0
IEphbiAyMDE2LCBhdCAxOToyMCwgRGFuaWVsIEogV2lsbGlhbXMgPGRqd2lsbGlhQHVzLmlibS5j
b20+IHdyb3RlOgo+IAo+IEhlbGxvIE1pcmFnZSBjb21tdW5pdHksCj4gCj4gSGFwcHkgTmV3IFll
YXIhCj4gCj4gSSd2ZSBub3cgcmVsZWFzZWQgdGhlIG1pbmltYWwga2VybmVsIGxpYnJhcnkgSSBt
ZW50aW9uZWQgYSBtb250aCBhZ28KPiBvbiB0aGlzIGxpc3QuICBJdCBlc3NlbnRpYWxseSBpbml0
aWFsaXplcyBIVyBhbmQgYm9vdHN0cmFwcyB0aGUgTWlyYWdlCj4gT1Mgc3RhY2sgKGxpa2UgbWlu
aS1vcywgYnV0IHJ1bnMgb24gYSBiYXJlIEhXIGFic3RyYWN0aW9uIGZyb20KPiBLVk0vUUVNVSku
ICBJdCdzIGNhbGxlZCBTb2xvNS4KPiAKPiBNb3N0IGludGVyZXN0aW5nIHRvIG90aGVycyBvbiB0
aGlzIGxpc3QgaXMgU29sbzUncyBhYmlsaXR5IHRvIHJ1biBhCj4gZmV3IE1pcmFnZSBhcHBsaWNh
dGlvbnMgb24gS1ZNL1FFTVUuICBJIGhhdmUgYnVuZGxlZCB1cCB0aGUgZW50aXJlCj4gYnVpbGQg
ZW52aXJvbm1lbnQgaW50byBhIERvY2tlciBjb250YWluZXIsIHNvIGhvcGVmdWxseSB0cnlpbmcg
dGhpbmdzCj4gb3V0IGlzIGVhc3khICBGdWxsIGluc3RydWN0aW9ucyBhcmUgYXZhaWxhYmxlIGF0
Ogo+IAo+IGh0dHBzOi8vZ2l0aHViLmNvbS9kandpbGxpYS9zb2xvNS90cmVlL21pcmFnZQo+IAo+
IEFueSBhbmQgYWxsIGZlZWRiYWNrIGlzIHdlbGNvbWUhCj4gCj4gRGFuCj4gCj4gX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBNaXJhZ2VPUy1kZXZlbCBt
YWlsaW5nIGxpc3QKPiBNaXJhZ2VPUy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwo+IGh0dHA6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vbWlyYWdlb3Mt
ZGV2ZWwKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpN
aXJhZ2VPUy1kZXZlbCBtYWlsaW5nIGxpc3QKTWlyYWdlT1MtZGV2ZWxAbGlzdHMueGVucHJvamVj
dC5vcmcKaHR0cDovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5m
by9taXJhZ2Vvcy1kZXZlbAo=

From mirageos-devel-bounces@lists.xenproject.org Mon Jan 04 20:16:15 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 04 Jan 2016 20:16:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aGBY4-00015U-H5; Mon, 04 Jan 2016 20:16:12 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <djwillia@us.ibm.com>) id 1aGBY3-00015N-7o
	for mirageos-devel@lists.xenproject.org; Mon, 04 Jan 2016 20:16:11 +0000
Received: from [85.158.137.68] by server-17.bemta-3.messagelabs.com id
	94/CD-02940-A03DA865; Mon, 04 Jan 2016 20:16:10 +0000
X-Env-Sender: djwillia@us.ibm.com
X-Msg-Ref: server-15.tower-31.messagelabs.com!1451938566!13580389!1
X-Originating-IP: [129.33.205.207]
X-SpamReason: No, hits=0.4 required=7.0 tests=HTML_30_40,HTML_MESSAGE,
	MAILTO_TO_SPAM_ADDR,MSGID_FROM_MTA_HEADER,UNPARSEABLE_RELAY
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 27591 invoked from network); 4 Jan 2016 20:16:07 -0000
Received: from e17.ny.us.ibm.com (HELO e17.ny.us.ibm.com) (129.33.205.207)
	by server-15.tower-31.messagelabs.com with CAMELLIA256-SHA encrypted
	SMTP; 4 Jan 2016 20:16:07 -0000
Received: from localhost
	by e17.ny.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only!
	Violators will be prosecuted
	for <mirageos-devel@lists.xenproject.org> from <djwillia@us.ibm.com>;
	Mon, 4 Jan 2016 15:16:06 -0500
Received: from d01dlp03.pok.ibm.com (9.56.250.168)
	by e17.ny.us.ibm.com (146.89.104.204) with IBM ESMTP SMTP Gateway:
	Authorized Use Only! Violators will be prosecuted; 
	Mon, 4 Jan 2016 15:16:05 -0500
X-IBM-Helo: d01dlp03.pok.ibm.com
X-IBM-MailFrom: djwillia@us.ibm.com
X-IBM-RcptTo: mirageos-devel@lists.xenproject.org
Received: from b01cxnp22035.gho.pok.ibm.com (b01cxnp22035.gho.pok.ibm.com
	[9.57.198.25])
	by d01dlp03.pok.ibm.com (Postfix) with ESMTP id 05DF1C9003E
	for <mirageos-devel@lists.xenproject.org>;
	Mon,  4 Jan 2016 15:16:04 -0500 (EST)
Received: from d01av01.pok.ibm.com (d01av01.pok.ibm.com [9.56.224.215])
	by b01cxnp22035.gho.pok.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id
	u04KG4Ng28246208
	for <mirageos-devel@lists.xenproject.org>; Mon, 4 Jan 2016 20:16:04 GMT
Received: from d01av01.pok.ibm.com (localhost [127.0.0.1])
	by d01av01.pok.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id
	u04KG4Og019280 for <mirageos-devel@lists.xenproject.org>;
	Mon, 4 Jan 2016 15:16:04 -0500
Received: from d50lp01.ny.us.ibm.com (d50lp01.pok.ibm.com [146.89.104.207])
	by d01av01.pok.ibm.com (8.14.4/8.14.4/NCO v10.0 AVin) with ESMTP id
	u04KG3UM019106
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK)
	for <mirageos-devel@lists.xenproject.org>;
	Mon, 4 Jan 2016 15:16:03 -0500
Message-Id: <201601042016.u04KG3UM019106@d01av01.pok.ibm.com>
Received: from /spool/local
	by d50lp01.ny.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use
	Only! Violators will be prosecuted
	for <mirageos-devel@lists.xenproject.org> from <djwillia@us.ibm.com>;
	Mon, 4 Jan 2016 15:16:02 -0500
Received: from smtp.notes.na.collabserv.com (192.155.248.91)
	by d50lp01.ny.us.ibm.com (158.87.18.20) with IBM ESMTP SMTP Gateway:
	Authorized Use Only! Violators will be prosecuted; 
	(version=TLSv1/SSLv3 cipher=AES256-SHA bits=256/256)
	Mon, 4 Jan 2016 15:16:01 -0500
Received: from /spool/local
	by smtp.notes.na.collabserv.com with smtp.notes.na.collabserv.com ESMTP
	for <mirageos-devel@lists.xenproject.org> from <djwillia@us.ibm.com>;
	Mon, 4 Jan 2016 20:16:00 -0000
Received: from us1a3-smtp04.a3.dal06.isc4sb.com (10.106.154.237)
	by smtp.notes.na.collabserv.com (10.106.227.143) with
	smtp.notes.na.collabserv.com ESMTP; Mon, 4 Jan 2016 20:15:57 -0000
Received: from us1a3-mail131.a3.dal06.isc4sb.com ([10.146.45.162])
	by us1a3-smtp04.a3.dal06.isc4sb.com
	with ESMTP id 2016010420155671-403201 ;
	Mon, 4 Jan 2016 20:15:56 +0000 
In-Reply-To: <92667048-70B0-4D95-BF86-98D3CAD145C2@cam.ac.uk>
To: Amir Chaudhry <amc79@cam.ac.uk>
From: "Daniel J Williams" <djwillia@us.ibm.com>
Date: Mon, 4 Jan 2016 15:15:54 -0500
References: <201601041921.u04JL5Tp008434@d03av03.boulder.ibm.com>
	<92667048-70B0-4D95-BF86-98D3CAD145C2@cam.ac.uk>
X-KeepSent: 986B0BB6:348D2D94-00257F30:006F1049;
 type=4; name=$KeepSent
X-Mailer: IBM Notes Release 9.0.1FP3 SHF226 March 23, 2015
X-LLNOutbound: False
X-Disclaimed: 63187
X-TNEFEvaluated: 1
x-cbid: 16010420-0041-0000-0000-000002F21190
X-IBM-ISS-SpamDetectors: Score=0.4332; BY=0.291774; FL=0; FP=0; FZ=0; HX=0;
	KW=0; PH=0; SC=0.4332; ST=0; TS=0; UL=0; ISC=
X-IBM-ISS-DetailInfo: BY=3.00004754; HX=3.00000237; KW=3.00000007;
	PH=3.00000004; SC=3.00000129; SDB=6.00640523; UDB=6.00288212;
	UTC=2016-01-04 20:15:59
x-cbparentid: 16010420-4778-0000-0000-000001710001
X-TM-AS-MML: disable
X-Content-Scanned: Fidelis XPS MAILER
Cc: mirageos-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel] Announcing Solo5 (for Mirage on KVM/QEMU)
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="===============5618314336065451380=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org


--===============5618314336065451380==
Content-type: multipart/alternative; 
	Boundary="0__=8FBBF5A3DFFC96D98f9e8a93df938690918c8FBBF5A3DFFC96D9"
Content-Disposition: inline


--0__=8FBBF5A3DFFC96D98f9e8a93df938690918c8FBBF5A3DFFC96D9
Content-Transfer-Encoding: base64
Content-type: text/plain; charset=UTF-8

QW1pciBDaGF1ZGhyeSA8YW1jNzlAY2FtLmFjLnVrPiB3cm90ZSBvbiAwMS8wNC8yMDE2IDAyOjM2
OjA3IFBNOg0KDQo+IFdvdWxkIHlvdSBiZSB1cCBmb3Igd3JpdGluZyBhbiBpbnRybyBwb3N0IHRv
IHRoaXMgd29yayBmb3IgdGhlDQo+IE1pcmFnZU9TIGJsb2c/IDopDQo+DQo+IEnigJl2ZSBtYWRl
IGEgdHJhY2tpbmcgaXNzdWUgYXQ6DQpodHRwczovL2dpdGh1Yi5jb20vbWlyYWdlL21pcmFnZS13
d3cvaXNzdWVzLzQyNQ0KPg0KDQpZZXMsIG9mIGNvdXJzZSwgSSdkIGJlIGhhcHB5IHRvIGFuZCB3
aWxsIGZvbGxvdyB1cCBvbiBnaXRodWIuDQoNClRoYW5rcywNCkRhbg0K

--0__=8FBBF5A3DFFC96D98f9e8a93df938690918c8FBBF5A3DFFC96D9
Content-Transfer-Encoding: base64
Content-type: text/html; charset=UTF-8
Content-Disposition: inline

PGh0bWw+PGJvZHk+PHA+PHR0PkFtaXIgQ2hhdWRocnkgJmx0O2FtYzc5QGNhbS5hYy51ayZndDsg
d3JvdGUgb24gMDEvMDQvMjAxNiAwMjozNjowNyBQTTo8YnI+PC90dD48YnI+PHR0PiZndDsgV291
bGQgeW91IGJlIHVwIGZvciB3cml0aW5nIGFuIGludHJvIHBvc3QgdG8gdGhpcyB3b3JrIGZvciB0
aGUgPGJyPiZndDsgTWlyYWdlT1MgYmxvZz8gOik8YnI+Jmd0OyA8YnI+Jmd0OyBJ4oCZdmUgbWFk
ZSBhIHRyYWNraW5nIGlzc3VlIGF0OiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vbWlyYWdl
L21pcmFnZS13d3cvaXNzdWVzLzQyNSI+aHR0cHM6Ly9naXRodWIuY29tL21pcmFnZS9taXJhZ2Ut
d3d3L2lzc3Vlcy80MjU8L2E+PGJyPiZndDsgPGJyPjwvdHQ+PGJyPjx0dD5ZZXMsIG9mIGNvdXJz
ZSwgSSdkIGJlIGhhcHB5IHRvIGFuZCB3aWxsIGZvbGxvdyB1cCBvbiBnaXRodWIuPC90dD48YnI+
PGJyPjx0dD5UaGFua3MsPGJyPkRhbjwvdHQ+PEJSPg0KPC9ib2R5PjwvaHRtbD4NCg==

--0__=8FBBF5A3DFFC96D98f9e8a93df938690918c8FBBF5A3DFFC96D9--



--===============5618314336065451380==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============5618314336065451380==--



From mirageos-devel-bounces@lists.xenproject.org Mon Jan 04 20:16:15 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 04 Jan 2016 20:16:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aGBY4-00015U-H5; Mon, 04 Jan 2016 20:16:12 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <djwillia@us.ibm.com>) id 1aGBY3-00015N-7o
	for mirageos-devel@lists.xenproject.org; Mon, 04 Jan 2016 20:16:11 +0000
Received: from [85.158.137.68] by server-17.bemta-3.messagelabs.com id
	94/CD-02940-A03DA865; Mon, 04 Jan 2016 20:16:10 +0000
X-Env-Sender: djwillia@us.ibm.com
X-Msg-Ref: server-15.tower-31.messagelabs.com!1451938566!13580389!1
X-Originating-IP: [129.33.205.207]
X-SpamReason: No, hits=0.4 required=7.0 tests=HTML_30_40,HTML_MESSAGE,
	MAILTO_TO_SPAM_ADDR,MSGID_FROM_MTA_HEADER,UNPARSEABLE_RELAY
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 27591 invoked from network); 4 Jan 2016 20:16:07 -0000
Received: from e17.ny.us.ibm.com (HELO e17.ny.us.ibm.com) (129.33.205.207)
	by server-15.tower-31.messagelabs.com with CAMELLIA256-SHA encrypted
	SMTP; 4 Jan 2016 20:16:07 -0000
Received: from localhost
	by e17.ny.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only!
	Violators will be prosecuted
	for <mirageos-devel@lists.xenproject.org> from <djwillia@us.ibm.com>;
	Mon, 4 Jan 2016 15:16:06 -0500
Received: from d01dlp03.pok.ibm.com (9.56.250.168)
	by e17.ny.us.ibm.com (146.89.104.204) with IBM ESMTP SMTP Gateway:
	Authorized Use Only! Violators will be prosecuted; 
	Mon, 4 Jan 2016 15:16:05 -0500
X-IBM-Helo: d01dlp03.pok.ibm.com
X-IBM-MailFrom: djwillia@us.ibm.com
X-IBM-RcptTo: mirageos-devel@lists.xenproject.org
Received: from b01cxnp22035.gho.pok.ibm.com (b01cxnp22035.gho.pok.ibm.com
	[9.57.198.25])
	by d01dlp03.pok.ibm.com (Postfix) with ESMTP id 05DF1C9003E
	for <mirageos-devel@lists.xenproject.org>;
	Mon,  4 Jan 2016 15:16:04 -0500 (EST)
Received: from d01av01.pok.ibm.com (d01av01.pok.ibm.com [9.56.224.215])
	by b01cxnp22035.gho.pok.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id
	u04KG4Ng28246208
	for <mirageos-devel@lists.xenproject.org>; Mon, 4 Jan 2016 20:16:04 GMT
Received: from d01av01.pok.ibm.com (localhost [127.0.0.1])
	by d01av01.pok.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id
	u04KG4Og019280 for <mirageos-devel@lists.xenproject.org>;
	Mon, 4 Jan 2016 15:16:04 -0500
Received: from d50lp01.ny.us.ibm.com (d50lp01.pok.ibm.com [146.89.104.207])
	by d01av01.pok.ibm.com (8.14.4/8.14.4/NCO v10.0 AVin) with ESMTP id
	u04KG3UM019106
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK)
	for <mirageos-devel@lists.xenproject.org>;
	Mon, 4 Jan 2016 15:16:03 -0500
Message-Id: <201601042016.u04KG3UM019106@d01av01.pok.ibm.com>
Received: from /spool/local
	by d50lp01.ny.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use
	Only! Violators will be prosecuted
	for <mirageos-devel@lists.xenproject.org> from <djwillia@us.ibm.com>;
	Mon, 4 Jan 2016 15:16:02 -0500
Received: from smtp.notes.na.collabserv.com (192.155.248.91)
	by d50lp01.ny.us.ibm.com (158.87.18.20) with IBM ESMTP SMTP Gateway:
	Authorized Use Only! Violators will be prosecuted; 
	(version=TLSv1/SSLv3 cipher=AES256-SHA bits=256/256)
	Mon, 4 Jan 2016 15:16:01 -0500
Received: from /spool/local
	by smtp.notes.na.collabserv.com with smtp.notes.na.collabserv.com ESMTP
	for <mirageos-devel@lists.xenproject.org> from <djwillia@us.ibm.com>;
	Mon, 4 Jan 2016 20:16:00 -0000
Received: from us1a3-smtp04.a3.dal06.isc4sb.com (10.106.154.237)
	by smtp.notes.na.collabserv.com (10.106.227.143) with
	smtp.notes.na.collabserv.com ESMTP; Mon, 4 Jan 2016 20:15:57 -0000
Received: from us1a3-mail131.a3.dal06.isc4sb.com ([10.146.45.162])
	by us1a3-smtp04.a3.dal06.isc4sb.com
	with ESMTP id 2016010420155671-403201 ;
	Mon, 4 Jan 2016 20:15:56 +0000 
In-Reply-To: <92667048-70B0-4D95-BF86-98D3CAD145C2@cam.ac.uk>
To: Amir Chaudhry <amc79@cam.ac.uk>
From: "Daniel J Williams" <djwillia@us.ibm.com>
Date: Mon, 4 Jan 2016 15:15:54 -0500
References: <201601041921.u04JL5Tp008434@d03av03.boulder.ibm.com>
	<92667048-70B0-4D95-BF86-98D3CAD145C2@cam.ac.uk>
X-KeepSent: 986B0BB6:348D2D94-00257F30:006F1049;
 type=4; name=$KeepSent
X-Mailer: IBM Notes Release 9.0.1FP3 SHF226 March 23, 2015
X-LLNOutbound: False
X-Disclaimed: 63187
X-TNEFEvaluated: 1
x-cbid: 16010420-0041-0000-0000-000002F21190
X-IBM-ISS-SpamDetectors: Score=0.4332; BY=0.291774; FL=0; FP=0; FZ=0; HX=0;
	KW=0; PH=0; SC=0.4332; ST=0; TS=0; UL=0; ISC=
X-IBM-ISS-DetailInfo: BY=3.00004754; HX=3.00000237; KW=3.00000007;
	PH=3.00000004; SC=3.00000129; SDB=6.00640523; UDB=6.00288212;
	UTC=2016-01-04 20:15:59
x-cbparentid: 16010420-4778-0000-0000-000001710001
X-TM-AS-MML: disable
X-Content-Scanned: Fidelis XPS MAILER
Cc: mirageos-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel] Announcing Solo5 (for Mirage on KVM/QEMU)
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="===============5618314336065451380=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org


--===============5618314336065451380==
Content-type: multipart/alternative; 
	Boundary="0__=8FBBF5A3DFFC96D98f9e8a93df938690918c8FBBF5A3DFFC96D9"
Content-Disposition: inline


--0__=8FBBF5A3DFFC96D98f9e8a93df938690918c8FBBF5A3DFFC96D9
Content-Transfer-Encoding: base64
Content-type: text/plain; charset=UTF-8

QW1pciBDaGF1ZGhyeSA8YW1jNzlAY2FtLmFjLnVrPiB3cm90ZSBvbiAwMS8wNC8yMDE2IDAyOjM2
OjA3IFBNOg0KDQo+IFdvdWxkIHlvdSBiZSB1cCBmb3Igd3JpdGluZyBhbiBpbnRybyBwb3N0IHRv
IHRoaXMgd29yayBmb3IgdGhlDQo+IE1pcmFnZU9TIGJsb2c/IDopDQo+DQo+IEnigJl2ZSBtYWRl
IGEgdHJhY2tpbmcgaXNzdWUgYXQ6DQpodHRwczovL2dpdGh1Yi5jb20vbWlyYWdlL21pcmFnZS13
d3cvaXNzdWVzLzQyNQ0KPg0KDQpZZXMsIG9mIGNvdXJzZSwgSSdkIGJlIGhhcHB5IHRvIGFuZCB3
aWxsIGZvbGxvdyB1cCBvbiBnaXRodWIuDQoNClRoYW5rcywNCkRhbg0K

--0__=8FBBF5A3DFFC96D98f9e8a93df938690918c8FBBF5A3DFFC96D9
Content-Transfer-Encoding: base64
Content-type: text/html; charset=UTF-8
Content-Disposition: inline

PGh0bWw+PGJvZHk+PHA+PHR0PkFtaXIgQ2hhdWRocnkgJmx0O2FtYzc5QGNhbS5hYy51ayZndDsg
d3JvdGUgb24gMDEvMDQvMjAxNiAwMjozNjowNyBQTTo8YnI+PC90dD48YnI+PHR0PiZndDsgV291
bGQgeW91IGJlIHVwIGZvciB3cml0aW5nIGFuIGludHJvIHBvc3QgdG8gdGhpcyB3b3JrIGZvciB0
aGUgPGJyPiZndDsgTWlyYWdlT1MgYmxvZz8gOik8YnI+Jmd0OyA8YnI+Jmd0OyBJ4oCZdmUgbWFk
ZSBhIHRyYWNraW5nIGlzc3VlIGF0OiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vbWlyYWdl
L21pcmFnZS13d3cvaXNzdWVzLzQyNSI+aHR0cHM6Ly9naXRodWIuY29tL21pcmFnZS9taXJhZ2Ut
d3d3L2lzc3Vlcy80MjU8L2E+PGJyPiZndDsgPGJyPjwvdHQ+PGJyPjx0dD5ZZXMsIG9mIGNvdXJz
ZSwgSSdkIGJlIGhhcHB5IHRvIGFuZCB3aWxsIGZvbGxvdyB1cCBvbiBnaXRodWIuPC90dD48YnI+
PGJyPjx0dD5UaGFua3MsPGJyPkRhbjwvdHQ+PEJSPg0KPC9ib2R5PjwvaHRtbD4NCg==

--0__=8FBBF5A3DFFC96D98f9e8a93df938690918c8FBBF5A3DFFC96D9--



--===============5618314336065451380==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============5618314336065451380==--



From mirageos-devel-bounces@lists.xenproject.org Tue Jan 05 11:58:59 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 05 Jan 2016 11:58:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aGQGI-00072F-K0; Tue, 05 Jan 2016 11:58:50 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <anil@recoil.org>) id 1aGQGH-000728-CV
	for mirageos-devel@lists.xenproject.org; Tue, 05 Jan 2016 11:58:49 +0000
Received: from [85.158.137.68] by server-9.bemta-3.messagelabs.com id
	4F/99-03066-8FFAB865; Tue, 05 Jan 2016 11:58:48 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-12.tower-31.messagelabs.com!1451995121!13940327!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=0.5 required=7.0 tests=HTML_60_70,HTML_MESSAGE,
	RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 10218 invoked from network); 5 Jan 2016 11:58:41 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-12.tower-31.messagelabs.com with DHE-RSA-AES256-GCM-SHA384
	encrypted SMTP; 5 Jan 2016 11:58:41 -0000
Received: from bark.recoil.org (localhost [127.0.0.1])
	by bark.recoil.org (OpenSMTPD) with ESMTP id 5c1fd63b
	for <mirageos-devel@lists.xenproject.org>;
	Tue, 5 Jan 2016 11:58:40 +0000 (GMT)
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=recoil.org; h=from
	:content-type:subject:date:references:to:message-id
	:mime-version; s=selector1; bh=bweibAIJPBfkTCEUp2pnshMNoMM=; b=U
	GTrkaQnrxPnJYR+2P1QNMa1kRyBGwIvPKWhJc56e97IMZYD1WeEwbFKTa+a3G5sp
	J6nE52iBs8uUtOUp7BkJsNIE86J0700n3YyusYvaMzOhhkPX3Ms12xSsoo5u1c/+
	h1lQEbTGcBMLpNoUR9CwAjLMDMvVqZB9CA5RGPacn4=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=recoil.org; h=from
	:content-type:subject:date:references:to:message-id
	:mime-version; q=dns; s=selector1; b=CPSDOTnfYx5VQCc2/1totUY9eb1
	Dds5SeKgHRqDisia2sdjbsXShNaiKB0xCIuGPeFVDAUdbgTzuYcTDfTK4TQe4Sr0
	LyEuT7q6rb2HKiUB9FrQREXWi8tenrK69drpIxvbk5K7LPxud25/T0+Kue2seFqJ
	hRmafY+VX2QDKKxc=
Received: by bark.recoil.org (OpenSMTPD) with ESMTPSA id 95fdf582
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO
	for <mirageos-devel@lists.xenproject.org>;
	Tue, 5 Jan 2016 11:58:40 +0000 (GMT)
From: Anil Madhavapeddy <anil@recoil.org>
Date: Tue, 5 Jan 2016 11:58:39 +0000
References: <ocaml/ocaml/pull/319@github.com>
To: mirageos-devel <mirageos-devel@lists.xenproject.org>
Message-Id: <D4E1DE3E-0690-4ECD-8C1D-E7E35655FFE8@recoil.org>
Mime-Version: 1.0 (Mac OS X Mail 9.1 \(3096.5\))
X-Mailer: Apple Mail (2.3096.5)
Subject: [MirageOS-devel] Fwd: [ocaml] Warning for missing .cmx files (#319)
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============8091904016104413640=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org


--===============8091904016104413640==
Content-Type: multipart/alternative; boundary="Apple-Mail=_EB35AE0E-38E6-4EED-B8C0-3C434CF2B304"


--Apple-Mail=_EB35AE0E-38E6-4EED-B8C0-3C434CF2B304
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8

The cool features in OCaml 4.03 are adding up -- in addition to the low =
latency garbage collection patches, this one ensures that all of the =
.cmx files are always available during linking.  If they are not, then =
cross-module inlining is currently silently turned off, but with this, =
we can ensure the highest performance unikernel link.

Anil


> Begin forwarded message:
>=20
> From: Leo White <notifications@github.com>
> Date: 29 November 2015 at 18:29:09 GMT
> To: ocaml/ocaml <ocaml@noreply.github.com>
> Subject: [ocaml] Warning for missing .cmx files (#319)
>=20
> This patch adds a warning for missing cmx files during cross-module =
inlining. This is useful because currently a misspecified build can =
silently damage the performance of programs.
>=20
> The patch also extends the -opaque option to work on .mli files. Using =
-opaque on an .ml file means that its implementation should not be =
considered for cross-module inlining. Using -opaque on an .mli file =
means that no implementation of that interface should be considered for =
cross-module inlining.
>=20
> If an interface is marked as opaque then the compiler does not search =
for a .cmx file, and so the new warning will not be triggered. This =
means that modules which are intended to be chosen at link-time (and so =
deliberately hide .cmx files) can avoid unnecessarily triggering the =
warning.
>=20
> As an illustration of the utility of this new warning, not all cmx =
files were installed by the OCaml distribution, and the patch also =
adjusts the installation rules to install these files (which were in =
compiler-libs and ocamldoc).
>=20
> You can view, comment on, or merge this pull request online at:
>=20
>   https://github.com/ocaml/ocaml/pull/319 =
<https://github.com/ocaml/ocaml/pull/319>
> Commit Summary
>=20
> Add warning for missing .cmx files
> Install compiler libs .cmx files
> Install ocamldoc .cmx files
> File Changes
>=20
> M Makefile <https://github.com/ocaml/ocaml/pull/319/files#diff-0> (2)
> M asmcomp/closure.ml =
<https://github.com/ocaml/ocaml/pull/319/files#diff-1> (2)
> M asmcomp/compilenv.ml =
<https://github.com/ocaml/ocaml/pull/319/files#diff-2> (24)
> M ocamldoc/Makefile =
<https://github.com/ocaml/ocaml/pull/319/files#diff-3> (2)
> M typing/cmi_format.ml =
<https://github.com/ocaml/ocaml/pull/319/files#diff-4> (4)
> M typing/cmi_format.mli =
<https://github.com/ocaml/ocaml/pull/319/files#diff-5> (4)
> M typing/cmt_format.ml =
<https://github.com/ocaml/ocaml/pull/319/files#diff-6> (9)
> M typing/env.ml <https://github.com/ocaml/ocaml/pull/319/files#diff-7> =
(33)
> M typing/env.mli =
<https://github.com/ocaml/ocaml/pull/319/files#diff-8> (3)
> M utils/warnings.ml =
<https://github.com/ocaml/ocaml/pull/319/files#diff-9> (6)
> M utils/warnings.mli =
<https://github.com/ocaml/ocaml/pull/319/files#diff-10> (1)
> Patch Links:
>=20
> https://github.com/ocaml/ocaml/pull/319.patch =
<https://github.com/ocaml/ocaml/pull/319.patch>
> https://github.com/ocaml/ocaml/pull/319.diff =
<https://github.com/ocaml/ocaml/pull/319.diff>
> =E2=80=94
> Reply to this email directly or view it on GitHub =
<https://github.com/ocaml/ocaml/pull/319>.
>=20


--Apple-Mail=_EB35AE0E-38E6-4EED-B8C0-3C434CF2B304
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=utf-8

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html =
charset=3Dutf-8"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" =
class=3D"">The cool features in OCaml 4.03 are adding up -- in addition =
to the low latency garbage collection patches, this one ensures that all =
of the .cmx files are always available during linking. &nbsp;If they are =
not, then cross-module inlining is currently silently turned off, but =
with this, we can ensure the highest performance unikernel link.<div =
class=3D""><br class=3D""></div><div class=3D"">Anil</div><div =
class=3D""><br class=3D""><div><br class=3D""><blockquote type=3D"cite" =
class=3D""><div class=3D"">Begin forwarded message:</div><br =
class=3D"Apple-interchange-newline"><div style=3D"margin-top: 0px; =
margin-right: 0px; margin-bottom: 0px; margin-left: 0px;" class=3D""><span=
 style=3D"font-family: -webkit-system-font, Helvetica Neue, Helvetica, =
sans-serif; color:rgba(0, 0, 0, 1.0);" class=3D""><b class=3D"">From: =
</b></span><span style=3D"font-family: -webkit-system-font, Helvetica =
Neue, Helvetica, sans-serif;" class=3D"">Leo White &lt;<a =
href=3D"mailto:notifications@github.com" =
class=3D"">notifications@github.com</a>&gt;<br =
class=3D""></span></div><div style=3D"margin-top: 0px; margin-right: =
0px; margin-bottom: 0px; margin-left: 0px;" class=3D""><span =
style=3D"font-family: -webkit-system-font, Helvetica Neue, Helvetica, =
sans-serif; color:rgba(0, 0, 0, 1.0);" class=3D""><b class=3D"">Date: =
</b></span><span style=3D"font-family: -webkit-system-font, Helvetica =
Neue, Helvetica, sans-serif;" class=3D"">29 November 2015 at 18:29:09 =
GMT<br class=3D""></span></div><div style=3D"margin-top: 0px; =
margin-right: 0px; margin-bottom: 0px; margin-left: 0px;" class=3D""><span=
 style=3D"font-family: -webkit-system-font, Helvetica Neue, Helvetica, =
sans-serif; color:rgba(0, 0, 0, 1.0);" class=3D""><b class=3D"">To: =
</b></span><span style=3D"font-family: -webkit-system-font, Helvetica =
Neue, Helvetica, sans-serif;" class=3D"">ocaml/ocaml &lt;<a =
href=3D"mailto:ocaml@noreply.github.com" =
class=3D"">ocaml@noreply.github.com</a>&gt;<br =
class=3D""></span></div><div style=3D"margin-top: 0px; margin-right: =
0px; margin-bottom: 0px; margin-left: 0px;" class=3D""><span =
style=3D"font-family: -webkit-system-font, Helvetica Neue, Helvetica, =
sans-serif; color:rgba(0, 0, 0, 1.0);" class=3D""><b class=3D"">Subject: =
</b></span><span style=3D"font-family: -webkit-system-font, Helvetica =
Neue, Helvetica, sans-serif;" class=3D""><b class=3D"">[ocaml] Warning =
for missing .cmx files (#319)</b><br class=3D""></span></div><br =
class=3D""><div class=3D""><p class=3D"">This patch adds a warning for =
missing cmx files during cross-module inlining. This is useful because =
currently a misspecified build can silently damage the performance of =
programs.</p><p class=3D"">The patch also extends the <code =
class=3D"">-opaque</code> option to work on .mli files. Using <code =
class=3D"">-opaque</code> on an .ml file means that its implementation =
should not be considered for cross-module inlining. Using <code =
class=3D"">-opaque</code> on an .mli file means that no implementation =
of that interface should be considered for cross-module inlining.</p><p =
class=3D"">If an interface is marked as <code class=3D"">opaque</code> =
then the compiler does not search for a .cmx file, and so the new =
warning will not be triggered. This means that modules which are =
intended to be chosen at link-time (and so deliberately hide .cmx files) =
can avoid unnecessarily triggering the warning.</p><p class=3D"">As an =
illustration of the utility of this new warning, not all cmx files were =
installed by the OCaml distribution, and the patch also adjusts the =
installation rules to install these files (which were in compiler-libs =
and ocamldoc).</p>

<hr class=3D"">

<h4 class=3D"">You can view, comment on, or merge this pull request =
online at:</h4><p class=3D"">&nbsp;&nbsp;<a =
href=3D"https://github.com/ocaml/ocaml/pull/319" =
class=3D"">https://github.com/ocaml/ocaml/pull/319</a></p>

<h4 class=3D"">Commit Summary</h4>
<ul class=3D"">
  <li class=3D"">Add warning for missing .cmx files</li>
  <li class=3D"">Install compiler libs .cmx files</li>
  <li class=3D"">Install ocamldoc .cmx files</li>
</ul>

<h4 class=3D"">File Changes</h4>
<ul class=3D"">
  <li class=3D"">
    <strong class=3D"">M</strong>
    <a href=3D"https://github.com/ocaml/ocaml/pull/319/files#diff-0" =
class=3D"">Makefile</a>
    (2)
  </li>
  <li class=3D"">
    <strong class=3D"">M</strong>
    <a href=3D"https://github.com/ocaml/ocaml/pull/319/files#diff-1" =
class=3D"">asmcomp/closure.ml</a>
    (2)
  </li>
  <li class=3D"">
    <strong class=3D"">M</strong>
    <a href=3D"https://github.com/ocaml/ocaml/pull/319/files#diff-2" =
class=3D"">asmcomp/compilenv.ml</a>
    (24)
  </li>
  <li class=3D"">
    <strong class=3D"">M</strong>
    <a href=3D"https://github.com/ocaml/ocaml/pull/319/files#diff-3" =
class=3D"">ocamldoc/Makefile</a>
    (2)
  </li>
  <li class=3D"">
    <strong class=3D"">M</strong>
    <a href=3D"https://github.com/ocaml/ocaml/pull/319/files#diff-4" =
class=3D"">typing/cmi_format.ml</a>
    (4)
  </li>
  <li class=3D"">
    <strong class=3D"">M</strong>
    <a href=3D"https://github.com/ocaml/ocaml/pull/319/files#diff-5" =
class=3D"">typing/cmi_format.mli</a>
    (4)
  </li>
  <li class=3D"">
    <strong class=3D"">M</strong>
    <a href=3D"https://github.com/ocaml/ocaml/pull/319/files#diff-6" =
class=3D"">typing/cmt_format.ml</a>
    (9)
  </li>
  <li class=3D"">
    <strong class=3D"">M</strong>
    <a href=3D"https://github.com/ocaml/ocaml/pull/319/files#diff-7" =
class=3D"">typing/env.ml</a>
    (33)
  </li>
  <li class=3D"">
    <strong class=3D"">M</strong>
    <a href=3D"https://github.com/ocaml/ocaml/pull/319/files#diff-8" =
class=3D"">typing/env.mli</a>
    (3)
  </li>
  <li class=3D"">
    <strong class=3D"">M</strong>
    <a href=3D"https://github.com/ocaml/ocaml/pull/319/files#diff-9" =
class=3D"">utils/warnings.ml</a>
    (6)
  </li>
  <li class=3D"">
    <strong class=3D"">M</strong>
    <a href=3D"https://github.com/ocaml/ocaml/pull/319/files#diff-10" =
class=3D"">utils/warnings.mli</a>
    (1)
  </li>
</ul>

<h4 class=3D"">Patch Links:</h4>
<ul class=3D"">
  <li class=3D""><a href=3D"https://github.com/ocaml/ocaml/pull/319.patch"=
 class=3D"">https://github.com/ocaml/ocaml/pull/319.patch</a></li>
  <li class=3D""><a href=3D"https://github.com/ocaml/ocaml/pull/319.diff" =
class=3D"">https://github.com/ocaml/ocaml/pull/319.diff</a></li>
</ul><p =
style=3D"font-size:small;-webkit-text-size-adjust:none;color:#666;" =
class=3D"">=E2=80=94<br class=3D"">Reply to this email directly or <a =
href=3D"https://github.com/ocaml/ocaml/pull/319" class=3D"">view it on =
GitHub</a>.<img alt=3D"" height=3D"1" =
src=3D"https://github.com/notifications/beacon/ACrs8LY9BEQ-O3MNDXBhxsKhlij=
FJ2euks5pKzt1gaJpZM4GrDIC.gif" width=3D"1" class=3D""></p>
<div itemscope=3D"" itemtype=3D"http://schema.org/EmailMessage" =
class=3D"">
<div itemprop=3D"action" itemscope=3D"" =
itemtype=3D"http://schema.org/ViewAction" class=3D"">
  <link itemprop=3D"url" href=3D"https://github.com/ocaml/ocaml/pull/319" =
class=3D"">
  <meta itemprop=3D"name" content=3D"View Pull Request" class=3D"">
</div>
<meta itemprop=3D"description" content=3D"View this Pull Request on =
GitHub" class=3D"">
</div>

</div></blockquote></div><br class=3D""></div></body></html>=

--Apple-Mail=_EB35AE0E-38E6-4EED-B8C0-3C434CF2B304--


--===============8091904016104413640==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============8091904016104413640==--


From mirageos-devel-bounces@lists.xenproject.org Tue Jan 05 11:58:59 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 05 Jan 2016 11:58:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aGQGI-00072F-K0; Tue, 05 Jan 2016 11:58:50 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <anil@recoil.org>) id 1aGQGH-000728-CV
	for mirageos-devel@lists.xenproject.org; Tue, 05 Jan 2016 11:58:49 +0000
Received: from [85.158.137.68] by server-9.bemta-3.messagelabs.com id
	4F/99-03066-8FFAB865; Tue, 05 Jan 2016 11:58:48 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-12.tower-31.messagelabs.com!1451995121!13940327!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=0.5 required=7.0 tests=HTML_60_70,HTML_MESSAGE,
	RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 10218 invoked from network); 5 Jan 2016 11:58:41 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-12.tower-31.messagelabs.com with DHE-RSA-AES256-GCM-SHA384
	encrypted SMTP; 5 Jan 2016 11:58:41 -0000
Received: from bark.recoil.org (localhost [127.0.0.1])
	by bark.recoil.org (OpenSMTPD) with ESMTP id 5c1fd63b
	for <mirageos-devel@lists.xenproject.org>;
	Tue, 5 Jan 2016 11:58:40 +0000 (GMT)
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=recoil.org; h=from
	:content-type:subject:date:references:to:message-id
	:mime-version; s=selector1; bh=bweibAIJPBfkTCEUp2pnshMNoMM=; b=U
	GTrkaQnrxPnJYR+2P1QNMa1kRyBGwIvPKWhJc56e97IMZYD1WeEwbFKTa+a3G5sp
	J6nE52iBs8uUtOUp7BkJsNIE86J0700n3YyusYvaMzOhhkPX3Ms12xSsoo5u1c/+
	h1lQEbTGcBMLpNoUR9CwAjLMDMvVqZB9CA5RGPacn4=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=recoil.org; h=from
	:content-type:subject:date:references:to:message-id
	:mime-version; q=dns; s=selector1; b=CPSDOTnfYx5VQCc2/1totUY9eb1
	Dds5SeKgHRqDisia2sdjbsXShNaiKB0xCIuGPeFVDAUdbgTzuYcTDfTK4TQe4Sr0
	LyEuT7q6rb2HKiUB9FrQREXWi8tenrK69drpIxvbk5K7LPxud25/T0+Kue2seFqJ
	hRmafY+VX2QDKKxc=
Received: by bark.recoil.org (OpenSMTPD) with ESMTPSA id 95fdf582
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO
	for <mirageos-devel@lists.xenproject.org>;
	Tue, 5 Jan 2016 11:58:40 +0000 (GMT)
From: Anil Madhavapeddy <anil@recoil.org>
Date: Tue, 5 Jan 2016 11:58:39 +0000
References: <ocaml/ocaml/pull/319@github.com>
To: mirageos-devel <mirageos-devel@lists.xenproject.org>
Message-Id: <D4E1DE3E-0690-4ECD-8C1D-E7E35655FFE8@recoil.org>
Mime-Version: 1.0 (Mac OS X Mail 9.1 \(3096.5\))
X-Mailer: Apple Mail (2.3096.5)
Subject: [MirageOS-devel] Fwd: [ocaml] Warning for missing .cmx files (#319)
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============8091904016104413640=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org


--===============8091904016104413640==
Content-Type: multipart/alternative; boundary="Apple-Mail=_EB35AE0E-38E6-4EED-B8C0-3C434CF2B304"


--Apple-Mail=_EB35AE0E-38E6-4EED-B8C0-3C434CF2B304
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8

The cool features in OCaml 4.03 are adding up -- in addition to the low =
latency garbage collection patches, this one ensures that all of the =
.cmx files are always available during linking.  If they are not, then =
cross-module inlining is currently silently turned off, but with this, =
we can ensure the highest performance unikernel link.

Anil


> Begin forwarded message:
>=20
> From: Leo White <notifications@github.com>
> Date: 29 November 2015 at 18:29:09 GMT
> To: ocaml/ocaml <ocaml@noreply.github.com>
> Subject: [ocaml] Warning for missing .cmx files (#319)
>=20
> This patch adds a warning for missing cmx files during cross-module =
inlining. This is useful because currently a misspecified build can =
silently damage the performance of programs.
>=20
> The patch also extends the -opaque option to work on .mli files. Using =
-opaque on an .ml file means that its implementation should not be =
considered for cross-module inlining. Using -opaque on an .mli file =
means that no implementation of that interface should be considered for =
cross-module inlining.
>=20
> If an interface is marked as opaque then the compiler does not search =
for a .cmx file, and so the new warning will not be triggered. This =
means that modules which are intended to be chosen at link-time (and so =
deliberately hide .cmx files) can avoid unnecessarily triggering the =
warning.
>=20
> As an illustration of the utility of this new warning, not all cmx =
files were installed by the OCaml distribution, and the patch also =
adjusts the installation rules to install these files (which were in =
compiler-libs and ocamldoc).
>=20
> You can view, comment on, or merge this pull request online at:
>=20
>   https://github.com/ocaml/ocaml/pull/319 =
<https://github.com/ocaml/ocaml/pull/319>
> Commit Summary
>=20
> Add warning for missing .cmx files
> Install compiler libs .cmx files
> Install ocamldoc .cmx files
> File Changes
>=20
> M Makefile <https://github.com/ocaml/ocaml/pull/319/files#diff-0> (2)
> M asmcomp/closure.ml =
<https://github.com/ocaml/ocaml/pull/319/files#diff-1> (2)
> M asmcomp/compilenv.ml =
<https://github.com/ocaml/ocaml/pull/319/files#diff-2> (24)
> M ocamldoc/Makefile =
<https://github.com/ocaml/ocaml/pull/319/files#diff-3> (2)
> M typing/cmi_format.ml =
<https://github.com/ocaml/ocaml/pull/319/files#diff-4> (4)
> M typing/cmi_format.mli =
<https://github.com/ocaml/ocaml/pull/319/files#diff-5> (4)
> M typing/cmt_format.ml =
<https://github.com/ocaml/ocaml/pull/319/files#diff-6> (9)
> M typing/env.ml <https://github.com/ocaml/ocaml/pull/319/files#diff-7> =
(33)
> M typing/env.mli =
<https://github.com/ocaml/ocaml/pull/319/files#diff-8> (3)
> M utils/warnings.ml =
<https://github.com/ocaml/ocaml/pull/319/files#diff-9> (6)
> M utils/warnings.mli =
<https://github.com/ocaml/ocaml/pull/319/files#diff-10> (1)
> Patch Links:
>=20
> https://github.com/ocaml/ocaml/pull/319.patch =
<https://github.com/ocaml/ocaml/pull/319.patch>
> https://github.com/ocaml/ocaml/pull/319.diff =
<https://github.com/ocaml/ocaml/pull/319.diff>
> =E2=80=94
> Reply to this email directly or view it on GitHub =
<https://github.com/ocaml/ocaml/pull/319>.
>=20


--Apple-Mail=_EB35AE0E-38E6-4EED-B8C0-3C434CF2B304
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=utf-8

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html =
charset=3Dutf-8"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" =
class=3D"">The cool features in OCaml 4.03 are adding up -- in addition =
to the low latency garbage collection patches, this one ensures that all =
of the .cmx files are always available during linking. &nbsp;If they are =
not, then cross-module inlining is currently silently turned off, but =
with this, we can ensure the highest performance unikernel link.<div =
class=3D""><br class=3D""></div><div class=3D"">Anil</div><div =
class=3D""><br class=3D""><div><br class=3D""><blockquote type=3D"cite" =
class=3D""><div class=3D"">Begin forwarded message:</div><br =
class=3D"Apple-interchange-newline"><div style=3D"margin-top: 0px; =
margin-right: 0px; margin-bottom: 0px; margin-left: 0px;" class=3D""><span=
 style=3D"font-family: -webkit-system-font, Helvetica Neue, Helvetica, =
sans-serif; color:rgba(0, 0, 0, 1.0);" class=3D""><b class=3D"">From: =
</b></span><span style=3D"font-family: -webkit-system-font, Helvetica =
Neue, Helvetica, sans-serif;" class=3D"">Leo White &lt;<a =
href=3D"mailto:notifications@github.com" =
class=3D"">notifications@github.com</a>&gt;<br =
class=3D""></span></div><div style=3D"margin-top: 0px; margin-right: =
0px; margin-bottom: 0px; margin-left: 0px;" class=3D""><span =
style=3D"font-family: -webkit-system-font, Helvetica Neue, Helvetica, =
sans-serif; color:rgba(0, 0, 0, 1.0);" class=3D""><b class=3D"">Date: =
</b></span><span style=3D"font-family: -webkit-system-font, Helvetica =
Neue, Helvetica, sans-serif;" class=3D"">29 November 2015 at 18:29:09 =
GMT<br class=3D""></span></div><div style=3D"margin-top: 0px; =
margin-right: 0px; margin-bottom: 0px; margin-left: 0px;" class=3D""><span=
 style=3D"font-family: -webkit-system-font, Helvetica Neue, Helvetica, =
sans-serif; color:rgba(0, 0, 0, 1.0);" class=3D""><b class=3D"">To: =
</b></span><span style=3D"font-family: -webkit-system-font, Helvetica =
Neue, Helvetica, sans-serif;" class=3D"">ocaml/ocaml &lt;<a =
href=3D"mailto:ocaml@noreply.github.com" =
class=3D"">ocaml@noreply.github.com</a>&gt;<br =
class=3D""></span></div><div style=3D"margin-top: 0px; margin-right: =
0px; margin-bottom: 0px; margin-left: 0px;" class=3D""><span =
style=3D"font-family: -webkit-system-font, Helvetica Neue, Helvetica, =
sans-serif; color:rgba(0, 0, 0, 1.0);" class=3D""><b class=3D"">Subject: =
</b></span><span style=3D"font-family: -webkit-system-font, Helvetica =
Neue, Helvetica, sans-serif;" class=3D""><b class=3D"">[ocaml] Warning =
for missing .cmx files (#319)</b><br class=3D""></span></div><br =
class=3D""><div class=3D""><p class=3D"">This patch adds a warning for =
missing cmx files during cross-module inlining. This is useful because =
currently a misspecified build can silently damage the performance of =
programs.</p><p class=3D"">The patch also extends the <code =
class=3D"">-opaque</code> option to work on .mli files. Using <code =
class=3D"">-opaque</code> on an .ml file means that its implementation =
should not be considered for cross-module inlining. Using <code =
class=3D"">-opaque</code> on an .mli file means that no implementation =
of that interface should be considered for cross-module inlining.</p><p =
class=3D"">If an interface is marked as <code class=3D"">opaque</code> =
then the compiler does not search for a .cmx file, and so the new =
warning will not be triggered. This means that modules which are =
intended to be chosen at link-time (and so deliberately hide .cmx files) =
can avoid unnecessarily triggering the warning.</p><p class=3D"">As an =
illustration of the utility of this new warning, not all cmx files were =
installed by the OCaml distribution, and the patch also adjusts the =
installation rules to install these files (which were in compiler-libs =
and ocamldoc).</p>

<hr class=3D"">

<h4 class=3D"">You can view, comment on, or merge this pull request =
online at:</h4><p class=3D"">&nbsp;&nbsp;<a =
href=3D"https://github.com/ocaml/ocaml/pull/319" =
class=3D"">https://github.com/ocaml/ocaml/pull/319</a></p>

<h4 class=3D"">Commit Summary</h4>
<ul class=3D"">
  <li class=3D"">Add warning for missing .cmx files</li>
  <li class=3D"">Install compiler libs .cmx files</li>
  <li class=3D"">Install ocamldoc .cmx files</li>
</ul>

<h4 class=3D"">File Changes</h4>
<ul class=3D"">
  <li class=3D"">
    <strong class=3D"">M</strong>
    <a href=3D"https://github.com/ocaml/ocaml/pull/319/files#diff-0" =
class=3D"">Makefile</a>
    (2)
  </li>
  <li class=3D"">
    <strong class=3D"">M</strong>
    <a href=3D"https://github.com/ocaml/ocaml/pull/319/files#diff-1" =
class=3D"">asmcomp/closure.ml</a>
    (2)
  </li>
  <li class=3D"">
    <strong class=3D"">M</strong>
    <a href=3D"https://github.com/ocaml/ocaml/pull/319/files#diff-2" =
class=3D"">asmcomp/compilenv.ml</a>
    (24)
  </li>
  <li class=3D"">
    <strong class=3D"">M</strong>
    <a href=3D"https://github.com/ocaml/ocaml/pull/319/files#diff-3" =
class=3D"">ocamldoc/Makefile</a>
    (2)
  </li>
  <li class=3D"">
    <strong class=3D"">M</strong>
    <a href=3D"https://github.com/ocaml/ocaml/pull/319/files#diff-4" =
class=3D"">typing/cmi_format.ml</a>
    (4)
  </li>
  <li class=3D"">
    <strong class=3D"">M</strong>
    <a href=3D"https://github.com/ocaml/ocaml/pull/319/files#diff-5" =
class=3D"">typing/cmi_format.mli</a>
    (4)
  </li>
  <li class=3D"">
    <strong class=3D"">M</strong>
    <a href=3D"https://github.com/ocaml/ocaml/pull/319/files#diff-6" =
class=3D"">typing/cmt_format.ml</a>
    (9)
  </li>
  <li class=3D"">
    <strong class=3D"">M</strong>
    <a href=3D"https://github.com/ocaml/ocaml/pull/319/files#diff-7" =
class=3D"">typing/env.ml</a>
    (33)
  </li>
  <li class=3D"">
    <strong class=3D"">M</strong>
    <a href=3D"https://github.com/ocaml/ocaml/pull/319/files#diff-8" =
class=3D"">typing/env.mli</a>
    (3)
  </li>
  <li class=3D"">
    <strong class=3D"">M</strong>
    <a href=3D"https://github.com/ocaml/ocaml/pull/319/files#diff-9" =
class=3D"">utils/warnings.ml</a>
    (6)
  </li>
  <li class=3D"">
    <strong class=3D"">M</strong>
    <a href=3D"https://github.com/ocaml/ocaml/pull/319/files#diff-10" =
class=3D"">utils/warnings.mli</a>
    (1)
  </li>
</ul>

<h4 class=3D"">Patch Links:</h4>
<ul class=3D"">
  <li class=3D""><a href=3D"https://github.com/ocaml/ocaml/pull/319.patch"=
 class=3D"">https://github.com/ocaml/ocaml/pull/319.patch</a></li>
  <li class=3D""><a href=3D"https://github.com/ocaml/ocaml/pull/319.diff" =
class=3D"">https://github.com/ocaml/ocaml/pull/319.diff</a></li>
</ul><p =
style=3D"font-size:small;-webkit-text-size-adjust:none;color:#666;" =
class=3D"">=E2=80=94<br class=3D"">Reply to this email directly or <a =
href=3D"https://github.com/ocaml/ocaml/pull/319" class=3D"">view it on =
GitHub</a>.<img alt=3D"" height=3D"1" =
src=3D"https://github.com/notifications/beacon/ACrs8LY9BEQ-O3MNDXBhxsKhlij=
FJ2euks5pKzt1gaJpZM4GrDIC.gif" width=3D"1" class=3D""></p>
<div itemscope=3D"" itemtype=3D"http://schema.org/EmailMessage" =
class=3D"">
<div itemprop=3D"action" itemscope=3D"" =
itemtype=3D"http://schema.org/ViewAction" class=3D"">
  <link itemprop=3D"url" href=3D"https://github.com/ocaml/ocaml/pull/319" =
class=3D"">
  <meta itemprop=3D"name" content=3D"View Pull Request" class=3D"">
</div>
<meta itemprop=3D"description" content=3D"View this Pull Request on =
GitHub" class=3D"">
</div>

</div></blockquote></div><br class=3D""></div></body></html>=

--Apple-Mail=_EB35AE0E-38E6-4EED-B8C0-3C434CF2B304--


--===============8091904016104413640==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============8091904016104413640==--


From mirageos-devel-bounces@lists.xenproject.org Tue Jan 05 14:32:16 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 05 Jan 2016 14:32:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aGSef-0000M7-Hh; Tue, 05 Jan 2016 14:32:09 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <talex5@gmail.com>) id 1aGSee-0000Lz-EX
	for mirageos-devel@lists.xenproject.org; Tue, 05 Jan 2016 14:32:08 +0000
Received: from [85.158.137.68] by server-16.bemta-3.messagelabs.com id
	AE/64-07451-7E3DB865; Tue, 05 Jan 2016 14:32:07 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-4.tower-31.messagelabs.com!1452004325!4456896!1
X-Originating-IP: [209.85.213.46]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 62318 invoked from network); 5 Jan 2016 14:32:06 -0000
Received: from mail-vk0-f46.google.com (HELO mail-vk0-f46.google.com)
	(209.85.213.46)
	by server-4.tower-31.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 5 Jan 2016 14:32:06 -0000
Received: by mail-vk0-f46.google.com with SMTP id f2so227917668vkb.3
	for <mirageos-devel@lists.xenproject.org>;
	Tue, 05 Jan 2016 06:32:06 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:date:message-id:subject:from:to:content-type;
	bh=GOCjH3N4rcSgU/dS2+Vfy035bCgVcOfMo+3kx2DjDVM=;
	b=LbKZGJduT/tt2giRoyQVc53YoGQ2KL0t8uyUD7/zoK2zBCmZApjc75ffPlz/UubiWX
	j3d1tmZMAhB1gpc7kC66MqdqGiJ7K3WG0P36MCjWg0mc+7YnrW69TwwratlGSCYBVZRn
	Lkcj/YUZjU7KLDNy8lwKDk2h+oAK52d/ethy5ttpvmwtfRg5+ypfB575liCCPz5/WsqB
	1oeXx+JkKQraouyvm78kuUvxyOYKJwYJvXRDY6EddgK9NOz3OwmGW5JnGSmZv1BDlZD2
	PR+968NF2rqv+NHy0yc8rUQ2ds/xS2mN4I7HjTdGYD26oP6Cnteh6Pj8nsFgB9JQ/kGz
	8DPg==
MIME-Version: 1.0
X-Received: by 10.31.16.101 with SMTP id g98mr66348959vki.41.1452004325320;
	Tue, 05 Jan 2016 06:32:05 -0800 (PST)
Received: by 10.31.128.84 with HTTP; Tue, 5 Jan 2016 06:32:05 -0800 (PST)
Date: Tue, 5 Jan 2016 14:32:05 +0000
Message-ID: <CAG4opy_EQ6TBndo9ELwSHce=FAQJVHkuMAEZNuwbxJjNsa1D1g@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: [MirageOS-devel] mirage-qubes 0.1
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

I've made a 0.1 release of mirage-qubes, a Mirage library for writing
unikernels to run under QubesOS:

  https://github.com/talex5/mirage-qubes

There's simple skeleton unikernel using it here:

  https://github.com/talex5/qubes-mirage-skeleton

And a larger one here:

  https://github.com/talex5/qubes-mirage-firewall

They all use the Logs library, which means they only support OCaml >=
4.02 at the moment.


-- 
Dr Thomas Leonard        http://roscidus.com/blog/
GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Tue Jan 05 14:32:16 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 05 Jan 2016 14:32:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aGSef-0000M7-Hh; Tue, 05 Jan 2016 14:32:09 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <talex5@gmail.com>) id 1aGSee-0000Lz-EX
	for mirageos-devel@lists.xenproject.org; Tue, 05 Jan 2016 14:32:08 +0000
Received: from [85.158.137.68] by server-16.bemta-3.messagelabs.com id
	AE/64-07451-7E3DB865; Tue, 05 Jan 2016 14:32:07 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-4.tower-31.messagelabs.com!1452004325!4456896!1
X-Originating-IP: [209.85.213.46]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 62318 invoked from network); 5 Jan 2016 14:32:06 -0000
Received: from mail-vk0-f46.google.com (HELO mail-vk0-f46.google.com)
	(209.85.213.46)
	by server-4.tower-31.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 5 Jan 2016 14:32:06 -0000
Received: by mail-vk0-f46.google.com with SMTP id f2so227917668vkb.3
	for <mirageos-devel@lists.xenproject.org>;
	Tue, 05 Jan 2016 06:32:06 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:date:message-id:subject:from:to:content-type;
	bh=GOCjH3N4rcSgU/dS2+Vfy035bCgVcOfMo+3kx2DjDVM=;
	b=LbKZGJduT/tt2giRoyQVc53YoGQ2KL0t8uyUD7/zoK2zBCmZApjc75ffPlz/UubiWX
	j3d1tmZMAhB1gpc7kC66MqdqGiJ7K3WG0P36MCjWg0mc+7YnrW69TwwratlGSCYBVZRn
	Lkcj/YUZjU7KLDNy8lwKDk2h+oAK52d/ethy5ttpvmwtfRg5+ypfB575liCCPz5/WsqB
	1oeXx+JkKQraouyvm78kuUvxyOYKJwYJvXRDY6EddgK9NOz3OwmGW5JnGSmZv1BDlZD2
	PR+968NF2rqv+NHy0yc8rUQ2ds/xS2mN4I7HjTdGYD26oP6Cnteh6Pj8nsFgB9JQ/kGz
	8DPg==
MIME-Version: 1.0
X-Received: by 10.31.16.101 with SMTP id g98mr66348959vki.41.1452004325320;
	Tue, 05 Jan 2016 06:32:05 -0800 (PST)
Received: by 10.31.128.84 with HTTP; Tue, 5 Jan 2016 06:32:05 -0800 (PST)
Date: Tue, 5 Jan 2016 14:32:05 +0000
Message-ID: <CAG4opy_EQ6TBndo9ELwSHce=FAQJVHkuMAEZNuwbxJjNsa1D1g@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: [MirageOS-devel] mirage-qubes 0.1
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

I've made a 0.1 release of mirage-qubes, a Mirage library for writing
unikernels to run under QubesOS:

  https://github.com/talex5/mirage-qubes

There's simple skeleton unikernel using it here:

  https://github.com/talex5/qubes-mirage-skeleton

And a larger one here:

  https://github.com/talex5/qubes-mirage-firewall

They all use the Logs library, which means they only support OCaml >=
4.02 at the moment.


-- 
Dr Thomas Leonard        http://roscidus.com/blog/
GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Thu Jan 07 12:14:27 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 07 Jan 2016 12:14:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aH9SM-00041g-4Q; Thu, 07 Jan 2016 12:14:18 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <amc79@cam.ac.uk>) id 1aH9SK-00041b-Nq
	for mirageos-devel@lists.xenproject.org; Thu, 07 Jan 2016 12:14:16 +0000
Received: from [193.109.254.147] by server-4.bemta-14.messagelabs.com id
	36/07-10715-8965E865; Thu, 07 Jan 2016 12:14:16 +0000
X-Env-Sender: amc79@cam.ac.uk
X-Msg-Ref: server-12.tower-27.messagelabs.com!1452168493!15224002!1
X-Originating-IP: [131.111.8.133]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 23206 invoked from network); 7 Jan 2016 12:08:13 -0000
Received: from ppsw-33.csi.cam.ac.uk (HELO ppsw-33.csi.cam.ac.uk)
	(131.111.8.133)
	by server-12.tower-27.messagelabs.com with DHE-RSA-AES256-GCM-SHA384
	encrypted SMTP; 7 Jan 2016 12:08:13 -0000
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: http://www.cam.ac.uk/cs/email/scanner/
Received: from cpc91232-cmbg18-2-0-cust222.5-4.cable.virginm.net
	([82.2.124.223]:46170 helo=[10.0.1.8])
	by ppsw-33.csi.cam.ac.uk (smtp.hermes.cam.ac.uk [131.111.8.157]:25)
	with esmtpsa (PLAIN:amc79) (TLSv1:ECDHE-RSA-AES256-SHA:256)
	id 1aH9MS-000L83-iV (Exim 4.86_36-e07b163) for
	mirageos-devel@lists.xenproject.org
	(return-path <amc79@cam.ac.uk>); Thu, 07 Jan 2016 12:08:12 +0000
From: Amir Chaudhry <amc79@cam.ac.uk>
Message-Id: <BE797305-B965-439A-8B53-12118B6BEF52@cam.ac.uk>
Date: Thu, 7 Jan 2016 12:08:12 +0000
To: mirageos-devel <mirageos-devel@lists.xenproject.org>
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
X-Mailer: Apple Mail (2.2104)
Subject: [MirageOS-devel] Unikernel.org forum and a logo for unikernels!
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

SGkgZm9sa3MsCgpJIGhvcGUgZXZlcnlvbmUgaGFkIGEgZ3JlYXQgbmV3IHllYXIhCgpJJ2QgbGlr
ZSB0byB0ZWxsIHlvdSBhYm91dCB0d28gdGhpbmdzIEknbSB3b3JraW5nIG9uIGFuZCBnZXQgc29t
ZSBmZWVkYmFjay4gIFRoZSBmaXJzdCBpcyB1bmlrZXJuZWwub3JnIGFuZCB0aGUgc2Vjb25kIGlz
IGEgbG9nbyBmb3IgdW5pa2VybmVscy4KCiMjIyBVbmlrZXJuZWwub3JnICMjIwoKU29tZSBvZiB5
b3UgbWF5IGhhdmUgbm90aWNlZCBhIG5ldyBzaXRlIGNhbGxlZCB1bmlrZXJuZWwub3JnLiAgVGhp
cyBpcyBpbnRlbmRlZCB0byBiZSBhIGdhdGhlcmluZyBwbGFjZSBmb3IgZGV2ZWxvcG1lbnQgb24g
dW5pa2VybmVscyBhbmQgaGVscCB1cyBlYXNlIHRoZSBwcm9jZXNzIG9mIGJyaW5naW5nIGluIG5l
dyB1c2VycyBhbmQgY29udHJpYnV0b3JzIGFjcm9zcyBhbGwgdGhlIHByb2plY3RzLgoKQXMgcGFy
dCBvZiB0aGlzLCB0aGVyZSdzIG5vdyBhIG5ldyBkaXNjdXNzaW9uIGZvcnVtIGF0IGh0dHBzOi8v
ZGV2ZWwudW5pa2VybmVsLm9yZy4gVGhpcyBzaG91bGQgKmF1Z21lbnQqIHRoZSBleGlzdGluZyBz
b3VyY2VzIGFuZCBoZWxwIGZhY2lsaXRhdGUgbW9yZSBjcm9zcy1wb2xsaW5hdGlvbiBhbmQgY29v
cGVyYXRpb24gYWNyb3NzIHVuaWtlcm5lbCBwcm9qZWN0cy4gSW4gcGFydGljdWxhciwgd2Ugd2ls
bCBhbGwgYmVuZWZpdCBieSB3b3JraW5nIHRvZ2V0aGVyIHRvIHNvbHZlIGNvbW1vbiBwcm9ibGVt
cyBhcm91bmQgY29uZmlndXJhdGlvbiwgZGVwbG95bWVudCBhbmQgbW9uaXRvcmluZy4KCllvdSBj
YW4gY2F0Y2h1cCBvbiB0aGUgZGlzY3Vzc2lvbiB0aGF0IGxlZCB0byB0aGUgZm9ydW0gWzFdIGFu
ZCBhbHNvIHNoYXJlIGZlZWRiYWNrIGFib3V0IHRoZSBzaXRlIGluIGdlbmVyYWwgWzJdLgoKCiMj
IyBMb2dvIGZvciB1bmlrZXJuZWxzICMjIwoKSSd2ZSBhbHNvIGJlZW4gd29ya2luZyB0b3dhcmRz
IGEgbG9nbyBmb3IgdW5pa2VybmVscyBhbmQgSSdkIGxpa2UgdG8gZ2F0aGVyIGZlZWRiYWNrIGZy
b20gdGhlIHVuaWtlcm5lbCBjb21tdW5pdHkhIFRoZXJlJ3MgYmVlbiBhIDk5ZGVzaWducyBjb250
ZXN0IHJ1bm5pbmcgZm9yIGEgd2hpbGUg4oCUIHdoZXJlIGRlc2lnbmVycyBoYXZlIHN1Ym1pdHRl
ZCBqdXN0IG92ZXIgNDAwIGVudHJpZXMg4oCUIGFuZCBhIHNob3J0LWxpc3QgZm9yIGNvbW11bml0
eSBmZWVkYmFjayBpcyBub3cgYXQgaHR0cHM6Ly85OWRlc2lnbnMuY28udWsvbG9nby1kZXNpZ24v
dm90ZS05OWdqeWkgKGxpbmsgb3BlbiB1bnRpbCBhdCBsZWFzdCAxNXRoIEphbikuCgpUaGUgcmVh
c29uIGZvciBjcmVhdGluZyBhIGxvZ28gaXMgdGhhdCB0aGUgdW5pa2VybmVsIGFwcHJvYWNoIGFz
IGEgKmNvbmNlcHQqIGhhcyBiZWVuIGdldHRpbmcgbXVjaCBtb3JlIGF0dGVudGlvbiBhbmQgYnkg
YnVpbGRpbmcgbW9yZSBvZiBicmFuZCBhcm91bmQgaXQgd2UgY2FuIGdyZWF0bHkgaW1wcm92ZSB0
aGUgc3RhbmRpbmcgb2YgcHJvamVjdHMgYW5kIGluY3JlYXNlIGFkb3B0aW9uIQoKQXQgdGhpcyBz
dGFnZSwgdGhlIGFpbSBpcyB0byBnYXRoZXIgd2lkZXIgZmVlZGJhY2sgdG8gaW5mb3JtIHRoZSBu
ZXh0IHN0ZXAuICBUaGUgZmluYWwgZGVzaWduIHdpbGwgYmUgc2VsZWN0ZWQgKmF0IGEgbGF0ZXIg
ZGF0ZSog4oCUIGFmdGVyIGZ1cnRoZXIgaXRlcmF0aW9uIHdpdGggZGVzaWduZXJzLiAgT25jZSBh
IGxvZ28gaXMgY2hvc2VuLCBpdCB3aWxsIGJlIHVzZWQgb24gdW5pa2VybmVsLm9yZyBhbmQgd2ls
bCBoZWxwIGluZm9ybSB0aGUgZGVzaWduIG9mIHRoZSByZXN0IG9mIHRoZSBzaXRlLgoKRm9yIG1v
cmUgYmFja2dyb3VuZCwgeW91IGNhbiBqb2luIHRoZSBkaXNjdXNzaW9uIHRocmVhZCBbM10sIHJl
YWQgdGhlIGRlc2lnbiBicmllZiBbNF0gYW5kIGxvb2sgdGhyb3VnaCBhbGwgdGhlIGVudHJpZXMg
WzVdLiBEb24ndCBmb3JnZXQgdG8gbGVhdmUgZmVlZGJhY2sgWzZdIQoKMjAxNiB3aWxsIGJlIGFu
IGV4Y2l0aW5nIHllYXIgZm9yIGFsbCB0aGUgdW5pa2VybmVsIHByb2plY3RzIGFuZCBJIGxvb2sg
Zm9yd2FyZCB0byBnZXR0aW5nIHN0YXJ0ZWQhCgoqKkxpbmtzKioKCi0tIHVuaWtlcm5lbC5vcmcg
LS0gIApbMV0gRGlzY291cnNlIGZvcnVtOiBodHRwczovL2dpdGh1Yi5jb20vVW5pa2VybmVsLVN5
c3RlbXMvdW5pa2VybmVsLm9yZy9pc3N1ZXMvMjUgIApbMl0gV2h5IHVuaWtlcm5lbC5vcmc6IGh0
dHBzOi8vZGV2ZWwudW5pa2VybmVsLm9yZy90L3doeS13ZS1uZWVkLXVuaWtlcm5lbC1vcmcvMTgK
Ci0tIExvZ28gY29udGVzdCAtLSAgClszXSBMb2dvIGRpc2N1c3Npb246IGh0dHBzOi8vZGV2ZWwu
dW5pa2VybmVsLm9yZy90L2EtbG9nby1mb3ItdW5pa2VybmVscy80NwpbNF0gTG9nbyBkZXNpZ24g
YnJpZWY6IGh0dHBzOi8vOTlkZXNpZ25zLmNvLnVrL2xvZ28tZGVzaWduL2NvbnRlc3RzL21ha2Ut
ZnVuLWxvZ28tb3Blbi1zb3VyY2UtdW5pa2VybmVsLXByb2plY3RzLTU2MjYxMi9icmllZiAgCls1
XSBBbGwgbG9nbyBlbnRyaWVzOiBodHRwczovLzk5ZGVzaWducy5jby51ay9sb2dvLWRlc2lnbi9j
b250ZXN0cy9tYWtlLWZ1bi1sb2dvLW9wZW4tc291cmNlLXVuaWtlcm5lbC1wcm9qZWN0cy01NjI2
MTIvZW50cmllcyAgCls2XSBMb2dvIHNob3J0LWxpc3Q6IGh0dHBzOi8vOTlkZXNpZ25zLmNvLnVr
L2xvZ28tZGVzaWduL3ZvdGUtOTlnanlpCgpCZXN0IHdpc2hlcywKQW1pcgoKX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTWlyYWdlT1MtZGV2ZWwgbWFpbGlu
ZyBsaXN0Ck1pcmFnZU9TLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHA6Ly9saXN0cy54
ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vbWlyYWdlb3MtZGV2ZWwK

From mirageos-devel-bounces@lists.xenproject.org Thu Jan 07 12:14:27 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 07 Jan 2016 12:14:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aH9SM-00041g-4Q; Thu, 07 Jan 2016 12:14:18 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <amc79@cam.ac.uk>) id 1aH9SK-00041b-Nq
	for mirageos-devel@lists.xenproject.org; Thu, 07 Jan 2016 12:14:16 +0000
Received: from [193.109.254.147] by server-4.bemta-14.messagelabs.com id
	36/07-10715-8965E865; Thu, 07 Jan 2016 12:14:16 +0000
X-Env-Sender: amc79@cam.ac.uk
X-Msg-Ref: server-12.tower-27.messagelabs.com!1452168493!15224002!1
X-Originating-IP: [131.111.8.133]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 23206 invoked from network); 7 Jan 2016 12:08:13 -0000
Received: from ppsw-33.csi.cam.ac.uk (HELO ppsw-33.csi.cam.ac.uk)
	(131.111.8.133)
	by server-12.tower-27.messagelabs.com with DHE-RSA-AES256-GCM-SHA384
	encrypted SMTP; 7 Jan 2016 12:08:13 -0000
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: http://www.cam.ac.uk/cs/email/scanner/
Received: from cpc91232-cmbg18-2-0-cust222.5-4.cable.virginm.net
	([82.2.124.223]:46170 helo=[10.0.1.8])
	by ppsw-33.csi.cam.ac.uk (smtp.hermes.cam.ac.uk [131.111.8.157]:25)
	with esmtpsa (PLAIN:amc79) (TLSv1:ECDHE-RSA-AES256-SHA:256)
	id 1aH9MS-000L83-iV (Exim 4.86_36-e07b163) for
	mirageos-devel@lists.xenproject.org
	(return-path <amc79@cam.ac.uk>); Thu, 07 Jan 2016 12:08:12 +0000
From: Amir Chaudhry <amc79@cam.ac.uk>
Message-Id: <BE797305-B965-439A-8B53-12118B6BEF52@cam.ac.uk>
Date: Thu, 7 Jan 2016 12:08:12 +0000
To: mirageos-devel <mirageos-devel@lists.xenproject.org>
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
X-Mailer: Apple Mail (2.2104)
Subject: [MirageOS-devel] Unikernel.org forum and a logo for unikernels!
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

SGkgZm9sa3MsCgpJIGhvcGUgZXZlcnlvbmUgaGFkIGEgZ3JlYXQgbmV3IHllYXIhCgpJJ2QgbGlr
ZSB0byB0ZWxsIHlvdSBhYm91dCB0d28gdGhpbmdzIEknbSB3b3JraW5nIG9uIGFuZCBnZXQgc29t
ZSBmZWVkYmFjay4gIFRoZSBmaXJzdCBpcyB1bmlrZXJuZWwub3JnIGFuZCB0aGUgc2Vjb25kIGlz
IGEgbG9nbyBmb3IgdW5pa2VybmVscy4KCiMjIyBVbmlrZXJuZWwub3JnICMjIwoKU29tZSBvZiB5
b3UgbWF5IGhhdmUgbm90aWNlZCBhIG5ldyBzaXRlIGNhbGxlZCB1bmlrZXJuZWwub3JnLiAgVGhp
cyBpcyBpbnRlbmRlZCB0byBiZSBhIGdhdGhlcmluZyBwbGFjZSBmb3IgZGV2ZWxvcG1lbnQgb24g
dW5pa2VybmVscyBhbmQgaGVscCB1cyBlYXNlIHRoZSBwcm9jZXNzIG9mIGJyaW5naW5nIGluIG5l
dyB1c2VycyBhbmQgY29udHJpYnV0b3JzIGFjcm9zcyBhbGwgdGhlIHByb2plY3RzLgoKQXMgcGFy
dCBvZiB0aGlzLCB0aGVyZSdzIG5vdyBhIG5ldyBkaXNjdXNzaW9uIGZvcnVtIGF0IGh0dHBzOi8v
ZGV2ZWwudW5pa2VybmVsLm9yZy4gVGhpcyBzaG91bGQgKmF1Z21lbnQqIHRoZSBleGlzdGluZyBz
b3VyY2VzIGFuZCBoZWxwIGZhY2lsaXRhdGUgbW9yZSBjcm9zcy1wb2xsaW5hdGlvbiBhbmQgY29v
cGVyYXRpb24gYWNyb3NzIHVuaWtlcm5lbCBwcm9qZWN0cy4gSW4gcGFydGljdWxhciwgd2Ugd2ls
bCBhbGwgYmVuZWZpdCBieSB3b3JraW5nIHRvZ2V0aGVyIHRvIHNvbHZlIGNvbW1vbiBwcm9ibGVt
cyBhcm91bmQgY29uZmlndXJhdGlvbiwgZGVwbG95bWVudCBhbmQgbW9uaXRvcmluZy4KCllvdSBj
YW4gY2F0Y2h1cCBvbiB0aGUgZGlzY3Vzc2lvbiB0aGF0IGxlZCB0byB0aGUgZm9ydW0gWzFdIGFu
ZCBhbHNvIHNoYXJlIGZlZWRiYWNrIGFib3V0IHRoZSBzaXRlIGluIGdlbmVyYWwgWzJdLgoKCiMj
IyBMb2dvIGZvciB1bmlrZXJuZWxzICMjIwoKSSd2ZSBhbHNvIGJlZW4gd29ya2luZyB0b3dhcmRz
IGEgbG9nbyBmb3IgdW5pa2VybmVscyBhbmQgSSdkIGxpa2UgdG8gZ2F0aGVyIGZlZWRiYWNrIGZy
b20gdGhlIHVuaWtlcm5lbCBjb21tdW5pdHkhIFRoZXJlJ3MgYmVlbiBhIDk5ZGVzaWducyBjb250
ZXN0IHJ1bm5pbmcgZm9yIGEgd2hpbGUg4oCUIHdoZXJlIGRlc2lnbmVycyBoYXZlIHN1Ym1pdHRl
ZCBqdXN0IG92ZXIgNDAwIGVudHJpZXMg4oCUIGFuZCBhIHNob3J0LWxpc3QgZm9yIGNvbW11bml0
eSBmZWVkYmFjayBpcyBub3cgYXQgaHR0cHM6Ly85OWRlc2lnbnMuY28udWsvbG9nby1kZXNpZ24v
dm90ZS05OWdqeWkgKGxpbmsgb3BlbiB1bnRpbCBhdCBsZWFzdCAxNXRoIEphbikuCgpUaGUgcmVh
c29uIGZvciBjcmVhdGluZyBhIGxvZ28gaXMgdGhhdCB0aGUgdW5pa2VybmVsIGFwcHJvYWNoIGFz
IGEgKmNvbmNlcHQqIGhhcyBiZWVuIGdldHRpbmcgbXVjaCBtb3JlIGF0dGVudGlvbiBhbmQgYnkg
YnVpbGRpbmcgbW9yZSBvZiBicmFuZCBhcm91bmQgaXQgd2UgY2FuIGdyZWF0bHkgaW1wcm92ZSB0
aGUgc3RhbmRpbmcgb2YgcHJvamVjdHMgYW5kIGluY3JlYXNlIGFkb3B0aW9uIQoKQXQgdGhpcyBz
dGFnZSwgdGhlIGFpbSBpcyB0byBnYXRoZXIgd2lkZXIgZmVlZGJhY2sgdG8gaW5mb3JtIHRoZSBu
ZXh0IHN0ZXAuICBUaGUgZmluYWwgZGVzaWduIHdpbGwgYmUgc2VsZWN0ZWQgKmF0IGEgbGF0ZXIg
ZGF0ZSog4oCUIGFmdGVyIGZ1cnRoZXIgaXRlcmF0aW9uIHdpdGggZGVzaWduZXJzLiAgT25jZSBh
IGxvZ28gaXMgY2hvc2VuLCBpdCB3aWxsIGJlIHVzZWQgb24gdW5pa2VybmVsLm9yZyBhbmQgd2ls
bCBoZWxwIGluZm9ybSB0aGUgZGVzaWduIG9mIHRoZSByZXN0IG9mIHRoZSBzaXRlLgoKRm9yIG1v
cmUgYmFja2dyb3VuZCwgeW91IGNhbiBqb2luIHRoZSBkaXNjdXNzaW9uIHRocmVhZCBbM10sIHJl
YWQgdGhlIGRlc2lnbiBicmllZiBbNF0gYW5kIGxvb2sgdGhyb3VnaCBhbGwgdGhlIGVudHJpZXMg
WzVdLiBEb24ndCBmb3JnZXQgdG8gbGVhdmUgZmVlZGJhY2sgWzZdIQoKMjAxNiB3aWxsIGJlIGFu
IGV4Y2l0aW5nIHllYXIgZm9yIGFsbCB0aGUgdW5pa2VybmVsIHByb2plY3RzIGFuZCBJIGxvb2sg
Zm9yd2FyZCB0byBnZXR0aW5nIHN0YXJ0ZWQhCgoqKkxpbmtzKioKCi0tIHVuaWtlcm5lbC5vcmcg
LS0gIApbMV0gRGlzY291cnNlIGZvcnVtOiBodHRwczovL2dpdGh1Yi5jb20vVW5pa2VybmVsLVN5
c3RlbXMvdW5pa2VybmVsLm9yZy9pc3N1ZXMvMjUgIApbMl0gV2h5IHVuaWtlcm5lbC5vcmc6IGh0
dHBzOi8vZGV2ZWwudW5pa2VybmVsLm9yZy90L3doeS13ZS1uZWVkLXVuaWtlcm5lbC1vcmcvMTgK
Ci0tIExvZ28gY29udGVzdCAtLSAgClszXSBMb2dvIGRpc2N1c3Npb246IGh0dHBzOi8vZGV2ZWwu
dW5pa2VybmVsLm9yZy90L2EtbG9nby1mb3ItdW5pa2VybmVscy80NwpbNF0gTG9nbyBkZXNpZ24g
YnJpZWY6IGh0dHBzOi8vOTlkZXNpZ25zLmNvLnVrL2xvZ28tZGVzaWduL2NvbnRlc3RzL21ha2Ut
ZnVuLWxvZ28tb3Blbi1zb3VyY2UtdW5pa2VybmVsLXByb2plY3RzLTU2MjYxMi9icmllZiAgCls1
XSBBbGwgbG9nbyBlbnRyaWVzOiBodHRwczovLzk5ZGVzaWducy5jby51ay9sb2dvLWRlc2lnbi9j
b250ZXN0cy9tYWtlLWZ1bi1sb2dvLW9wZW4tc291cmNlLXVuaWtlcm5lbC1wcm9qZWN0cy01NjI2
MTIvZW50cmllcyAgCls2XSBMb2dvIHNob3J0LWxpc3Q6IGh0dHBzOi8vOTlkZXNpZ25zLmNvLnVr
L2xvZ28tZGVzaWduL3ZvdGUtOTlnanlpCgpCZXN0IHdpc2hlcywKQW1pcgoKX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTWlyYWdlT1MtZGV2ZWwgbWFpbGlu
ZyBsaXN0Ck1pcmFnZU9TLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHA6Ly9saXN0cy54
ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vbWlyYWdlb3MtZGV2ZWwK

From mirageos-devel-bounces@lists.xenproject.org Thu Jan 07 21:57:42 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 07 Jan 2016 21:57:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aHIYn-0000Kh-NW; Thu, 07 Jan 2016 21:57:33 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <daniel.buenzli@erratique.ch>) id 1aHIYm-0000Kc-Ad
	for mirageos-devel@lists.xenproject.org; Thu, 07 Jan 2016 21:57:32 +0000
Received: from [85.158.139.211] by server-6.bemta-5.messagelabs.com id
	AC/38-22089-B4FDE865; Thu, 07 Jan 2016 21:57:31 +0000
X-Env-Sender: daniel.buenzli@erratique.ch
X-Msg-Ref: server-5.tower-206.messagelabs.com!1452203850!14577922!1
X-Originating-IP: [74.55.86.74]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
	VHJ1c3RlZCBJUDogNzQuNTUuODYuNzQgPT4gMzA4NTYz\n
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 50416 invoked from network); 7 Jan 2016 21:57:30 -0000
Received: from mail6.webfaction.com (HELO smtp.webfaction.com) (74.55.86.74)
	by server-5.tower-206.messagelabs.com with SMTP;
	7 Jan 2016 21:57:30 -0000
Received: from [172.20.10.2]
	(130.227.197.178.dynamic.wless.zhbmb00p-cgnat.res.cust.swisscom.ch
	[178.197.227.130])
	by smtp.webfaction.com (Postfix) with ESMTP id EAFF120C05BA;
	Thu,  7 Jan 2016 21:57:28 +0000 (UTC)
Date: Thu, 7 Jan 2016 22:57:25 +0100
From: =?utf-8?Q?Daniel_B=C3=BCnzli?= <daniel.buenzli@erratique.ch>
To: OCaml List <caml-list@inria.fr>, 
	"=?utf-8?Q?mirageos-devel=40lists.xenproject.org?="
	<mirageos-devel@lists.xenproject.org>
Message-ID: <6E4D5FC9200B4A0B8A4F4F20AD6D44D0@erratique.ch>
X-Mailer: sparrow 1.6.4 (build 1178)
MIME-Version: 1.0
Content-Disposition: inline
Cc: =?utf-8?Q?T=C3=B6r=C3=B6k_Edwin?= <edwin@etorok.net>
Subject: [MirageOS-devel] [ANN] Logs 0.5.0
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

SGVsbG8sICAKCkknZCBsaWtlIHRvIGFubm91bmNlIExvZ3MgMC41LjAgYW4gaW5jb21wYXRpYmxl
IHJlbGVhc2Ugb2YgTG9ncy4gU2VlIHRoZSByZWxlYXNlIG5vdGVzIGZvciBkZXRhaWxzOiAgCgog
IGh0dHBzOi8vZ2l0aHViLmNvbS9kYnVlbnpsaS9sb2dzL2Jsb2IvdjAuNS4wL0NIQU5HRVMubWQK
CkxvZ3MgcHJvdmlkZXMgYSBsb2dnaW5nIGluZnJhc3RydWN0dXJlIGZvciBPQ2FtbApIb21lcGFn
ZTogaHR0cDovL2VycmF0aXF1ZS5jaC9zb2Z0d2FyZS9sb2dzICAKQVBJIGRvY3M6IGh0dHA6Ly9l
cnJhdGlxdWUuY2gvc29mdHdhcmUvbG9ncy9kb2MvCgpNYW55IHRoYW5rcyB0byBFZHdpbiBUw7Zy
w7ZrIGZvciBoaXMgZ29vZCBzdWdnZXN0aW9ucy4gIAoKQmVzdCwgIAoKRGFuaWVsCgoKCgoKCgoK
CgoKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpNaXJh
Z2VPUy1kZXZlbCBtYWlsaW5nIGxpc3QKTWlyYWdlT1MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5v
cmcKaHR0cDovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9t
aXJhZ2Vvcy1kZXZlbAo=

From mirageos-devel-bounces@lists.xenproject.org Thu Jan 07 21:57:42 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 07 Jan 2016 21:57:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aHIYn-0000Kh-NW; Thu, 07 Jan 2016 21:57:33 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <daniel.buenzli@erratique.ch>) id 1aHIYm-0000Kc-Ad
	for mirageos-devel@lists.xenproject.org; Thu, 07 Jan 2016 21:57:32 +0000
Received: from [85.158.139.211] by server-6.bemta-5.messagelabs.com id
	AC/38-22089-B4FDE865; Thu, 07 Jan 2016 21:57:31 +0000
X-Env-Sender: daniel.buenzli@erratique.ch
X-Msg-Ref: server-5.tower-206.messagelabs.com!1452203850!14577922!1
X-Originating-IP: [74.55.86.74]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
	VHJ1c3RlZCBJUDogNzQuNTUuODYuNzQgPT4gMzA4NTYz\n
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 50416 invoked from network); 7 Jan 2016 21:57:30 -0000
Received: from mail6.webfaction.com (HELO smtp.webfaction.com) (74.55.86.74)
	by server-5.tower-206.messagelabs.com with SMTP;
	7 Jan 2016 21:57:30 -0000
Received: from [172.20.10.2]
	(130.227.197.178.dynamic.wless.zhbmb00p-cgnat.res.cust.swisscom.ch
	[178.197.227.130])
	by smtp.webfaction.com (Postfix) with ESMTP id EAFF120C05BA;
	Thu,  7 Jan 2016 21:57:28 +0000 (UTC)
Date: Thu, 7 Jan 2016 22:57:25 +0100
From: =?utf-8?Q?Daniel_B=C3=BCnzli?= <daniel.buenzli@erratique.ch>
To: OCaml List <caml-list@inria.fr>, 
	"=?utf-8?Q?mirageos-devel=40lists.xenproject.org?="
	<mirageos-devel@lists.xenproject.org>
Message-ID: <6E4D5FC9200B4A0B8A4F4F20AD6D44D0@erratique.ch>
X-Mailer: sparrow 1.6.4 (build 1178)
MIME-Version: 1.0
Content-Disposition: inline
Cc: =?utf-8?Q?T=C3=B6r=C3=B6k_Edwin?= <edwin@etorok.net>
Subject: [MirageOS-devel] [ANN] Logs 0.5.0
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

SGVsbG8sICAKCkknZCBsaWtlIHRvIGFubm91bmNlIExvZ3MgMC41LjAgYW4gaW5jb21wYXRpYmxl
IHJlbGVhc2Ugb2YgTG9ncy4gU2VlIHRoZSByZWxlYXNlIG5vdGVzIGZvciBkZXRhaWxzOiAgCgog
IGh0dHBzOi8vZ2l0aHViLmNvbS9kYnVlbnpsaS9sb2dzL2Jsb2IvdjAuNS4wL0NIQU5HRVMubWQK
CkxvZ3MgcHJvdmlkZXMgYSBsb2dnaW5nIGluZnJhc3RydWN0dXJlIGZvciBPQ2FtbApIb21lcGFn
ZTogaHR0cDovL2VycmF0aXF1ZS5jaC9zb2Z0d2FyZS9sb2dzICAKQVBJIGRvY3M6IGh0dHA6Ly9l
cnJhdGlxdWUuY2gvc29mdHdhcmUvbG9ncy9kb2MvCgpNYW55IHRoYW5rcyB0byBFZHdpbiBUw7Zy
w7ZrIGZvciBoaXMgZ29vZCBzdWdnZXN0aW9ucy4gIAoKQmVzdCwgIAoKRGFuaWVsCgoKCgoKCgoK
CgoKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpNaXJh
Z2VPUy1kZXZlbCBtYWlsaW5nIGxpc3QKTWlyYWdlT1MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5v
cmcKaHR0cDovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9t
aXJhZ2Vvcy1kZXZlbAo=

From mirageos-devel-bounces@lists.xenproject.org Thu Jan 07 22:26:35 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 07 Jan 2016 22:26:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aHJ0p-0001WC-UA; Thu, 07 Jan 2016 22:26:31 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <daniel.buenzli@erratique.ch>) id 1aHJ0o-0001W7-QX
	for mirageos-devel@lists.xenproject.org; Thu, 07 Jan 2016 22:26:30 +0000
Received: from [193.109.254.147] by server-6.bemta-14.messagelabs.com id
	59/71-16618-516EE865; Thu, 07 Jan 2016 22:26:29 +0000
X-Env-Sender: daniel.buenzli@erratique.ch
X-Msg-Ref: server-11.tower-27.messagelabs.com!1452205586!15372142!1
X-Originating-IP: [74.55.86.74]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
	VHJ1c3RlZCBJUDogNzQuNTUuODYuNzQgPT4gMzA4NTYz\n
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 46605 invoked from network); 7 Jan 2016 22:26:26 -0000
Received: from mail6.webfaction.com (HELO smtp.webfaction.com) (74.55.86.74)
	by server-11.tower-27.messagelabs.com with SMTP;
	7 Jan 2016 22:26:26 -0000
Received: from [172.20.10.2]
	(130.227.197.178.dynamic.wless.zhbmb00p-cgnat.res.cust.swisscom.ch
	[178.197.227.130])
	by smtp.webfaction.com (Postfix) with ESMTP id BEEDF20C0285;
	Thu,  7 Jan 2016 22:26:24 +0000 (UTC)
Date: Thu, 7 Jan 2016 23:26:22 +0100
From: =?utf-8?Q?Daniel_B=C3=BCnzli?= <daniel.buenzli@erratique.ch>
To: Malcolm Matalka <mmatalka@gmail.com>
Message-ID: <EBFEEDC4A2DB493D9BDC175328F232C1@erratique.ch>
In-Reply-To: <A2029462A47F41CE893ED5AAA1953063@erratique.ch>
References: <9FD64A9BC7C04CE0815129733504EE2E@erratique.ch>
	<864mfyuowr.fsf@gmail.com>
	<28842B11CF15444B87C434125E84684F@erratique.ch>
	<49465B43C5554C629CFD4D2B115B6FDD@erratique.ch>
	<86r3j2t6y1.fsf@gmail.com>
	<A2029462A47F41CE893ED5AAA1953063@erratique.ch>
X-Mailer: sparrow 1.6.4 (build 1178)
MIME-Version: 1.0
Content-Disposition: inline
Cc: Drup <drupyog@zoho.com>, Jeremy Yallop <yallop@gmail.com>,
	OCaml List <caml-list@inria.fr>,
	"=?utf-8?Q?mirageos-devel=5C=40lists.xenproject.org?="
	<mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] [Caml-list] [ANN] Logs 0.4.2
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

TGUgdmVuZHJlZGksIDQgZMOpY2VtYnJlIDIwMTUgw6AgMTk6MzAsIERhbmllbCBCw7xuemxpIGEg
w6ljcml0IDoKPiBCdXQgaXQgc2hvdWxkIGJlIGFkZGVkIHRoYXQgaXQgbWF5IGJlIHByb2JsZW1h
dGljIGlmIHlvdSB3YW50IHRoZSBzeW5jaHJvbm91cyBzZW1hbnRpY3MgYW5kIHlvdSBhcmUgdXNp
bmcgbHd0Lgo+ICAKClRoZSByZWNlbnRseSByZWxlYXNlZCBMb2dzIDAuNS4wIGNhbiBub3cgc3Vw
cG9ydCB0aGlzIHNjZW5hcmlvLiBJIGFsc28gYWRkZWQgYSBub3RlIGluIHRoZSBkb2N1bWVudGF0
aW9uIHRvIHRyeSB0byBjbGFyaWZ5IHRoZXNlIGlzc3VlczogIAoKICBodHRwOi8vZXJyYXRpcXVl
LmNoL3NvZnR3YXJlL2xvZ3MvZG9jL0xvZ3MuaHRtbCNzeW5jCgpCZXN0LCAgCgpEYW5pZWwKCgoK
Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk1pcmFnZU9T
LWRldmVsIG1haWxpbmcgbGlzdApNaXJhZ2VPUy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpo
dHRwOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL21pcmFn
ZW9zLWRldmVsCg==

From mirageos-devel-bounces@lists.xenproject.org Thu Jan 07 22:26:35 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 07 Jan 2016 22:26:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aHJ0p-0001WC-UA; Thu, 07 Jan 2016 22:26:31 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <daniel.buenzli@erratique.ch>) id 1aHJ0o-0001W7-QX
	for mirageos-devel@lists.xenproject.org; Thu, 07 Jan 2016 22:26:30 +0000
Received: from [193.109.254.147] by server-6.bemta-14.messagelabs.com id
	59/71-16618-516EE865; Thu, 07 Jan 2016 22:26:29 +0000
X-Env-Sender: daniel.buenzli@erratique.ch
X-Msg-Ref: server-11.tower-27.messagelabs.com!1452205586!15372142!1
X-Originating-IP: [74.55.86.74]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
	VHJ1c3RlZCBJUDogNzQuNTUuODYuNzQgPT4gMzA4NTYz\n
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 46605 invoked from network); 7 Jan 2016 22:26:26 -0000
Received: from mail6.webfaction.com (HELO smtp.webfaction.com) (74.55.86.74)
	by server-11.tower-27.messagelabs.com with SMTP;
	7 Jan 2016 22:26:26 -0000
Received: from [172.20.10.2]
	(130.227.197.178.dynamic.wless.zhbmb00p-cgnat.res.cust.swisscom.ch
	[178.197.227.130])
	by smtp.webfaction.com (Postfix) with ESMTP id BEEDF20C0285;
	Thu,  7 Jan 2016 22:26:24 +0000 (UTC)
Date: Thu, 7 Jan 2016 23:26:22 +0100
From: =?utf-8?Q?Daniel_B=C3=BCnzli?= <daniel.buenzli@erratique.ch>
To: Malcolm Matalka <mmatalka@gmail.com>
Message-ID: <EBFEEDC4A2DB493D9BDC175328F232C1@erratique.ch>
In-Reply-To: <A2029462A47F41CE893ED5AAA1953063@erratique.ch>
References: <9FD64A9BC7C04CE0815129733504EE2E@erratique.ch>
	<864mfyuowr.fsf@gmail.com>
	<28842B11CF15444B87C434125E84684F@erratique.ch>
	<49465B43C5554C629CFD4D2B115B6FDD@erratique.ch>
	<86r3j2t6y1.fsf@gmail.com>
	<A2029462A47F41CE893ED5AAA1953063@erratique.ch>
X-Mailer: sparrow 1.6.4 (build 1178)
MIME-Version: 1.0
Content-Disposition: inline
Cc: Drup <drupyog@zoho.com>, Jeremy Yallop <yallop@gmail.com>,
	OCaml List <caml-list@inria.fr>,
	"=?utf-8?Q?mirageos-devel=5C=40lists.xenproject.org?="
	<mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] [Caml-list] [ANN] Logs 0.4.2
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

TGUgdmVuZHJlZGksIDQgZMOpY2VtYnJlIDIwMTUgw6AgMTk6MzAsIERhbmllbCBCw7xuemxpIGEg
w6ljcml0IDoKPiBCdXQgaXQgc2hvdWxkIGJlIGFkZGVkIHRoYXQgaXQgbWF5IGJlIHByb2JsZW1h
dGljIGlmIHlvdSB3YW50IHRoZSBzeW5jaHJvbm91cyBzZW1hbnRpY3MgYW5kIHlvdSBhcmUgdXNp
bmcgbHd0Lgo+ICAKClRoZSByZWNlbnRseSByZWxlYXNlZCBMb2dzIDAuNS4wIGNhbiBub3cgc3Vw
cG9ydCB0aGlzIHNjZW5hcmlvLiBJIGFsc28gYWRkZWQgYSBub3RlIGluIHRoZSBkb2N1bWVudGF0
aW9uIHRvIHRyeSB0byBjbGFyaWZ5IHRoZXNlIGlzc3VlczogIAoKICBodHRwOi8vZXJyYXRpcXVl
LmNoL3NvZnR3YXJlL2xvZ3MvZG9jL0xvZ3MuaHRtbCNzeW5jCgpCZXN0LCAgCgpEYW5pZWwKCgoK
Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk1pcmFnZU9T
LWRldmVsIG1haWxpbmcgbGlzdApNaXJhZ2VPUy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpo
dHRwOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL21pcmFn
ZW9zLWRldmVsCg==

From mirageos-devel-bounces@lists.xenproject.org Fri Jan 08 11:20:28 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 08 Jan 2016 11:20:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aHV5e-0000yD-IA; Fri, 08 Jan 2016 11:20:18 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <tim@gfxmonk.net>) id 1aHV5c-0000y8-TW
	for mirageos-devel@lists.xenproject.org; Fri, 08 Jan 2016 11:20:17 +0000
Received: from [85.158.139.211] by server-5.bemta-5.messagelabs.com id
	9F/49-03235-07B9F865; Fri, 08 Jan 2016 11:20:16 +0000
X-Env-Sender: tim@gfxmonk.net
X-Msg-Ref: server-9.tower-206.messagelabs.com!1452252014!14677073!1
X-Originating-IP: [209.85.213.42]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 60322 invoked from network); 8 Jan 2016 11:20:15 -0000
Received: from mail-vk0-f42.google.com (HELO mail-vk0-f42.google.com)
	(209.85.213.42)
	by server-9.tower-206.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 8 Jan 2016 11:20:15 -0000
Received: by mail-vk0-f42.google.com with SMTP id i129so51762910vkb.0
	for <mirageos-devel@lists.xenproject.org>;
	Fri, 08 Jan 2016 03:20:15 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=gfxmonk-net.20150623.gappssmtp.com; s=20150623;
	h=mime-version:from:date:message-id:subject:to:content-type;
	bh=Z1AjrPsSj42Q4tXcJGRcfQ/WA0gdvYBxQVQh2zhQVQQ=;
	b=s5sZ9KmA4+jewnZ1n4teCr+9Mlkb2ltL7ZyUAZ/NZ3dlUx8hcDWSD4GPXDjhI3DmuQ
	nG8Ai6ISpyWAwWjgArA1+5/PoJ0U+FcgP+fxHeUVQa5Nrqc7PDxJPRgEcliWb5IqMbHl
	k4DiWmYmAkv1kb9R/Tr+irz1C90+qAl+BuZU8bQHmGH8N/pErxwBqvqxBD3x83tY/z7e
	uzxiIyc0Tbx8CnR2hmLKqaQs/1pxYldRw4yprsRQATdJjAbZrA2+t/wtcK1JR7lMJXVX
	rHh86FLUCZmBQH4auSz+ClkIOY4Neo/pMDgxFqXmFE11koBcUBNgnFjYt/bTtNuRt4ht
	9iLg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:from:date:message-id:subject:to
	:content-type;
	bh=Z1AjrPsSj42Q4tXcJGRcfQ/WA0gdvYBxQVQh2zhQVQQ=;
	b=bghcVsjcJb8cyfBFjQUjXsfYOhLwT+H6Z30icHnDNgxGip0l2Zr3XR6osy5TapOW6L
	OqserdfsoXWIKoA+RhCicPFLEjJ3aH7sDA1ipTSoDuA9DDwQy8AtjJq9XTBcQEAfqWPZ
	ltALn//QuHA+9eByfCU2MQq8qX0d40I4HirmBmkSH0VDKeeoiBaQZrc/Wk8MU29bhlY0
	HflmSPuAsNFpq1QlhwFadjUeJHoQ7X+ffkkHai2B/S0zoBLZdlcbezRCwdKG6DMMtemi
	jiBT3CDMc2PCn7QWAbsK6nZnBIYkkh7I9NdmrbTTy19Tb0OChJmnoSq/bBaR25szFtyU
	rcwQ==
X-Gm-Message-State: ALoCoQkx3hV35xmn8xfaajJKXpjKczG7HmAysQS2BfB0Qgmv8eDce6GSnDlzwQn6fOQTa9NEGCHYSVCtJe7f4gVGNfsTVhd47A==
X-Received: by 10.31.13.79 with SMTP id 76mr48426517vkn.148.1452252014477;
	Fri, 08 Jan 2016 03:20:14 -0800 (PST)
Received: from mail-vk0-f50.google.com (mail-vk0-f50.google.com.
	[209.85.213.50]) by smtp.gmail.com with ESMTPSA id
	x71sm10899470vkx.4.2016.01.08.03.20.13
	for <mirageos-devel@lists.xenproject.org>
	(version=TLSv1/SSLv3 cipher=OTHER);
	Fri, 08 Jan 2016 03:20:14 -0800 (PST)
Received: by mail-vk0-f50.google.com with SMTP id k1so189823455vkb.2
	for <mirageos-devel@lists.xenproject.org>;
	Fri, 08 Jan 2016 03:20:13 -0800 (PST)
X-Received: by 10.31.9.72 with SMTP id 69mr78766886vkj.123.1452252013792; Fri,
	08 Jan 2016 03:20:13 -0800 (PST)
MIME-Version: 1.0
Received: by 10.31.69.132 with HTTP; Fri, 8 Jan 2016 03:19:54 -0800 (PST)
From: Tim Cuthbertson <tim@gfxmonk.net>
Date: Fri, 8 Jan 2016 22:19:54 +1100
X-Gmail-Original-Message-ID: <CAC-LLDiE4J11bvyJXrvee45MwBtH7OifOHUNo3SwDAW0YfPusQ@mail.gmail.com>
Message-ID: <CAC-LLDiE4J11bvyJXrvee45MwBtH7OifOHUNo3SwDAW0YfPusQ@mail.gmail.com>
To: mirageos-devel@lists.xenproject.org
Subject: [MirageOS-devel] Compiling C components for mirage-xen
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

I'd like to use `Bcrypt` from the `safepass` opam module in passe[0].
There is sadly no `safepass-xen` package, and trying to just use
`safepass` results in link errors:


<...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o): In function
`BF_crypt':
(.text+0x1b97): undefined reference to `__errno_location'
<...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o): In function
`BF_crypt':
(.text+0x2112): undefined reference to `__errno_location'
<...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o): In function
`_crypt_blowfish_rn':
(.text+0x21ea): undefined reference to `__errno_location'
<...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o): In function
`_crypt_gensalt_blowfish_rn':
(.text+0x2575): undefined reference to `__errno_location'
<...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o): In function
`_crypt_gensalt_blowfish_rn':
(.text+0x25a6): undefined reference to `__errno_location'
<...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o):(.text+0x25b7):
more undefined references to `__errno_location' follow


I'm assuming I'd need to customise the build process tp produce an
appropriate C library as with `gmp-xen`, `zarith-xen` etc. The trouble
is twofold:

 - I don't really know what the thing I'm doing is. Is mirage-xen a
different architecture? A different ABI? Do C libraries need to be
cross-compiled, or just compiled with particular flags so that they'll
work on xen-minios instead of gnu/linux?

 - The existing scripts seem to be pretty ad-hoc - zarith gets away
mainly with particular CFLAGS
(https://github.com/ocaml/opam-repository/blob/master/packages/zarith-xen/zarith-xen.1.4/files/mirage-install.sh),
while gmp looks like a full cross-compilation using `--target` (and
then does some other sneaky things).

safepass uses OASIS for its build system, which doesn't seem to have
any cross-compilation functionality built in as far as I could tell.
Can anyone give me pointers on what I'd need to do to safepass' build
scripts to get this working in mirage-xen, or at the least some
clarification on why it doesn't work as-is and how cross compilation
works for C libraries used in mirage-xen?

[0]: https://github.com/timbertson/passe

Thanks,
- Tim.

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Fri Jan 08 11:20:28 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 08 Jan 2016 11:20:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aHV5e-0000yD-IA; Fri, 08 Jan 2016 11:20:18 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <tim@gfxmonk.net>) id 1aHV5c-0000y8-TW
	for mirageos-devel@lists.xenproject.org; Fri, 08 Jan 2016 11:20:17 +0000
Received: from [85.158.139.211] by server-5.bemta-5.messagelabs.com id
	9F/49-03235-07B9F865; Fri, 08 Jan 2016 11:20:16 +0000
X-Env-Sender: tim@gfxmonk.net
X-Msg-Ref: server-9.tower-206.messagelabs.com!1452252014!14677073!1
X-Originating-IP: [209.85.213.42]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 60322 invoked from network); 8 Jan 2016 11:20:15 -0000
Received: from mail-vk0-f42.google.com (HELO mail-vk0-f42.google.com)
	(209.85.213.42)
	by server-9.tower-206.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 8 Jan 2016 11:20:15 -0000
Received: by mail-vk0-f42.google.com with SMTP id i129so51762910vkb.0
	for <mirageos-devel@lists.xenproject.org>;
	Fri, 08 Jan 2016 03:20:15 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=gfxmonk-net.20150623.gappssmtp.com; s=20150623;
	h=mime-version:from:date:message-id:subject:to:content-type;
	bh=Z1AjrPsSj42Q4tXcJGRcfQ/WA0gdvYBxQVQh2zhQVQQ=;
	b=s5sZ9KmA4+jewnZ1n4teCr+9Mlkb2ltL7ZyUAZ/NZ3dlUx8hcDWSD4GPXDjhI3DmuQ
	nG8Ai6ISpyWAwWjgArA1+5/PoJ0U+FcgP+fxHeUVQa5Nrqc7PDxJPRgEcliWb5IqMbHl
	k4DiWmYmAkv1kb9R/Tr+irz1C90+qAl+BuZU8bQHmGH8N/pErxwBqvqxBD3x83tY/z7e
	uzxiIyc0Tbx8CnR2hmLKqaQs/1pxYldRw4yprsRQATdJjAbZrA2+t/wtcK1JR7lMJXVX
	rHh86FLUCZmBQH4auSz+ClkIOY4Neo/pMDgxFqXmFE11koBcUBNgnFjYt/bTtNuRt4ht
	9iLg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:from:date:message-id:subject:to
	:content-type;
	bh=Z1AjrPsSj42Q4tXcJGRcfQ/WA0gdvYBxQVQh2zhQVQQ=;
	b=bghcVsjcJb8cyfBFjQUjXsfYOhLwT+H6Z30icHnDNgxGip0l2Zr3XR6osy5TapOW6L
	OqserdfsoXWIKoA+RhCicPFLEjJ3aH7sDA1ipTSoDuA9DDwQy8AtjJq9XTBcQEAfqWPZ
	ltALn//QuHA+9eByfCU2MQq8qX0d40I4HirmBmkSH0VDKeeoiBaQZrc/Wk8MU29bhlY0
	HflmSPuAsNFpq1QlhwFadjUeJHoQ7X+ffkkHai2B/S0zoBLZdlcbezRCwdKG6DMMtemi
	jiBT3CDMc2PCn7QWAbsK6nZnBIYkkh7I9NdmrbTTy19Tb0OChJmnoSq/bBaR25szFtyU
	rcwQ==
X-Gm-Message-State: ALoCoQkx3hV35xmn8xfaajJKXpjKczG7HmAysQS2BfB0Qgmv8eDce6GSnDlzwQn6fOQTa9NEGCHYSVCtJe7f4gVGNfsTVhd47A==
X-Received: by 10.31.13.79 with SMTP id 76mr48426517vkn.148.1452252014477;
	Fri, 08 Jan 2016 03:20:14 -0800 (PST)
Received: from mail-vk0-f50.google.com (mail-vk0-f50.google.com.
	[209.85.213.50]) by smtp.gmail.com with ESMTPSA id
	x71sm10899470vkx.4.2016.01.08.03.20.13
	for <mirageos-devel@lists.xenproject.org>
	(version=TLSv1/SSLv3 cipher=OTHER);
	Fri, 08 Jan 2016 03:20:14 -0800 (PST)
Received: by mail-vk0-f50.google.com with SMTP id k1so189823455vkb.2
	for <mirageos-devel@lists.xenproject.org>;
	Fri, 08 Jan 2016 03:20:13 -0800 (PST)
X-Received: by 10.31.9.72 with SMTP id 69mr78766886vkj.123.1452252013792; Fri,
	08 Jan 2016 03:20:13 -0800 (PST)
MIME-Version: 1.0
Received: by 10.31.69.132 with HTTP; Fri, 8 Jan 2016 03:19:54 -0800 (PST)
From: Tim Cuthbertson <tim@gfxmonk.net>
Date: Fri, 8 Jan 2016 22:19:54 +1100
X-Gmail-Original-Message-ID: <CAC-LLDiE4J11bvyJXrvee45MwBtH7OifOHUNo3SwDAW0YfPusQ@mail.gmail.com>
Message-ID: <CAC-LLDiE4J11bvyJXrvee45MwBtH7OifOHUNo3SwDAW0YfPusQ@mail.gmail.com>
To: mirageos-devel@lists.xenproject.org
Subject: [MirageOS-devel] Compiling C components for mirage-xen
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

I'd like to use `Bcrypt` from the `safepass` opam module in passe[0].
There is sadly no `safepass-xen` package, and trying to just use
`safepass` results in link errors:


<...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o): In function
`BF_crypt':
(.text+0x1b97): undefined reference to `__errno_location'
<...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o): In function
`BF_crypt':
(.text+0x2112): undefined reference to `__errno_location'
<...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o): In function
`_crypt_blowfish_rn':
(.text+0x21ea): undefined reference to `__errno_location'
<...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o): In function
`_crypt_gensalt_blowfish_rn':
(.text+0x2575): undefined reference to `__errno_location'
<...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o): In function
`_crypt_gensalt_blowfish_rn':
(.text+0x25a6): undefined reference to `__errno_location'
<...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o):(.text+0x25b7):
more undefined references to `__errno_location' follow


I'm assuming I'd need to customise the build process tp produce an
appropriate C library as with `gmp-xen`, `zarith-xen` etc. The trouble
is twofold:

 - I don't really know what the thing I'm doing is. Is mirage-xen a
different architecture? A different ABI? Do C libraries need to be
cross-compiled, or just compiled with particular flags so that they'll
work on xen-minios instead of gnu/linux?

 - The existing scripts seem to be pretty ad-hoc - zarith gets away
mainly with particular CFLAGS
(https://github.com/ocaml/opam-repository/blob/master/packages/zarith-xen/zarith-xen.1.4/files/mirage-install.sh),
while gmp looks like a full cross-compilation using `--target` (and
then does some other sneaky things).

safepass uses OASIS for its build system, which doesn't seem to have
any cross-compilation functionality built in as far as I could tell.
Can anyone give me pointers on what I'd need to do to safepass' build
scripts to get this working in mirage-xen, or at the least some
clarification on why it doesn't work as-is and how cross compilation
works for C libraries used in mirage-xen?

[0]: https://github.com/timbertson/passe

Thanks,
- Tim.

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Fri Jan 08 12:14:48 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 08 Jan 2016 12:14:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aHVwM-0003Nv-5l; Fri, 08 Jan 2016 12:14:46 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <talex5@gmail.com>) id 1aHVwK-0003Nf-7i
	for mirageos-devel@lists.xenproject.org; Fri, 08 Jan 2016 12:14:44 +0000
Received: from [193.109.254.147] by server-10.bemta-14.messagelabs.com id
	29/25-25438-338AF865; Fri, 08 Jan 2016 12:14:43 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-10.tower-27.messagelabs.com!1452255281!15545747!1
X-Originating-IP: [209.85.213.49]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 29010 invoked from network); 8 Jan 2016 12:14:42 -0000
Received: from mail-vk0-f49.google.com (HELO mail-vk0-f49.google.com)
	(209.85.213.49)
	by server-10.tower-27.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 8 Jan 2016 12:14:42 -0000
Received: by mail-vk0-f49.google.com with SMTP id k1so190442935vkb.2
	for <mirageos-devel@lists.xenproject.org>;
	Fri, 08 Jan 2016 04:14:42 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=OYU3zoQfLi1wbzq6ADjhhdJBi+Mocnkeltjl1UQCr/4=;
	b=XAec8J0g/az98McMuGABDYmbKkcdE2q8dI7hyZuPjmz9qVQLLndwPi6FK95d9Do/Wv
	jqkeKLP3LIE8fnvf0JGXsiICoU5mh+NvfxBX9SL/BmaFbDV0WBrpKhrb3dgvZOLZ+CA/
	sL/6BpJoRzRyvbT3qZciky/SUjKMtO0UbgBZQUacTp8RttzUrB2Dw1KZM5uGG5fo+4h5
	xd+798Smd6dHr6Lkn3/wFzuJViyCHToPKLKsRYy0pwUs/yyyJfyCUp6K0gEHoPHw6NXT
	Dq4tUa8NoztRAC1aiSYt6X9s9qWsP3qxsH/VQ740hf4qN2PEYdNxTEaci2wo46X6V211
	zfmQ==
MIME-Version: 1.0
X-Received: by 10.31.129.11 with SMTP id c11mr71016631vkd.52.1452255281304;
	Fri, 08 Jan 2016 04:14:41 -0800 (PST)
Received: by 10.31.128.84 with HTTP; Fri, 8 Jan 2016 04:14:41 -0800 (PST)
In-Reply-To: <CAC-LLDiE4J11bvyJXrvee45MwBtH7OifOHUNo3SwDAW0YfPusQ@mail.gmail.com>
References: <CAC-LLDiE4J11bvyJXrvee45MwBtH7OifOHUNo3SwDAW0YfPusQ@mail.gmail.com>
Date: Fri, 8 Jan 2016 12:14:41 +0000
Message-ID: <CAG4opy-aED7kSKUZoFoq4Gka3KenpD2-ET_f58S520rGVXu-Jg@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Tim Cuthbertson <tim@gfxmonk.net>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Compiling C components for mirage-xen
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 8 January 2016 at 11:19, Tim Cuthbertson <tim@gfxmonk.net> wrote:
> I'd like to use `Bcrypt` from the `safepass` opam module in passe[0].
> There is sadly no `safepass-xen` package, and trying to just use
> `safepass` results in link errors:
>
>
> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o): In function
> `BF_crypt':
> (.text+0x1b97): undefined reference to `__errno_location'
> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o): In function
> `BF_crypt':
> (.text+0x2112): undefined reference to `__errno_location'
> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o): In function
> `_crypt_blowfish_rn':
> (.text+0x21ea): undefined reference to `__errno_location'
> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o): In function
> `_crypt_gensalt_blowfish_rn':
> (.text+0x2575): undefined reference to `__errno_location'
> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o): In function
> `_crypt_gensalt_blowfish_rn':
> (.text+0x25a6): undefined reference to `__errno_location'
> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o):(.text+0x25b7):
> more undefined references to `__errno_location' follow
>
>
> I'm assuming I'd need to customise the build process tp produce an
> appropriate C library as with `gmp-xen`, `zarith-xen` etc. The trouble
> is twofold:
>
>  - I don't really know what the thing I'm doing is. Is mirage-xen a
> different architecture? A different ABI? Do C libraries need to be
> cross-compiled, or just compiled with particular flags so that they'll
> work on xen-minios instead of gnu/linux?

C libraries need to be compiled with different headers and flags (in
particular, -mno-red-zone). Using libraries compiled for Linux will
often appear to work, but may fail when interrupts occur, so the build
makes it hard to use them by accident.

However, OCaml binaries can be shared (ocamlopt doesn't use a red zone
and the OCaml ABI is the same).

>  - The existing scripts seem to be pretty ad-hoc - zarith gets away
> mainly with particular CFLAGS
> (https://github.com/ocaml/opam-repository/blob/master/packages/zarith-xen/zarith-xen.1.4/files/mirage-install.sh),

It's using pkg-config to get the important flags. The others are
optimisations (except -fno-builtin, which is either not needed or
should be supplied by Mini-OS).

> while gmp looks like a full cross-compilation using `--target` (and
> then does some other sneaky things).
>
> safepass uses OASIS for its build system, which doesn't seem to have
> any cross-compilation functionality built in as far as I could tell.
> Can anyone give me pointers on what I'd need to do to safepass' build
> scripts to get this working in mirage-xen, or at the least some
> clarification on why it doesn't work as-is and how cross compilation
> works for C libraries used in mirage-xen?
>
> [0]: https://github.com/timbertson/passe

The io-page library provides a fairly simple template:

https://github.com/mirage/io-page/blob/master/_oasis

It builds io_page_unix and io_page_xen libraries. The C flags are
added to the main META file with:

XMETAExtraLines: xen_linkopts = "-lio_page_xen_stubs"

There's a command to get the Xen flags:

PostConfCommand: ocaml postconf.ml

The Xen source file (stub_alloc_pages_xen.c) is just a symlink to the
Unix one (you need a separate file because OASIS can't compile the
same source path with different flags).


-- 
Dr Thomas Leonard        http://roscidus.com/blog/
GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Fri Jan 08 12:14:48 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 08 Jan 2016 12:14:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aHVwM-0003Nv-5l; Fri, 08 Jan 2016 12:14:46 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <talex5@gmail.com>) id 1aHVwK-0003Nf-7i
	for mirageos-devel@lists.xenproject.org; Fri, 08 Jan 2016 12:14:44 +0000
Received: from [193.109.254.147] by server-10.bemta-14.messagelabs.com id
	29/25-25438-338AF865; Fri, 08 Jan 2016 12:14:43 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-10.tower-27.messagelabs.com!1452255281!15545747!1
X-Originating-IP: [209.85.213.49]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 29010 invoked from network); 8 Jan 2016 12:14:42 -0000
Received: from mail-vk0-f49.google.com (HELO mail-vk0-f49.google.com)
	(209.85.213.49)
	by server-10.tower-27.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 8 Jan 2016 12:14:42 -0000
Received: by mail-vk0-f49.google.com with SMTP id k1so190442935vkb.2
	for <mirageos-devel@lists.xenproject.org>;
	Fri, 08 Jan 2016 04:14:42 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=OYU3zoQfLi1wbzq6ADjhhdJBi+Mocnkeltjl1UQCr/4=;
	b=XAec8J0g/az98McMuGABDYmbKkcdE2q8dI7hyZuPjmz9qVQLLndwPi6FK95d9Do/Wv
	jqkeKLP3LIE8fnvf0JGXsiICoU5mh+NvfxBX9SL/BmaFbDV0WBrpKhrb3dgvZOLZ+CA/
	sL/6BpJoRzRyvbT3qZciky/SUjKMtO0UbgBZQUacTp8RttzUrB2Dw1KZM5uGG5fo+4h5
	xd+798Smd6dHr6Lkn3/wFzuJViyCHToPKLKsRYy0pwUs/yyyJfyCUp6K0gEHoPHw6NXT
	Dq4tUa8NoztRAC1aiSYt6X9s9qWsP3qxsH/VQ740hf4qN2PEYdNxTEaci2wo46X6V211
	zfmQ==
MIME-Version: 1.0
X-Received: by 10.31.129.11 with SMTP id c11mr71016631vkd.52.1452255281304;
	Fri, 08 Jan 2016 04:14:41 -0800 (PST)
Received: by 10.31.128.84 with HTTP; Fri, 8 Jan 2016 04:14:41 -0800 (PST)
In-Reply-To: <CAC-LLDiE4J11bvyJXrvee45MwBtH7OifOHUNo3SwDAW0YfPusQ@mail.gmail.com>
References: <CAC-LLDiE4J11bvyJXrvee45MwBtH7OifOHUNo3SwDAW0YfPusQ@mail.gmail.com>
Date: Fri, 8 Jan 2016 12:14:41 +0000
Message-ID: <CAG4opy-aED7kSKUZoFoq4Gka3KenpD2-ET_f58S520rGVXu-Jg@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Tim Cuthbertson <tim@gfxmonk.net>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Compiling C components for mirage-xen
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 8 January 2016 at 11:19, Tim Cuthbertson <tim@gfxmonk.net> wrote:
> I'd like to use `Bcrypt` from the `safepass` opam module in passe[0].
> There is sadly no `safepass-xen` package, and trying to just use
> `safepass` results in link errors:
>
>
> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o): In function
> `BF_crypt':
> (.text+0x1b97): undefined reference to `__errno_location'
> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o): In function
> `BF_crypt':
> (.text+0x2112): undefined reference to `__errno_location'
> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o): In function
> `_crypt_blowfish_rn':
> (.text+0x21ea): undefined reference to `__errno_location'
> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o): In function
> `_crypt_gensalt_blowfish_rn':
> (.text+0x2575): undefined reference to `__errno_location'
> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o): In function
> `_crypt_gensalt_blowfish_rn':
> (.text+0x25a6): undefined reference to `__errno_location'
> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o):(.text+0x25b7):
> more undefined references to `__errno_location' follow
>
>
> I'm assuming I'd need to customise the build process tp produce an
> appropriate C library as with `gmp-xen`, `zarith-xen` etc. The trouble
> is twofold:
>
>  - I don't really know what the thing I'm doing is. Is mirage-xen a
> different architecture? A different ABI? Do C libraries need to be
> cross-compiled, or just compiled with particular flags so that they'll
> work on xen-minios instead of gnu/linux?

C libraries need to be compiled with different headers and flags (in
particular, -mno-red-zone). Using libraries compiled for Linux will
often appear to work, but may fail when interrupts occur, so the build
makes it hard to use them by accident.

However, OCaml binaries can be shared (ocamlopt doesn't use a red zone
and the OCaml ABI is the same).

>  - The existing scripts seem to be pretty ad-hoc - zarith gets away
> mainly with particular CFLAGS
> (https://github.com/ocaml/opam-repository/blob/master/packages/zarith-xen/zarith-xen.1.4/files/mirage-install.sh),

It's using pkg-config to get the important flags. The others are
optimisations (except -fno-builtin, which is either not needed or
should be supplied by Mini-OS).

> while gmp looks like a full cross-compilation using `--target` (and
> then does some other sneaky things).
>
> safepass uses OASIS for its build system, which doesn't seem to have
> any cross-compilation functionality built in as far as I could tell.
> Can anyone give me pointers on what I'd need to do to safepass' build
> scripts to get this working in mirage-xen, or at the least some
> clarification on why it doesn't work as-is and how cross compilation
> works for C libraries used in mirage-xen?
>
> [0]: https://github.com/timbertson/passe

The io-page library provides a fairly simple template:

https://github.com/mirage/io-page/blob/master/_oasis

It builds io_page_unix and io_page_xen libraries. The C flags are
added to the main META file with:

XMETAExtraLines: xen_linkopts = "-lio_page_xen_stubs"

There's a command to get the Xen flags:

PostConfCommand: ocaml postconf.ml

The Xen source file (stub_alloc_pages_xen.c) is just a symlink to the
Unix one (you need a separate file because OASIS can't compile the
same source path with different flags).


-- 
Dr Thomas Leonard        http://roscidus.com/blog/
GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Fri Jan 08 12:18:00 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 08 Jan 2016 12:18:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aHVzT-0003cS-UV; Fri, 08 Jan 2016 12:17:59 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <talex5@gmail.com>) id 1aHVzS-0003cJ-Bs
	for mirageos-devel@lists.xenproject.org; Fri, 08 Jan 2016 12:17:58 +0000
Received: from [85.158.143.35] by server-3.bemta-4.messagelabs.com id
	A1/44-31122-5F8AF865; Fri, 08 Jan 2016 12:17:57 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-9.tower-21.messagelabs.com!1452255476!9037110!1
X-Originating-IP: [209.85.213.52]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 19976 invoked from network); 8 Jan 2016 12:17:57 -0000
Received: from mail-vk0-f52.google.com (HELO mail-vk0-f52.google.com)
	(209.85.213.52)
	by server-9.tower-21.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 8 Jan 2016 12:17:57 -0000
Received: by mail-vk0-f52.google.com with SMTP id i129so52424429vkb.0
	for <mirageos-devel@lists.xenproject.org>;
	Fri, 08 Jan 2016 04:17:56 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type:content-transfer-encoding;
	bh=RGxjgh+FfxeZbQAT6+Y1NYRq7eMNrY+IhWFL9BsXDvs=;
	b=ZWErp9OyOUVkvKGcWt9hrYeE0oDyOmTq9b8rnbRv0vrnhdoK1tyLfTxK55sDoRZVjx
	tIzbucWHRm7dQXRCuIiY27db0UFnB/Xw5HMbTOjSO9mGZBld7aAQRDM93vLo1+WXIZvH
	GZn93nDnlCsONpvKuKRivvHN3ug54UMuNDdtVyD/2Skmk3R2LADboYdrWCmWTYEPprn/
	Z4pAdQU0LjDhSdQffyLr2BqniBuWLxH4zRrBrys3HbSHRQL6LLgjq0pEs1I6YQXCanlI
	R4zOEsa8236+tTVuREYE5m0iNifMGFc8DPrrNbp0gZ3gzs77b+cD2AeOMD8UnJfByQPw
	dGgQ==
MIME-Version: 1.0
X-Received: by 10.31.56.18 with SMTP id f18mr68580984vka.19.1452255475983;
	Fri, 08 Jan 2016 04:17:55 -0800 (PST)
Received: by 10.31.128.84 with HTTP; Fri, 8 Jan 2016 04:17:55 -0800 (PST)
In-Reply-To: <6E4D5FC9200B4A0B8A4F4F20AD6D44D0@erratique.ch>
References: <6E4D5FC9200B4A0B8A4F4F20AD6D44D0@erratique.ch>
Date: Fri, 8 Jan 2016 12:17:55 +0000
Message-ID: <CAG4opy8Fi4AfWDvayMp_=gyxnY+-Uc_mhZgBLyTcUzsydhC2QA@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: =?UTF-8?Q?Daniel_B=C3=BCnzli?= <daniel.buenzli@erratique.ch>
Cc: =?UTF-8?B?VMO2csO2ayBFZHdpbg==?= <edwin@etorok.net>,
	"mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] [ANN] Logs 0.5.0
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

T24gNyBKYW51YXJ5IDIwMTYgYXQgMjE6NTcsIERhbmllbCBCw7xuemxpIDxkYW5pZWwuYnVlbnps
aUBlcnJhdGlxdWUuY2g+IHdyb3RlOgo+IEhlbGxvLAo+Cj4gSSdkIGxpa2UgdG8gYW5ub3VuY2Ug
TG9ncyAwLjUuMCBhbiBpbmNvbXBhdGlibGUgcmVsZWFzZSBvZiBMb2dzLiBTZWUgdGhlIHJlbGVh
c2Ugbm90ZXMgZm9yIGRldGFpbHM6Cj4KPiAgIGh0dHBzOi8vZ2l0aHViLmNvbS9kYnVlbnpsaS9s
b2dzL2Jsb2IvdjAuNS4wL0NIQU5HRVMubWQKPgo+IExvZ3MgcHJvdmlkZXMgYSBsb2dnaW5nIGlu
ZnJhc3RydWN0dXJlIGZvciBPQ2FtbAo+IEhvbWVwYWdlOiBodHRwOi8vZXJyYXRpcXVlLmNoL3Nv
ZnR3YXJlL2xvZ3MKPiBBUEkgZG9jczogaHR0cDovL2VycmF0aXF1ZS5jaC9zb2Z0d2FyZS9sb2dz
L2RvYy8KPgo+IE1hbnkgdGhhbmtzIHRvIEVkd2luIFTDtnLDtmsgZm9yIGhpcyBnb29kIHN1Z2dl
c3Rpb25zLgoKSSd2ZSBqdXN0IHVwZGF0ZWQgbWlyYWdlLXF1YmVzIGFuZCBxdWJlcy1taXJhZ2Ut
ZmlyZXdhbGwgKGluIEdpdCkgdG8KdGhlIG5ldyBBUEkuIFNlZW1zIHRvIHdvcmsgbmljZWx5LCBh
bmQgSSBhZ3JlZSB0aGlzIG1ha2VzIHRoZSBjb2RlCmVhc2llciB0byB1bmRlcnN0YW5kLgoKCi0t
IApEciBUaG9tYXMgTGVvbmFyZCAgICAgICAgaHR0cDovL3Jvc2NpZHVzLmNvbS9ibG9nLwpHUEc6
IERBOTggMjVBRSBDQUQwIDg5NzUgN0NEQSAgQkQ4RSAwNzEzIDNGOTYgQ0E3NCBEOEJBCgpfX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpNaXJhZ2VPUy1kZXZl
bCBtYWlsaW5nIGxpc3QKTWlyYWdlT1MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cDov
L2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9taXJhZ2Vvcy1k
ZXZlbAo=

From mirageos-devel-bounces@lists.xenproject.org Fri Jan 08 12:18:00 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 08 Jan 2016 12:18:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aHVzT-0003cS-UV; Fri, 08 Jan 2016 12:17:59 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <talex5@gmail.com>) id 1aHVzS-0003cJ-Bs
	for mirageos-devel@lists.xenproject.org; Fri, 08 Jan 2016 12:17:58 +0000
Received: from [85.158.143.35] by server-3.bemta-4.messagelabs.com id
	A1/44-31122-5F8AF865; Fri, 08 Jan 2016 12:17:57 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-9.tower-21.messagelabs.com!1452255476!9037110!1
X-Originating-IP: [209.85.213.52]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 19976 invoked from network); 8 Jan 2016 12:17:57 -0000
Received: from mail-vk0-f52.google.com (HELO mail-vk0-f52.google.com)
	(209.85.213.52)
	by server-9.tower-21.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 8 Jan 2016 12:17:57 -0000
Received: by mail-vk0-f52.google.com with SMTP id i129so52424429vkb.0
	for <mirageos-devel@lists.xenproject.org>;
	Fri, 08 Jan 2016 04:17:56 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type:content-transfer-encoding;
	bh=RGxjgh+FfxeZbQAT6+Y1NYRq7eMNrY+IhWFL9BsXDvs=;
	b=ZWErp9OyOUVkvKGcWt9hrYeE0oDyOmTq9b8rnbRv0vrnhdoK1tyLfTxK55sDoRZVjx
	tIzbucWHRm7dQXRCuIiY27db0UFnB/Xw5HMbTOjSO9mGZBld7aAQRDM93vLo1+WXIZvH
	GZn93nDnlCsONpvKuKRivvHN3ug54UMuNDdtVyD/2Skmk3R2LADboYdrWCmWTYEPprn/
	Z4pAdQU0LjDhSdQffyLr2BqniBuWLxH4zRrBrys3HbSHRQL6LLgjq0pEs1I6YQXCanlI
	R4zOEsa8236+tTVuREYE5m0iNifMGFc8DPrrNbp0gZ3gzs77b+cD2AeOMD8UnJfByQPw
	dGgQ==
MIME-Version: 1.0
X-Received: by 10.31.56.18 with SMTP id f18mr68580984vka.19.1452255475983;
	Fri, 08 Jan 2016 04:17:55 -0800 (PST)
Received: by 10.31.128.84 with HTTP; Fri, 8 Jan 2016 04:17:55 -0800 (PST)
In-Reply-To: <6E4D5FC9200B4A0B8A4F4F20AD6D44D0@erratique.ch>
References: <6E4D5FC9200B4A0B8A4F4F20AD6D44D0@erratique.ch>
Date: Fri, 8 Jan 2016 12:17:55 +0000
Message-ID: <CAG4opy8Fi4AfWDvayMp_=gyxnY+-Uc_mhZgBLyTcUzsydhC2QA@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: =?UTF-8?Q?Daniel_B=C3=BCnzli?= <daniel.buenzli@erratique.ch>
Cc: =?UTF-8?B?VMO2csO2ayBFZHdpbg==?= <edwin@etorok.net>,
	"mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] [ANN] Logs 0.5.0
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

T24gNyBKYW51YXJ5IDIwMTYgYXQgMjE6NTcsIERhbmllbCBCw7xuemxpIDxkYW5pZWwuYnVlbnps
aUBlcnJhdGlxdWUuY2g+IHdyb3RlOgo+IEhlbGxvLAo+Cj4gSSdkIGxpa2UgdG8gYW5ub3VuY2Ug
TG9ncyAwLjUuMCBhbiBpbmNvbXBhdGlibGUgcmVsZWFzZSBvZiBMb2dzLiBTZWUgdGhlIHJlbGVh
c2Ugbm90ZXMgZm9yIGRldGFpbHM6Cj4KPiAgIGh0dHBzOi8vZ2l0aHViLmNvbS9kYnVlbnpsaS9s
b2dzL2Jsb2IvdjAuNS4wL0NIQU5HRVMubWQKPgo+IExvZ3MgcHJvdmlkZXMgYSBsb2dnaW5nIGlu
ZnJhc3RydWN0dXJlIGZvciBPQ2FtbAo+IEhvbWVwYWdlOiBodHRwOi8vZXJyYXRpcXVlLmNoL3Nv
ZnR3YXJlL2xvZ3MKPiBBUEkgZG9jczogaHR0cDovL2VycmF0aXF1ZS5jaC9zb2Z0d2FyZS9sb2dz
L2RvYy8KPgo+IE1hbnkgdGhhbmtzIHRvIEVkd2luIFTDtnLDtmsgZm9yIGhpcyBnb29kIHN1Z2dl
c3Rpb25zLgoKSSd2ZSBqdXN0IHVwZGF0ZWQgbWlyYWdlLXF1YmVzIGFuZCBxdWJlcy1taXJhZ2Ut
ZmlyZXdhbGwgKGluIEdpdCkgdG8KdGhlIG5ldyBBUEkuIFNlZW1zIHRvIHdvcmsgbmljZWx5LCBh
bmQgSSBhZ3JlZSB0aGlzIG1ha2VzIHRoZSBjb2RlCmVhc2llciB0byB1bmRlcnN0YW5kLgoKCi0t
IApEciBUaG9tYXMgTGVvbmFyZCAgICAgICAgaHR0cDovL3Jvc2NpZHVzLmNvbS9ibG9nLwpHUEc6
IERBOTggMjVBRSBDQUQwIDg5NzUgN0NEQSAgQkQ4RSAwNzEzIDNGOTYgQ0E3NCBEOEJBCgpfX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpNaXJhZ2VPUy1kZXZl
bCBtYWlsaW5nIGxpc3QKTWlyYWdlT1MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cDov
L2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9taXJhZ2Vvcy1k
ZXZlbAo=

From mirageos-devel-bounces@lists.xenproject.org Sun Jan 10 10:15:53 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 10 Jan 2016 10:15:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aID2D-0002ld-AG; Sun, 10 Jan 2016 10:15:41 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <tim@gfxmonk.net>) id 1aID2B-0002lY-Lt
	for mirageos-devel@lists.xenproject.org; Sun, 10 Jan 2016 10:15:39 +0000
Received: from [85.158.137.68] by server-3.bemta-3.messagelabs.com id
	41/82-02499-A4F22965; Sun, 10 Jan 2016 10:15:38 +0000
X-Env-Sender: tim@gfxmonk.net
X-Msg-Ref: server-5.tower-31.messagelabs.com!1452420935!14946992!1
X-Originating-IP: [209.85.213.44]
X-SpamReason: No, hits=0.8 required=7.0 tests=BODY_RANDOM_LONG,
  RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 12221 invoked from network); 10 Jan 2016 10:15:35 -0000
Received: from mail-vk0-f44.google.com (HELO mail-vk0-f44.google.com)
	(209.85.213.44)
	by server-5.tower-31.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 10 Jan 2016 10:15:35 -0000
Received: by mail-vk0-f44.google.com with SMTP id i129so73554342vkb.0
	for <mirageos-devel@lists.xenproject.org>;
	Sun, 10 Jan 2016 02:15:35 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=gfxmonk-net.20150623.gappssmtp.com; s=20150623;
	h=mime-version:in-reply-to:references:from:date:message-id:subject:to
	:cc:content-type;
	bh=1T+LMPqgy69hL8C0fW56zzNFWlb4u+JtTSyHD+4zNp0=;
	b=f2I0mp1/66hkC3dRxVum1bqDGIWePVI9eU3AaEtb8N/MmrVtMr9teZ6f9ZfW4X4lS5
	k+fZJCYrqKyJWUD8RCs3HlRcViah6nRcK0niT7xnjjT4F4LwWEuwNcanjqQIegyEfNKi
	Qla1s7tryPPiwW3THJNPijReGnpWHn+Tic0v5HL+hlwN+TxlqYj6s9yCjyS6ifXWt4pK
	EHpu7b6hQ3OoQWz4ijJ+/mkpvikC/rfmGOfgjPzLhnoAIU2qCcZkGc0/SeAvGTplbsu5
	KF0ULQtX/Hig33rLE6I9v1hMXl94t0Ax8k3fGO7zTqAejT3pQ9LpmF/swjRM8Z64jWHj
	rRSA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:in-reply-to:references:from:date
	:message-id:subject:to:cc:content-type;
	bh=1T+LMPqgy69hL8C0fW56zzNFWlb4u+JtTSyHD+4zNp0=;
	b=PhivYP5oJ3+7RFgCJ6Z72KtU/jLIZ8gTb+jipn0Bp5GdCZ8EPpBP7KQvrGg+iCTQSL
	tTfoNEPlRJ3rvjbyIs6Rnk2kz1JnkQe16AL+G+N6CBijtswBVkrGkAVdr5EomYia45tv
	RNuuAZWKB09MKUdpGHKt5WDQ0SblpWa1kXeNJNMdkh2zmvAXqdEwAOv0YFORvMkotQeH
	a6oo+QMgQLEHyrEdg4XVvH/BtzKlAxNp972gpbqhQRcJkTKiASiEnT8wQFP2gidGBJ6N
	NExmqc71Dc1BwSxGOKI54lTeaqzG5u89v/PIoJt5rVnedx00q8Y+zdpNNrOMIPcOTOLN
	LDVg==
X-Gm-Message-State: ALoCoQm908mhSRjTaf8FzrbT+2TJhzEmyjkmaB5bHoJM9zVGbwFj+HIXjfovPj6M7Tj9BGhahdCF0W10/Lp/u5FozGrLpjjXcg==
X-Received: by 10.31.180.213 with SMTP id d204mr72996736vkf.80.1452420934612; 
	Sun, 10 Jan 2016 02:15:34 -0800 (PST)
Received: from mail-vk0-f49.google.com (mail-vk0-f49.google.com.
	[209.85.213.49]) by smtp.gmail.com with ESMTPSA id
	c77sm14972631vkf.26.2016.01.10.02.15.33
	for <mirageos-devel@lists.xenproject.org>
	(version=TLSv1/SSLv3 cipher=OTHER);
	Sun, 10 Jan 2016 02:15:34 -0800 (PST)
Received: by mail-vk0-f49.google.com with SMTP id k1so211648384vkb.2
	for <mirageos-devel@lists.xenproject.org>;
	Sun, 10 Jan 2016 02:15:33 -0800 (PST)
X-Received: by 10.31.6.17 with SMTP id 17mr84402010vkg.75.1452420933595; Sun,
	10 Jan 2016 02:15:33 -0800 (PST)
MIME-Version: 1.0
Received: by 10.31.69.132 with HTTP; Sun, 10 Jan 2016 02:15:14 -0800 (PST)
In-Reply-To: <CAG4opy-aED7kSKUZoFoq4Gka3KenpD2-ET_f58S520rGVXu-Jg@mail.gmail.com>
References: <CAC-LLDiE4J11bvyJXrvee45MwBtH7OifOHUNo3SwDAW0YfPusQ@mail.gmail.com>
	<CAG4opy-aED7kSKUZoFoq4Gka3KenpD2-ET_f58S520rGVXu-Jg@mail.gmail.com>
From: Tim Cuthbertson <tim@gfxmonk.net>
Date: Sun, 10 Jan 2016 21:15:14 +1100
X-Gmail-Original-Message-ID: <CAC-LLDgEOoSVTaB1+PuZkjVdUuHs856o3+fDYd26e_7zEFtdEQ@mail.gmail.com>
Message-ID: <CAC-LLDgEOoSVTaB1+PuZkjVdUuHs856o3+fDYd26e_7zEFtdEQ@mail.gmail.com>
To: Thomas Leonard <talex5@gmail.com>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Compiling C components for mirage-xen
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On Fri, Jan 8, 2016 at 11:14 PM, Thomas Leonard <talex5@gmail.com> wrote:
> On 8 January 2016 at 11:19, Tim Cuthbertson <tim@gfxmonk.net> wrote:
>> I'd like to use `Bcrypt` from the `safepass` opam module in passe[0].
>> There is sadly no `safepass-xen` package, and trying to just use
>> `safepass` results in link errors:
>>
>>
>> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o): In function
>> `BF_crypt':
>> (.text+0x1b97): undefined reference to `__errno_location'
>> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o): In function
>> `BF_crypt':
>> (.text+0x2112): undefined reference to `__errno_location'
>> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o): In function
>> `_crypt_blowfish_rn':
>> (.text+0x21ea): undefined reference to `__errno_location'
>> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o): In function
>> `_crypt_gensalt_blowfish_rn':
>> (.text+0x2575): undefined reference to `__errno_location'
>> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o): In function
>> `_crypt_gensalt_blowfish_rn':
>> (.text+0x25a6): undefined reference to `__errno_location'
>> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o):(.text+0x25b7):
>> more undefined references to `__errno_location' follow
>>
>>
>> I'm assuming I'd need to customise the build process tp produce an
>> appropriate C library as with `gmp-xen`, `zarith-xen` etc. The trouble
>> is twofold:
>>
>>  - I don't really know what the thing I'm doing is. Is mirage-xen a
>> different architecture? A different ABI? Do C libraries need to be
>> cross-compiled, or just compiled with particular flags so that they'll
>> work on xen-minios instead of gnu/linux?
>
> C libraries need to be compiled with different headers and flags (in
> particular, -mno-red-zone). Using libraries compiled for Linux will
> often appear to work, but may fail when interrupts occur, so the build
> makes it hard to use them by accident.
>
> However, OCaml binaries can be shared (ocamlopt doesn't use a red zone
> and the OCaml ABI is the same).
>
>>  - The existing scripts seem to be pretty ad-hoc - zarith gets away
>> mainly with particular CFLAGS
>> (https://github.com/ocaml/opam-repository/blob/master/packages/zarith-xen/zarith-xen.1.4/files/mirage-install.sh),
>
> It's using pkg-config to get the important flags. The others are
> optimisations (except -fno-builtin, which is either not needed or
> should be supplied by Mini-OS).
>
>> while gmp looks like a full cross-compilation using `--target` (and
>> then does some other sneaky things).
>>
>> safepass uses OASIS for its build system, which doesn't seem to have
>> any cross-compilation functionality built in as far as I could tell.
>> Can anyone give me pointers on what I'd need to do to safepass' build
>> scripts to get this working in mirage-xen, or at the least some
>> clarification on why it doesn't work as-is and how cross compilation
>> works for C libraries used in mirage-xen?
>>
>> [0]: https://github.com/timbertson/passe
>
> The io-page library provides a fairly simple template:
>
> https://github.com/mirage/io-page/blob/master/_oasis
>
> It builds io_page_unix and io_page_xen libraries. The C flags are
> added to the main META file with:
>
> XMETAExtraLines: xen_linkopts = "-lio_page_xen_stubs"
>
> There's a command to get the Xen flags:
>
> PostConfCommand: ocaml postconf.ml
>
> The Xen source file (stub_alloc_pages_xen.c) is just a symlink to the
> Unix one (you need a separate file because OASIS can't compile the
> same source path with different flags).

Thanks, Thomas. - that helps quite a lot

I think I've followed the same pattern now, but still haven't been
able to get safepass building.

I'm using the following for CCOpt:

`pkg-config --cflags --static mirage-xen-ocaml`

Now the linking phase fails with:

+ ocamlfind ocamlmklib -o src/safepass_stubs src/crypt_blowfish.o
src/bcrypt_stub.o
ld: errno: TLS definition in /nix/store/<...>-glibc-2.21/lib/libc.so.6
section .tbss mismatches non-TLS reference in src/crypt_blowfish.o
/nix/store/<...>-glibc-2.21/lib/libc.so.6: could not read symbols: Bad value
collect2: error: ld returned 1 exit status
Command exited with code 2.
E: Failure("Command ''ocamlbuild' src/libsafepass_stubs.a
src/dllsafepass_stubs.so src/safepass.cma src/safepass.cmxa
src/safepass.a src/safepass.cmxs -tag debug' terminated with error
code 10")

This seems to be something special about errno being thread-local in
glibc. Googling turns up a lot of advice on fixing this problem, but
all of it assumes you're just building on linux for linux.
bcrypt_stubs.c does <errno.h>, which I believe is being provided by
minios-xen-0.8/include/minios-xen/errno.h.

However, at link time I don't know where errno is supposed to come
from. It seems to be coming from glibc, but shouldn't it be coming
from minios instead given that's where the errno header comes from? I
poked around with `nm` in minios' built files but couldn't find
anything that actually defined errno.

 -- other things I've tried:

1) I tried using `pkg-config --cflags mirage-xen-ocaml` for CCLib,
however `ocamlfind ocamlmklib` didn't seem to like that - it didn't
understand "-m elf_x86_64" nor
"-T/nix/store/<...>-minios-xen-0.8/lib/minios-xen/libminios.lds"

2) I notice that minios-xen/errno.h has:

#ifdef HAVE_LIBC
#include <mini-os/sched.h>
extern int errno;
#define ERRNO
#define errno (get_current()->reent._errno)
#endif

So just to see what happened, I tried adding -DHAVE_LIBC. But then I
get errors because sys/reent.h can't be found, so that's probably not
a useful path to explore.

Any advice where to go from here?

Thanks,
 - Tim.

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Sun Jan 10 10:15:53 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 10 Jan 2016 10:15:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aID2D-0002ld-AG; Sun, 10 Jan 2016 10:15:41 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <tim@gfxmonk.net>) id 1aID2B-0002lY-Lt
	for mirageos-devel@lists.xenproject.org; Sun, 10 Jan 2016 10:15:39 +0000
Received: from [85.158.137.68] by server-3.bemta-3.messagelabs.com id
	41/82-02499-A4F22965; Sun, 10 Jan 2016 10:15:38 +0000
X-Env-Sender: tim@gfxmonk.net
X-Msg-Ref: server-5.tower-31.messagelabs.com!1452420935!14946992!1
X-Originating-IP: [209.85.213.44]
X-SpamReason: No, hits=0.8 required=7.0 tests=BODY_RANDOM_LONG,
  RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 12221 invoked from network); 10 Jan 2016 10:15:35 -0000
Received: from mail-vk0-f44.google.com (HELO mail-vk0-f44.google.com)
	(209.85.213.44)
	by server-5.tower-31.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 10 Jan 2016 10:15:35 -0000
Received: by mail-vk0-f44.google.com with SMTP id i129so73554342vkb.0
	for <mirageos-devel@lists.xenproject.org>;
	Sun, 10 Jan 2016 02:15:35 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=gfxmonk-net.20150623.gappssmtp.com; s=20150623;
	h=mime-version:in-reply-to:references:from:date:message-id:subject:to
	:cc:content-type;
	bh=1T+LMPqgy69hL8C0fW56zzNFWlb4u+JtTSyHD+4zNp0=;
	b=f2I0mp1/66hkC3dRxVum1bqDGIWePVI9eU3AaEtb8N/MmrVtMr9teZ6f9ZfW4X4lS5
	k+fZJCYrqKyJWUD8RCs3HlRcViah6nRcK0niT7xnjjT4F4LwWEuwNcanjqQIegyEfNKi
	Qla1s7tryPPiwW3THJNPijReGnpWHn+Tic0v5HL+hlwN+TxlqYj6s9yCjyS6ifXWt4pK
	EHpu7b6hQ3OoQWz4ijJ+/mkpvikC/rfmGOfgjPzLhnoAIU2qCcZkGc0/SeAvGTplbsu5
	KF0ULQtX/Hig33rLE6I9v1hMXl94t0Ax8k3fGO7zTqAejT3pQ9LpmF/swjRM8Z64jWHj
	rRSA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:in-reply-to:references:from:date
	:message-id:subject:to:cc:content-type;
	bh=1T+LMPqgy69hL8C0fW56zzNFWlb4u+JtTSyHD+4zNp0=;
	b=PhivYP5oJ3+7RFgCJ6Z72KtU/jLIZ8gTb+jipn0Bp5GdCZ8EPpBP7KQvrGg+iCTQSL
	tTfoNEPlRJ3rvjbyIs6Rnk2kz1JnkQe16AL+G+N6CBijtswBVkrGkAVdr5EomYia45tv
	RNuuAZWKB09MKUdpGHKt5WDQ0SblpWa1kXeNJNMdkh2zmvAXqdEwAOv0YFORvMkotQeH
	a6oo+QMgQLEHyrEdg4XVvH/BtzKlAxNp972gpbqhQRcJkTKiASiEnT8wQFP2gidGBJ6N
	NExmqc71Dc1BwSxGOKI54lTeaqzG5u89v/PIoJt5rVnedx00q8Y+zdpNNrOMIPcOTOLN
	LDVg==
X-Gm-Message-State: ALoCoQm908mhSRjTaf8FzrbT+2TJhzEmyjkmaB5bHoJM9zVGbwFj+HIXjfovPj6M7Tj9BGhahdCF0W10/Lp/u5FozGrLpjjXcg==
X-Received: by 10.31.180.213 with SMTP id d204mr72996736vkf.80.1452420934612; 
	Sun, 10 Jan 2016 02:15:34 -0800 (PST)
Received: from mail-vk0-f49.google.com (mail-vk0-f49.google.com.
	[209.85.213.49]) by smtp.gmail.com with ESMTPSA id
	c77sm14972631vkf.26.2016.01.10.02.15.33
	for <mirageos-devel@lists.xenproject.org>
	(version=TLSv1/SSLv3 cipher=OTHER);
	Sun, 10 Jan 2016 02:15:34 -0800 (PST)
Received: by mail-vk0-f49.google.com with SMTP id k1so211648384vkb.2
	for <mirageos-devel@lists.xenproject.org>;
	Sun, 10 Jan 2016 02:15:33 -0800 (PST)
X-Received: by 10.31.6.17 with SMTP id 17mr84402010vkg.75.1452420933595; Sun,
	10 Jan 2016 02:15:33 -0800 (PST)
MIME-Version: 1.0
Received: by 10.31.69.132 with HTTP; Sun, 10 Jan 2016 02:15:14 -0800 (PST)
In-Reply-To: <CAG4opy-aED7kSKUZoFoq4Gka3KenpD2-ET_f58S520rGVXu-Jg@mail.gmail.com>
References: <CAC-LLDiE4J11bvyJXrvee45MwBtH7OifOHUNo3SwDAW0YfPusQ@mail.gmail.com>
	<CAG4opy-aED7kSKUZoFoq4Gka3KenpD2-ET_f58S520rGVXu-Jg@mail.gmail.com>
From: Tim Cuthbertson <tim@gfxmonk.net>
Date: Sun, 10 Jan 2016 21:15:14 +1100
X-Gmail-Original-Message-ID: <CAC-LLDgEOoSVTaB1+PuZkjVdUuHs856o3+fDYd26e_7zEFtdEQ@mail.gmail.com>
Message-ID: <CAC-LLDgEOoSVTaB1+PuZkjVdUuHs856o3+fDYd26e_7zEFtdEQ@mail.gmail.com>
To: Thomas Leonard <talex5@gmail.com>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Compiling C components for mirage-xen
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On Fri, Jan 8, 2016 at 11:14 PM, Thomas Leonard <talex5@gmail.com> wrote:
> On 8 January 2016 at 11:19, Tim Cuthbertson <tim@gfxmonk.net> wrote:
>> I'd like to use `Bcrypt` from the `safepass` opam module in passe[0].
>> There is sadly no `safepass-xen` package, and trying to just use
>> `safepass` results in link errors:
>>
>>
>> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o): In function
>> `BF_crypt':
>> (.text+0x1b97): undefined reference to `__errno_location'
>> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o): In function
>> `BF_crypt':
>> (.text+0x2112): undefined reference to `__errno_location'
>> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o): In function
>> `_crypt_blowfish_rn':
>> (.text+0x21ea): undefined reference to `__errno_location'
>> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o): In function
>> `_crypt_gensalt_blowfish_rn':
>> (.text+0x2575): undefined reference to `__errno_location'
>> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o): In function
>> `_crypt_gensalt_blowfish_rn':
>> (.text+0x25a6): undefined reference to `__errno_location'
>> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o):(.text+0x25b7):
>> more undefined references to `__errno_location' follow
>>
>>
>> I'm assuming I'd need to customise the build process tp produce an
>> appropriate C library as with `gmp-xen`, `zarith-xen` etc. The trouble
>> is twofold:
>>
>>  - I don't really know what the thing I'm doing is. Is mirage-xen a
>> different architecture? A different ABI? Do C libraries need to be
>> cross-compiled, or just compiled with particular flags so that they'll
>> work on xen-minios instead of gnu/linux?
>
> C libraries need to be compiled with different headers and flags (in
> particular, -mno-red-zone). Using libraries compiled for Linux will
> often appear to work, but may fail when interrupts occur, so the build
> makes it hard to use them by accident.
>
> However, OCaml binaries can be shared (ocamlopt doesn't use a red zone
> and the OCaml ABI is the same).
>
>>  - The existing scripts seem to be pretty ad-hoc - zarith gets away
>> mainly with particular CFLAGS
>> (https://github.com/ocaml/opam-repository/blob/master/packages/zarith-xen/zarith-xen.1.4/files/mirage-install.sh),
>
> It's using pkg-config to get the important flags. The others are
> optimisations (except -fno-builtin, which is either not needed or
> should be supplied by Mini-OS).
>
>> while gmp looks like a full cross-compilation using `--target` (and
>> then does some other sneaky things).
>>
>> safepass uses OASIS for its build system, which doesn't seem to have
>> any cross-compilation functionality built in as far as I could tell.
>> Can anyone give me pointers on what I'd need to do to safepass' build
>> scripts to get this working in mirage-xen, or at the least some
>> clarification on why it doesn't work as-is and how cross compilation
>> works for C libraries used in mirage-xen?
>>
>> [0]: https://github.com/timbertson/passe
>
> The io-page library provides a fairly simple template:
>
> https://github.com/mirage/io-page/blob/master/_oasis
>
> It builds io_page_unix and io_page_xen libraries. The C flags are
> added to the main META file with:
>
> XMETAExtraLines: xen_linkopts = "-lio_page_xen_stubs"
>
> There's a command to get the Xen flags:
>
> PostConfCommand: ocaml postconf.ml
>
> The Xen source file (stub_alloc_pages_xen.c) is just a symlink to the
> Unix one (you need a separate file because OASIS can't compile the
> same source path with different flags).

Thanks, Thomas. - that helps quite a lot

I think I've followed the same pattern now, but still haven't been
able to get safepass building.

I'm using the following for CCOpt:

`pkg-config --cflags --static mirage-xen-ocaml`

Now the linking phase fails with:

+ ocamlfind ocamlmklib -o src/safepass_stubs src/crypt_blowfish.o
src/bcrypt_stub.o
ld: errno: TLS definition in /nix/store/<...>-glibc-2.21/lib/libc.so.6
section .tbss mismatches non-TLS reference in src/crypt_blowfish.o
/nix/store/<...>-glibc-2.21/lib/libc.so.6: could not read symbols: Bad value
collect2: error: ld returned 1 exit status
Command exited with code 2.
E: Failure("Command ''ocamlbuild' src/libsafepass_stubs.a
src/dllsafepass_stubs.so src/safepass.cma src/safepass.cmxa
src/safepass.a src/safepass.cmxs -tag debug' terminated with error
code 10")

This seems to be something special about errno being thread-local in
glibc. Googling turns up a lot of advice on fixing this problem, but
all of it assumes you're just building on linux for linux.
bcrypt_stubs.c does <errno.h>, which I believe is being provided by
minios-xen-0.8/include/minios-xen/errno.h.

However, at link time I don't know where errno is supposed to come
from. It seems to be coming from glibc, but shouldn't it be coming
from minios instead given that's where the errno header comes from? I
poked around with `nm` in minios' built files but couldn't find
anything that actually defined errno.

 -- other things I've tried:

1) I tried using `pkg-config --cflags mirage-xen-ocaml` for CCLib,
however `ocamlfind ocamlmklib` didn't seem to like that - it didn't
understand "-m elf_x86_64" nor
"-T/nix/store/<...>-minios-xen-0.8/lib/minios-xen/libminios.lds"

2) I notice that minios-xen/errno.h has:

#ifdef HAVE_LIBC
#include <mini-os/sched.h>
extern int errno;
#define ERRNO
#define errno (get_current()->reent._errno)
#endif

So just to see what happened, I tried adding -DHAVE_LIBC. But then I
get errors because sys/reent.h can't be found, so that's probably not
a useful path to explore.

Any advice where to go from here?

Thanks,
 - Tim.

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Sun Jan 10 16:50:52 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 10 Jan 2016 16:50:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aIJCT-0008OH-AQ; Sun, 10 Jan 2016 16:50:41 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <meta@gmx.com>) id 1aIJCS-0008OC-Ip
	for mirageos-devel@lists.xenproject.org; Sun, 10 Jan 2016 16:50:40 +0000
Received: from [193.109.254.147] by server-2.bemta-14.messagelabs.com id
	CE/91-12889-FDB82965; Sun, 10 Jan 2016 16:50:39 +0000
X-Env-Sender: meta@gmx.com
X-Msg-Ref: server-16.tower-27.messagelabs.com!1452444638!15779611!1
X-Originating-IP: [212.227.17.22]
X-SpamReason: No, hits=0.6 required=7.0 tests=sa_preprocessor: 
	QmFkIElQOiAyMTIuMjI3LjE3LjIyID0+IDIxMDU4\n,sa_preprocessor: 
	QmFkIElQOiAyMTIuMjI3LjE3LjIyID0+IDIxMDU4\n,HTML_50_60,HTML_MESSAGE,
	MIME_HTML_ONLY
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 9444 invoked from network); 10 Jan 2016 16:50:38 -0000
Received: from mout.gmx.net (HELO mout.gmx.net) (212.227.17.22)
	by server-16.tower-27.messagelabs.com with DHE-RSA-AES256-GCM-SHA384
	encrypted SMTP; 10 Jan 2016 16:50:38 -0000
Received: from [128.232.109.3] by 3capp-mailcom-bs12.server.lan (via HTTP);
	Sun, 10 Jan 2016 17:50:37 +0100
MIME-Version: 1.0
Message-ID: <trinity-11b72f98-0633-4978-ac6f-a89d36470a6d-1452444637077@3capp-mailcom-bs12>
From: "M. O." <meta@gmx.com>
To: "Thomas Leonard" <talex5@gmail.com>
Date: Sun, 10 Jan 2016 17:50:37 +0100
Importance: normal
Sensitivity: Normal
In-Reply-To: <CAG4opy-v+X2QAFZM3j5bFeFcY3OudB9JW9ovjag_E9hj9LVK9g@mail.gmail.com>
References: <trinity-ceb1c027-f89e-459b-95fc-727cb12599b7-1447955809874@3capp-mailcom-bs07>,
	<CAG4opy-v+X2QAFZM3j5bFeFcY3OudB9JW9ovjag_E9hj9LVK9g@mail.gmail.com>
X-UI-Message-Type: mail
X-Priority: 3
X-Provags-ID: V03:K0:zl40VWxlI+jbmE+1NY/PVRuiz6l1GQOyx5rR2hRGBiS
	ELrMkK07RDLDBysLxEbzgM4qwwosqBjFYPD0QXDHhyeS/sy7Db
	46Kfn7jvkbDvc7fN6hk32tn9CeVdWAFdK8LXc5KCDeJwj6exKW
	Ci1a2xws2IWFqRuKgerwnUor/qOmdSYzksmNo5071E7snalFeN
	2+EomTaLLbbk9uKT0as3Ea6OL3nrnOmv1LsMx90GaEpd9cnsja
	ijNz/gVU4LtNniWLsna+YEWrtGm617TvJ7NpA9IIzXGmmrK9AJ
	eDtoc6Uq8JcgxpbuNhPnF88ko4f
X-UI-Out-Filterresults: notjunk:1;V01:K0:hX8UdgU4zTI=:BKbgHS55AR1zJqGrfiy+Cz
	TsokZUPe5GP2FvOi5QfUmOGntjGEjp+xKqilTeiv4xMU6AyMKGgq1Sim0TpY3c0TNr0s9Bl+W
	xJ1UI4cuzB2Wamtr2aTxYUcaCJb8IPtHS/F9ippMq+qy0MuSiAOxEZDaKnWlnuQIb8FrJ7UcT
	/8xZRvZqc5bw9okgJhKFkwfXfil8aNqe9sEBeD5cX/meqHC2I7LFqiq49JIzVkfUcGcb7T/W0
	IPY+ZsY7fhoT977uqyd+CjQXeqz/DsB5GLOpuRSVQFFEwVNORXRc9hh6i3PoUpNPD1KiWXsCE
	P0Y6LajCAkgGmRfh5Uloyoyfylv3V9CW2qxeqG/mgmEke9wAgy32/laY5UIPJUPNlBsj4eDcb
	7K7VqUNT7d5Ksyl1k6+X3udoqql68eLzPZSpndNqkhfTwPezHakEpVUrdjSA70ZL3FQlgRSgQ
	NiRR1JiCaw==
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Changes in Irmin 0.10.0
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============2724035209729321755=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============2724035209729321755==
Content-Type: text/html; charset=UTF-8

<html><head></head><body><div style="font-family: Verdana;font-size: 12.0px;"><div>Thanks, and how to unwatch a key that is under watch by I.watch_key?<br/>
&nbsp;
<div>
<div name="quote" style="margin: 10px 5px 5px 10px; padding: 10px 0px 10px 10px; border-left-color: rgb(195, 217, 229); border-left-width: 2px; border-left-style: solid; -ms-word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">
<div name="quoted-content">&gt; Hi,<br/>
&gt;<br/>
&gt; Questions regarding changes in Irmin 0.10.0:<br/>
&gt;<br/>
&gt; 1- Is there any equivalence for &quot;Irmin.watch_tags&quot; in the previous releases?<br/>
<br/>
Irmin.Repo.watch_branches<br/>
<br/>
&gt; 2- This is somehow related to the first question, that is how to create a<br/>
&gt; store similar to &quot;Store.of_head config task head&quot; (for instance, from the<br/>
&gt; heads that watch_tag sends to the callback function) in the older versions.<br/>
<br/>
of_head is now of_commit_id.<br/>
&nbsp;</div>
</div>
</div>
</div></div></body></html>


--===============2724035209729321755==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============2724035209729321755==--

From mirageos-devel-bounces@lists.xenproject.org Sun Jan 10 16:50:52 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 10 Jan 2016 16:50:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aIJCT-0008OH-AQ; Sun, 10 Jan 2016 16:50:41 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <meta@gmx.com>) id 1aIJCS-0008OC-Ip
	for mirageos-devel@lists.xenproject.org; Sun, 10 Jan 2016 16:50:40 +0000
Received: from [193.109.254.147] by server-2.bemta-14.messagelabs.com id
	CE/91-12889-FDB82965; Sun, 10 Jan 2016 16:50:39 +0000
X-Env-Sender: meta@gmx.com
X-Msg-Ref: server-16.tower-27.messagelabs.com!1452444638!15779611!1
X-Originating-IP: [212.227.17.22]
X-SpamReason: No, hits=0.6 required=7.0 tests=sa_preprocessor: 
	QmFkIElQOiAyMTIuMjI3LjE3LjIyID0+IDIxMDU4\n,sa_preprocessor: 
	QmFkIElQOiAyMTIuMjI3LjE3LjIyID0+IDIxMDU4\n,HTML_50_60,HTML_MESSAGE,
	MIME_HTML_ONLY
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 9444 invoked from network); 10 Jan 2016 16:50:38 -0000
Received: from mout.gmx.net (HELO mout.gmx.net) (212.227.17.22)
	by server-16.tower-27.messagelabs.com with DHE-RSA-AES256-GCM-SHA384
	encrypted SMTP; 10 Jan 2016 16:50:38 -0000
Received: from [128.232.109.3] by 3capp-mailcom-bs12.server.lan (via HTTP);
	Sun, 10 Jan 2016 17:50:37 +0100
MIME-Version: 1.0
Message-ID: <trinity-11b72f98-0633-4978-ac6f-a89d36470a6d-1452444637077@3capp-mailcom-bs12>
From: "M. O." <meta@gmx.com>
To: "Thomas Leonard" <talex5@gmail.com>
Date: Sun, 10 Jan 2016 17:50:37 +0100
Importance: normal
Sensitivity: Normal
In-Reply-To: <CAG4opy-v+X2QAFZM3j5bFeFcY3OudB9JW9ovjag_E9hj9LVK9g@mail.gmail.com>
References: <trinity-ceb1c027-f89e-459b-95fc-727cb12599b7-1447955809874@3capp-mailcom-bs07>,
	<CAG4opy-v+X2QAFZM3j5bFeFcY3OudB9JW9ovjag_E9hj9LVK9g@mail.gmail.com>
X-UI-Message-Type: mail
X-Priority: 3
X-Provags-ID: V03:K0:zl40VWxlI+jbmE+1NY/PVRuiz6l1GQOyx5rR2hRGBiS
	ELrMkK07RDLDBysLxEbzgM4qwwosqBjFYPD0QXDHhyeS/sy7Db
	46Kfn7jvkbDvc7fN6hk32tn9CeVdWAFdK8LXc5KCDeJwj6exKW
	Ci1a2xws2IWFqRuKgerwnUor/qOmdSYzksmNo5071E7snalFeN
	2+EomTaLLbbk9uKT0as3Ea6OL3nrnOmv1LsMx90GaEpd9cnsja
	ijNz/gVU4LtNniWLsna+YEWrtGm617TvJ7NpA9IIzXGmmrK9AJ
	eDtoc6Uq8JcgxpbuNhPnF88ko4f
X-UI-Out-Filterresults: notjunk:1;V01:K0:hX8UdgU4zTI=:BKbgHS55AR1zJqGrfiy+Cz
	TsokZUPe5GP2FvOi5QfUmOGntjGEjp+xKqilTeiv4xMU6AyMKGgq1Sim0TpY3c0TNr0s9Bl+W
	xJ1UI4cuzB2Wamtr2aTxYUcaCJb8IPtHS/F9ippMq+qy0MuSiAOxEZDaKnWlnuQIb8FrJ7UcT
	/8xZRvZqc5bw9okgJhKFkwfXfil8aNqe9sEBeD5cX/meqHC2I7LFqiq49JIzVkfUcGcb7T/W0
	IPY+ZsY7fhoT977uqyd+CjQXeqz/DsB5GLOpuRSVQFFEwVNORXRc9hh6i3PoUpNPD1KiWXsCE
	P0Y6LajCAkgGmRfh5Uloyoyfylv3V9CW2qxeqG/mgmEke9wAgy32/laY5UIPJUPNlBsj4eDcb
	7K7VqUNT7d5Ksyl1k6+X3udoqql68eLzPZSpndNqkhfTwPezHakEpVUrdjSA70ZL3FQlgRSgQ
	NiRR1JiCaw==
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Changes in Irmin 0.10.0
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============2724035209729321755=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============2724035209729321755==
Content-Type: text/html; charset=UTF-8

<html><head></head><body><div style="font-family: Verdana;font-size: 12.0px;"><div>Thanks, and how to unwatch a key that is under watch by I.watch_key?<br/>
&nbsp;
<div>
<div name="quote" style="margin: 10px 5px 5px 10px; padding: 10px 0px 10px 10px; border-left-color: rgb(195, 217, 229); border-left-width: 2px; border-left-style: solid; -ms-word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">
<div name="quoted-content">&gt; Hi,<br/>
&gt;<br/>
&gt; Questions regarding changes in Irmin 0.10.0:<br/>
&gt;<br/>
&gt; 1- Is there any equivalence for &quot;Irmin.watch_tags&quot; in the previous releases?<br/>
<br/>
Irmin.Repo.watch_branches<br/>
<br/>
&gt; 2- This is somehow related to the first question, that is how to create a<br/>
&gt; store similar to &quot;Store.of_head config task head&quot; (for instance, from the<br/>
&gt; heads that watch_tag sends to the callback function) in the older versions.<br/>
<br/>
of_head is now of_commit_id.<br/>
&nbsp;</div>
</div>
</div>
</div></div></body></html>


--===============2724035209729321755==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============2724035209729321755==--

From mirageos-devel-bounces@lists.xenproject.org Sun Jan 10 17:52:16 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 10 Jan 2016 17:52:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aIK9v-00013M-5F; Sun, 10 Jan 2016 17:52:07 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <talex5@gmail.com>) id 1aIK9t-00013H-Ve
	for mirageos-devel@lists.xenproject.org; Sun, 10 Jan 2016 17:52:06 +0000
Received: from [85.158.139.211] by server-12.bemta-5.messagelabs.com id
	A8/37-12831-54A92965; Sun, 10 Jan 2016 17:52:05 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-7.tower-206.messagelabs.com!1452448323!14689571!1
X-Originating-IP: [209.85.213.47]
X-SpamReason: No, hits=0.8 required=7.0 tests=BODY_RANDOM_LONG,
  RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 17559 invoked from network); 10 Jan 2016 17:52:04 -0000
Received: from mail-vk0-f47.google.com (HELO mail-vk0-f47.google.com)
	(209.85.213.47)
	by server-7.tower-206.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 10 Jan 2016 17:52:04 -0000
Received: by mail-vk0-f47.google.com with SMTP id a123so183496257vkh.1
	for <mirageos-devel@lists.xenproject.org>;
	Sun, 10 Jan 2016 09:52:04 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=ebP5IC1X2fz2k5xzmH5tjjWhXZo1/FjL8mOX+QhPGkE=;
	b=RF6F08Ir6Nqr+n2qosIwha2dZl99FGkGrLWZwzATSUysEsKVdGZHfsFKcBpVTvqJwr
	Lpuzw7n5hjpBJ4YrsxwEga0xkApSm3aEiFHOtPSzfj+ZyrtdLLbrdJlF5OmJLNju3EmC
	E6SBjQGrykUCegVweRZyVcBRWxoNHR2xZsOFT4d2h82TEeOJ70BSvlcuwejwDjzC/JMc
	7EdEcWOe9KXcGiHp1Up5IIxVFgYZmSIZSsmbuhuxs/moMyyjcq9GV3QiDSJWUJQMK+uL
	4xaPkdqqfSG3+ajDZ002WyNT9N/6/T0ktPFEkPgMlbM2qVdawq1n5m1hWn1L+wjs02UO
	VOGg==
MIME-Version: 1.0
X-Received: by 10.31.16.101 with SMTP id g98mr87279101vki.41.1452448323150;
	Sun, 10 Jan 2016 09:52:03 -0800 (PST)
Received: by 10.31.128.84 with HTTP; Sun, 10 Jan 2016 09:52:03 -0800 (PST)
In-Reply-To: <CAC-LLDgEOoSVTaB1+PuZkjVdUuHs856o3+fDYd26e_7zEFtdEQ@mail.gmail.com>
References: <CAC-LLDiE4J11bvyJXrvee45MwBtH7OifOHUNo3SwDAW0YfPusQ@mail.gmail.com>
	<CAG4opy-aED7kSKUZoFoq4Gka3KenpD2-ET_f58S520rGVXu-Jg@mail.gmail.com>
	<CAC-LLDgEOoSVTaB1+PuZkjVdUuHs856o3+fDYd26e_7zEFtdEQ@mail.gmail.com>
Date: Sun, 10 Jan 2016 17:52:03 +0000
Message-ID: <CAG4opy-acZETa+Jbf=6oK3_wv7buP1612DZw0nxUH0wkZh9BEA@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Tim Cuthbertson <tim@gfxmonk.net>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Compiling C components for mirage-xen
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 10 January 2016 at 10:15, Tim Cuthbertson <tim@gfxmonk.net> wrote:
> On Fri, Jan 8, 2016 at 11:14 PM, Thomas Leonard <talex5@gmail.com> wrote:
>> On 8 January 2016 at 11:19, Tim Cuthbertson <tim@gfxmonk.net> wrote:
>>> I'd like to use `Bcrypt` from the `safepass` opam module in passe[0].
>>> There is sadly no `safepass-xen` package, and trying to just use
>>> `safepass` results in link errors:
>>>
>>>
>>> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o): In function
>>> `BF_crypt':
>>> (.text+0x1b97): undefined reference to `__errno_location'
>>> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o): In function
>>> `BF_crypt':
>>> (.text+0x2112): undefined reference to `__errno_location'
>>> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o): In function
>>> `_crypt_blowfish_rn':
>>> (.text+0x21ea): undefined reference to `__errno_location'
>>> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o): In function
>>> `_crypt_gensalt_blowfish_rn':
>>> (.text+0x2575): undefined reference to `__errno_location'
>>> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o): In function
>>> `_crypt_gensalt_blowfish_rn':
>>> (.text+0x25a6): undefined reference to `__errno_location'
>>> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o):(.text+0x25b7):
>>> more undefined references to `__errno_location' follow
>>>
>>>
>>> I'm assuming I'd need to customise the build process tp produce an
>>> appropriate C library as with `gmp-xen`, `zarith-xen` etc. The trouble
>>> is twofold:
>>>
>>>  - I don't really know what the thing I'm doing is. Is mirage-xen a
>>> different architecture? A different ABI? Do C libraries need to be
>>> cross-compiled, or just compiled with particular flags so that they'll
>>> work on xen-minios instead of gnu/linux?
>>
>> C libraries need to be compiled with different headers and flags (in
>> particular, -mno-red-zone). Using libraries compiled for Linux will
>> often appear to work, but may fail when interrupts occur, so the build
>> makes it hard to use them by accident.
>>
>> However, OCaml binaries can be shared (ocamlopt doesn't use a red zone
>> and the OCaml ABI is the same).
>>
>>>  - The existing scripts seem to be pretty ad-hoc - zarith gets away
>>> mainly with particular CFLAGS
>>> (https://github.com/ocaml/opam-repository/blob/master/packages/zarith-xen/zarith-xen.1.4/files/mirage-install.sh),
>>
>> It's using pkg-config to get the important flags. The others are
>> optimisations (except -fno-builtin, which is either not needed or
>> should be supplied by Mini-OS).
>>
>>> while gmp looks like a full cross-compilation using `--target` (and
>>> then does some other sneaky things).
>>>
>>> safepass uses OASIS for its build system, which doesn't seem to have
>>> any cross-compilation functionality built in as far as I could tell.
>>> Can anyone give me pointers on what I'd need to do to safepass' build
>>> scripts to get this working in mirage-xen, or at the least some
>>> clarification on why it doesn't work as-is and how cross compilation
>>> works for C libraries used in mirage-xen?
>>>
>>> [0]: https://github.com/timbertson/passe
>>
>> The io-page library provides a fairly simple template:
>>
>> https://github.com/mirage/io-page/blob/master/_oasis
>>
>> It builds io_page_unix and io_page_xen libraries. The C flags are
>> added to the main META file with:
>>
>> XMETAExtraLines: xen_linkopts = "-lio_page_xen_stubs"
>>
>> There's a command to get the Xen flags:
>>
>> PostConfCommand: ocaml postconf.ml
>>
>> The Xen source file (stub_alloc_pages_xen.c) is just a symlink to the
>> Unix one (you need a separate file because OASIS can't compile the
>> same source path with different flags).
>
> Thanks, Thomas. - that helps quite a lot
>
> I think I've followed the same pattern now, but still haven't been
> able to get safepass building.
>
> I'm using the following for CCOpt:
>
> `pkg-config --cflags --static mirage-xen-ocaml`
>
> Now the linking phase fails with:
>
> + ocamlfind ocamlmklib -o src/safepass_stubs src/crypt_blowfish.o
> src/bcrypt_stub.o
> ld: errno: TLS definition in /nix/store/<...>-glibc-2.21/lib/libc.so.6
> section .tbss mismatches non-TLS reference in src/crypt_blowfish.o
> /nix/store/<...>-glibc-2.21/lib/libc.so.6: could not read symbols: Bad value
> collect2: error: ld returned 1 exit status
> Command exited with code 2.
> E: Failure("Command ''ocamlbuild' src/libsafepass_stubs.a
> src/dllsafepass_stubs.so src/safepass.cma src/safepass.cmxa
> src/safepass.a src/safepass.cmxs -tag debug' terminated with error
> code 10")

Try running it as "ocamlfind ocamlmklib -verbose" to see what commands
it's actually using. For io-page, I get:

$ ocamlfind ocamlmklib -verbose -o lib/io_page_xen_stubs
lib/stub_alloc_pages_xen.o
Effective set of compiler predicates: autolink,byte,native
+ ocamlmklib -ocamlc ocamlc.opt -ocamlopt ocamlopt.opt -verbose -o
lib/io_page_xen_stubs lib/stub_alloc_pages_xen.o
+ gcc -shared  -o lib/dllio_page_xen_stubs.so lib/stub_alloc_pages_xen.o
+ ar rc lib/libio_page_xen_stubs.a  lib/stub_alloc_pages_xen.o; ranlib
lib/libio_page_xen_stubs.a

So it doesn't seem to be using ld at all, just ar.

> This seems to be something special about errno being thread-local in
> glibc. Googling turns up a lot of advice on fixing this problem, but
> all of it assumes you're just building on linux for linux.
> bcrypt_stubs.c does <errno.h>, which I believe is being provided by
> minios-xen-0.8/include/minios-xen/errno.h.
>
> However, at link time I don't know where errno is supposed to come
> from. It seems to be coming from glibc, but shouldn't it be coming
> from minios instead given that's where the errno header comes from? I
> poked around with `nm` in minios' built files but couldn't find
> anything that actually defined errno.

It's from mirage-xen:

https://github.com/mirage/mirage-platform/blob/c035439de703edbfdd096044afdbab85f4cbf61f/bindings/main.c#L30

>  -- other things I've tried:
>
> 1) I tried using `pkg-config --cflags mirage-xen-ocaml` for CCLib,
> however `ocamlfind ocamlmklib` didn't seem to like that - it didn't
> understand "-m elf_x86_64" nor
> "-T/nix/store/<...>-minios-xen-0.8/lib/minios-xen/libminios.lds"
>
> 2) I notice that minios-xen/errno.h has:
>
> #ifdef HAVE_LIBC
> #include <mini-os/sched.h>
> extern int errno;
> #define ERRNO
> #define errno (get_current()->reent._errno)
> #endif
>
> So just to see what happened, I tried adding -DHAVE_LIBC. But then I
> get errors because sys/reent.h can't be found, so that's probably not
> a useful path to explore.
>
> Any advice where to go from here?
>
> Thanks,
>  - Tim.



-- 
Dr Thomas Leonard        http://roscidus.com/blog/
GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Sun Jan 10 17:52:16 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 10 Jan 2016 17:52:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aIK9v-00013M-5F; Sun, 10 Jan 2016 17:52:07 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <talex5@gmail.com>) id 1aIK9t-00013H-Ve
	for mirageos-devel@lists.xenproject.org; Sun, 10 Jan 2016 17:52:06 +0000
Received: from [85.158.139.211] by server-12.bemta-5.messagelabs.com id
	A8/37-12831-54A92965; Sun, 10 Jan 2016 17:52:05 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-7.tower-206.messagelabs.com!1452448323!14689571!1
X-Originating-IP: [209.85.213.47]
X-SpamReason: No, hits=0.8 required=7.0 tests=BODY_RANDOM_LONG,
  RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 17559 invoked from network); 10 Jan 2016 17:52:04 -0000
Received: from mail-vk0-f47.google.com (HELO mail-vk0-f47.google.com)
	(209.85.213.47)
	by server-7.tower-206.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 10 Jan 2016 17:52:04 -0000
Received: by mail-vk0-f47.google.com with SMTP id a123so183496257vkh.1
	for <mirageos-devel@lists.xenproject.org>;
	Sun, 10 Jan 2016 09:52:04 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=ebP5IC1X2fz2k5xzmH5tjjWhXZo1/FjL8mOX+QhPGkE=;
	b=RF6F08Ir6Nqr+n2qosIwha2dZl99FGkGrLWZwzATSUysEsKVdGZHfsFKcBpVTvqJwr
	Lpuzw7n5hjpBJ4YrsxwEga0xkApSm3aEiFHOtPSzfj+ZyrtdLLbrdJlF5OmJLNju3EmC
	E6SBjQGrykUCegVweRZyVcBRWxoNHR2xZsOFT4d2h82TEeOJ70BSvlcuwejwDjzC/JMc
	7EdEcWOe9KXcGiHp1Up5IIxVFgYZmSIZSsmbuhuxs/moMyyjcq9GV3QiDSJWUJQMK+uL
	4xaPkdqqfSG3+ajDZ002WyNT9N/6/T0ktPFEkPgMlbM2qVdawq1n5m1hWn1L+wjs02UO
	VOGg==
MIME-Version: 1.0
X-Received: by 10.31.16.101 with SMTP id g98mr87279101vki.41.1452448323150;
	Sun, 10 Jan 2016 09:52:03 -0800 (PST)
Received: by 10.31.128.84 with HTTP; Sun, 10 Jan 2016 09:52:03 -0800 (PST)
In-Reply-To: <CAC-LLDgEOoSVTaB1+PuZkjVdUuHs856o3+fDYd26e_7zEFtdEQ@mail.gmail.com>
References: <CAC-LLDiE4J11bvyJXrvee45MwBtH7OifOHUNo3SwDAW0YfPusQ@mail.gmail.com>
	<CAG4opy-aED7kSKUZoFoq4Gka3KenpD2-ET_f58S520rGVXu-Jg@mail.gmail.com>
	<CAC-LLDgEOoSVTaB1+PuZkjVdUuHs856o3+fDYd26e_7zEFtdEQ@mail.gmail.com>
Date: Sun, 10 Jan 2016 17:52:03 +0000
Message-ID: <CAG4opy-acZETa+Jbf=6oK3_wv7buP1612DZw0nxUH0wkZh9BEA@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Tim Cuthbertson <tim@gfxmonk.net>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Compiling C components for mirage-xen
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 10 January 2016 at 10:15, Tim Cuthbertson <tim@gfxmonk.net> wrote:
> On Fri, Jan 8, 2016 at 11:14 PM, Thomas Leonard <talex5@gmail.com> wrote:
>> On 8 January 2016 at 11:19, Tim Cuthbertson <tim@gfxmonk.net> wrote:
>>> I'd like to use `Bcrypt` from the `safepass` opam module in passe[0].
>>> There is sadly no `safepass-xen` package, and trying to just use
>>> `safepass` results in link errors:
>>>
>>>
>>> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o): In function
>>> `BF_crypt':
>>> (.text+0x1b97): undefined reference to `__errno_location'
>>> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o): In function
>>> `BF_crypt':
>>> (.text+0x2112): undefined reference to `__errno_location'
>>> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o): In function
>>> `_crypt_blowfish_rn':
>>> (.text+0x21ea): undefined reference to `__errno_location'
>>> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o): In function
>>> `_crypt_gensalt_blowfish_rn':
>>> (.text+0x2575): undefined reference to `__errno_location'
>>> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o): In function
>>> `_crypt_gensalt_blowfish_rn':
>>> (.text+0x25a6): undefined reference to `__errno_location'
>>> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o):(.text+0x25b7):
>>> more undefined references to `__errno_location' follow
>>>
>>>
>>> I'm assuming I'd need to customise the build process tp produce an
>>> appropriate C library as with `gmp-xen`, `zarith-xen` etc. The trouble
>>> is twofold:
>>>
>>>  - I don't really know what the thing I'm doing is. Is mirage-xen a
>>> different architecture? A different ABI? Do C libraries need to be
>>> cross-compiled, or just compiled with particular flags so that they'll
>>> work on xen-minios instead of gnu/linux?
>>
>> C libraries need to be compiled with different headers and flags (in
>> particular, -mno-red-zone). Using libraries compiled for Linux will
>> often appear to work, but may fail when interrupts occur, so the build
>> makes it hard to use them by accident.
>>
>> However, OCaml binaries can be shared (ocamlopt doesn't use a red zone
>> and the OCaml ABI is the same).
>>
>>>  - The existing scripts seem to be pretty ad-hoc - zarith gets away
>>> mainly with particular CFLAGS
>>> (https://github.com/ocaml/opam-repository/blob/master/packages/zarith-xen/zarith-xen.1.4/files/mirage-install.sh),
>>
>> It's using pkg-config to get the important flags. The others are
>> optimisations (except -fno-builtin, which is either not needed or
>> should be supplied by Mini-OS).
>>
>>> while gmp looks like a full cross-compilation using `--target` (and
>>> then does some other sneaky things).
>>>
>>> safepass uses OASIS for its build system, which doesn't seem to have
>>> any cross-compilation functionality built in as far as I could tell.
>>> Can anyone give me pointers on what I'd need to do to safepass' build
>>> scripts to get this working in mirage-xen, or at the least some
>>> clarification on why it doesn't work as-is and how cross compilation
>>> works for C libraries used in mirage-xen?
>>>
>>> [0]: https://github.com/timbertson/passe
>>
>> The io-page library provides a fairly simple template:
>>
>> https://github.com/mirage/io-page/blob/master/_oasis
>>
>> It builds io_page_unix and io_page_xen libraries. The C flags are
>> added to the main META file with:
>>
>> XMETAExtraLines: xen_linkopts = "-lio_page_xen_stubs"
>>
>> There's a command to get the Xen flags:
>>
>> PostConfCommand: ocaml postconf.ml
>>
>> The Xen source file (stub_alloc_pages_xen.c) is just a symlink to the
>> Unix one (you need a separate file because OASIS can't compile the
>> same source path with different flags).
>
> Thanks, Thomas. - that helps quite a lot
>
> I think I've followed the same pattern now, but still haven't been
> able to get safepass building.
>
> I'm using the following for CCOpt:
>
> `pkg-config --cflags --static mirage-xen-ocaml`
>
> Now the linking phase fails with:
>
> + ocamlfind ocamlmklib -o src/safepass_stubs src/crypt_blowfish.o
> src/bcrypt_stub.o
> ld: errno: TLS definition in /nix/store/<...>-glibc-2.21/lib/libc.so.6
> section .tbss mismatches non-TLS reference in src/crypt_blowfish.o
> /nix/store/<...>-glibc-2.21/lib/libc.so.6: could not read symbols: Bad value
> collect2: error: ld returned 1 exit status
> Command exited with code 2.
> E: Failure("Command ''ocamlbuild' src/libsafepass_stubs.a
> src/dllsafepass_stubs.so src/safepass.cma src/safepass.cmxa
> src/safepass.a src/safepass.cmxs -tag debug' terminated with error
> code 10")

Try running it as "ocamlfind ocamlmklib -verbose" to see what commands
it's actually using. For io-page, I get:

$ ocamlfind ocamlmklib -verbose -o lib/io_page_xen_stubs
lib/stub_alloc_pages_xen.o
Effective set of compiler predicates: autolink,byte,native
+ ocamlmklib -ocamlc ocamlc.opt -ocamlopt ocamlopt.opt -verbose -o
lib/io_page_xen_stubs lib/stub_alloc_pages_xen.o
+ gcc -shared  -o lib/dllio_page_xen_stubs.so lib/stub_alloc_pages_xen.o
+ ar rc lib/libio_page_xen_stubs.a  lib/stub_alloc_pages_xen.o; ranlib
lib/libio_page_xen_stubs.a

So it doesn't seem to be using ld at all, just ar.

> This seems to be something special about errno being thread-local in
> glibc. Googling turns up a lot of advice on fixing this problem, but
> all of it assumes you're just building on linux for linux.
> bcrypt_stubs.c does <errno.h>, which I believe is being provided by
> minios-xen-0.8/include/minios-xen/errno.h.
>
> However, at link time I don't know where errno is supposed to come
> from. It seems to be coming from glibc, but shouldn't it be coming
> from minios instead given that's where the errno header comes from? I
> poked around with `nm` in minios' built files but couldn't find
> anything that actually defined errno.

It's from mirage-xen:

https://github.com/mirage/mirage-platform/blob/c035439de703edbfdd096044afdbab85f4cbf61f/bindings/main.c#L30

>  -- other things I've tried:
>
> 1) I tried using `pkg-config --cflags mirage-xen-ocaml` for CCLib,
> however `ocamlfind ocamlmklib` didn't seem to like that - it didn't
> understand "-m elf_x86_64" nor
> "-T/nix/store/<...>-minios-xen-0.8/lib/minios-xen/libminios.lds"
>
> 2) I notice that minios-xen/errno.h has:
>
> #ifdef HAVE_LIBC
> #include <mini-os/sched.h>
> extern int errno;
> #define ERRNO
> #define errno (get_current()->reent._errno)
> #endif
>
> So just to see what happened, I tried adding -DHAVE_LIBC. But then I
> get errors because sys/reent.h can't be found, so that's probably not
> a useful path to explore.
>
> Any advice where to go from here?
>
> Thanks,
>  - Tim.



-- 
Dr Thomas Leonard        http://roscidus.com/blog/
GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Mon Jan 11 09:06:57 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 11 Jan 2016 09:06:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aIYR6-0005c7-8G; Mon, 11 Jan 2016 09:06:48 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <tim@gfxmonk.net>) id 1aIYR4-0005by-1Z
	for mirageos-devel@lists.xenproject.org; Mon, 11 Jan 2016 09:06:46 +0000
Received: from [85.158.137.68] by server-1.bemta-3.messagelabs.com id
	A8/78-02745-5A073965; Mon, 11 Jan 2016 09:06:45 +0000
X-Env-Sender: tim@gfxmonk.net
X-Msg-Ref: server-4.tower-31.messagelabs.com!1452503202!5413126!1
X-Originating-IP: [209.85.213.51]
X-SpamReason: No, hits=0.8 required=7.0 tests=BODY_RANDOM_LONG,
  RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 15729 invoked from network); 11 Jan 2016 09:06:43 -0000
Received: from mail-vk0-f51.google.com (HELO mail-vk0-f51.google.com)
	(209.85.213.51)
	by server-4.tower-31.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 11 Jan 2016 09:06:43 -0000
Received: by mail-vk0-f51.google.com with SMTP id i129so82584595vkb.0
	for <mirageos-devel@lists.xenproject.org>;
	Mon, 11 Jan 2016 01:06:43 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=gfxmonk-net.20150623.gappssmtp.com; s=20150623;
	h=mime-version:in-reply-to:references:from:date:message-id:subject:to
	:cc:content-type;
	bh=jWEr+LZGW7aDHazRhQxXqN3xK/vgY9OWDbI3sfhJyc4=;
	b=Oh5Yx/RXwdqPg9d0Xp16q9g+g4L5LoKJcSrC1cq4hOxbdw86vIDWEp8k9+JDwbsLTB
	iI9TdHmayGjckSm4EUEpWR0hqqz5d8vMUo0fvGO8FqL95HML7/Cvh1bolRgYav2l0Jon
	NXqHd8qUWB5+KueF64uhrzHIVAOQwNApDCIzM7ektS0qGETpnjpy+IF38KkZpKEnKaCW
	qXYlIuDCxACIaA4opjJYbCMp75RfOWvZswnR62+KISBMENvN0GS4L2RnOMGhLEotecgb
	mdJhD6g2uBg7eZ1/noGBGaUbNmRvdsscYI/TQUuNKqQrpvH/8w56vt8NqNM/hKxotxmq
	6eSQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:in-reply-to:references:from:date
	:message-id:subject:to:cc:content-type;
	bh=jWEr+LZGW7aDHazRhQxXqN3xK/vgY9OWDbI3sfhJyc4=;
	b=M70DfeYS7pnpzRsj5W0lsNLBEOvxy54CO/gjKTZpKYYXkBqAT8ySUZURZkGOOpYfPM
	sHqbnTkmhPkowR5svhBJtofKm2pXm5m2w1Nlp9oqG4poY8ytvdfXTvjg96WXrCj86AXq
	I+aJ1Myl4VJJtBxBuyeuKC3JQUicyeT73OF7vrNuB2OZe+AU8WXZDRlEsKv11uV/02Vo
	NrCQZyD0b4+jfPep9B9zly6oK98x7oi6CONStZZZndphAj5kJXUbtwlC1uVYv+t0HmSx
	Kgn2yrxKyoEDfuu6JNVh+DvRHpHoFQUXZw8bnaY9DGD/WG8Z6wNrEMk8W5JPXg1G5krL
	dCxQ==
X-Gm-Message-State: ALoCoQmOK5ppoIzET7mKKxmSVyaRLFjgQZOviGDYHcG2QmD9rVIeRHlA/XyTRv4USeSViorAalUwcctM96uW5E1gKHA36r55kg==
X-Received: by 10.31.16.226 with SMTP id 95mr85358106vkq.143.1452503202403;
	Mon, 11 Jan 2016 01:06:42 -0800 (PST)
Received: from mail-vk0-f41.google.com (mail-vk0-f41.google.com.
	[209.85.213.41]) by smtp.gmail.com with ESMTPSA id
	v145sm15268414vkv.6.2016.01.11.01.06.41
	for <mirageos-devel@lists.xenproject.org>
	(version=TLSv1/SSLv3 cipher=OTHER);
	Mon, 11 Jan 2016 01:06:41 -0800 (PST)
Received: by mail-vk0-f41.google.com with SMTP id i129so82584429vkb.0
	for <mirageos-devel@lists.xenproject.org>;
	Mon, 11 Jan 2016 01:06:41 -0800 (PST)
X-Received: by 10.31.21.210 with SMTP id 201mr88985036vkv.132.1452503201597;
	Mon, 11 Jan 2016 01:06:41 -0800 (PST)
MIME-Version: 1.0
Received: by 10.31.69.132 with HTTP; Mon, 11 Jan 2016 01:06:22 -0800 (PST)
In-Reply-To: <CAG4opy-acZETa+Jbf=6oK3_wv7buP1612DZw0nxUH0wkZh9BEA@mail.gmail.com>
References: <CAC-LLDiE4J11bvyJXrvee45MwBtH7OifOHUNo3SwDAW0YfPusQ@mail.gmail.com>
	<CAG4opy-aED7kSKUZoFoq4Gka3KenpD2-ET_f58S520rGVXu-Jg@mail.gmail.com>
	<CAC-LLDgEOoSVTaB1+PuZkjVdUuHs856o3+fDYd26e_7zEFtdEQ@mail.gmail.com>
	<CAG4opy-acZETa+Jbf=6oK3_wv7buP1612DZw0nxUH0wkZh9BEA@mail.gmail.com>
From: Tim Cuthbertson <tim@gfxmonk.net>
Date: Mon, 11 Jan 2016 20:06:22 +1100
X-Gmail-Original-Message-ID: <CAC-LLDhBohpWaF9Y7iC+G1PXm8S5jqEKoKn-vmqgCmM-onLr5A@mail.gmail.com>
Message-ID: <CAC-LLDhBohpWaF9Y7iC+G1PXm8S5jqEKoKn-vmqgCmM-onLr5A@mail.gmail.com>
To: Thomas Leonard <talex5@gmail.com>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Compiling C components for mirage-xen
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On Mon, Jan 11, 2016 at 4:52 AM, Thomas Leonard <talex5@gmail.com> wrote:
> On 10 January 2016 at 10:15, Tim Cuthbertson <tim@gfxmonk.net> wrote:
>> On Fri, Jan 8, 2016 at 11:14 PM, Thomas Leonard <talex5@gmail.com> wrote:
>>> On 8 January 2016 at 11:19, Tim Cuthbertson <tim@gfxmonk.net> wrote:
>>>> I'd like to use `Bcrypt` from the `safepass` opam module in passe[0].
>>>> There is sadly no `safepass-xen` package, and trying to just use
>>>> `safepass` results in link errors:
>>>>
>>>>
>>>> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o): In function
>>>> `BF_crypt':
>>>> (.text+0x1b97): undefined reference to `__errno_location'
>>>> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o): In function
>>>> `BF_crypt':
>>>> (.text+0x2112): undefined reference to `__errno_location'
>>>> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o): In function
>>>> `_crypt_blowfish_rn':
>>>> (.text+0x21ea): undefined reference to `__errno_location'
>>>> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o): In function
>>>> `_crypt_gensalt_blowfish_rn':
>>>> (.text+0x2575): undefined reference to `__errno_location'
>>>> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o): In function
>>>> `_crypt_gensalt_blowfish_rn':
>>>> (.text+0x25a6): undefined reference to `__errno_location'
>>>> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o):(.text+0x25b7):
>>>> more undefined references to `__errno_location' follow
>>>>
>>>>
>>>> I'm assuming I'd need to customise the build process tp produce an
>>>> appropriate C library as with `gmp-xen`, `zarith-xen` etc. The trouble
>>>> is twofold:
>>>>
>>>>  - I don't really know what the thing I'm doing is. Is mirage-xen a
>>>> different architecture? A different ABI? Do C libraries need to be
>>>> cross-compiled, or just compiled with particular flags so that they'll
>>>> work on xen-minios instead of gnu/linux?
>>>
>>> C libraries need to be compiled with different headers and flags (in
>>> particular, -mno-red-zone). Using libraries compiled for Linux will
>>> often appear to work, but may fail when interrupts occur, so the build
>>> makes it hard to use them by accident.
>>>
>>> However, OCaml binaries can be shared (ocamlopt doesn't use a red zone
>>> and the OCaml ABI is the same).
>>>
>>>>  - The existing scripts seem to be pretty ad-hoc - zarith gets away
>>>> mainly with particular CFLAGS
>>>> (https://github.com/ocaml/opam-repository/blob/master/packages/zarith-xen/zarith-xen.1.4/files/mirage-install.sh),
>>>
>>> It's using pkg-config to get the important flags. The others are
>>> optimisations (except -fno-builtin, which is either not needed or
>>> should be supplied by Mini-OS).
>>>
>>>> while gmp looks like a full cross-compilation using `--target` (and
>>>> then does some other sneaky things).
>>>>
>>>> safepass uses OASIS for its build system, which doesn't seem to have
>>>> any cross-compilation functionality built in as far as I could tell.
>>>> Can anyone give me pointers on what I'd need to do to safepass' build
>>>> scripts to get this working in mirage-xen, or at the least some
>>>> clarification on why it doesn't work as-is and how cross compilation
>>>> works for C libraries used in mirage-xen?
>>>>
>>>> [0]: https://github.com/timbertson/passe
>>>
>>> The io-page library provides a fairly simple template:
>>>
>>> https://github.com/mirage/io-page/blob/master/_oasis
>>>
>>> It builds io_page_unix and io_page_xen libraries. The C flags are
>>> added to the main META file with:
>>>
>>> XMETAExtraLines: xen_linkopts = "-lio_page_xen_stubs"
>>>
>>> There's a command to get the Xen flags:
>>>
>>> PostConfCommand: ocaml postconf.ml
>>>
>>> The Xen source file (stub_alloc_pages_xen.c) is just a symlink to the
>>> Unix one (you need a separate file because OASIS can't compile the
>>> same source path with different flags).
>>
>> Thanks, Thomas. - that helps quite a lot
>>
>> I think I've followed the same pattern now, but still haven't been
>> able to get safepass building.
>>
>> I'm using the following for CCOpt:
>>
>> `pkg-config --cflags --static mirage-xen-ocaml`
>>
>> Now the linking phase fails with:
>>
>> + ocamlfind ocamlmklib -o src/safepass_stubs src/crypt_blowfish.o
>> src/bcrypt_stub.o
>> ld: errno: TLS definition in /nix/store/<...>-glibc-2.21/lib/libc.so.6
>> section .tbss mismatches non-TLS reference in src/crypt_blowfish.o
>> /nix/store/<...>-glibc-2.21/lib/libc.so.6: could not read symbols: Bad value
>> collect2: error: ld returned 1 exit status
>> Command exited with code 2.
>> E: Failure("Command ''ocamlbuild' src/libsafepass_stubs.a
>> src/dllsafepass_stubs.so src/safepass.cma src/safepass.cmxa
>> src/safepass.a src/safepass.cmxs -tag debug' terminated with error
>> code 10")
>
> Try running it as "ocamlfind ocamlmklib -verbose" to see what commands
> it's actually using. For io-page, I get:
>
> $ ocamlfind ocamlmklib -verbose -o lib/io_page_xen_stubs
> lib/stub_alloc_pages_xen.o
> Effective set of compiler predicates: autolink,byte,native
> + ocamlmklib -ocamlc ocamlc.opt -ocamlopt ocamlopt.opt -verbose -o
> lib/io_page_xen_stubs lib/stub_alloc_pages_xen.o
> + gcc -shared  -o lib/dllio_page_xen_stubs.so lib/stub_alloc_pages_xen.o
> + ar rc lib/libio_page_xen_stubs.a  lib/stub_alloc_pages_xen.o; ranlib
> lib/libio_page_xen_stubs.a
>
> So it doesn't seem to be using ld at all, just ar.

Tracing it with strace, that `gcc -shared` process ends up invoking
`ld` internally.

I tried running ocamlmklib with the `-failsafe` option, and it does
continue past this and produce the static .a library using `ar`. But
if I try and put that flag into the larger build it doesn't get much
further, because it hits the same issue when creating
src/safepass.cmxs:

+ ocamlfind ocamlopt -shared -I src src/safepass.cmxa src/bcrypt.cmx
-o src/safepass.cmxs
ld: errno: TLS definition in libc.so.6 section .tbss mismatches
non-TLS reference in src/libsafepass_stubs.a(crypt_blowfish.o)
libc.so.6: could not read symbols: Bad value
collect2: error: ld returned 1 exit status

>> This seems to be something special about errno being thread-local in
>> glibc. Googling turns up a lot of advice on fixing this problem, but
>> all of it assumes you're just building on linux for linux.
>> bcrypt_stubs.c does <errno.h>, which I believe is being provided by
>> minios-xen-0.8/include/minios-xen/errno.h.
>>
>> However, at link time I don't know where errno is supposed to come
>> from. It seems to be coming from glibc, but shouldn't it be coming
>> from minios instead given that's where the errno header comes from? I
>> poked around with `nm` in minios' built files but couldn't find
>> anything that actually defined errno.
>
> It's from mirage-xen:
>
> https://github.com/mirage/mirage-platform/blob/c035439de703edbfdd096044afdbab85f4cbf61f/bindings/main.c#L30

Which compiled libraries does that end up in though?

I tried `nm`-ing all the built files from mirage-{xen,xen-posix,xen-ocaml} with:

$ find /nix/store/inxv9vdvnz8cjs6236fmalj0mnaq3sgx-mirage-xen-ocaml-2.3.4
/nix/store/vbz4pivjk196dw5h8rmg68qxh5m44cn9-mirage-xen-posix-2.3.4
/nix/store/24lm5990pxzp71nsgnffcmb2i7n41fck-mirage-xen-2.3.3 -type f
-exec bash -c 'if nm {} 2>/dev/null | grep -q errno; then echo {}; nm
{} | grep errno; fi' \;
/nix/store/inxv9vdvnz8cjs6236fmalj0mnaq3sgx-mirage-xen-ocaml-2.3.4/lib/mirage-xen-ocaml/libxenasmrun.a
                 U errno
                 U errno
                 U errno
                 U errno
/nix/store/vbz4pivjk196dw5h8rmg68qxh5m44cn9-mirage-xen-posix-2.3.4/lib/mirage-xen-posix/libxenposix.a
                 U errno
0000000000000e4a T __h_errno_location
/nix/store/24lm5990pxzp71nsgnffcmb2i7n41fck-mirage-xen-2.3.3/lib/mirage-xen/libxencamlbindings.a
0000000000000004 C errno


So there are only .a files (which ld ignores when creating a shared
library, doesn't it?), and only libxencamlbindings actually defines it
(the others just reference it), which doesn't seem like a library I'd
necessarily need to link against.

I don't know if mirage-xen actually makes use of .so libraries, as
I've only seen it produce static executables. But even if it doesn't
need them, I'd need to somehow tell oasis not to build shared versions
of safepass (both the .so and the .cmxs).

>>  -- other things I've tried:
>>
>> 1) I tried using `pkg-config --cflags mirage-xen-ocaml` for CCLib,
>> however `ocamlfind ocamlmklib` didn't seem to like that - it didn't
>> understand "-m elf_x86_64" nor
>> "-T/nix/store/<...>-minios-xen-0.8/lib/minios-xen/libminios.lds"
>>
>> 2) I notice that minios-xen/errno.h has:
>>
>> #ifdef HAVE_LIBC
>> #include <mini-os/sched.h>
>> extern int errno;
>> #define ERRNO
>> #define errno (get_current()->reent._errno)
>> #endif
>>
>> So just to see what happened, I tried adding -DHAVE_LIBC. But then I
>> get errors because sys/reent.h can't be found, so that's probably not
>> a useful path to explore.
>>
>> Any advice where to go from here?
>>
>> Thanks,
>>  - Tim.
>
>
>
> --
> Dr Thomas Leonard        http://roscidus.com/blog/
> GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Mon Jan 11 09:06:57 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 11 Jan 2016 09:06:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aIYR6-0005c7-8G; Mon, 11 Jan 2016 09:06:48 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <tim@gfxmonk.net>) id 1aIYR4-0005by-1Z
	for mirageos-devel@lists.xenproject.org; Mon, 11 Jan 2016 09:06:46 +0000
Received: from [85.158.137.68] by server-1.bemta-3.messagelabs.com id
	A8/78-02745-5A073965; Mon, 11 Jan 2016 09:06:45 +0000
X-Env-Sender: tim@gfxmonk.net
X-Msg-Ref: server-4.tower-31.messagelabs.com!1452503202!5413126!1
X-Originating-IP: [209.85.213.51]
X-SpamReason: No, hits=0.8 required=7.0 tests=BODY_RANDOM_LONG,
  RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 15729 invoked from network); 11 Jan 2016 09:06:43 -0000
Received: from mail-vk0-f51.google.com (HELO mail-vk0-f51.google.com)
	(209.85.213.51)
	by server-4.tower-31.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 11 Jan 2016 09:06:43 -0000
Received: by mail-vk0-f51.google.com with SMTP id i129so82584595vkb.0
	for <mirageos-devel@lists.xenproject.org>;
	Mon, 11 Jan 2016 01:06:43 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=gfxmonk-net.20150623.gappssmtp.com; s=20150623;
	h=mime-version:in-reply-to:references:from:date:message-id:subject:to
	:cc:content-type;
	bh=jWEr+LZGW7aDHazRhQxXqN3xK/vgY9OWDbI3sfhJyc4=;
	b=Oh5Yx/RXwdqPg9d0Xp16q9g+g4L5LoKJcSrC1cq4hOxbdw86vIDWEp8k9+JDwbsLTB
	iI9TdHmayGjckSm4EUEpWR0hqqz5d8vMUo0fvGO8FqL95HML7/Cvh1bolRgYav2l0Jon
	NXqHd8qUWB5+KueF64uhrzHIVAOQwNApDCIzM7ektS0qGETpnjpy+IF38KkZpKEnKaCW
	qXYlIuDCxACIaA4opjJYbCMp75RfOWvZswnR62+KISBMENvN0GS4L2RnOMGhLEotecgb
	mdJhD6g2uBg7eZ1/noGBGaUbNmRvdsscYI/TQUuNKqQrpvH/8w56vt8NqNM/hKxotxmq
	6eSQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:in-reply-to:references:from:date
	:message-id:subject:to:cc:content-type;
	bh=jWEr+LZGW7aDHazRhQxXqN3xK/vgY9OWDbI3sfhJyc4=;
	b=M70DfeYS7pnpzRsj5W0lsNLBEOvxy54CO/gjKTZpKYYXkBqAT8ySUZURZkGOOpYfPM
	sHqbnTkmhPkowR5svhBJtofKm2pXm5m2w1Nlp9oqG4poY8ytvdfXTvjg96WXrCj86AXq
	I+aJ1Myl4VJJtBxBuyeuKC3JQUicyeT73OF7vrNuB2OZe+AU8WXZDRlEsKv11uV/02Vo
	NrCQZyD0b4+jfPep9B9zly6oK98x7oi6CONStZZZndphAj5kJXUbtwlC1uVYv+t0HmSx
	Kgn2yrxKyoEDfuu6JNVh+DvRHpHoFQUXZw8bnaY9DGD/WG8Z6wNrEMk8W5JPXg1G5krL
	dCxQ==
X-Gm-Message-State: ALoCoQmOK5ppoIzET7mKKxmSVyaRLFjgQZOviGDYHcG2QmD9rVIeRHlA/XyTRv4USeSViorAalUwcctM96uW5E1gKHA36r55kg==
X-Received: by 10.31.16.226 with SMTP id 95mr85358106vkq.143.1452503202403;
	Mon, 11 Jan 2016 01:06:42 -0800 (PST)
Received: from mail-vk0-f41.google.com (mail-vk0-f41.google.com.
	[209.85.213.41]) by smtp.gmail.com with ESMTPSA id
	v145sm15268414vkv.6.2016.01.11.01.06.41
	for <mirageos-devel@lists.xenproject.org>
	(version=TLSv1/SSLv3 cipher=OTHER);
	Mon, 11 Jan 2016 01:06:41 -0800 (PST)
Received: by mail-vk0-f41.google.com with SMTP id i129so82584429vkb.0
	for <mirageos-devel@lists.xenproject.org>;
	Mon, 11 Jan 2016 01:06:41 -0800 (PST)
X-Received: by 10.31.21.210 with SMTP id 201mr88985036vkv.132.1452503201597;
	Mon, 11 Jan 2016 01:06:41 -0800 (PST)
MIME-Version: 1.0
Received: by 10.31.69.132 with HTTP; Mon, 11 Jan 2016 01:06:22 -0800 (PST)
In-Reply-To: <CAG4opy-acZETa+Jbf=6oK3_wv7buP1612DZw0nxUH0wkZh9BEA@mail.gmail.com>
References: <CAC-LLDiE4J11bvyJXrvee45MwBtH7OifOHUNo3SwDAW0YfPusQ@mail.gmail.com>
	<CAG4opy-aED7kSKUZoFoq4Gka3KenpD2-ET_f58S520rGVXu-Jg@mail.gmail.com>
	<CAC-LLDgEOoSVTaB1+PuZkjVdUuHs856o3+fDYd26e_7zEFtdEQ@mail.gmail.com>
	<CAG4opy-acZETa+Jbf=6oK3_wv7buP1612DZw0nxUH0wkZh9BEA@mail.gmail.com>
From: Tim Cuthbertson <tim@gfxmonk.net>
Date: Mon, 11 Jan 2016 20:06:22 +1100
X-Gmail-Original-Message-ID: <CAC-LLDhBohpWaF9Y7iC+G1PXm8S5jqEKoKn-vmqgCmM-onLr5A@mail.gmail.com>
Message-ID: <CAC-LLDhBohpWaF9Y7iC+G1PXm8S5jqEKoKn-vmqgCmM-onLr5A@mail.gmail.com>
To: Thomas Leonard <talex5@gmail.com>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Compiling C components for mirage-xen
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On Mon, Jan 11, 2016 at 4:52 AM, Thomas Leonard <talex5@gmail.com> wrote:
> On 10 January 2016 at 10:15, Tim Cuthbertson <tim@gfxmonk.net> wrote:
>> On Fri, Jan 8, 2016 at 11:14 PM, Thomas Leonard <talex5@gmail.com> wrote:
>>> On 8 January 2016 at 11:19, Tim Cuthbertson <tim@gfxmonk.net> wrote:
>>>> I'd like to use `Bcrypt` from the `safepass` opam module in passe[0].
>>>> There is sadly no `safepass-xen` package, and trying to just use
>>>> `safepass` results in link errors:
>>>>
>>>>
>>>> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o): In function
>>>> `BF_crypt':
>>>> (.text+0x1b97): undefined reference to `__errno_location'
>>>> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o): In function
>>>> `BF_crypt':
>>>> (.text+0x2112): undefined reference to `__errno_location'
>>>> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o): In function
>>>> `_crypt_blowfish_rn':
>>>> (.text+0x21ea): undefined reference to `__errno_location'
>>>> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o): In function
>>>> `_crypt_gensalt_blowfish_rn':
>>>> (.text+0x2575): undefined reference to `__errno_location'
>>>> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o): In function
>>>> `_crypt_gensalt_blowfish_rn':
>>>> (.text+0x25a6): undefined reference to `__errno_location'
>>>> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o):(.text+0x25b7):
>>>> more undefined references to `__errno_location' follow
>>>>
>>>>
>>>> I'm assuming I'd need to customise the build process tp produce an
>>>> appropriate C library as with `gmp-xen`, `zarith-xen` etc. The trouble
>>>> is twofold:
>>>>
>>>>  - I don't really know what the thing I'm doing is. Is mirage-xen a
>>>> different architecture? A different ABI? Do C libraries need to be
>>>> cross-compiled, or just compiled with particular flags so that they'll
>>>> work on xen-minios instead of gnu/linux?
>>>
>>> C libraries need to be compiled with different headers and flags (in
>>> particular, -mno-red-zone). Using libraries compiled for Linux will
>>> often appear to work, but may fail when interrupts occur, so the build
>>> makes it hard to use them by accident.
>>>
>>> However, OCaml binaries can be shared (ocamlopt doesn't use a red zone
>>> and the OCaml ABI is the same).
>>>
>>>>  - The existing scripts seem to be pretty ad-hoc - zarith gets away
>>>> mainly with particular CFLAGS
>>>> (https://github.com/ocaml/opam-repository/blob/master/packages/zarith-xen/zarith-xen.1.4/files/mirage-install.sh),
>>>
>>> It's using pkg-config to get the important flags. The others are
>>> optimisations (except -fno-builtin, which is either not needed or
>>> should be supplied by Mini-OS).
>>>
>>>> while gmp looks like a full cross-compilation using `--target` (and
>>>> then does some other sneaky things).
>>>>
>>>> safepass uses OASIS for its build system, which doesn't seem to have
>>>> any cross-compilation functionality built in as far as I could tell.
>>>> Can anyone give me pointers on what I'd need to do to safepass' build
>>>> scripts to get this working in mirage-xen, or at the least some
>>>> clarification on why it doesn't work as-is and how cross compilation
>>>> works for C libraries used in mirage-xen?
>>>>
>>>> [0]: https://github.com/timbertson/passe
>>>
>>> The io-page library provides a fairly simple template:
>>>
>>> https://github.com/mirage/io-page/blob/master/_oasis
>>>
>>> It builds io_page_unix and io_page_xen libraries. The C flags are
>>> added to the main META file with:
>>>
>>> XMETAExtraLines: xen_linkopts = "-lio_page_xen_stubs"
>>>
>>> There's a command to get the Xen flags:
>>>
>>> PostConfCommand: ocaml postconf.ml
>>>
>>> The Xen source file (stub_alloc_pages_xen.c) is just a symlink to the
>>> Unix one (you need a separate file because OASIS can't compile the
>>> same source path with different flags).
>>
>> Thanks, Thomas. - that helps quite a lot
>>
>> I think I've followed the same pattern now, but still haven't been
>> able to get safepass building.
>>
>> I'm using the following for CCOpt:
>>
>> `pkg-config --cflags --static mirage-xen-ocaml`
>>
>> Now the linking phase fails with:
>>
>> + ocamlfind ocamlmklib -o src/safepass_stubs src/crypt_blowfish.o
>> src/bcrypt_stub.o
>> ld: errno: TLS definition in /nix/store/<...>-glibc-2.21/lib/libc.so.6
>> section .tbss mismatches non-TLS reference in src/crypt_blowfish.o
>> /nix/store/<...>-glibc-2.21/lib/libc.so.6: could not read symbols: Bad value
>> collect2: error: ld returned 1 exit status
>> Command exited with code 2.
>> E: Failure("Command ''ocamlbuild' src/libsafepass_stubs.a
>> src/dllsafepass_stubs.so src/safepass.cma src/safepass.cmxa
>> src/safepass.a src/safepass.cmxs -tag debug' terminated with error
>> code 10")
>
> Try running it as "ocamlfind ocamlmklib -verbose" to see what commands
> it's actually using. For io-page, I get:
>
> $ ocamlfind ocamlmklib -verbose -o lib/io_page_xen_stubs
> lib/stub_alloc_pages_xen.o
> Effective set of compiler predicates: autolink,byte,native
> + ocamlmklib -ocamlc ocamlc.opt -ocamlopt ocamlopt.opt -verbose -o
> lib/io_page_xen_stubs lib/stub_alloc_pages_xen.o
> + gcc -shared  -o lib/dllio_page_xen_stubs.so lib/stub_alloc_pages_xen.o
> + ar rc lib/libio_page_xen_stubs.a  lib/stub_alloc_pages_xen.o; ranlib
> lib/libio_page_xen_stubs.a
>
> So it doesn't seem to be using ld at all, just ar.

Tracing it with strace, that `gcc -shared` process ends up invoking
`ld` internally.

I tried running ocamlmklib with the `-failsafe` option, and it does
continue past this and produce the static .a library using `ar`. But
if I try and put that flag into the larger build it doesn't get much
further, because it hits the same issue when creating
src/safepass.cmxs:

+ ocamlfind ocamlopt -shared -I src src/safepass.cmxa src/bcrypt.cmx
-o src/safepass.cmxs
ld: errno: TLS definition in libc.so.6 section .tbss mismatches
non-TLS reference in src/libsafepass_stubs.a(crypt_blowfish.o)
libc.so.6: could not read symbols: Bad value
collect2: error: ld returned 1 exit status

>> This seems to be something special about errno being thread-local in
>> glibc. Googling turns up a lot of advice on fixing this problem, but
>> all of it assumes you're just building on linux for linux.
>> bcrypt_stubs.c does <errno.h>, which I believe is being provided by
>> minios-xen-0.8/include/minios-xen/errno.h.
>>
>> However, at link time I don't know where errno is supposed to come
>> from. It seems to be coming from glibc, but shouldn't it be coming
>> from minios instead given that's where the errno header comes from? I
>> poked around with `nm` in minios' built files but couldn't find
>> anything that actually defined errno.
>
> It's from mirage-xen:
>
> https://github.com/mirage/mirage-platform/blob/c035439de703edbfdd096044afdbab85f4cbf61f/bindings/main.c#L30

Which compiled libraries does that end up in though?

I tried `nm`-ing all the built files from mirage-{xen,xen-posix,xen-ocaml} with:

$ find /nix/store/inxv9vdvnz8cjs6236fmalj0mnaq3sgx-mirage-xen-ocaml-2.3.4
/nix/store/vbz4pivjk196dw5h8rmg68qxh5m44cn9-mirage-xen-posix-2.3.4
/nix/store/24lm5990pxzp71nsgnffcmb2i7n41fck-mirage-xen-2.3.3 -type f
-exec bash -c 'if nm {} 2>/dev/null | grep -q errno; then echo {}; nm
{} | grep errno; fi' \;
/nix/store/inxv9vdvnz8cjs6236fmalj0mnaq3sgx-mirage-xen-ocaml-2.3.4/lib/mirage-xen-ocaml/libxenasmrun.a
                 U errno
                 U errno
                 U errno
                 U errno
/nix/store/vbz4pivjk196dw5h8rmg68qxh5m44cn9-mirage-xen-posix-2.3.4/lib/mirage-xen-posix/libxenposix.a
                 U errno
0000000000000e4a T __h_errno_location
/nix/store/24lm5990pxzp71nsgnffcmb2i7n41fck-mirage-xen-2.3.3/lib/mirage-xen/libxencamlbindings.a
0000000000000004 C errno


So there are only .a files (which ld ignores when creating a shared
library, doesn't it?), and only libxencamlbindings actually defines it
(the others just reference it), which doesn't seem like a library I'd
necessarily need to link against.

I don't know if mirage-xen actually makes use of .so libraries, as
I've only seen it produce static executables. But even if it doesn't
need them, I'd need to somehow tell oasis not to build shared versions
of safepass (both the .so and the .cmxs).

>>  -- other things I've tried:
>>
>> 1) I tried using `pkg-config --cflags mirage-xen-ocaml` for CCLib,
>> however `ocamlfind ocamlmklib` didn't seem to like that - it didn't
>> understand "-m elf_x86_64" nor
>> "-T/nix/store/<...>-minios-xen-0.8/lib/minios-xen/libminios.lds"
>>
>> 2) I notice that minios-xen/errno.h has:
>>
>> #ifdef HAVE_LIBC
>> #include <mini-os/sched.h>
>> extern int errno;
>> #define ERRNO
>> #define errno (get_current()->reent._errno)
>> #endif
>>
>> So just to see what happened, I tried adding -DHAVE_LIBC. But then I
>> get errors because sys/reent.h can't be found, so that's probably not
>> a useful path to explore.
>>
>> Any advice where to go from here?
>>
>> Thanks,
>>  - Tim.
>
>
>
> --
> Dr Thomas Leonard        http://roscidus.com/blog/
> GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Mon Jan 11 10:49:13 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 11 Jan 2016 10:49:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aIa24-0008GU-5T; Mon, 11 Jan 2016 10:49:04 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <talex5@gmail.com>) id 1aIa22-0008Fo-IT
	for mirageos-devel@lists.xenproject.org; Mon, 11 Jan 2016 10:49:02 +0000
Received: from [85.158.137.68] by server-2.bemta-3.messagelabs.com id
	E2/29-21201-D9883965; Mon, 11 Jan 2016 10:49:01 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-8.tower-31.messagelabs.com!1452509339!15170665!1
X-Originating-IP: [209.85.213.48]
X-SpamReason: No, hits=0.8 required=7.0 tests=BODY_RANDOM_LONG,
  RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 38867 invoked from network); 11 Jan 2016 10:49:00 -0000
Received: from mail-vk0-f48.google.com (HELO mail-vk0-f48.google.com)
	(209.85.213.48)
	by server-8.tower-31.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 11 Jan 2016 10:49:00 -0000
Received: by mail-vk0-f48.google.com with SMTP id k1so221848514vkb.2
	for <mirageos-devel@lists.xenproject.org>;
	Mon, 11 Jan 2016 02:49:00 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=scOGQ7nHQVW1wcmCA/GZ6kZk6Ov4gT8fUtBeE0fara0=;
	b=kRVFiPfMf034b2q6lF0iv5A+hM2NJusrQcDJBEck5HVjatrNmPZeXdxMSgRsVX1OBo
	4vwuIsTmZ9Ei5MAwL5eOn/edwn2LkpUBYQCWGsuaaEBTp3DWUSwoyMdhJ/jsMdCl3e6e
	yGMt5ruJz25Um4RjzquIfNepGlqZBNZkw5F0MCEc27b1fA/TDG4q85HNFzhqtgJGB0nE
	hpuMdIRCtUTQHrEM8/QLU3gvJUaKVMf+zsy7N/pnHh3KVpNEMPWGU1Ej/54gluPVUkZV
	PRcaNHDXdzNTJtxtEcrJuZ79y/wtKOQ4ynpD7b6wkxbXSXeEUEQnAJNJKV66oplGw0fy
	yuVw==
MIME-Version: 1.0
X-Received: by 10.31.16.101 with SMTP id g98mr89663391vki.41.1452509338872;
	Mon, 11 Jan 2016 02:48:58 -0800 (PST)
Received: by 10.31.128.84 with HTTP; Mon, 11 Jan 2016 02:48:58 -0800 (PST)
In-Reply-To: <CAC-LLDhBohpWaF9Y7iC+G1PXm8S5jqEKoKn-vmqgCmM-onLr5A@mail.gmail.com>
References: <CAC-LLDiE4J11bvyJXrvee45MwBtH7OifOHUNo3SwDAW0YfPusQ@mail.gmail.com>
	<CAG4opy-aED7kSKUZoFoq4Gka3KenpD2-ET_f58S520rGVXu-Jg@mail.gmail.com>
	<CAC-LLDgEOoSVTaB1+PuZkjVdUuHs856o3+fDYd26e_7zEFtdEQ@mail.gmail.com>
	<CAG4opy-acZETa+Jbf=6oK3_wv7buP1612DZw0nxUH0wkZh9BEA@mail.gmail.com>
	<CAC-LLDhBohpWaF9Y7iC+G1PXm8S5jqEKoKn-vmqgCmM-onLr5A@mail.gmail.com>
Date: Mon, 11 Jan 2016 10:48:58 +0000
Message-ID: <CAG4opy_R399MT12omWXoP8mSav+ho9Ry6qkUHV8mK=6Yk022mw@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Tim Cuthbertson <tim@gfxmonk.net>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Compiling C components for mirage-xen
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 11 January 2016 at 09:06, Tim Cuthbertson <tim@gfxmonk.net> wrote:
> On Mon, Jan 11, 2016 at 4:52 AM, Thomas Leonard <talex5@gmail.com> wrote:
>> On 10 January 2016 at 10:15, Tim Cuthbertson <tim@gfxmonk.net> wrote:
>>> On Fri, Jan 8, 2016 at 11:14 PM, Thomas Leonard <talex5@gmail.com> wrote:
>>>> On 8 January 2016 at 11:19, Tim Cuthbertson <tim@gfxmonk.net> wrote:
>>>>> I'd like to use `Bcrypt` from the `safepass` opam module in passe[0].
>>>>> There is sadly no `safepass-xen` package, and trying to just use
>>>>> `safepass` results in link errors:
>>>>>
>>>>>
>>>>> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o): In function
>>>>> `BF_crypt':
>>>>> (.text+0x1b97): undefined reference to `__errno_location'
>>>>> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o): In function
>>>>> `BF_crypt':
>>>>> (.text+0x2112): undefined reference to `__errno_location'
>>>>> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o): In function
>>>>> `_crypt_blowfish_rn':
>>>>> (.text+0x21ea): undefined reference to `__errno_location'
>>>>> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o): In function
>>>>> `_crypt_gensalt_blowfish_rn':
>>>>> (.text+0x2575): undefined reference to `__errno_location'
>>>>> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o): In function
>>>>> `_crypt_gensalt_blowfish_rn':
>>>>> (.text+0x25a6): undefined reference to `__errno_location'
>>>>> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o):(.text+0x25b7):
>>>>> more undefined references to `__errno_location' follow
>>>>>
>>>>>
>>>>> I'm assuming I'd need to customise the build process tp produce an
>>>>> appropriate C library as with `gmp-xen`, `zarith-xen` etc. The trouble
>>>>> is twofold:
>>>>>
>>>>>  - I don't really know what the thing I'm doing is. Is mirage-xen a
>>>>> different architecture? A different ABI? Do C libraries need to be
>>>>> cross-compiled, or just compiled with particular flags so that they'll
>>>>> work on xen-minios instead of gnu/linux?
>>>>
>>>> C libraries need to be compiled with different headers and flags (in
>>>> particular, -mno-red-zone). Using libraries compiled for Linux will
>>>> often appear to work, but may fail when interrupts occur, so the build
>>>> makes it hard to use them by accident.
>>>>
>>>> However, OCaml binaries can be shared (ocamlopt doesn't use a red zone
>>>> and the OCaml ABI is the same).
>>>>
>>>>>  - The existing scripts seem to be pretty ad-hoc - zarith gets away
>>>>> mainly with particular CFLAGS
>>>>> (https://github.com/ocaml/opam-repository/blob/master/packages/zarith-xen/zarith-xen.1.4/files/mirage-install.sh),
>>>>
>>>> It's using pkg-config to get the important flags. The others are
>>>> optimisations (except -fno-builtin, which is either not needed or
>>>> should be supplied by Mini-OS).
>>>>
>>>>> while gmp looks like a full cross-compilation using `--target` (and
>>>>> then does some other sneaky things).
>>>>>
>>>>> safepass uses OASIS for its build system, which doesn't seem to have
>>>>> any cross-compilation functionality built in as far as I could tell.
>>>>> Can anyone give me pointers on what I'd need to do to safepass' build
>>>>> scripts to get this working in mirage-xen, or at the least some
>>>>> clarification on why it doesn't work as-is and how cross compilation
>>>>> works for C libraries used in mirage-xen?
>>>>>
>>>>> [0]: https://github.com/timbertson/passe
>>>>
>>>> The io-page library provides a fairly simple template:
>>>>
>>>> https://github.com/mirage/io-page/blob/master/_oasis
>>>>
>>>> It builds io_page_unix and io_page_xen libraries. The C flags are
>>>> added to the main META file with:
>>>>
>>>> XMETAExtraLines: xen_linkopts = "-lio_page_xen_stubs"
>>>>
>>>> There's a command to get the Xen flags:
>>>>
>>>> PostConfCommand: ocaml postconf.ml
>>>>
>>>> The Xen source file (stub_alloc_pages_xen.c) is just a symlink to the
>>>> Unix one (you need a separate file because OASIS can't compile the
>>>> same source path with different flags).
>>>
>>> Thanks, Thomas. - that helps quite a lot
>>>
>>> I think I've followed the same pattern now, but still haven't been
>>> able to get safepass building.
>>>
>>> I'm using the following for CCOpt:
>>>
>>> `pkg-config --cflags --static mirage-xen-ocaml`
>>>
>>> Now the linking phase fails with:
>>>
>>> + ocamlfind ocamlmklib -o src/safepass_stubs src/crypt_blowfish.o
>>> src/bcrypt_stub.o
>>> ld: errno: TLS definition in /nix/store/<...>-glibc-2.21/lib/libc.so.6
>>> section .tbss mismatches non-TLS reference in src/crypt_blowfish.o
>>> /nix/store/<...>-glibc-2.21/lib/libc.so.6: could not read symbols: Bad value
>>> collect2: error: ld returned 1 exit status
>>> Command exited with code 2.
>>> E: Failure("Command ''ocamlbuild' src/libsafepass_stubs.a
>>> src/dllsafepass_stubs.so src/safepass.cma src/safepass.cmxa
>>> src/safepass.a src/safepass.cmxs -tag debug' terminated with error
>>> code 10")
>>
>> Try running it as "ocamlfind ocamlmklib -verbose" to see what commands
>> it's actually using. For io-page, I get:
>>
>> $ ocamlfind ocamlmklib -verbose -o lib/io_page_xen_stubs
>> lib/stub_alloc_pages_xen.o
>> Effective set of compiler predicates: autolink,byte,native
>> + ocamlmklib -ocamlc ocamlc.opt -ocamlopt ocamlopt.opt -verbose -o
>> lib/io_page_xen_stubs lib/stub_alloc_pages_xen.o
>> + gcc -shared  -o lib/dllio_page_xen_stubs.so lib/stub_alloc_pages_xen.o
>> + ar rc lib/libio_page_xen_stubs.a  lib/stub_alloc_pages_xen.o; ranlib
>> lib/libio_page_xen_stubs.a
>>
>> So it doesn't seem to be using ld at all, just ar.
>
> Tracing it with strace, that `gcc -shared` process ends up invoking
> `ld` internally.
>
> I tried running ocamlmklib with the `-failsafe` option, and it does
> continue past this and produce the static .a library using `ar`. But
> if I try and put that flag into the larger build it doesn't get much
> further, because it hits the same issue when creating
> src/safepass.cmxs:
>
> + ocamlfind ocamlopt -shared -I src src/safepass.cmxa src/bcrypt.cmx
> -o src/safepass.cmxs
> ld: errno: TLS definition in libc.so.6 section .tbss mismatches
> non-TLS reference in src/libsafepass_stubs.a(crypt_blowfish.o)
> libc.so.6: could not read symbols: Bad value
> collect2: error: ld returned 1 exit status
>
>>> This seems to be something special about errno being thread-local in
>>> glibc. Googling turns up a lot of advice on fixing this problem, but
>>> all of it assumes you're just building on linux for linux.
>>> bcrypt_stubs.c does <errno.h>, which I believe is being provided by
>>> minios-xen-0.8/include/minios-xen/errno.h.
>>>
>>> However, at link time I don't know where errno is supposed to come
>>> from. It seems to be coming from glibc, but shouldn't it be coming
>>> from minios instead given that's where the errno header comes from? I
>>> poked around with `nm` in minios' built files but couldn't find
>>> anything that actually defined errno.
>>
>> It's from mirage-xen:
>>
>> https://github.com/mirage/mirage-platform/blob/c035439de703edbfdd096044afdbab85f4cbf61f/bindings/main.c#L30
>
> Which compiled libraries does that end up in though?
>
> I tried `nm`-ing all the built files from mirage-{xen,xen-posix,xen-ocaml} with:
>
> $ find /nix/store/inxv9vdvnz8cjs6236fmalj0mnaq3sgx-mirage-xen-ocaml-2.3.4
> /nix/store/vbz4pivjk196dw5h8rmg68qxh5m44cn9-mirage-xen-posix-2.3.4
> /nix/store/24lm5990pxzp71nsgnffcmb2i7n41fck-mirage-xen-2.3.3 -type f
> -exec bash -c 'if nm {} 2>/dev/null | grep -q errno; then echo {}; nm
> {} | grep errno; fi' \;
> /nix/store/inxv9vdvnz8cjs6236fmalj0mnaq3sgx-mirage-xen-ocaml-2.3.4/lib/mirage-xen-ocaml/libxenasmrun.a
>                  U errno
>                  U errno
>                  U errno
>                  U errno
> /nix/store/vbz4pivjk196dw5h8rmg68qxh5m44cn9-mirage-xen-posix-2.3.4/lib/mirage-xen-posix/libxenposix.a
>                  U errno
> 0000000000000e4a T __h_errno_location
> /nix/store/24lm5990pxzp71nsgnffcmb2i7n41fck-mirage-xen-2.3.3/lib/mirage-xen/libxencamlbindings.a
> 0000000000000004 C errno

This is it (C = Common).

> So there are only .a files (which ld ignores when creating a shared
> library, doesn't it?), and only libxencamlbindings actually defines it
> (the others just reference it), which doesn't seem like a library I'd
> necessarily need to link against.
>
> I don't know if mirage-xen actually makes use of .so libraries, as
> I've only seen it produce static executables. But even if it doesn't
> need them, I'd need to somehow tell oasis not to build shared versions
> of safepass (both the .so and the .cmxs).

Correct: Mirage on Xen does not use shared libraries. I don't know how
to prevent them from being built. The easiest option might be to
remove the uses of errno from the library (it doesn't look like the
OCaml bindings do anything with it anyway).

>>>  -- other things I've tried:
>>>
>>> 1) I tried using `pkg-config --cflags mirage-xen-ocaml` for CCLib,
>>> however `ocamlfind ocamlmklib` didn't seem to like that - it didn't
>>> understand "-m elf_x86_64" nor
>>> "-T/nix/store/<...>-minios-xen-0.8/lib/minios-xen/libminios.lds"
>>>
>>> 2) I notice that minios-xen/errno.h has:
>>>
>>> #ifdef HAVE_LIBC
>>> #include <mini-os/sched.h>
>>> extern int errno;
>>> #define ERRNO
>>> #define errno (get_current()->reent._errno)
>>> #endif
>>>
>>> So just to see what happened, I tried adding -DHAVE_LIBC. But then I
>>> get errors because sys/reent.h can't be found, so that's probably not
>>> a useful path to explore.
>>>
>>> Any advice where to go from here?
>>>
>>> Thanks,
>>>  - Tim.
>>
>>
>>
>> --
>> Dr Thomas Leonard        http://roscidus.com/blog/
>> GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA



-- 
Dr Thomas Leonard        http://roscidus.com/blog/
GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Mon Jan 11 10:49:13 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 11 Jan 2016 10:49:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aIa24-0008GU-5T; Mon, 11 Jan 2016 10:49:04 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <talex5@gmail.com>) id 1aIa22-0008Fo-IT
	for mirageos-devel@lists.xenproject.org; Mon, 11 Jan 2016 10:49:02 +0000
Received: from [85.158.137.68] by server-2.bemta-3.messagelabs.com id
	E2/29-21201-D9883965; Mon, 11 Jan 2016 10:49:01 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-8.tower-31.messagelabs.com!1452509339!15170665!1
X-Originating-IP: [209.85.213.48]
X-SpamReason: No, hits=0.8 required=7.0 tests=BODY_RANDOM_LONG,
  RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 38867 invoked from network); 11 Jan 2016 10:49:00 -0000
Received: from mail-vk0-f48.google.com (HELO mail-vk0-f48.google.com)
	(209.85.213.48)
	by server-8.tower-31.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 11 Jan 2016 10:49:00 -0000
Received: by mail-vk0-f48.google.com with SMTP id k1so221848514vkb.2
	for <mirageos-devel@lists.xenproject.org>;
	Mon, 11 Jan 2016 02:49:00 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=scOGQ7nHQVW1wcmCA/GZ6kZk6Ov4gT8fUtBeE0fara0=;
	b=kRVFiPfMf034b2q6lF0iv5A+hM2NJusrQcDJBEck5HVjatrNmPZeXdxMSgRsVX1OBo
	4vwuIsTmZ9Ei5MAwL5eOn/edwn2LkpUBYQCWGsuaaEBTp3DWUSwoyMdhJ/jsMdCl3e6e
	yGMt5ruJz25Um4RjzquIfNepGlqZBNZkw5F0MCEc27b1fA/TDG4q85HNFzhqtgJGB0nE
	hpuMdIRCtUTQHrEM8/QLU3gvJUaKVMf+zsy7N/pnHh3KVpNEMPWGU1Ej/54gluPVUkZV
	PRcaNHDXdzNTJtxtEcrJuZ79y/wtKOQ4ynpD7b6wkxbXSXeEUEQnAJNJKV66oplGw0fy
	yuVw==
MIME-Version: 1.0
X-Received: by 10.31.16.101 with SMTP id g98mr89663391vki.41.1452509338872;
	Mon, 11 Jan 2016 02:48:58 -0800 (PST)
Received: by 10.31.128.84 with HTTP; Mon, 11 Jan 2016 02:48:58 -0800 (PST)
In-Reply-To: <CAC-LLDhBohpWaF9Y7iC+G1PXm8S5jqEKoKn-vmqgCmM-onLr5A@mail.gmail.com>
References: <CAC-LLDiE4J11bvyJXrvee45MwBtH7OifOHUNo3SwDAW0YfPusQ@mail.gmail.com>
	<CAG4opy-aED7kSKUZoFoq4Gka3KenpD2-ET_f58S520rGVXu-Jg@mail.gmail.com>
	<CAC-LLDgEOoSVTaB1+PuZkjVdUuHs856o3+fDYd26e_7zEFtdEQ@mail.gmail.com>
	<CAG4opy-acZETa+Jbf=6oK3_wv7buP1612DZw0nxUH0wkZh9BEA@mail.gmail.com>
	<CAC-LLDhBohpWaF9Y7iC+G1PXm8S5jqEKoKn-vmqgCmM-onLr5A@mail.gmail.com>
Date: Mon, 11 Jan 2016 10:48:58 +0000
Message-ID: <CAG4opy_R399MT12omWXoP8mSav+ho9Ry6qkUHV8mK=6Yk022mw@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Tim Cuthbertson <tim@gfxmonk.net>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Compiling C components for mirage-xen
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 11 January 2016 at 09:06, Tim Cuthbertson <tim@gfxmonk.net> wrote:
> On Mon, Jan 11, 2016 at 4:52 AM, Thomas Leonard <talex5@gmail.com> wrote:
>> On 10 January 2016 at 10:15, Tim Cuthbertson <tim@gfxmonk.net> wrote:
>>> On Fri, Jan 8, 2016 at 11:14 PM, Thomas Leonard <talex5@gmail.com> wrote:
>>>> On 8 January 2016 at 11:19, Tim Cuthbertson <tim@gfxmonk.net> wrote:
>>>>> I'd like to use `Bcrypt` from the `safepass` opam module in passe[0].
>>>>> There is sadly no `safepass-xen` package, and trying to just use
>>>>> `safepass` results in link errors:
>>>>>
>>>>>
>>>>> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o): In function
>>>>> `BF_crypt':
>>>>> (.text+0x1b97): undefined reference to `__errno_location'
>>>>> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o): In function
>>>>> `BF_crypt':
>>>>> (.text+0x2112): undefined reference to `__errno_location'
>>>>> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o): In function
>>>>> `_crypt_blowfish_rn':
>>>>> (.text+0x21ea): undefined reference to `__errno_location'
>>>>> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o): In function
>>>>> `_crypt_gensalt_blowfish_rn':
>>>>> (.text+0x2575): undefined reference to `__errno_location'
>>>>> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o): In function
>>>>> `_crypt_gensalt_blowfish_rn':
>>>>> (.text+0x25a6): undefined reference to `__errno_location'
>>>>> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o):(.text+0x25b7):
>>>>> more undefined references to `__errno_location' follow
>>>>>
>>>>>
>>>>> I'm assuming I'd need to customise the build process tp produce an
>>>>> appropriate C library as with `gmp-xen`, `zarith-xen` etc. The trouble
>>>>> is twofold:
>>>>>
>>>>>  - I don't really know what the thing I'm doing is. Is mirage-xen a
>>>>> different architecture? A different ABI? Do C libraries need to be
>>>>> cross-compiled, or just compiled with particular flags so that they'll
>>>>> work on xen-minios instead of gnu/linux?
>>>>
>>>> C libraries need to be compiled with different headers and flags (in
>>>> particular, -mno-red-zone). Using libraries compiled for Linux will
>>>> often appear to work, but may fail when interrupts occur, so the build
>>>> makes it hard to use them by accident.
>>>>
>>>> However, OCaml binaries can be shared (ocamlopt doesn't use a red zone
>>>> and the OCaml ABI is the same).
>>>>
>>>>>  - The existing scripts seem to be pretty ad-hoc - zarith gets away
>>>>> mainly with particular CFLAGS
>>>>> (https://github.com/ocaml/opam-repository/blob/master/packages/zarith-xen/zarith-xen.1.4/files/mirage-install.sh),
>>>>
>>>> It's using pkg-config to get the important flags. The others are
>>>> optimisations (except -fno-builtin, which is either not needed or
>>>> should be supplied by Mini-OS).
>>>>
>>>>> while gmp looks like a full cross-compilation using `--target` (and
>>>>> then does some other sneaky things).
>>>>>
>>>>> safepass uses OASIS for its build system, which doesn't seem to have
>>>>> any cross-compilation functionality built in as far as I could tell.
>>>>> Can anyone give me pointers on what I'd need to do to safepass' build
>>>>> scripts to get this working in mirage-xen, or at the least some
>>>>> clarification on why it doesn't work as-is and how cross compilation
>>>>> works for C libraries used in mirage-xen?
>>>>>
>>>>> [0]: https://github.com/timbertson/passe
>>>>
>>>> The io-page library provides a fairly simple template:
>>>>
>>>> https://github.com/mirage/io-page/blob/master/_oasis
>>>>
>>>> It builds io_page_unix and io_page_xen libraries. The C flags are
>>>> added to the main META file with:
>>>>
>>>> XMETAExtraLines: xen_linkopts = "-lio_page_xen_stubs"
>>>>
>>>> There's a command to get the Xen flags:
>>>>
>>>> PostConfCommand: ocaml postconf.ml
>>>>
>>>> The Xen source file (stub_alloc_pages_xen.c) is just a symlink to the
>>>> Unix one (you need a separate file because OASIS can't compile the
>>>> same source path with different flags).
>>>
>>> Thanks, Thomas. - that helps quite a lot
>>>
>>> I think I've followed the same pattern now, but still haven't been
>>> able to get safepass building.
>>>
>>> I'm using the following for CCOpt:
>>>
>>> `pkg-config --cflags --static mirage-xen-ocaml`
>>>
>>> Now the linking phase fails with:
>>>
>>> + ocamlfind ocamlmklib -o src/safepass_stubs src/crypt_blowfish.o
>>> src/bcrypt_stub.o
>>> ld: errno: TLS definition in /nix/store/<...>-glibc-2.21/lib/libc.so.6
>>> section .tbss mismatches non-TLS reference in src/crypt_blowfish.o
>>> /nix/store/<...>-glibc-2.21/lib/libc.so.6: could not read symbols: Bad value
>>> collect2: error: ld returned 1 exit status
>>> Command exited with code 2.
>>> E: Failure("Command ''ocamlbuild' src/libsafepass_stubs.a
>>> src/dllsafepass_stubs.so src/safepass.cma src/safepass.cmxa
>>> src/safepass.a src/safepass.cmxs -tag debug' terminated with error
>>> code 10")
>>
>> Try running it as "ocamlfind ocamlmklib -verbose" to see what commands
>> it's actually using. For io-page, I get:
>>
>> $ ocamlfind ocamlmklib -verbose -o lib/io_page_xen_stubs
>> lib/stub_alloc_pages_xen.o
>> Effective set of compiler predicates: autolink,byte,native
>> + ocamlmklib -ocamlc ocamlc.opt -ocamlopt ocamlopt.opt -verbose -o
>> lib/io_page_xen_stubs lib/stub_alloc_pages_xen.o
>> + gcc -shared  -o lib/dllio_page_xen_stubs.so lib/stub_alloc_pages_xen.o
>> + ar rc lib/libio_page_xen_stubs.a  lib/stub_alloc_pages_xen.o; ranlib
>> lib/libio_page_xen_stubs.a
>>
>> So it doesn't seem to be using ld at all, just ar.
>
> Tracing it with strace, that `gcc -shared` process ends up invoking
> `ld` internally.
>
> I tried running ocamlmklib with the `-failsafe` option, and it does
> continue past this and produce the static .a library using `ar`. But
> if I try and put that flag into the larger build it doesn't get much
> further, because it hits the same issue when creating
> src/safepass.cmxs:
>
> + ocamlfind ocamlopt -shared -I src src/safepass.cmxa src/bcrypt.cmx
> -o src/safepass.cmxs
> ld: errno: TLS definition in libc.so.6 section .tbss mismatches
> non-TLS reference in src/libsafepass_stubs.a(crypt_blowfish.o)
> libc.so.6: could not read symbols: Bad value
> collect2: error: ld returned 1 exit status
>
>>> This seems to be something special about errno being thread-local in
>>> glibc. Googling turns up a lot of advice on fixing this problem, but
>>> all of it assumes you're just building on linux for linux.
>>> bcrypt_stubs.c does <errno.h>, which I believe is being provided by
>>> minios-xen-0.8/include/minios-xen/errno.h.
>>>
>>> However, at link time I don't know where errno is supposed to come
>>> from. It seems to be coming from glibc, but shouldn't it be coming
>>> from minios instead given that's where the errno header comes from? I
>>> poked around with `nm` in minios' built files but couldn't find
>>> anything that actually defined errno.
>>
>> It's from mirage-xen:
>>
>> https://github.com/mirage/mirage-platform/blob/c035439de703edbfdd096044afdbab85f4cbf61f/bindings/main.c#L30
>
> Which compiled libraries does that end up in though?
>
> I tried `nm`-ing all the built files from mirage-{xen,xen-posix,xen-ocaml} with:
>
> $ find /nix/store/inxv9vdvnz8cjs6236fmalj0mnaq3sgx-mirage-xen-ocaml-2.3.4
> /nix/store/vbz4pivjk196dw5h8rmg68qxh5m44cn9-mirage-xen-posix-2.3.4
> /nix/store/24lm5990pxzp71nsgnffcmb2i7n41fck-mirage-xen-2.3.3 -type f
> -exec bash -c 'if nm {} 2>/dev/null | grep -q errno; then echo {}; nm
> {} | grep errno; fi' \;
> /nix/store/inxv9vdvnz8cjs6236fmalj0mnaq3sgx-mirage-xen-ocaml-2.3.4/lib/mirage-xen-ocaml/libxenasmrun.a
>                  U errno
>                  U errno
>                  U errno
>                  U errno
> /nix/store/vbz4pivjk196dw5h8rmg68qxh5m44cn9-mirage-xen-posix-2.3.4/lib/mirage-xen-posix/libxenposix.a
>                  U errno
> 0000000000000e4a T __h_errno_location
> /nix/store/24lm5990pxzp71nsgnffcmb2i7n41fck-mirage-xen-2.3.3/lib/mirage-xen/libxencamlbindings.a
> 0000000000000004 C errno

This is it (C = Common).

> So there are only .a files (which ld ignores when creating a shared
> library, doesn't it?), and only libxencamlbindings actually defines it
> (the others just reference it), which doesn't seem like a library I'd
> necessarily need to link against.
>
> I don't know if mirage-xen actually makes use of .so libraries, as
> I've only seen it produce static executables. But even if it doesn't
> need them, I'd need to somehow tell oasis not to build shared versions
> of safepass (both the .so and the .cmxs).

Correct: Mirage on Xen does not use shared libraries. I don't know how
to prevent them from being built. The easiest option might be to
remove the uses of errno from the library (it doesn't look like the
OCaml bindings do anything with it anyway).

>>>  -- other things I've tried:
>>>
>>> 1) I tried using `pkg-config --cflags mirage-xen-ocaml` for CCLib,
>>> however `ocamlfind ocamlmklib` didn't seem to like that - it didn't
>>> understand "-m elf_x86_64" nor
>>> "-T/nix/store/<...>-minios-xen-0.8/lib/minios-xen/libminios.lds"
>>>
>>> 2) I notice that minios-xen/errno.h has:
>>>
>>> #ifdef HAVE_LIBC
>>> #include <mini-os/sched.h>
>>> extern int errno;
>>> #define ERRNO
>>> #define errno (get_current()->reent._errno)
>>> #endif
>>>
>>> So just to see what happened, I tried adding -DHAVE_LIBC. But then I
>>> get errors because sys/reent.h can't be found, so that's probably not
>>> a useful path to explore.
>>>
>>> Any advice where to go from here?
>>>
>>> Thanks,
>>>  - Tim.
>>
>>
>>
>> --
>> Dr Thomas Leonard        http://roscidus.com/blog/
>> GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA



-- 
Dr Thomas Leonard        http://roscidus.com/blog/
GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Mon Jan 11 14:08:47 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 11 Jan 2016 14:08:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aId9D-0005WT-Ej; Mon, 11 Jan 2016 14:08:39 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <talex5@gmail.com>) id 1aId9B-0005WA-U8
	for mirageos-devel@lists.xenproject.org; Mon, 11 Jan 2016 14:08:38 +0000
Received: from [85.158.143.35] by server-1.bemta-4.messagelabs.com id
	AB/93-09708-567B3965; Mon, 11 Jan 2016 14:08:37 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-9.tower-21.messagelabs.com!1452521315!9447031!1
X-Originating-IP: [209.85.213.42]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 13033 invoked from network); 11 Jan 2016 14:08:36 -0000
Received: from mail-vk0-f42.google.com (HELO mail-vk0-f42.google.com)
	(209.85.213.42)
	by server-9.tower-21.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 11 Jan 2016 14:08:36 -0000
Received: by mail-vk0-f42.google.com with SMTP id a123so193864981vkh.1
	for <mirageos-devel@lists.xenproject.org>;
	Mon, 11 Jan 2016 06:08:36 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=TdTZF8Z998zbfqcRvGjdbt2uEFxW4546MD/Us3UL+5s=;
	b=vC19vhjCRWoTT5UR2ydhkVBqQc2GRP7BQTFQY3KgFdyK7/Meavzo+iJrOkQn7FkE2O
	NX7QcHCFEwyBTijM0L+TJFCG9/rUBw+/OZvy4hsrLLjpC3D8L5PcNlnDJ3E73Bpt/RtH
	NZIRUcjaeSJJ9rk9tjx9ckVsIRbApiSl+wOBpHvzf5dGxPfJtJj6XM8LBEwTkjSyRm7p
	PcLbl217bHXDjyUqtySH8QbKwVrbzsbKy+Re8q5LjRVN7uBcJCulsHlab2LP4CFst1h0
	zpsxM00cSPy+YVyLxZKMjWU4KMQiEdCFznArwWEzMOJTGroWiwzslWfF/kf0M//W7wAz
	aPeQ==
MIME-Version: 1.0
X-Received: by 10.31.47.200 with SMTP id v191mr93135349vkv.116.1452521314888; 
	Mon, 11 Jan 2016 06:08:34 -0800 (PST)
Received: by 10.31.128.84 with HTTP; Mon, 11 Jan 2016 06:08:34 -0800 (PST)
In-Reply-To: <trinity-11b72f98-0633-4978-ac6f-a89d36470a6d-1452444637077@3capp-mailcom-bs12>
References: <trinity-ceb1c027-f89e-459b-95fc-727cb12599b7-1447955809874@3capp-mailcom-bs07>
	<CAG4opy-v+X2QAFZM3j5bFeFcY3OudB9JW9ovjag_E9hj9LVK9g@mail.gmail.com>
	<trinity-11b72f98-0633-4978-ac6f-a89d36470a6d-1452444637077@3capp-mailcom-bs12>
Date: Mon, 11 Jan 2016 14:08:34 +0000
Message-ID: <CAG4opy93AZOhp2TX=4guapt4pxJO-iwdgURusmd-vkRo1XVtuQ@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: "M. O." <meta@gmx.com>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Changes in Irmin 0.10.0
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 10 January 2016 at 16:50, M. O. <meta@gmx.com> wrote:
> Thanks, and how to unwatch a key that is under watch by I.watch_key?

The Irmin API is documented in irmin.mli, e.g.

  https://github.com/mirage/irmin/blob/master/lib/irmin.mli#L533


>> Hi,
>>
>> Questions regarding changes in Irmin 0.10.0:
>>
>> 1- Is there any equivalence for "Irmin.watch_tags" in the previous
>> releases?
>
> Irmin.Repo.watch_branches
>
>> 2- This is somehow related to the first question, that is how to create a
>> store similar to "Store.of_head config task head" (for instance, from the
>> heads that watch_tag sends to the callback function) in the older
>> versions.
>
> of_head is now of_commit_id.
>



-- 
Dr Thomas Leonard        http://roscidus.com/blog/
GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Mon Jan 11 14:08:47 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 11 Jan 2016 14:08:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aId9D-0005WT-Ej; Mon, 11 Jan 2016 14:08:39 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <talex5@gmail.com>) id 1aId9B-0005WA-U8
	for mirageos-devel@lists.xenproject.org; Mon, 11 Jan 2016 14:08:38 +0000
Received: from [85.158.143.35] by server-1.bemta-4.messagelabs.com id
	AB/93-09708-567B3965; Mon, 11 Jan 2016 14:08:37 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-9.tower-21.messagelabs.com!1452521315!9447031!1
X-Originating-IP: [209.85.213.42]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 13033 invoked from network); 11 Jan 2016 14:08:36 -0000
Received: from mail-vk0-f42.google.com (HELO mail-vk0-f42.google.com)
	(209.85.213.42)
	by server-9.tower-21.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 11 Jan 2016 14:08:36 -0000
Received: by mail-vk0-f42.google.com with SMTP id a123so193864981vkh.1
	for <mirageos-devel@lists.xenproject.org>;
	Mon, 11 Jan 2016 06:08:36 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=TdTZF8Z998zbfqcRvGjdbt2uEFxW4546MD/Us3UL+5s=;
	b=vC19vhjCRWoTT5UR2ydhkVBqQc2GRP7BQTFQY3KgFdyK7/Meavzo+iJrOkQn7FkE2O
	NX7QcHCFEwyBTijM0L+TJFCG9/rUBw+/OZvy4hsrLLjpC3D8L5PcNlnDJ3E73Bpt/RtH
	NZIRUcjaeSJJ9rk9tjx9ckVsIRbApiSl+wOBpHvzf5dGxPfJtJj6XM8LBEwTkjSyRm7p
	PcLbl217bHXDjyUqtySH8QbKwVrbzsbKy+Re8q5LjRVN7uBcJCulsHlab2LP4CFst1h0
	zpsxM00cSPy+YVyLxZKMjWU4KMQiEdCFznArwWEzMOJTGroWiwzslWfF/kf0M//W7wAz
	aPeQ==
MIME-Version: 1.0
X-Received: by 10.31.47.200 with SMTP id v191mr93135349vkv.116.1452521314888; 
	Mon, 11 Jan 2016 06:08:34 -0800 (PST)
Received: by 10.31.128.84 with HTTP; Mon, 11 Jan 2016 06:08:34 -0800 (PST)
In-Reply-To: <trinity-11b72f98-0633-4978-ac6f-a89d36470a6d-1452444637077@3capp-mailcom-bs12>
References: <trinity-ceb1c027-f89e-459b-95fc-727cb12599b7-1447955809874@3capp-mailcom-bs07>
	<CAG4opy-v+X2QAFZM3j5bFeFcY3OudB9JW9ovjag_E9hj9LVK9g@mail.gmail.com>
	<trinity-11b72f98-0633-4978-ac6f-a89d36470a6d-1452444637077@3capp-mailcom-bs12>
Date: Mon, 11 Jan 2016 14:08:34 +0000
Message-ID: <CAG4opy93AZOhp2TX=4guapt4pxJO-iwdgURusmd-vkRo1XVtuQ@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: "M. O." <meta@gmx.com>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Changes in Irmin 0.10.0
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 10 January 2016 at 16:50, M. O. <meta@gmx.com> wrote:
> Thanks, and how to unwatch a key that is under watch by I.watch_key?

The Irmin API is documented in irmin.mli, e.g.

  https://github.com/mirage/irmin/blob/master/lib/irmin.mli#L533


>> Hi,
>>
>> Questions regarding changes in Irmin 0.10.0:
>>
>> 1- Is there any equivalence for "Irmin.watch_tags" in the previous
>> releases?
>
> Irmin.Repo.watch_branches
>
>> 2- This is somehow related to the first question, that is how to create a
>> store similar to "Store.of_head config task head" (for instance, from the
>> heads that watch_tag sends to the callback function) in the older
>> versions.
>
> of_head is now of_commit_id.
>



-- 
Dr Thomas Leonard        http://roscidus.com/blog/
GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Mon Jan 11 15:07:16 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 11 Jan 2016 15:07:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aIe3t-00006O-Pd; Mon, 11 Jan 2016 15:07:14 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <meta@gmx.com>) id 1aIe3r-000065-7O
	for mirageos-devel@lists.xenproject.org; Mon, 11 Jan 2016 15:07:11 +0000
Received: from [85.158.143.35] by server-3.bemta-4.messagelabs.com id
	88/02-31122-E15C3965; Mon, 11 Jan 2016 15:07:10 +0000
X-Env-Sender: meta@gmx.com
X-Msg-Ref: server-3.tower-21.messagelabs.com!1452524828!9034926!1
X-Originating-IP: [212.227.15.19]
X-SpamReason: No, hits=1.0 required=7.0 tests=sa_preprocessor: 
	QmFkIElQOiAyMTIuMjI3LjE1LjE5ID0+IDI1MjI5\n,sa_preprocessor: 
	QmFkIElQOiAyMTIuMjI3LjE1LjE5ID0+IDI1MjI5\n,HTML_40_50,HTML_MESSAGE,
	MIME_HTML_ONLY
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 54084 invoked from network); 11 Jan 2016 15:07:09 -0000
Received: from mout.gmx.net (HELO mout.gmx.net) (212.227.15.19)
	by server-3.tower-21.messagelabs.com with DHE-RSA-AES256-GCM-SHA384
	encrypted SMTP; 11 Jan 2016 15:07:09 -0000
Received: from [128.232.109.3] by 3capp-mailcom-bs07.server.lan (via HTTP);
	Mon, 11 Jan 2016 16:07:06 +0100
MIME-Version: 1.0
Message-ID: <trinity-b8c17b3f-2bdb-46b5-946d-847ee4e15c3f-1452524826437@3capp-mailcom-bs07>
From: "M. O." <meta@gmx.com>
To: "Thomas Leonard" <talex5@gmail.com>
Date: Mon, 11 Jan 2016 16:07:06 +0100
Importance: normal
Sensitivity: Normal
In-Reply-To: <CAG4opy93AZOhp2TX=4guapt4pxJO-iwdgURusmd-vkRo1XVtuQ@mail.gmail.com>
References: <trinity-ceb1c027-f89e-459b-95fc-727cb12599b7-1447955809874@3capp-mailcom-bs07>
	<CAG4opy-v+X2QAFZM3j5bFeFcY3OudB9JW9ovjag_E9hj9LVK9g@mail.gmail.com>
	<trinity-11b72f98-0633-4978-ac6f-a89d36470a6d-1452444637077@3capp-mailcom-bs12>,
	<CAG4opy93AZOhp2TX=4guapt4pxJO-iwdgURusmd-vkRo1XVtuQ@mail.gmail.com>
X-UI-Message-Type: mail
X-Priority: 3
X-Provags-ID: V03:K0:9mydfX+YqcVpYegRcQyit406+zQrhYFX4dYk5GvwpEr
	Vc+fq8LOthc7G4HQedxDjscm3Pph7dLTNkbcYcbj53SsaAoXXP
	xwUTsr0k3kQdSksSlkMGvTCYSGyp7JGCdmpxFxc7g2OfWHBiEq
	VvMZyhltjvkvkhQEhlXeluXY7FzCDKFfYsiKmSqJX/DExHO6CV
	uqN1A+wA7/DNg3d9fhmUdQHoYeraeEshtlY20D2iOVTFbJydTb
	wEh6YFnZicVkiunmLz7pttjQ4fF1iwiIicK1TZSzKXgZ2r0bzX
	nTyjWHOPo77TF56Fk1CrIbXxyEx
X-UI-Out-Filterresults: notjunk:1;V01:K0:w5J3ER4RkI0=:E8mgznxmwA7f3Ranx57LqH
	t7cLxvVVIW4kpx314IXnDuETKIDf0faRDMiZlKH2zaiB5bC2KcguGGOm5NaMFJYqRonwM6lrB
	I9hWJ3ICCeMB3o1f0kRUQmpgOkjYSzdtsRYJU13w1+ncCgXWZXnssQOvkSogMwzaNDdGwqQ/M
	qje3gOA9N0Ag4rV2llc3jocgjLr6/34KHSd64mH7KIRtxob9rwa9VfbWPknZ+y/YBZfYS2QdV
	Sslg7yyDcP0iCwbclKFuaNr6Gh2fMB9mUrG9Gm+jSHnZS4scLUtHnr1FhxGjwu08Ia4JCgeOr
	UdQ8bSzriYIHs/T+TF6uXYPaxvRw7XQKXBHGLSUfJUZGGQ13ZFcoMJXjNKQnLpIBHhzDlFd1q
	xeNZ5WGETETXFTP2q2DMpYEdeV/thzUlEkspdxkTszSPWIZTLI5xc1odYyfdjxqE0AlRIa0+Q
	zis7VFBlqw==
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Changes in Irmin 0.10.0
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============7314523183328300863=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============7314523183328300863==
Content-Type: text/html; charset=UTF-8

<html><head></head><body><div style="font-family: Verdana;font-size: 12.0px;"><div>
<div>I understand. Irmin.unwatch appears to be Unbounded when building&nbsp;(while Irmin.watch_key works). Doesn&#39;t unwatch need to be exposed in module BC?</div>

<div>&nbsp;
<div name="quote" style="margin: 10px 5px 5px 10px; padding: 10px 0px 10px 10px; border-left-color: rgb(195, 217, 229); border-left-width: 2px; border-left-style: solid; -ms-word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">
<div name="quoted-content">On 10 January 2016 at 16:50, M. O. &lt;meta@gmx.com&gt; wrote:<br/>
&gt; Thanks, and how to unwatch a key that is under watch by I.watch_key?<br/>
<br/>
The Irmin API is documented in irmin.mli, e.g.<br/>
<br/>
<a href="https://github.com/mirage/irmin/blob/master/lib/irmin.mli#L533" target="_blank">https://github.com/mirage/irmin/blob/master/lib/irmin.mli#L533</a><br/>
<br/>
<br/>
&gt;&gt; Hi,<br/>
&gt;&gt;<br/>
&gt;&gt; Questions regarding changes in Irmin 0.10.0:<br/>
&gt;&gt;<br/>
&gt;&gt; 1- Is there any equivalence for &quot;Irmin.watch_tags&quot; in the previous<br/>
&gt;&gt; releases?<br/>
&gt;<br/>
&gt; Irmin.Repo.watch_branches<br/>
&gt;<br/>
&gt;&gt; 2- This is somehow related to the first question, that is how to create a<br/>
&gt;&gt; store similar to &quot;Store.of_head config task head&quot; (for instance, from the<br/>
&gt;&gt; heads that watch_tag sends to the callback function) in the older<br/>
&gt;&gt; versions.<br/>
&gt;<br/>
&gt; of_head is now of_commit_id.<br/>
&gt;<br/>
<br/>
<br/>
<br/>
--<br/>
Dr Thomas Leonard <a href="http://roscidus.com/blog/" target="_blank">http://roscidus.com/blog/</a><br/>
GPG: DA98 25AE CAD0 8975 7CDA BD8E 0713 3F96 CA74 D8BA</div>
</div>
</div>
</div></div></body></html>


--===============7314523183328300863==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============7314523183328300863==--

From mirageos-devel-bounces@lists.xenproject.org Mon Jan 11 15:07:16 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 11 Jan 2016 15:07:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aIe3t-00006O-Pd; Mon, 11 Jan 2016 15:07:14 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <meta@gmx.com>) id 1aIe3r-000065-7O
	for mirageos-devel@lists.xenproject.org; Mon, 11 Jan 2016 15:07:11 +0000
Received: from [85.158.143.35] by server-3.bemta-4.messagelabs.com id
	88/02-31122-E15C3965; Mon, 11 Jan 2016 15:07:10 +0000
X-Env-Sender: meta@gmx.com
X-Msg-Ref: server-3.tower-21.messagelabs.com!1452524828!9034926!1
X-Originating-IP: [212.227.15.19]
X-SpamReason: No, hits=1.0 required=7.0 tests=sa_preprocessor: 
	QmFkIElQOiAyMTIuMjI3LjE1LjE5ID0+IDI1MjI5\n,sa_preprocessor: 
	QmFkIElQOiAyMTIuMjI3LjE1LjE5ID0+IDI1MjI5\n,HTML_40_50,HTML_MESSAGE,
	MIME_HTML_ONLY
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 54084 invoked from network); 11 Jan 2016 15:07:09 -0000
Received: from mout.gmx.net (HELO mout.gmx.net) (212.227.15.19)
	by server-3.tower-21.messagelabs.com with DHE-RSA-AES256-GCM-SHA384
	encrypted SMTP; 11 Jan 2016 15:07:09 -0000
Received: from [128.232.109.3] by 3capp-mailcom-bs07.server.lan (via HTTP);
	Mon, 11 Jan 2016 16:07:06 +0100
MIME-Version: 1.0
Message-ID: <trinity-b8c17b3f-2bdb-46b5-946d-847ee4e15c3f-1452524826437@3capp-mailcom-bs07>
From: "M. O." <meta@gmx.com>
To: "Thomas Leonard" <talex5@gmail.com>
Date: Mon, 11 Jan 2016 16:07:06 +0100
Importance: normal
Sensitivity: Normal
In-Reply-To: <CAG4opy93AZOhp2TX=4guapt4pxJO-iwdgURusmd-vkRo1XVtuQ@mail.gmail.com>
References: <trinity-ceb1c027-f89e-459b-95fc-727cb12599b7-1447955809874@3capp-mailcom-bs07>
	<CAG4opy-v+X2QAFZM3j5bFeFcY3OudB9JW9ovjag_E9hj9LVK9g@mail.gmail.com>
	<trinity-11b72f98-0633-4978-ac6f-a89d36470a6d-1452444637077@3capp-mailcom-bs12>,
	<CAG4opy93AZOhp2TX=4guapt4pxJO-iwdgURusmd-vkRo1XVtuQ@mail.gmail.com>
X-UI-Message-Type: mail
X-Priority: 3
X-Provags-ID: V03:K0:9mydfX+YqcVpYegRcQyit406+zQrhYFX4dYk5GvwpEr
	Vc+fq8LOthc7G4HQedxDjscm3Pph7dLTNkbcYcbj53SsaAoXXP
	xwUTsr0k3kQdSksSlkMGvTCYSGyp7JGCdmpxFxc7g2OfWHBiEq
	VvMZyhltjvkvkhQEhlXeluXY7FzCDKFfYsiKmSqJX/DExHO6CV
	uqN1A+wA7/DNg3d9fhmUdQHoYeraeEshtlY20D2iOVTFbJydTb
	wEh6YFnZicVkiunmLz7pttjQ4fF1iwiIicK1TZSzKXgZ2r0bzX
	nTyjWHOPo77TF56Fk1CrIbXxyEx
X-UI-Out-Filterresults: notjunk:1;V01:K0:w5J3ER4RkI0=:E8mgznxmwA7f3Ranx57LqH
	t7cLxvVVIW4kpx314IXnDuETKIDf0faRDMiZlKH2zaiB5bC2KcguGGOm5NaMFJYqRonwM6lrB
	I9hWJ3ICCeMB3o1f0kRUQmpgOkjYSzdtsRYJU13w1+ncCgXWZXnssQOvkSogMwzaNDdGwqQ/M
	qje3gOA9N0Ag4rV2llc3jocgjLr6/34KHSd64mH7KIRtxob9rwa9VfbWPknZ+y/YBZfYS2QdV
	Sslg7yyDcP0iCwbclKFuaNr6Gh2fMB9mUrG9Gm+jSHnZS4scLUtHnr1FhxGjwu08Ia4JCgeOr
	UdQ8bSzriYIHs/T+TF6uXYPaxvRw7XQKXBHGLSUfJUZGGQ13ZFcoMJXjNKQnLpIBHhzDlFd1q
	xeNZ5WGETETXFTP2q2DMpYEdeV/thzUlEkspdxkTszSPWIZTLI5xc1odYyfdjxqE0AlRIa0+Q
	zis7VFBlqw==
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Changes in Irmin 0.10.0
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============7314523183328300863=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============7314523183328300863==
Content-Type: text/html; charset=UTF-8

<html><head></head><body><div style="font-family: Verdana;font-size: 12.0px;"><div>
<div>I understand. Irmin.unwatch appears to be Unbounded when building&nbsp;(while Irmin.watch_key works). Doesn&#39;t unwatch need to be exposed in module BC?</div>

<div>&nbsp;
<div name="quote" style="margin: 10px 5px 5px 10px; padding: 10px 0px 10px 10px; border-left-color: rgb(195, 217, 229); border-left-width: 2px; border-left-style: solid; -ms-word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">
<div name="quoted-content">On 10 January 2016 at 16:50, M. O. &lt;meta@gmx.com&gt; wrote:<br/>
&gt; Thanks, and how to unwatch a key that is under watch by I.watch_key?<br/>
<br/>
The Irmin API is documented in irmin.mli, e.g.<br/>
<br/>
<a href="https://github.com/mirage/irmin/blob/master/lib/irmin.mli#L533" target="_blank">https://github.com/mirage/irmin/blob/master/lib/irmin.mli#L533</a><br/>
<br/>
<br/>
&gt;&gt; Hi,<br/>
&gt;&gt;<br/>
&gt;&gt; Questions regarding changes in Irmin 0.10.0:<br/>
&gt;&gt;<br/>
&gt;&gt; 1- Is there any equivalence for &quot;Irmin.watch_tags&quot; in the previous<br/>
&gt;&gt; releases?<br/>
&gt;<br/>
&gt; Irmin.Repo.watch_branches<br/>
&gt;<br/>
&gt;&gt; 2- This is somehow related to the first question, that is how to create a<br/>
&gt;&gt; store similar to &quot;Store.of_head config task head&quot; (for instance, from the<br/>
&gt;&gt; heads that watch_tag sends to the callback function) in the older<br/>
&gt;&gt; versions.<br/>
&gt;<br/>
&gt; of_head is now of_commit_id.<br/>
&gt;<br/>
<br/>
<br/>
<br/>
--<br/>
Dr Thomas Leonard <a href="http://roscidus.com/blog/" target="_blank">http://roscidus.com/blog/</a><br/>
GPG: DA98 25AE CAD0 8975 7CDA BD8E 0713 3F96 CA74 D8BA</div>
</div>
</div>
</div></div></body></html>


--===============7314523183328300863==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============7314523183328300863==--

From mirageos-devel-bounces@lists.xenproject.org Tue Jan 12 04:01:44 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 12 Jan 2016 04:01:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aIq9G-0007j5-Fs; Tue, 12 Jan 2016 04:01:34 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <amc79@cam.ac.uk>) id 1aIq97-0007j0-LW
	for mirageos-devel@lists.xenproject.org; Tue, 12 Jan 2016 04:01:26 +0000
Received: from [85.158.137.68] by server-7.bemta-3.messagelabs.com id
	13/D3-23747-49A74965; Tue, 12 Jan 2016 04:01:24 +0000
X-Env-Sender: amc79@cam.ac.uk
X-Msg-Ref: server-4.tower-31.messagelabs.com!1452571283!5618639!1
X-Originating-IP: [131.111.8.132]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 7445 invoked from network); 12 Jan 2016 04:01:24 -0000
Received: from ppsw-32.csi.cam.ac.uk (HELO ppsw-32.csi.cam.ac.uk)
	(131.111.8.132)
	by server-4.tower-31.messagelabs.com with DHE-RSA-AES256-GCM-SHA384
	encrypted SMTP; 12 Jan 2016 04:01:24 -0000
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: http://www.cam.ac.uk/cs/email/scanner/
Received: from [50.233.46.100] (port=49719 helo=[192.168.202.114])
	by ppsw-32.csi.cam.ac.uk (smtp.hermes.cam.ac.uk [131.111.8.156]:25)
	with esmtpsa (PLAIN:amc79) (TLSv1:ECDHE-RSA-AES256-SHA:256)
	id 1aIq95-000PUM-0I (Exim 4.86_36-e07b163) for
	mirageos-devel@lists.xenproject.org
	(return-path <amc79@cam.ac.uk>); Tue, 12 Jan 2016 04:01:23 +0000
From: Amir Chaudhry <amc79@cam.ac.uk>
Message-Id: <B8284757-C894-4FBC-AC38-C18990608AC0@cam.ac.uk>
Date: Mon, 11 Jan 2016 20:01:20 -0800
To: mirageos-devel <mirageos-devel@lists.xenproject.org>
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
X-Mailer: Apple Mail (2.2104)
Subject: [MirageOS-devel] MirageOS fortnightly call - Wednesday 13th Jan at
	4pm GMT
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

SGkgZm9sa3MsCgpUaGUgZmlyc3QgTWlyYWdlT1MgY2FsbCBvZiAyMDE2IHdpbGwgdGFrZSBwbGFj
ZSBvbiBXZWRuZXNkYXkgYWZ0ZXJub29uIGF0IDRwbSBHTVQgYW5kIGlzIG9wZW4gdG8gYWxsLgoK
SeKAmWxsIHBvc3QgdGhlIGxpbmsgc2hvcnRseSBiZWZvcmUgdGhlIGNhbGwsIGJvdGggaGVyZSBh
bmQgYWxzbyBpbiB0aGUgSVJDIGNoYW5uZWwgKCNtaXJhZ2Ugb24gZnJlZW5vZGUpIFtoaW50OiBp
dOKAmWxsIGJlIHRoZSBzYW1lIGFzIGxhc3QgdGltZV0KClRoZSBhZ2VuZGEgaXMgY3VycmVudGx5
IGFzIGZvbGxvd3M6CgrigKIgUXVhbGl0eSBhbmQgVGVzdArigKIgRnVuY3RvcmlhIHJlbGVhc2Ug
c3RhdHVzCuKAoiBNaXJhZ2VPUyBoYWNrYXRob24gc3RhdHVzCuKAoiBMSUNFTlNFIGZpbGVzCuKA
oiBNaXJhZ2VPUyB0YWxrcyBhdCBTQ0FMRXgxNArigKIgSXJtaW4gYmxvZyBwb3N0cz8KClBsZWFz
ZSBkbyBhZGQgaXRlbXMgdmlhIGh0dHBzOi8vZ2l0aHViLmNvbS9taXJhZ2UvbWlyYWdlLXd3dy93
aWtpL0NhbGwtQWdlbmRhCgpKb2luIHVzIGF0IDRwbSBHTVQgb24gV2VkbmVzZGF5IQoKQmVzdCB3
aXNoZXMsCkFtaXIKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X18KTWlyYWdlT1MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1pcmFnZU9TLWRldmVsQGxpc3RzLnhlbnBy
b2plY3Qub3JnCmh0dHA6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlz
dGluZm8vbWlyYWdlb3MtZGV2ZWwK

From mirageos-devel-bounces@lists.xenproject.org Tue Jan 12 04:01:44 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 12 Jan 2016 04:01:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aIq9G-0007j5-Fs; Tue, 12 Jan 2016 04:01:34 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <amc79@cam.ac.uk>) id 1aIq97-0007j0-LW
	for mirageos-devel@lists.xenproject.org; Tue, 12 Jan 2016 04:01:26 +0000
Received: from [85.158.137.68] by server-7.bemta-3.messagelabs.com id
	13/D3-23747-49A74965; Tue, 12 Jan 2016 04:01:24 +0000
X-Env-Sender: amc79@cam.ac.uk
X-Msg-Ref: server-4.tower-31.messagelabs.com!1452571283!5618639!1
X-Originating-IP: [131.111.8.132]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 7445 invoked from network); 12 Jan 2016 04:01:24 -0000
Received: from ppsw-32.csi.cam.ac.uk (HELO ppsw-32.csi.cam.ac.uk)
	(131.111.8.132)
	by server-4.tower-31.messagelabs.com with DHE-RSA-AES256-GCM-SHA384
	encrypted SMTP; 12 Jan 2016 04:01:24 -0000
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: http://www.cam.ac.uk/cs/email/scanner/
Received: from [50.233.46.100] (port=49719 helo=[192.168.202.114])
	by ppsw-32.csi.cam.ac.uk (smtp.hermes.cam.ac.uk [131.111.8.156]:25)
	with esmtpsa (PLAIN:amc79) (TLSv1:ECDHE-RSA-AES256-SHA:256)
	id 1aIq95-000PUM-0I (Exim 4.86_36-e07b163) for
	mirageos-devel@lists.xenproject.org
	(return-path <amc79@cam.ac.uk>); Tue, 12 Jan 2016 04:01:23 +0000
From: Amir Chaudhry <amc79@cam.ac.uk>
Message-Id: <B8284757-C894-4FBC-AC38-C18990608AC0@cam.ac.uk>
Date: Mon, 11 Jan 2016 20:01:20 -0800
To: mirageos-devel <mirageos-devel@lists.xenproject.org>
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
X-Mailer: Apple Mail (2.2104)
Subject: [MirageOS-devel] MirageOS fortnightly call - Wednesday 13th Jan at
	4pm GMT
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

SGkgZm9sa3MsCgpUaGUgZmlyc3QgTWlyYWdlT1MgY2FsbCBvZiAyMDE2IHdpbGwgdGFrZSBwbGFj
ZSBvbiBXZWRuZXNkYXkgYWZ0ZXJub29uIGF0IDRwbSBHTVQgYW5kIGlzIG9wZW4gdG8gYWxsLgoK
SeKAmWxsIHBvc3QgdGhlIGxpbmsgc2hvcnRseSBiZWZvcmUgdGhlIGNhbGwsIGJvdGggaGVyZSBh
bmQgYWxzbyBpbiB0aGUgSVJDIGNoYW5uZWwgKCNtaXJhZ2Ugb24gZnJlZW5vZGUpIFtoaW50OiBp
dOKAmWxsIGJlIHRoZSBzYW1lIGFzIGxhc3QgdGltZV0KClRoZSBhZ2VuZGEgaXMgY3VycmVudGx5
IGFzIGZvbGxvd3M6CgrigKIgUXVhbGl0eSBhbmQgVGVzdArigKIgRnVuY3RvcmlhIHJlbGVhc2Ug
c3RhdHVzCuKAoiBNaXJhZ2VPUyBoYWNrYXRob24gc3RhdHVzCuKAoiBMSUNFTlNFIGZpbGVzCuKA
oiBNaXJhZ2VPUyB0YWxrcyBhdCBTQ0FMRXgxNArigKIgSXJtaW4gYmxvZyBwb3N0cz8KClBsZWFz
ZSBkbyBhZGQgaXRlbXMgdmlhIGh0dHBzOi8vZ2l0aHViLmNvbS9taXJhZ2UvbWlyYWdlLXd3dy93
aWtpL0NhbGwtQWdlbmRhCgpKb2luIHVzIGF0IDRwbSBHTVQgb24gV2VkbmVzZGF5IQoKQmVzdCB3
aXNoZXMsCkFtaXIKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X18KTWlyYWdlT1MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1pcmFnZU9TLWRldmVsQGxpc3RzLnhlbnBy
b2plY3Qub3JnCmh0dHA6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlz
dGluZm8vbWlyYWdlb3MtZGV2ZWwK

From mirageos-devel-bounces@lists.xenproject.org Tue Jan 12 11:48:57 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 12 Jan 2016 11:48:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aIxRP-0002om-Gw; Tue, 12 Jan 2016 11:48:47 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <tim@gfxmonk.net>) id 1aIxRO-0002oc-5B
	for mirageos-devel@lists.xenproject.org; Tue, 12 Jan 2016 11:48:46 +0000
Received: from [85.158.143.35] by server-3.bemta-4.messagelabs.com id
	A8/36-31122-D18E4965; Tue, 12 Jan 2016 11:48:45 +0000
X-Env-Sender: tim@gfxmonk.net
X-Msg-Ref: server-15.tower-21.messagelabs.com!1452599315!9624252!1
X-Originating-IP: [209.85.213.42]
X-SpamReason: No, hits=0.8 required=7.0 tests=BODY_RANDOM_LONG,
  RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 4793 invoked from network); 12 Jan 2016 11:48:43 -0000
Received: from mail-vk0-f42.google.com (HELO mail-vk0-f42.google.com)
	(209.85.213.42)
	by server-15.tower-21.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 12 Jan 2016 11:48:43 -0000
Received: by mail-vk0-f42.google.com with SMTP id a123so210673988vkh.1
	for <mirageos-devel@lists.xenproject.org>;
	Tue, 12 Jan 2016 03:48:42 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=gfxmonk-net.20150623.gappssmtp.com; s=20150623;
	h=mime-version:in-reply-to:references:from:date:message-id:subject:to
	:cc:content-type;
	bh=hEoiP3RN0XLjmhslWYwiVpEvJuEd11B4lgZwsXIP73E=;
	b=QbuirEkZDRbYDgb+c4oa8o3xOMgxYxTSHi0p+6qDyS/NBHhchPxVVQ7pgen+BzW6YU
	AKz6/HqNJPw/qPmFTCB5UURu6v9Y3doZxYbeD3vmi85NdZ8OkHtLDEdP5QNbfApwrmUi
	lX4esQA6LnVU5Cl1JI5RLi2eScO3fc/S1uSScK1iD02u1KxBhKgfijc+QLcKdFb2Sib1
	obrq0fexI/bd2miKkyjYg384gkPlN9PWGtpm+pRXft/zwcKk7kTTLNSUUvLSXUsE75i5
	yVb13JBzSzS6FQGSbv/DbgpwAeig4ktXBZsTz2iuJloF3WzIHEjz1TREOZbErnlrBrZT
	kTmA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:in-reply-to:references:from:date
	:message-id:subject:to:cc:content-type;
	bh=hEoiP3RN0XLjmhslWYwiVpEvJuEd11B4lgZwsXIP73E=;
	b=G3r52saj8kVRWQs9W8ixB5EXXRPXSIcQNR4Asc7O5OzC2XUIXZuLxJthFKR9m/T7cP
	2Z422+XbLNZ73OmDqjkuTtJWDAmD89/bW/E9K9DTdOv0MGIUcw1180A3tiMLayziidAX
	QXN45axGzg0+Q8az+KsN+PwAM7FPpol0jWwt7s8HyzpWRNG/4z951pCn3zlOc+YltwOm
	yXPH5IYTXVanMfEGfS4CLMB+EDG8kH9+gtIbUP2iF8+V8ef+swymdM9bzWMaudko2zfL
	cNNacLfr9nHq3n8Ymf4hi9nMK4TY3431QmcoO7FID6rAzhwkbAjvetSjehPzldiaVPta
	/MUg==
X-Gm-Message-State: ALoCoQmJv9KculeoadWQ9P4pdvhCsvRhD6sHgCLlmgPEGE9ekN6m7uFfEF3upvDq78BhimMI/pqF8q2y4FLf9RxI2GsWDSwtig==
X-Received: by 10.31.54.134 with SMTP id d128mr85632453vka.26.1452599315042;
	Tue, 12 Jan 2016 03:48:35 -0800 (PST)
Received: from mail-vk0-f48.google.com (mail-vk0-f48.google.com.
	[209.85.213.48]) by smtp.gmail.com with ESMTPSA id
	x71sm13105508vkx.4.2016.01.12.03.48.34
	for <mirageos-devel@lists.xenproject.org>
	(version=TLSv1/SSLv3 cipher=OTHER);
	Tue, 12 Jan 2016 03:48:34 -0800 (PST)
Received: by mail-vk0-f48.google.com with SMTP id n1so86746493vkb.3
	for <mirageos-devel@lists.xenproject.org>;
	Tue, 12 Jan 2016 03:48:34 -0800 (PST)
X-Received: by 10.31.149.78 with SMTP id x75mr77187255vkd.103.1452599314128;
	Tue, 12 Jan 2016 03:48:34 -0800 (PST)
MIME-Version: 1.0
Received: by 10.31.69.132 with HTTP; Tue, 12 Jan 2016 03:48:14 -0800 (PST)
In-Reply-To: <CAG4opy_R399MT12omWXoP8mSav+ho9Ry6qkUHV8mK=6Yk022mw@mail.gmail.com>
References: <CAC-LLDiE4J11bvyJXrvee45MwBtH7OifOHUNo3SwDAW0YfPusQ@mail.gmail.com>
	<CAG4opy-aED7kSKUZoFoq4Gka3KenpD2-ET_f58S520rGVXu-Jg@mail.gmail.com>
	<CAC-LLDgEOoSVTaB1+PuZkjVdUuHs856o3+fDYd26e_7zEFtdEQ@mail.gmail.com>
	<CAG4opy-acZETa+Jbf=6oK3_wv7buP1612DZw0nxUH0wkZh9BEA@mail.gmail.com>
	<CAC-LLDhBohpWaF9Y7iC+G1PXm8S5jqEKoKn-vmqgCmM-onLr5A@mail.gmail.com>
	<CAG4opy_R399MT12omWXoP8mSav+ho9Ry6qkUHV8mK=6Yk022mw@mail.gmail.com>
From: Tim Cuthbertson <tim@gfxmonk.net>
Date: Tue, 12 Jan 2016 22:48:14 +1100
X-Gmail-Original-Message-ID: <CAC-LLDiyo6A5ReN8J-yfsXxA2qgP6=c98zhJYio0dJL89tWpfQ@mail.gmail.com>
Message-ID: <CAC-LLDiyo6A5ReN8J-yfsXxA2qgP6=c98zhJYio0dJL89tWpfQ@mail.gmail.com>
To: Thomas Leonard <talex5@gmail.com>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Compiling C components for mirage-xen
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On Mon, Jan 11, 2016 at 9:48 PM, Thomas Leonard <talex5@gmail.com> wrote:
> On 11 January 2016 at 09:06, Tim Cuthbertson <tim@gfxmonk.net> wrote:
>> On Mon, Jan 11, 2016 at 4:52 AM, Thomas Leonard <talex5@gmail.com> wrote:
>>> On 10 January 2016 at 10:15, Tim Cuthbertson <tim@gfxmonk.net> wrote:
>>>> On Fri, Jan 8, 2016 at 11:14 PM, Thomas Leonard <talex5@gmail.com> wrote:
>>>>> On 8 January 2016 at 11:19, Tim Cuthbertson <tim@gfxmonk.net> wrote:
>>>>>> I'd like to use `Bcrypt` from the `safepass` opam module in passe[0].
>>>>>> There is sadly no `safepass-xen` package, and trying to just use
>>>>>> `safepass` results in link errors:
>>>>>>
>>>>>>
>>>>>> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o): In function
>>>>>> `BF_crypt':
>>>>>> (.text+0x1b97): undefined reference to `__errno_location'
>>>>>> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o): In function
>>>>>> `BF_crypt':
>>>>>> (.text+0x2112): undefined reference to `__errno_location'
>>>>>> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o): In function
>>>>>> `_crypt_blowfish_rn':
>>>>>> (.text+0x21ea): undefined reference to `__errno_location'
>>>>>> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o): In function
>>>>>> `_crypt_gensalt_blowfish_rn':
>>>>>> (.text+0x2575): undefined reference to `__errno_location'
>>>>>> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o): In function
>>>>>> `_crypt_gensalt_blowfish_rn':
>>>>>> (.text+0x25a6): undefined reference to `__errno_location'
>>>>>> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o):(.text+0x25b7):
>>>>>> more undefined references to `__errno_location' follow
>>>>>>
>>>>>>
>>>>>> I'm assuming I'd need to customise the build process tp produce an
>>>>>> appropriate C library as with `gmp-xen`, `zarith-xen` etc. The trouble
>>>>>> is twofold:
>>>>>>
>>>>>>  - I don't really know what the thing I'm doing is. Is mirage-xen a
>>>>>> different architecture? A different ABI? Do C libraries need to be
>>>>>> cross-compiled, or just compiled with particular flags so that they'll
>>>>>> work on xen-minios instead of gnu/linux?
>>>>>
>>>>> C libraries need to be compiled with different headers and flags (in
>>>>> particular, -mno-red-zone). Using libraries compiled for Linux will
>>>>> often appear to work, but may fail when interrupts occur, so the build
>>>>> makes it hard to use them by accident.
>>>>>
>>>>> However, OCaml binaries can be shared (ocamlopt doesn't use a red zone
>>>>> and the OCaml ABI is the same).
>>>>>
>>>>>>  - The existing scripts seem to be pretty ad-hoc - zarith gets away
>>>>>> mainly with particular CFLAGS
>>>>>> (https://github.com/ocaml/opam-repository/blob/master/packages/zarith-xen/zarith-xen.1.4/files/mirage-install.sh),
>>>>>
>>>>> It's using pkg-config to get the important flags. The others are
>>>>> optimisations (except -fno-builtin, which is either not needed or
>>>>> should be supplied by Mini-OS).
>>>>>
>>>>>> while gmp looks like a full cross-compilation using `--target` (and
>>>>>> then does some other sneaky things).
>>>>>>
>>>>>> safepass uses OASIS for its build system, which doesn't seem to have
>>>>>> any cross-compilation functionality built in as far as I could tell.
>>>>>> Can anyone give me pointers on what I'd need to do to safepass' build
>>>>>> scripts to get this working in mirage-xen, or at the least some
>>>>>> clarification on why it doesn't work as-is and how cross compilation
>>>>>> works for C libraries used in mirage-xen?
>>>>>>
>>>>>> [0]: https://github.com/timbertson/passe
>>>>>
>>>>> The io-page library provides a fairly simple template:
>>>>>
>>>>> https://github.com/mirage/io-page/blob/master/_oasis
>>>>>
>>>>> It builds io_page_unix and io_page_xen libraries. The C flags are
>>>>> added to the main META file with:
>>>>>
>>>>> XMETAExtraLines: xen_linkopts = "-lio_page_xen_stubs"
>>>>>
>>>>> There's a command to get the Xen flags:
>>>>>
>>>>> PostConfCommand: ocaml postconf.ml
>>>>>
>>>>> The Xen source file (stub_alloc_pages_xen.c) is just a symlink to the
>>>>> Unix one (you need a separate file because OASIS can't compile the
>>>>> same source path with different flags).
>>>>
>>>> Thanks, Thomas. - that helps quite a lot
>>>>
>>>> I think I've followed the same pattern now, but still haven't been
>>>> able to get safepass building.
>>>>
>>>> I'm using the following for CCOpt:
>>>>
>>>> `pkg-config --cflags --static mirage-xen-ocaml`
>>>>
>>>> Now the linking phase fails with:
>>>>
>>>> + ocamlfind ocamlmklib -o src/safepass_stubs src/crypt_blowfish.o
>>>> src/bcrypt_stub.o
>>>> ld: errno: TLS definition in /nix/store/<...>-glibc-2.21/lib/libc.so.6
>>>> section .tbss mismatches non-TLS reference in src/crypt_blowfish.o
>>>> /nix/store/<...>-glibc-2.21/lib/libc.so.6: could not read symbols: Bad value
>>>> collect2: error: ld returned 1 exit status
>>>> Command exited with code 2.
>>>> E: Failure("Command ''ocamlbuild' src/libsafepass_stubs.a
>>>> src/dllsafepass_stubs.so src/safepass.cma src/safepass.cmxa
>>>> src/safepass.a src/safepass.cmxs -tag debug' terminated with error
>>>> code 10")
>>>
>>> Try running it as "ocamlfind ocamlmklib -verbose" to see what commands
>>> it's actually using. For io-page, I get:
>>>
>>> $ ocamlfind ocamlmklib -verbose -o lib/io_page_xen_stubs
>>> lib/stub_alloc_pages_xen.o
>>> Effective set of compiler predicates: autolink,byte,native
>>> + ocamlmklib -ocamlc ocamlc.opt -ocamlopt ocamlopt.opt -verbose -o
>>> lib/io_page_xen_stubs lib/stub_alloc_pages_xen.o
>>> + gcc -shared  -o lib/dllio_page_xen_stubs.so lib/stub_alloc_pages_xen.o
>>> + ar rc lib/libio_page_xen_stubs.a  lib/stub_alloc_pages_xen.o; ranlib
>>> lib/libio_page_xen_stubs.a
>>>
>>> So it doesn't seem to be using ld at all, just ar.
>>
>> Tracing it with strace, that `gcc -shared` process ends up invoking
>> `ld` internally.
>>
>> I tried running ocamlmklib with the `-failsafe` option, and it does
>> continue past this and produce the static .a library using `ar`. But
>> if I try and put that flag into the larger build it doesn't get much
>> further, because it hits the same issue when creating
>> src/safepass.cmxs:
>>
>> + ocamlfind ocamlopt -shared -I src src/safepass.cmxa src/bcrypt.cmx
>> -o src/safepass.cmxs
>> ld: errno: TLS definition in libc.so.6 section .tbss mismatches
>> non-TLS reference in src/libsafepass_stubs.a(crypt_blowfish.o)
>> libc.so.6: could not read symbols: Bad value
>> collect2: error: ld returned 1 exit status
>>
>>>> This seems to be something special about errno being thread-local in
>>>> glibc. Googling turns up a lot of advice on fixing this problem, but
>>>> all of it assumes you're just building on linux for linux.
>>>> bcrypt_stubs.c does <errno.h>, which I believe is being provided by
>>>> minios-xen-0.8/include/minios-xen/errno.h.
>>>>
>>>> However, at link time I don't know where errno is supposed to come
>>>> from. It seems to be coming from glibc, but shouldn't it be coming
>>>> from minios instead given that's where the errno header comes from? I
>>>> poked around with `nm` in minios' built files but couldn't find
>>>> anything that actually defined errno.
>>>
>>> It's from mirage-xen:
>>>
>>> https://github.com/mirage/mirage-platform/blob/c035439de703edbfdd096044afdbab85f4cbf61f/bindings/main.c#L30
>>
>> Which compiled libraries does that end up in though?
>>
>> I tried `nm`-ing all the built files from mirage-{xen,xen-posix,xen-ocaml} with:
>>
>> $ find /nix/store/inxv9vdvnz8cjs6236fmalj0mnaq3sgx-mirage-xen-ocaml-2.3.4
>> /nix/store/vbz4pivjk196dw5h8rmg68qxh5m44cn9-mirage-xen-posix-2.3.4
>> /nix/store/24lm5990pxzp71nsgnffcmb2i7n41fck-mirage-xen-2.3.3 -type f
>> -exec bash -c 'if nm {} 2>/dev/null | grep -q errno; then echo {}; nm
>> {} | grep errno; fi' \;
>> /nix/store/inxv9vdvnz8cjs6236fmalj0mnaq3sgx-mirage-xen-ocaml-2.3.4/lib/mirage-xen-ocaml/libxenasmrun.a
>>                  U errno
>>                  U errno
>>                  U errno
>>                  U errno
>> /nix/store/vbz4pivjk196dw5h8rmg68qxh5m44cn9-mirage-xen-posix-2.3.4/lib/mirage-xen-posix/libxenposix.a
>>                  U errno
>> 0000000000000e4a T __h_errno_location
>> /nix/store/24lm5990pxzp71nsgnffcmb2i7n41fck-mirage-xen-2.3.3/lib/mirage-xen/libxencamlbindings.a
>> 0000000000000004 C errno
>
> This is it (C = Common).
>
>> So there are only .a files (which ld ignores when creating a shared
>> library, doesn't it?), and only libxencamlbindings actually defines it
>> (the others just reference it), which doesn't seem like a library I'd
>> necessarily need to link against.
>>
>> I don't know if mirage-xen actually makes use of .so libraries, as
>> I've only seen it produce static executables. But even if it doesn't
>> need them, I'd need to somehow tell oasis not to build shared versions
>> of safepass (both the .so and the .cmxs).
>
> Correct: Mirage on Xen does not use shared libraries. I don't know how
> to prevent them from being built. The easiest option might be to
> remove the uses of errno from the library (it doesn't look like the
> OCaml bindings do anything with it anyway).

The ocaml bindings (bcrypt_stub.c) doesn't, but the C code compiled
with it (crypt_blowfish.c) does, so I can't just remove it sadly.

So this is a bit ridiculous, but I did manage to get it compiling with
the following hack in the build script:

  mkdir fake_libc
  echo '"fake_libc": -traverse' >> _tags
  touch fake_libc/libc.c
  gcc -shared -nostdlib -o fake_libc/libc.so fake_libc/libc.c

(and also added -L$PWD/fake_libc to oasis' CCLib field)

I initially put just `int errno;` in that file, but it still works
without it. Seems like all it needs is for something to override glibc
on the library search path which doesn't contain any conflicting
definitions. It would probably work if I could just specify -nostdlib
too, but that's not so easy with .cmxa files.

I haven't actually been able to check whether the compiled xen
executable runs without issue yet, but both safepass and passe (which
uses it) now compile in xen mode, so that's a good sign!

I wonder if it would be worth providing some sort of stub libc.so with
mirage for this purpose? It seems like a lot of build tools expect to
be able to build a .so, and it may be easier to let them do their
thing with something trivial to link against rather than trying to
force them to build only static libraries.

Thanks for your help Thomas, and let me know if you have any better
ideas - I'll also get in touch with the safepass author now that I
have something working, and see if they have other ideas too.

Cheers,
 - Tim.

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Tue Jan 12 11:48:57 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 12 Jan 2016 11:48:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aIxRP-0002om-Gw; Tue, 12 Jan 2016 11:48:47 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <tim@gfxmonk.net>) id 1aIxRO-0002oc-5B
	for mirageos-devel@lists.xenproject.org; Tue, 12 Jan 2016 11:48:46 +0000
Received: from [85.158.143.35] by server-3.bemta-4.messagelabs.com id
	A8/36-31122-D18E4965; Tue, 12 Jan 2016 11:48:45 +0000
X-Env-Sender: tim@gfxmonk.net
X-Msg-Ref: server-15.tower-21.messagelabs.com!1452599315!9624252!1
X-Originating-IP: [209.85.213.42]
X-SpamReason: No, hits=0.8 required=7.0 tests=BODY_RANDOM_LONG,
  RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 4793 invoked from network); 12 Jan 2016 11:48:43 -0000
Received: from mail-vk0-f42.google.com (HELO mail-vk0-f42.google.com)
	(209.85.213.42)
	by server-15.tower-21.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 12 Jan 2016 11:48:43 -0000
Received: by mail-vk0-f42.google.com with SMTP id a123so210673988vkh.1
	for <mirageos-devel@lists.xenproject.org>;
	Tue, 12 Jan 2016 03:48:42 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=gfxmonk-net.20150623.gappssmtp.com; s=20150623;
	h=mime-version:in-reply-to:references:from:date:message-id:subject:to
	:cc:content-type;
	bh=hEoiP3RN0XLjmhslWYwiVpEvJuEd11B4lgZwsXIP73E=;
	b=QbuirEkZDRbYDgb+c4oa8o3xOMgxYxTSHi0p+6qDyS/NBHhchPxVVQ7pgen+BzW6YU
	AKz6/HqNJPw/qPmFTCB5UURu6v9Y3doZxYbeD3vmi85NdZ8OkHtLDEdP5QNbfApwrmUi
	lX4esQA6LnVU5Cl1JI5RLi2eScO3fc/S1uSScK1iD02u1KxBhKgfijc+QLcKdFb2Sib1
	obrq0fexI/bd2miKkyjYg384gkPlN9PWGtpm+pRXft/zwcKk7kTTLNSUUvLSXUsE75i5
	yVb13JBzSzS6FQGSbv/DbgpwAeig4ktXBZsTz2iuJloF3WzIHEjz1TREOZbErnlrBrZT
	kTmA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:in-reply-to:references:from:date
	:message-id:subject:to:cc:content-type;
	bh=hEoiP3RN0XLjmhslWYwiVpEvJuEd11B4lgZwsXIP73E=;
	b=G3r52saj8kVRWQs9W8ixB5EXXRPXSIcQNR4Asc7O5OzC2XUIXZuLxJthFKR9m/T7cP
	2Z422+XbLNZ73OmDqjkuTtJWDAmD89/bW/E9K9DTdOv0MGIUcw1180A3tiMLayziidAX
	QXN45axGzg0+Q8az+KsN+PwAM7FPpol0jWwt7s8HyzpWRNG/4z951pCn3zlOc+YltwOm
	yXPH5IYTXVanMfEGfS4CLMB+EDG8kH9+gtIbUP2iF8+V8ef+swymdM9bzWMaudko2zfL
	cNNacLfr9nHq3n8Ymf4hi9nMK4TY3431QmcoO7FID6rAzhwkbAjvetSjehPzldiaVPta
	/MUg==
X-Gm-Message-State: ALoCoQmJv9KculeoadWQ9P4pdvhCsvRhD6sHgCLlmgPEGE9ekN6m7uFfEF3upvDq78BhimMI/pqF8q2y4FLf9RxI2GsWDSwtig==
X-Received: by 10.31.54.134 with SMTP id d128mr85632453vka.26.1452599315042;
	Tue, 12 Jan 2016 03:48:35 -0800 (PST)
Received: from mail-vk0-f48.google.com (mail-vk0-f48.google.com.
	[209.85.213.48]) by smtp.gmail.com with ESMTPSA id
	x71sm13105508vkx.4.2016.01.12.03.48.34
	for <mirageos-devel@lists.xenproject.org>
	(version=TLSv1/SSLv3 cipher=OTHER);
	Tue, 12 Jan 2016 03:48:34 -0800 (PST)
Received: by mail-vk0-f48.google.com with SMTP id n1so86746493vkb.3
	for <mirageos-devel@lists.xenproject.org>;
	Tue, 12 Jan 2016 03:48:34 -0800 (PST)
X-Received: by 10.31.149.78 with SMTP id x75mr77187255vkd.103.1452599314128;
	Tue, 12 Jan 2016 03:48:34 -0800 (PST)
MIME-Version: 1.0
Received: by 10.31.69.132 with HTTP; Tue, 12 Jan 2016 03:48:14 -0800 (PST)
In-Reply-To: <CAG4opy_R399MT12omWXoP8mSav+ho9Ry6qkUHV8mK=6Yk022mw@mail.gmail.com>
References: <CAC-LLDiE4J11bvyJXrvee45MwBtH7OifOHUNo3SwDAW0YfPusQ@mail.gmail.com>
	<CAG4opy-aED7kSKUZoFoq4Gka3KenpD2-ET_f58S520rGVXu-Jg@mail.gmail.com>
	<CAC-LLDgEOoSVTaB1+PuZkjVdUuHs856o3+fDYd26e_7zEFtdEQ@mail.gmail.com>
	<CAG4opy-acZETa+Jbf=6oK3_wv7buP1612DZw0nxUH0wkZh9BEA@mail.gmail.com>
	<CAC-LLDhBohpWaF9Y7iC+G1PXm8S5jqEKoKn-vmqgCmM-onLr5A@mail.gmail.com>
	<CAG4opy_R399MT12omWXoP8mSav+ho9Ry6qkUHV8mK=6Yk022mw@mail.gmail.com>
From: Tim Cuthbertson <tim@gfxmonk.net>
Date: Tue, 12 Jan 2016 22:48:14 +1100
X-Gmail-Original-Message-ID: <CAC-LLDiyo6A5ReN8J-yfsXxA2qgP6=c98zhJYio0dJL89tWpfQ@mail.gmail.com>
Message-ID: <CAC-LLDiyo6A5ReN8J-yfsXxA2qgP6=c98zhJYio0dJL89tWpfQ@mail.gmail.com>
To: Thomas Leonard <talex5@gmail.com>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Compiling C components for mirage-xen
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On Mon, Jan 11, 2016 at 9:48 PM, Thomas Leonard <talex5@gmail.com> wrote:
> On 11 January 2016 at 09:06, Tim Cuthbertson <tim@gfxmonk.net> wrote:
>> On Mon, Jan 11, 2016 at 4:52 AM, Thomas Leonard <talex5@gmail.com> wrote:
>>> On 10 January 2016 at 10:15, Tim Cuthbertson <tim@gfxmonk.net> wrote:
>>>> On Fri, Jan 8, 2016 at 11:14 PM, Thomas Leonard <talex5@gmail.com> wrote:
>>>>> On 8 January 2016 at 11:19, Tim Cuthbertson <tim@gfxmonk.net> wrote:
>>>>>> I'd like to use `Bcrypt` from the `safepass` opam module in passe[0].
>>>>>> There is sadly no `safepass-xen` package, and trying to just use
>>>>>> `safepass` results in link errors:
>>>>>>
>>>>>>
>>>>>> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o): In function
>>>>>> `BF_crypt':
>>>>>> (.text+0x1b97): undefined reference to `__errno_location'
>>>>>> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o): In function
>>>>>> `BF_crypt':
>>>>>> (.text+0x2112): undefined reference to `__errno_location'
>>>>>> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o): In function
>>>>>> `_crypt_blowfish_rn':
>>>>>> (.text+0x21ea): undefined reference to `__errno_location'
>>>>>> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o): In function
>>>>>> `_crypt_gensalt_blowfish_rn':
>>>>>> (.text+0x2575): undefined reference to `__errno_location'
>>>>>> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o): In function
>>>>>> `_crypt_gensalt_blowfish_rn':
>>>>>> (.text+0x25a6): undefined reference to `__errno_location'
>>>>>> <...>/lib/safepass/libsafepass_stubs.a(crypt_blowfish.o):(.text+0x25b7):
>>>>>> more undefined references to `__errno_location' follow
>>>>>>
>>>>>>
>>>>>> I'm assuming I'd need to customise the build process tp produce an
>>>>>> appropriate C library as with `gmp-xen`, `zarith-xen` etc. The trouble
>>>>>> is twofold:
>>>>>>
>>>>>>  - I don't really know what the thing I'm doing is. Is mirage-xen a
>>>>>> different architecture? A different ABI? Do C libraries need to be
>>>>>> cross-compiled, or just compiled with particular flags so that they'll
>>>>>> work on xen-minios instead of gnu/linux?
>>>>>
>>>>> C libraries need to be compiled with different headers and flags (in
>>>>> particular, -mno-red-zone). Using libraries compiled for Linux will
>>>>> often appear to work, but may fail when interrupts occur, so the build
>>>>> makes it hard to use them by accident.
>>>>>
>>>>> However, OCaml binaries can be shared (ocamlopt doesn't use a red zone
>>>>> and the OCaml ABI is the same).
>>>>>
>>>>>>  - The existing scripts seem to be pretty ad-hoc - zarith gets away
>>>>>> mainly with particular CFLAGS
>>>>>> (https://github.com/ocaml/opam-repository/blob/master/packages/zarith-xen/zarith-xen.1.4/files/mirage-install.sh),
>>>>>
>>>>> It's using pkg-config to get the important flags. The others are
>>>>> optimisations (except -fno-builtin, which is either not needed or
>>>>> should be supplied by Mini-OS).
>>>>>
>>>>>> while gmp looks like a full cross-compilation using `--target` (and
>>>>>> then does some other sneaky things).
>>>>>>
>>>>>> safepass uses OASIS for its build system, which doesn't seem to have
>>>>>> any cross-compilation functionality built in as far as I could tell.
>>>>>> Can anyone give me pointers on what I'd need to do to safepass' build
>>>>>> scripts to get this working in mirage-xen, or at the least some
>>>>>> clarification on why it doesn't work as-is and how cross compilation
>>>>>> works for C libraries used in mirage-xen?
>>>>>>
>>>>>> [0]: https://github.com/timbertson/passe
>>>>>
>>>>> The io-page library provides a fairly simple template:
>>>>>
>>>>> https://github.com/mirage/io-page/blob/master/_oasis
>>>>>
>>>>> It builds io_page_unix and io_page_xen libraries. The C flags are
>>>>> added to the main META file with:
>>>>>
>>>>> XMETAExtraLines: xen_linkopts = "-lio_page_xen_stubs"
>>>>>
>>>>> There's a command to get the Xen flags:
>>>>>
>>>>> PostConfCommand: ocaml postconf.ml
>>>>>
>>>>> The Xen source file (stub_alloc_pages_xen.c) is just a symlink to the
>>>>> Unix one (you need a separate file because OASIS can't compile the
>>>>> same source path with different flags).
>>>>
>>>> Thanks, Thomas. - that helps quite a lot
>>>>
>>>> I think I've followed the same pattern now, but still haven't been
>>>> able to get safepass building.
>>>>
>>>> I'm using the following for CCOpt:
>>>>
>>>> `pkg-config --cflags --static mirage-xen-ocaml`
>>>>
>>>> Now the linking phase fails with:
>>>>
>>>> + ocamlfind ocamlmklib -o src/safepass_stubs src/crypt_blowfish.o
>>>> src/bcrypt_stub.o
>>>> ld: errno: TLS definition in /nix/store/<...>-glibc-2.21/lib/libc.so.6
>>>> section .tbss mismatches non-TLS reference in src/crypt_blowfish.o
>>>> /nix/store/<...>-glibc-2.21/lib/libc.so.6: could not read symbols: Bad value
>>>> collect2: error: ld returned 1 exit status
>>>> Command exited with code 2.
>>>> E: Failure("Command ''ocamlbuild' src/libsafepass_stubs.a
>>>> src/dllsafepass_stubs.so src/safepass.cma src/safepass.cmxa
>>>> src/safepass.a src/safepass.cmxs -tag debug' terminated with error
>>>> code 10")
>>>
>>> Try running it as "ocamlfind ocamlmklib -verbose" to see what commands
>>> it's actually using. For io-page, I get:
>>>
>>> $ ocamlfind ocamlmklib -verbose -o lib/io_page_xen_stubs
>>> lib/stub_alloc_pages_xen.o
>>> Effective set of compiler predicates: autolink,byte,native
>>> + ocamlmklib -ocamlc ocamlc.opt -ocamlopt ocamlopt.opt -verbose -o
>>> lib/io_page_xen_stubs lib/stub_alloc_pages_xen.o
>>> + gcc -shared  -o lib/dllio_page_xen_stubs.so lib/stub_alloc_pages_xen.o
>>> + ar rc lib/libio_page_xen_stubs.a  lib/stub_alloc_pages_xen.o; ranlib
>>> lib/libio_page_xen_stubs.a
>>>
>>> So it doesn't seem to be using ld at all, just ar.
>>
>> Tracing it with strace, that `gcc -shared` process ends up invoking
>> `ld` internally.
>>
>> I tried running ocamlmklib with the `-failsafe` option, and it does
>> continue past this and produce the static .a library using `ar`. But
>> if I try and put that flag into the larger build it doesn't get much
>> further, because it hits the same issue when creating
>> src/safepass.cmxs:
>>
>> + ocamlfind ocamlopt -shared -I src src/safepass.cmxa src/bcrypt.cmx
>> -o src/safepass.cmxs
>> ld: errno: TLS definition in libc.so.6 section .tbss mismatches
>> non-TLS reference in src/libsafepass_stubs.a(crypt_blowfish.o)
>> libc.so.6: could not read symbols: Bad value
>> collect2: error: ld returned 1 exit status
>>
>>>> This seems to be something special about errno being thread-local in
>>>> glibc. Googling turns up a lot of advice on fixing this problem, but
>>>> all of it assumes you're just building on linux for linux.
>>>> bcrypt_stubs.c does <errno.h>, which I believe is being provided by
>>>> minios-xen-0.8/include/minios-xen/errno.h.
>>>>
>>>> However, at link time I don't know where errno is supposed to come
>>>> from. It seems to be coming from glibc, but shouldn't it be coming
>>>> from minios instead given that's where the errno header comes from? I
>>>> poked around with `nm` in minios' built files but couldn't find
>>>> anything that actually defined errno.
>>>
>>> It's from mirage-xen:
>>>
>>> https://github.com/mirage/mirage-platform/blob/c035439de703edbfdd096044afdbab85f4cbf61f/bindings/main.c#L30
>>
>> Which compiled libraries does that end up in though?
>>
>> I tried `nm`-ing all the built files from mirage-{xen,xen-posix,xen-ocaml} with:
>>
>> $ find /nix/store/inxv9vdvnz8cjs6236fmalj0mnaq3sgx-mirage-xen-ocaml-2.3.4
>> /nix/store/vbz4pivjk196dw5h8rmg68qxh5m44cn9-mirage-xen-posix-2.3.4
>> /nix/store/24lm5990pxzp71nsgnffcmb2i7n41fck-mirage-xen-2.3.3 -type f
>> -exec bash -c 'if nm {} 2>/dev/null | grep -q errno; then echo {}; nm
>> {} | grep errno; fi' \;
>> /nix/store/inxv9vdvnz8cjs6236fmalj0mnaq3sgx-mirage-xen-ocaml-2.3.4/lib/mirage-xen-ocaml/libxenasmrun.a
>>                  U errno
>>                  U errno
>>                  U errno
>>                  U errno
>> /nix/store/vbz4pivjk196dw5h8rmg68qxh5m44cn9-mirage-xen-posix-2.3.4/lib/mirage-xen-posix/libxenposix.a
>>                  U errno
>> 0000000000000e4a T __h_errno_location
>> /nix/store/24lm5990pxzp71nsgnffcmb2i7n41fck-mirage-xen-2.3.3/lib/mirage-xen/libxencamlbindings.a
>> 0000000000000004 C errno
>
> This is it (C = Common).
>
>> So there are only .a files (which ld ignores when creating a shared
>> library, doesn't it?), and only libxencamlbindings actually defines it
>> (the others just reference it), which doesn't seem like a library I'd
>> necessarily need to link against.
>>
>> I don't know if mirage-xen actually makes use of .so libraries, as
>> I've only seen it produce static executables. But even if it doesn't
>> need them, I'd need to somehow tell oasis not to build shared versions
>> of safepass (both the .so and the .cmxs).
>
> Correct: Mirage on Xen does not use shared libraries. I don't know how
> to prevent them from being built. The easiest option might be to
> remove the uses of errno from the library (it doesn't look like the
> OCaml bindings do anything with it anyway).

The ocaml bindings (bcrypt_stub.c) doesn't, but the C code compiled
with it (crypt_blowfish.c) does, so I can't just remove it sadly.

So this is a bit ridiculous, but I did manage to get it compiling with
the following hack in the build script:

  mkdir fake_libc
  echo '"fake_libc": -traverse' >> _tags
  touch fake_libc/libc.c
  gcc -shared -nostdlib -o fake_libc/libc.so fake_libc/libc.c

(and also added -L$PWD/fake_libc to oasis' CCLib field)

I initially put just `int errno;` in that file, but it still works
without it. Seems like all it needs is for something to override glibc
on the library search path which doesn't contain any conflicting
definitions. It would probably work if I could just specify -nostdlib
too, but that's not so easy with .cmxa files.

I haven't actually been able to check whether the compiled xen
executable runs without issue yet, but both safepass and passe (which
uses it) now compile in xen mode, so that's a good sign!

I wonder if it would be worth providing some sort of stub libc.so with
mirage for this purpose? It seems like a lot of build tools expect to
be able to build a .so, and it may be easier to let them do their
thing with something trivial to link against rather than trying to
force them to build only static libraries.

Thanks for your help Thomas, and let me know if you have any better
ideas - I'll also get in touch with the safepass author now that I
have something working, and see if they have other ideas too.

Cheers,
 - Tim.

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Tue Jan 12 11:58:16 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 12 Jan 2016 11:58:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aIxaU-0003Bo-ST; Tue, 12 Jan 2016 11:58:10 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <talex5@gmail.com>) id 1aIxaT-0003Bg-8B
	for mirageos-devel@lists.xenproject.org; Tue, 12 Jan 2016 11:58:09 +0000
Received: from [85.158.139.211] by server-12.bemta-5.messagelabs.com id
	A4/33-12831-05AE4965; Tue, 12 Jan 2016 11:58:08 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-6.tower-206.messagelabs.com!1452599887!15029196!1
X-Originating-IP: [209.85.213.41]
X-SpamReason: No, hits=0.8 required=7.0 tests=BODY_RANDOM_LONG,
  RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 36155 invoked from network); 12 Jan 2016 11:58:07 -0000
Received: from mail-vk0-f41.google.com (HELO mail-vk0-f41.google.com)
	(209.85.213.41)
	by server-6.tower-206.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 12 Jan 2016 11:58:07 -0000
Received: by mail-vk0-f41.google.com with SMTP id a123so210793481vkh.1
	for <mirageos-devel@lists.xenproject.org>;
	Tue, 12 Jan 2016 03:58:07 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:date:message-id:subject:from:to:content-type;
	bh=Cuo+TCaczPfthSQg2b+BqsGzbjgbr3IQXuB305UaxBM=;
	b=nGXhb2ti8fpd9ct61Tn26rjFpH+WnK6oGlnbeDbEhHHDn5KkPyeUJdFcoRGHJx9lij
	ozioN6UsvoGls9GO+B6wJrdUeomDFUf2zMzy9t7c65oefvWWKazIJcqvv1Sgtbf6LvTZ
	GVQ50s5w91+LPR9mxErOwRM3/ISHlegv/I83rCsixrgkQjzO9tzT3gPKoMCAWThermFc
	V3Z82NPxBCN0HzqlPD1UfWsIKOy2IWcwZqAuaj1o4QOXNcorGBhhk2KYuHP958wz0BkH
	ay6bYL3DyMziyGFcF6ubsRElRxEjZO6R5fzhrQ7mMlRtdQTGiI3xlA02FoJJq1u8sYcp
	71PA==
MIME-Version: 1.0
X-Received: by 10.31.178.134 with SMTP id b128mr54955882vkf.112.1452599886607; 
	Tue, 12 Jan 2016 03:58:06 -0800 (PST)
Received: by 10.31.128.84 with HTTP; Tue, 12 Jan 2016 03:58:06 -0800 (PST)
Date: Tue, 12 Jan 2016 11:58:06 +0000
Message-ID: <CAG4opy9fnuyX7-q871FuNkSzaWZPQA+dauCcG_jZC_AVd58RRw@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: [MirageOS-devel] mirage-logs and functoria
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

mirage-logs is a log reporter for the Logs library that works with
Mirage unikernels.

  https://github.com/talex5/mirage-logs

Basic usage looks like this:

module Main (Clock : V1.CLOCK) = struct
  module Log_reporter = Mirage_logs.Make(Clock)

  let start () =
    Log_reporter.(create () |> run) @@ fun () ->
    ...

Log messages are generated using the normal Logs API (0.5.0). e.g.

let src = Logs.Src.create "unikernel" ~doc:"Main unikernel code"
module Log = (val Logs.src_log src : Logs.LOG)

...

Log.info (fun f -> f "agents connected in %.3f s (CPU time used since
boot: %.3f s)"
  (Clock.time () -. start_time) (Sys.time ()));

( I originally had mirage-logs writing to a Mirage CONSOLE device, but
that's asynchronous. That meant that I had to queue messages, drop
messages when the queue got too long etc. And if the unikernel
crashed, you wouldn't see the latest messages. Instead, it now writes
to stderr, which is blocking on Unix and Xen. This means that if you
generate a lot of logging output then your unikernel may run slowly,
but you will get all the messages. )

Sample output:

MirageOS booting...
Initialising timer interface
Initialising console ... done.
Netif: add resume hook
gnttab_stubs.c: initialised mini-os gntmap
2016-01-12 11:45.09: INF [qubes.rexec] waiting for client...
2016-01-12 11:45.09: INF [qubes.gui] waiting for client...
2016-01-12 11:45.09: INF [qubes.db] connecting to server...
2016-01-12 11:45.09: INF [qubes.db] connected
2016-01-12 11:45.09: INF [qubes.rexec] client connected, using
protocol version 2

Extra features:

If log messages include tags, these are also printed.

If tracing is enabled (with mirage-profile) then any log message
reaching the reporter is also written to the trace buffer, and will
appear in the viewer.

You can specify a threshold function for console messages, so that
detailed logging can be written to the trace buffer but only important
messages are displayed on the console.

You can also configure a ring buffer for log messages. Any message
received by the reporter (whether shown on the console or not) will be
written to the ring. If an exception occurs, the contents of the ring
are dumped to stderr. e.g.

let console_threshold src =
  match Logs.Src.name src with
  | "noisy.library" -> Logs.Warning
  | _ -> Logs.Info in
Logs_reporter.(create ~ring_size:20 ~console_threshold () |> run) @@ fun () ->
...

Ideally, I'd like to integrate this with functoria. What would be the
best way to do this?
Is it possible to do something like this?

  register "console" [mirage_logs (main $ default_console)]


-- 
Dr Thomas Leonard        http://roscidus.com/blog/
GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Tue Jan 12 11:58:16 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 12 Jan 2016 11:58:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aIxaU-0003Bo-ST; Tue, 12 Jan 2016 11:58:10 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <talex5@gmail.com>) id 1aIxaT-0003Bg-8B
	for mirageos-devel@lists.xenproject.org; Tue, 12 Jan 2016 11:58:09 +0000
Received: from [85.158.139.211] by server-12.bemta-5.messagelabs.com id
	A4/33-12831-05AE4965; Tue, 12 Jan 2016 11:58:08 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-6.tower-206.messagelabs.com!1452599887!15029196!1
X-Originating-IP: [209.85.213.41]
X-SpamReason: No, hits=0.8 required=7.0 tests=BODY_RANDOM_LONG,
  RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 36155 invoked from network); 12 Jan 2016 11:58:07 -0000
Received: from mail-vk0-f41.google.com (HELO mail-vk0-f41.google.com)
	(209.85.213.41)
	by server-6.tower-206.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 12 Jan 2016 11:58:07 -0000
Received: by mail-vk0-f41.google.com with SMTP id a123so210793481vkh.1
	for <mirageos-devel@lists.xenproject.org>;
	Tue, 12 Jan 2016 03:58:07 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:date:message-id:subject:from:to:content-type;
	bh=Cuo+TCaczPfthSQg2b+BqsGzbjgbr3IQXuB305UaxBM=;
	b=nGXhb2ti8fpd9ct61Tn26rjFpH+WnK6oGlnbeDbEhHHDn5KkPyeUJdFcoRGHJx9lij
	ozioN6UsvoGls9GO+B6wJrdUeomDFUf2zMzy9t7c65oefvWWKazIJcqvv1Sgtbf6LvTZ
	GVQ50s5w91+LPR9mxErOwRM3/ISHlegv/I83rCsixrgkQjzO9tzT3gPKoMCAWThermFc
	V3Z82NPxBCN0HzqlPD1UfWsIKOy2IWcwZqAuaj1o4QOXNcorGBhhk2KYuHP958wz0BkH
	ay6bYL3DyMziyGFcF6ubsRElRxEjZO6R5fzhrQ7mMlRtdQTGiI3xlA02FoJJq1u8sYcp
	71PA==
MIME-Version: 1.0
X-Received: by 10.31.178.134 with SMTP id b128mr54955882vkf.112.1452599886607; 
	Tue, 12 Jan 2016 03:58:06 -0800 (PST)
Received: by 10.31.128.84 with HTTP; Tue, 12 Jan 2016 03:58:06 -0800 (PST)
Date: Tue, 12 Jan 2016 11:58:06 +0000
Message-ID: <CAG4opy9fnuyX7-q871FuNkSzaWZPQA+dauCcG_jZC_AVd58RRw@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: [MirageOS-devel] mirage-logs and functoria
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

mirage-logs is a log reporter for the Logs library that works with
Mirage unikernels.

  https://github.com/talex5/mirage-logs

Basic usage looks like this:

module Main (Clock : V1.CLOCK) = struct
  module Log_reporter = Mirage_logs.Make(Clock)

  let start () =
    Log_reporter.(create () |> run) @@ fun () ->
    ...

Log messages are generated using the normal Logs API (0.5.0). e.g.

let src = Logs.Src.create "unikernel" ~doc:"Main unikernel code"
module Log = (val Logs.src_log src : Logs.LOG)

...

Log.info (fun f -> f "agents connected in %.3f s (CPU time used since
boot: %.3f s)"
  (Clock.time () -. start_time) (Sys.time ()));

( I originally had mirage-logs writing to a Mirage CONSOLE device, but
that's asynchronous. That meant that I had to queue messages, drop
messages when the queue got too long etc. And if the unikernel
crashed, you wouldn't see the latest messages. Instead, it now writes
to stderr, which is blocking on Unix and Xen. This means that if you
generate a lot of logging output then your unikernel may run slowly,
but you will get all the messages. )

Sample output:

MirageOS booting...
Initialising timer interface
Initialising console ... done.
Netif: add resume hook
gnttab_stubs.c: initialised mini-os gntmap
2016-01-12 11:45.09: INF [qubes.rexec] waiting for client...
2016-01-12 11:45.09: INF [qubes.gui] waiting for client...
2016-01-12 11:45.09: INF [qubes.db] connecting to server...
2016-01-12 11:45.09: INF [qubes.db] connected
2016-01-12 11:45.09: INF [qubes.rexec] client connected, using
protocol version 2

Extra features:

If log messages include tags, these are also printed.

If tracing is enabled (with mirage-profile) then any log message
reaching the reporter is also written to the trace buffer, and will
appear in the viewer.

You can specify a threshold function for console messages, so that
detailed logging can be written to the trace buffer but only important
messages are displayed on the console.

You can also configure a ring buffer for log messages. Any message
received by the reporter (whether shown on the console or not) will be
written to the ring. If an exception occurs, the contents of the ring
are dumped to stderr. e.g.

let console_threshold src =
  match Logs.Src.name src with
  | "noisy.library" -> Logs.Warning
  | _ -> Logs.Info in
Logs_reporter.(create ~ring_size:20 ~console_threshold () |> run) @@ fun () ->
...

Ideally, I'd like to integrate this with functoria. What would be the
best way to do this?
Is it possible to do something like this?

  register "console" [mirage_logs (main $ default_console)]


-- 
Dr Thomas Leonard        http://roscidus.com/blog/
GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Tue Jan 12 12:11:29 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 12 Jan 2016 12:11:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aIxnE-00041w-KM; Tue, 12 Jan 2016 12:11:20 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <talex5@gmail.com>) id 1aIxnD-000414-B5
	for mirageos-devel@lists.xenproject.org; Tue, 12 Jan 2016 12:11:19 +0000
Received: from [85.158.137.68] by server-9.bemta-3.messagelabs.com id
	62/0E-03066-66DE4965; Tue, 12 Jan 2016 12:11:18 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-12.tower-31.messagelabs.com!1452600677!15256457!1
X-Originating-IP: [209.85.213.47]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 8194 invoked from network); 12 Jan 2016 12:11:17 -0000
Received: from mail-vk0-f47.google.com (HELO mail-vk0-f47.google.com)
	(209.85.213.47)
	by server-12.tower-31.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 12 Jan 2016 12:11:17 -0000
Received: by mail-vk0-f47.google.com with SMTP id a123so210972506vkh.1
	for <mirageos-devel@lists.xenproject.org>;
	Tue, 12 Jan 2016 04:11:17 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=Z7XS/DeI//ybWBq+0d3iFPXzH/530KZxpM9UbJFNSfU=;
	b=y3nk5yioHaNJR7ui05BKjbRPN6FpJ/qxUwKBnf2DP4BCo/hxLq66CRg7HyijGs46lC
	A9DkTrrBR0t38vzSaBHNbgQ0OyroDmKNwiHWsQdCzFnNJ5J867nDmI9f3yCvd7vbODrc
	3CxPShopBZwLihaPGU+1ZeC5z1wEYed9WSifv0swkNieBVhRqDB7nmZC+b9EoJhyYfI3
	OEYZn80m+grepGrUTvnUjbBjO+LcmWhnXpt5zRLkhnT/SBCJJTIt3jmc3Mzeou4nNZPp
	eyBQkw3QwZpoYen2EXzJzQQvo1xk7EPyeh1o9H+1hdvAhcmBzZ5z2sqqG9+qW7MenxGt
	oswA==
MIME-Version: 1.0
X-Received: by 10.31.56.18 with SMTP id f18mr81483835vka.19.1452600677001;
	Tue, 12 Jan 2016 04:11:17 -0800 (PST)
Received: by 10.31.128.84 with HTTP; Tue, 12 Jan 2016 04:11:16 -0800 (PST)
In-Reply-To: <trinity-b8c17b3f-2bdb-46b5-946d-847ee4e15c3f-1452524826437@3capp-mailcom-bs07>
References: <trinity-ceb1c027-f89e-459b-95fc-727cb12599b7-1447955809874@3capp-mailcom-bs07>
	<CAG4opy-v+X2QAFZM3j5bFeFcY3OudB9JW9ovjag_E9hj9LVK9g@mail.gmail.com>
	<trinity-11b72f98-0633-4978-ac6f-a89d36470a6d-1452444637077@3capp-mailcom-bs12>
	<CAG4opy93AZOhp2TX=4guapt4pxJO-iwdgURusmd-vkRo1XVtuQ@mail.gmail.com>
	<trinity-b8c17b3f-2bdb-46b5-946d-847ee4e15c3f-1452524826437@3capp-mailcom-bs07>
Date: Tue, 12 Jan 2016 12:11:16 +0000
Message-ID: <CAG4opy8ra-GkyOHwDZ3aibw-JyWeGcj8Zmr2yVkvtUxcFJS6tw@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: "M. O." <meta@gmx.com>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Changes in Irmin 0.10.0
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 11 January 2016 at 15:07, M. O. <meta@gmx.com> wrote:
> I understand. Irmin.unwatch appears to be Unbounded when building (while
> Irmin.watch_key works). Doesn't unwatch need to be exposed in module BC?

I don't think so. The documentation says:

(** [watch_branches t f] calls [f] every time a branch is added,
removed or updated in the local store. Return a function to remove the
handler. *)

> On 10 January 2016 at 16:50, M. O. <meta@gmx.com> wrote:
>> Thanks, and how to unwatch a key that is under watch by I.watch_key?
>
> The Irmin API is documented in irmin.mli, e.g.
>
> https://github.com/mirage/irmin/blob/master/lib/irmin.mli#L533
>
>
>>> Hi,
>>>
>>> Questions regarding changes in Irmin 0.10.0:
>>>
>>> 1- Is there any equivalence for "Irmin.watch_tags" in the previous
>>> releases?
>>
>> Irmin.Repo.watch_branches
>>
>>> 2- This is somehow related to the first question, that is how to create a
>>> store similar to "Store.of_head config task head" (for instance, from the
>>> heads that watch_tag sends to the callback function) in the older
>>> versions.
>>
>> of_head is now of_commit_id.
>>
>
>
>
> --
> Dr Thomas Leonard http://roscidus.com/blog/
> GPG: DA98 25AE CAD0 8975 7CDA BD8E 0713 3F96 CA74 D8BA



-- 
Dr Thomas Leonard        http://roscidus.com/blog/
GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Tue Jan 12 12:11:29 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 12 Jan 2016 12:11:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aIxnE-00041w-KM; Tue, 12 Jan 2016 12:11:20 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <talex5@gmail.com>) id 1aIxnD-000414-B5
	for mirageos-devel@lists.xenproject.org; Tue, 12 Jan 2016 12:11:19 +0000
Received: from [85.158.137.68] by server-9.bemta-3.messagelabs.com id
	62/0E-03066-66DE4965; Tue, 12 Jan 2016 12:11:18 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-12.tower-31.messagelabs.com!1452600677!15256457!1
X-Originating-IP: [209.85.213.47]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 8194 invoked from network); 12 Jan 2016 12:11:17 -0000
Received: from mail-vk0-f47.google.com (HELO mail-vk0-f47.google.com)
	(209.85.213.47)
	by server-12.tower-31.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 12 Jan 2016 12:11:17 -0000
Received: by mail-vk0-f47.google.com with SMTP id a123so210972506vkh.1
	for <mirageos-devel@lists.xenproject.org>;
	Tue, 12 Jan 2016 04:11:17 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=Z7XS/DeI//ybWBq+0d3iFPXzH/530KZxpM9UbJFNSfU=;
	b=y3nk5yioHaNJR7ui05BKjbRPN6FpJ/qxUwKBnf2DP4BCo/hxLq66CRg7HyijGs46lC
	A9DkTrrBR0t38vzSaBHNbgQ0OyroDmKNwiHWsQdCzFnNJ5J867nDmI9f3yCvd7vbODrc
	3CxPShopBZwLihaPGU+1ZeC5z1wEYed9WSifv0swkNieBVhRqDB7nmZC+b9EoJhyYfI3
	OEYZn80m+grepGrUTvnUjbBjO+LcmWhnXpt5zRLkhnT/SBCJJTIt3jmc3Mzeou4nNZPp
	eyBQkw3QwZpoYen2EXzJzQQvo1xk7EPyeh1o9H+1hdvAhcmBzZ5z2sqqG9+qW7MenxGt
	oswA==
MIME-Version: 1.0
X-Received: by 10.31.56.18 with SMTP id f18mr81483835vka.19.1452600677001;
	Tue, 12 Jan 2016 04:11:17 -0800 (PST)
Received: by 10.31.128.84 with HTTP; Tue, 12 Jan 2016 04:11:16 -0800 (PST)
In-Reply-To: <trinity-b8c17b3f-2bdb-46b5-946d-847ee4e15c3f-1452524826437@3capp-mailcom-bs07>
References: <trinity-ceb1c027-f89e-459b-95fc-727cb12599b7-1447955809874@3capp-mailcom-bs07>
	<CAG4opy-v+X2QAFZM3j5bFeFcY3OudB9JW9ovjag_E9hj9LVK9g@mail.gmail.com>
	<trinity-11b72f98-0633-4978-ac6f-a89d36470a6d-1452444637077@3capp-mailcom-bs12>
	<CAG4opy93AZOhp2TX=4guapt4pxJO-iwdgURusmd-vkRo1XVtuQ@mail.gmail.com>
	<trinity-b8c17b3f-2bdb-46b5-946d-847ee4e15c3f-1452524826437@3capp-mailcom-bs07>
Date: Tue, 12 Jan 2016 12:11:16 +0000
Message-ID: <CAG4opy8ra-GkyOHwDZ3aibw-JyWeGcj8Zmr2yVkvtUxcFJS6tw@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: "M. O." <meta@gmx.com>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Changes in Irmin 0.10.0
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 11 January 2016 at 15:07, M. O. <meta@gmx.com> wrote:
> I understand. Irmin.unwatch appears to be Unbounded when building (while
> Irmin.watch_key works). Doesn't unwatch need to be exposed in module BC?

I don't think so. The documentation says:

(** [watch_branches t f] calls [f] every time a branch is added,
removed or updated in the local store. Return a function to remove the
handler. *)

> On 10 January 2016 at 16:50, M. O. <meta@gmx.com> wrote:
>> Thanks, and how to unwatch a key that is under watch by I.watch_key?
>
> The Irmin API is documented in irmin.mli, e.g.
>
> https://github.com/mirage/irmin/blob/master/lib/irmin.mli#L533
>
>
>>> Hi,
>>>
>>> Questions regarding changes in Irmin 0.10.0:
>>>
>>> 1- Is there any equivalence for "Irmin.watch_tags" in the previous
>>> releases?
>>
>> Irmin.Repo.watch_branches
>>
>>> 2- This is somehow related to the first question, that is how to create a
>>> store similar to "Store.of_head config task head" (for instance, from the
>>> heads that watch_tag sends to the callback function) in the older
>>> versions.
>>
>> of_head is now of_commit_id.
>>
>
>
>
> --
> Dr Thomas Leonard http://roscidus.com/blog/
> GPG: DA98 25AE CAD0 8975 7CDA BD8E 0713 3F96 CA74 D8BA



-- 
Dr Thomas Leonard        http://roscidus.com/blog/
GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Tue Jan 12 14:01:06 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 12 Jan 2016 14:01:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aIzVM-00076O-AE; Tue, 12 Jan 2016 14:01:00 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <drupyog+caml@zoho.com>) id 1aIzVL-00076J-29
	for mirageos-devel@lists.xenproject.org; Tue, 12 Jan 2016 14:00:59 +0000
Received: from [85.158.139.211] by server-6.bemta-5.messagelabs.com id
	0A/22-22089-A1705965; Tue, 12 Jan 2016 14:00:58 +0000
X-Env-Sender: drupyog+caml@zoho.com
X-Msg-Ref: server-3.tower-206.messagelabs.com!1452607255!15357695!1
X-Originating-IP: [74.201.84.153]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 11397 invoked from network); 12 Jan 2016 14:00:57 -0000
Received: from sender153-mail.zoho.com (HELO sender153-mail.zoho.com)
	(74.201.84.153)
	by server-3.tower-206.messagelabs.com with AES128-SHA encrypted SMTP;
	12 Jan 2016 14:00:57 -0000
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=zapps768; d=zoho.com; 
	h=subject:to:references:from:message-id:date:user-agent:mime-version:in-reply-to:content-type;
	b=EJIzbs284WtSqOwfmj/GKLYGSPweFNmuXCtPAKe/mNn59452qnp71cilm/glK93rUBID+p4Ki+Cj
	6B/qeZF1jUNSl8zewkiQwseqEEUuXXmQcd6AyGFtNKRxclqeGn7M  
Received: from [134.157.22.141] (134.157.22.141 [134.157.22.141]) by
	mx.zohomail.com with SMTPS id 1452607254164803.368329052507;
	Tue, 12 Jan 2016 06:00:54 -0800 (PST)
To: Thomas Leonard <talex5@gmail.com>, "mirageos-devel@lists.xenproject.org"
	<mirageos-devel@lists.xenproject.org>
References: <CAG4opy9fnuyX7-q871FuNkSzaWZPQA+dauCcG_jZC_AVd58RRw@mail.gmail.com>
From: Drup <drupyog+caml@zoho.com>
Message-ID: <56950713.3010306@zoho.com>
Date: Tue, 12 Jan 2016 15:00:51 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101
	Thunderbird/38.5.1
MIME-Version: 1.0
In-Reply-To: <CAG4opy9fnuyX7-q871FuNkSzaWZPQA+dauCcG_jZC_AVd58RRw@mail.gmail.com>
X-Zoho-Virus-Status: 1
Subject: Re: [MirageOS-devel] mirage-logs and functoria
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

> Ideally, I'd like to integrate this with functoria. What would be the
> best way to do this?
> Is it possible to do something like this?
>
>    register "console" [mirage_logs (main $ default_console)]

Not directly like that. I see several possibilities.

- Make "Main" take an extra module argument
       module L = struct let log = create () |> run end
   then config.ml is now
       let log = default_log $ default_console in
       register "foo" [main $ .. $ log]

   This way, the functor application of Mirage_logs.Make is outside (in 
the "default_log" combinator).
   Maybe it could be combined with Logs.Src.create if that's desirable.

- Change a bit the API, so that you have a `start` function that returns 
a thread that starts the logger
   (which means no automated function wrapping).

   Then, we declare main differently:
        let main = foreign ~deps:[hidden default_log] "Unikernel.Main" ( 
... @-> job)
   `Main.start` will receive an additional value (at least unit, but you 
can put whatever you want).
   and that ensures that logs are initialized before the main job is 
executed.
   This is what is done for nocrypto.

   Function wrapping could probably be arranged by using the value 
passed around.
   In the end, this could be like 1), but without the functor argument.

- The problem with those two methods is similar to your tracing issue. 
It doesn't log things started before the main job.
   The third possibility is, we solve 
https://github.com/mirage/functoria/issues/45 and we add a way to put 
the logger (and the tracer) there.
   Again, no automated wrapping


_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Tue Jan 12 14:01:06 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 12 Jan 2016 14:01:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aIzVM-00076O-AE; Tue, 12 Jan 2016 14:01:00 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <drupyog+caml@zoho.com>) id 1aIzVL-00076J-29
	for mirageos-devel@lists.xenproject.org; Tue, 12 Jan 2016 14:00:59 +0000
Received: from [85.158.139.211] by server-6.bemta-5.messagelabs.com id
	0A/22-22089-A1705965; Tue, 12 Jan 2016 14:00:58 +0000
X-Env-Sender: drupyog+caml@zoho.com
X-Msg-Ref: server-3.tower-206.messagelabs.com!1452607255!15357695!1
X-Originating-IP: [74.201.84.153]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 11397 invoked from network); 12 Jan 2016 14:00:57 -0000
Received: from sender153-mail.zoho.com (HELO sender153-mail.zoho.com)
	(74.201.84.153)
	by server-3.tower-206.messagelabs.com with AES128-SHA encrypted SMTP;
	12 Jan 2016 14:00:57 -0000
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=zapps768; d=zoho.com; 
	h=subject:to:references:from:message-id:date:user-agent:mime-version:in-reply-to:content-type;
	b=EJIzbs284WtSqOwfmj/GKLYGSPweFNmuXCtPAKe/mNn59452qnp71cilm/glK93rUBID+p4Ki+Cj
	6B/qeZF1jUNSl8zewkiQwseqEEUuXXmQcd6AyGFtNKRxclqeGn7M  
Received: from [134.157.22.141] (134.157.22.141 [134.157.22.141]) by
	mx.zohomail.com with SMTPS id 1452607254164803.368329052507;
	Tue, 12 Jan 2016 06:00:54 -0800 (PST)
To: Thomas Leonard <talex5@gmail.com>, "mirageos-devel@lists.xenproject.org"
	<mirageos-devel@lists.xenproject.org>
References: <CAG4opy9fnuyX7-q871FuNkSzaWZPQA+dauCcG_jZC_AVd58RRw@mail.gmail.com>
From: Drup <drupyog+caml@zoho.com>
Message-ID: <56950713.3010306@zoho.com>
Date: Tue, 12 Jan 2016 15:00:51 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101
	Thunderbird/38.5.1
MIME-Version: 1.0
In-Reply-To: <CAG4opy9fnuyX7-q871FuNkSzaWZPQA+dauCcG_jZC_AVd58RRw@mail.gmail.com>
X-Zoho-Virus-Status: 1
Subject: Re: [MirageOS-devel] mirage-logs and functoria
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

> Ideally, I'd like to integrate this with functoria. What would be the
> best way to do this?
> Is it possible to do something like this?
>
>    register "console" [mirage_logs (main $ default_console)]

Not directly like that. I see several possibilities.

- Make "Main" take an extra module argument
       module L = struct let log = create () |> run end
   then config.ml is now
       let log = default_log $ default_console in
       register "foo" [main $ .. $ log]

   This way, the functor application of Mirage_logs.Make is outside (in 
the "default_log" combinator).
   Maybe it could be combined with Logs.Src.create if that's desirable.

- Change a bit the API, so that you have a `start` function that returns 
a thread that starts the logger
   (which means no automated function wrapping).

   Then, we declare main differently:
        let main = foreign ~deps:[hidden default_log] "Unikernel.Main" ( 
... @-> job)
   `Main.start` will receive an additional value (at least unit, but you 
can put whatever you want).
   and that ensures that logs are initialized before the main job is 
executed.
   This is what is done for nocrypto.

   Function wrapping could probably be arranged by using the value 
passed around.
   In the end, this could be like 1), but without the functor argument.

- The problem with those two methods is similar to your tracing issue. 
It doesn't log things started before the main job.
   The third possibility is, we solve 
https://github.com/mirage/functoria/issues/45 and we add a way to put 
the logger (and the tracer) there.
   Again, no automated wrapping


_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Tue Jan 12 14:34:42 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 12 Jan 2016 14:34:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aJ01v-0008Dv-0t; Tue, 12 Jan 2016 14:34:39 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <talex5@gmail.com>) id 1aJ01u-0008DK-D8
	for mirageos-devel@lists.xenproject.org; Tue, 12 Jan 2016 14:34:38 +0000
Received: from [193.109.254.147] by server-15.bemta-14.messagelabs.com id
	C8/C9-10115-DFE05965; Tue, 12 Jan 2016 14:34:37 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-7.tower-27.messagelabs.com!1452609275!16323722!1
X-Originating-IP: [209.85.213.47]
X-SpamReason: No, hits=0.8 required=7.0 tests=BODY_RANDOM_LONG,
  RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 53515 invoked from network); 12 Jan 2016 14:34:36 -0000
Received: from mail-vk0-f47.google.com (HELO mail-vk0-f47.google.com)
	(209.85.213.47)
	by server-7.tower-27.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 12 Jan 2016 14:34:36 -0000
Received: by mail-vk0-f47.google.com with SMTP id k1so243620808vkb.2
	for <mirageos-devel@lists.xenproject.org>;
	Tue, 12 Jan 2016 06:34:36 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=gMZJnw/VTfe5tHGd4D3fZyu+F+QPe184djhxL4RBf90=;
	b=AnjEsZyLRFMoRQnyGnqJ7ErduQcPgEbvt/RbJTDhbRKzmHgvgfcBR/ejMvlVZ7oaBN
	vhLBUgh0/Iqdl1KH9+L1YG8CEVFe8gmPJCvocMIRQ37LM6984Buy+CyXjhY/OA5HUbrl
	f6YUzCnLDYxIn3to63g1YbiFb1l4XI0FUseNg3TboyB8ioqUn1x2GmPNIWVYN/+ROBbK
	TO/pR0FabwUdSp6I28ZXd9tm0knQeYFUPA5I/xBqsL8OOmvIqxgeSZQZAVxl9RXpKTFP
	Aq1+NnDXq3ArbgzW2Dx5u0+nOwoD9NNFmL+OtMKD2a6rljLOAq7QB5ZpJfE6shEgjDWc
	oJ9w==
MIME-Version: 1.0
X-Received: by 10.31.178.134 with SMTP id b128mr55399326vkf.112.1452609275491; 
	Tue, 12 Jan 2016 06:34:35 -0800 (PST)
Received: by 10.31.128.84 with HTTP; Tue, 12 Jan 2016 06:34:35 -0800 (PST)
In-Reply-To: <56950713.3010306@zoho.com>
References: <CAG4opy9fnuyX7-q871FuNkSzaWZPQA+dauCcG_jZC_AVd58RRw@mail.gmail.com>
	<56950713.3010306@zoho.com>
Date: Tue, 12 Jan 2016 14:34:35 +0000
Message-ID: <CAG4opy9bjnzPJXQLSqQMiEn67kVyEf3UVp9Rt0O7gC+mnfumCQ@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Drup <drupyog+caml@zoho.com>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] mirage-logs and functoria
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 12 January 2016 at 14:00, Drup <drupyog+caml@zoho.com> wrote:
>> Ideally, I'd like to integrate this with functoria. What would be the
>> best way to do this?
>> Is it possible to do something like this?
>>
>>    register "console" [mirage_logs (main $ default_console)]
>
>
> Not directly like that. I see several possibilities.
>
> - Make "Main" take an extra module argument
>       module L = struct let log = create () |> run end
>   then config.ml is now
>       let log = default_log $ default_console in
>       register "foo" [main $ .. $ log]
>
>   This way, the functor application of Mirage_logs.Make is outside (in the
> "default_log" combinator).
>   Maybe it could be combined with Logs.Src.create if that's desirable.
>
> - Change a bit the API, so that you have a `start` function that returns a
> thread that starts the logger
>   (which means no automated function wrapping).
>
>   Then, we declare main differently:
>        let main = foreign ~deps:[hidden default_log] "Unikernel.Main" ( ...
> @-> job)
>   `Main.start` will receive an additional value (at least unit, but you can
> put whatever you want).
>   and that ensures that logs are initialized before the main job is
> executed.
>   This is what is done for nocrypto.

Do you mean "before the main job's start function is called" or
"before any of the inputs are evaluated"? The second would be OK. The
docs say:

    {- If [deps] is set, the given list of {{!abstract_impl}abstract}
       implementations is added as data-dependencies: they will be
       initialized before calling [name.connect]. }

However, there is no [name.connect] function. If it means [name.start]
then I don't see what the difference is between this and declaring it
as a regular argument.

>   Function wrapping could probably be arranged by using the value passed
> around.
>   In the end, this could be like 1), but without the functor argument.
>
> - The problem with those two methods is similar to your tracing issue. It
> doesn't log things started before the main job.
>   The third possibility is, we solve
> https://github.com/mirage/functoria/issues/45 and we add a way to put the
> logger (and the tracer) there.
>   Again, no automated wrapping

Yes. I think we have a slight advantage here: libraries using Logs
will be written to assume that there will be no log output until their
connect function is called (whereas libraries aren't generally aware
that they might be being traced). However, being able to trace the
connect calls is really useful, so waiting until Main.start is too
late.


-- 
Dr Thomas Leonard        http://roscidus.com/blog/
GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Tue Jan 12 14:34:42 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 12 Jan 2016 14:34:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aJ01v-0008Dv-0t; Tue, 12 Jan 2016 14:34:39 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <talex5@gmail.com>) id 1aJ01u-0008DK-D8
	for mirageos-devel@lists.xenproject.org; Tue, 12 Jan 2016 14:34:38 +0000
Received: from [193.109.254.147] by server-15.bemta-14.messagelabs.com id
	C8/C9-10115-DFE05965; Tue, 12 Jan 2016 14:34:37 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-7.tower-27.messagelabs.com!1452609275!16323722!1
X-Originating-IP: [209.85.213.47]
X-SpamReason: No, hits=0.8 required=7.0 tests=BODY_RANDOM_LONG,
  RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 53515 invoked from network); 12 Jan 2016 14:34:36 -0000
Received: from mail-vk0-f47.google.com (HELO mail-vk0-f47.google.com)
	(209.85.213.47)
	by server-7.tower-27.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 12 Jan 2016 14:34:36 -0000
Received: by mail-vk0-f47.google.com with SMTP id k1so243620808vkb.2
	for <mirageos-devel@lists.xenproject.org>;
	Tue, 12 Jan 2016 06:34:36 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=gMZJnw/VTfe5tHGd4D3fZyu+F+QPe184djhxL4RBf90=;
	b=AnjEsZyLRFMoRQnyGnqJ7ErduQcPgEbvt/RbJTDhbRKzmHgvgfcBR/ejMvlVZ7oaBN
	vhLBUgh0/Iqdl1KH9+L1YG8CEVFe8gmPJCvocMIRQ37LM6984Buy+CyXjhY/OA5HUbrl
	f6YUzCnLDYxIn3to63g1YbiFb1l4XI0FUseNg3TboyB8ioqUn1x2GmPNIWVYN/+ROBbK
	TO/pR0FabwUdSp6I28ZXd9tm0knQeYFUPA5I/xBqsL8OOmvIqxgeSZQZAVxl9RXpKTFP
	Aq1+NnDXq3ArbgzW2Dx5u0+nOwoD9NNFmL+OtMKD2a6rljLOAq7QB5ZpJfE6shEgjDWc
	oJ9w==
MIME-Version: 1.0
X-Received: by 10.31.178.134 with SMTP id b128mr55399326vkf.112.1452609275491; 
	Tue, 12 Jan 2016 06:34:35 -0800 (PST)
Received: by 10.31.128.84 with HTTP; Tue, 12 Jan 2016 06:34:35 -0800 (PST)
In-Reply-To: <56950713.3010306@zoho.com>
References: <CAG4opy9fnuyX7-q871FuNkSzaWZPQA+dauCcG_jZC_AVd58RRw@mail.gmail.com>
	<56950713.3010306@zoho.com>
Date: Tue, 12 Jan 2016 14:34:35 +0000
Message-ID: <CAG4opy9bjnzPJXQLSqQMiEn67kVyEf3UVp9Rt0O7gC+mnfumCQ@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Drup <drupyog+caml@zoho.com>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] mirage-logs and functoria
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 12 January 2016 at 14:00, Drup <drupyog+caml@zoho.com> wrote:
>> Ideally, I'd like to integrate this with functoria. What would be the
>> best way to do this?
>> Is it possible to do something like this?
>>
>>    register "console" [mirage_logs (main $ default_console)]
>
>
> Not directly like that. I see several possibilities.
>
> - Make "Main" take an extra module argument
>       module L = struct let log = create () |> run end
>   then config.ml is now
>       let log = default_log $ default_console in
>       register "foo" [main $ .. $ log]
>
>   This way, the functor application of Mirage_logs.Make is outside (in the
> "default_log" combinator).
>   Maybe it could be combined with Logs.Src.create if that's desirable.
>
> - Change a bit the API, so that you have a `start` function that returns a
> thread that starts the logger
>   (which means no automated function wrapping).
>
>   Then, we declare main differently:
>        let main = foreign ~deps:[hidden default_log] "Unikernel.Main" ( ...
> @-> job)
>   `Main.start` will receive an additional value (at least unit, but you can
> put whatever you want).
>   and that ensures that logs are initialized before the main job is
> executed.
>   This is what is done for nocrypto.

Do you mean "before the main job's start function is called" or
"before any of the inputs are evaluated"? The second would be OK. The
docs say:

    {- If [deps] is set, the given list of {{!abstract_impl}abstract}
       implementations is added as data-dependencies: they will be
       initialized before calling [name.connect]. }

However, there is no [name.connect] function. If it means [name.start]
then I don't see what the difference is between this and declaring it
as a regular argument.

>   Function wrapping could probably be arranged by using the value passed
> around.
>   In the end, this could be like 1), but without the functor argument.
>
> - The problem with those two methods is similar to your tracing issue. It
> doesn't log things started before the main job.
>   The third possibility is, we solve
> https://github.com/mirage/functoria/issues/45 and we add a way to put the
> logger (and the tracer) there.
>   Again, no automated wrapping

Yes. I think we have a slight advantage here: libraries using Logs
will be written to assume that there will be no log output until their
connect function is called (whereas libraries aren't generally aware
that they might be being traced). However, being able to trace the
connect calls is really useful, so waiting until Main.start is too
late.


-- 
Dr Thomas Leonard        http://roscidus.com/blog/
GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Tue Jan 12 14:59:32 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 12 Jan 2016 14:59:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aJ0Px-0000rv-Q7; Tue, 12 Jan 2016 14:59:29 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <drupyog+caml@zoho.com>) id 1aJ0Pw-0000rm-8B
	for mirageos-devel@lists.xenproject.org; Tue, 12 Jan 2016 14:59:28 +0000
Received: from [85.158.137.68] by server-12.bemta-3.messagelabs.com id
	57/01-14900-FC415965; Tue, 12 Jan 2016 14:59:27 +0000
X-Env-Sender: drupyog+caml@zoho.com
X-Msg-Ref: server-11.tower-31.messagelabs.com!1452610765!14811410!1
X-Originating-IP: [74.201.84.153]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 59747 invoked from network); 12 Jan 2016 14:59:26 -0000
Received: from sender153-mail.zoho.com (HELO sender153-mail.zoho.com)
	(74.201.84.153)
	by server-11.tower-31.messagelabs.com with AES128-SHA encrypted SMTP;
	12 Jan 2016 14:59:26 -0000
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=zapps768; d=zoho.com; 
	h=subject:to:references:cc:from:message-id:date:user-agent:mime-version:in-reply-to:content-type;
	b=uVLf6bvF5UVETud64RfrCs6vc5DKPbLD1ASbEZ6yPD+wwbjRjK/uNw5TrOSaysrBukO9ZAQ6cOYG
	9y0W6Zj7viWOqm+qJ6XVlmeI4fzvx27thuh4gJPpv6vitBWIx1fM  
Received: from [134.157.22.141] (134.157.22.141 [134.157.22.141]) by
	mx.zohomail.com with SMTPS id 1452610764423965.8383656732203;
	Tue, 12 Jan 2016 06:59:24 -0800 (PST)
To: Thomas Leonard <talex5@gmail.com>
References: <CAG4opy9fnuyX7-q871FuNkSzaWZPQA+dauCcG_jZC_AVd58RRw@mail.gmail.com>
	<56950713.3010306@zoho.com>
	<CAG4opy9bjnzPJXQLSqQMiEn67kVyEf3UVp9Rt0O7gC+mnfumCQ@mail.gmail.com>
From: Drup <drupyog+caml@zoho.com>
Message-ID: <569514CA.6090006@zoho.com>
Date: Tue, 12 Jan 2016 15:59:22 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101
	Thunderbird/38.5.1
MIME-Version: 1.0
In-Reply-To: <CAG4opy9bjnzPJXQLSqQMiEn67kVyEf3UVp9Rt0O7gC+mnfumCQ@mail.gmail.com>
Content-Length: 4564
X-Zoho-Virus-Status: 1
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] mirage-logs and functoria
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

TGUgMTIvMDEvMjAxNiAxNTozNCwgVGhvbWFzIExlb25hcmQgYSDDqWNyaXQgOgo+IE9uIDEyIEph
bnVhcnkgMjAxNiBhdCAxNDowMCwgRHJ1cCA8ZHJ1cHlvZytjYW1sQHpvaG8uY29tPiB3cm90ZToK
Pj4+IElkZWFsbHksIEknZCBsaWtlIHRvIGludGVncmF0ZSB0aGlzIHdpdGggZnVuY3RvcmlhLiBX
aGF0IHdvdWxkIGJlIHRoZQo+Pj4gYmVzdCB3YXkgdG8gZG8gdGhpcz8KPj4+IElzIGl0IHBvc3Np
YmxlIHRvIGRvIHNvbWV0aGluZyBsaWtlIHRoaXM/Cj4+Pgo+Pj4gICAgIHJlZ2lzdGVyICJjb25z
b2xlIiBbbWlyYWdlX2xvZ3MgKG1haW4gJCBkZWZhdWx0X2NvbnNvbGUpXQo+Pgo+PiBOb3QgZGly
ZWN0bHkgbGlrZSB0aGF0LiBJIHNlZSBzZXZlcmFsIHBvc3NpYmlsaXRpZXMuCj4+Cj4+IC0gTWFr
ZSAiTWFpbiIgdGFrZSBhbiBleHRyYSBtb2R1bGUgYXJndW1lbnQKPj4gICAgICAgIG1vZHVsZSBM
ID0gc3RydWN0IGxldCBsb2cgPSBjcmVhdGUgKCkgfD4gcnVuIGVuZAo+PiAgICB0aGVuIGNvbmZp
Zy5tbCBpcyBub3cKPj4gICAgICAgIGxldCBsb2cgPSBkZWZhdWx0X2xvZyAkIGRlZmF1bHRfY29u
c29sZSBpbgo+PiAgICAgICAgcmVnaXN0ZXIgImZvbyIgW21haW4gJCAuLiAkIGxvZ10KPj4KPj4g
ICAgVGhpcyB3YXksIHRoZSBmdW5jdG9yIGFwcGxpY2F0aW9uIG9mIE1pcmFnZV9sb2dzLk1ha2Ug
aXMgb3V0c2lkZSAoaW4gdGhlCj4+ICJkZWZhdWx0X2xvZyIgY29tYmluYXRvcikuCj4+ICAgIE1h
eWJlIGl0IGNvdWxkIGJlIGNvbWJpbmVkIHdpdGggTG9ncy5TcmMuY3JlYXRlIGlmIHRoYXQncyBk
ZXNpcmFibGUuCj4+Cj4+IC0gQ2hhbmdlIGEgYml0IHRoZSBBUEksIHNvIHRoYXQgeW91IGhhdmUg
YSBgc3RhcnRgIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhCj4+IHRocmVhZCB0aGF0IHN0YXJ0cyB0
aGUgbG9nZ2VyCj4+ICAgICh3aGljaCBtZWFucyBubyBhdXRvbWF0ZWQgZnVuY3Rpb24gd3JhcHBp
bmcpLgo+Pgo+PiAgICBUaGVuLCB3ZSBkZWNsYXJlIG1haW4gZGlmZmVyZW50bHk6Cj4+ICAgICAg
ICAgbGV0IG1haW4gPSBmb3JlaWduIH5kZXBzOltoaWRkZW4gZGVmYXVsdF9sb2ddICJVbmlrZXJu
ZWwuTWFpbiIgKCAuLi4KPj4gQC0+IGpvYikKPj4gICAgYE1haW4uc3RhcnRgIHdpbGwgcmVjZWl2
ZSBhbiBhZGRpdGlvbmFsIHZhbHVlIChhdCBsZWFzdCB1bml0LCBidXQgeW91IGNhbgo+PiBwdXQg
d2hhdGV2ZXIgeW91IHdhbnQpLgo+PiAgICBhbmQgdGhhdCBlbnN1cmVzIHRoYXQgbG9ncyBhcmUg
aW5pdGlhbGl6ZWQgYmVmb3JlIHRoZSBtYWluIGpvYiBpcwo+PiBleGVjdXRlZC4KPj4gICAgVGhp
cyBpcyB3aGF0IGlzIGRvbmUgZm9yIG5vY3J5cHRvLgo+IERvIHlvdSBtZWFuICJiZWZvcmUgdGhl
IG1haW4gam9iJ3Mgc3RhcnQgZnVuY3Rpb24gaXMgY2FsbGVkIiBvcgo+ICJiZWZvcmUgYW55IG9m
IHRoZSBpbnB1dHMgYXJlIGV2YWx1YXRlZCI/IFRoZSBzZWNvbmQgd291bGQgYmUgT0suIFRoZQo+
IGRvY3Mgc2F5Ogo+Cj4gICAgICB7LSBJZiBbZGVwc10gaXMgc2V0LCB0aGUgZ2l2ZW4gbGlzdCBv
ZiB7eyFhYnN0cmFjdF9pbXBsfWFic3RyYWN0fQo+ICAgICAgICAgaW1wbGVtZW50YXRpb25zIGlz
IGFkZGVkIGFzIGRhdGEtZGVwZW5kZW5jaWVzOiB0aGV5IHdpbGwgYmUKPiAgICAgICAgIGluaXRp
YWxpemVkIGJlZm9yZSBjYWxsaW5nIFtuYW1lLmNvbm5lY3RdLiB9Cj4KPiBIb3dldmVyLCB0aGVy
ZSBpcyBubyBbbmFtZS5jb25uZWN0XSBmdW5jdGlvbi4gSWYgaXQgbWVhbnMgW25hbWUuc3RhcnRd
Cj4gdGhlbiBJIGRvbid0IHNlZSB3aGF0IHRoZSBkaWZmZXJlbmNlIGlzIGJldHdlZW4gdGhpcyBh
bmQgZGVjbGFyaW5nIGl0Cj4gYXMgYSByZWd1bGFyIGFyZ3VtZW50LgpJdCdzIHRoZSBmaXJzdCwg
dGhlcmUgYXJlIG5vIG9yZGVycyBiZXR3ZWVuIGRlcGVuZGVuY2llcyBvZiBhIGRldmljZS4KClRo
ZSBkaWZmZXJlbmNlIGlzIHdoZXRoZXIgeW91IGFsc28gaGF2ZSBhIGZ1bmN0b3IgYXJndW1lbnQg
b3Igbm90LgoKInN0YXJ0IiBpcyBjYWxsZWQgYnkgY29ubmVjdCBmb3IgbW9kdWxlIGRlY2xhcmVk
IHdpdGggImZvcmVpZ24iLiBUaGlzIGlzIApiZWNhdXNlIGRldmljZXMgYW5kIGZvcmVpZ25zIHdl
cmUgZGlmZmVyZW50LCB3aGljaCBpcyBub3QgdGhlIGNhc2UgYW55IG1vcmUuCkkgd291bGQgZ2xh
ZGx5IGNoYW5nZSBpdCBmb3IgY29uc2lzdGVuY3ksIGJ1dCB0aGF0IHdvdWxkIGJyZWFrIApldmVy
eXRoaW5nLiA6KQoKPj4gICAgRnVuY3Rpb24gd3JhcHBpbmcgY291bGQgcHJvYmFibHkgYmUgYXJy
YW5nZWQgYnkgdXNpbmcgdGhlIHZhbHVlIHBhc3NlZAo+PiBhcm91bmQuCj4+ICAgIEluIHRoZSBl
bmQsIHRoaXMgY291bGQgYmUgbGlrZSAxKSwgYnV0IHdpdGhvdXQgdGhlIGZ1bmN0b3IgYXJndW1l
bnQuCj4+Cj4+IC0gVGhlIHByb2JsZW0gd2l0aCB0aG9zZSB0d28gbWV0aG9kcyBpcyBzaW1pbGFy
IHRvIHlvdXIgdHJhY2luZyBpc3N1ZS4gSXQKPj4gZG9lc24ndCBsb2cgdGhpbmdzIHN0YXJ0ZWQg
YmVmb3JlIHRoZSBtYWluIGpvYi4KPj4gICAgVGhlIHRoaXJkIHBvc3NpYmlsaXR5IGlzLCB3ZSBz
b2x2ZQo+PiBodHRwczovL2dpdGh1Yi5jb20vbWlyYWdlL2Z1bmN0b3JpYS9pc3N1ZXMvNDUgYW5k
IHdlIGFkZCBhIHdheSB0byBwdXQgdGhlCj4+IGxvZ2dlciAoYW5kIHRoZSB0cmFjZXIpIHRoZXJl
Lgo+PiAgICBBZ2Fpbiwgbm8gYXV0b21hdGVkIHdyYXBwaW5nCj4gWWVzLiBJIHRoaW5rIHdlIGhh
dmUgYSBzbGlnaHQgYWR2YW50YWdlIGhlcmU6IGxpYnJhcmllcyB1c2luZyBMb2dzCj4gd2lsbCBi
ZSB3cml0dGVuIHRvIGFzc3VtZSB0aGF0IHRoZXJlIHdpbGwgYmUgbm8gbG9nIG91dHB1dCB1bnRp
bCB0aGVpcgo+IGNvbm5lY3QgZnVuY3Rpb24gaXMgY2FsbGVkICh3aGVyZWFzIGxpYnJhcmllcyBh
cmVuJ3QgZ2VuZXJhbGx5IGF3YXJlCj4gdGhhdCB0aGV5IG1pZ2h0IGJlIGJlaW5nIHRyYWNlZCku
IEhvd2V2ZXIsIGJlaW5nIGFibGUgdG8gdHJhY2UgdGhlCj4gY29ubmVjdCBjYWxscyBpcyByZWFs
bHkgdXNlZnVsLCBzbyB3YWl0aW5nIHVudGlsIE1haW4uc3RhcnQgaXMgdG9vCj4gbGF0ZS4KClRo
aXMgd291bGQgbWVhbiB0aGF0LCBmb3IgZXhhbXBsZSwgbmV0d29yayBpbml0aWFsaXphdGlvbiBp
cyBub3QgbG9nZ2VkLiAKVGhhdCBsaW1pdHMgaXRzIHV0aWxpdHkgYXMgYSBkZWJ1Z2dpbmcgdG9v
bC4KCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpNaXJh
Z2VPUy1kZXZlbCBtYWlsaW5nIGxpc3QKTWlyYWdlT1MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5v
cmcKaHR0cDovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9t
aXJhZ2Vvcy1kZXZlbAo=

From mirageos-devel-bounces@lists.xenproject.org Tue Jan 12 14:59:32 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 12 Jan 2016 14:59:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aJ0Px-0000rv-Q7; Tue, 12 Jan 2016 14:59:29 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <drupyog+caml@zoho.com>) id 1aJ0Pw-0000rm-8B
	for mirageos-devel@lists.xenproject.org; Tue, 12 Jan 2016 14:59:28 +0000
Received: from [85.158.137.68] by server-12.bemta-3.messagelabs.com id
	57/01-14900-FC415965; Tue, 12 Jan 2016 14:59:27 +0000
X-Env-Sender: drupyog+caml@zoho.com
X-Msg-Ref: server-11.tower-31.messagelabs.com!1452610765!14811410!1
X-Originating-IP: [74.201.84.153]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 59747 invoked from network); 12 Jan 2016 14:59:26 -0000
Received: from sender153-mail.zoho.com (HELO sender153-mail.zoho.com)
	(74.201.84.153)
	by server-11.tower-31.messagelabs.com with AES128-SHA encrypted SMTP;
	12 Jan 2016 14:59:26 -0000
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=zapps768; d=zoho.com; 
	h=subject:to:references:cc:from:message-id:date:user-agent:mime-version:in-reply-to:content-type;
	b=uVLf6bvF5UVETud64RfrCs6vc5DKPbLD1ASbEZ6yPD+wwbjRjK/uNw5TrOSaysrBukO9ZAQ6cOYG
	9y0W6Zj7viWOqm+qJ6XVlmeI4fzvx27thuh4gJPpv6vitBWIx1fM  
Received: from [134.157.22.141] (134.157.22.141 [134.157.22.141]) by
	mx.zohomail.com with SMTPS id 1452610764423965.8383656732203;
	Tue, 12 Jan 2016 06:59:24 -0800 (PST)
To: Thomas Leonard <talex5@gmail.com>
References: <CAG4opy9fnuyX7-q871FuNkSzaWZPQA+dauCcG_jZC_AVd58RRw@mail.gmail.com>
	<56950713.3010306@zoho.com>
	<CAG4opy9bjnzPJXQLSqQMiEn67kVyEf3UVp9Rt0O7gC+mnfumCQ@mail.gmail.com>
From: Drup <drupyog+caml@zoho.com>
Message-ID: <569514CA.6090006@zoho.com>
Date: Tue, 12 Jan 2016 15:59:22 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101
	Thunderbird/38.5.1
MIME-Version: 1.0
In-Reply-To: <CAG4opy9bjnzPJXQLSqQMiEn67kVyEf3UVp9Rt0O7gC+mnfumCQ@mail.gmail.com>
Content-Length: 4564
X-Zoho-Virus-Status: 1
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] mirage-logs and functoria
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

TGUgMTIvMDEvMjAxNiAxNTozNCwgVGhvbWFzIExlb25hcmQgYSDDqWNyaXQgOgo+IE9uIDEyIEph
bnVhcnkgMjAxNiBhdCAxNDowMCwgRHJ1cCA8ZHJ1cHlvZytjYW1sQHpvaG8uY29tPiB3cm90ZToK
Pj4+IElkZWFsbHksIEknZCBsaWtlIHRvIGludGVncmF0ZSB0aGlzIHdpdGggZnVuY3RvcmlhLiBX
aGF0IHdvdWxkIGJlIHRoZQo+Pj4gYmVzdCB3YXkgdG8gZG8gdGhpcz8KPj4+IElzIGl0IHBvc3Np
YmxlIHRvIGRvIHNvbWV0aGluZyBsaWtlIHRoaXM/Cj4+Pgo+Pj4gICAgIHJlZ2lzdGVyICJjb25z
b2xlIiBbbWlyYWdlX2xvZ3MgKG1haW4gJCBkZWZhdWx0X2NvbnNvbGUpXQo+Pgo+PiBOb3QgZGly
ZWN0bHkgbGlrZSB0aGF0LiBJIHNlZSBzZXZlcmFsIHBvc3NpYmlsaXRpZXMuCj4+Cj4+IC0gTWFr
ZSAiTWFpbiIgdGFrZSBhbiBleHRyYSBtb2R1bGUgYXJndW1lbnQKPj4gICAgICAgIG1vZHVsZSBM
ID0gc3RydWN0IGxldCBsb2cgPSBjcmVhdGUgKCkgfD4gcnVuIGVuZAo+PiAgICB0aGVuIGNvbmZp
Zy5tbCBpcyBub3cKPj4gICAgICAgIGxldCBsb2cgPSBkZWZhdWx0X2xvZyAkIGRlZmF1bHRfY29u
c29sZSBpbgo+PiAgICAgICAgcmVnaXN0ZXIgImZvbyIgW21haW4gJCAuLiAkIGxvZ10KPj4KPj4g
ICAgVGhpcyB3YXksIHRoZSBmdW5jdG9yIGFwcGxpY2F0aW9uIG9mIE1pcmFnZV9sb2dzLk1ha2Ug
aXMgb3V0c2lkZSAoaW4gdGhlCj4+ICJkZWZhdWx0X2xvZyIgY29tYmluYXRvcikuCj4+ICAgIE1h
eWJlIGl0IGNvdWxkIGJlIGNvbWJpbmVkIHdpdGggTG9ncy5TcmMuY3JlYXRlIGlmIHRoYXQncyBk
ZXNpcmFibGUuCj4+Cj4+IC0gQ2hhbmdlIGEgYml0IHRoZSBBUEksIHNvIHRoYXQgeW91IGhhdmUg
YSBgc3RhcnRgIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhCj4+IHRocmVhZCB0aGF0IHN0YXJ0cyB0
aGUgbG9nZ2VyCj4+ICAgICh3aGljaCBtZWFucyBubyBhdXRvbWF0ZWQgZnVuY3Rpb24gd3JhcHBp
bmcpLgo+Pgo+PiAgICBUaGVuLCB3ZSBkZWNsYXJlIG1haW4gZGlmZmVyZW50bHk6Cj4+ICAgICAg
ICAgbGV0IG1haW4gPSBmb3JlaWduIH5kZXBzOltoaWRkZW4gZGVmYXVsdF9sb2ddICJVbmlrZXJu
ZWwuTWFpbiIgKCAuLi4KPj4gQC0+IGpvYikKPj4gICAgYE1haW4uc3RhcnRgIHdpbGwgcmVjZWl2
ZSBhbiBhZGRpdGlvbmFsIHZhbHVlIChhdCBsZWFzdCB1bml0LCBidXQgeW91IGNhbgo+PiBwdXQg
d2hhdGV2ZXIgeW91IHdhbnQpLgo+PiAgICBhbmQgdGhhdCBlbnN1cmVzIHRoYXQgbG9ncyBhcmUg
aW5pdGlhbGl6ZWQgYmVmb3JlIHRoZSBtYWluIGpvYiBpcwo+PiBleGVjdXRlZC4KPj4gICAgVGhp
cyBpcyB3aGF0IGlzIGRvbmUgZm9yIG5vY3J5cHRvLgo+IERvIHlvdSBtZWFuICJiZWZvcmUgdGhl
IG1haW4gam9iJ3Mgc3RhcnQgZnVuY3Rpb24gaXMgY2FsbGVkIiBvcgo+ICJiZWZvcmUgYW55IG9m
IHRoZSBpbnB1dHMgYXJlIGV2YWx1YXRlZCI/IFRoZSBzZWNvbmQgd291bGQgYmUgT0suIFRoZQo+
IGRvY3Mgc2F5Ogo+Cj4gICAgICB7LSBJZiBbZGVwc10gaXMgc2V0LCB0aGUgZ2l2ZW4gbGlzdCBv
ZiB7eyFhYnN0cmFjdF9pbXBsfWFic3RyYWN0fQo+ICAgICAgICAgaW1wbGVtZW50YXRpb25zIGlz
IGFkZGVkIGFzIGRhdGEtZGVwZW5kZW5jaWVzOiB0aGV5IHdpbGwgYmUKPiAgICAgICAgIGluaXRp
YWxpemVkIGJlZm9yZSBjYWxsaW5nIFtuYW1lLmNvbm5lY3RdLiB9Cj4KPiBIb3dldmVyLCB0aGVy
ZSBpcyBubyBbbmFtZS5jb25uZWN0XSBmdW5jdGlvbi4gSWYgaXQgbWVhbnMgW25hbWUuc3RhcnRd
Cj4gdGhlbiBJIGRvbid0IHNlZSB3aGF0IHRoZSBkaWZmZXJlbmNlIGlzIGJldHdlZW4gdGhpcyBh
bmQgZGVjbGFyaW5nIGl0Cj4gYXMgYSByZWd1bGFyIGFyZ3VtZW50LgpJdCdzIHRoZSBmaXJzdCwg
dGhlcmUgYXJlIG5vIG9yZGVycyBiZXR3ZWVuIGRlcGVuZGVuY2llcyBvZiBhIGRldmljZS4KClRo
ZSBkaWZmZXJlbmNlIGlzIHdoZXRoZXIgeW91IGFsc28gaGF2ZSBhIGZ1bmN0b3IgYXJndW1lbnQg
b3Igbm90LgoKInN0YXJ0IiBpcyBjYWxsZWQgYnkgY29ubmVjdCBmb3IgbW9kdWxlIGRlY2xhcmVk
IHdpdGggImZvcmVpZ24iLiBUaGlzIGlzIApiZWNhdXNlIGRldmljZXMgYW5kIGZvcmVpZ25zIHdl
cmUgZGlmZmVyZW50LCB3aGljaCBpcyBub3QgdGhlIGNhc2UgYW55IG1vcmUuCkkgd291bGQgZ2xh
ZGx5IGNoYW5nZSBpdCBmb3IgY29uc2lzdGVuY3ksIGJ1dCB0aGF0IHdvdWxkIGJyZWFrIApldmVy
eXRoaW5nLiA6KQoKPj4gICAgRnVuY3Rpb24gd3JhcHBpbmcgY291bGQgcHJvYmFibHkgYmUgYXJy
YW5nZWQgYnkgdXNpbmcgdGhlIHZhbHVlIHBhc3NlZAo+PiBhcm91bmQuCj4+ICAgIEluIHRoZSBl
bmQsIHRoaXMgY291bGQgYmUgbGlrZSAxKSwgYnV0IHdpdGhvdXQgdGhlIGZ1bmN0b3IgYXJndW1l
bnQuCj4+Cj4+IC0gVGhlIHByb2JsZW0gd2l0aCB0aG9zZSB0d28gbWV0aG9kcyBpcyBzaW1pbGFy
IHRvIHlvdXIgdHJhY2luZyBpc3N1ZS4gSXQKPj4gZG9lc24ndCBsb2cgdGhpbmdzIHN0YXJ0ZWQg
YmVmb3JlIHRoZSBtYWluIGpvYi4KPj4gICAgVGhlIHRoaXJkIHBvc3NpYmlsaXR5IGlzLCB3ZSBz
b2x2ZQo+PiBodHRwczovL2dpdGh1Yi5jb20vbWlyYWdlL2Z1bmN0b3JpYS9pc3N1ZXMvNDUgYW5k
IHdlIGFkZCBhIHdheSB0byBwdXQgdGhlCj4+IGxvZ2dlciAoYW5kIHRoZSB0cmFjZXIpIHRoZXJl
Lgo+PiAgICBBZ2Fpbiwgbm8gYXV0b21hdGVkIHdyYXBwaW5nCj4gWWVzLiBJIHRoaW5rIHdlIGhh
dmUgYSBzbGlnaHQgYWR2YW50YWdlIGhlcmU6IGxpYnJhcmllcyB1c2luZyBMb2dzCj4gd2lsbCBi
ZSB3cml0dGVuIHRvIGFzc3VtZSB0aGF0IHRoZXJlIHdpbGwgYmUgbm8gbG9nIG91dHB1dCB1bnRp
bCB0aGVpcgo+IGNvbm5lY3QgZnVuY3Rpb24gaXMgY2FsbGVkICh3aGVyZWFzIGxpYnJhcmllcyBh
cmVuJ3QgZ2VuZXJhbGx5IGF3YXJlCj4gdGhhdCB0aGV5IG1pZ2h0IGJlIGJlaW5nIHRyYWNlZCku
IEhvd2V2ZXIsIGJlaW5nIGFibGUgdG8gdHJhY2UgdGhlCj4gY29ubmVjdCBjYWxscyBpcyByZWFs
bHkgdXNlZnVsLCBzbyB3YWl0aW5nIHVudGlsIE1haW4uc3RhcnQgaXMgdG9vCj4gbGF0ZS4KClRo
aXMgd291bGQgbWVhbiB0aGF0LCBmb3IgZXhhbXBsZSwgbmV0d29yayBpbml0aWFsaXphdGlvbiBp
cyBub3QgbG9nZ2VkLiAKVGhhdCBsaW1pdHMgaXRzIHV0aWxpdHkgYXMgYSBkZWJ1Z2dpbmcgdG9v
bC4KCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpNaXJh
Z2VPUy1kZXZlbCBtYWlsaW5nIGxpc3QKTWlyYWdlT1MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5v
cmcKaHR0cDovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9t
aXJhZ2Vvcy1kZXZlbAo=

From mirageos-devel-bounces@lists.xenproject.org Tue Jan 12 15:17:41 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 12 Jan 2016 15:17:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aJ0hR-0001Mx-Er; Tue, 12 Jan 2016 15:17:33 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <djwillia@us.ibm.com>) id 1aJ0hP-0001Ms-Hk
	for mirageos-devel@lists.xenproject.org; Tue, 12 Jan 2016 15:17:31 +0000
Received: from [85.158.137.68] by server-17.bemta-3.messagelabs.com id
	38/B1-02940-A0915965; Tue, 12 Jan 2016 15:17:30 +0000
X-Env-Sender: djwillia@us.ibm.com
X-Msg-Ref: server-6.tower-31.messagelabs.com!1452611848!15384192!1
X-Originating-IP: [129.33.205.208]
X-SpamReason: No, hits=0.1 required=7.0 tests=HTML_30_40,HTML_MESSAGE,
	MSGID_FROM_MTA_HEADER,UNPARSEABLE_RELAY
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 42795 invoked from network); 12 Jan 2016 15:17:29 -0000
Received: from e18.ny.us.ibm.com (HELO e18.ny.us.ibm.com) (129.33.205.208)
	by server-6.tower-31.messagelabs.com with CAMELLIA256-SHA encrypted
	SMTP; 12 Jan 2016 15:17:29 -0000
Received: from localhost
	by e18.ny.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only!
	Violators will be prosecuted
	for <mirageos-devel@lists.xenproject.org> from <djwillia@us.ibm.com>;
	Tue, 12 Jan 2016 10:17:27 -0500
Received: from d01dlp02.pok.ibm.com (9.56.250.167)
	by e18.ny.us.ibm.com (146.89.104.205) with IBM ESMTP SMTP Gateway:
	Authorized Use Only! Violators will be prosecuted; 
	Tue, 12 Jan 2016 10:17:25 -0500
X-IBM-Helo: d01dlp02.pok.ibm.com
X-IBM-MailFrom: djwillia@us.ibm.com
X-IBM-RcptTo: mirageos-devel@lists.xenproject.org
Received: from b01cxnp23032.gho.pok.ibm.com (b01cxnp23032.gho.pok.ibm.com
	[9.57.198.27])
	by d01dlp02.pok.ibm.com (Postfix) with ESMTP id 1E3C96E8045
	for <mirageos-devel@lists.xenproject.org>;
	Tue, 12 Jan 2016 10:17:23 -0500 (EST)
Received: from d01av01.pok.ibm.com (d01av01.pok.ibm.com [9.56.224.215])
	by b01cxnp23032.gho.pok.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id
	u0CFHNAb17170578
	for <mirageos-devel@lists.xenproject.org>; Tue, 12 Jan 2016 15:17:23 GMT
Received: from d01av01.pok.ibm.com (localhost [127.0.0.1])
	by d01av01.pok.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id
	u0CFHNfe002562 for <mirageos-devel@lists.xenproject.org>;
	Tue, 12 Jan 2016 10:17:23 -0500
Received: from d50lp02.ny.us.ibm.com (d50lp02.pok.ibm.com [146.89.104.208])
	by d01av01.pok.ibm.com (8.14.4/8.14.4/NCO v10.0 AVin) with ESMTP id
	u0CFHLhe002351
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK)
	for <mirageos-devel@lists.xenproject.org>;
	Tue, 12 Jan 2016 10:17:22 -0500
Message-Id: <201601121517.u0CFHLhe002351@d01av01.pok.ibm.com>
Received: from /spool/local
	by d50lp02.ny.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use
	Only! Violators will be prosecuted
	for <mirageos-devel@lists.xenproject.org> from <djwillia@us.ibm.com>;
	Tue, 12 Jan 2016 10:17:21 -0500
Received: from smtp.notes.na.collabserv.com (192.155.248.67)
	by d50lp02.ny.us.ibm.com (158.87.18.21) with IBM ESMTP SMTP Gateway:
	Authorized Use Only! Violators will be prosecuted; 
	(version=TLSv1/SSLv3 cipher=AES256-SHA bits=256/256)
	Tue, 12 Jan 2016 10:17:19 -0500
Received: from /spool/local
	by smtp.notes.na.collabserv.com with smtp.notes.na.collabserv.com ESMTP
	for <mirageos-devel@lists.xenproject.org> from <djwillia@us.ibm.com>;
	Tue, 12 Jan 2016 15:17:07 -0000
Received: from us1a3-smtp02.a3.dal06.isc4sb.com (10.106.154.103)
	by smtp.notes.na.collabserv.com (10.106.227.16) with
	smtp.notes.na.collabserv.com ESMTP; Tue, 12 Jan 2016 15:17:04 -0000
Received: from us1a3-mail131.a3.dal06.isc4sb.com ([10.146.45.162])
	by us1a3-smtp02.a3.dal06.isc4sb.com
	with ESMTP id 2016011215175959-296372 ;
	Tue, 12 Jan 2016 15:17:59 +0000 
In-Reply-To: <mailman.14226.1452599890.27640.mirageos-devel@lists.xenproject.org>
To: mirageos-devel@lists.xenproject.org
From: "Daniel J Williams" <djwillia@us.ibm.com>
Date: Tue, 12 Jan 2016 10:17:00 -0500
References: <mailman.14226.1452599890.27640.mirageos-devel@lists.xenproject.org>
X-KeepSent: BCA0FAC2:9AC46590-00257F38:004FBD1D;
 type=4; name=$KeepSent
X-Mailer: IBM Notes Release 9.0.1FP3 SHF226 March 23, 2015
X-LLNOutbound: False
X-Disclaimed: 2663
X-TNEFEvaluated: 1
x-cbid: 16011215-0045-0000-0000-0000030BB4F4
X-IBM-ISS-SpamDetectors: Score=0.415652; BY=0.114741; FL=0; FP=0; FZ=0; HX=0; 
	KW=0; PH=0; SC=0.415652; ST=0; TS=0; UL=0; ISC=
X-IBM-ISS-DetailInfo: BY=3.00004779; HX=3.00000239; KW=3.00000007;
	PH=3.00000004; SC=3.00000131; SDB=6.00644246; UDB=6.00290434;
	UTC=2016-01-12 15:17:06
x-cbparentid: 16011215-5938-0000-0000-0000019BAE84
X-TM-AS-MML: disable
X-Content-Scanned: Fidelis XPS MAILER
Subject: Re: [MirageOS-devel] Compiling C components for mirage-xen
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="===============6521540081912680320=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org


--===============6521540081912680320==
Content-type: multipart/alternative; 
	Boundary="0__=8FBBF5ABDFDC3B8D8f9e8a93df938690918c8FBBF5ABDFDC3B8D"
Content-Disposition: inline


--0__=8FBBF5ABDFDC3B8D8f9e8a93df938690918c8FBBF5ABDFDC3B8D
Content-Transfer-Encoding: quoted-printable
Content-type: text/plain; charset=US-ASCII


> On Mon, Jan 11, 2016 at 9:48 PM, Thomas Leonard <talex5@gmail.com> wrote:
> > On 11 January 2016 at 09:06, Tim Cuthbertson <tim@gfxmonk.net> wrote:
> >> On Mon, Jan 11, 2016 at 4:52 AM, Thomas Leonard <talex5@gmail.com>
wrote:
> >>> On 10 January 2016 at 10:15, Tim Cuthbertson <tim@gfxmonk.net> wrote:
> >>>> On Fri, Jan 8, 2016 at 11:14 PM, Thomas Leonard <talex5@gmail.com>
wrote:
> >>>>> On 8 January 2016 at 11:19, Tim Cuthbertson <tim@gfxmonk.net>
wrote:

> >>>>>>  - I don't really know what the thing I'm doing is. Is mirage-xen
a
> >>>>>> different architecture? A different ABI? Do C libraries need to be
> >>>>>> cross-compiled, or just compiled with particular flags so that
they'll
> >>>>>> work on xen-minios instead of gnu/linux?
> >>>>>
> >>>>> C libraries need to be compiled with different headers and flags
(in
> >>>>> particular, -mno-red-zone). Using libraries compiled for Linux will
> >>>>> often appear to work, but may fail when interrupts occur, so the
build
> >>>>> makes it hard to use them by accident.
> >>>>>
> >>>>> However, OCaml binaries can be shared (ocamlopt doesn't use a red
zone
> >>>>> and the OCaml ABI is the same).
> >>>>>
> >>>>>>  - The existing scripts seem to be pretty ad-hoc - zarith gets
away
> >>>>>> mainly with particular CFLAGS
> >>>>>> (https://github.com/ocaml/opam-repository/blob/master/
> packages/zarith-xen/zarith-xen.1.4/files/mirage-install.sh),
> >>>>>
> >>>>> It's using pkg-config to get the important flags. The others are
> >>>>> optimisations (except -fno-builtin, which is either not needed or
> >>>>> should be supplied by Mini-OS).
> >>>>>
> >>>>>> while gmp looks like a full cross-compilation using `--target`
(and
> >>>>>> then does some other sneaky things).
> >>>>>>
> >>>>>> safepass uses OASIS for its build system, which doesn't seem to
have
> >>>>>> any cross-compilation functionality built in as far as I could
tell.
> >>>>>> Can anyone give me pointers on what I'd need to do to safepass'
build
> >>>>>> scripts to get this working in mirage-xen, or at the least some
> >>>>>> clarification on why it doesn't work as-is and how cross
compilation
> >>>>>> works for C libraries used in mirage-xen?


> > Correct: Mirage on Xen does not use shared libraries. I don't know how
> > to prevent them from being built. The easiest option might be to
> > remove the uses of errno from the library (it doesn't look like the
> > OCaml bindings do anything with it anyway).
>
> The ocaml bindings (bcrypt=5Fstub.c) doesn't, but the C code compiled
> with it (crypt=5Fblowfish.c) does, so I can't just remove it sadly.
>
> So this is a bit ridiculous, but I did manage to get it compiling with
> the following hack in the build script:
>
>   mkdir fake=5Flibc
>   echo '"fake=5Flibc": -traverse' >> =5Ftags
>   touch fake=5Flibc/libc.c
>   gcc -shared -nostdlib -o fake=5Flibc/libc.so fake=5Flibc/libc.c
>
> (and also added -L$PWD/fake=5Flibc to oasis' CCLib field)
>

I'm not sure if this will help, but I thought I'd share my
"workaround" for compiling C files from Mirage components to link
against Solo5(https://github.com/djwillia/solo5/tree/mirage), which
you can think of as a layer like Mini-OS.

The ability to send flags to C programs from OASIS seems a bit limited
to me: I would have liked to specify the cross compiler, but I'm not
sure if that's possible.  I don't really know what the right way to do
this is, but I ended up adding a lot of CFLAGS from the kernel build:

    CCOpt: -ffreestanding -mcmodel=3Dlarge -mno-red-zone -mno-3dnow \
           -std=3Dgnu99 -O2 -Wall -Wextra -Werror -D=5F=5FSOLO5=5F=5F      =
 \
           -fno-PIC -g   -I/home/solo5/solo5/kernel

( see https://github.com/djwillia/mirage-block-solo5/blob/solo5/=5Foasis#L17
)

Then I link against the resulting libmirage=5Fblock=5Fsolo5=5Fstubs.a and
all of the static libraries listed out from e.g., `pkg-config --static
--libs mirage-xen`

Dan

--0__=8FBBF5ABDFDC3B8D8f9e8a93df938690918c8FBBF5ABDFDC3B8D
Content-Transfer-Encoding: quoted-printable
Content-type: text/html; charset=US-ASCII
Content-Disposition: inline

<html><body><p><tt>&nbsp;<br>&gt; On Mon, Jan 11, 2016 at 9:48 PM, Thomas L=
eonard &lt;talex5@gmail.com&gt; wrote:<br>&gt; &gt; On 11 January 2016 at 0=
9:06, Tim Cuthbertson &lt;tim@gfxmonk.net&gt; wrote:<br>&gt; &gt;&gt; On Mo=
n, Jan 11, 2016 at 4:52 AM, Thomas Leonard &lt;talex5@gmail.com&gt; wrote:<=
br>&gt; &gt;&gt;&gt; On 10 January 2016 at 10:15, Tim Cuthbertson &lt;tim@g=
fxmonk.net&gt; wrote:<br>&gt; &gt;&gt;&gt;&gt; On Fri, Jan 8, 2016 at 11:14=
 PM, Thomas Leonard &lt;talex5@gmail.com&gt; wrote:<br>&gt; &gt;&gt;&gt;&gt=
;&gt; On 8 January 2016 at 11:19, Tim Cuthbertson &lt;tim@gfxmonk.net&gt; w=
rote:<br></tt><br><tt>&gt; &gt;&gt;&gt;&gt;&gt;&gt; &nbsp;- I don't really =
know what the thing I'm doing is. Is mirage-xen a<br>&gt; &gt;&gt;&gt;&gt;&=
gt;&gt; different architecture? A different ABI? Do C libraries need to be<=
br>&gt; &gt;&gt;&gt;&gt;&gt;&gt; cross-compiled, or just compiled with part=
icular flags so that they'll<br>&gt; &gt;&gt;&gt;&gt;&gt;&gt; work on xen-m=
inios instead of gnu/linux?<br>&gt; &gt;&gt;&gt;&gt;&gt;<br>&gt; &gt;&gt;&g=
t;&gt;&gt; C libraries need to be compiled with different headers and flags=
 (in<br>&gt; &gt;&gt;&gt;&gt;&gt; particular, -mno-red-zone). Using librari=
es compiled for Linux will<br>&gt; &gt;&gt;&gt;&gt;&gt; often appear to wor=
k, but may fail when interrupts occur, so the build<br>&gt; &gt;&gt;&gt;&gt=
;&gt; makes it hard to use them by accident.<br>&gt; &gt;&gt;&gt;&gt;&gt;<b=
r>&gt; &gt;&gt;&gt;&gt;&gt; However, OCaml binaries can be shared (ocamlopt=
 doesn't use a red zone<br>&gt; &gt;&gt;&gt;&gt;&gt; and the OCaml ABI is t=
he same).<br>&gt; &gt;&gt;&gt;&gt;&gt;<br>&gt; &gt;&gt;&gt;&gt;&gt;&gt; &nb=
sp;- The existing scripts seem to be pretty ad-hoc - zarith gets away<br>&g=
t; &gt;&gt;&gt;&gt;&gt;&gt; mainly with particular CFLAGS<br>&gt; &gt;&gt;&=
gt;&gt;&gt;&gt; (<a href=3D"https://github.com/ocaml/opam-repository/blob/m=
aster/">https://github.com/ocaml/opam-repository/blob/master/</a><br>&gt; p=
ackages/zarith-xen/zarith-xen.1.4/files/mirage-install.sh),<br>&gt; &gt;&gt=
;&gt;&gt;&gt;<br>&gt; &gt;&gt;&gt;&gt;&gt; It's using pkg-config to get the=
 important flags. The others are<br>&gt; &gt;&gt;&gt;&gt;&gt; optimisations=
 (except -fno-builtin, which is either not needed or<br>&gt; &gt;&gt;&gt;&g=
t;&gt; should be supplied by Mini-OS).<br>&gt; &gt;&gt;&gt;&gt;&gt;<br>&gt;=
 &gt;&gt;&gt;&gt;&gt;&gt; while gmp looks like a full cross-compilation usi=
ng `--target` (and<br>&gt; &gt;&gt;&gt;&gt;&gt;&gt; then does some other sn=
eaky things).<br>&gt; &gt;&gt;&gt;&gt;&gt;&gt;<br>&gt; &gt;&gt;&gt;&gt;&gt;=
&gt; safepass uses OASIS for its build system, which doesn't seem to have<b=
r>&gt; &gt;&gt;&gt;&gt;&gt;&gt; any cross-compilation functionality built i=
n as far as I could tell.<br>&gt; &gt;&gt;&gt;&gt;&gt;&gt; Can anyone give =
me pointers on what I'd need to do to safepass' build<br>&gt; &gt;&gt;&gt;&=
gt;&gt;&gt; scripts to get this working in mirage-xen, or at the least some=
<br>&gt; &gt;&gt;&gt;&gt;&gt;&gt; clarification on why it doesn't work as-i=
s and how cross compilation<br>&gt; &gt;&gt;&gt;&gt;&gt;&gt; works for C li=
braries used in mirage-xen?<br></tt><br><tt><br>&gt; &gt; Correct: Mirage o=
n Xen does not use shared libraries. I don't know how<br>&gt; &gt; to preve=
nt them from being built. The easiest option might be to<br>&gt; &gt; remov=
e the uses of errno from the library (it doesn't look like the<br>&gt; &gt;=
 OCaml bindings do anything with it anyway).<br>&gt; <br>&gt; The ocaml bin=
dings (bcrypt=5Fstub.c) doesn't, but the C code compiled<br>&gt; with it (c=
rypt=5Fblowfish.c) does, so I can't just remove it sadly.<br>&gt; <br>&gt; =
So this is a bit ridiculous, but I did manage to get it compiling with<br>&=
gt; the following hack in the build script:<br>&gt; <br>&gt; &nbsp; mkdir f=
ake=5Flibc<br>&gt; &nbsp; echo '&quot;fake=5Flibc&quot;: -traverse' &gt;&gt=
; =5Ftags<br>&gt; &nbsp; touch fake=5Flibc/libc.c<br>&gt; &nbsp; gcc -share=
d -nostdlib -o fake=5Flibc/libc.so fake=5Flibc/libc.c<br>&gt; <br>&gt; (and=
 also added -L$PWD/fake=5Flibc to oasis' CCLib field)<br>&gt; <br><br>I'm n=
ot sure if this will help, but I thought I'd share my</tt><br><tt>&quot;wor=
karound&quot; for compiling C files from Mirage components to link</tt><br>=
<tt>against Solo5(</tt><a href=3D"https://github.com/djwillia/solo5/tree/mi=
rage"><tt>https://github.com/djwillia/solo5/tree/mirage</tt></a><tt>), whic=
h</tt><br><tt>you can think of as a layer like Mini-OS.</tt><br><br><tt>The=
 ability to send flags to C programs from OASIS seems a bit limited</tt><br=
><tt>to me: I would have liked to specify the cross compiler, but I'm not</=
tt><br><tt>sure if that's possible. &nbsp;I don't really know what the righ=
t way to do</tt><br><tt>this is, but I ended up adding a lot of CFLAGS from=
 the kernel build:</tt><br><br><tt>&nbsp; &nbsp; CCOpt: -ffreestanding -mcm=
odel=3Dlarge -mno-red-zone -mno-3dnow \</tt><br><tt>&nbsp; &nbsp; &nbsp; &n=
bsp; &nbsp; &nbsp;-std=3Dgnu99 -O2 -Wall -Wextra -Werror -D=5F=5FSOLO5=5F=
=5F &nbsp; &nbsp; &nbsp; \</tt><br><tt>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &=
nbsp;-fno-PIC -g &nbsp; -I/home/solo5/solo5/kernel</tt><br><br><tt>( see </=
tt><a href=3D"https://github.com/djwillia/mirage-block-solo5/blob/solo5/=5F=
oasis#L17"><tt>https://github.com/djwillia/mirage-block-solo5/blob/solo5/=
=5Foasis#L17</tt></a><tt>&nbsp;)</tt><br><br><tt>Then I link against the re=
sulting libmirage=5Fblock=5Fsolo5=5Fstubs.a and</tt><br><tt>all of the stat=
ic libraries listed out from e.g., `pkg-config --static</tt><br><tt>--libs =
mirage-xen`</tt><br><br><tt>Dan</tt><BR>
</body></html>

--0__=8FBBF5ABDFDC3B8D8f9e8a93df938690918c8FBBF5ABDFDC3B8D--



--===============6521540081912680320==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============6521540081912680320==--



From mirageos-devel-bounces@lists.xenproject.org Tue Jan 12 15:17:41 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 12 Jan 2016 15:17:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aJ0hR-0001Mx-Er; Tue, 12 Jan 2016 15:17:33 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <djwillia@us.ibm.com>) id 1aJ0hP-0001Ms-Hk
	for mirageos-devel@lists.xenproject.org; Tue, 12 Jan 2016 15:17:31 +0000
Received: from [85.158.137.68] by server-17.bemta-3.messagelabs.com id
	38/B1-02940-A0915965; Tue, 12 Jan 2016 15:17:30 +0000
X-Env-Sender: djwillia@us.ibm.com
X-Msg-Ref: server-6.tower-31.messagelabs.com!1452611848!15384192!1
X-Originating-IP: [129.33.205.208]
X-SpamReason: No, hits=0.1 required=7.0 tests=HTML_30_40,HTML_MESSAGE,
	MSGID_FROM_MTA_HEADER,UNPARSEABLE_RELAY
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 42795 invoked from network); 12 Jan 2016 15:17:29 -0000
Received: from e18.ny.us.ibm.com (HELO e18.ny.us.ibm.com) (129.33.205.208)
	by server-6.tower-31.messagelabs.com with CAMELLIA256-SHA encrypted
	SMTP; 12 Jan 2016 15:17:29 -0000
Received: from localhost
	by e18.ny.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only!
	Violators will be prosecuted
	for <mirageos-devel@lists.xenproject.org> from <djwillia@us.ibm.com>;
	Tue, 12 Jan 2016 10:17:27 -0500
Received: from d01dlp02.pok.ibm.com (9.56.250.167)
	by e18.ny.us.ibm.com (146.89.104.205) with IBM ESMTP SMTP Gateway:
	Authorized Use Only! Violators will be prosecuted; 
	Tue, 12 Jan 2016 10:17:25 -0500
X-IBM-Helo: d01dlp02.pok.ibm.com
X-IBM-MailFrom: djwillia@us.ibm.com
X-IBM-RcptTo: mirageos-devel@lists.xenproject.org
Received: from b01cxnp23032.gho.pok.ibm.com (b01cxnp23032.gho.pok.ibm.com
	[9.57.198.27])
	by d01dlp02.pok.ibm.com (Postfix) with ESMTP id 1E3C96E8045
	for <mirageos-devel@lists.xenproject.org>;
	Tue, 12 Jan 2016 10:17:23 -0500 (EST)
Received: from d01av01.pok.ibm.com (d01av01.pok.ibm.com [9.56.224.215])
	by b01cxnp23032.gho.pok.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id
	u0CFHNAb17170578
	for <mirageos-devel@lists.xenproject.org>; Tue, 12 Jan 2016 15:17:23 GMT
Received: from d01av01.pok.ibm.com (localhost [127.0.0.1])
	by d01av01.pok.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id
	u0CFHNfe002562 for <mirageos-devel@lists.xenproject.org>;
	Tue, 12 Jan 2016 10:17:23 -0500
Received: from d50lp02.ny.us.ibm.com (d50lp02.pok.ibm.com [146.89.104.208])
	by d01av01.pok.ibm.com (8.14.4/8.14.4/NCO v10.0 AVin) with ESMTP id
	u0CFHLhe002351
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK)
	for <mirageos-devel@lists.xenproject.org>;
	Tue, 12 Jan 2016 10:17:22 -0500
Message-Id: <201601121517.u0CFHLhe002351@d01av01.pok.ibm.com>
Received: from /spool/local
	by d50lp02.ny.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use
	Only! Violators will be prosecuted
	for <mirageos-devel@lists.xenproject.org> from <djwillia@us.ibm.com>;
	Tue, 12 Jan 2016 10:17:21 -0500
Received: from smtp.notes.na.collabserv.com (192.155.248.67)
	by d50lp02.ny.us.ibm.com (158.87.18.21) with IBM ESMTP SMTP Gateway:
	Authorized Use Only! Violators will be prosecuted; 
	(version=TLSv1/SSLv3 cipher=AES256-SHA bits=256/256)
	Tue, 12 Jan 2016 10:17:19 -0500
Received: from /spool/local
	by smtp.notes.na.collabserv.com with smtp.notes.na.collabserv.com ESMTP
	for <mirageos-devel@lists.xenproject.org> from <djwillia@us.ibm.com>;
	Tue, 12 Jan 2016 15:17:07 -0000
Received: from us1a3-smtp02.a3.dal06.isc4sb.com (10.106.154.103)
	by smtp.notes.na.collabserv.com (10.106.227.16) with
	smtp.notes.na.collabserv.com ESMTP; Tue, 12 Jan 2016 15:17:04 -0000
Received: from us1a3-mail131.a3.dal06.isc4sb.com ([10.146.45.162])
	by us1a3-smtp02.a3.dal06.isc4sb.com
	with ESMTP id 2016011215175959-296372 ;
	Tue, 12 Jan 2016 15:17:59 +0000 
In-Reply-To: <mailman.14226.1452599890.27640.mirageos-devel@lists.xenproject.org>
To: mirageos-devel@lists.xenproject.org
From: "Daniel J Williams" <djwillia@us.ibm.com>
Date: Tue, 12 Jan 2016 10:17:00 -0500
References: <mailman.14226.1452599890.27640.mirageos-devel@lists.xenproject.org>
X-KeepSent: BCA0FAC2:9AC46590-00257F38:004FBD1D;
 type=4; name=$KeepSent
X-Mailer: IBM Notes Release 9.0.1FP3 SHF226 March 23, 2015
X-LLNOutbound: False
X-Disclaimed: 2663
X-TNEFEvaluated: 1
x-cbid: 16011215-0045-0000-0000-0000030BB4F4
X-IBM-ISS-SpamDetectors: Score=0.415652; BY=0.114741; FL=0; FP=0; FZ=0; HX=0; 
	KW=0; PH=0; SC=0.415652; ST=0; TS=0; UL=0; ISC=
X-IBM-ISS-DetailInfo: BY=3.00004779; HX=3.00000239; KW=3.00000007;
	PH=3.00000004; SC=3.00000131; SDB=6.00644246; UDB=6.00290434;
	UTC=2016-01-12 15:17:06
x-cbparentid: 16011215-5938-0000-0000-0000019BAE84
X-TM-AS-MML: disable
X-Content-Scanned: Fidelis XPS MAILER
Subject: Re: [MirageOS-devel] Compiling C components for mirage-xen
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="===============6521540081912680320=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org


--===============6521540081912680320==
Content-type: multipart/alternative; 
	Boundary="0__=8FBBF5ABDFDC3B8D8f9e8a93df938690918c8FBBF5ABDFDC3B8D"
Content-Disposition: inline


--0__=8FBBF5ABDFDC3B8D8f9e8a93df938690918c8FBBF5ABDFDC3B8D
Content-Transfer-Encoding: quoted-printable
Content-type: text/plain; charset=US-ASCII


> On Mon, Jan 11, 2016 at 9:48 PM, Thomas Leonard <talex5@gmail.com> wrote:
> > On 11 January 2016 at 09:06, Tim Cuthbertson <tim@gfxmonk.net> wrote:
> >> On Mon, Jan 11, 2016 at 4:52 AM, Thomas Leonard <talex5@gmail.com>
wrote:
> >>> On 10 January 2016 at 10:15, Tim Cuthbertson <tim@gfxmonk.net> wrote:
> >>>> On Fri, Jan 8, 2016 at 11:14 PM, Thomas Leonard <talex5@gmail.com>
wrote:
> >>>>> On 8 January 2016 at 11:19, Tim Cuthbertson <tim@gfxmonk.net>
wrote:

> >>>>>>  - I don't really know what the thing I'm doing is. Is mirage-xen
a
> >>>>>> different architecture? A different ABI? Do C libraries need to be
> >>>>>> cross-compiled, or just compiled with particular flags so that
they'll
> >>>>>> work on xen-minios instead of gnu/linux?
> >>>>>
> >>>>> C libraries need to be compiled with different headers and flags
(in
> >>>>> particular, -mno-red-zone). Using libraries compiled for Linux will
> >>>>> often appear to work, but may fail when interrupts occur, so the
build
> >>>>> makes it hard to use them by accident.
> >>>>>
> >>>>> However, OCaml binaries can be shared (ocamlopt doesn't use a red
zone
> >>>>> and the OCaml ABI is the same).
> >>>>>
> >>>>>>  - The existing scripts seem to be pretty ad-hoc - zarith gets
away
> >>>>>> mainly with particular CFLAGS
> >>>>>> (https://github.com/ocaml/opam-repository/blob/master/
> packages/zarith-xen/zarith-xen.1.4/files/mirage-install.sh),
> >>>>>
> >>>>> It's using pkg-config to get the important flags. The others are
> >>>>> optimisations (except -fno-builtin, which is either not needed or
> >>>>> should be supplied by Mini-OS).
> >>>>>
> >>>>>> while gmp looks like a full cross-compilation using `--target`
(and
> >>>>>> then does some other sneaky things).
> >>>>>>
> >>>>>> safepass uses OASIS for its build system, which doesn't seem to
have
> >>>>>> any cross-compilation functionality built in as far as I could
tell.
> >>>>>> Can anyone give me pointers on what I'd need to do to safepass'
build
> >>>>>> scripts to get this working in mirage-xen, or at the least some
> >>>>>> clarification on why it doesn't work as-is and how cross
compilation
> >>>>>> works for C libraries used in mirage-xen?


> > Correct: Mirage on Xen does not use shared libraries. I don't know how
> > to prevent them from being built. The easiest option might be to
> > remove the uses of errno from the library (it doesn't look like the
> > OCaml bindings do anything with it anyway).
>
> The ocaml bindings (bcrypt=5Fstub.c) doesn't, but the C code compiled
> with it (crypt=5Fblowfish.c) does, so I can't just remove it sadly.
>
> So this is a bit ridiculous, but I did manage to get it compiling with
> the following hack in the build script:
>
>   mkdir fake=5Flibc
>   echo '"fake=5Flibc": -traverse' >> =5Ftags
>   touch fake=5Flibc/libc.c
>   gcc -shared -nostdlib -o fake=5Flibc/libc.so fake=5Flibc/libc.c
>
> (and also added -L$PWD/fake=5Flibc to oasis' CCLib field)
>

I'm not sure if this will help, but I thought I'd share my
"workaround" for compiling C files from Mirage components to link
against Solo5(https://github.com/djwillia/solo5/tree/mirage), which
you can think of as a layer like Mini-OS.

The ability to send flags to C programs from OASIS seems a bit limited
to me: I would have liked to specify the cross compiler, but I'm not
sure if that's possible.  I don't really know what the right way to do
this is, but I ended up adding a lot of CFLAGS from the kernel build:

    CCOpt: -ffreestanding -mcmodel=3Dlarge -mno-red-zone -mno-3dnow \
           -std=3Dgnu99 -O2 -Wall -Wextra -Werror -D=5F=5FSOLO5=5F=5F      =
 \
           -fno-PIC -g   -I/home/solo5/solo5/kernel

( see https://github.com/djwillia/mirage-block-solo5/blob/solo5/=5Foasis#L17
)

Then I link against the resulting libmirage=5Fblock=5Fsolo5=5Fstubs.a and
all of the static libraries listed out from e.g., `pkg-config --static
--libs mirage-xen`

Dan

--0__=8FBBF5ABDFDC3B8D8f9e8a93df938690918c8FBBF5ABDFDC3B8D
Content-Transfer-Encoding: quoted-printable
Content-type: text/html; charset=US-ASCII
Content-Disposition: inline

<html><body><p><tt>&nbsp;<br>&gt; On Mon, Jan 11, 2016 at 9:48 PM, Thomas L=
eonard &lt;talex5@gmail.com&gt; wrote:<br>&gt; &gt; On 11 January 2016 at 0=
9:06, Tim Cuthbertson &lt;tim@gfxmonk.net&gt; wrote:<br>&gt; &gt;&gt; On Mo=
n, Jan 11, 2016 at 4:52 AM, Thomas Leonard &lt;talex5@gmail.com&gt; wrote:<=
br>&gt; &gt;&gt;&gt; On 10 January 2016 at 10:15, Tim Cuthbertson &lt;tim@g=
fxmonk.net&gt; wrote:<br>&gt; &gt;&gt;&gt;&gt; On Fri, Jan 8, 2016 at 11:14=
 PM, Thomas Leonard &lt;talex5@gmail.com&gt; wrote:<br>&gt; &gt;&gt;&gt;&gt=
;&gt; On 8 January 2016 at 11:19, Tim Cuthbertson &lt;tim@gfxmonk.net&gt; w=
rote:<br></tt><br><tt>&gt; &gt;&gt;&gt;&gt;&gt;&gt; &nbsp;- I don't really =
know what the thing I'm doing is. Is mirage-xen a<br>&gt; &gt;&gt;&gt;&gt;&=
gt;&gt; different architecture? A different ABI? Do C libraries need to be<=
br>&gt; &gt;&gt;&gt;&gt;&gt;&gt; cross-compiled, or just compiled with part=
icular flags so that they'll<br>&gt; &gt;&gt;&gt;&gt;&gt;&gt; work on xen-m=
inios instead of gnu/linux?<br>&gt; &gt;&gt;&gt;&gt;&gt;<br>&gt; &gt;&gt;&g=
t;&gt;&gt; C libraries need to be compiled with different headers and flags=
 (in<br>&gt; &gt;&gt;&gt;&gt;&gt; particular, -mno-red-zone). Using librari=
es compiled for Linux will<br>&gt; &gt;&gt;&gt;&gt;&gt; often appear to wor=
k, but may fail when interrupts occur, so the build<br>&gt; &gt;&gt;&gt;&gt=
;&gt; makes it hard to use them by accident.<br>&gt; &gt;&gt;&gt;&gt;&gt;<b=
r>&gt; &gt;&gt;&gt;&gt;&gt; However, OCaml binaries can be shared (ocamlopt=
 doesn't use a red zone<br>&gt; &gt;&gt;&gt;&gt;&gt; and the OCaml ABI is t=
he same).<br>&gt; &gt;&gt;&gt;&gt;&gt;<br>&gt; &gt;&gt;&gt;&gt;&gt;&gt; &nb=
sp;- The existing scripts seem to be pretty ad-hoc - zarith gets away<br>&g=
t; &gt;&gt;&gt;&gt;&gt;&gt; mainly with particular CFLAGS<br>&gt; &gt;&gt;&=
gt;&gt;&gt;&gt; (<a href=3D"https://github.com/ocaml/opam-repository/blob/m=
aster/">https://github.com/ocaml/opam-repository/blob/master/</a><br>&gt; p=
ackages/zarith-xen/zarith-xen.1.4/files/mirage-install.sh),<br>&gt; &gt;&gt=
;&gt;&gt;&gt;<br>&gt; &gt;&gt;&gt;&gt;&gt; It's using pkg-config to get the=
 important flags. The others are<br>&gt; &gt;&gt;&gt;&gt;&gt; optimisations=
 (except -fno-builtin, which is either not needed or<br>&gt; &gt;&gt;&gt;&g=
t;&gt; should be supplied by Mini-OS).<br>&gt; &gt;&gt;&gt;&gt;&gt;<br>&gt;=
 &gt;&gt;&gt;&gt;&gt;&gt; while gmp looks like a full cross-compilation usi=
ng `--target` (and<br>&gt; &gt;&gt;&gt;&gt;&gt;&gt; then does some other sn=
eaky things).<br>&gt; &gt;&gt;&gt;&gt;&gt;&gt;<br>&gt; &gt;&gt;&gt;&gt;&gt;=
&gt; safepass uses OASIS for its build system, which doesn't seem to have<b=
r>&gt; &gt;&gt;&gt;&gt;&gt;&gt; any cross-compilation functionality built i=
n as far as I could tell.<br>&gt; &gt;&gt;&gt;&gt;&gt;&gt; Can anyone give =
me pointers on what I'd need to do to safepass' build<br>&gt; &gt;&gt;&gt;&=
gt;&gt;&gt; scripts to get this working in mirage-xen, or at the least some=
<br>&gt; &gt;&gt;&gt;&gt;&gt;&gt; clarification on why it doesn't work as-i=
s and how cross compilation<br>&gt; &gt;&gt;&gt;&gt;&gt;&gt; works for C li=
braries used in mirage-xen?<br></tt><br><tt><br>&gt; &gt; Correct: Mirage o=
n Xen does not use shared libraries. I don't know how<br>&gt; &gt; to preve=
nt them from being built. The easiest option might be to<br>&gt; &gt; remov=
e the uses of errno from the library (it doesn't look like the<br>&gt; &gt;=
 OCaml bindings do anything with it anyway).<br>&gt; <br>&gt; The ocaml bin=
dings (bcrypt=5Fstub.c) doesn't, but the C code compiled<br>&gt; with it (c=
rypt=5Fblowfish.c) does, so I can't just remove it sadly.<br>&gt; <br>&gt; =
So this is a bit ridiculous, but I did manage to get it compiling with<br>&=
gt; the following hack in the build script:<br>&gt; <br>&gt; &nbsp; mkdir f=
ake=5Flibc<br>&gt; &nbsp; echo '&quot;fake=5Flibc&quot;: -traverse' &gt;&gt=
; =5Ftags<br>&gt; &nbsp; touch fake=5Flibc/libc.c<br>&gt; &nbsp; gcc -share=
d -nostdlib -o fake=5Flibc/libc.so fake=5Flibc/libc.c<br>&gt; <br>&gt; (and=
 also added -L$PWD/fake=5Flibc to oasis' CCLib field)<br>&gt; <br><br>I'm n=
ot sure if this will help, but I thought I'd share my</tt><br><tt>&quot;wor=
karound&quot; for compiling C files from Mirage components to link</tt><br>=
<tt>against Solo5(</tt><a href=3D"https://github.com/djwillia/solo5/tree/mi=
rage"><tt>https://github.com/djwillia/solo5/tree/mirage</tt></a><tt>), whic=
h</tt><br><tt>you can think of as a layer like Mini-OS.</tt><br><br><tt>The=
 ability to send flags to C programs from OASIS seems a bit limited</tt><br=
><tt>to me: I would have liked to specify the cross compiler, but I'm not</=
tt><br><tt>sure if that's possible. &nbsp;I don't really know what the righ=
t way to do</tt><br><tt>this is, but I ended up adding a lot of CFLAGS from=
 the kernel build:</tt><br><br><tt>&nbsp; &nbsp; CCOpt: -ffreestanding -mcm=
odel=3Dlarge -mno-red-zone -mno-3dnow \</tt><br><tt>&nbsp; &nbsp; &nbsp; &n=
bsp; &nbsp; &nbsp;-std=3Dgnu99 -O2 -Wall -Wextra -Werror -D=5F=5FSOLO5=5F=
=5F &nbsp; &nbsp; &nbsp; \</tt><br><tt>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &=
nbsp;-fno-PIC -g &nbsp; -I/home/solo5/solo5/kernel</tt><br><br><tt>( see </=
tt><a href=3D"https://github.com/djwillia/mirage-block-solo5/blob/solo5/=5F=
oasis#L17"><tt>https://github.com/djwillia/mirage-block-solo5/blob/solo5/=
=5Foasis#L17</tt></a><tt>&nbsp;)</tt><br><br><tt>Then I link against the re=
sulting libmirage=5Fblock=5Fsolo5=5Fstubs.a and</tt><br><tt>all of the stat=
ic libraries listed out from e.g., `pkg-config --static</tt><br><tt>--libs =
mirage-xen`</tt><br><br><tt>Dan</tt><BR>
</body></html>

--0__=8FBBF5ABDFDC3B8D8f9e8a93df938690918c8FBBF5ABDFDC3B8D--



--===============6521540081912680320==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============6521540081912680320==--



From mirageos-devel-bounces@lists.xenproject.org Wed Jan 13 15:54:08 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 13 Jan 2016 15:54:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aJNkB-0004N9-Hh; Wed, 13 Jan 2016 15:53:55 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <amc79@cam.ac.uk>) id 1aJNkA-0004My-45
	for mirageos-devel@lists.xenproject.org; Wed, 13 Jan 2016 15:53:54 +0000
Received: from [85.158.143.35] by server-1.bemta-4.messagelabs.com id
	EA/E2-09708-11376965; Wed, 13 Jan 2016 15:53:53 +0000
X-Env-Sender: amc79@cam.ac.uk
X-Msg-Ref: server-9.tower-21.messagelabs.com!1452700431!9901411!1
X-Originating-IP: [131.111.8.132]
X-SpamReason: No, hits=0.3 required=7.0 tests=MAILTO_TO_SPAM_ADDR
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 20823 invoked from network); 13 Jan 2016 15:53:52 -0000
Received: from ppsw-32.csi.cam.ac.uk (HELO ppsw-32.csi.cam.ac.uk)
	(131.111.8.132)
	by server-9.tower-21.messagelabs.com with DHE-RSA-AES256-GCM-SHA384
	encrypted SMTP; 13 Jan 2016 15:53:52 -0000
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: http://www.cam.ac.uk/cs/email/scanner/
Received: from c-67-164-98-166.hsd1.ca.comcast.net ([67.164.98.166]:62325
	helo=[10.0.0.17])
	by ppsw-32.csi.cam.ac.uk (smtp.hermes.cam.ac.uk [131.111.8.156]:587)
	with esmtpsa (PLAIN:amc79) (TLSv1:ECDHE-RSA-AES256-SHA:256)
	id 1aJNk6-000l9P-1f (Exim 4.86_36-e07b163) for
	mirageos-devel@lists.xenproject.org
	(return-path <amc79@cam.ac.uk>); Wed, 13 Jan 2016 15:53:50 +0000
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Amir Chaudhry <amc79@cam.ac.uk>
In-Reply-To: <B8284757-C894-4FBC-AC38-C18990608AC0@cam.ac.uk>
Date: Wed, 13 Jan 2016 07:53:47 -0800
Message-Id: <530E7F74-0F62-4561-8EEC-692198366471@cam.ac.uk>
References: <B8284757-C894-4FBC-AC38-C18990608AC0@cam.ac.uk>
To: mirageos-devel <mirageos-devel@lists.xenproject.org>
X-Mailer: Apple Mail (2.2104)
Subject: Re: [MirageOS-devel] MirageOS fortnightly call - Wednesday 13th Jan
	at 4pm GMT
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

VGhlIGxpbmsgZm9yIHRoZSBjYWxsIGlzIGh0dHBzOi8vbWVldC5qaXQuc2kvTWlyYWdlT1MKCj4g
T24gMTEgSmFuIDIwMTYsIGF0IDIwOjAxLCBBbWlyIENoYXVkaHJ5IDxhbWM3OUBjYW0uYWMudWs+
IHdyb3RlOgo+IAo+IEhpIGZvbGtzLAo+IAo+IFRoZSBmaXJzdCBNaXJhZ2VPUyBjYWxsIG9mIDIw
MTYgd2lsbCB0YWtlIHBsYWNlIG9uIFdlZG5lc2RheSBhZnRlcm5vb24gYXQgNHBtIEdNVCBhbmQg
aXMgb3BlbiB0byBhbGwuCj4gCj4gSeKAmWxsIHBvc3QgdGhlIGxpbmsgc2hvcnRseSBiZWZvcmUg
dGhlIGNhbGwsIGJvdGggaGVyZSBhbmQgYWxzbyBpbiB0aGUgSVJDIGNoYW5uZWwgKCNtaXJhZ2Ug
b24gZnJlZW5vZGUpIFtoaW50OiBpdOKAmWxsIGJlIHRoZSBzYW1lIGFzIGxhc3QgdGltZV0KPiAK
PiBUaGUgYWdlbmRhIGlzIGN1cnJlbnRseSBhcyBmb2xsb3dzOgo+IAo+IOKAoiBRdWFsaXR5IGFu
ZCBUZXN0Cj4g4oCiIEZ1bmN0b3JpYSByZWxlYXNlIHN0YXR1cwo+IOKAoiBNaXJhZ2VPUyBoYWNr
YXRob24gc3RhdHVzCj4g4oCiIExJQ0VOU0UgZmlsZXMKPiDigKIgTWlyYWdlT1MgdGFsa3MgYXQg
U0NBTEV4MTQKPiDigKIgSXJtaW4gYmxvZyBwb3N0cz8KPiAKPiBQbGVhc2UgZG8gYWRkIGl0ZW1z
IHZpYSBodHRwczovL2dpdGh1Yi5jb20vbWlyYWdlL21pcmFnZS13d3cvd2lraS9DYWxsLUFnZW5k
YQo+IAo+IEpvaW4gdXMgYXQgNHBtIEdNVCBvbiBXZWRuZXNkYXkhCj4gCj4gQmVzdCB3aXNoZXMs
Cj4gQW1pcgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
Ck1pcmFnZU9TLWRldmVsIG1haWxpbmcgbGlzdApNaXJhZ2VPUy1kZXZlbEBsaXN0cy54ZW5wcm9q
ZWN0Lm9yZwpodHRwOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3Rp
bmZvL21pcmFnZW9zLWRldmVsCg==

From mirageos-devel-bounces@lists.xenproject.org Wed Jan 13 15:54:08 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 13 Jan 2016 15:54:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aJNkB-0004N9-Hh; Wed, 13 Jan 2016 15:53:55 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <amc79@cam.ac.uk>) id 1aJNkA-0004My-45
	for mirageos-devel@lists.xenproject.org; Wed, 13 Jan 2016 15:53:54 +0000
Received: from [85.158.143.35] by server-1.bemta-4.messagelabs.com id
	EA/E2-09708-11376965; Wed, 13 Jan 2016 15:53:53 +0000
X-Env-Sender: amc79@cam.ac.uk
X-Msg-Ref: server-9.tower-21.messagelabs.com!1452700431!9901411!1
X-Originating-IP: [131.111.8.132]
X-SpamReason: No, hits=0.3 required=7.0 tests=MAILTO_TO_SPAM_ADDR
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 20823 invoked from network); 13 Jan 2016 15:53:52 -0000
Received: from ppsw-32.csi.cam.ac.uk (HELO ppsw-32.csi.cam.ac.uk)
	(131.111.8.132)
	by server-9.tower-21.messagelabs.com with DHE-RSA-AES256-GCM-SHA384
	encrypted SMTP; 13 Jan 2016 15:53:52 -0000
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: http://www.cam.ac.uk/cs/email/scanner/
Received: from c-67-164-98-166.hsd1.ca.comcast.net ([67.164.98.166]:62325
	helo=[10.0.0.17])
	by ppsw-32.csi.cam.ac.uk (smtp.hermes.cam.ac.uk [131.111.8.156]:587)
	with esmtpsa (PLAIN:amc79) (TLSv1:ECDHE-RSA-AES256-SHA:256)
	id 1aJNk6-000l9P-1f (Exim 4.86_36-e07b163) for
	mirageos-devel@lists.xenproject.org
	(return-path <amc79@cam.ac.uk>); Wed, 13 Jan 2016 15:53:50 +0000
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Amir Chaudhry <amc79@cam.ac.uk>
In-Reply-To: <B8284757-C894-4FBC-AC38-C18990608AC0@cam.ac.uk>
Date: Wed, 13 Jan 2016 07:53:47 -0800
Message-Id: <530E7F74-0F62-4561-8EEC-692198366471@cam.ac.uk>
References: <B8284757-C894-4FBC-AC38-C18990608AC0@cam.ac.uk>
To: mirageos-devel <mirageos-devel@lists.xenproject.org>
X-Mailer: Apple Mail (2.2104)
Subject: Re: [MirageOS-devel] MirageOS fortnightly call - Wednesday 13th Jan
	at 4pm GMT
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

VGhlIGxpbmsgZm9yIHRoZSBjYWxsIGlzIGh0dHBzOi8vbWVldC5qaXQuc2kvTWlyYWdlT1MKCj4g
T24gMTEgSmFuIDIwMTYsIGF0IDIwOjAxLCBBbWlyIENoYXVkaHJ5IDxhbWM3OUBjYW0uYWMudWs+
IHdyb3RlOgo+IAo+IEhpIGZvbGtzLAo+IAo+IFRoZSBmaXJzdCBNaXJhZ2VPUyBjYWxsIG9mIDIw
MTYgd2lsbCB0YWtlIHBsYWNlIG9uIFdlZG5lc2RheSBhZnRlcm5vb24gYXQgNHBtIEdNVCBhbmQg
aXMgb3BlbiB0byBhbGwuCj4gCj4gSeKAmWxsIHBvc3QgdGhlIGxpbmsgc2hvcnRseSBiZWZvcmUg
dGhlIGNhbGwsIGJvdGggaGVyZSBhbmQgYWxzbyBpbiB0aGUgSVJDIGNoYW5uZWwgKCNtaXJhZ2Ug
b24gZnJlZW5vZGUpIFtoaW50OiBpdOKAmWxsIGJlIHRoZSBzYW1lIGFzIGxhc3QgdGltZV0KPiAK
PiBUaGUgYWdlbmRhIGlzIGN1cnJlbnRseSBhcyBmb2xsb3dzOgo+IAo+IOKAoiBRdWFsaXR5IGFu
ZCBUZXN0Cj4g4oCiIEZ1bmN0b3JpYSByZWxlYXNlIHN0YXR1cwo+IOKAoiBNaXJhZ2VPUyBoYWNr
YXRob24gc3RhdHVzCj4g4oCiIExJQ0VOU0UgZmlsZXMKPiDigKIgTWlyYWdlT1MgdGFsa3MgYXQg
U0NBTEV4MTQKPiDigKIgSXJtaW4gYmxvZyBwb3N0cz8KPiAKPiBQbGVhc2UgZG8gYWRkIGl0ZW1z
IHZpYSBodHRwczovL2dpdGh1Yi5jb20vbWlyYWdlL21pcmFnZS13d3cvd2lraS9DYWxsLUFnZW5k
YQo+IAo+IEpvaW4gdXMgYXQgNHBtIEdNVCBvbiBXZWRuZXNkYXkhCj4gCj4gQmVzdCB3aXNoZXMs
Cj4gQW1pcgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
Ck1pcmFnZU9TLWRldmVsIG1haWxpbmcgbGlzdApNaXJhZ2VPUy1kZXZlbEBsaXN0cy54ZW5wcm9q
ZWN0Lm9yZwpodHRwOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3Rp
bmZvL21pcmFnZW9zLWRldmVsCg==

From mirageos-devel-bounces@lists.xenproject.org Wed Jan 13 16:38:52 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 13 Jan 2016 16:38:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aJORd-0007rl-9i; Wed, 13 Jan 2016 16:38:49 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <lars.kurth.xen@gmail.com>) id 1aJORb-0007rW-47
	for mirageos-devel@lists.xenproject.org; Wed, 13 Jan 2016 16:38:47 +0000
Received: from [85.158.139.211] by server-11.bemta-5.messagelabs.com id
	9F/1D-24494-69D76965; Wed, 13 Jan 2016 16:38:46 +0000
X-Env-Sender: lars.kurth.xen@gmail.com
X-Msg-Ref: server-15.tower-206.messagelabs.com!1452703125!15389139!1
X-Originating-IP: [74.125.82.43]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 21382 invoked from network); 13 Jan 2016 16:38:45 -0000
Received: from mail-wm0-f43.google.com (HELO mail-wm0-f43.google.com)
	(74.125.82.43)
	by server-15.tower-206.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 13 Jan 2016 16:38:45 -0000
Received: by mail-wm0-f43.google.com with SMTP id b14so381110503wmb.1
	for <mirageos-devel@lists.xenproject.org>;
	Wed, 13 Jan 2016 08:38:45 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:content-type:content-transfer-encoding:subject:message-id:date
	:to:mime-version;
	bh=hhUbijkJDoHQCoETkzlECerimhMhGQcBzVcDm7ZImgs=;
	b=aJc3uZU79z/5MhnOvrKu7Y6tbRM9kKkNnyG+prKCNS4mbG4ZoeHf0K1D2LMtUUx3mk
	LCRogbfg/HEK/akfgxIs5187wl1+xCcS6feYxJh2vM6llhNH6nX/UmdMPg5cI/lg2GnB
	FTDvl07r2Y/c4I95uasxHxMzgX82RVAEMbat/wesk8gbsWE4gsIgFxrXuq3j0QUgLCiv
	7QKZp/xOiiWG2ymC5c9s5aJ/ap5Tmas6NKF4wS4bGhi07UkMUioOtnRg02g3l0vCAA1o
	SsXVAiQvOokVe6YVDcrMpLBrcc1y3MIglddXbjN6PTyVH3fvHfAouhDzlU0Yy9iv4Y8q
	HYLA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:from:content-type:content-transfer-encoding
	:subject:message-id:date:to:mime-version;
	bh=hhUbijkJDoHQCoETkzlECerimhMhGQcBzVcDm7ZImgs=;
	b=ZgCZqd6mplqO+65OzSRxpQNgcRQ1DTJpUTcGjbXdZJwSed4YUSFPC1T1KzSwk+0S7l
	EuCmfuYJwEApKYhgXilxGi/pTkKueu/Rarub/E9lubSYZnsNWlvswIBs8fPz0+qmYW/O
	PuM95bIGjUs00ROP8n0Ji9hZTNKjHoauwsMvqo5C8hJkLMd4FDaUMTa7sNog+hwyTAFN
	i9BPWU9kniIq45lWXzcaQBCjjLXcvC/47Ppjg9r6ybWJuHi5ewixM3gWBiyhsAGpaJbC
	zAy9bovDl2SMjgBu3hlwXlT2lxtE6RLadVCcSv3dvw3wWIn+ynG7JV8hrG43N8NmmAm7
	fikg==
X-Gm-Message-State: ALoCoQnI/lRZEe7SVPAaIptGJRPd7QzkM/xQcqotlY/gkKN06P165zotDLP2ngBTyp4sE5wdahfG+s47b+wH9TNv8itLWfFdYQ==
X-Received: by 10.28.145.204 with SMTP id t195mr27715846wmd.91.1452703125491; 
	Wed, 13 Jan 2016 08:38:45 -0800 (PST)
Received: from [192.168.0.12] (5ec0a0ad.skybroadband.com. [94.192.160.173])
	by smtp.gmail.com with ESMTPSA id
	193sm22947246wmg.16.2016.01.13.08.38.44
	for <mirageos-devel@lists.xenproject.org>
	(version=TLSv1/SSLv3 cipher=OTHER);
	Wed, 13 Jan 2016 08:38:44 -0800 (PST)
From: Lars Kurth <lars.kurth.xen@gmail.com>
Message-Id: <5649DC2E-8FD1-43D3-8DCD-65AE3441DC17@gmail.com>
Date: Wed, 13 Jan 2016 16:38:44 +0000
To: mirageos-devel <mirageos-devel@lists.xenproject.org>
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
X-Mailer: Apple Mail (2.2104)
Subject: [MirageOS-devel] Xen Project Hackathon, Cambridge UK,
	Apr 18-19 - registration, hotels and other information
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

Xen API mailing list <xen-api@lists.xen.org>Hi all,
I just put together the booking page for the next Hackathon. See http://wiki.xenproject.org/wiki/Hackathon/April2016 for more information.

* If you are a maintainer or otherwise a core member of the community, just add yourself to the Confirmed Attendees section stating your name and organisation. You can also use the {{Invite|Name|Org|IRC handle|arrival date|leave date|lodging}} template to provide more information with the aim to co-ordinate travel and find people staying in the same hotel as you.

* If you are not a maintainer or known member of the community, please add yourself the Request invitation section. If your email address is not known in the Xen Community, please also add the name of your employer and send your e-mail address to community dot manager at xenproject dot org using "Request for Hackathon 2016 Invite" as subject line. This is important, such that we can e-mail more information to you. We will monitor this page and confirm whether we have space for you to attend.

Best Regards
Lars
_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Wed Jan 13 16:38:52 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 13 Jan 2016 16:38:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aJORd-0007rl-9i; Wed, 13 Jan 2016 16:38:49 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <lars.kurth.xen@gmail.com>) id 1aJORb-0007rW-47
	for mirageos-devel@lists.xenproject.org; Wed, 13 Jan 2016 16:38:47 +0000
Received: from [85.158.139.211] by server-11.bemta-5.messagelabs.com id
	9F/1D-24494-69D76965; Wed, 13 Jan 2016 16:38:46 +0000
X-Env-Sender: lars.kurth.xen@gmail.com
X-Msg-Ref: server-15.tower-206.messagelabs.com!1452703125!15389139!1
X-Originating-IP: [74.125.82.43]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 21382 invoked from network); 13 Jan 2016 16:38:45 -0000
Received: from mail-wm0-f43.google.com (HELO mail-wm0-f43.google.com)
	(74.125.82.43)
	by server-15.tower-206.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 13 Jan 2016 16:38:45 -0000
Received: by mail-wm0-f43.google.com with SMTP id b14so381110503wmb.1
	for <mirageos-devel@lists.xenproject.org>;
	Wed, 13 Jan 2016 08:38:45 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:content-type:content-transfer-encoding:subject:message-id:date
	:to:mime-version;
	bh=hhUbijkJDoHQCoETkzlECerimhMhGQcBzVcDm7ZImgs=;
	b=aJc3uZU79z/5MhnOvrKu7Y6tbRM9kKkNnyG+prKCNS4mbG4ZoeHf0K1D2LMtUUx3mk
	LCRogbfg/HEK/akfgxIs5187wl1+xCcS6feYxJh2vM6llhNH6nX/UmdMPg5cI/lg2GnB
	FTDvl07r2Y/c4I95uasxHxMzgX82RVAEMbat/wesk8gbsWE4gsIgFxrXuq3j0QUgLCiv
	7QKZp/xOiiWG2ymC5c9s5aJ/ap5Tmas6NKF4wS4bGhi07UkMUioOtnRg02g3l0vCAA1o
	SsXVAiQvOokVe6YVDcrMpLBrcc1y3MIglddXbjN6PTyVH3fvHfAouhDzlU0Yy9iv4Y8q
	HYLA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:from:content-type:content-transfer-encoding
	:subject:message-id:date:to:mime-version;
	bh=hhUbijkJDoHQCoETkzlECerimhMhGQcBzVcDm7ZImgs=;
	b=ZgCZqd6mplqO+65OzSRxpQNgcRQ1DTJpUTcGjbXdZJwSed4YUSFPC1T1KzSwk+0S7l
	EuCmfuYJwEApKYhgXilxGi/pTkKueu/Rarub/E9lubSYZnsNWlvswIBs8fPz0+qmYW/O
	PuM95bIGjUs00ROP8n0Ji9hZTNKjHoauwsMvqo5C8hJkLMd4FDaUMTa7sNog+hwyTAFN
	i9BPWU9kniIq45lWXzcaQBCjjLXcvC/47Ppjg9r6ybWJuHi5ewixM3gWBiyhsAGpaJbC
	zAy9bovDl2SMjgBu3hlwXlT2lxtE6RLadVCcSv3dvw3wWIn+ynG7JV8hrG43N8NmmAm7
	fikg==
X-Gm-Message-State: ALoCoQnI/lRZEe7SVPAaIptGJRPd7QzkM/xQcqotlY/gkKN06P165zotDLP2ngBTyp4sE5wdahfG+s47b+wH9TNv8itLWfFdYQ==
X-Received: by 10.28.145.204 with SMTP id t195mr27715846wmd.91.1452703125491; 
	Wed, 13 Jan 2016 08:38:45 -0800 (PST)
Received: from [192.168.0.12] (5ec0a0ad.skybroadband.com. [94.192.160.173])
	by smtp.gmail.com with ESMTPSA id
	193sm22947246wmg.16.2016.01.13.08.38.44
	for <mirageos-devel@lists.xenproject.org>
	(version=TLSv1/SSLv3 cipher=OTHER);
	Wed, 13 Jan 2016 08:38:44 -0800 (PST)
From: Lars Kurth <lars.kurth.xen@gmail.com>
Message-Id: <5649DC2E-8FD1-43D3-8DCD-65AE3441DC17@gmail.com>
Date: Wed, 13 Jan 2016 16:38:44 +0000
To: mirageos-devel <mirageos-devel@lists.xenproject.org>
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
X-Mailer: Apple Mail (2.2104)
Subject: [MirageOS-devel] Xen Project Hackathon, Cambridge UK,
	Apr 18-19 - registration, hotels and other information
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

Xen API mailing list <xen-api@lists.xen.org>Hi all,
I just put together the booking page for the next Hackathon. See http://wiki.xenproject.org/wiki/Hackathon/April2016 for more information.

* If you are a maintainer or otherwise a core member of the community, just add yourself to the Confirmed Attendees section stating your name and organisation. You can also use the {{Invite|Name|Org|IRC handle|arrival date|leave date|lodging}} template to provide more information with the aim to co-ordinate travel and find people staying in the same hotel as you.

* If you are not a maintainer or known member of the community, please add yourself the Request invitation section. If your email address is not known in the Xen Community, please also add the name of your employer and send your e-mail address to community dot manager at xenproject dot org using "Request for Hackathon 2016 Invite" as subject line. This is important, such that we can e-mail more information to you. We will monitor this page and confirm whether we have space for you to attend.

Best Regards
Lars
_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Thu Jan 14 12:17:50 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 14 Jan 2016 12:17:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aJgqS-0004kd-8f; Thu, 14 Jan 2016 12:17:40 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <bgoumas@gmail.com>) id 1aIP4m-0006DL-LA
	for mirageos-devel@lists.xenproject.org; Sun, 10 Jan 2016 23:07:08 +0000
Received: from [85.158.143.35] by server-2.bemta-4.messagelabs.com id
	35/CB-08977-B14E2965; Sun, 10 Jan 2016 23:07:07 +0000
X-Env-Sender: bgoumas@gmail.com
X-Msg-Ref: server-16.tower-21.messagelabs.com!1452467226!4928186!1
X-Originating-IP: [74.125.82.48]
X-SpamReason: No, hits=1.2 required=7.0 tests=HTML_20_30,HTML_MESSAGE,
	RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 41839 invoked from network); 10 Jan 2016 23:07:07 -0000
Received: from mail-wm0-f48.google.com (HELO mail-wm0-f48.google.com)
	(74.125.82.48)
	by server-16.tower-21.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 10 Jan 2016 23:07:07 -0000
Received: by mail-wm0-f48.google.com with SMTP id f206so244044142wmf.0
	for <mirageos-devel@lists.xenproject.org>;
	Sun, 10 Jan 2016 15:07:07 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:date:message-id:subject:from:to:content-type;
	bh=2MfLCa8rJy1uz/e0U5fY8rp4BKQdK1BN+gkKqv8daX4=;
	b=nryTdG2v/ncCj3puFi4n7omUXkMwEzdGzYmNsI8V7ZbLRwHRVl785cxlEF1FL8kkhk
	xaCt+ytg0Zo83CDm1+6ej55fncup1isWEk2v0Ucwy1ykJW10fzKDOEQKaeUE7AXamdsm
	RSTU6rA017EHILVXBqgXcTJFdt7YP0HT5sPu+LHyE2BqRxjbAXlEjnHjiD3EFhKaTB/I
	/6h1b1/SeNkRW4qrbTGM7Q/MJlmrT8c7qS0PtzkC+SMqHvte22i1fFexJKL29M4uMS0n
	3kjr2PXh351DSwMtWqCbqghQclcxZuNEsL1kD9BcpSJ2VyClitymIFsCUdPj37M0rCEr
	fbWQ==
MIME-Version: 1.0
X-Received: by 10.28.55.76 with SMTP id e73mr10807126wma.53.1452467226577;
	Sun, 10 Jan 2016 15:07:06 -0800 (PST)
Received: by 10.28.133.69 with HTTP; Sun, 10 Jan 2016 15:07:06 -0800 (PST)
Date: Mon, 11 Jan 2016 01:07:06 +0200
Message-ID: <CAF0KdiNby-QtgWSf+FOmo+3PhD7ZFpvvxMXvs32sEkJXh8BLWg@mail.gmail.com>
From: Vasilis Goumas <bgoumas@gmail.com>
To: mirageos-devel@lists.xenproject.org
X-Mailman-Approved-At: Thu, 14 Jan 2016 12:17:39 +0000
Subject: [MirageOS-devel] beginner contributing to mirage
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============0911294703221547137=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============0911294703221547137==
Content-Type: multipart/alternative; boundary=001a1143ab92168f78052902e129

--001a1143ab92168f78052902e129
Content-Type: text/plain; charset=UTF-8

Greetings,

My name is Vasilis and I am a computer engineering student.

Recently I discovered MirageOS project and I am since quite interested in
it. So I would like contributing some code.

I have beginner Ocaml skills and I have never taken part in a software
project that big, so I view this also as an opportunity to sharpen these
skills.

A beginner project I encountered is "local synchronization between git
repos", the first one noted under the category "storage" in [1].

Ideally, pairing me up with a mentor for completing the above, or other
beginner task would be cool :)

[1]  https://github.com/mirage/mirage-www/wiki/Pioneer-Projects

Thank you for your time,
Vasilis Goumas

--001a1143ab92168f78052902e129
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Greetings,<div><br></div><div>My name is Vasilis and I am =
a computer engineering student.=C2=A0</div><div><br></div><div>Recently I d=
iscovered MirageOS project and I am since quite interested in it. So I woul=
d like contributing some code.</div><div><br></div><div>I have beginner Oca=
ml skills and I have never taken part in a software project that big, so I =
view this also as an opportunity to sharpen these skills.</div><div><br></d=
iv><div>A beginner project I encountered is &quot;local synchronization bet=
ween git repos&quot;, the first one noted under the category &quot;storage&=
quot; in [1].</div><div><br></div><div>Ideally, pairing me up with a mentor=
 for completing the above, or other beginner task would be cool :)</div><di=
v><br></div><div>[1] =C2=A0<a href=3D"https://github.com/mirage/mirage-www/=
wiki/Pioneer-Projects">https://github.com/mirage/mirage-www/wiki/Pioneer-Pr=
ojects</a><br></div><div><br></div><div>Thank you for your time,</div><div>=
Vasilis Goumas</div></div>

--001a1143ab92168f78052902e129--


--===============0911294703221547137==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============0911294703221547137==--


From mirageos-devel-bounces@lists.xenproject.org Thu Jan 14 12:17:50 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 14 Jan 2016 12:17:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aJgqS-0004ki-DD; Thu, 14 Jan 2016 12:17:40 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <arnaud.sahuguet@cornell.edu>) id 1aJQ2n-00045d-BJ
	for mirageos-devel@lists.xenproject.org; Wed, 13 Jan 2016 18:21:17 +0000
Received: from [85.158.137.68] by server-10.bemta-3.messagelabs.com id
	C0/0D-02807-C9596965; Wed, 13 Jan 2016 18:21:16 +0000
X-Env-Sender: arnaud.sahuguet@cornell.edu
X-Msg-Ref: server-15.tower-31.messagelabs.com!1452709275!15369974!1
X-Originating-IP: [128.84.13.243]
X-SpamReason: No, hits=0.3 required=7.0 tests=HTML_MESSAGE,RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 37611 invoked from network); 13 Jan 2016 18:21:15 -0000
Received: from limerock03.mail.cornell.edu (HELO limerock03.mail.cornell.edu)
	(128.84.13.243) by server-15.tower-31.messagelabs.com with SMTP;
	13 Jan 2016 18:21:15 -0000
X-CornellRouted: This message has been Routed already.
Received: from authusersmtp.mail.cornell.edu (granite4.serverfarm.cornell.edu
	[10.16.197.9])
	by limerock03.mail.cornell.edu (8.14.4/8.14.4_cu) with ESMTP id
	u0DILEoq028712 for <mirageos-devel@lists.xenproject.org>;
	Wed, 13 Jan 2016 13:21:15 -0500
Received: from mail-lb0-f180.google.com (mail-lb0-f180.google.com
	[209.85.217.180]) (authenticated bits=0)
	by authusersmtp.mail.cornell.edu (8.14.4/8.12.10) with ESMTP id
	u0DILCiN021162
	(version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT)
	for <mirageos-devel@lists.xenproject.org>;
	Wed, 13 Jan 2016 13:21:14 -0500
Received: by mail-lb0-f180.google.com with SMTP id oh2so296134120lbb.3
	for <mirageos-devel@lists.xenproject.org>;
	Wed, 13 Jan 2016 10:21:14 -0800 (PST)
X-Gm-Message-State: ALoCoQmKovNSdnT2EWAPom0DRK2TbG5vTSuuroZcbW2x8bfXt4Vb26zEp4sQM+mE8OgADw8O+be8o0g9h8ihVxIsmzUyEzKAsQ==
X-Received: by 10.112.161.33 with SMTP id xp1mr51447663lbb.141.1452709272669; 
	Wed, 13 Jan 2016 10:21:12 -0800 (PST)
MIME-Version: 1.0
Received: by 10.112.235.1 with HTTP; Wed, 13 Jan 2016 10:20:53 -0800 (PST)
From: Arnaud Sahuguet <arnaud.sahuguet@cornell.edu>
Date: Wed, 13 Jan 2016 13:20:53 -0500
X-Gmail-Original-Message-ID: <CAFAdUyA0-0o=NFj+5_O1oW6fMWidech889WWqU9axPcV37a2eQ@mail.gmail.com>
Message-ID: <CAFAdUyA0-0o=NFj+5_O1oW6fMWidech889WWqU9axPcV37a2eQ@mail.gmail.com>
To: mirageos-devel@lists.xenproject.org
X-Mailman-Approved-At: Thu, 14 Jan 2016 12:17:39 +0000
Subject: [MirageOS-devel] What crypto libraries are available on/for the
	platform?
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============6699052050879128355=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============6699052050879128355==
Content-Type: multipart/alternative; boundary=001a11c3487428da0a05293b3c8b

--001a11c3487428da0a05293b3c8b
Content-Type: text/plain; charset=UTF-8

Hi,

what are the crypto libraries available for MirageOS?
I am interested in:
- elliptic curves
- bilinear pairing-friendly elliptic curves
- and the usual stuff, HMAC, SHA-xxxx

regards,

Arnaud

--001a11c3487428da0a05293b3c8b
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Hi,<div><br></div><div>what are the crypto libraries avail=
able for MirageOS?</div><div>I am interested in:</div><div>-=C2=A0<span sty=
le=3D"color:rgb(0,0,0);font-family:Calibri,sans-serif;font-size:14px">ellip=
tic curves</span></div><div><span style=3D"color:rgb(0,0,0);font-family:Cal=
ibri,sans-serif;font-size:14px">- bilinear pairing-friendly elliptic curves=
</span></div><div><span style=3D"color:rgb(0,0,0);font-family:Calibri,sans-=
serif;font-size:14px">- and the usual stuff, HMAC, SHA-xxxx</span></div><di=
v><span style=3D"color:rgb(0,0,0);font-family:Calibri,sans-serif;font-size:=
14px"><br></span></div><div><span style=3D"color:rgb(0,0,0);font-family:Cal=
ibri,sans-serif;font-size:14px">regards,</span></div><div><span style=3D"co=
lor:rgb(0,0,0);font-family:Calibri,sans-serif;font-size:14px"><br></span></=
div><div><span style=3D"color:rgb(0,0,0);font-family:Calibri,sans-serif;fon=
t-size:14px">Arnaud</span></div></div>

--001a11c3487428da0a05293b3c8b--


--===============6699052050879128355==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============6699052050879128355==--


From mirageos-devel-bounces@lists.xenproject.org Thu Jan 14 12:17:50 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 14 Jan 2016 12:17:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aJgqS-0004kd-8f; Thu, 14 Jan 2016 12:17:40 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <bgoumas@gmail.com>) id 1aIP4m-0006DL-LA
	for mirageos-devel@lists.xenproject.org; Sun, 10 Jan 2016 23:07:08 +0000
Received: from [85.158.143.35] by server-2.bemta-4.messagelabs.com id
	35/CB-08977-B14E2965; Sun, 10 Jan 2016 23:07:07 +0000
X-Env-Sender: bgoumas@gmail.com
X-Msg-Ref: server-16.tower-21.messagelabs.com!1452467226!4928186!1
X-Originating-IP: [74.125.82.48]
X-SpamReason: No, hits=1.2 required=7.0 tests=HTML_20_30,HTML_MESSAGE,
	RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 41839 invoked from network); 10 Jan 2016 23:07:07 -0000
Received: from mail-wm0-f48.google.com (HELO mail-wm0-f48.google.com)
	(74.125.82.48)
	by server-16.tower-21.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 10 Jan 2016 23:07:07 -0000
Received: by mail-wm0-f48.google.com with SMTP id f206so244044142wmf.0
	for <mirageos-devel@lists.xenproject.org>;
	Sun, 10 Jan 2016 15:07:07 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:date:message-id:subject:from:to:content-type;
	bh=2MfLCa8rJy1uz/e0U5fY8rp4BKQdK1BN+gkKqv8daX4=;
	b=nryTdG2v/ncCj3puFi4n7omUXkMwEzdGzYmNsI8V7ZbLRwHRVl785cxlEF1FL8kkhk
	xaCt+ytg0Zo83CDm1+6ej55fncup1isWEk2v0Ucwy1ykJW10fzKDOEQKaeUE7AXamdsm
	RSTU6rA017EHILVXBqgXcTJFdt7YP0HT5sPu+LHyE2BqRxjbAXlEjnHjiD3EFhKaTB/I
	/6h1b1/SeNkRW4qrbTGM7Q/MJlmrT8c7qS0PtzkC+SMqHvte22i1fFexJKL29M4uMS0n
	3kjr2PXh351DSwMtWqCbqghQclcxZuNEsL1kD9BcpSJ2VyClitymIFsCUdPj37M0rCEr
	fbWQ==
MIME-Version: 1.0
X-Received: by 10.28.55.76 with SMTP id e73mr10807126wma.53.1452467226577;
	Sun, 10 Jan 2016 15:07:06 -0800 (PST)
Received: by 10.28.133.69 with HTTP; Sun, 10 Jan 2016 15:07:06 -0800 (PST)
Date: Mon, 11 Jan 2016 01:07:06 +0200
Message-ID: <CAF0KdiNby-QtgWSf+FOmo+3PhD7ZFpvvxMXvs32sEkJXh8BLWg@mail.gmail.com>
From: Vasilis Goumas <bgoumas@gmail.com>
To: mirageos-devel@lists.xenproject.org
X-Mailman-Approved-At: Thu, 14 Jan 2016 12:17:39 +0000
Subject: [MirageOS-devel] beginner contributing to mirage
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============0911294703221547137=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============0911294703221547137==
Content-Type: multipart/alternative; boundary=001a1143ab92168f78052902e129

--001a1143ab92168f78052902e129
Content-Type: text/plain; charset=UTF-8

Greetings,

My name is Vasilis and I am a computer engineering student.

Recently I discovered MirageOS project and I am since quite interested in
it. So I would like contributing some code.

I have beginner Ocaml skills and I have never taken part in a software
project that big, so I view this also as an opportunity to sharpen these
skills.

A beginner project I encountered is "local synchronization between git
repos", the first one noted under the category "storage" in [1].

Ideally, pairing me up with a mentor for completing the above, or other
beginner task would be cool :)

[1]  https://github.com/mirage/mirage-www/wiki/Pioneer-Projects

Thank you for your time,
Vasilis Goumas

--001a1143ab92168f78052902e129
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Greetings,<div><br></div><div>My name is Vasilis and I am =
a computer engineering student.=C2=A0</div><div><br></div><div>Recently I d=
iscovered MirageOS project and I am since quite interested in it. So I woul=
d like contributing some code.</div><div><br></div><div>I have beginner Oca=
ml skills and I have never taken part in a software project that big, so I =
view this also as an opportunity to sharpen these skills.</div><div><br></d=
iv><div>A beginner project I encountered is &quot;local synchronization bet=
ween git repos&quot;, the first one noted under the category &quot;storage&=
quot; in [1].</div><div><br></div><div>Ideally, pairing me up with a mentor=
 for completing the above, or other beginner task would be cool :)</div><di=
v><br></div><div>[1] =C2=A0<a href=3D"https://github.com/mirage/mirage-www/=
wiki/Pioneer-Projects">https://github.com/mirage/mirage-www/wiki/Pioneer-Pr=
ojects</a><br></div><div><br></div><div>Thank you for your time,</div><div>=
Vasilis Goumas</div></div>

--001a1143ab92168f78052902e129--


--===============0911294703221547137==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============0911294703221547137==--


From mirageos-devel-bounces@lists.xenproject.org Thu Jan 14 12:17:50 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 14 Jan 2016 12:17:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aJgqS-0004ki-DD; Thu, 14 Jan 2016 12:17:40 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <arnaud.sahuguet@cornell.edu>) id 1aJQ2n-00045d-BJ
	for mirageos-devel@lists.xenproject.org; Wed, 13 Jan 2016 18:21:17 +0000
Received: from [85.158.137.68] by server-10.bemta-3.messagelabs.com id
	C0/0D-02807-C9596965; Wed, 13 Jan 2016 18:21:16 +0000
X-Env-Sender: arnaud.sahuguet@cornell.edu
X-Msg-Ref: server-15.tower-31.messagelabs.com!1452709275!15369974!1
X-Originating-IP: [128.84.13.243]
X-SpamReason: No, hits=0.3 required=7.0 tests=HTML_MESSAGE,RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 37611 invoked from network); 13 Jan 2016 18:21:15 -0000
Received: from limerock03.mail.cornell.edu (HELO limerock03.mail.cornell.edu)
	(128.84.13.243) by server-15.tower-31.messagelabs.com with SMTP;
	13 Jan 2016 18:21:15 -0000
X-CornellRouted: This message has been Routed already.
Received: from authusersmtp.mail.cornell.edu (granite4.serverfarm.cornell.edu
	[10.16.197.9])
	by limerock03.mail.cornell.edu (8.14.4/8.14.4_cu) with ESMTP id
	u0DILEoq028712 for <mirageos-devel@lists.xenproject.org>;
	Wed, 13 Jan 2016 13:21:15 -0500
Received: from mail-lb0-f180.google.com (mail-lb0-f180.google.com
	[209.85.217.180]) (authenticated bits=0)
	by authusersmtp.mail.cornell.edu (8.14.4/8.12.10) with ESMTP id
	u0DILCiN021162
	(version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT)
	for <mirageos-devel@lists.xenproject.org>;
	Wed, 13 Jan 2016 13:21:14 -0500
Received: by mail-lb0-f180.google.com with SMTP id oh2so296134120lbb.3
	for <mirageos-devel@lists.xenproject.org>;
	Wed, 13 Jan 2016 10:21:14 -0800 (PST)
X-Gm-Message-State: ALoCoQmKovNSdnT2EWAPom0DRK2TbG5vTSuuroZcbW2x8bfXt4Vb26zEp4sQM+mE8OgADw8O+be8o0g9h8ihVxIsmzUyEzKAsQ==
X-Received: by 10.112.161.33 with SMTP id xp1mr51447663lbb.141.1452709272669; 
	Wed, 13 Jan 2016 10:21:12 -0800 (PST)
MIME-Version: 1.0
Received: by 10.112.235.1 with HTTP; Wed, 13 Jan 2016 10:20:53 -0800 (PST)
From: Arnaud Sahuguet <arnaud.sahuguet@cornell.edu>
Date: Wed, 13 Jan 2016 13:20:53 -0500
X-Gmail-Original-Message-ID: <CAFAdUyA0-0o=NFj+5_O1oW6fMWidech889WWqU9axPcV37a2eQ@mail.gmail.com>
Message-ID: <CAFAdUyA0-0o=NFj+5_O1oW6fMWidech889WWqU9axPcV37a2eQ@mail.gmail.com>
To: mirageos-devel@lists.xenproject.org
X-Mailman-Approved-At: Thu, 14 Jan 2016 12:17:39 +0000
Subject: [MirageOS-devel] What crypto libraries are available on/for the
	platform?
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============6699052050879128355=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============6699052050879128355==
Content-Type: multipart/alternative; boundary=001a11c3487428da0a05293b3c8b

--001a11c3487428da0a05293b3c8b
Content-Type: text/plain; charset=UTF-8

Hi,

what are the crypto libraries available for MirageOS?
I am interested in:
- elliptic curves
- bilinear pairing-friendly elliptic curves
- and the usual stuff, HMAC, SHA-xxxx

regards,

Arnaud

--001a11c3487428da0a05293b3c8b
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Hi,<div><br></div><div>what are the crypto libraries avail=
able for MirageOS?</div><div>I am interested in:</div><div>-=C2=A0<span sty=
le=3D"color:rgb(0,0,0);font-family:Calibri,sans-serif;font-size:14px">ellip=
tic curves</span></div><div><span style=3D"color:rgb(0,0,0);font-family:Cal=
ibri,sans-serif;font-size:14px">- bilinear pairing-friendly elliptic curves=
</span></div><div><span style=3D"color:rgb(0,0,0);font-family:Calibri,sans-=
serif;font-size:14px">- and the usual stuff, HMAC, SHA-xxxx</span></div><di=
v><span style=3D"color:rgb(0,0,0);font-family:Calibri,sans-serif;font-size:=
14px"><br></span></div><div><span style=3D"color:rgb(0,0,0);font-family:Cal=
ibri,sans-serif;font-size:14px">regards,</span></div><div><span style=3D"co=
lor:rgb(0,0,0);font-family:Calibri,sans-serif;font-size:14px"><br></span></=
div><div><span style=3D"color:rgb(0,0,0);font-family:Calibri,sans-serif;fon=
t-size:14px">Arnaud</span></div></div>

--001a11c3487428da0a05293b3c8b--


--===============6699052050879128355==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============6699052050879128355==--


From mirageos-devel-bounces@lists.xenproject.org Thu Jan 14 13:40:11 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 14 Jan 2016 13:40:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aJi86-0007bS-5b; Thu, 14 Jan 2016 13:39:58 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <hannes@mehnert.org>) id 1aJi83-0007bN-Tb
	for mirageos-devel@lists.xenproject.org; Thu, 14 Jan 2016 13:39:56 +0000
Received: from [85.158.143.35] by server-2.bemta-4.messagelabs.com id
	A4/0A-08977-B25A7965; Thu, 14 Jan 2016 13:39:55 +0000
X-Env-Sender: hannes@mehnert.org
X-Msg-Ref: server-6.tower-21.messagelabs.com!1452778792!10091139!1
X-Originating-IP: [213.73.89.200]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 49006 invoked from network); 14 Jan 2016 13:39:54 -0000
Received: from mail.mehnert.org (HELO mail.mehnert.org) (213.73.89.200)
	by server-6.tower-21.messagelabs.com with DHE-RSA-CAMELLIA256-SHA
	encrypted SMTP; 14 Jan 2016 13:39:54 -0000
Received: from [128.232.110.198] (c198.al.cl.cam.ac.uk [128.232.110.198])
	(using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits))
	(Client CN "hannes@mehnert.org",
	Issuer "mehnert root CA" (not verified))
	by mail.mehnert.org (Postfix) with ESMTPS id 64DB11B57
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 14 Jan 2016 14:39:51 +0100 (CET)
To: mirageos-devel@lists.xenproject.org
References: <CAFAdUyA0-0o=NFj+5_O1oW6fMWidech889WWqU9axPcV37a2eQ@mail.gmail.com>
From: Hannes Mehnert <hannes@mehnert.org>
Openpgp: id=11B5464249B5BD858FFF6328BC896588DF7C28EE
Message-ID: <5697A515.9090305@mehnert.org>
Date: Thu, 14 Jan 2016 13:39:33 +0000
User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:38.0) Gecko/20100101
	Thunderbird/38.3.0
MIME-Version: 1.0
In-Reply-To: <CAFAdUyA0-0o=NFj+5_O1oW6fMWidech889WWqU9axPcV37a2eQ@mail.gmail.com>
Subject: Re: [MirageOS-devel] What crypto libraries are available on/for the
 platform?
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============6979170082264501137=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--===============6979170082264501137==
Content-Type: multipart/signed; micalg=pgp-sha384;
 protocol="application/pgp-signature";
 boundary="wM8jFrLH7Vgkoj3XEc1FaawKppV0vpPS9"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--wM8jFrLH7Vgkoj3XEc1FaawKppV0vpPS9
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Hi Arnaud,

On 01/13/2016 18:20, Arnaud Sahuguet wrote:
> what are the crypto libraries available for MirageOS?

David wrote nocrypto (https://github.com/mirleft/ocaml-nocrypto) which
works fine on MirageOS.  No ECC yet, though.


hannes


--wM8jFrLH7Vgkoj3XEc1FaawKppV0vpPS9
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQIcBAEBCQAGBQJWl6UVAAoJELyJZYjffCjuDXsP/1obrUDXVIfiPnzvYCPqnMcI
301XR2Od29zngJJoT6FF9+9pb36WkHkwBvisNtqmmBBsdSvQ+YFN4aPW+QPytgya
ulSuE70A+YFeJfu6PoSDziOuEvfgLd5wZICqvmnklcHWmBaJ3a54ORiusiQBZMiV
56H0K7beWRSPkBCKOByI2jUyI+sZuebT5YGjZnh9rrOe1Uooy15lTViph59RQAKi
UTyFDv1Y7anhr0XLS0Y+e3rHTvxdo42LvznbZ5/uU9O0oiFFZXeDWzF38saXUftr
NasnjrwU1r70uNMaSJwV5e9w5eFjUrrpbulSz/HJfdxzL+PYDh8Dvkty4vPz0sqp
B/9YrqLc3AMzD5XhUCyzSgtSgc6DWpp2hoHa4Ru6yvSYJorT2zLIBRUlVd8gAYw3
ZrNjrGaMgcBzN/5iBx4hGYt0Ob+jHYOBsRo49fJQWooRrVWDNd4wZ9YaQSaJxPJQ
Z25keYE9pmVDxPo0vea0kHg3qb5DKEQ/Rtwu6N5hb12Hml2B4fzKme3RT/5Akvrz
rVHtKVmU99fLzY/D/jcbJnbCsCGtqvTp8Wary9TegasTkQDOQtgS0dajXAnir3MY
abWikALbGWmgBfP4cjqS0ipIqoF1IBrJtVYFej1kp/PM8m8Ho2fCaDzNSXHUcY6e
6VYKEdzRADmF5cgoWMik
=vfsJ
-----END PGP SIGNATURE-----

--wM8jFrLH7Vgkoj3XEc1FaawKppV0vpPS9--


--===============6979170082264501137==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============6979170082264501137==--


From mirageos-devel-bounces@lists.xenproject.org Thu Jan 14 13:40:11 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 14 Jan 2016 13:40:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aJi86-0007bS-5b; Thu, 14 Jan 2016 13:39:58 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <hannes@mehnert.org>) id 1aJi83-0007bN-Tb
	for mirageos-devel@lists.xenproject.org; Thu, 14 Jan 2016 13:39:56 +0000
Received: from [85.158.143.35] by server-2.bemta-4.messagelabs.com id
	A4/0A-08977-B25A7965; Thu, 14 Jan 2016 13:39:55 +0000
X-Env-Sender: hannes@mehnert.org
X-Msg-Ref: server-6.tower-21.messagelabs.com!1452778792!10091139!1
X-Originating-IP: [213.73.89.200]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 49006 invoked from network); 14 Jan 2016 13:39:54 -0000
Received: from mail.mehnert.org (HELO mail.mehnert.org) (213.73.89.200)
	by server-6.tower-21.messagelabs.com with DHE-RSA-CAMELLIA256-SHA
	encrypted SMTP; 14 Jan 2016 13:39:54 -0000
Received: from [128.232.110.198] (c198.al.cl.cam.ac.uk [128.232.110.198])
	(using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits))
	(Client CN "hannes@mehnert.org",
	Issuer "mehnert root CA" (not verified))
	by mail.mehnert.org (Postfix) with ESMTPS id 64DB11B57
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 14 Jan 2016 14:39:51 +0100 (CET)
To: mirageos-devel@lists.xenproject.org
References: <CAFAdUyA0-0o=NFj+5_O1oW6fMWidech889WWqU9axPcV37a2eQ@mail.gmail.com>
From: Hannes Mehnert <hannes@mehnert.org>
Openpgp: id=11B5464249B5BD858FFF6328BC896588DF7C28EE
Message-ID: <5697A515.9090305@mehnert.org>
Date: Thu, 14 Jan 2016 13:39:33 +0000
User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:38.0) Gecko/20100101
	Thunderbird/38.3.0
MIME-Version: 1.0
In-Reply-To: <CAFAdUyA0-0o=NFj+5_O1oW6fMWidech889WWqU9axPcV37a2eQ@mail.gmail.com>
Subject: Re: [MirageOS-devel] What crypto libraries are available on/for the
 platform?
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============6979170082264501137=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--===============6979170082264501137==
Content-Type: multipart/signed; micalg=pgp-sha384;
 protocol="application/pgp-signature";
 boundary="wM8jFrLH7Vgkoj3XEc1FaawKppV0vpPS9"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--wM8jFrLH7Vgkoj3XEc1FaawKppV0vpPS9
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Hi Arnaud,

On 01/13/2016 18:20, Arnaud Sahuguet wrote:
> what are the crypto libraries available for MirageOS?

David wrote nocrypto (https://github.com/mirleft/ocaml-nocrypto) which
works fine on MirageOS.  No ECC yet, though.


hannes


--wM8jFrLH7Vgkoj3XEc1FaawKppV0vpPS9
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQIcBAEBCQAGBQJWl6UVAAoJELyJZYjffCjuDXsP/1obrUDXVIfiPnzvYCPqnMcI
301XR2Od29zngJJoT6FF9+9pb36WkHkwBvisNtqmmBBsdSvQ+YFN4aPW+QPytgya
ulSuE70A+YFeJfu6PoSDziOuEvfgLd5wZICqvmnklcHWmBaJ3a54ORiusiQBZMiV
56H0K7beWRSPkBCKOByI2jUyI+sZuebT5YGjZnh9rrOe1Uooy15lTViph59RQAKi
UTyFDv1Y7anhr0XLS0Y+e3rHTvxdo42LvznbZ5/uU9O0oiFFZXeDWzF38saXUftr
NasnjrwU1r70uNMaSJwV5e9w5eFjUrrpbulSz/HJfdxzL+PYDh8Dvkty4vPz0sqp
B/9YrqLc3AMzD5XhUCyzSgtSgc6DWpp2hoHa4Ru6yvSYJorT2zLIBRUlVd8gAYw3
ZrNjrGaMgcBzN/5iBx4hGYt0Ob+jHYOBsRo49fJQWooRrVWDNd4wZ9YaQSaJxPJQ
Z25keYE9pmVDxPo0vea0kHg3qb5DKEQ/Rtwu6N5hb12Hml2B4fzKme3RT/5Akvrz
rVHtKVmU99fLzY/D/jcbJnbCsCGtqvTp8Wary9TegasTkQDOQtgS0dajXAnir3MY
abWikALbGWmgBfP4cjqS0ipIqoF1IBrJtVYFej1kp/PM8m8Ho2fCaDzNSXHUcY6e
6VYKEdzRADmF5cgoWMik
=vfsJ
-----END PGP SIGNATURE-----

--wM8jFrLH7Vgkoj3XEc1FaawKppV0vpPS9--


--===============6979170082264501137==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============6979170082264501137==--


From mirageos-devel-bounces@lists.xenproject.org Thu Jan 14 13:46:25 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 14 Jan 2016 13:46:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aJiEL-0007o2-Eh; Thu, 14 Jan 2016 13:46:25 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <kosmo.zb@gmail.com>) id 1aJiEK-0007nu-91
	for mirageos-devel@lists.xenproject.org; Thu, 14 Jan 2016 13:46:24 +0000
Received: from [85.158.139.211] by server-17.bemta-5.messagelabs.com id
	40/0D-21901-FA6A7965; Thu, 14 Jan 2016 13:46:23 +0000
X-Env-Sender: kosmo.zb@gmail.com
X-Msg-Ref: server-10.tower-206.messagelabs.com!1452779182!15843543!1
X-Originating-IP: [209.85.220.182]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 25239 invoked from network); 14 Jan 2016 13:46:23 -0000
Received: from mail-qk0-f182.google.com (HELO mail-qk0-f182.google.com)
	(209.85.220.182)
	by server-10.tower-206.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 14 Jan 2016 13:46:23 -0000
Received: by mail-qk0-f182.google.com with SMTP id x1so18884977qkc.1
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 14 Jan 2016 05:46:23 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:sender:in-reply-to:references:date:message-id:subject
	:from:to:cc:content-type;
	bh=6lxIyPvowSKyfpTVjrsX919FloMWwz4kUaWU4KT3SHw=;
	b=UQLD2TdUTFoviNruPs5P4cwGubCr1QuI4yypO6x4F/qYLJhbXxCLjkYIqEJWtaVSdG
	4dwIvKAahetqG0LsewMj87gioJlHDhJbeDq4zR9HEpVP0dqC+swyFDlxFyCdwK3dAuvZ
	kn31hmXiCIagmVz2tcPUsz74wx+fT7dQlvg6RKuyRfBhkTW6uyir9Q9WUZkGVrhqVOnD
	IyQocYygNv8/kN9BiLohsojOY1HAkq0WeQoUltwq+wbq1JZRUeaVoPPXXj4tp8PLCffX
	pnHG5zpl4mA+PHqwXYQ1/DjCQaFltshn1F5Jh/ttu7zK2hYrS8ZTEIiV9K5VHRq3UEX6
	B7CQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:sender:in-reply-to:references:date
	:message-id:subject:from:to:cc:content-type;
	bh=6lxIyPvowSKyfpTVjrsX919FloMWwz4kUaWU4KT3SHw=;
	b=P1usTjukw+Y373UTEQURPHoBZfT/dStbNN3c4+FUa+P9Q2A0hVrbvQYsYUzvho1zcV
	7tBlmNf+aGwKnBTSkzPUc3NLCqJwM6661w1v0r+40c4tlk8H8+Bbl2Ql8UYqgD3S852Z
	/jr67pApXp6rCSAwfbyp974C8ruAo3uIR59YBMpfp1K84ACJbDaoGJ9+FCRuCeccX93x
	D5E60dVksgT5DzycP99xOk5aNYvxIG2QW6JAMsfq7i2jlX0B4UM7QuMhdz10/imgEaby
	hMi3Wm1XlvrVL8veIGDejEULIheIgzz3IOukztKRyIfmVRbnkikadJEEZzcGFMB//xAj
	MZhg==
X-Gm-Message-State: ALoCoQkc2q0FioUEZRbHT54uz/LRXCfB9b5+kDco2C6gK0z8PBTjnsfSaEWI6HHi6In1MP+Nl6nHDrbVKAS2WMJhrU7fYvr/ng==
MIME-Version: 1.0
X-Received: by 10.129.80.7 with SMTP id e7mr2904108ywb.329.1452779182159; Thu,
	14 Jan 2016 05:46:22 -0800 (PST)
Received: by 10.13.221.212 with HTTP; Thu, 14 Jan 2016 05:46:21 -0800 (PST)
In-Reply-To: <CAFAdUyA0-0o=NFj+5_O1oW6fMWidech889WWqU9axPcV37a2eQ@mail.gmail.com>
References: <CAFAdUyA0-0o=NFj+5_O1oW6fMWidech889WWqU9axPcV37a2eQ@mail.gmail.com>
Date: Thu, 14 Jan 2016 13:46:21 +0000
X-Google-Sender-Auth: zPjis8ScboC19X2YrVK2fyu7bWc
Message-ID: <CAAWM5TwmtHU=XfQGnK__qzzXDTcLYNBTUFFOu8Fec4eeZZMoqA@mail.gmail.com>
From: David Sheets <sheets@alum.mit.edu>
To: Arnaud Sahuguet <arnaud.sahuguet@cornell.edu>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] What crypto libraries are available on/for the
	platform?
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On Wed, Jan 13, 2016 at 6:20 PM, Arnaud Sahuguet
<arnaud.sahuguet@cornell.edu> wrote:
> Hi,
>
> what are the crypto libraries available for MirageOS?

Bindings to libsodium also exist
<https://github.com/dsheets/ocaml-sodium> but no attempt has been made
to port them to work on Mirage as far as I know. There is nothing
inherently unportable in the bindings or libsodium itself but it's not
Ready To Go.

David

> I am interested in:
> - elliptic curves
> - bilinear pairing-friendly elliptic curves
> - and the usual stuff, HMAC, SHA-xxxx
>
> regards,
>
> Arnaud
>
> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Thu Jan 14 13:46:25 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 14 Jan 2016 13:46:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aJiEL-0007o2-Eh; Thu, 14 Jan 2016 13:46:25 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <kosmo.zb@gmail.com>) id 1aJiEK-0007nu-91
	for mirageos-devel@lists.xenproject.org; Thu, 14 Jan 2016 13:46:24 +0000
Received: from [85.158.139.211] by server-17.bemta-5.messagelabs.com id
	40/0D-21901-FA6A7965; Thu, 14 Jan 2016 13:46:23 +0000
X-Env-Sender: kosmo.zb@gmail.com
X-Msg-Ref: server-10.tower-206.messagelabs.com!1452779182!15843543!1
X-Originating-IP: [209.85.220.182]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 25239 invoked from network); 14 Jan 2016 13:46:23 -0000
Received: from mail-qk0-f182.google.com (HELO mail-qk0-f182.google.com)
	(209.85.220.182)
	by server-10.tower-206.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 14 Jan 2016 13:46:23 -0000
Received: by mail-qk0-f182.google.com with SMTP id x1so18884977qkc.1
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 14 Jan 2016 05:46:23 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:sender:in-reply-to:references:date:message-id:subject
	:from:to:cc:content-type;
	bh=6lxIyPvowSKyfpTVjrsX919FloMWwz4kUaWU4KT3SHw=;
	b=UQLD2TdUTFoviNruPs5P4cwGubCr1QuI4yypO6x4F/qYLJhbXxCLjkYIqEJWtaVSdG
	4dwIvKAahetqG0LsewMj87gioJlHDhJbeDq4zR9HEpVP0dqC+swyFDlxFyCdwK3dAuvZ
	kn31hmXiCIagmVz2tcPUsz74wx+fT7dQlvg6RKuyRfBhkTW6uyir9Q9WUZkGVrhqVOnD
	IyQocYygNv8/kN9BiLohsojOY1HAkq0WeQoUltwq+wbq1JZRUeaVoPPXXj4tp8PLCffX
	pnHG5zpl4mA+PHqwXYQ1/DjCQaFltshn1F5Jh/ttu7zK2hYrS8ZTEIiV9K5VHRq3UEX6
	B7CQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:sender:in-reply-to:references:date
	:message-id:subject:from:to:cc:content-type;
	bh=6lxIyPvowSKyfpTVjrsX919FloMWwz4kUaWU4KT3SHw=;
	b=P1usTjukw+Y373UTEQURPHoBZfT/dStbNN3c4+FUa+P9Q2A0hVrbvQYsYUzvho1zcV
	7tBlmNf+aGwKnBTSkzPUc3NLCqJwM6661w1v0r+40c4tlk8H8+Bbl2Ql8UYqgD3S852Z
	/jr67pApXp6rCSAwfbyp974C8ruAo3uIR59YBMpfp1K84ACJbDaoGJ9+FCRuCeccX93x
	D5E60dVksgT5DzycP99xOk5aNYvxIG2QW6JAMsfq7i2jlX0B4UM7QuMhdz10/imgEaby
	hMi3Wm1XlvrVL8veIGDejEULIheIgzz3IOukztKRyIfmVRbnkikadJEEZzcGFMB//xAj
	MZhg==
X-Gm-Message-State: ALoCoQkc2q0FioUEZRbHT54uz/LRXCfB9b5+kDco2C6gK0z8PBTjnsfSaEWI6HHi6In1MP+Nl6nHDrbVKAS2WMJhrU7fYvr/ng==
MIME-Version: 1.0
X-Received: by 10.129.80.7 with SMTP id e7mr2904108ywb.329.1452779182159; Thu,
	14 Jan 2016 05:46:22 -0800 (PST)
Received: by 10.13.221.212 with HTTP; Thu, 14 Jan 2016 05:46:21 -0800 (PST)
In-Reply-To: <CAFAdUyA0-0o=NFj+5_O1oW6fMWidech889WWqU9axPcV37a2eQ@mail.gmail.com>
References: <CAFAdUyA0-0o=NFj+5_O1oW6fMWidech889WWqU9axPcV37a2eQ@mail.gmail.com>
Date: Thu, 14 Jan 2016 13:46:21 +0000
X-Google-Sender-Auth: zPjis8ScboC19X2YrVK2fyu7bWc
Message-ID: <CAAWM5TwmtHU=XfQGnK__qzzXDTcLYNBTUFFOu8Fec4eeZZMoqA@mail.gmail.com>
From: David Sheets <sheets@alum.mit.edu>
To: Arnaud Sahuguet <arnaud.sahuguet@cornell.edu>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] What crypto libraries are available on/for the
	platform?
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On Wed, Jan 13, 2016 at 6:20 PM, Arnaud Sahuguet
<arnaud.sahuguet@cornell.edu> wrote:
> Hi,
>
> what are the crypto libraries available for MirageOS?

Bindings to libsodium also exist
<https://github.com/dsheets/ocaml-sodium> but no attempt has been made
to port them to work on Mirage as far as I know. There is nothing
inherently unportable in the bindings or libsodium itself but it's not
Ready To Go.

David

> I am interested in:
> - elliptic curves
> - bilinear pairing-friendly elliptic curves
> - and the usual stuff, HMAC, SHA-xxxx
>
> regards,
>
> Arnaud
>
> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Thu Jan 14 14:41:50 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 14 Jan 2016 14:41:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aJj5p-0001ai-7a; Thu, 14 Jan 2016 14:41:41 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <hannes@mehnert.org>) id 1aJj5o-0001ac-Iu
	for mirageos-devel@lists.xenproject.org; Thu, 14 Jan 2016 14:41:40 +0000
Received: from [85.158.143.35] by server-1.bemta-4.messagelabs.com id
	8A/71-09708-4A3B7965; Thu, 14 Jan 2016 14:41:40 +0000
X-Env-Sender: hannes@mehnert.org
X-Msg-Ref: server-13.tower-21.messagelabs.com!1452782497!8487967!1
X-Originating-IP: [213.73.89.200]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 62781 invoked from network); 14 Jan 2016 14:41:38 -0000
Received: from mail.mehnert.org (HELO mail.mehnert.org) (213.73.89.200)
	by server-13.tower-21.messagelabs.com with DHE-RSA-CAMELLIA256-SHA
	encrypted SMTP; 14 Jan 2016 14:41:38 -0000
Received: from [128.232.110.198] (c198.al.cl.cam.ac.uk [128.232.110.198])
	(using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits))
	(Client CN "hannes@mehnert.org",
	Issuer "mehnert root CA" (not verified))
	by mail.mehnert.org (Postfix) with ESMTPS id BE04F18FE
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 14 Jan 2016 15:41:35 +0100 (CET)
To: mirageos-devel@lists.xenproject.org
References: <CAC-LLDiE4J11bvyJXrvee45MwBtH7OifOHUNo3SwDAW0YfPusQ@mail.gmail.com>
From: Hannes Mehnert <hannes@mehnert.org>
Openpgp: id=11B5464249B5BD858FFF6328BC896588DF7C28EE
Message-ID: <5697B393.4060706@mehnert.org>
Date: Thu, 14 Jan 2016 14:41:23 +0000
User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:38.0) Gecko/20100101
	Thunderbird/38.3.0
MIME-Version: 1.0
In-Reply-To: <CAC-LLDiE4J11bvyJXrvee45MwBtH7OifOHUNo3SwDAW0YfPusQ@mail.gmail.com>
Subject: Re: [MirageOS-devel] Compiling C components for mirage-xen
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

Hi Tim,

On 01/08/2016 11:19, Tim Cuthbertson wrote:
> I'd like to use `Bcrypt` from the `safepass` opam module in passe[0].
> There is sadly no `safepass-xen` package, and trying to just use
> `safepass` results in link errors:

I wonder whether it'd be more than a day of work to implement bcrypt
directly in OCaml.  Would for sure safe from linking trouble (and be
automatically memory safe).  An initial version might be 50% or 90% of
the speed of the pure C variant, but does this really matter for bcrypt?


hannes

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Thu Jan 14 14:41:50 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 14 Jan 2016 14:41:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aJj5p-0001ai-7a; Thu, 14 Jan 2016 14:41:41 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <hannes@mehnert.org>) id 1aJj5o-0001ac-Iu
	for mirageos-devel@lists.xenproject.org; Thu, 14 Jan 2016 14:41:40 +0000
Received: from [85.158.143.35] by server-1.bemta-4.messagelabs.com id
	8A/71-09708-4A3B7965; Thu, 14 Jan 2016 14:41:40 +0000
X-Env-Sender: hannes@mehnert.org
X-Msg-Ref: server-13.tower-21.messagelabs.com!1452782497!8487967!1
X-Originating-IP: [213.73.89.200]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 62781 invoked from network); 14 Jan 2016 14:41:38 -0000
Received: from mail.mehnert.org (HELO mail.mehnert.org) (213.73.89.200)
	by server-13.tower-21.messagelabs.com with DHE-RSA-CAMELLIA256-SHA
	encrypted SMTP; 14 Jan 2016 14:41:38 -0000
Received: from [128.232.110.198] (c198.al.cl.cam.ac.uk [128.232.110.198])
	(using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits))
	(Client CN "hannes@mehnert.org",
	Issuer "mehnert root CA" (not verified))
	by mail.mehnert.org (Postfix) with ESMTPS id BE04F18FE
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 14 Jan 2016 15:41:35 +0100 (CET)
To: mirageos-devel@lists.xenproject.org
References: <CAC-LLDiE4J11bvyJXrvee45MwBtH7OifOHUNo3SwDAW0YfPusQ@mail.gmail.com>
From: Hannes Mehnert <hannes@mehnert.org>
Openpgp: id=11B5464249B5BD858FFF6328BC896588DF7C28EE
Message-ID: <5697B393.4060706@mehnert.org>
Date: Thu, 14 Jan 2016 14:41:23 +0000
User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:38.0) Gecko/20100101
	Thunderbird/38.3.0
MIME-Version: 1.0
In-Reply-To: <CAC-LLDiE4J11bvyJXrvee45MwBtH7OifOHUNo3SwDAW0YfPusQ@mail.gmail.com>
Subject: Re: [MirageOS-devel] Compiling C components for mirage-xen
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

Hi Tim,

On 01/08/2016 11:19, Tim Cuthbertson wrote:
> I'd like to use `Bcrypt` from the `safepass` opam module in passe[0].
> There is sadly no `safepass-xen` package, and trying to just use
> `safepass` results in link errors:

I wonder whether it'd be more than a day of work to implement bcrypt
directly in OCaml.  Would for sure safe from linking trouble (and be
automatically memory safe).  An initial version might be 50% or 90% of
the speed of the pure C variant, but does this really matter for bcrypt?


hannes

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Thu Jan 14 15:23:43 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 14 Jan 2016 15:23:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aJjkS-0005oK-L6; Thu, 14 Jan 2016 15:23:40 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <arnaud.sahuguet@cornell.edu>) id 1aJjkR-0005oF-C9
	for mirageos-devel@lists.xenproject.org; Thu, 14 Jan 2016 15:23:39 +0000
Received: from [85.158.143.35] by server-3.bemta-4.messagelabs.com id
	DB/5C-31122-A7DB7965; Thu, 14 Jan 2016 15:23:38 +0000
X-Env-Sender: arnaud.sahuguet@cornell.edu
X-Msg-Ref: server-15.tower-21.messagelabs.com!1452785014!10104193!1
X-Originating-IP: [128.84.13.242]
X-SpamReason: No, hits=0.4 required=7.0 tests=HTML_30_40,HTML_MESSAGE,
	RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 10508 invoked from network); 14 Jan 2016 15:23:37 -0000
Received: from limerock02.mail.cornell.edu (HELO limerock02.mail.cornell.edu)
	(128.84.13.242) by server-15.tower-21.messagelabs.com with SMTP;
	14 Jan 2016 15:23:37 -0000
X-CornellRouted: This message has been Routed already.
Received: from authusersmtp.mail.cornell.edu (granite3.serverfarm.cornell.edu
	[10.16.197.8])
	by limerock02.mail.cornell.edu (8.14.4/8.14.4_cu) with ESMTP id
	u0EFNYEY026706 for <mirageos-devel@lists.xenproject.org>;
	Thu, 14 Jan 2016 10:23:34 -0500
Received: from mail-qk0-f175.google.com (mail-qk0-f175.google.com
	[209.85.220.175]) (authenticated bits=0)
	by authusersmtp.mail.cornell.edu (8.14.4/8.12.10) with ESMTP id
	u0EFNXUW019849
	(version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT)
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 14 Jan 2016 10:23:34 -0500
Received: by mail-qk0-f175.google.com with SMTP id p186so224836174qke.0
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 14 Jan 2016 07:23:33 -0800 (PST)
X-Gm-Message-State: ALoCoQkryoyUsc8XxH2ojGuA4fMIukBR8h3T5DhWD7gX+4PGKi8Q1QVVWWvPy3Dp2teJe/TSdptezL5r6GLMvCpkqhFdDgDnqg==
X-Received: by 10.112.143.227 with SMTP id sh3mr1295726lbb.55.1452785013146;
	Thu, 14 Jan 2016 07:23:33 -0800 (PST)
MIME-Version: 1.0
Received: by 10.112.235.1 with HTTP; Thu, 14 Jan 2016 07:23:13 -0800 (PST)
In-Reply-To: <5697B393.4060706@mehnert.org>
References: <CAC-LLDiE4J11bvyJXrvee45MwBtH7OifOHUNo3SwDAW0YfPusQ@mail.gmail.com>
	<5697B393.4060706@mehnert.org>
From: Arnaud Sahuguet <arnaud.sahuguet@cornell.edu>
Date: Thu, 14 Jan 2016 10:23:13 -0500
X-Gmail-Original-Message-ID: <CAFAdUyAQC2-Xnnpc259RPb-eHfcahUAw8C95n2DTR17q538ADw@mail.gmail.com>
Message-ID: <CAFAdUyAQC2-Xnnpc259RPb-eHfcahUAw8C95n2DTR17q538ADw@mail.gmail.com>
To: Hannes Mehnert <hannes@mehnert.org>
Cc: mirageos-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel] Compiling C components for mirage-xen
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============2859821775666364016=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============2859821775666364016==
Content-Type: multipart/alternative; boundary=089e01160cd6a4ce4105294cde23

--089e01160cd6a4ce4105294cde23
Content-Type: text/plain; charset=UTF-8

Naive question: for low-level primitives like crypto that require speed,
when do you/we prefer native implementation (in C at the libOS level) vs
oCaml implementation?

regards,

Arnaud


On Thu, Jan 14, 2016 at 9:41 AM, Hannes Mehnert <hannes@mehnert.org> wrote:

> Hi Tim,
>
> On 01/08/2016 11:19, Tim Cuthbertson wrote:
> > I'd like to use `Bcrypt` from the `safepass` opam module in passe[0].
> > There is sadly no `safepass-xen` package, and trying to just use
> > `safepass` results in link errors:
>
> I wonder whether it'd be more than a day of work to implement bcrypt
> directly in OCaml.  Would for sure safe from linking trouble (and be
> automatically memory safe).  An initial version might be 50% or 90% of
> the speed of the pure C variant, but does this really matter for bcrypt?
>
>
> hannes
>
> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>

--089e01160cd6a4ce4105294cde23
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Naive question: for low-level primitives like crypto that =
require speed, when do you/we prefer native implementation (in C at the lib=
OS level) vs oCaml implementation?<div><br></div><div>regards,</div><div><b=
r></div><div>Arnaud</div><div><br></div></div><div class=3D"gmail_extra"><b=
r><div class=3D"gmail_quote">On Thu, Jan 14, 2016 at 9:41 AM, Hannes Mehner=
t <span dir=3D"ltr">&lt;<a href=3D"mailto:hannes@mehnert.org" target=3D"_bl=
ank">hannes@mehnert.org</a>&gt;</span> wrote:<br><blockquote class=3D"gmail=
_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:=
1ex">Hi Tim,<br>
<br>
On 01/08/2016 11:19, Tim Cuthbertson wrote:<br>
&gt; I&#39;d like to use `Bcrypt` from the `safepass` opam module in passe[=
0].<br>
&gt; There is sadly no `safepass-xen` package, and trying to just use<br>
&gt; `safepass` results in link errors:<br>
<br>
I wonder whether it&#39;d be more than a day of work to implement bcrypt<br=
>
directly in OCaml.=C2=A0 Would for sure safe from linking trouble (and be<b=
r>
automatically memory safe).=C2=A0 An initial version might be 50% or 90% of=
<br>
the speed of the pure C variant, but does this really matter for bcrypt?<br=
>
<br>
<br>
hannes<br>
<br>
_______________________________________________<br>
MirageOS-devel mailing list<br>
<a href=3D"mailto:MirageOS-devel@lists.xenproject.org">MirageOS-devel@lists=
.xenproject.org</a><br>
<a href=3D"http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-de=
vel" rel=3D"noreferrer" target=3D"_blank">http://lists.xenproject.org/cgi-b=
in/mailman/listinfo/mirageos-devel</a><br>
</blockquote></div><br></div>

--089e01160cd6a4ce4105294cde23--


--===============2859821775666364016==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============2859821775666364016==--


From mirageos-devel-bounces@lists.xenproject.org Thu Jan 14 15:23:43 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 14 Jan 2016 15:23:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aJjkS-0005oK-L6; Thu, 14 Jan 2016 15:23:40 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <arnaud.sahuguet@cornell.edu>) id 1aJjkR-0005oF-C9
	for mirageos-devel@lists.xenproject.org; Thu, 14 Jan 2016 15:23:39 +0000
Received: from [85.158.143.35] by server-3.bemta-4.messagelabs.com id
	DB/5C-31122-A7DB7965; Thu, 14 Jan 2016 15:23:38 +0000
X-Env-Sender: arnaud.sahuguet@cornell.edu
X-Msg-Ref: server-15.tower-21.messagelabs.com!1452785014!10104193!1
X-Originating-IP: [128.84.13.242]
X-SpamReason: No, hits=0.4 required=7.0 tests=HTML_30_40,HTML_MESSAGE,
	RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 10508 invoked from network); 14 Jan 2016 15:23:37 -0000
Received: from limerock02.mail.cornell.edu (HELO limerock02.mail.cornell.edu)
	(128.84.13.242) by server-15.tower-21.messagelabs.com with SMTP;
	14 Jan 2016 15:23:37 -0000
X-CornellRouted: This message has been Routed already.
Received: from authusersmtp.mail.cornell.edu (granite3.serverfarm.cornell.edu
	[10.16.197.8])
	by limerock02.mail.cornell.edu (8.14.4/8.14.4_cu) with ESMTP id
	u0EFNYEY026706 for <mirageos-devel@lists.xenproject.org>;
	Thu, 14 Jan 2016 10:23:34 -0500
Received: from mail-qk0-f175.google.com (mail-qk0-f175.google.com
	[209.85.220.175]) (authenticated bits=0)
	by authusersmtp.mail.cornell.edu (8.14.4/8.12.10) with ESMTP id
	u0EFNXUW019849
	(version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT)
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 14 Jan 2016 10:23:34 -0500
Received: by mail-qk0-f175.google.com with SMTP id p186so224836174qke.0
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 14 Jan 2016 07:23:33 -0800 (PST)
X-Gm-Message-State: ALoCoQkryoyUsc8XxH2ojGuA4fMIukBR8h3T5DhWD7gX+4PGKi8Q1QVVWWvPy3Dp2teJe/TSdptezL5r6GLMvCpkqhFdDgDnqg==
X-Received: by 10.112.143.227 with SMTP id sh3mr1295726lbb.55.1452785013146;
	Thu, 14 Jan 2016 07:23:33 -0800 (PST)
MIME-Version: 1.0
Received: by 10.112.235.1 with HTTP; Thu, 14 Jan 2016 07:23:13 -0800 (PST)
In-Reply-To: <5697B393.4060706@mehnert.org>
References: <CAC-LLDiE4J11bvyJXrvee45MwBtH7OifOHUNo3SwDAW0YfPusQ@mail.gmail.com>
	<5697B393.4060706@mehnert.org>
From: Arnaud Sahuguet <arnaud.sahuguet@cornell.edu>
Date: Thu, 14 Jan 2016 10:23:13 -0500
X-Gmail-Original-Message-ID: <CAFAdUyAQC2-Xnnpc259RPb-eHfcahUAw8C95n2DTR17q538ADw@mail.gmail.com>
Message-ID: <CAFAdUyAQC2-Xnnpc259RPb-eHfcahUAw8C95n2DTR17q538ADw@mail.gmail.com>
To: Hannes Mehnert <hannes@mehnert.org>
Cc: mirageos-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel] Compiling C components for mirage-xen
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============2859821775666364016=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============2859821775666364016==
Content-Type: multipart/alternative; boundary=089e01160cd6a4ce4105294cde23

--089e01160cd6a4ce4105294cde23
Content-Type: text/plain; charset=UTF-8

Naive question: for low-level primitives like crypto that require speed,
when do you/we prefer native implementation (in C at the libOS level) vs
oCaml implementation?

regards,

Arnaud


On Thu, Jan 14, 2016 at 9:41 AM, Hannes Mehnert <hannes@mehnert.org> wrote:

> Hi Tim,
>
> On 01/08/2016 11:19, Tim Cuthbertson wrote:
> > I'd like to use `Bcrypt` from the `safepass` opam module in passe[0].
> > There is sadly no `safepass-xen` package, and trying to just use
> > `safepass` results in link errors:
>
> I wonder whether it'd be more than a day of work to implement bcrypt
> directly in OCaml.  Would for sure safe from linking trouble (and be
> automatically memory safe).  An initial version might be 50% or 90% of
> the speed of the pure C variant, but does this really matter for bcrypt?
>
>
> hannes
>
> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>

--089e01160cd6a4ce4105294cde23
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Naive question: for low-level primitives like crypto that =
require speed, when do you/we prefer native implementation (in C at the lib=
OS level) vs oCaml implementation?<div><br></div><div>regards,</div><div><b=
r></div><div>Arnaud</div><div><br></div></div><div class=3D"gmail_extra"><b=
r><div class=3D"gmail_quote">On Thu, Jan 14, 2016 at 9:41 AM, Hannes Mehner=
t <span dir=3D"ltr">&lt;<a href=3D"mailto:hannes@mehnert.org" target=3D"_bl=
ank">hannes@mehnert.org</a>&gt;</span> wrote:<br><blockquote class=3D"gmail=
_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:=
1ex">Hi Tim,<br>
<br>
On 01/08/2016 11:19, Tim Cuthbertson wrote:<br>
&gt; I&#39;d like to use `Bcrypt` from the `safepass` opam module in passe[=
0].<br>
&gt; There is sadly no `safepass-xen` package, and trying to just use<br>
&gt; `safepass` results in link errors:<br>
<br>
I wonder whether it&#39;d be more than a day of work to implement bcrypt<br=
>
directly in OCaml.=C2=A0 Would for sure safe from linking trouble (and be<b=
r>
automatically memory safe).=C2=A0 An initial version might be 50% or 90% of=
<br>
the speed of the pure C variant, but does this really matter for bcrypt?<br=
>
<br>
<br>
hannes<br>
<br>
_______________________________________________<br>
MirageOS-devel mailing list<br>
<a href=3D"mailto:MirageOS-devel@lists.xenproject.org">MirageOS-devel@lists=
.xenproject.org</a><br>
<a href=3D"http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-de=
vel" rel=3D"noreferrer" target=3D"_blank">http://lists.xenproject.org/cgi-b=
in/mailman/listinfo/mirageos-devel</a><br>
</blockquote></div><br></div>

--089e01160cd6a4ce4105294cde23--


--===============2859821775666364016==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============2859821775666364016==--


From mirageos-devel-bounces@lists.xenproject.org Thu Jan 14 16:35:43 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 14 Jan 2016 16:35:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aJks4-0001LO-I7; Thu, 14 Jan 2016 16:35:36 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <hannes@mehnert.org>) id 1aJks2-0001L6-VR
	for mirageos-devel@lists.xenproject.org; Thu, 14 Jan 2016 16:35:35 +0000
Received: from [193.109.254.147] by server-3.bemta-14.messagelabs.com id
	7E/27-25435-65EC7965; Thu, 14 Jan 2016 16:35:34 +0000
X-Env-Sender: hannes@mehnert.org
X-Msg-Ref: server-2.tower-27.messagelabs.com!1452789333!14929390!1
X-Originating-IP: [213.73.89.200]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 61537 invoked from network); 14 Jan 2016 16:35:33 -0000
Received: from mail.mehnert.org (HELO mail.mehnert.org) (213.73.89.200)
	by server-2.tower-27.messagelabs.com with DHE-RSA-CAMELLIA256-SHA
	encrypted SMTP; 14 Jan 2016 16:35:33 -0000
Received: from [128.232.110.198] (c198.al.cl.cam.ac.uk [128.232.110.198])
	(using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits))
	(Client CN "hannes@mehnert.org",
	Issuer "mehnert root CA" (not verified))
	by mail.mehnert.org (Postfix) with ESMTPS id 457481120
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 14 Jan 2016 17:35:32 +0100 (CET)
References: <CAC-LLDiE4J11bvyJXrvee45MwBtH7OifOHUNo3SwDAW0YfPusQ@mail.gmail.com>
	<5697B393.4060706@mehnert.org>
	<CAFAdUyAQC2-Xnnpc259RPb-eHfcahUAw8C95n2DTR17q538ADw@mail.gmail.com>
To: mirageos-devel@lists.xenproject.org
From: Hannes Mehnert <hannes@mehnert.org>
Openpgp: id=11B5464249B5BD858FFF6328BC896588DF7C28EE
X-Enigmail-Draft-Status: N1110
Message-ID: <5697CE47.2010406@mehnert.org>
Date: Thu, 14 Jan 2016 16:35:19 +0000
User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:38.0) Gecko/20100101
	Thunderbird/38.3.0
MIME-Version: 1.0
In-Reply-To: <CAFAdUyAQC2-Xnnpc259RPb-eHfcahUAw8C95n2DTR17q538ADw@mail.gmail.com>
Subject: Re: [MirageOS-devel] Compiling C components for mirage-xen
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 01/14/2016 15:23, Arnaud Sahuguet wrote:
> Naive question: for low-level primitives like crypto that require speed,
> when do you/we prefer native implementation (in C at the libOS level) vs
> OCaml implementation?

I prefer nearly always OCaml code.  In our nqsb-tls paper
(https://nqsb.io/nqsbtls-usenix-security15.pdf) there's in Section 4.2 a
brief description of nocrypto.

It uses allocation-free (and (data-dependent) loop free) C code for the
AES and SHA1/SHA2 cores.  The C code gets a source and destination byte
vector, as well as a key, and does only the bit twiddling.  The cipher
modes (CBC/CTR/GCM/CCM) are implemented in OCaml.


hannes

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Thu Jan 14 16:35:43 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 14 Jan 2016 16:35:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aJks4-0001LO-I7; Thu, 14 Jan 2016 16:35:36 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <hannes@mehnert.org>) id 1aJks2-0001L6-VR
	for mirageos-devel@lists.xenproject.org; Thu, 14 Jan 2016 16:35:35 +0000
Received: from [193.109.254.147] by server-3.bemta-14.messagelabs.com id
	7E/27-25435-65EC7965; Thu, 14 Jan 2016 16:35:34 +0000
X-Env-Sender: hannes@mehnert.org
X-Msg-Ref: server-2.tower-27.messagelabs.com!1452789333!14929390!1
X-Originating-IP: [213.73.89.200]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 61537 invoked from network); 14 Jan 2016 16:35:33 -0000
Received: from mail.mehnert.org (HELO mail.mehnert.org) (213.73.89.200)
	by server-2.tower-27.messagelabs.com with DHE-RSA-CAMELLIA256-SHA
	encrypted SMTP; 14 Jan 2016 16:35:33 -0000
Received: from [128.232.110.198] (c198.al.cl.cam.ac.uk [128.232.110.198])
	(using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits))
	(Client CN "hannes@mehnert.org",
	Issuer "mehnert root CA" (not verified))
	by mail.mehnert.org (Postfix) with ESMTPS id 457481120
	for <mirageos-devel@lists.xenproject.org>;
	Thu, 14 Jan 2016 17:35:32 +0100 (CET)
References: <CAC-LLDiE4J11bvyJXrvee45MwBtH7OifOHUNo3SwDAW0YfPusQ@mail.gmail.com>
	<5697B393.4060706@mehnert.org>
	<CAFAdUyAQC2-Xnnpc259RPb-eHfcahUAw8C95n2DTR17q538ADw@mail.gmail.com>
To: mirageos-devel@lists.xenproject.org
From: Hannes Mehnert <hannes@mehnert.org>
Openpgp: id=11B5464249B5BD858FFF6328BC896588DF7C28EE
X-Enigmail-Draft-Status: N1110
Message-ID: <5697CE47.2010406@mehnert.org>
Date: Thu, 14 Jan 2016 16:35:19 +0000
User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:38.0) Gecko/20100101
	Thunderbird/38.3.0
MIME-Version: 1.0
In-Reply-To: <CAFAdUyAQC2-Xnnpc259RPb-eHfcahUAw8C95n2DTR17q538ADw@mail.gmail.com>
Subject: Re: [MirageOS-devel] Compiling C components for mirage-xen
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 01/14/2016 15:23, Arnaud Sahuguet wrote:
> Naive question: for low-level primitives like crypto that require speed,
> when do you/we prefer native implementation (in C at the libOS level) vs
> OCaml implementation?

I prefer nearly always OCaml code.  In our nqsb-tls paper
(https://nqsb.io/nqsbtls-usenix-security15.pdf) there's in Section 4.2 a
brief description of nocrypto.

It uses allocation-free (and (data-dependent) loop free) C code for the
AES and SHA1/SHA2 cores.  The C code gets a source and destination byte
vector, as well as a key, and does only the bit twiddling.  The cipher
modes (CBC/CTR/GCM/CCM) are implemented in OCaml.


hannes

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Fri Jan 15 08:59:14 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 15 Jan 2016 08:59:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aK0Dn-0000Z9-9y; Fri, 15 Jan 2016 08:59:03 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <stefanxe@gmx.net>) id 1aK0Dm-0000Z4-2v
	for MirageOS-devel@lists.xenproject.org; Fri, 15 Jan 2016 08:59:02 +0000
Received: from [85.158.139.211] by server-4.bemta-5.messagelabs.com id
	A4/55-24856-5D4B8965; Fri, 15 Jan 2016 08:59:01 +0000
X-Env-Sender: stefanxe@gmx.net
X-Msg-Ref: server-14.tower-206.messagelabs.com!1452848340!15714921!1
X-Originating-IP: [212.227.17.21]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
	QmFkIElQOiAyMTIuMjI3LjE3LjIxID0+IDI1Mjg0\n,sa_preprocessor: 
	QmFkIElQOiAyMTIuMjI3LjE3LjIxID0+IDI1Mjg0\n
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 47875 invoked from network); 15 Jan 2016 08:59:00 -0000
Received: from mout.gmx.net (HELO mout.gmx.net) (212.227.17.21)
	by server-14.tower-206.messagelabs.com with DHE-RSA-AES256-GCM-SHA384
	encrypted SMTP; 15 Jan 2016 08:59:00 -0000
Received: from [192.168.4.56] ([80.153.118.62]) by mail.gmx.com (mrgmx102)
	with ESMTPSA (Nemesis) id 0Las1k-1ZrEzM0U0m-00kOmd for
	<MirageOS-devel@lists.xenproject.org>; Fri, 15 Jan 2016 09:59:00 +0100
To: MirageOS-devel@lists.xenproject.org
From: Stefan Xenon <stefanxe@gmx.net>
Message-ID: <5698B4D2.9080409@gmx.net>
Date: Fri, 15 Jan 2016 09:58:58 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101
	Thunderbird/38.5.1
MIME-Version: 1.0
X-Provags-ID: V03:K0:3PjO6E0XlLu8RWPYaorA5IkpTjesscHrXbvoiX0Lv9xqxN60fWV
	oBZ5WXtyRohRPANtpo9AJrTQ9cNtQttJStu56ypE+/HrJd70L50krMCcizZgXu8TRjEAUmb
	Lg0GxOoPTKpbr3e9kjdKnz0w4fgY3BvzsWHkNgz5u0ioZQ8YAWNQTId2BSMtzh0JirM6HoX
	kAysIk09aeOx3GrcILKMw==
X-UI-Out-Filterresults: notjunk:1;V01:K0:fDNUTlIdNqE=:zu9YntYYcdfk7FwTbfstvw
	De2xjvB7G/939rvImuHYv3wCbFCmRW1/I72UYJbbbODunXBEm0B6D/VatqcWF+RkLSDwjLr8P
	HGHJJnHbzPPG7bC3JeFu8Ss2UE6JemCkHyVlzODvpFghsJBN7TMpdW44uW3pXrSCgksKFXhzO
	JDI7nEcO5pes45Bp0ciPGxS0ZeScRZMCOGkDRt0H/wqIcqlNl7o87gKNaUwMkNJuzPCI0ho+4
	+rvmJndsv79kyKkxzpHoTfEZfoyMUIxLlbgKlcCPpzH6LQnAvi8u43hUCu19i1iZPjUFytnkB
	V4qFoJ0gtZQAtyiUIZCahFKgXfTcC1KGwmYQX92h0Fyl+wYGCapyaYLlfiIsWQCIpHyyB6NBl
	EwPEN2ALZhZkhF88k6CJJodDfrfmRn2tLAjAUsQWWntNI0F3pWqUvi2w6JjvMUuORJ5ZjCu3b
	O8m/hHu3O5GOOj+myBFRA1tQumg9Ph3H/6FMuaRaDQz7ZMblOryKEr89gpbKaMN5LR+hvQesA
	rneGfe0xt3ZEPb6ccdC1wrM+byX74ievg4M5OeYfsJBnbAueIpKYyIDMzh0SswIkhfkeEeasE
	9L+ALB6KAQRTkveTRaS2uYZAwUSbSQ/TS5qxsrIQ24oTybKL0FHXODTgLJB1FVCRukz5wci3s
	xUfAGLffQIj3GgHLCpX2gMt1RH/JqysUfOy7WW+Dm+V6R278FWZgTDESQC8q3j6m/Kzviyzy1
	Lwm4OBIP4Ac9Wsi37B7fUi0KHt2kx+2W6n4NT2KB5NiUbmXrjrszVEMA6hsyrV7dIFpa5WySi
	mQod/Ec
Subject: [MirageOS-devel] utilizing multicore systems
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

Hi!
I would like to understand better how Mirage is used on multi-core systems.

I understand that usually one unikernel can be started on each core. The
unikernels would be totally independent and vchan can be used for
connecting those unikernels. If all unikernel instances are of the same
type (e.g. serving a website), is there any mechanism to support
clustering or load sharing among them or would this have to be
implemented manually by deploying a separate load balancer for instance?

I'm considering buying ODROID-XU4 which provides several Cortex-A15 and
Cortex-A7 cores. In that case, how can I define on which core a specific
unikernel will be started?

Thanks for your help.

Stefan

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Fri Jan 15 08:59:14 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 15 Jan 2016 08:59:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aK0Dn-0000Z9-9y; Fri, 15 Jan 2016 08:59:03 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <stefanxe@gmx.net>) id 1aK0Dm-0000Z4-2v
	for MirageOS-devel@lists.xenproject.org; Fri, 15 Jan 2016 08:59:02 +0000
Received: from [85.158.139.211] by server-4.bemta-5.messagelabs.com id
	A4/55-24856-5D4B8965; Fri, 15 Jan 2016 08:59:01 +0000
X-Env-Sender: stefanxe@gmx.net
X-Msg-Ref: server-14.tower-206.messagelabs.com!1452848340!15714921!1
X-Originating-IP: [212.227.17.21]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
	QmFkIElQOiAyMTIuMjI3LjE3LjIxID0+IDI1Mjg0\n,sa_preprocessor: 
	QmFkIElQOiAyMTIuMjI3LjE3LjIxID0+IDI1Mjg0\n
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 47875 invoked from network); 15 Jan 2016 08:59:00 -0000
Received: from mout.gmx.net (HELO mout.gmx.net) (212.227.17.21)
	by server-14.tower-206.messagelabs.com with DHE-RSA-AES256-GCM-SHA384
	encrypted SMTP; 15 Jan 2016 08:59:00 -0000
Received: from [192.168.4.56] ([80.153.118.62]) by mail.gmx.com (mrgmx102)
	with ESMTPSA (Nemesis) id 0Las1k-1ZrEzM0U0m-00kOmd for
	<MirageOS-devel@lists.xenproject.org>; Fri, 15 Jan 2016 09:59:00 +0100
To: MirageOS-devel@lists.xenproject.org
From: Stefan Xenon <stefanxe@gmx.net>
Message-ID: <5698B4D2.9080409@gmx.net>
Date: Fri, 15 Jan 2016 09:58:58 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101
	Thunderbird/38.5.1
MIME-Version: 1.0
X-Provags-ID: V03:K0:3PjO6E0XlLu8RWPYaorA5IkpTjesscHrXbvoiX0Lv9xqxN60fWV
	oBZ5WXtyRohRPANtpo9AJrTQ9cNtQttJStu56ypE+/HrJd70L50krMCcizZgXu8TRjEAUmb
	Lg0GxOoPTKpbr3e9kjdKnz0w4fgY3BvzsWHkNgz5u0ioZQ8YAWNQTId2BSMtzh0JirM6HoX
	kAysIk09aeOx3GrcILKMw==
X-UI-Out-Filterresults: notjunk:1;V01:K0:fDNUTlIdNqE=:zu9YntYYcdfk7FwTbfstvw
	De2xjvB7G/939rvImuHYv3wCbFCmRW1/I72UYJbbbODunXBEm0B6D/VatqcWF+RkLSDwjLr8P
	HGHJJnHbzPPG7bC3JeFu8Ss2UE6JemCkHyVlzODvpFghsJBN7TMpdW44uW3pXrSCgksKFXhzO
	JDI7nEcO5pes45Bp0ciPGxS0ZeScRZMCOGkDRt0H/wqIcqlNl7o87gKNaUwMkNJuzPCI0ho+4
	+rvmJndsv79kyKkxzpHoTfEZfoyMUIxLlbgKlcCPpzH6LQnAvi8u43hUCu19i1iZPjUFytnkB
	V4qFoJ0gtZQAtyiUIZCahFKgXfTcC1KGwmYQX92h0Fyl+wYGCapyaYLlfiIsWQCIpHyyB6NBl
	EwPEN2ALZhZkhF88k6CJJodDfrfmRn2tLAjAUsQWWntNI0F3pWqUvi2w6JjvMUuORJ5ZjCu3b
	O8m/hHu3O5GOOj+myBFRA1tQumg9Ph3H/6FMuaRaDQz7ZMblOryKEr89gpbKaMN5LR+hvQesA
	rneGfe0xt3ZEPb6ccdC1wrM+byX74ievg4M5OeYfsJBnbAueIpKYyIDMzh0SswIkhfkeEeasE
	9L+ALB6KAQRTkveTRaS2uYZAwUSbSQ/TS5qxsrIQ24oTybKL0FHXODTgLJB1FVCRukz5wci3s
	xUfAGLffQIj3GgHLCpX2gMt1RH/JqysUfOy7WW+Dm+V6R278FWZgTDESQC8q3j6m/Kzviyzy1
	Lwm4OBIP4Ac9Wsi37B7fUi0KHt2kx+2W6n4NT2KB5NiUbmXrjrszVEMA6hsyrV7dIFpa5WySi
	mQod/Ec
Subject: [MirageOS-devel] utilizing multicore systems
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

Hi!
I would like to understand better how Mirage is used on multi-core systems.

I understand that usually one unikernel can be started on each core. The
unikernels would be totally independent and vchan can be used for
connecting those unikernels. If all unikernel instances are of the same
type (e.g. serving a website), is there any mechanism to support
clustering or load sharing among them or would this have to be
implemented manually by deploying a separate load balancer for instance?

I'm considering buying ODROID-XU4 which provides several Cortex-A15 and
Cortex-A7 cores. In that case, how can I define on which core a specific
unikernel will be started?

Thanks for your help.

Stefan

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Fri Jan 15 15:27:06 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 15 Jan 2016 15:27:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aK6HB-0003cS-7S; Fri, 15 Jan 2016 15:26:57 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <talex5@gmail.com>) id 1aK6HA-0003c2-CQ
	for mirageos-devel@lists.xenproject.org; Fri, 15 Jan 2016 15:26:56 +0000
Received: from [193.109.254.147] by server-9.bemta-14.messagelabs.com id
	51/5D-13475-BBF09965; Fri, 15 Jan 2016 15:26:51 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-16.tower-27.messagelabs.com!1452871609!17105746!1
X-Originating-IP: [209.85.213.53]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 13966 invoked from network); 15 Jan 2016 15:26:50 -0000
Received: from mail-vk0-f53.google.com (HELO mail-vk0-f53.google.com)
	(209.85.213.53)
	by server-16.tower-27.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 15 Jan 2016 15:26:50 -0000
Received: by mail-vk0-f53.google.com with SMTP id i129so161897452vkb.0
	for <mirageos-devel@lists.xenproject.org>;
	Fri, 15 Jan 2016 07:26:49 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=c4wxzX2NtRxtZoKoP2y8SrJ85+BXF5J2gOTbhUdkmSs=;
	b=bibOzJqKJgaZ2kG7J3ZKIqOJptbZ+SlPm735plGorVHBZJqfMxVqPrI2uQW/OsPIwQ
	vq636vwCZyXyq/O3tMocmiZcN0/DhXZIAPO2RucKXDyEfpXel++sdmbLX+nlqbjnVcCf
	7jRaMT6mk7m7Q3GyrgLJ0QA/uz0FuOwV3zW7i4nNFzadwZJnyK0TXmIHZJz8klKcc8Ta
	t4Ap7MkLTxYEx7Cq9+A2tBHsMM3W9hmXSm0qPQydTBn0sDZ+vMW4GLW4A/vMo+kiLbm8
	Xq4uqmeK0v0gys2ErnUmNOfyxkTY1hRdm0sevH1tT7cDjgaa7YwE1jRfoUKZ/NWYEL5I
	LRJA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:in-reply-to:references:date
	:message-id:subject:from:to:cc:content-type;
	bh=c4wxzX2NtRxtZoKoP2y8SrJ85+BXF5J2gOTbhUdkmSs=;
	b=Ry5zIgvjctua77XRxgZJPrTsKgnzgnLAPdui9xwf82fIhHVMSQOancuqpKCrEWWGj6
	+AOIpn1GxCDbjTfCn3pH7dE198XJoZfK23is359YoK3Fi9JNgQsvJPkoNR2hoxPJ0HeO
	t80d3ec8LMy5XdE1BGPT8SIv4VWXBZ5AP9VX2KOeVA+PTKkTh/tSKKAwh6qMBg8S+LbS
	gFI4vajxfdiOZxslN2Rv4FAHlB6oW6TQt1Mtik7vZ2AzL8jcwzkOWnWYvTLNEPwOXSUq
	xcwTuGlKLNM2CIoH4yV5FBEKbPWcWvJC+f3dCzGgU+znU8PJTHGYGYgdEYYS2dTcOC0f
	h/Uw==
X-Gm-Message-State: ALoCoQnpSi9EEbY2ySMbTviRKE/FC47jZ3w6HnV3g/mNtuioypHv/2bKOLU0xgyWrtTuL2jbyOMPTa+sljWzNjDejXrRnHo0PA==
MIME-Version: 1.0
X-Received: by 10.31.168.205 with SMTP id r196mr8075284vke.120.1452871609020; 
	Fri, 15 Jan 2016 07:26:49 -0800 (PST)
Received: by 10.31.128.84 with HTTP; Fri, 15 Jan 2016 07:26:48 -0800 (PST)
In-Reply-To: <CAF0KdiNby-QtgWSf+FOmo+3PhD7ZFpvvxMXvs32sEkJXh8BLWg@mail.gmail.com>
References: <CAF0KdiNby-QtgWSf+FOmo+3PhD7ZFpvvxMXvs32sEkJXh8BLWg@mail.gmail.com>
Date: Fri, 15 Jan 2016 15:26:48 +0000
Message-ID: <CAG4opy_kuTCiH7cECZBOJjJpCxOCaYeRG1qwdaA7eLKn1_SmkA@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Vasilis Goumas <bgoumas@gmail.com>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] beginner contributing to mirage
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 10 January 2016 at 23:07, Vasilis Goumas <bgoumas@gmail.com> wrote:
> Greetings,
>
> My name is Vasilis and I am a computer engineering student.
>
> Recently I discovered MirageOS project and I am since quite interested in
> it. So I would like contributing some code.
>
> I have beginner Ocaml skills and I have never taken part in a software
> project that big, so I view this also as an opportunity to sharpen these
> skills.
>
> A beginner project I encountered is "local synchronization between git
> repos", the first one noted under the category "storage" in [1].
>
> Ideally, pairing me up with a mentor for completing the above, or other
> beginner task would be cool :)
>
> [1]  https://github.com/mirage/mirage-www/wiki/Pioneer-Projects

Hi Vasilis,

That's great. The mentor for git sync is Thomas Gazagnaire, who should
be back from holiday next week.


By the way, I'm not sure these star ratings are very accurate. This is
a 1-star project, but it looks quite hard to me! Are you familiar with
the Git protocol? If not, learning that and OCaml at the same time
might be tricky.

If anyone wants some really easy (but useful!) getting started tasks,
I've added a pioneer project to find libraries using printf and update
them to use Logs:

https://github.com/mirage/mirage-www/wiki/Pioneer-Projects#logging


-- 
Dr Thomas Leonard        http://roscidus.com/blog/
GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Fri Jan 15 15:27:06 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 15 Jan 2016 15:27:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aK6HB-0003cS-7S; Fri, 15 Jan 2016 15:26:57 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <talex5@gmail.com>) id 1aK6HA-0003c2-CQ
	for mirageos-devel@lists.xenproject.org; Fri, 15 Jan 2016 15:26:56 +0000
Received: from [193.109.254.147] by server-9.bemta-14.messagelabs.com id
	51/5D-13475-BBF09965; Fri, 15 Jan 2016 15:26:51 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-16.tower-27.messagelabs.com!1452871609!17105746!1
X-Originating-IP: [209.85.213.53]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 13966 invoked from network); 15 Jan 2016 15:26:50 -0000
Received: from mail-vk0-f53.google.com (HELO mail-vk0-f53.google.com)
	(209.85.213.53)
	by server-16.tower-27.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 15 Jan 2016 15:26:50 -0000
Received: by mail-vk0-f53.google.com with SMTP id i129so161897452vkb.0
	for <mirageos-devel@lists.xenproject.org>;
	Fri, 15 Jan 2016 07:26:49 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=c4wxzX2NtRxtZoKoP2y8SrJ85+BXF5J2gOTbhUdkmSs=;
	b=bibOzJqKJgaZ2kG7J3ZKIqOJptbZ+SlPm735plGorVHBZJqfMxVqPrI2uQW/OsPIwQ
	vq636vwCZyXyq/O3tMocmiZcN0/DhXZIAPO2RucKXDyEfpXel++sdmbLX+nlqbjnVcCf
	7jRaMT6mk7m7Q3GyrgLJ0QA/uz0FuOwV3zW7i4nNFzadwZJnyK0TXmIHZJz8klKcc8Ta
	t4Ap7MkLTxYEx7Cq9+A2tBHsMM3W9hmXSm0qPQydTBn0sDZ+vMW4GLW4A/vMo+kiLbm8
	Xq4uqmeK0v0gys2ErnUmNOfyxkTY1hRdm0sevH1tT7cDjgaa7YwE1jRfoUKZ/NWYEL5I
	LRJA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:in-reply-to:references:date
	:message-id:subject:from:to:cc:content-type;
	bh=c4wxzX2NtRxtZoKoP2y8SrJ85+BXF5J2gOTbhUdkmSs=;
	b=Ry5zIgvjctua77XRxgZJPrTsKgnzgnLAPdui9xwf82fIhHVMSQOancuqpKCrEWWGj6
	+AOIpn1GxCDbjTfCn3pH7dE198XJoZfK23is359YoK3Fi9JNgQsvJPkoNR2hoxPJ0HeO
	t80d3ec8LMy5XdE1BGPT8SIv4VWXBZ5AP9VX2KOeVA+PTKkTh/tSKKAwh6qMBg8S+LbS
	gFI4vajxfdiOZxslN2Rv4FAHlB6oW6TQt1Mtik7vZ2AzL8jcwzkOWnWYvTLNEPwOXSUq
	xcwTuGlKLNM2CIoH4yV5FBEKbPWcWvJC+f3dCzGgU+znU8PJTHGYGYgdEYYS2dTcOC0f
	h/Uw==
X-Gm-Message-State: ALoCoQnpSi9EEbY2ySMbTviRKE/FC47jZ3w6HnV3g/mNtuioypHv/2bKOLU0xgyWrtTuL2jbyOMPTa+sljWzNjDejXrRnHo0PA==
MIME-Version: 1.0
X-Received: by 10.31.168.205 with SMTP id r196mr8075284vke.120.1452871609020; 
	Fri, 15 Jan 2016 07:26:49 -0800 (PST)
Received: by 10.31.128.84 with HTTP; Fri, 15 Jan 2016 07:26:48 -0800 (PST)
In-Reply-To: <CAF0KdiNby-QtgWSf+FOmo+3PhD7ZFpvvxMXvs32sEkJXh8BLWg@mail.gmail.com>
References: <CAF0KdiNby-QtgWSf+FOmo+3PhD7ZFpvvxMXvs32sEkJXh8BLWg@mail.gmail.com>
Date: Fri, 15 Jan 2016 15:26:48 +0000
Message-ID: <CAG4opy_kuTCiH7cECZBOJjJpCxOCaYeRG1qwdaA7eLKn1_SmkA@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Vasilis Goumas <bgoumas@gmail.com>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] beginner contributing to mirage
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 10 January 2016 at 23:07, Vasilis Goumas <bgoumas@gmail.com> wrote:
> Greetings,
>
> My name is Vasilis and I am a computer engineering student.
>
> Recently I discovered MirageOS project and I am since quite interested in
> it. So I would like contributing some code.
>
> I have beginner Ocaml skills and I have never taken part in a software
> project that big, so I view this also as an opportunity to sharpen these
> skills.
>
> A beginner project I encountered is "local synchronization between git
> repos", the first one noted under the category "storage" in [1].
>
> Ideally, pairing me up with a mentor for completing the above, or other
> beginner task would be cool :)
>
> [1]  https://github.com/mirage/mirage-www/wiki/Pioneer-Projects

Hi Vasilis,

That's great. The mentor for git sync is Thomas Gazagnaire, who should
be back from holiday next week.


By the way, I'm not sure these star ratings are very accurate. This is
a 1-star project, but it looks quite hard to me! Are you familiar with
the Git protocol? If not, learning that and OCaml at the same time
might be tricky.

If anyone wants some really easy (but useful!) getting started tasks,
I've added a pioneer project to find libraries using printf and update
them to use Logs:

https://github.com/mirage/mirage-www/wiki/Pioneer-Projects#logging


-- 
Dr Thomas Leonard        http://roscidus.com/blog/
GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Fri Jan 15 15:43:13 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 15 Jan 2016 15:43:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aK6Wt-0004mN-Bn; Fri, 15 Jan 2016 15:43:11 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <talex5@gmail.com>) id 1aK6Ws-0004mF-0F
	for MirageOS-devel@lists.xenproject.org; Fri, 15 Jan 2016 15:43:10 +0000
Received: from [85.158.139.211] by server-12.bemta-5.messagelabs.com id
	02/D4-17089-D8319965; Fri, 15 Jan 2016 15:43:09 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-14.tower-206.messagelabs.com!1452872587!15833806!1
X-Originating-IP: [209.85.213.54]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 22337 invoked from network); 15 Jan 2016 15:43:08 -0000
Received: from mail-vk0-f54.google.com (HELO mail-vk0-f54.google.com)
	(209.85.213.54)
	by server-14.tower-206.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 15 Jan 2016 15:43:08 -0000
Received: by mail-vk0-f54.google.com with SMTP id i129so162178531vkb.0
	for <MirageOS-devel@lists.xenproject.org>;
	Fri, 15 Jan 2016 07:43:08 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=a/2zdmRiMh49ZY4OCn2F8EEEVxv4ZcD2QQzMzu0+6wo=;
	b=yZLanaeJDHujzj8luNEu8VzFTED/pqOV8WOLOhmeR8kWsm1x/c2Z3UdTLZeyDT3BlY
	jYiQb7KNsBNlvPLsc8beyrT75vsQWV2Mot35TR/pfwjAdW7aPFzZK+B4diHHHg0GG78C
	bS+CDYmF7vGtSZkgaPo8H4xT1suulDTUtb4RLRmS1ni8ibIar/d3rPNbGByPkG1Llpbw
	pB86SndEYrWQ23/aXrG77HfQFwRYKArBWsRVRjS52QiI2x9M49ZAfY4LUW07p4OYEKxi
	GRg8wqmF+fwE+kRX4ciJ6BcBffkdfkOmYsyO8ncpJs3CoqYS7hesI9fUh0Ldz6K+QpUw
	qmAg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:in-reply-to:references:date
	:message-id:subject:from:to:cc:content-type;
	bh=a/2zdmRiMh49ZY4OCn2F8EEEVxv4ZcD2QQzMzu0+6wo=;
	b=Y+4xMuoXXdkjCqiKyg3Wcz4opLd3fDfNQf17igaZZeihE9ArJ3xEM4Zr5oz61kSxrK
	FmjJckVYWbZNj0VLOAPP1gD/kwQ/J3GYAA3avjITO14BB1mV/7eJ0pX3IyLRSZ6YtWrJ
	6jYb1BltDXRDlm1BojkmyCLCYwhHITvsP0DQYaMcP7PZW9MbaX8cvOz/3/DW9qtb3bXK
	+vTUl2KMskpv6JGo7lKPMjTp0g0g4LxNK/T/ywwOBHYTXf6kAegCXxXg4mApCLpT6Gll
	Gm33I1AWlVJsxlw358O3bYArtgJf4VrGknC/JnOQtp2y+jzBDmHtgPpyGEkv4RuVs5xo
	IXUQ==
X-Gm-Message-State: ALoCoQnzUDABNeowOqFxg4Q4fpbIxDPlNS8jS+JLQH8Ja7zkgIwBpWblvs8QoyICRWB/jSvnDVFLfvps33Rmx10tBlEsnfyFMQ==
MIME-Version: 1.0
X-Received: by 10.31.178.134 with SMTP id b128mr7284884vkf.112.1452872587579; 
	Fri, 15 Jan 2016 07:43:07 -0800 (PST)
Received: by 10.31.128.84 with HTTP; Fri, 15 Jan 2016 07:43:07 -0800 (PST)
In-Reply-To: <5698B4D2.9080409@gmx.net>
References: <5698B4D2.9080409@gmx.net>
Date: Fri, 15 Jan 2016 15:43:07 +0000
Message-ID: <CAG4opy8UUY4r=Q0-QoUBbWW9uZjuwv5VfyqXnJj-EYDzhLFERA@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Stefan Xenon <stefanxe@gmx.net>
Cc: "mirageos-devel@lists.xenproject.org" <MirageOS-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] utilizing multicore systems
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 15 January 2016 at 08:58, Stefan Xenon <stefanxe@gmx.net> wrote:
> Hi!
> I would like to understand better how Mirage is used on multi-core systems.
>
> I understand that usually one unikernel can be started on each core. The
> unikernels would be totally independent and vchan can be used for
> connecting those unikernels. If all unikernel instances are of the same
> type (e.g. serving a website), is there any mechanism to support
> clustering or load sharing among them or would this have to be
> implemented manually by deploying a separate load balancer for instance?
>
> I'm considering buying ODROID-XU4 which provides several Cortex-A15 and
> Cortex-A7 cores. In that case, how can I define on which core a specific
> unikernel will be started?

I'm not sure anyone has got Mirage working on the ODROID-XU4 yet:

http://lists.xenproject.org/archives/html/minios-devel/2015-12/msg00025.html
http://lists.xenproject.org/archives/html/minios-devel/2016-01/msg00000.html

If you have time to fix it, that would be great though...


-- 
Dr Thomas Leonard        http://roscidus.com/blog/
GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Fri Jan 15 15:43:13 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 15 Jan 2016 15:43:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aK6Wt-0004mN-Bn; Fri, 15 Jan 2016 15:43:11 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <talex5@gmail.com>) id 1aK6Ws-0004mF-0F
	for MirageOS-devel@lists.xenproject.org; Fri, 15 Jan 2016 15:43:10 +0000
Received: from [85.158.139.211] by server-12.bemta-5.messagelabs.com id
	02/D4-17089-D8319965; Fri, 15 Jan 2016 15:43:09 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-14.tower-206.messagelabs.com!1452872587!15833806!1
X-Originating-IP: [209.85.213.54]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 22337 invoked from network); 15 Jan 2016 15:43:08 -0000
Received: from mail-vk0-f54.google.com (HELO mail-vk0-f54.google.com)
	(209.85.213.54)
	by server-14.tower-206.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 15 Jan 2016 15:43:08 -0000
Received: by mail-vk0-f54.google.com with SMTP id i129so162178531vkb.0
	for <MirageOS-devel@lists.xenproject.org>;
	Fri, 15 Jan 2016 07:43:08 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=a/2zdmRiMh49ZY4OCn2F8EEEVxv4ZcD2QQzMzu0+6wo=;
	b=yZLanaeJDHujzj8luNEu8VzFTED/pqOV8WOLOhmeR8kWsm1x/c2Z3UdTLZeyDT3BlY
	jYiQb7KNsBNlvPLsc8beyrT75vsQWV2Mot35TR/pfwjAdW7aPFzZK+B4diHHHg0GG78C
	bS+CDYmF7vGtSZkgaPo8H4xT1suulDTUtb4RLRmS1ni8ibIar/d3rPNbGByPkG1Llpbw
	pB86SndEYrWQ23/aXrG77HfQFwRYKArBWsRVRjS52QiI2x9M49ZAfY4LUW07p4OYEKxi
	GRg8wqmF+fwE+kRX4ciJ6BcBffkdfkOmYsyO8ncpJs3CoqYS7hesI9fUh0Ldz6K+QpUw
	qmAg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:in-reply-to:references:date
	:message-id:subject:from:to:cc:content-type;
	bh=a/2zdmRiMh49ZY4OCn2F8EEEVxv4ZcD2QQzMzu0+6wo=;
	b=Y+4xMuoXXdkjCqiKyg3Wcz4opLd3fDfNQf17igaZZeihE9ArJ3xEM4Zr5oz61kSxrK
	FmjJckVYWbZNj0VLOAPP1gD/kwQ/J3GYAA3avjITO14BB1mV/7eJ0pX3IyLRSZ6YtWrJ
	6jYb1BltDXRDlm1BojkmyCLCYwhHITvsP0DQYaMcP7PZW9MbaX8cvOz/3/DW9qtb3bXK
	+vTUl2KMskpv6JGo7lKPMjTp0g0g4LxNK/T/ywwOBHYTXf6kAegCXxXg4mApCLpT6Gll
	Gm33I1AWlVJsxlw358O3bYArtgJf4VrGknC/JnOQtp2y+jzBDmHtgPpyGEkv4RuVs5xo
	IXUQ==
X-Gm-Message-State: ALoCoQnzUDABNeowOqFxg4Q4fpbIxDPlNS8jS+JLQH8Ja7zkgIwBpWblvs8QoyICRWB/jSvnDVFLfvps33Rmx10tBlEsnfyFMQ==
MIME-Version: 1.0
X-Received: by 10.31.178.134 with SMTP id b128mr7284884vkf.112.1452872587579; 
	Fri, 15 Jan 2016 07:43:07 -0800 (PST)
Received: by 10.31.128.84 with HTTP; Fri, 15 Jan 2016 07:43:07 -0800 (PST)
In-Reply-To: <5698B4D2.9080409@gmx.net>
References: <5698B4D2.9080409@gmx.net>
Date: Fri, 15 Jan 2016 15:43:07 +0000
Message-ID: <CAG4opy8UUY4r=Q0-QoUBbWW9uZjuwv5VfyqXnJj-EYDzhLFERA@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Stefan Xenon <stefanxe@gmx.net>
Cc: "mirageos-devel@lists.xenproject.org" <MirageOS-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] utilizing multicore systems
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 15 January 2016 at 08:58, Stefan Xenon <stefanxe@gmx.net> wrote:
> Hi!
> I would like to understand better how Mirage is used on multi-core systems.
>
> I understand that usually one unikernel can be started on each core. The
> unikernels would be totally independent and vchan can be used for
> connecting those unikernels. If all unikernel instances are of the same
> type (e.g. serving a website), is there any mechanism to support
> clustering or load sharing among them or would this have to be
> implemented manually by deploying a separate load balancer for instance?
>
> I'm considering buying ODROID-XU4 which provides several Cortex-A15 and
> Cortex-A7 cores. In that case, how can I define on which core a specific
> unikernel will be started?

I'm not sure anyone has got Mirage working on the ODROID-XU4 yet:

http://lists.xenproject.org/archives/html/minios-devel/2015-12/msg00025.html
http://lists.xenproject.org/archives/html/minios-devel/2016-01/msg00000.html

If you have time to fix it, that would be great though...


-- 
Dr Thomas Leonard        http://roscidus.com/blog/
GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Fri Jan 15 16:15:36 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 15 Jan 2016 16:15:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aK72D-00019Q-P9; Fri, 15 Jan 2016 16:15:33 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <anil@recoil.org>) id 1aK72C-00019G-A8
	for mirageos-devel@lists.xenproject.org; Fri, 15 Jan 2016 16:15:32 +0000
Received: from [85.158.143.35] by server-2.bemta-4.messagelabs.com id
	5B/74-08977-32B19965; Fri, 15 Jan 2016 16:15:31 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-10.tower-21.messagelabs.com!1452874530!10332330!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=0.2 required=7.0 tests=RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 39791 invoked from network); 15 Jan 2016 16:15:30 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-10.tower-21.messagelabs.com with DHE-RSA-AES256-GCM-SHA384
	encrypted SMTP; 15 Jan 2016 16:15:30 -0000
Received: from bark.recoil.org (localhost [127.0.0.1])
	by bark.recoil.org (OpenSMTPD) with ESMTP id 281ee30a;
	Fri, 15 Jan 2016 16:15:29 +0000 (GMT)
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=recoil.org; h=content-type
	:mime-version:subject:from:in-reply-to:date:cc
	:content-transfer-encoding:message-id:references:to; s=
	selector1; bh=o+zBs2focmiHaHHtsD78ZW2wvbY=; b=Eur6TF1qTeo3i9VOsn
	h/MtfM1Gt/O05oTI+AeBQweHsE404Lqc41MdCZKlzHxUd3Bh5XCAHWWYt4JKk2bv
	EN54oyUJJp+Xh8U4cwh3js82nN4AWSjWiybjLKCeP2XZ8T02n4MZJ0eI39lvV0an
	wJUT394FQbyWfJc+Q/RNu3UEU=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=recoil.org; h=content-type
	:mime-version:subject:from:in-reply-to:date:cc
	:content-transfer-encoding:message-id:references:to; q=dns; s=
	selector1; b=racsGEid/dkzxqiAibo2ZYYEZXaKDVeREsDoYnTrxAbkc6+FF0l
	4aHKsiXI8OqQUfqkl5AxC0H6eaav6xy7mShuAD3Y+/cZNF0oW5GPfOQ9AwL0O5uq
	5n06tVrJV4uJJQLyJVgEFbS5H90pWI5UDWi76djLFDeT9WZLtcZ66l98=
Received: by bark.recoil.org (OpenSMTPD) with ESMTPSA id 8aed693f
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Fri, 15 Jan 2016 16:15:29 +0000 (GMT)
Mime-Version: 1.0 (Mac OS X Mail 9.1 \(3096.5\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <CAG4opy-Rqu4EqKMCFDbN8XTe6DECMteGp5dDo-d1E+ZzG4RKTQ@mail.gmail.com>
Date: Fri, 15 Jan 2016 16:15:28 +0000
Message-Id: <8800A03F-EB2A-418F-84C8-AA153305F720@recoil.org>
References: <CAG4opy-Rqu4EqKMCFDbN8XTe6DECMteGp5dDo-d1E+ZzG4RKTQ@mail.gmail.com>
To: Thomas Leonard <talex5@gmail.com>
X-Mailer: Apple Mail (2.3096.5)
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Unmapping grants is unsafe
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org


> On 4 Jan 2016, at 14:26, Thomas Leonard <talex5@gmail.com> wrote:
> 
> On 3 January 2016 at 10:38, Thomas Leonard <talex5@gmail.com> wrote:
>> On 2 January 2016 at 14:35, Mindy <mindy@somerandomidiot.com> wrote:
>>> On 01/02/2016 12:14 PM, Anil Madhavapeddy wrote:
>>>> 
>>>> On 2 Jan 2016, at 12:07, Thomas Leonard <talex5@gmail.com> wrote:
>>>>> 
>>>>> I have a Mirage firewall running now under Qubes:
>>>>> 
>>>>> 
>>>>> http://roscidus.com/blog/blog/2016/01/01/a-unikernel-firewall-for-qubesos/
> [...]
>>>>> - Mirage allows you to access memory after unmapping it. This isn't
>>>>> safe (may page-fault or give access to someone else's data). I've
>>>>> added checks in mirage-net-xen to make sure we don't try to access a
>>>>> ring after unmapping it [1], but I think this should be fixed at the
>>>>> Bigarray level [2].
>>>>> 
>>>> Did that Bigarray patch get committed into OCaml 4.03dev?  I dont
>>>> have a checkout handy here and it's hard to map a commit to the
>>>> associated PRs in the web UI.
>> 
>> I haven't submitted a PR yet. Need to update it to master and test.
> 
> https://github.com/ocaml/ocaml/pull/389
> 
> However, they're not keen on merging it, for performance reasons.
> Also, it would mean changing Cstruct, which currently says:
> 
>> We try to maintain the property that no constructed [t] can ever point out of
>> its underlying buffer. This property is guarded by all of the constructing
>> functions and the fact that the type is private, and used by various
>> functions that would otherwise be completely unsafe.
> 
> I wonder if we should instead change Gnt.Gnttab.Local_mapping.to_buf
> so that instead of returning an Io_page it returns something else,
> which provides similar operations but:
> 
> a) checks every access to ensure it hasn't been unmapped, and
> b) doesn't allow you to get a Cstruct or Bigarray from it.
> 
> However, this would mean a largish API change.

Before going through the epic amount of work that an API change would make in upstream libraries, perhaps we should build a small unit test that rapidly does a simple data copy across domains and benchmark it?

I think any new API should do very explicit lifetimes for the grant buffers (i.e. not depend on the GC to cleanup), but also minimise copying the data if at all possible.  While it's dangerous to read from a shared memory buffer if you don't trust the other side, an enforced copy does make it hard to build efficient unikernel proxies that are just transferring data across shared rings.

Anil


_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Fri Jan 15 16:15:36 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 15 Jan 2016 16:15:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aK72D-00019Q-P9; Fri, 15 Jan 2016 16:15:33 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <anil@recoil.org>) id 1aK72C-00019G-A8
	for mirageos-devel@lists.xenproject.org; Fri, 15 Jan 2016 16:15:32 +0000
Received: from [85.158.143.35] by server-2.bemta-4.messagelabs.com id
	5B/74-08977-32B19965; Fri, 15 Jan 2016 16:15:31 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-10.tower-21.messagelabs.com!1452874530!10332330!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=0.2 required=7.0 tests=RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 39791 invoked from network); 15 Jan 2016 16:15:30 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-10.tower-21.messagelabs.com with DHE-RSA-AES256-GCM-SHA384
	encrypted SMTP; 15 Jan 2016 16:15:30 -0000
Received: from bark.recoil.org (localhost [127.0.0.1])
	by bark.recoil.org (OpenSMTPD) with ESMTP id 281ee30a;
	Fri, 15 Jan 2016 16:15:29 +0000 (GMT)
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=recoil.org; h=content-type
	:mime-version:subject:from:in-reply-to:date:cc
	:content-transfer-encoding:message-id:references:to; s=
	selector1; bh=o+zBs2focmiHaHHtsD78ZW2wvbY=; b=Eur6TF1qTeo3i9VOsn
	h/MtfM1Gt/O05oTI+AeBQweHsE404Lqc41MdCZKlzHxUd3Bh5XCAHWWYt4JKk2bv
	EN54oyUJJp+Xh8U4cwh3js82nN4AWSjWiybjLKCeP2XZ8T02n4MZJ0eI39lvV0an
	wJUT394FQbyWfJc+Q/RNu3UEU=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=recoil.org; h=content-type
	:mime-version:subject:from:in-reply-to:date:cc
	:content-transfer-encoding:message-id:references:to; q=dns; s=
	selector1; b=racsGEid/dkzxqiAibo2ZYYEZXaKDVeREsDoYnTrxAbkc6+FF0l
	4aHKsiXI8OqQUfqkl5AxC0H6eaav6xy7mShuAD3Y+/cZNF0oW5GPfOQ9AwL0O5uq
	5n06tVrJV4uJJQLyJVgEFbS5H90pWI5UDWi76djLFDeT9WZLtcZ66l98=
Received: by bark.recoil.org (OpenSMTPD) with ESMTPSA id 8aed693f
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Fri, 15 Jan 2016 16:15:29 +0000 (GMT)
Mime-Version: 1.0 (Mac OS X Mail 9.1 \(3096.5\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <CAG4opy-Rqu4EqKMCFDbN8XTe6DECMteGp5dDo-d1E+ZzG4RKTQ@mail.gmail.com>
Date: Fri, 15 Jan 2016 16:15:28 +0000
Message-Id: <8800A03F-EB2A-418F-84C8-AA153305F720@recoil.org>
References: <CAG4opy-Rqu4EqKMCFDbN8XTe6DECMteGp5dDo-d1E+ZzG4RKTQ@mail.gmail.com>
To: Thomas Leonard <talex5@gmail.com>
X-Mailer: Apple Mail (2.3096.5)
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Unmapping grants is unsafe
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org


> On 4 Jan 2016, at 14:26, Thomas Leonard <talex5@gmail.com> wrote:
> 
> On 3 January 2016 at 10:38, Thomas Leonard <talex5@gmail.com> wrote:
>> On 2 January 2016 at 14:35, Mindy <mindy@somerandomidiot.com> wrote:
>>> On 01/02/2016 12:14 PM, Anil Madhavapeddy wrote:
>>>> 
>>>> On 2 Jan 2016, at 12:07, Thomas Leonard <talex5@gmail.com> wrote:
>>>>> 
>>>>> I have a Mirage firewall running now under Qubes:
>>>>> 
>>>>> 
>>>>> http://roscidus.com/blog/blog/2016/01/01/a-unikernel-firewall-for-qubesos/
> [...]
>>>>> - Mirage allows you to access memory after unmapping it. This isn't
>>>>> safe (may page-fault or give access to someone else's data). I've
>>>>> added checks in mirage-net-xen to make sure we don't try to access a
>>>>> ring after unmapping it [1], but I think this should be fixed at the
>>>>> Bigarray level [2].
>>>>> 
>>>> Did that Bigarray patch get committed into OCaml 4.03dev?  I dont
>>>> have a checkout handy here and it's hard to map a commit to the
>>>> associated PRs in the web UI.
>> 
>> I haven't submitted a PR yet. Need to update it to master and test.
> 
> https://github.com/ocaml/ocaml/pull/389
> 
> However, they're not keen on merging it, for performance reasons.
> Also, it would mean changing Cstruct, which currently says:
> 
>> We try to maintain the property that no constructed [t] can ever point out of
>> its underlying buffer. This property is guarded by all of the constructing
>> functions and the fact that the type is private, and used by various
>> functions that would otherwise be completely unsafe.
> 
> I wonder if we should instead change Gnt.Gnttab.Local_mapping.to_buf
> so that instead of returning an Io_page it returns something else,
> which provides similar operations but:
> 
> a) checks every access to ensure it hasn't been unmapped, and
> b) doesn't allow you to get a Cstruct or Bigarray from it.
> 
> However, this would mean a largish API change.

Before going through the epic amount of work that an API change would make in upstream libraries, perhaps we should build a small unit test that rapidly does a simple data copy across domains and benchmark it?

I think any new API should do very explicit lifetimes for the grant buffers (i.e. not depend on the GC to cleanup), but also minimise copying the data if at all possible.  While it's dangerous to read from a shared memory buffer if you don't trust the other side, an enforced copy does make it hard to build efficient unikernel proxies that are just transferring data across shared rings.

Anil


_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Sun Jan 17 01:57:03 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 17 Jan 2016 01:57:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aKcaI-0003jV-Pp; Sun, 17 Jan 2016 01:56:51 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <tim@gfxmonk.net>) id 1aKcaF-0003jQ-Mt
	for mirageos-devel@lists.xenproject.org; Sun, 17 Jan 2016 01:56:48 +0000
Received: from [85.158.139.211] by server-3.bemta-5.messagelabs.com id
	56/AB-13487-ED4FA965; Sun, 17 Jan 2016 01:56:46 +0000
X-Env-Sender: tim@gfxmonk.net
X-Msg-Ref: server-2.tower-206.messagelabs.com!1452995805!16312620!1
X-Originating-IP: [209.85.213.46]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 4756 invoked from network); 17 Jan 2016 01:56:46 -0000
Received: from mail-vk0-f46.google.com (HELO mail-vk0-f46.google.com)
	(209.85.213.46)
	by server-2.tower-206.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 17 Jan 2016 01:56:46 -0000
Received: by mail-vk0-f46.google.com with SMTP id n1so161999801vkb.3
	for <mirageos-devel@lists.xenproject.org>;
	Sat, 16 Jan 2016 17:56:46 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=gfxmonk-net.20150623.gappssmtp.com; s=20150623;
	h=mime-version:in-reply-to:references:from:date:message-id:subject:to
	:cc:content-type;
	bh=gg/Fy5i/kvxKNE7pcoQgyADRB200Ijjr5HzBQ9gVOUw=;
	b=geC2iI6ijkjkT0zIXYQwmafcVOaDqYbFXZN2kGYb8Md0kMQM2ZyWvaObcVl0g0Kqzt
	BPvyHKzaT1rZ9nWa85R1s4AGOWLN4V82zCGPZ5HalVIsPQDI2IsFI/H7ASJLr7yjgn55
	JDK9vL4YhGrknWEsIUSsWgWFQ5zfwJBPJlLhL6yKFNNbQXx/9ZeC2g2DdT8QLpCVLeVD
	Bd1usitvMa2HMxW1aEb4xeTnQnZjQL5HBfHby25CvBp8s22FrEIWg/579j2KiUqlchMV
	t8Reru68AjWs17KzDbWBLF1KtmqINGOIAJNEQLGSDAnp+FeVxDAJQycmwl+bGnmRSbbd
	5exw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:in-reply-to:references:from:date
	:message-id:subject:to:cc:content-type;
	bh=gg/Fy5i/kvxKNE7pcoQgyADRB200Ijjr5HzBQ9gVOUw=;
	b=lnkahv/hsnURmXunE+ANXdGurUnDtjsYpunSCxKZW7wmGf/TegWkXJ9VIPgNylE1Pk
	n1q5rwDWjF5hiuPGQ7PsSgwGSSY68D/El68X4JZMXEH0tfWEbq1L427TYGqWlItSp2HL
	Ez8SukD4eyDCpC1gpnCsMsJzRgXveaUhQ01wgNIYV5nZtZqjjuzUhhzwl1eoBtmkNv/J
	h5ngNd1gimizYC0fgvAFOB0e4xyuOnfHhUSSOAb+wG4z/rtj9mSPdIhbk+/ubtmt7Clf
	6oM2ACP4EACG4jEZmnufoaMMeAdTkFmQlvrjMm/cWwN8i3ElQsfp1Wjfnt+wXKbtnjWs
	kKTQ==
X-Gm-Message-State: ALoCoQma1nM4MWhDUjMUVnE6sGH6YCi/R+bsrRT5iR/Xida/Sk4dI7aMD1+2ALaLPvCWhTNolBsBXG+q9Ub+iU1NtFbh3sU9Pg==
X-Received: by 10.31.173.79 with SMTP id w76mr12666295vke.64.1452995805240;
	Sat, 16 Jan 2016 17:56:45 -0800 (PST)
Received: from mail-vk0-f46.google.com (mail-vk0-f46.google.com.
	[209.85.213.46]) by smtp.gmail.com with ESMTPSA id
	v19sm3995647vkd.22.2016.01.16.17.56.44
	for <mirageos-devel@lists.xenproject.org>
	(version=TLSv1/SSLv3 cipher=OTHER);
	Sat, 16 Jan 2016 17:56:44 -0800 (PST)
Received: by mail-vk0-f46.google.com with SMTP id n1so161999730vkb.3
	for <mirageos-devel@lists.xenproject.org>;
	Sat, 16 Jan 2016 17:56:44 -0800 (PST)
X-Received: by 10.31.49.207 with SMTP id x198mr12981769vkx.1.1452995804557;
	Sat, 16 Jan 2016 17:56:44 -0800 (PST)
MIME-Version: 1.0
Received: by 10.31.69.132 with HTTP; Sat, 16 Jan 2016 17:56:25 -0800 (PST)
In-Reply-To: <5697B393.4060706@mehnert.org>
References: <CAC-LLDiE4J11bvyJXrvee45MwBtH7OifOHUNo3SwDAW0YfPusQ@mail.gmail.com>
	<5697B393.4060706@mehnert.org>
From: Tim Cuthbertson <tim@gfxmonk.net>
Date: Sun, 17 Jan 2016 12:56:25 +1100
X-Gmail-Original-Message-ID: <CAC-LLDiJs6gJB9P07SQLTgpm6PMQXEDtAe+SKnXPEZnBrgyetQ@mail.gmail.com>
Message-ID: <CAC-LLDiJs6gJB9P07SQLTgpm6PMQXEDtAe+SKnXPEZnBrgyetQ@mail.gmail.com>
To: Hannes Mehnert <hannes@mehnert.org>
Cc: mirageos-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel] Compiling C components for mirage-xen
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On Fri, Jan 15, 2016 at 1:41 AM, Hannes Mehnert <hannes@mehnert.org> wrote:
> Hi Tim,
>
> On 01/08/2016 11:19, Tim Cuthbertson wrote:
>> I'd like to use `Bcrypt` from the `safepass` opam module in passe[0].
>> There is sadly no `safepass-xen` package, and trying to just use
>> `safepass` results in link errors:
>
> I wonder whether it'd be more than a day of work to implement bcrypt
> directly in OCaml.  Would for sure safe from linking trouble (and be
> automatically memory safe).  An initial version might be 50% or 90% of
> the speed of the pure C variant, but does this really matter for bcrypt?


I would certainly be happy with an ocaml implementation, but am not
sure that I'd trust myself to code one up, not having implemented any
low-level crypto algorithms before. If
https://github.com/mirleft/ocaml-nocrypto/issues/71 happened I'd
probably be pleased :)

Cheers,
 - Tim.

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Sun Jan 17 01:57:03 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 17 Jan 2016 01:57:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aKcaI-0003jV-Pp; Sun, 17 Jan 2016 01:56:51 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <tim@gfxmonk.net>) id 1aKcaF-0003jQ-Mt
	for mirageos-devel@lists.xenproject.org; Sun, 17 Jan 2016 01:56:48 +0000
Received: from [85.158.139.211] by server-3.bemta-5.messagelabs.com id
	56/AB-13487-ED4FA965; Sun, 17 Jan 2016 01:56:46 +0000
X-Env-Sender: tim@gfxmonk.net
X-Msg-Ref: server-2.tower-206.messagelabs.com!1452995805!16312620!1
X-Originating-IP: [209.85.213.46]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 4756 invoked from network); 17 Jan 2016 01:56:46 -0000
Received: from mail-vk0-f46.google.com (HELO mail-vk0-f46.google.com)
	(209.85.213.46)
	by server-2.tower-206.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 17 Jan 2016 01:56:46 -0000
Received: by mail-vk0-f46.google.com with SMTP id n1so161999801vkb.3
	for <mirageos-devel@lists.xenproject.org>;
	Sat, 16 Jan 2016 17:56:46 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=gfxmonk-net.20150623.gappssmtp.com; s=20150623;
	h=mime-version:in-reply-to:references:from:date:message-id:subject:to
	:cc:content-type;
	bh=gg/Fy5i/kvxKNE7pcoQgyADRB200Ijjr5HzBQ9gVOUw=;
	b=geC2iI6ijkjkT0zIXYQwmafcVOaDqYbFXZN2kGYb8Md0kMQM2ZyWvaObcVl0g0Kqzt
	BPvyHKzaT1rZ9nWa85R1s4AGOWLN4V82zCGPZ5HalVIsPQDI2IsFI/H7ASJLr7yjgn55
	JDK9vL4YhGrknWEsIUSsWgWFQ5zfwJBPJlLhL6yKFNNbQXx/9ZeC2g2DdT8QLpCVLeVD
	Bd1usitvMa2HMxW1aEb4xeTnQnZjQL5HBfHby25CvBp8s22FrEIWg/579j2KiUqlchMV
	t8Reru68AjWs17KzDbWBLF1KtmqINGOIAJNEQLGSDAnp+FeVxDAJQycmwl+bGnmRSbbd
	5exw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:in-reply-to:references:from:date
	:message-id:subject:to:cc:content-type;
	bh=gg/Fy5i/kvxKNE7pcoQgyADRB200Ijjr5HzBQ9gVOUw=;
	b=lnkahv/hsnURmXunE+ANXdGurUnDtjsYpunSCxKZW7wmGf/TegWkXJ9VIPgNylE1Pk
	n1q5rwDWjF5hiuPGQ7PsSgwGSSY68D/El68X4JZMXEH0tfWEbq1L427TYGqWlItSp2HL
	Ez8SukD4eyDCpC1gpnCsMsJzRgXveaUhQ01wgNIYV5nZtZqjjuzUhhzwl1eoBtmkNv/J
	h5ngNd1gimizYC0fgvAFOB0e4xyuOnfHhUSSOAb+wG4z/rtj9mSPdIhbk+/ubtmt7Clf
	6oM2ACP4EACG4jEZmnufoaMMeAdTkFmQlvrjMm/cWwN8i3ElQsfp1Wjfnt+wXKbtnjWs
	kKTQ==
X-Gm-Message-State: ALoCoQma1nM4MWhDUjMUVnE6sGH6YCi/R+bsrRT5iR/Xida/Sk4dI7aMD1+2ALaLPvCWhTNolBsBXG+q9Ub+iU1NtFbh3sU9Pg==
X-Received: by 10.31.173.79 with SMTP id w76mr12666295vke.64.1452995805240;
	Sat, 16 Jan 2016 17:56:45 -0800 (PST)
Received: from mail-vk0-f46.google.com (mail-vk0-f46.google.com.
	[209.85.213.46]) by smtp.gmail.com with ESMTPSA id
	v19sm3995647vkd.22.2016.01.16.17.56.44
	for <mirageos-devel@lists.xenproject.org>
	(version=TLSv1/SSLv3 cipher=OTHER);
	Sat, 16 Jan 2016 17:56:44 -0800 (PST)
Received: by mail-vk0-f46.google.com with SMTP id n1so161999730vkb.3
	for <mirageos-devel@lists.xenproject.org>;
	Sat, 16 Jan 2016 17:56:44 -0800 (PST)
X-Received: by 10.31.49.207 with SMTP id x198mr12981769vkx.1.1452995804557;
	Sat, 16 Jan 2016 17:56:44 -0800 (PST)
MIME-Version: 1.0
Received: by 10.31.69.132 with HTTP; Sat, 16 Jan 2016 17:56:25 -0800 (PST)
In-Reply-To: <5697B393.4060706@mehnert.org>
References: <CAC-LLDiE4J11bvyJXrvee45MwBtH7OifOHUNo3SwDAW0YfPusQ@mail.gmail.com>
	<5697B393.4060706@mehnert.org>
From: Tim Cuthbertson <tim@gfxmonk.net>
Date: Sun, 17 Jan 2016 12:56:25 +1100
X-Gmail-Original-Message-ID: <CAC-LLDiJs6gJB9P07SQLTgpm6PMQXEDtAe+SKnXPEZnBrgyetQ@mail.gmail.com>
Message-ID: <CAC-LLDiJs6gJB9P07SQLTgpm6PMQXEDtAe+SKnXPEZnBrgyetQ@mail.gmail.com>
To: Hannes Mehnert <hannes@mehnert.org>
Cc: mirageos-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel] Compiling C components for mirage-xen
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On Fri, Jan 15, 2016 at 1:41 AM, Hannes Mehnert <hannes@mehnert.org> wrote:
> Hi Tim,
>
> On 01/08/2016 11:19, Tim Cuthbertson wrote:
>> I'd like to use `Bcrypt` from the `safepass` opam module in passe[0].
>> There is sadly no `safepass-xen` package, and trying to just use
>> `safepass` results in link errors:
>
> I wonder whether it'd be more than a day of work to implement bcrypt
> directly in OCaml.  Would for sure safe from linking trouble (and be
> automatically memory safe).  An initial version might be 50% or 90% of
> the speed of the pure C variant, but does this really matter for bcrypt?


I would certainly be happy with an ocaml implementation, but am not
sure that I'd trust myself to code one up, not having implemented any
low-level crypto algorithms before. If
https://github.com/mirleft/ocaml-nocrypto/issues/71 happened I'd
probably be pleased :)

Cheers,
 - Tim.

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Sun Jan 17 01:57:31 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 17 Jan 2016 01:57:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aKcav-0003l3-5o; Sun, 17 Jan 2016 01:57:29 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <tim@gfxmonk.net>) id 1aKcar-0003ku-8N
	for mirageos-devel@lists.xenproject.org; Sun, 17 Jan 2016 01:57:25 +0000
Received: from [193.109.254.147] by server-8.bemta-14.messagelabs.com id
	E7/85-24450-405FA965; Sun, 17 Jan 2016 01:57:24 +0000
X-Env-Sender: tim@gfxmonk.net
X-Msg-Ref: server-8.tower-27.messagelabs.com!1452995842!13567362!1
X-Originating-IP: [209.85.213.42]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 4022 invoked from network); 17 Jan 2016 01:57:23 -0000
Received: from mail-vk0-f42.google.com (HELO mail-vk0-f42.google.com)
	(209.85.213.42)
	by server-8.tower-27.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 17 Jan 2016 01:57:23 -0000
Received: by mail-vk0-f42.google.com with SMTP id i129so178245004vkb.0
	for <mirageos-devel@lists.xenproject.org>;
	Sat, 16 Jan 2016 17:57:23 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=gfxmonk-net.20150623.gappssmtp.com; s=20150623;
	h=mime-version:in-reply-to:references:from:date:message-id:subject:to
	:cc:content-type;
	bh=GfkuQlymWANKpD77zpTV7OiFF3VMfeMoHOjDqkR9RYQ=;
	b=xlsJBsSi8ZTw5HL92eJdE0dAY7Ya0uX56xs9XHNb5C7sE5eoxRa22dQL6LQwARZ7HB
	ZLQ/UVu1joDoSX8/IUTgNi/LgIF/KtYCurOZ9W3CdFE4Ve8qJ25KLRRA8I3XIukeTA5i
	uWeBmyJVRo3a5e0/CQ+W1KhQl+gzGRAck+XCiCKL/9k54Y4u2Okuu5nSHaZ1YGhfPOod
	rWyLC95cY9SvbBm6Y5nJT8DusTAEIxxf/Xky50JHnjVl43nAnbH/q7E24ffaa54XB2sn
	npRQMmZfZkO/xHaSqTTIW9JK0ovRUeYXEx7A58gcwSbSeBXyxdc4VENrHKC7EFzNKf0Q
	jhAg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:in-reply-to:references:from:date
	:message-id:subject:to:cc:content-type;
	bh=GfkuQlymWANKpD77zpTV7OiFF3VMfeMoHOjDqkR9RYQ=;
	b=LuIdPnYOVtfi+3BumT4/joKYHi7kxo2VgpKWaNGwrC+6t2xGoxJO4jFhAdoe9AV3sH
	+Mftg5t7/xQ5t3lDDcl05K39aY6uIE/5u0DNME2PQGRsH0gdgnNN+iZmZRk3c3l5ngG+
	2vX9B8QuSZ4HDucSkVVmWxFPMKNB74doY/5D4ZEli8SqUvJSFWgMFFI+rDdfUhjMxMPs
	9to7+cFYb5lup9kBvY8sOrM2pcQIMAgV3KNVIWCnYvdGIql76YVS9LBf+ymzMhLiQ60D
	s0L1XP1HvlhYJQ4IiwB/+Wf4/XLR0UUeO7XPrAL8afEAVONDnAAjXrjbwhYiTLHl7hn6
	yiOg==
X-Gm-Message-State: AG10YOQKp8rsY1LT5/VbdnTaEI/j0bAWRwlHHmUDKg77PCNjjy1CsKKmEQGSQSJ2RpGNNg==
X-Received: by 10.31.182.69 with SMTP id g66mr7542292vkf.73.1452995842383;
	Sat, 16 Jan 2016 17:57:22 -0800 (PST)
Received: from mail-vk0-f54.google.com (mail-vk0-f54.google.com.
	[209.85.213.54]) by smtp.gmail.com with ESMTPSA id
	t72sm3975881vke.28.2016.01.16.17.57.21
	for <mirageos-devel@lists.xenproject.org>
	(version=TLSv1/SSLv3 cipher=OTHER);
	Sat, 16 Jan 2016 17:57:22 -0800 (PST)
Received: by mail-vk0-f54.google.com with SMTP id k1so316463495vkb.2
	for <mirageos-devel@lists.xenproject.org>;
	Sat, 16 Jan 2016 17:57:21 -0800 (PST)
X-Received: by 10.31.16.140 with SMTP id 12mr12074047vkq.106.1452995841916;
	Sat, 16 Jan 2016 17:57:21 -0800 (PST)
MIME-Version: 1.0
Received: by 10.31.69.132 with HTTP; Sat, 16 Jan 2016 17:57:02 -0800 (PST)
In-Reply-To: <201601121517.u0CFHLhe002351@d01av01.pok.ibm.com>
References: <mailman.14226.1452599890.27640.mirageos-devel@lists.xenproject.org>
	<201601121517.u0CFHLhe002351@d01av01.pok.ibm.com>
From: Tim Cuthbertson <tim@gfxmonk.net>
Date: Sun, 17 Jan 2016 12:57:02 +1100
X-Gmail-Original-Message-ID: <CAC-LLDhV-Ua0n=x2sxD7eNascvxyNAekNV7sC5XGKw+54T8jGw@mail.gmail.com>
Message-ID: <CAC-LLDhV-Ua0n=x2sxD7eNascvxyNAekNV7sC5XGKw+54T8jGw@mail.gmail.com>
To: Daniel J Williams <djwillia@us.ibm.com>
Cc: mirageos-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel] Compiling C components for mirage-xen
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On Wed, Jan 13, 2016 at 2:17 AM, Daniel J Williams <djwillia@us.ibm.com> wrote:
>
>> On Mon, Jan 11, 2016 at 9:48 PM, Thomas Leonard <talex5@gmail.com> wrote:
>> > On 11 January 2016 at 09:06, Tim Cuthbertson <tim@gfxmonk.net> wrote:
>> >> On Mon, Jan 11, 2016 at 4:52 AM, Thomas Leonard <talex5@gmail.com>
>> >> wrote:
>> >>> On 10 January 2016 at 10:15, Tim Cuthbertson <tim@gfxmonk.net> wrote:
>> >>>> On Fri, Jan 8, 2016 at 11:14 PM, Thomas Leonard <talex5@gmail.com>
>> >>>> wrote:
>> >>>>> On 8 January 2016 at 11:19, Tim Cuthbertson <tim@gfxmonk.net> wrote:
>
>> >>>>>>  - I don't really know what the thing I'm doing is. Is mirage-xen a
>> >>>>>> different architecture? A different ABI? Do C libraries need to be
>> >>>>>> cross-compiled, or just compiled with particular flags so that
>> >>>>>> they'll
>> >>>>>> work on xen-minios instead of gnu/linux?
>> >>>>>
>> >>>>> C libraries need to be compiled with different headers and flags (in
>> >>>>> particular, -mno-red-zone). Using libraries compiled for Linux will
>> >>>>> often appear to work, but may fail when interrupts occur, so the
>> >>>>> build
>> >>>>> makes it hard to use them by accident.
>> >>>>>
>> >>>>> However, OCaml binaries can be shared (ocamlopt doesn't use a red
>> >>>>> zone
>> >>>>> and the OCaml ABI is the same).
>> >>>>>
>> >>>>>>  - The existing scripts seem to be pretty ad-hoc - zarith gets away
>> >>>>>> mainly with particular CFLAGS
>> >>>>>> (https://github.com/ocaml/opam-repository/blob/master/
>> packages/zarith-xen/zarith-xen.1.4/files/mirage-install.sh),
>> >>>>>
>> >>>>> It's using pkg-config to get the important flags. The others are
>> >>>>> optimisations (except -fno-builtin, which is either not needed or
>> >>>>> should be supplied by Mini-OS).
>> >>>>>
>> >>>>>> while gmp looks like a full cross-compilation using `--target` (and
>> >>>>>> then does some other sneaky things).
>> >>>>>>
>> >>>>>> safepass uses OASIS for its build system, which doesn't seem to
>> >>>>>> have
>> >>>>>> any cross-compilation functionality built in as far as I could
>> >>>>>> tell.
>> >>>>>> Can anyone give me pointers on what I'd need to do to safepass'
>> >>>>>> build
>> >>>>>> scripts to get this working in mirage-xen, or at the least some
>> >>>>>> clarification on why it doesn't work as-is and how cross
>> >>>>>> compilation
>> >>>>>> works for C libraries used in mirage-xen?
>
>
>> > Correct: Mirage on Xen does not use shared libraries. I don't know how
>> > to prevent them from being built. The easiest option might be to
>> > remove the uses of errno from the library (it doesn't look like the
>> > OCaml bindings do anything with it anyway).
>>
>> The ocaml bindings (bcrypt_stub.c) doesn't, but the C code compiled
>> with it (crypt_blowfish.c) does, so I can't just remove it sadly.
>>
>> So this is a bit ridiculous, but I did manage to get it compiling with
>> the following hack in the build script:
>>
>>   mkdir fake_libc
>>   echo '"fake_libc": -traverse' >> _tags
>>   touch fake_libc/libc.c
>>   gcc -shared -nostdlib -o fake_libc/libc.so fake_libc/libc.c
>>
>> (and also added -L$PWD/fake_libc to oasis' CCLib field)
>>
>
> I'm not sure if this will help, but I thought I'd share my
> "workaround" for compiling C files from Mirage components to link
> against Solo5(https://github.com/djwillia/solo5/tree/mirage), which
> you can think of as a layer like Mini-OS.
>
> The ability to send flags to C programs from OASIS seems a bit limited
> to me: I would have liked to specify the cross compiler, but I'm not
> sure if that's possible.  I don't really know what the right way to do
> this is, but I ended up adding a lot of CFLAGS from the kernel build:
>
>     CCOpt: -ffreestanding -mcmodel=large -mno-red-zone -mno-3dnow \
>            -std=gnu99 -O2 -Wall -Wextra -Werror -D__SOLO5__       \
>            -fno-PIC -g   -I/home/solo5/solo5/kernel
>
> ( see https://github.com/djwillia/mirage-block-solo5/blob/solo5/_oasis#L17 )
>
> Then I link against the resulting libmirage_block_solo5_stubs.a and
> all of the static libraries listed out from e.g., `pkg-config --static
> --libs mirage-xen`
>
> Dan

Thanks, Dan.

Does this prevent oasis from building a .so file of your library? I
think I've got similar CCOpt setting by using `pkg-config --static
--cflags mirage-xen-ocaml`, but my main issue is really that I've
found no CCLib options which can prevent oasis from trying to compile
a .so of my library against an incompatible libc.so.

Cheers,
 - Tim.

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Sun Jan 17 01:57:31 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 17 Jan 2016 01:57:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aKcav-0003l3-5o; Sun, 17 Jan 2016 01:57:29 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <tim@gfxmonk.net>) id 1aKcar-0003ku-8N
	for mirageos-devel@lists.xenproject.org; Sun, 17 Jan 2016 01:57:25 +0000
Received: from [193.109.254.147] by server-8.bemta-14.messagelabs.com id
	E7/85-24450-405FA965; Sun, 17 Jan 2016 01:57:24 +0000
X-Env-Sender: tim@gfxmonk.net
X-Msg-Ref: server-8.tower-27.messagelabs.com!1452995842!13567362!1
X-Originating-IP: [209.85.213.42]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 4022 invoked from network); 17 Jan 2016 01:57:23 -0000
Received: from mail-vk0-f42.google.com (HELO mail-vk0-f42.google.com)
	(209.85.213.42)
	by server-8.tower-27.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 17 Jan 2016 01:57:23 -0000
Received: by mail-vk0-f42.google.com with SMTP id i129so178245004vkb.0
	for <mirageos-devel@lists.xenproject.org>;
	Sat, 16 Jan 2016 17:57:23 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=gfxmonk-net.20150623.gappssmtp.com; s=20150623;
	h=mime-version:in-reply-to:references:from:date:message-id:subject:to
	:cc:content-type;
	bh=GfkuQlymWANKpD77zpTV7OiFF3VMfeMoHOjDqkR9RYQ=;
	b=xlsJBsSi8ZTw5HL92eJdE0dAY7Ya0uX56xs9XHNb5C7sE5eoxRa22dQL6LQwARZ7HB
	ZLQ/UVu1joDoSX8/IUTgNi/LgIF/KtYCurOZ9W3CdFE4Ve8qJ25KLRRA8I3XIukeTA5i
	uWeBmyJVRo3a5e0/CQ+W1KhQl+gzGRAck+XCiCKL/9k54Y4u2Okuu5nSHaZ1YGhfPOod
	rWyLC95cY9SvbBm6Y5nJT8DusTAEIxxf/Xky50JHnjVl43nAnbH/q7E24ffaa54XB2sn
	npRQMmZfZkO/xHaSqTTIW9JK0ovRUeYXEx7A58gcwSbSeBXyxdc4VENrHKC7EFzNKf0Q
	jhAg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:in-reply-to:references:from:date
	:message-id:subject:to:cc:content-type;
	bh=GfkuQlymWANKpD77zpTV7OiFF3VMfeMoHOjDqkR9RYQ=;
	b=LuIdPnYOVtfi+3BumT4/joKYHi7kxo2VgpKWaNGwrC+6t2xGoxJO4jFhAdoe9AV3sH
	+Mftg5t7/xQ5t3lDDcl05K39aY6uIE/5u0DNME2PQGRsH0gdgnNN+iZmZRk3c3l5ngG+
	2vX9B8QuSZ4HDucSkVVmWxFPMKNB74doY/5D4ZEli8SqUvJSFWgMFFI+rDdfUhjMxMPs
	9to7+cFYb5lup9kBvY8sOrM2pcQIMAgV3KNVIWCnYvdGIql76YVS9LBf+ymzMhLiQ60D
	s0L1XP1HvlhYJQ4IiwB/+Wf4/XLR0UUeO7XPrAL8afEAVONDnAAjXrjbwhYiTLHl7hn6
	yiOg==
X-Gm-Message-State: AG10YOQKp8rsY1LT5/VbdnTaEI/j0bAWRwlHHmUDKg77PCNjjy1CsKKmEQGSQSJ2RpGNNg==
X-Received: by 10.31.182.69 with SMTP id g66mr7542292vkf.73.1452995842383;
	Sat, 16 Jan 2016 17:57:22 -0800 (PST)
Received: from mail-vk0-f54.google.com (mail-vk0-f54.google.com.
	[209.85.213.54]) by smtp.gmail.com with ESMTPSA id
	t72sm3975881vke.28.2016.01.16.17.57.21
	for <mirageos-devel@lists.xenproject.org>
	(version=TLSv1/SSLv3 cipher=OTHER);
	Sat, 16 Jan 2016 17:57:22 -0800 (PST)
Received: by mail-vk0-f54.google.com with SMTP id k1so316463495vkb.2
	for <mirageos-devel@lists.xenproject.org>;
	Sat, 16 Jan 2016 17:57:21 -0800 (PST)
X-Received: by 10.31.16.140 with SMTP id 12mr12074047vkq.106.1452995841916;
	Sat, 16 Jan 2016 17:57:21 -0800 (PST)
MIME-Version: 1.0
Received: by 10.31.69.132 with HTTP; Sat, 16 Jan 2016 17:57:02 -0800 (PST)
In-Reply-To: <201601121517.u0CFHLhe002351@d01av01.pok.ibm.com>
References: <mailman.14226.1452599890.27640.mirageos-devel@lists.xenproject.org>
	<201601121517.u0CFHLhe002351@d01av01.pok.ibm.com>
From: Tim Cuthbertson <tim@gfxmonk.net>
Date: Sun, 17 Jan 2016 12:57:02 +1100
X-Gmail-Original-Message-ID: <CAC-LLDhV-Ua0n=x2sxD7eNascvxyNAekNV7sC5XGKw+54T8jGw@mail.gmail.com>
Message-ID: <CAC-LLDhV-Ua0n=x2sxD7eNascvxyNAekNV7sC5XGKw+54T8jGw@mail.gmail.com>
To: Daniel J Williams <djwillia@us.ibm.com>
Cc: mirageos-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel] Compiling C components for mirage-xen
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On Wed, Jan 13, 2016 at 2:17 AM, Daniel J Williams <djwillia@us.ibm.com> wrote:
>
>> On Mon, Jan 11, 2016 at 9:48 PM, Thomas Leonard <talex5@gmail.com> wrote:
>> > On 11 January 2016 at 09:06, Tim Cuthbertson <tim@gfxmonk.net> wrote:
>> >> On Mon, Jan 11, 2016 at 4:52 AM, Thomas Leonard <talex5@gmail.com>
>> >> wrote:
>> >>> On 10 January 2016 at 10:15, Tim Cuthbertson <tim@gfxmonk.net> wrote:
>> >>>> On Fri, Jan 8, 2016 at 11:14 PM, Thomas Leonard <talex5@gmail.com>
>> >>>> wrote:
>> >>>>> On 8 January 2016 at 11:19, Tim Cuthbertson <tim@gfxmonk.net> wrote:
>
>> >>>>>>  - I don't really know what the thing I'm doing is. Is mirage-xen a
>> >>>>>> different architecture? A different ABI? Do C libraries need to be
>> >>>>>> cross-compiled, or just compiled with particular flags so that
>> >>>>>> they'll
>> >>>>>> work on xen-minios instead of gnu/linux?
>> >>>>>
>> >>>>> C libraries need to be compiled with different headers and flags (in
>> >>>>> particular, -mno-red-zone). Using libraries compiled for Linux will
>> >>>>> often appear to work, but may fail when interrupts occur, so the
>> >>>>> build
>> >>>>> makes it hard to use them by accident.
>> >>>>>
>> >>>>> However, OCaml binaries can be shared (ocamlopt doesn't use a red
>> >>>>> zone
>> >>>>> and the OCaml ABI is the same).
>> >>>>>
>> >>>>>>  - The existing scripts seem to be pretty ad-hoc - zarith gets away
>> >>>>>> mainly with particular CFLAGS
>> >>>>>> (https://github.com/ocaml/opam-repository/blob/master/
>> packages/zarith-xen/zarith-xen.1.4/files/mirage-install.sh),
>> >>>>>
>> >>>>> It's using pkg-config to get the important flags. The others are
>> >>>>> optimisations (except -fno-builtin, which is either not needed or
>> >>>>> should be supplied by Mini-OS).
>> >>>>>
>> >>>>>> while gmp looks like a full cross-compilation using `--target` (and
>> >>>>>> then does some other sneaky things).
>> >>>>>>
>> >>>>>> safepass uses OASIS for its build system, which doesn't seem to
>> >>>>>> have
>> >>>>>> any cross-compilation functionality built in as far as I could
>> >>>>>> tell.
>> >>>>>> Can anyone give me pointers on what I'd need to do to safepass'
>> >>>>>> build
>> >>>>>> scripts to get this working in mirage-xen, or at the least some
>> >>>>>> clarification on why it doesn't work as-is and how cross
>> >>>>>> compilation
>> >>>>>> works for C libraries used in mirage-xen?
>
>
>> > Correct: Mirage on Xen does not use shared libraries. I don't know how
>> > to prevent them from being built. The easiest option might be to
>> > remove the uses of errno from the library (it doesn't look like the
>> > OCaml bindings do anything with it anyway).
>>
>> The ocaml bindings (bcrypt_stub.c) doesn't, but the C code compiled
>> with it (crypt_blowfish.c) does, so I can't just remove it sadly.
>>
>> So this is a bit ridiculous, but I did manage to get it compiling with
>> the following hack in the build script:
>>
>>   mkdir fake_libc
>>   echo '"fake_libc": -traverse' >> _tags
>>   touch fake_libc/libc.c
>>   gcc -shared -nostdlib -o fake_libc/libc.so fake_libc/libc.c
>>
>> (and also added -L$PWD/fake_libc to oasis' CCLib field)
>>
>
> I'm not sure if this will help, but I thought I'd share my
> "workaround" for compiling C files from Mirage components to link
> against Solo5(https://github.com/djwillia/solo5/tree/mirage), which
> you can think of as a layer like Mini-OS.
>
> The ability to send flags to C programs from OASIS seems a bit limited
> to me: I would have liked to specify the cross compiler, but I'm not
> sure if that's possible.  I don't really know what the right way to do
> this is, but I ended up adding a lot of CFLAGS from the kernel build:
>
>     CCOpt: -ffreestanding -mcmodel=large -mno-red-zone -mno-3dnow \
>            -std=gnu99 -O2 -Wall -Wextra -Werror -D__SOLO5__       \
>            -fno-PIC -g   -I/home/solo5/solo5/kernel
>
> ( see https://github.com/djwillia/mirage-block-solo5/blob/solo5/_oasis#L17 )
>
> Then I link against the resulting libmirage_block_solo5_stubs.a and
> all of the static libraries listed out from e.g., `pkg-config --static
> --libs mirage-xen`
>
> Dan

Thanks, Dan.

Does this prevent oasis from building a .so file of your library? I
think I've got similar CCOpt setting by using `pkg-config --static
--cflags mirage-xen-ocaml`, but my main issue is really that I've
found no CCLib options which can prevent oasis from trying to compile
a .so of my library against an incompatible libc.so.

Cheers,
 - Tim.

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Sun Jan 17 14:54:47 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 17 Jan 2016 14:54:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aKoiw-0005PC-D8; Sun, 17 Jan 2016 14:54:34 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <talex5@gmail.com>) id 1aKoir-0005Ow-QS
	for mirageos-devel@lists.xenproject.org; Sun, 17 Jan 2016 14:54:30 +0000
Received: from [85.158.143.35] by server-2.bemta-4.messagelabs.com id
	D2/D8-08977-52BAB965; Sun, 17 Jan 2016 14:54:29 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-15.tower-21.messagelabs.com!1453042467!10526711!1
X-Originating-IP: [209.85.213.48]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 1662 invoked from network); 17 Jan 2016 14:54:28 -0000
Received: from mail-vk0-f48.google.com (HELO mail-vk0-f48.google.com)
	(209.85.213.48)
	by server-15.tower-21.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 17 Jan 2016 14:54:28 -0000
Received: by mail-vk0-f48.google.com with SMTP id i129so182030121vkb.0
	for <mirageos-devel@lists.xenproject.org>;
	Sun, 17 Jan 2016 06:54:28 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type:content-transfer-encoding;
	bh=vSgBaeld1/SfLBg7teoLcd3oNbC0RV9JJizpbry6irI=;
	b=gPeB1jK5zFcJIGgIIqtWHux5BuDcJARjNFP7D47+uBGeSvFvcNOX6lTiKFvdKQ3vpz
	i1r1DeSjFh2tJIqXIwlUeSUujCy39R0VDgCzxBnmaPGlESNmLnAB/948iPOS2yH/nl1x
	/h3EWL3XjP7n4azHgKcszOgxWcnXR06WqJMzJFHRvlfUQKOhEcr+BhMwoYq4OLNiTR+C
	lu6kF8ZwurS/sDz5IBh232BeDO5eTaSKxSxqKXec1bDEtZ4I8gtV3z942+KAS68D3+qU
	QBVGF10kyP4LbP6PsxtRFzzsp+w+IBvhMJtbksjpF9zueay4AfsUR4O7f5oyBJ6zhaYQ
	sPCg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:in-reply-to:references:date
	:message-id:subject:from:to:cc:content-type
	:content-transfer-encoding;
	bh=vSgBaeld1/SfLBg7teoLcd3oNbC0RV9JJizpbry6irI=;
	b=czG9O+BroT+Yyc9BAHzESYMFROVrPJlzRSEaRwAEJhQzV5ZJrvZJ39DA/DFgfh0X4y
	B7DebItYTA16I9TYwnxZPMsHs13BeHo5j4Wqm1apHAt/r6jKWLoAQgt9QtBVb676FSm3
	PHyjFDPQKyXm9fGK/mJUgZP9CdWeQO/te9tWGuGPRzliroggO3LbdfiQTfgcbBauCqWC
	rudVl0INZn/3G5Topj0wMqOBu81i5+LHD2FjnIjf5XZkTIOko1PO2+CQJDxLtc73VmAV
	dkBJcztZGmN/qKwEEyBei8yIWvzUc7TBoVtW+1IaW4YjlchF9v8mM7hhI1uHLrf4yiO1
	q7cw==
X-Gm-Message-State: ALoCoQnV4YhdUCevHC167V1xcywAtxCGP7FLc+xwc4+vNXW87fKQkpWg0YE5M2EMUpJ0YhQkIeg+oQHtOtp13pBb2FFFs+ChiA==
MIME-Version: 1.0
X-Received: by 10.31.47.200 with SMTP id v191mr15104572vkv.116.1453042467200; 
	Sun, 17 Jan 2016 06:54:27 -0800 (PST)
Received: by 10.31.128.84 with HTTP; Sun, 17 Jan 2016 06:54:27 -0800 (PST)
In-Reply-To: <8800A03F-EB2A-418F-84C8-AA153305F720@recoil.org>
References: <CAG4opy-Rqu4EqKMCFDbN8XTe6DECMteGp5dDo-d1E+ZzG4RKTQ@mail.gmail.com>
	<8800A03F-EB2A-418F-84C8-AA153305F720@recoil.org>
Date: Sun, 17 Jan 2016 14:54:27 +0000
Message-ID: <CAG4opy_iiNN+UkADt3121SWB1HLJ_A1org0t8ps=yjHDLd4DAg@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Anil Madhavapeddy <anil@recoil.org>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Unmapping grants is unsafe
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 15 January 2016 at 16:15, Anil Madhavapeddy <anil@recoil.org> wrote:
>
>> On 4 Jan 2016, at 14:26, Thomas Leonard <talex5@gmail.com> wrote:
>>
>> On 3 January 2016 at 10:38, Thomas Leonard <talex5@gmail.com> wrote:
>>> On 2 January 2016 at 14:35, Mindy <mindy@somerandomidiot.com> wrote:
>>>> On 01/02/2016 12:14 PM, Anil Madhavapeddy wrote:
>>>>>
>>>>> On 2 Jan 2016, at 12:07, Thomas Leonard <talex5@gmail.com> wrote:
>>>>>>
>>>>>> I have a Mirage firewall running now under Qubes:
>>>>>>
>>>>>>
>>>>>> http://roscidus.com/blog/blog/2016/01/01/a-unikernel-firewall-for-qubesos/
>> [...]
>>>>>> - Mirage allows you to access memory after unmapping it. This isn't
>>>>>> safe (may page-fault or give access to someone else's data). I've
>>>>>> added checks in mirage-net-xen to make sure we don't try to access a
>>>>>> ring after unmapping it [1], but I think this should be fixed at the
>>>>>> Bigarray level [2].
>>>>>>
>>>>> Did that Bigarray patch get committed into OCaml 4.03dev?  I dont
>>>>> have a checkout handy here and it's hard to map a commit to the
>>>>> associated PRs in the web UI.
>>>
>>> I haven't submitted a PR yet. Need to update it to master and test.
>>
>> https://github.com/ocaml/ocaml/pull/389
>>
>> However, they're not keen on merging it, for performance reasons.
>> Also, it would mean changing Cstruct, which currently says:
>>
>>> We try to maintain the property that no constructed [t] can ever point out of
>>> its underlying buffer. This property is guarded by all of the constructing
>>> functions and the fact that the type is private, and used by various
>>> functions that would otherwise be completely unsafe.
>>
>> I wonder if we should instead change Gnt.Gnttab.Local_mapping.to_buf
>> so that instead of returning an Io_page it returns something else,
>> which provides similar operations but:
>>
>> a) checks every access to ensure it hasn't been unmapped, and
>> b) doesn't allow you to get a Cstruct or Bigarray from it.
>>
>> However, this would mean a largish API change.
>
> Before going through the epic amount of work that an API change would make in upstream libraries, perhaps we should build a small unit test that rapidly does a simple data copy across domains and benchmark it?
>
> I think any new API should do very explicit lifetimes for the grant buffers (i.e. not depend on the GC to cleanup), but also minimise copying the data if at all possible.  While it's dangerous to read from a shared memory buffer if you don't trust the other side, an enforced copy does make it hard to build efficient unikernel proxies that are just transferring data across shared rings.

A simpler solution might be to rename [to_buf] to [to_buf_unsafe] and
provide a safe [blit] operation (that fails if the buffer is no longer
mapped). The block and net drivers already copy, so they could use the
safe interface.

shared-memory-ring currently reads directly, but maybe it shouldn't
anyway (whether frontend or backend) to avoid TOCTOU issues.


-- 
Dr Thomas Leonard        http://roscidus.com/blog/
GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Sun Jan 17 14:54:47 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 17 Jan 2016 14:54:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aKoiw-0005PC-D8; Sun, 17 Jan 2016 14:54:34 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <talex5@gmail.com>) id 1aKoir-0005Ow-QS
	for mirageos-devel@lists.xenproject.org; Sun, 17 Jan 2016 14:54:30 +0000
Received: from [85.158.143.35] by server-2.bemta-4.messagelabs.com id
	D2/D8-08977-52BAB965; Sun, 17 Jan 2016 14:54:29 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-15.tower-21.messagelabs.com!1453042467!10526711!1
X-Originating-IP: [209.85.213.48]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 1662 invoked from network); 17 Jan 2016 14:54:28 -0000
Received: from mail-vk0-f48.google.com (HELO mail-vk0-f48.google.com)
	(209.85.213.48)
	by server-15.tower-21.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 17 Jan 2016 14:54:28 -0000
Received: by mail-vk0-f48.google.com with SMTP id i129so182030121vkb.0
	for <mirageos-devel@lists.xenproject.org>;
	Sun, 17 Jan 2016 06:54:28 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type:content-transfer-encoding;
	bh=vSgBaeld1/SfLBg7teoLcd3oNbC0RV9JJizpbry6irI=;
	b=gPeB1jK5zFcJIGgIIqtWHux5BuDcJARjNFP7D47+uBGeSvFvcNOX6lTiKFvdKQ3vpz
	i1r1DeSjFh2tJIqXIwlUeSUujCy39R0VDgCzxBnmaPGlESNmLnAB/948iPOS2yH/nl1x
	/h3EWL3XjP7n4azHgKcszOgxWcnXR06WqJMzJFHRvlfUQKOhEcr+BhMwoYq4OLNiTR+C
	lu6kF8ZwurS/sDz5IBh232BeDO5eTaSKxSxqKXec1bDEtZ4I8gtV3z942+KAS68D3+qU
	QBVGF10kyP4LbP6PsxtRFzzsp+w+IBvhMJtbksjpF9zueay4AfsUR4O7f5oyBJ6zhaYQ
	sPCg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:in-reply-to:references:date
	:message-id:subject:from:to:cc:content-type
	:content-transfer-encoding;
	bh=vSgBaeld1/SfLBg7teoLcd3oNbC0RV9JJizpbry6irI=;
	b=czG9O+BroT+Yyc9BAHzESYMFROVrPJlzRSEaRwAEJhQzV5ZJrvZJ39DA/DFgfh0X4y
	B7DebItYTA16I9TYwnxZPMsHs13BeHo5j4Wqm1apHAt/r6jKWLoAQgt9QtBVb676FSm3
	PHyjFDPQKyXm9fGK/mJUgZP9CdWeQO/te9tWGuGPRzliroggO3LbdfiQTfgcbBauCqWC
	rudVl0INZn/3G5Topj0wMqOBu81i5+LHD2FjnIjf5XZkTIOko1PO2+CQJDxLtc73VmAV
	dkBJcztZGmN/qKwEEyBei8yIWvzUc7TBoVtW+1IaW4YjlchF9v8mM7hhI1uHLrf4yiO1
	q7cw==
X-Gm-Message-State: ALoCoQnV4YhdUCevHC167V1xcywAtxCGP7FLc+xwc4+vNXW87fKQkpWg0YE5M2EMUpJ0YhQkIeg+oQHtOtp13pBb2FFFs+ChiA==
MIME-Version: 1.0
X-Received: by 10.31.47.200 with SMTP id v191mr15104572vkv.116.1453042467200; 
	Sun, 17 Jan 2016 06:54:27 -0800 (PST)
Received: by 10.31.128.84 with HTTP; Sun, 17 Jan 2016 06:54:27 -0800 (PST)
In-Reply-To: <8800A03F-EB2A-418F-84C8-AA153305F720@recoil.org>
References: <CAG4opy-Rqu4EqKMCFDbN8XTe6DECMteGp5dDo-d1E+ZzG4RKTQ@mail.gmail.com>
	<8800A03F-EB2A-418F-84C8-AA153305F720@recoil.org>
Date: Sun, 17 Jan 2016 14:54:27 +0000
Message-ID: <CAG4opy_iiNN+UkADt3121SWB1HLJ_A1org0t8ps=yjHDLd4DAg@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Anil Madhavapeddy <anil@recoil.org>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Unmapping grants is unsafe
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 15 January 2016 at 16:15, Anil Madhavapeddy <anil@recoil.org> wrote:
>
>> On 4 Jan 2016, at 14:26, Thomas Leonard <talex5@gmail.com> wrote:
>>
>> On 3 January 2016 at 10:38, Thomas Leonard <talex5@gmail.com> wrote:
>>> On 2 January 2016 at 14:35, Mindy <mindy@somerandomidiot.com> wrote:
>>>> On 01/02/2016 12:14 PM, Anil Madhavapeddy wrote:
>>>>>
>>>>> On 2 Jan 2016, at 12:07, Thomas Leonard <talex5@gmail.com> wrote:
>>>>>>
>>>>>> I have a Mirage firewall running now under Qubes:
>>>>>>
>>>>>>
>>>>>> http://roscidus.com/blog/blog/2016/01/01/a-unikernel-firewall-for-qubesos/
>> [...]
>>>>>> - Mirage allows you to access memory after unmapping it. This isn't
>>>>>> safe (may page-fault or give access to someone else's data). I've
>>>>>> added checks in mirage-net-xen to make sure we don't try to access a
>>>>>> ring after unmapping it [1], but I think this should be fixed at the
>>>>>> Bigarray level [2].
>>>>>>
>>>>> Did that Bigarray patch get committed into OCaml 4.03dev?  I dont
>>>>> have a checkout handy here and it's hard to map a commit to the
>>>>> associated PRs in the web UI.
>>>
>>> I haven't submitted a PR yet. Need to update it to master and test.
>>
>> https://github.com/ocaml/ocaml/pull/389
>>
>> However, they're not keen on merging it, for performance reasons.
>> Also, it would mean changing Cstruct, which currently says:
>>
>>> We try to maintain the property that no constructed [t] can ever point out of
>>> its underlying buffer. This property is guarded by all of the constructing
>>> functions and the fact that the type is private, and used by various
>>> functions that would otherwise be completely unsafe.
>>
>> I wonder if we should instead change Gnt.Gnttab.Local_mapping.to_buf
>> so that instead of returning an Io_page it returns something else,
>> which provides similar operations but:
>>
>> a) checks every access to ensure it hasn't been unmapped, and
>> b) doesn't allow you to get a Cstruct or Bigarray from it.
>>
>> However, this would mean a largish API change.
>
> Before going through the epic amount of work that an API change would make in upstream libraries, perhaps we should build a small unit test that rapidly does a simple data copy across domains and benchmark it?
>
> I think any new API should do very explicit lifetimes for the grant buffers (i.e. not depend on the GC to cleanup), but also minimise copying the data if at all possible.  While it's dangerous to read from a shared memory buffer if you don't trust the other side, an enforced copy does make it hard to build efficient unikernel proxies that are just transferring data across shared rings.

A simpler solution might be to rename [to_buf] to [to_buf_unsafe] and
provide a safe [blit] operation (that fails if the buffer is no longer
mapped). The block and net drivers already copy, so they could use the
safe interface.

shared-memory-ring currently reads directly, but maybe it shouldn't
anyway (whether frontend or backend) to avoid TOCTOU issues.


-- 
Dr Thomas Leonard        http://roscidus.com/blog/
GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Sun Jan 17 15:03:32 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 17 Jan 2016 15:03:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aKorZ-0005pe-HI; Sun, 17 Jan 2016 15:03:29 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <talex5@gmail.com>) id 1aKorW-0005pZ-KC
	for mirageos-devel@lists.xenproject.org; Sun, 17 Jan 2016 15:03:27 +0000
Received: from [85.158.143.35] by server-2.bemta-4.messagelabs.com id
	EB/1B-08977-D3DAB965; Sun, 17 Jan 2016 15:03:25 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-7.tower-21.messagelabs.com!1453043004!10662249!1
X-Originating-IP: [209.85.213.48]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 49452 invoked from network); 17 Jan 2016 15:03:25 -0000
Received: from mail-vk0-f48.google.com (HELO mail-vk0-f48.google.com)
	(209.85.213.48)
	by server-7.tower-21.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 17 Jan 2016 15:03:25 -0000
Received: by mail-vk0-f48.google.com with SMTP id i129so182087108vkb.0
	for <mirageos-devel@lists.xenproject.org>;
	Sun, 17 Jan 2016 07:03:25 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=lEL+1ihVtBHOi6xe6a9Q+Zqfvg//fqe7CcWO+dcH3AQ=;
	b=Z8Udc/73CbEiAz6Hmxk1GcrncQ+mje9FmRZQLS9Z2SDOn3LLAWskZXnO7WLtqXb5kr
	o3lh66cGTZAJyWnkaqHKGTIg6df4JRnnA1FvM6CafIhv7Mbfs7ZK3N9gy1/iys+/9TKP
	O3hMbZf3ejnqii3dlWmOgp/S58miBfdHQm35O1xo7S0A0FeT8Da6PNr4/25VRZn37coT
	LyFA9ApUagml8LOVQDh/O5+hiyvTRbWUX8on2hSIe48WQAqFoX2LjYQgY4CKlsWxSeHD
	g37YveeZs/BO2RD0E3roGT7DmPYjIdEyxkyJb9xggiaHUTIpdpsRH1rnMyV/Ep3/ks4Y
	Nkig==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:in-reply-to:references:date
	:message-id:subject:from:to:cc:content-type;
	bh=lEL+1ihVtBHOi6xe6a9Q+Zqfvg//fqe7CcWO+dcH3AQ=;
	b=bxUURorGJtDa5fGKUEhg1UHV8ejBkH3/yfP8RgK+u9BLUdFt6vIzVXjg/7zp4k9Wz4
	BgHdocXiORBaAZPtjeadoWcSaBzQ0DzS9UNA9QVbcdDJsZNCZ2VLstD2pwhR5Iiqnevr
	jY638Alu5lkVceGSibsm5rlQoq7jPQMCMY5Ljb8aXVZ+dYel5zXpOrbaK068/xD3oQAl
	u67VJNmOmAw/tY9g36hZom16vh/wvcPk9mUJeUDSpF2037uCDnp8j50i9o1NQcOIv3qV
	esykyX8z3H3GV+X4KQ6zaPiwmceh465uLyluGo5DnkhSJ63HjyAePZyPqjNOOm3D3ft1
	YRaQ==
X-Gm-Message-State: ALoCoQkMfbF/zzV4ahhgHvqQGrIbz0F3VbNKnMn5j+sSzkbLKYv8+lXN0oYOylbyNwNr8fAVRvN5UNBedEaAeppIHrMtT9/e+A==
MIME-Version: 1.0
X-Received: by 10.31.178.134 with SMTP id b128mr13034681vkf.112.1453043004369; 
	Sun, 17 Jan 2016 07:03:24 -0800 (PST)
Received: by 10.31.128.84 with HTTP; Sun, 17 Jan 2016 07:03:24 -0800 (PST)
In-Reply-To: <CAF0KdiPKO3K_MtFfKwvsbfchOte5sCbyqr_+4ouqstcsnxSpAg@mail.gmail.com>
References: <CAF0KdiNby-QtgWSf+FOmo+3PhD7ZFpvvxMXvs32sEkJXh8BLWg@mail.gmail.com>
	<CAG4opy_kuTCiH7cECZBOJjJpCxOCaYeRG1qwdaA7eLKn1_SmkA@mail.gmail.com>
	<CAF0KdiPKO3K_MtFfKwvsbfchOte5sCbyqr_+4ouqstcsnxSpAg@mail.gmail.com>
Date: Sun, 17 Jan 2016 15:03:24 +0000
Message-ID: <CAG4opy9OCfBZiqTOpfvvCc3RA0aqMVDYQmSAZwAfrfYuYXMKLQ@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Vasilis Goumas <bgoumas@gmail.com>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] beginner contributing to mirage
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 16 January 2016 at 21:19, Vasilis Goumas <bgoumas@gmail.com> wrote:
> Hello Thomas,
>
> After your helpful reply in my previous mail, I took the initiative to pm
> you.
> Also I wasn't sure If the mail was suitable for the list so forward if
> necessary.

Yes, please keep all discussion on the list.

>> By the way, I'm not sure these star ratings are very accurate. This is
>> a 1-star project, but it looks quite hard to me! Are you familiar with
>> the Git protocol? If not, learning that and OCaml at the same time
>> might be tricky.
>
>
> I am not familiar with the git protocol internals, so I guess that one might
> not be
> the best beginner project.
>
>> If anyone wants some really easy (but useful!) getting started tasks,
>> I've added a pioneer project to find libraries using printf and update
>> them to use Logs:
>> https://github.com/mirage/mirage-www/wiki/Pioneer-Projects#logging
>
>
> The task you mentioned seems interesting and I would like to start working
> on it.
> Any tips for the development workflow or must-study stuff, to get acquainted
> with
> the project?

You could start by cloning the mirage-skeleton repository and making a
new example based on "console" that uses logging rather than printing.

For modifying libraries, you'll need to know how to "opam pin" a
modified package for testing. There's some useful information here:

https://www.somerandomidiot.com/blog/2015/11/26/quick-changes-in-mirageos/

(however, I find it easier to look in the Makefile to find the
dependencies, rather than reading the source of the mirage tool, and
make sure you do "opam pin -k git" to pin in "mixed mode", or you'll
have endless trouble with stale OASIS files)


-- 
Dr Thomas Leonard        http://roscidus.com/blog/
GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Sun Jan 17 15:03:32 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 17 Jan 2016 15:03:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aKorZ-0005pe-HI; Sun, 17 Jan 2016 15:03:29 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <talex5@gmail.com>) id 1aKorW-0005pZ-KC
	for mirageos-devel@lists.xenproject.org; Sun, 17 Jan 2016 15:03:27 +0000
Received: from [85.158.143.35] by server-2.bemta-4.messagelabs.com id
	EB/1B-08977-D3DAB965; Sun, 17 Jan 2016 15:03:25 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-7.tower-21.messagelabs.com!1453043004!10662249!1
X-Originating-IP: [209.85.213.48]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 49452 invoked from network); 17 Jan 2016 15:03:25 -0000
Received: from mail-vk0-f48.google.com (HELO mail-vk0-f48.google.com)
	(209.85.213.48)
	by server-7.tower-21.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 17 Jan 2016 15:03:25 -0000
Received: by mail-vk0-f48.google.com with SMTP id i129so182087108vkb.0
	for <mirageos-devel@lists.xenproject.org>;
	Sun, 17 Jan 2016 07:03:25 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=lEL+1ihVtBHOi6xe6a9Q+Zqfvg//fqe7CcWO+dcH3AQ=;
	b=Z8Udc/73CbEiAz6Hmxk1GcrncQ+mje9FmRZQLS9Z2SDOn3LLAWskZXnO7WLtqXb5kr
	o3lh66cGTZAJyWnkaqHKGTIg6df4JRnnA1FvM6CafIhv7Mbfs7ZK3N9gy1/iys+/9TKP
	O3hMbZf3ejnqii3dlWmOgp/S58miBfdHQm35O1xo7S0A0FeT8Da6PNr4/25VRZn37coT
	LyFA9ApUagml8LOVQDh/O5+hiyvTRbWUX8on2hSIe48WQAqFoX2LjYQgY4CKlsWxSeHD
	g37YveeZs/BO2RD0E3roGT7DmPYjIdEyxkyJb9xggiaHUTIpdpsRH1rnMyV/Ep3/ks4Y
	Nkig==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:in-reply-to:references:date
	:message-id:subject:from:to:cc:content-type;
	bh=lEL+1ihVtBHOi6xe6a9Q+Zqfvg//fqe7CcWO+dcH3AQ=;
	b=bxUURorGJtDa5fGKUEhg1UHV8ejBkH3/yfP8RgK+u9BLUdFt6vIzVXjg/7zp4k9Wz4
	BgHdocXiORBaAZPtjeadoWcSaBzQ0DzS9UNA9QVbcdDJsZNCZ2VLstD2pwhR5Iiqnevr
	jY638Alu5lkVceGSibsm5rlQoq7jPQMCMY5Ljb8aXVZ+dYel5zXpOrbaK068/xD3oQAl
	u67VJNmOmAw/tY9g36hZom16vh/wvcPk9mUJeUDSpF2037uCDnp8j50i9o1NQcOIv3qV
	esykyX8z3H3GV+X4KQ6zaPiwmceh465uLyluGo5DnkhSJ63HjyAePZyPqjNOOm3D3ft1
	YRaQ==
X-Gm-Message-State: ALoCoQkMfbF/zzV4ahhgHvqQGrIbz0F3VbNKnMn5j+sSzkbLKYv8+lXN0oYOylbyNwNr8fAVRvN5UNBedEaAeppIHrMtT9/e+A==
MIME-Version: 1.0
X-Received: by 10.31.178.134 with SMTP id b128mr13034681vkf.112.1453043004369; 
	Sun, 17 Jan 2016 07:03:24 -0800 (PST)
Received: by 10.31.128.84 with HTTP; Sun, 17 Jan 2016 07:03:24 -0800 (PST)
In-Reply-To: <CAF0KdiPKO3K_MtFfKwvsbfchOte5sCbyqr_+4ouqstcsnxSpAg@mail.gmail.com>
References: <CAF0KdiNby-QtgWSf+FOmo+3PhD7ZFpvvxMXvs32sEkJXh8BLWg@mail.gmail.com>
	<CAG4opy_kuTCiH7cECZBOJjJpCxOCaYeRG1qwdaA7eLKn1_SmkA@mail.gmail.com>
	<CAF0KdiPKO3K_MtFfKwvsbfchOte5sCbyqr_+4ouqstcsnxSpAg@mail.gmail.com>
Date: Sun, 17 Jan 2016 15:03:24 +0000
Message-ID: <CAG4opy9OCfBZiqTOpfvvCc3RA0aqMVDYQmSAZwAfrfYuYXMKLQ@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Vasilis Goumas <bgoumas@gmail.com>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] beginner contributing to mirage
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 16 January 2016 at 21:19, Vasilis Goumas <bgoumas@gmail.com> wrote:
> Hello Thomas,
>
> After your helpful reply in my previous mail, I took the initiative to pm
> you.
> Also I wasn't sure If the mail was suitable for the list so forward if
> necessary.

Yes, please keep all discussion on the list.

>> By the way, I'm not sure these star ratings are very accurate. This is
>> a 1-star project, but it looks quite hard to me! Are you familiar with
>> the Git protocol? If not, learning that and OCaml at the same time
>> might be tricky.
>
>
> I am not familiar with the git protocol internals, so I guess that one might
> not be
> the best beginner project.
>
>> If anyone wants some really easy (but useful!) getting started tasks,
>> I've added a pioneer project to find libraries using printf and update
>> them to use Logs:
>> https://github.com/mirage/mirage-www/wiki/Pioneer-Projects#logging
>
>
> The task you mentioned seems interesting and I would like to start working
> on it.
> Any tips for the development workflow or must-study stuff, to get acquainted
> with
> the project?

You could start by cloning the mirage-skeleton repository and making a
new example based on "console" that uses logging rather than printing.

For modifying libraries, you'll need to know how to "opam pin" a
modified package for testing. There's some useful information here:

https://www.somerandomidiot.com/blog/2015/11/26/quick-changes-in-mirageos/

(however, I find it easier to look in the Makefile to find the
dependencies, rather than reading the source of the mirage tool, and
make sure you do "opam pin -k git" to pin in "mixed mode", or you'll
have endless trouble with stale OASIS files)


-- 
Dr Thomas Leonard        http://roscidus.com/blog/
GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Mon Jan 18 14:16:27 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 18 Jan 2016 14:16:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aLAbT-0000yq-90; Mon, 18 Jan 2016 14:16:19 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <hannes@mehnert.org>) id 1aLAbR-0000yj-On
	for mirageos-devel@lists.xenproject.org; Mon, 18 Jan 2016 14:16:17 +0000
Received: from [193.109.254.147] by server-8.bemta-14.messagelabs.com id
	9F/7C-24450-1B3FC965; Mon, 18 Jan 2016 14:16:17 +0000
X-Env-Sender: hannes@mehnert.org
X-Msg-Ref: server-4.tower-27.messagelabs.com!1453126576!16675609!1
X-Originating-IP: [213.73.89.200]
X-SpamReason: No, hits=0.3 required=7.0 tests=MAILTO_TO_SPAM_ADDR
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 41808 invoked from network); 18 Jan 2016 14:16:16 -0000
Received: from mail.mehnert.org (HELO mail.mehnert.org) (213.73.89.200)
	by server-4.tower-27.messagelabs.com with DHE-RSA-CAMELLIA256-SHA
	encrypted SMTP; 18 Jan 2016 14:16:16 -0000
Received: from [128.232.110.198] (c198.al.cl.cam.ac.uk [128.232.110.198])
	(using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits))
	(Client CN "hannes@mehnert.org",
	Issuer "mehnert root CA" (not verified))
	by mail.mehnert.org (Postfix) with ESMTPS id 92DA41EC5
	for <mirageos-devel@lists.xenproject.org>;
	Mon, 18 Jan 2016 15:16:14 +0100 (CET)
To: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
From: Hannes Mehnert <hannes@mehnert.org>
Openpgp: id=11B5464249B5BD858FFF6328BC896588DF7C28EE
X-Enigmail-Draft-Status: N1210
Message-ID: <569CF3A3.9070007@mehnert.org>
Date: Mon, 18 Jan 2016 14:16:03 +0000
User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:38.0) Gecko/20100101
	Thunderbird/38.3.0
MIME-Version: 1.0
Subject: [MirageOS-devel] reminder: MirageOS hackathon - March 11th - 16th
	-- please register
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============6971911191824134464=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--===============6971911191824134464==
Content-Type: multipart/signed; micalg=pgp-sha384;
 protocol="application/pgp-signature";
 boundary="xxnk1RH3LUuFGTD82Ta3KmSenJPDGRxGe"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--xxnk1RH3LUuFGTD82Ta3KmSenJPDGRxGe
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Hey,

please register for the MirageOS hackathon if you plan attending by
sending a mail to marrakech2016@mirage.io (everybody [so far 16
individuals] who registered received a confirmation mail last Thursday).

Everybody is welcome (no need to be an OCaml/MirageOS expert), as long
as you share interest in advancing MirageOS.

More information at http://marrakech2016.mirage.io


Spread the word and see you there,

hannes


--xxnk1RH3LUuFGTD82Ta3KmSenJPDGRxGe
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQIcBAEBCQAGBQJWnPOoAAoJELyJZYjffCjudcgP/RUE+2mQhdVd21Ega2f49R9l
bRr3ru3xi41NmdjErHi653bZSdKBe3DXs+4DaY+4fVkXHifoE6rn+oiexEnJ/fgV
KHRKw+9uJ/GyggC12yJEZ1bkFr6SaRWDja5rP/e0h/nlJzlkIBc0w/N9E288qLon
7YmMLK6r/zdydi3NQiCAf7HmDlAzVKhXoUaRGfEZhNh7fSEHFkkOrNas6DLU5NMw
o5jbJ0hoBXP4qaeNAp2wyWIaKI7Tq8F/+rAjXbzjEangn2fDOiiLoyVm4A/9Cu+p
WREo9o9ZYZXXfYOccHxVRxVxExHOtN/rpmYbXJpe19eReWsU7JzrTann5Rlt/px2
jBCnAoa9biabymI6iFKxz2ZKnB7RMLWYeIK48D6BQtTEIYqBJWAxRQMakBDYBAZJ
f+HujtKhOW2ZWbfpLFRNri8+Jm9gcY3SG7xqJXg0nP9Q7LfIcYY7yeIzzMBKwmzw
Lmx8qaMZzOg/w2JN7c52eb6MvzIvH2k4bPUfLjOXP3O8APY5pryluzM+1Kvor0Dw
z/iEq3hF5ploALt3XNBE7ykin+GmKlTea7zA3qsgMHLqnQbDSJc57UAGK6GGk8jW
j8+/ysdrvlGJjhREf//WP4CTl32tCbJPkBtDsyIOsvNyf/iUGl7V0iIXZvGQngE8
UcE2j0Pgu/8jmOcYxRlK
=Fh/i
-----END PGP SIGNATURE-----

--xxnk1RH3LUuFGTD82Ta3KmSenJPDGRxGe--


--===============6971911191824134464==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============6971911191824134464==--


From mirageos-devel-bounces@lists.xenproject.org Mon Jan 18 14:16:27 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 18 Jan 2016 14:16:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aLAbT-0000yq-90; Mon, 18 Jan 2016 14:16:19 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <hannes@mehnert.org>) id 1aLAbR-0000yj-On
	for mirageos-devel@lists.xenproject.org; Mon, 18 Jan 2016 14:16:17 +0000
Received: from [193.109.254.147] by server-8.bemta-14.messagelabs.com id
	9F/7C-24450-1B3FC965; Mon, 18 Jan 2016 14:16:17 +0000
X-Env-Sender: hannes@mehnert.org
X-Msg-Ref: server-4.tower-27.messagelabs.com!1453126576!16675609!1
X-Originating-IP: [213.73.89.200]
X-SpamReason: No, hits=0.3 required=7.0 tests=MAILTO_TO_SPAM_ADDR
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 41808 invoked from network); 18 Jan 2016 14:16:16 -0000
Received: from mail.mehnert.org (HELO mail.mehnert.org) (213.73.89.200)
	by server-4.tower-27.messagelabs.com with DHE-RSA-CAMELLIA256-SHA
	encrypted SMTP; 18 Jan 2016 14:16:16 -0000
Received: from [128.232.110.198] (c198.al.cl.cam.ac.uk [128.232.110.198])
	(using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits))
	(Client CN "hannes@mehnert.org",
	Issuer "mehnert root CA" (not verified))
	by mail.mehnert.org (Postfix) with ESMTPS id 92DA41EC5
	for <mirageos-devel@lists.xenproject.org>;
	Mon, 18 Jan 2016 15:16:14 +0100 (CET)
To: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
From: Hannes Mehnert <hannes@mehnert.org>
Openpgp: id=11B5464249B5BD858FFF6328BC896588DF7C28EE
X-Enigmail-Draft-Status: N1210
Message-ID: <569CF3A3.9070007@mehnert.org>
Date: Mon, 18 Jan 2016 14:16:03 +0000
User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:38.0) Gecko/20100101
	Thunderbird/38.3.0
MIME-Version: 1.0
Subject: [MirageOS-devel] reminder: MirageOS hackathon - March 11th - 16th
	-- please register
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============6971911191824134464=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--===============6971911191824134464==
Content-Type: multipart/signed; micalg=pgp-sha384;
 protocol="application/pgp-signature";
 boundary="xxnk1RH3LUuFGTD82Ta3KmSenJPDGRxGe"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--xxnk1RH3LUuFGTD82Ta3KmSenJPDGRxGe
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Hey,

please register for the MirageOS hackathon if you plan attending by
sending a mail to marrakech2016@mirage.io (everybody [so far 16
individuals] who registered received a confirmation mail last Thursday).

Everybody is welcome (no need to be an OCaml/MirageOS expert), as long
as you share interest in advancing MirageOS.

More information at http://marrakech2016.mirage.io


Spread the word and see you there,

hannes


--xxnk1RH3LUuFGTD82Ta3KmSenJPDGRxGe
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQIcBAEBCQAGBQJWnPOoAAoJELyJZYjffCjudcgP/RUE+2mQhdVd21Ega2f49R9l
bRr3ru3xi41NmdjErHi653bZSdKBe3DXs+4DaY+4fVkXHifoE6rn+oiexEnJ/fgV
KHRKw+9uJ/GyggC12yJEZ1bkFr6SaRWDja5rP/e0h/nlJzlkIBc0w/N9E288qLon
7YmMLK6r/zdydi3NQiCAf7HmDlAzVKhXoUaRGfEZhNh7fSEHFkkOrNas6DLU5NMw
o5jbJ0hoBXP4qaeNAp2wyWIaKI7Tq8F/+rAjXbzjEangn2fDOiiLoyVm4A/9Cu+p
WREo9o9ZYZXXfYOccHxVRxVxExHOtN/rpmYbXJpe19eReWsU7JzrTann5Rlt/px2
jBCnAoa9biabymI6iFKxz2ZKnB7RMLWYeIK48D6BQtTEIYqBJWAxRQMakBDYBAZJ
f+HujtKhOW2ZWbfpLFRNri8+Jm9gcY3SG7xqJXg0nP9Q7LfIcYY7yeIzzMBKwmzw
Lmx8qaMZzOg/w2JN7c52eb6MvzIvH2k4bPUfLjOXP3O8APY5pryluzM+1Kvor0Dw
z/iEq3hF5ploALt3XNBE7ykin+GmKlTea7zA3qsgMHLqnQbDSJc57UAGK6GGk8jW
j8+/ysdrvlGJjhREf//WP4CTl32tCbJPkBtDsyIOsvNyf/iUGl7V0iIXZvGQngE8
UcE2j0Pgu/8jmOcYxRlK
=Fh/i
-----END PGP SIGNATURE-----

--xxnk1RH3LUuFGTD82Ta3KmSenJPDGRxGe--


--===============6971911191824134464==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============6971911191824134464==--


From mirageos-devel-bounces@lists.xenproject.org Mon Jan 18 20:13:29 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 18 Jan 2016 20:13:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aLGAz-00014K-Cl; Mon, 18 Jan 2016 20:13:21 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <thomas.gazagnaire@gmail.com>) id 1aLGAx-00014F-TN
	for mirageos-devel@lists.xenproject.org; Mon, 18 Jan 2016 20:13:20 +0000
Received: from [85.158.139.211] by server-13.bemta-5.messagelabs.com id
	17/61-06091-F574D965; Mon, 18 Jan 2016 20:13:19 +0000
X-Env-Sender: thomas.gazagnaire@gmail.com
X-Msg-Ref: server-7.tower-206.messagelabs.com!1453147998!16346042!1
X-Originating-IP: [74.125.82.43]
X-SpamReason: No, hits=0.3 required=7.0 tests=MAILTO_TO_SPAM_ADDR
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 14241 invoked from network); 18 Jan 2016 20:13:18 -0000
Received: from mail-wm0-f43.google.com (HELO mail-wm0-f43.google.com)
	(74.125.82.43)
	by server-7.tower-206.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 18 Jan 2016 20:13:18 -0000
Received: by mail-wm0-f43.google.com with SMTP id u188so117843927wmu.1
	for <mirageos-devel@lists.xenproject.org>;
	Mon, 18 Jan 2016 12:13:18 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=sender:content-type:mime-version:subject:from:in-reply-to:date:cc
	:content-transfer-encoding:message-id:references:to;
	bh=oKXiolG+JO2zQlgWHMZpAmR55uSYsyBSknt2sBKsw34=;
	b=xqF/cZgswpc5+dseWj6ZevXtWIsloksbeciiPkrbpPb7x/zHZRbCXks6ZolEVjXA7r
	eWUnMM/WJJBW1+avigtFwmuYW/+2ZouLrJLbcveFHUxsxJei9bbBhvQUFVFCS7+T3jHU
	DJdgmuOr2ypYaP7v14CfrFVWxceEwGY2L/YqKvXmpQDQOa3Ak0Z2udgnHJJit9elPcXs
	67oqmnl0F+jdXtaqMdxwz86Ium2xoEOZCtiu63EO3vSNoj8RIw5tYMKhVTjNZ+78IHV7
	nr2ESCa0uERuePGqRUoVK+lxmY+P3ho7EvLqJuAP2IqwRxT1g7QUxnUjsxiDJueNgOk9
	dDNg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:sender:content-type:mime-version:subject:from
	:in-reply-to:date:cc:content-transfer-encoding:message-id:references
	:to; bh=oKXiolG+JO2zQlgWHMZpAmR55uSYsyBSknt2sBKsw34=;
	b=LP2BgC4egSgH2YJ1fAimUk7cU8fjXDfsyE0JVV+zFoQZ+ZU0dADq7YjMuLAYlMdwaj
	6CimGCm4cN6hpcjD1WjIYkSbYSScxYn6QDheLMKx+7YxPPfbHK41F9HFP1SawV34h2g2
	tpDvjSFSZb9O/K6+YQKtq0kb2JQ3pkvGY6O9Pw3FyuMoOE/LnZAV31z/mgLlfeI53L7o
	voeob51U1uHf/nAd5FSPgrgLqFDUpqIPKLzPoCsMzyYumRN6q6DEXqj97QMIVWEWT4iH
	FH42Tg8Sfg98nVFtvCI+MBMKT6QuyyKYGDzJ5fhZL9EEoeSCyYkOdN01Fn6W5sdkBlRc
	kjBA==
X-Gm-Message-State: AG10YOR8iUnoKQfhEf9AGk4f/XCwlS7TrlC1asSh0qS19Ztl01YINb7IIiFITlZh25ughA==
X-Received: by 10.194.79.73 with SMTP id h9mr2987951wjx.12.1453147997780;
	Mon, 18 Jan 2016 12:13:17 -0800 (PST)
Received: from [192.168.0.2] (cpc91206-cmbg18-2-0-cust57.5-4.cable.virginm.net.
	[81.101.26.58]) by smtp.gmail.com with ESMTPSA id
	c26sm17287860wmi.21.2016.01.18.12.13.16
	(version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128);
	Mon, 18 Jan 2016 12:13:16 -0800 (PST)
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Thomas Gazagnaire <thomas@gazagnaire.org>
In-Reply-To: <663e4a04546e2d509c45d83fab5e99b9@cam.ac.uk>
Date: Mon, 18 Jan 2016 20:13:16 +0000
Message-Id: <66FED347-B7C6-4A73-8641-88B61418E150@gazagnaire.org>
References: <6CCAF6CF-BC3D-4C2C-99A3-0435C61D16D4@cam.ac.uk>
	<CAG4opy9AEuMR_J3G_2sa_xyW9DjGLSU=FxDoGWnLa1yXTAJ+BA@mail.gmail.com>
	<CAG_esB3OuF2LwXGxjthG2OKwf62rR502jw28xdQzbQR0sdfw7g@mail.gmail.com>
	<CAC+s27DKjOsoSyA5T+QtOq8XJBr6JqZXyGtYa-mgQ56HaN_apg@mail.gmail.com>
	<CAC+s27AZcx0yge-d3nZGYiHrGc+ix60ZFVJSq3LUTT7=7mMA2w@mail.gmail.com>
	<CAN2Hq059Ne4AZsVAP6vBimAJ-Kf_PqgdebVirR5MF0DcUEsKfQ@mail.gmail.com>
	<CAC+s27Awi+hGOh6CztVCn48z6HCMAZuyGg6nHZSLXUOh=Rf=BQ@mail.gmail.com>
	<663e4a04546e2d509c45d83fab5e99b9@cam.ac.uk>
To: Nik Sultana <ns441@cam.ac.uk>
X-Mailer: Apple Mail (2.2104)
Cc: Rupert Horlick <rh572@cam.ac.uk>, mirageos-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel] Irmin on BLOCK
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

Seems that Dave has been busy:

https://github.com/djs55/ocaml-btree

(sorry Dave if I spoiled your future announcement)

Thomas


> On 11 Nov 2015, at 15:28, Nik Sultana <ns441@cam.ac.uk> wrote:
> 
> Coincidentally B-trees came up recently on Ocaml-list:
>  https://sympa.inria.fr/sympa/arc/caml-list/2015-11/msg00011.html
> 
> 
> On 2015-11-11 09:58, Rupert Horlick wrote:
>> Hmm, it seems like that is built on top of a few packages that don't
>> exist any more to interface between Baardskeerder and Mirage.
>> Do you think it's worth doing a simple B-Tree implementation myself,
>> or would it be better to try and build a new interface module for
>> Mirage and Baardskeerder?
>> A B-Tree implementation would certainly be good for the project
>> write-up, but let me know what you think.
>> Rupert
>> On Tue, Nov 10, 2015 at 8:58 PM Richard Mortier
>> <richard.mortier@cl.cam.ac.uk> wrote:
>>> On 10 November 2015 at 16:49, Rupert Horlick <rh572@cam.ac.uk>
>>> wrote:
>>>> I'm implementing this for a Part II project, so I've decided to
>>> go ahead and
>>>> implement my own simple FS for BLOCK, rather than using IRMIN.
>>>> However, I'm coming across the difficulties that Dave mentioned,
>>> Simple and in-memory is (surely!) still good to start with though!
>>>> so I'm
>>>> reading up on B-trees as we speak. I may well end up writing a
>>> simple B-tree
>>>> library, so I'll let know you if I do.
>>> There may be most of such a thing already I think -- Chris
>>> Greenhalgh
>>> at Nottingham lashed something up a while ago based on
>>> Baardskeerder,
>>> see https://github.com/cgreenhalgh/ocaml-btree [1] (though based on
>>> a much
>>> much earlier version of Mirage :)
>>> --
>>> Richard Mortier
>>> richard.mortier@cl.cam.ac.uk
>> Links:
>> ------
>> [1] https://github.com/cgreenhalgh/ocaml-btree
>> _______________________________________________
>> MirageOS-devel mailing list
>> MirageOS-devel@lists.xenproject.org
>> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
> 
> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel


_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Mon Jan 18 20:13:29 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 18 Jan 2016 20:13:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aLGAz-00014K-Cl; Mon, 18 Jan 2016 20:13:21 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <thomas.gazagnaire@gmail.com>) id 1aLGAx-00014F-TN
	for mirageos-devel@lists.xenproject.org; Mon, 18 Jan 2016 20:13:20 +0000
Received: from [85.158.139.211] by server-13.bemta-5.messagelabs.com id
	17/61-06091-F574D965; Mon, 18 Jan 2016 20:13:19 +0000
X-Env-Sender: thomas.gazagnaire@gmail.com
X-Msg-Ref: server-7.tower-206.messagelabs.com!1453147998!16346042!1
X-Originating-IP: [74.125.82.43]
X-SpamReason: No, hits=0.3 required=7.0 tests=MAILTO_TO_SPAM_ADDR
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 14241 invoked from network); 18 Jan 2016 20:13:18 -0000
Received: from mail-wm0-f43.google.com (HELO mail-wm0-f43.google.com)
	(74.125.82.43)
	by server-7.tower-206.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 18 Jan 2016 20:13:18 -0000
Received: by mail-wm0-f43.google.com with SMTP id u188so117843927wmu.1
	for <mirageos-devel@lists.xenproject.org>;
	Mon, 18 Jan 2016 12:13:18 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=sender:content-type:mime-version:subject:from:in-reply-to:date:cc
	:content-transfer-encoding:message-id:references:to;
	bh=oKXiolG+JO2zQlgWHMZpAmR55uSYsyBSknt2sBKsw34=;
	b=xqF/cZgswpc5+dseWj6ZevXtWIsloksbeciiPkrbpPb7x/zHZRbCXks6ZolEVjXA7r
	eWUnMM/WJJBW1+avigtFwmuYW/+2ZouLrJLbcveFHUxsxJei9bbBhvQUFVFCS7+T3jHU
	DJdgmuOr2ypYaP7v14CfrFVWxceEwGY2L/YqKvXmpQDQOa3Ak0Z2udgnHJJit9elPcXs
	67oqmnl0F+jdXtaqMdxwz86Ium2xoEOZCtiu63EO3vSNoj8RIw5tYMKhVTjNZ+78IHV7
	nr2ESCa0uERuePGqRUoVK+lxmY+P3ho7EvLqJuAP2IqwRxT1g7QUxnUjsxiDJueNgOk9
	dDNg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:sender:content-type:mime-version:subject:from
	:in-reply-to:date:cc:content-transfer-encoding:message-id:references
	:to; bh=oKXiolG+JO2zQlgWHMZpAmR55uSYsyBSknt2sBKsw34=;
	b=LP2BgC4egSgH2YJ1fAimUk7cU8fjXDfsyE0JVV+zFoQZ+ZU0dADq7YjMuLAYlMdwaj
	6CimGCm4cN6hpcjD1WjIYkSbYSScxYn6QDheLMKx+7YxPPfbHK41F9HFP1SawV34h2g2
	tpDvjSFSZb9O/K6+YQKtq0kb2JQ3pkvGY6O9Pw3FyuMoOE/LnZAV31z/mgLlfeI53L7o
	voeob51U1uHf/nAd5FSPgrgLqFDUpqIPKLzPoCsMzyYumRN6q6DEXqj97QMIVWEWT4iH
	FH42Tg8Sfg98nVFtvCI+MBMKT6QuyyKYGDzJ5fhZL9EEoeSCyYkOdN01Fn6W5sdkBlRc
	kjBA==
X-Gm-Message-State: AG10YOR8iUnoKQfhEf9AGk4f/XCwlS7TrlC1asSh0qS19Ztl01YINb7IIiFITlZh25ughA==
X-Received: by 10.194.79.73 with SMTP id h9mr2987951wjx.12.1453147997780;
	Mon, 18 Jan 2016 12:13:17 -0800 (PST)
Received: from [192.168.0.2] (cpc91206-cmbg18-2-0-cust57.5-4.cable.virginm.net.
	[81.101.26.58]) by smtp.gmail.com with ESMTPSA id
	c26sm17287860wmi.21.2016.01.18.12.13.16
	(version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128);
	Mon, 18 Jan 2016 12:13:16 -0800 (PST)
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Thomas Gazagnaire <thomas@gazagnaire.org>
In-Reply-To: <663e4a04546e2d509c45d83fab5e99b9@cam.ac.uk>
Date: Mon, 18 Jan 2016 20:13:16 +0000
Message-Id: <66FED347-B7C6-4A73-8641-88B61418E150@gazagnaire.org>
References: <6CCAF6CF-BC3D-4C2C-99A3-0435C61D16D4@cam.ac.uk>
	<CAG4opy9AEuMR_J3G_2sa_xyW9DjGLSU=FxDoGWnLa1yXTAJ+BA@mail.gmail.com>
	<CAG_esB3OuF2LwXGxjthG2OKwf62rR502jw28xdQzbQR0sdfw7g@mail.gmail.com>
	<CAC+s27DKjOsoSyA5T+QtOq8XJBr6JqZXyGtYa-mgQ56HaN_apg@mail.gmail.com>
	<CAC+s27AZcx0yge-d3nZGYiHrGc+ix60ZFVJSq3LUTT7=7mMA2w@mail.gmail.com>
	<CAN2Hq059Ne4AZsVAP6vBimAJ-Kf_PqgdebVirR5MF0DcUEsKfQ@mail.gmail.com>
	<CAC+s27Awi+hGOh6CztVCn48z6HCMAZuyGg6nHZSLXUOh=Rf=BQ@mail.gmail.com>
	<663e4a04546e2d509c45d83fab5e99b9@cam.ac.uk>
To: Nik Sultana <ns441@cam.ac.uk>
X-Mailer: Apple Mail (2.2104)
Cc: Rupert Horlick <rh572@cam.ac.uk>, mirageos-devel@lists.xenproject.org
Subject: Re: [MirageOS-devel] Irmin on BLOCK
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

Seems that Dave has been busy:

https://github.com/djs55/ocaml-btree

(sorry Dave if I spoiled your future announcement)

Thomas


> On 11 Nov 2015, at 15:28, Nik Sultana <ns441@cam.ac.uk> wrote:
> 
> Coincidentally B-trees came up recently on Ocaml-list:
>  https://sympa.inria.fr/sympa/arc/caml-list/2015-11/msg00011.html
> 
> 
> On 2015-11-11 09:58, Rupert Horlick wrote:
>> Hmm, it seems like that is built on top of a few packages that don't
>> exist any more to interface between Baardskeerder and Mirage.
>> Do you think it's worth doing a simple B-Tree implementation myself,
>> or would it be better to try and build a new interface module for
>> Mirage and Baardskeerder?
>> A B-Tree implementation would certainly be good for the project
>> write-up, but let me know what you think.
>> Rupert
>> On Tue, Nov 10, 2015 at 8:58 PM Richard Mortier
>> <richard.mortier@cl.cam.ac.uk> wrote:
>>> On 10 November 2015 at 16:49, Rupert Horlick <rh572@cam.ac.uk>
>>> wrote:
>>>> I'm implementing this for a Part II project, so I've decided to
>>> go ahead and
>>>> implement my own simple FS for BLOCK, rather than using IRMIN.
>>>> However, I'm coming across the difficulties that Dave mentioned,
>>> Simple and in-memory is (surely!) still good to start with though!
>>>> so I'm
>>>> reading up on B-trees as we speak. I may well end up writing a
>>> simple B-tree
>>>> library, so I'll let know you if I do.
>>> There may be most of such a thing already I think -- Chris
>>> Greenhalgh
>>> at Nottingham lashed something up a while ago based on
>>> Baardskeerder,
>>> see https://github.com/cgreenhalgh/ocaml-btree [1] (though based on
>>> a much
>>> much earlier version of Mirage :)
>>> --
>>> Richard Mortier
>>> richard.mortier@cl.cam.ac.uk
>> Links:
>> ------
>> [1] https://github.com/cgreenhalgh/ocaml-btree
>> _______________________________________________
>> MirageOS-devel mailing list
>> MirageOS-devel@lists.xenproject.org
>> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
> 
> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel


_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Mon Jan 18 20:22:24 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 18 Jan 2016 20:22:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aLGJk-0001S1-9A; Mon, 18 Jan 2016 20:22:24 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <scott.dj@gmail.com>) id 1aLGJi-0001Rw-Ja
	for mirageos-devel@lists.xenproject.org; Mon, 18 Jan 2016 20:22:22 +0000
Received: from [85.158.139.211] by server-12.bemta-5.messagelabs.com id
	2C/1B-17089-D794D965; Mon, 18 Jan 2016 20:22:21 +0000
X-Env-Sender: scott.dj@gmail.com
X-Msg-Ref: server-11.tower-206.messagelabs.com!1453148539!16603569!1
X-Originating-IP: [74.125.82.52]
X-SpamReason: No, hits=1.2 required=7.0 tests=HTML_40_50,HTML_MESSAGE,
	MAILTO_TO_SPAM_ADDR,RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 46733 invoked from network); 18 Jan 2016 20:22:19 -0000
Received: from mail-wm0-f52.google.com (HELO mail-wm0-f52.google.com)
	(74.125.82.52)
	by server-11.tower-206.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 18 Jan 2016 20:22:19 -0000
Received: by mail-wm0-f52.google.com with SMTP id r129so65331367wmr.0
	for <mirageos-devel@lists.xenproject.org>;
	Mon, 18 Jan 2016 12:22:19 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=IDwOnoKQXm7JA+es+wDCpJsE7Y7UMatn+Uj796XJ5pA=;
	b=MDt4o00rxjlbICU+OT87d21Ppb50+azSZYSHXM+dcoq2NqxicwFUDqSBYao8qcmiZ7
	FI5WNj6woIBKoZ5dAbDA97CYUKX4PnOQbEsGe1nU/cwH6wA59cmABI8w8486XcvN02PA
	Pdz/BiSxY4Q64K+D+D5xpl4ia8TMxxUxmUifx2xyCDXmKCMfNeemNhkyjOo5TAhm6SnW
	kow0UTuur3DaRFhas+kP0L+8YUlBOqSV1JM9uKwlGDD7LKQ09/QM5jL0ClEsSbW+DtOI
	2SmicMRDEgJpXI/7VhQON9wFwwgLfKg9ibFEkpgS08By7JHGMY+zfBhxtfTy+AzRL42x
	52cg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:in-reply-to:references:date
	:message-id:subject:from:to:cc:content-type;
	bh=IDwOnoKQXm7JA+es+wDCpJsE7Y7UMatn+Uj796XJ5pA=;
	b=OruzvYc6U6MVh2/lpIUW8oKwma1ZN6rphhgQug8w7iHEBb5oga3J8qgpAURjtpzFDo
	FSwKerrzeGEB0EvUGQsZFZBolawBBe9Rd2o/comuz9rEPdjpTFRTiedO/nuZThmg1EZx
	Dw8RVILUSI+DED+ca/CR/mNhlqwkdgHcG89eIg+0/aDNnGcjFLj/FK8Bt7lOL+NGLLv7
	mlWt6sUcAfeR/U8ZHd2M5c9oPiDf5hmSdjFWDVNWwQrJF2w77TnjvyQJJNc83JyBu1lz
	5I9JPOPjTSXpiO8Cp0DG7XJidU0Lbf8IrsvkQFhcfO+DiRMgP6s+LdzhxF540k351gK4
	Q+TQ==
X-Gm-Message-State: ALoCoQlTZdtKapSXaHLDbncWiju89r2dPNe0+jdTDTbzVZcSe3FqlF31ZhtmPCxGAmG0X+zh8tdolJonvG3U9nR3sR+ANmqRoQ==
MIME-Version: 1.0
X-Received: by 10.194.216.100 with SMTP id op4mr24720553wjc.85.1453148539498; 
	Mon, 18 Jan 2016 12:22:19 -0800 (PST)
Received: by 10.28.137.2 with HTTP; Mon, 18 Jan 2016 12:22:19 -0800 (PST)
In-Reply-To: <66FED347-B7C6-4A73-8641-88B61418E150@gazagnaire.org>
References: <6CCAF6CF-BC3D-4C2C-99A3-0435C61D16D4@cam.ac.uk>
	<CAG4opy9AEuMR_J3G_2sa_xyW9DjGLSU=FxDoGWnLa1yXTAJ+BA@mail.gmail.com>
	<CAG_esB3OuF2LwXGxjthG2OKwf62rR502jw28xdQzbQR0sdfw7g@mail.gmail.com>
	<CAC+s27DKjOsoSyA5T+QtOq8XJBr6JqZXyGtYa-mgQ56HaN_apg@mail.gmail.com>
	<CAC+s27AZcx0yge-d3nZGYiHrGc+ix60ZFVJSq3LUTT7=7mMA2w@mail.gmail.com>
	<CAN2Hq059Ne4AZsVAP6vBimAJ-Kf_PqgdebVirR5MF0DcUEsKfQ@mail.gmail.com>
	<CAC+s27Awi+hGOh6CztVCn48z6HCMAZuyGg6nHZSLXUOh=Rf=BQ@mail.gmail.com>
	<663e4a04546e2d509c45d83fab5e99b9@cam.ac.uk>
	<66FED347-B7C6-4A73-8641-88B61418E150@gazagnaire.org>
Date: Mon, 18 Jan 2016 20:22:19 +0000
Message-ID: <CAG_esB2mcY-wusgkQbYO4eJL=9JtwHW9EemXrrGrxnVwMH68JQ@mail.gmail.com>
From: David Scott <scott.dj@gmail.com>
To: Thomas Gazagnaire <thomas@gazagnaire.org>
Cc: Rupert Horlick <rh572@cam.ac.uk>, "mirageos-devel@lists.xenproject.org"
	<mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Irmin on BLOCK
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============6462077409794705937=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============6462077409794705937==
Content-Type: multipart/alternative; boundary=089e014935f480b8fd0529a18291

--089e014935f480b8fd0529a18291
Content-Type: text/plain; charset=UTF-8

On Mon, Jan 18, 2016 at 8:13 PM, Thomas Gazagnaire <thomas@gazagnaire.org>
wrote:

> Seems that Dave has been busy:
>
> https://github.com/djs55/ocaml-btree
>
> (sorry Dave if I spoiled your future announcement)
>

That's ok -- I'm still experimenting with interfaces and disk layouts.
It'll be a while before I have anything that works! Most of the interesting
function bodies are still `failwith "unimplemented: ..."` and I've not
thought enough about how the GC would work.

Cheers,
Dave



>
> Thomas
>
>
> > On 11 Nov 2015, at 15:28, Nik Sultana <ns441@cam.ac.uk> wrote:
> >
> > Coincidentally B-trees came up recently on Ocaml-list:
> >  https://sympa.inria.fr/sympa/arc/caml-list/2015-11/msg00011.html
> >
> >
> > On 2015-11-11 09:58, Rupert Horlick wrote:
> >> Hmm, it seems like that is built on top of a few packages that don't
> >> exist any more to interface between Baardskeerder and Mirage.
> >> Do you think it's worth doing a simple B-Tree implementation myself,
> >> or would it be better to try and build a new interface module for
> >> Mirage and Baardskeerder?
> >> A B-Tree implementation would certainly be good for the project
> >> write-up, but let me know what you think.
> >> Rupert
> >> On Tue, Nov 10, 2015 at 8:58 PM Richard Mortier
> >> <richard.mortier@cl.cam.ac.uk> wrote:
> >>> On 10 November 2015 at 16:49, Rupert Horlick <rh572@cam.ac.uk>
> >>> wrote:
> >>>> I'm implementing this for a Part II project, so I've decided to
> >>> go ahead and
> >>>> implement my own simple FS for BLOCK, rather than using IRMIN.
> >>>> However, I'm coming across the difficulties that Dave mentioned,
> >>> Simple and in-memory is (surely!) still good to start with though!
> >>>> so I'm
> >>>> reading up on B-trees as we speak. I may well end up writing a
> >>> simple B-tree
> >>>> library, so I'll let know you if I do.
> >>> There may be most of such a thing already I think -- Chris
> >>> Greenhalgh
> >>> at Nottingham lashed something up a while ago based on
> >>> Baardskeerder,
> >>> see https://github.com/cgreenhalgh/ocaml-btree [1] (though based on
> >>> a much
> >>> much earlier version of Mirage :)
> >>> --
> >>> Richard Mortier
> >>> richard.mortier@cl.cam.ac.uk
> >> Links:
> >> ------
> >> [1] https://github.com/cgreenhalgh/ocaml-btree
> >> _______________________________________________
> >> MirageOS-devel mailing list
> >> MirageOS-devel@lists.xenproject.org
> >> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
> >
> > _______________________________________________
> > MirageOS-devel mailing list
> > MirageOS-devel@lists.xenproject.org
> > http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>
>
> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>



-- 
Dave Scott

--089e014935f480b8fd0529a18291
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Mon, Jan 18, 2016 at 8:13 PM, Thomas Gazagnaire <span dir=3D"ltr">&l=
t;<a href=3D"mailto:thomas@gazagnaire.org" target=3D"_blank">thomas@gazagna=
ire.org</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D=
"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Seems that =
Dave has been busy:<br>
<br>
<a href=3D"https://github.com/djs55/ocaml-btree" rel=3D"noreferrer" target=
=3D"_blank">https://github.com/djs55/ocaml-btree</a><br>
<br>
(sorry Dave if I spoiled your future announcement)<br></blockquote><div><br=
></div><div>That&#39;s ok -- I&#39;m still experimenting with interfaces an=
d disk layouts. It&#39;ll be a while before I have anything that works! Mos=
t of the interesting function bodies are still `failwith &quot;unimplemente=
d: ...&quot;` and I&#39;ve not thought enough about how the GC would work.<=
/div><div><br></div><div>Cheers,</div><div>Dave</div><div><br></div><div>=
=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;bo=
rder-left:1px #ccc solid;padding-left:1ex">
<span class=3D"HOEnZb"><font color=3D"#888888"><br>
Thomas<br>
</font></span><div class=3D"HOEnZb"><div class=3D"h5"><br>
<br>
&gt; On 11 Nov 2015, at 15:28, Nik Sultana &lt;<a href=3D"mailto:ns441@cam.=
ac.uk">ns441@cam.ac.uk</a>&gt; wrote:<br>
&gt;<br>
&gt; Coincidentally B-trees came up recently on Ocaml-list:<br>
&gt;=C2=A0 <a href=3D"https://sympa.inria.fr/sympa/arc/caml-list/2015-11/ms=
g00011.html" rel=3D"noreferrer" target=3D"_blank">https://sympa.inria.fr/sy=
mpa/arc/caml-list/2015-11/msg00011.html</a><br>
&gt;<br>
&gt;<br>
&gt; On 2015-11-11 09:58, Rupert Horlick wrote:<br>
&gt;&gt; Hmm, it seems like that is built on top of a few packages that don=
&#39;t<br>
&gt;&gt; exist any more to interface between Baardskeerder and Mirage.<br>
&gt;&gt; Do you think it&#39;s worth doing a simple B-Tree implementation m=
yself,<br>
&gt;&gt; or would it be better to try and build a new interface module for<=
br>
&gt;&gt; Mirage and Baardskeerder?<br>
&gt;&gt; A B-Tree implementation would certainly be good for the project<br=
>
&gt;&gt; write-up, but let me know what you think.<br>
&gt;&gt; Rupert<br>
&gt;&gt; On Tue, Nov 10, 2015 at 8:58 PM Richard Mortier<br>
&gt;&gt; &lt;<a href=3D"mailto:richard.mortier@cl.cam.ac.uk">richard.mortie=
r@cl.cam.ac.uk</a>&gt; wrote:<br>
&gt;&gt;&gt; On 10 November 2015 at 16:49, Rupert Horlick &lt;<a href=3D"ma=
ilto:rh572@cam.ac.uk">rh572@cam.ac.uk</a>&gt;<br>
&gt;&gt;&gt; wrote:<br>
&gt;&gt;&gt;&gt; I&#39;m implementing this for a Part II project, so I&#39;=
ve decided to<br>
&gt;&gt;&gt; go ahead and<br>
&gt;&gt;&gt;&gt; implement my own simple FS for BLOCK, rather than using IR=
MIN.<br>
&gt;&gt;&gt;&gt; However, I&#39;m coming across the difficulties that Dave =
mentioned,<br>
&gt;&gt;&gt; Simple and in-memory is (surely!) still good to start with tho=
ugh!<br>
&gt;&gt;&gt;&gt; so I&#39;m<br>
&gt;&gt;&gt;&gt; reading up on B-trees as we speak. I may well end up writi=
ng a<br>
&gt;&gt;&gt; simple B-tree<br>
&gt;&gt;&gt;&gt; library, so I&#39;ll let know you if I do.<br>
&gt;&gt;&gt; There may be most of such a thing already I think -- Chris<br>
&gt;&gt;&gt; Greenhalgh<br>
&gt;&gt;&gt; at Nottingham lashed something up a while ago based on<br>
&gt;&gt;&gt; Baardskeerder,<br>
&gt;&gt;&gt; see <a href=3D"https://github.com/cgreenhalgh/ocaml-btree" rel=
=3D"noreferrer" target=3D"_blank">https://github.com/cgreenhalgh/ocaml-btre=
e</a> [1] (though based on<br>
&gt;&gt;&gt; a much<br>
&gt;&gt;&gt; much earlier version of Mirage :)<br>
&gt;&gt;&gt; --<br>
&gt;&gt;&gt; Richard Mortier<br>
&gt;&gt;&gt; <a href=3D"mailto:richard.mortier@cl.cam.ac.uk">richard.mortie=
r@cl.cam.ac.uk</a><br>
&gt;&gt; Links:<br>
&gt;&gt; ------<br>
&gt;&gt; [1] <a href=3D"https://github.com/cgreenhalgh/ocaml-btree" rel=3D"=
noreferrer" target=3D"_blank">https://github.com/cgreenhalgh/ocaml-btree</a=
><br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; MirageOS-devel mailing list<br>
&gt;&gt; <a href=3D"mailto:MirageOS-devel@lists.xenproject.org">MirageOS-de=
vel@lists.xenproject.org</a><br>
&gt;&gt; <a href=3D"http://lists.xenproject.org/cgi-bin/mailman/listinfo/mi=
rageos-devel" rel=3D"noreferrer" target=3D"_blank">http://lists.xenproject.=
org/cgi-bin/mailman/listinfo/mirageos-devel</a><br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; MirageOS-devel mailing list<br>
&gt; <a href=3D"mailto:MirageOS-devel@lists.xenproject.org">MirageOS-devel@=
lists.xenproject.org</a><br>
&gt; <a href=3D"http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirage=
os-devel" rel=3D"noreferrer" target=3D"_blank">http://lists.xenproject.org/=
cgi-bin/mailman/listinfo/mirageos-devel</a><br>
<br>
<br>
_______________________________________________<br>
MirageOS-devel mailing list<br>
<a href=3D"mailto:MirageOS-devel@lists.xenproject.org">MirageOS-devel@lists=
.xenproject.org</a><br>
<a href=3D"http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-de=
vel" rel=3D"noreferrer" target=3D"_blank">http://lists.xenproject.org/cgi-b=
in/mailman/listinfo/mirageos-devel</a><br>
</div></div></blockquote></div><br><br clear=3D"all"><div><br></div>-- <br>=
<div class=3D"gmail_signature">Dave Scott</div>
</div></div>

--089e014935f480b8fd0529a18291--


--===============6462077409794705937==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============6462077409794705937==--


From mirageos-devel-bounces@lists.xenproject.org Mon Jan 18 20:22:24 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 18 Jan 2016 20:22:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aLGJk-0001S1-9A; Mon, 18 Jan 2016 20:22:24 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <scott.dj@gmail.com>) id 1aLGJi-0001Rw-Ja
	for mirageos-devel@lists.xenproject.org; Mon, 18 Jan 2016 20:22:22 +0000
Received: from [85.158.139.211] by server-12.bemta-5.messagelabs.com id
	2C/1B-17089-D794D965; Mon, 18 Jan 2016 20:22:21 +0000
X-Env-Sender: scott.dj@gmail.com
X-Msg-Ref: server-11.tower-206.messagelabs.com!1453148539!16603569!1
X-Originating-IP: [74.125.82.52]
X-SpamReason: No, hits=1.2 required=7.0 tests=HTML_40_50,HTML_MESSAGE,
	MAILTO_TO_SPAM_ADDR,RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 46733 invoked from network); 18 Jan 2016 20:22:19 -0000
Received: from mail-wm0-f52.google.com (HELO mail-wm0-f52.google.com)
	(74.125.82.52)
	by server-11.tower-206.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 18 Jan 2016 20:22:19 -0000
Received: by mail-wm0-f52.google.com with SMTP id r129so65331367wmr.0
	for <mirageos-devel@lists.xenproject.org>;
	Mon, 18 Jan 2016 12:22:19 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=IDwOnoKQXm7JA+es+wDCpJsE7Y7UMatn+Uj796XJ5pA=;
	b=MDt4o00rxjlbICU+OT87d21Ppb50+azSZYSHXM+dcoq2NqxicwFUDqSBYao8qcmiZ7
	FI5WNj6woIBKoZ5dAbDA97CYUKX4PnOQbEsGe1nU/cwH6wA59cmABI8w8486XcvN02PA
	Pdz/BiSxY4Q64K+D+D5xpl4ia8TMxxUxmUifx2xyCDXmKCMfNeemNhkyjOo5TAhm6SnW
	kow0UTuur3DaRFhas+kP0L+8YUlBOqSV1JM9uKwlGDD7LKQ09/QM5jL0ClEsSbW+DtOI
	2SmicMRDEgJpXI/7VhQON9wFwwgLfKg9ibFEkpgS08By7JHGMY+zfBhxtfTy+AzRL42x
	52cg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:in-reply-to:references:date
	:message-id:subject:from:to:cc:content-type;
	bh=IDwOnoKQXm7JA+es+wDCpJsE7Y7UMatn+Uj796XJ5pA=;
	b=OruzvYc6U6MVh2/lpIUW8oKwma1ZN6rphhgQug8w7iHEBb5oga3J8qgpAURjtpzFDo
	FSwKerrzeGEB0EvUGQsZFZBolawBBe9Rd2o/comuz9rEPdjpTFRTiedO/nuZThmg1EZx
	Dw8RVILUSI+DED+ca/CR/mNhlqwkdgHcG89eIg+0/aDNnGcjFLj/FK8Bt7lOL+NGLLv7
	mlWt6sUcAfeR/U8ZHd2M5c9oPiDf5hmSdjFWDVNWwQrJF2w77TnjvyQJJNc83JyBu1lz
	5I9JPOPjTSXpiO8Cp0DG7XJidU0Lbf8IrsvkQFhcfO+DiRMgP6s+LdzhxF540k351gK4
	Q+TQ==
X-Gm-Message-State: ALoCoQlTZdtKapSXaHLDbncWiju89r2dPNe0+jdTDTbzVZcSe3FqlF31ZhtmPCxGAmG0X+zh8tdolJonvG3U9nR3sR+ANmqRoQ==
MIME-Version: 1.0
X-Received: by 10.194.216.100 with SMTP id op4mr24720553wjc.85.1453148539498; 
	Mon, 18 Jan 2016 12:22:19 -0800 (PST)
Received: by 10.28.137.2 with HTTP; Mon, 18 Jan 2016 12:22:19 -0800 (PST)
In-Reply-To: <66FED347-B7C6-4A73-8641-88B61418E150@gazagnaire.org>
References: <6CCAF6CF-BC3D-4C2C-99A3-0435C61D16D4@cam.ac.uk>
	<CAG4opy9AEuMR_J3G_2sa_xyW9DjGLSU=FxDoGWnLa1yXTAJ+BA@mail.gmail.com>
	<CAG_esB3OuF2LwXGxjthG2OKwf62rR502jw28xdQzbQR0sdfw7g@mail.gmail.com>
	<CAC+s27DKjOsoSyA5T+QtOq8XJBr6JqZXyGtYa-mgQ56HaN_apg@mail.gmail.com>
	<CAC+s27AZcx0yge-d3nZGYiHrGc+ix60ZFVJSq3LUTT7=7mMA2w@mail.gmail.com>
	<CAN2Hq059Ne4AZsVAP6vBimAJ-Kf_PqgdebVirR5MF0DcUEsKfQ@mail.gmail.com>
	<CAC+s27Awi+hGOh6CztVCn48z6HCMAZuyGg6nHZSLXUOh=Rf=BQ@mail.gmail.com>
	<663e4a04546e2d509c45d83fab5e99b9@cam.ac.uk>
	<66FED347-B7C6-4A73-8641-88B61418E150@gazagnaire.org>
Date: Mon, 18 Jan 2016 20:22:19 +0000
Message-ID: <CAG_esB2mcY-wusgkQbYO4eJL=9JtwHW9EemXrrGrxnVwMH68JQ@mail.gmail.com>
From: David Scott <scott.dj@gmail.com>
To: Thomas Gazagnaire <thomas@gazagnaire.org>
Cc: Rupert Horlick <rh572@cam.ac.uk>, "mirageos-devel@lists.xenproject.org"
	<mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Irmin on BLOCK
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============6462077409794705937=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============6462077409794705937==
Content-Type: multipart/alternative; boundary=089e014935f480b8fd0529a18291

--089e014935f480b8fd0529a18291
Content-Type: text/plain; charset=UTF-8

On Mon, Jan 18, 2016 at 8:13 PM, Thomas Gazagnaire <thomas@gazagnaire.org>
wrote:

> Seems that Dave has been busy:
>
> https://github.com/djs55/ocaml-btree
>
> (sorry Dave if I spoiled your future announcement)
>

That's ok -- I'm still experimenting with interfaces and disk layouts.
It'll be a while before I have anything that works! Most of the interesting
function bodies are still `failwith "unimplemented: ..."` and I've not
thought enough about how the GC would work.

Cheers,
Dave



>
> Thomas
>
>
> > On 11 Nov 2015, at 15:28, Nik Sultana <ns441@cam.ac.uk> wrote:
> >
> > Coincidentally B-trees came up recently on Ocaml-list:
> >  https://sympa.inria.fr/sympa/arc/caml-list/2015-11/msg00011.html
> >
> >
> > On 2015-11-11 09:58, Rupert Horlick wrote:
> >> Hmm, it seems like that is built on top of a few packages that don't
> >> exist any more to interface between Baardskeerder and Mirage.
> >> Do you think it's worth doing a simple B-Tree implementation myself,
> >> or would it be better to try and build a new interface module for
> >> Mirage and Baardskeerder?
> >> A B-Tree implementation would certainly be good for the project
> >> write-up, but let me know what you think.
> >> Rupert
> >> On Tue, Nov 10, 2015 at 8:58 PM Richard Mortier
> >> <richard.mortier@cl.cam.ac.uk> wrote:
> >>> On 10 November 2015 at 16:49, Rupert Horlick <rh572@cam.ac.uk>
> >>> wrote:
> >>>> I'm implementing this for a Part II project, so I've decided to
> >>> go ahead and
> >>>> implement my own simple FS for BLOCK, rather than using IRMIN.
> >>>> However, I'm coming across the difficulties that Dave mentioned,
> >>> Simple and in-memory is (surely!) still good to start with though!
> >>>> so I'm
> >>>> reading up on B-trees as we speak. I may well end up writing a
> >>> simple B-tree
> >>>> library, so I'll let know you if I do.
> >>> There may be most of such a thing already I think -- Chris
> >>> Greenhalgh
> >>> at Nottingham lashed something up a while ago based on
> >>> Baardskeerder,
> >>> see https://github.com/cgreenhalgh/ocaml-btree [1] (though based on
> >>> a much
> >>> much earlier version of Mirage :)
> >>> --
> >>> Richard Mortier
> >>> richard.mortier@cl.cam.ac.uk
> >> Links:
> >> ------
> >> [1] https://github.com/cgreenhalgh/ocaml-btree
> >> _______________________________________________
> >> MirageOS-devel mailing list
> >> MirageOS-devel@lists.xenproject.org
> >> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
> >
> > _______________________________________________
> > MirageOS-devel mailing list
> > MirageOS-devel@lists.xenproject.org
> > http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>
>
> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>



-- 
Dave Scott

--089e014935f480b8fd0529a18291
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Mon, Jan 18, 2016 at 8:13 PM, Thomas Gazagnaire <span dir=3D"ltr">&l=
t;<a href=3D"mailto:thomas@gazagnaire.org" target=3D"_blank">thomas@gazagna=
ire.org</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D=
"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Seems that =
Dave has been busy:<br>
<br>
<a href=3D"https://github.com/djs55/ocaml-btree" rel=3D"noreferrer" target=
=3D"_blank">https://github.com/djs55/ocaml-btree</a><br>
<br>
(sorry Dave if I spoiled your future announcement)<br></blockquote><div><br=
></div><div>That&#39;s ok -- I&#39;m still experimenting with interfaces an=
d disk layouts. It&#39;ll be a while before I have anything that works! Mos=
t of the interesting function bodies are still `failwith &quot;unimplemente=
d: ...&quot;` and I&#39;ve not thought enough about how the GC would work.<=
/div><div><br></div><div>Cheers,</div><div>Dave</div><div><br></div><div>=
=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;bo=
rder-left:1px #ccc solid;padding-left:1ex">
<span class=3D"HOEnZb"><font color=3D"#888888"><br>
Thomas<br>
</font></span><div class=3D"HOEnZb"><div class=3D"h5"><br>
<br>
&gt; On 11 Nov 2015, at 15:28, Nik Sultana &lt;<a href=3D"mailto:ns441@cam.=
ac.uk">ns441@cam.ac.uk</a>&gt; wrote:<br>
&gt;<br>
&gt; Coincidentally B-trees came up recently on Ocaml-list:<br>
&gt;=C2=A0 <a href=3D"https://sympa.inria.fr/sympa/arc/caml-list/2015-11/ms=
g00011.html" rel=3D"noreferrer" target=3D"_blank">https://sympa.inria.fr/sy=
mpa/arc/caml-list/2015-11/msg00011.html</a><br>
&gt;<br>
&gt;<br>
&gt; On 2015-11-11 09:58, Rupert Horlick wrote:<br>
&gt;&gt; Hmm, it seems like that is built on top of a few packages that don=
&#39;t<br>
&gt;&gt; exist any more to interface between Baardskeerder and Mirage.<br>
&gt;&gt; Do you think it&#39;s worth doing a simple B-Tree implementation m=
yself,<br>
&gt;&gt; or would it be better to try and build a new interface module for<=
br>
&gt;&gt; Mirage and Baardskeerder?<br>
&gt;&gt; A B-Tree implementation would certainly be good for the project<br=
>
&gt;&gt; write-up, but let me know what you think.<br>
&gt;&gt; Rupert<br>
&gt;&gt; On Tue, Nov 10, 2015 at 8:58 PM Richard Mortier<br>
&gt;&gt; &lt;<a href=3D"mailto:richard.mortier@cl.cam.ac.uk">richard.mortie=
r@cl.cam.ac.uk</a>&gt; wrote:<br>
&gt;&gt;&gt; On 10 November 2015 at 16:49, Rupert Horlick &lt;<a href=3D"ma=
ilto:rh572@cam.ac.uk">rh572@cam.ac.uk</a>&gt;<br>
&gt;&gt;&gt; wrote:<br>
&gt;&gt;&gt;&gt; I&#39;m implementing this for a Part II project, so I&#39;=
ve decided to<br>
&gt;&gt;&gt; go ahead and<br>
&gt;&gt;&gt;&gt; implement my own simple FS for BLOCK, rather than using IR=
MIN.<br>
&gt;&gt;&gt;&gt; However, I&#39;m coming across the difficulties that Dave =
mentioned,<br>
&gt;&gt;&gt; Simple and in-memory is (surely!) still good to start with tho=
ugh!<br>
&gt;&gt;&gt;&gt; so I&#39;m<br>
&gt;&gt;&gt;&gt; reading up on B-trees as we speak. I may well end up writi=
ng a<br>
&gt;&gt;&gt; simple B-tree<br>
&gt;&gt;&gt;&gt; library, so I&#39;ll let know you if I do.<br>
&gt;&gt;&gt; There may be most of such a thing already I think -- Chris<br>
&gt;&gt;&gt; Greenhalgh<br>
&gt;&gt;&gt; at Nottingham lashed something up a while ago based on<br>
&gt;&gt;&gt; Baardskeerder,<br>
&gt;&gt;&gt; see <a href=3D"https://github.com/cgreenhalgh/ocaml-btree" rel=
=3D"noreferrer" target=3D"_blank">https://github.com/cgreenhalgh/ocaml-btre=
e</a> [1] (though based on<br>
&gt;&gt;&gt; a much<br>
&gt;&gt;&gt; much earlier version of Mirage :)<br>
&gt;&gt;&gt; --<br>
&gt;&gt;&gt; Richard Mortier<br>
&gt;&gt;&gt; <a href=3D"mailto:richard.mortier@cl.cam.ac.uk">richard.mortie=
r@cl.cam.ac.uk</a><br>
&gt;&gt; Links:<br>
&gt;&gt; ------<br>
&gt;&gt; [1] <a href=3D"https://github.com/cgreenhalgh/ocaml-btree" rel=3D"=
noreferrer" target=3D"_blank">https://github.com/cgreenhalgh/ocaml-btree</a=
><br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; MirageOS-devel mailing list<br>
&gt;&gt; <a href=3D"mailto:MirageOS-devel@lists.xenproject.org">MirageOS-de=
vel@lists.xenproject.org</a><br>
&gt;&gt; <a href=3D"http://lists.xenproject.org/cgi-bin/mailman/listinfo/mi=
rageos-devel" rel=3D"noreferrer" target=3D"_blank">http://lists.xenproject.=
org/cgi-bin/mailman/listinfo/mirageos-devel</a><br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; MirageOS-devel mailing list<br>
&gt; <a href=3D"mailto:MirageOS-devel@lists.xenproject.org">MirageOS-devel@=
lists.xenproject.org</a><br>
&gt; <a href=3D"http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirage=
os-devel" rel=3D"noreferrer" target=3D"_blank">http://lists.xenproject.org/=
cgi-bin/mailman/listinfo/mirageos-devel</a><br>
<br>
<br>
_______________________________________________<br>
MirageOS-devel mailing list<br>
<a href=3D"mailto:MirageOS-devel@lists.xenproject.org">MirageOS-devel@lists=
.xenproject.org</a><br>
<a href=3D"http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-de=
vel" rel=3D"noreferrer" target=3D"_blank">http://lists.xenproject.org/cgi-b=
in/mailman/listinfo/mirageos-devel</a><br>
</div></div></blockquote></div><br><br clear=3D"all"><div><br></div>-- <br>=
<div class=3D"gmail_signature">Dave Scott</div>
</div></div>

--089e014935f480b8fd0529a18291--


--===============6462077409794705937==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============6462077409794705937==--


From mirageos-devel-bounces@lists.xenproject.org Mon Jan 18 23:05:06 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 18 Jan 2016 23:05:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aLIr6-0007li-Ob; Mon, 18 Jan 2016 23:05:00 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <olivier.nicole@ensta-paristech.fr>)
	id 1aLIcS-0006uH-Bk
	for mirageos-devel@lists.xenproject.org; Mon, 18 Jan 2016 22:49:52 +0000
Received: from [85.158.143.35] by server-3.bemta-4.messagelabs.com id
	21/43-31122-F0C6D965; Mon, 18 Jan 2016 22:49:51 +0000
X-Env-Sender: olivier.nicole@ensta-paristech.fr
X-Msg-Ref: server-9.tower-21.messagelabs.com!1453157390!10770431!1
X-Originating-IP: [147.250.10.4]
X-SpamReason: No, hits=-2.0 required=7.0 tests=ML_FP_R_142
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 47495 invoked from network); 18 Jan 2016 22:49:50 -0000
Received: from ns4.ensta.fr (HELO ns4.ensta.fr) (147.250.10.4)
	by server-9.tower-21.messagelabs.com with SMTP;
	18 Jan 2016 22:49:50 -0000
Received: from ns4.ensta.fr (localhost [127.0.0.1])
	by ns4.ensta.fr (Postfix) with ESMTP id EC538F741E;
	Mon, 18 Jan 2016 23:49:49 +0100 (CET)
X-Virus-Scanned: amavisd-new at ns4.ensta.fr
Received: from ns4.ensta.fr ([127.0.0.1])
	by ns4.ensta.fr (ns4.ensta.fr [127.0.0.1]) (amavisd-new, port 10024)
	with ESMTP id s_B9NDw2Ke6E; Mon, 18 Jan 2016 23:49:47 +0100 (CET)
Received: from zemail.ensta.fr (zemail.ensta.fr [147.250.1.16])
	by ns4.ensta.fr (Postfix) with ESMTP id 9FA30F741C;
	Mon, 18 Jan 2016 23:49:47 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
	by zemail.ensta.fr (Postfix) with ESMTP id 8E8D42981F9;
	Mon, 18 Jan 2016 23:49:47 +0100 (CET)
Received: from zemail.ensta.fr ([127.0.0.1])
	by localhost (zemail.ensta.fr [127.0.0.1]) (amavisd-new, port 10032)
	with ESMTP id gdXbFktGy45b; Mon, 18 Jan 2016 23:49:47 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
	by zemail.ensta.fr (Postfix) with ESMTP id 23C5229814D;
	Mon, 18 Jan 2016 23:49:47 +0100 (CET)
X-Virus-Scanned: amavisd-new at zemail.ensta.fr
Received: from zemail.ensta.fr ([127.0.0.1])
	by localhost (zemail.ensta.fr [127.0.0.1]) (amavisd-new, port 10026)
	with ESMTP id 4AHSRKQjESOm; Mon, 18 Jan 2016 23:49:47 +0100 (CET)
Received: from [147.250.85.254] (unknown [147.250.85.254])
	by zemail.ensta.fr (Postfix) with ESMTPSA id EFCA029814B;
	Mon, 18 Jan 2016 23:49:46 +0100 (CET)
From: Olivier Nicole <olivier.nicole@ensta-paristech.fr>
X-Enigmail-Draft-Status: N1110
To: mirageos-devel@lists.xenproject.org
Message-ID: <569D6C04.7080409@ensta.fr>
Date: Mon, 18 Jan 2016 23:49:40 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101
	Thunderbird/38.5.1
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="------------030909060806060301040801"
X-Mailman-Approved-At: Mon, 18 Jan 2016 23:04:59 +0000
Cc: Michel Mauny <michel.mauny@ensta-paristech.fr>
Subject: [MirageOS-devel] Macros for OCaml project: internship possibilities
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

This is a multi-part message in MIME format.
--------------030909060806060301040801
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Hello,

Looking for an internship this summer, I would be extremely interested
to work on the Macros for OCaml project under the supervision of Jeremy
Yallop.

I am a French undergraduate student (first year of M.Sc.) studying
Computer Science at ENSTA ParisTech (one of the top 20 French
engineering schools), with a very strong interest in functional programmi=
ng.

I especially appreciate programming in OCaml and Haskell (some of my
personal projects are available on GitHub:
https://github.com/OlivierNicole); I am passionnate about language
constructs and I am eager to learn. My supervisor Michel Mauny
(professor at ENSTA and major OCaml contributor) supports me about this
application. In addition, I am going to attend Dr. Mauny's course about
programming languages and compiler design, and he is ready to help me
acquire the necessary skills for the project.

If you are interested in my profile or need further information, please
contact me. I would be available between May and August for 3 or 4 months=
.

Thank you for your consideration.

Yours sincerely,

Olivier Nicole
+33 6 51 74 44 85

Computer Science student
1st year of M.Sc.
Paris-Saclay university
ENSTA ParisTech
828, bd des Mar=C3=A9chaux
F91120 PALAISEAU
--------------------------

--------------030909060806060301040801
Content-Type: application/pdf;
 name="resume_Olivier_Nicole.pdf"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename="resume_Olivier_Nicole.pdf"

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
FR7DMOJfn8cy799t/eRkrR9uWNKwNvOEe0W3PTbazFHh+wO41cnYCmVuZHN0cmVhbQplbmRv
YmoKNTUgMCBvYmoKPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCA1MjM+PgpzdHJlYW0K
eNpdlNuOmzAQhu95Cl9upVLAYDsrRUhZspFy0YOa3QcgMKRIwSBjpObtC/6ne7FREunDh/lm
8Dipzsez7b1IfrmxuZAXXW9bR/O4uIbElW69jTIp2r7xTOG/GeopSqrv9fSjHkgk8TK7eP5T
O4o9/R26uO1nH3ej9XM8TmT9Y6J4Wq73vonvw/p141DbLI0d3ZZ77b6Nvvuapmn8/nbKtGip
w+5v6zohmc/Hy2P2NJxtN4r9PhIi+b3KzN49xNOhHa/0ZXv207XkensTT+/VJTy5LNN0p2HV
EGlUlmG7DOk0Y0vzVDfkanujaL86pKXYn9ZPGZFtP42rHZZdu2ZNdpuevazT07TIykBVIA2S
OUiCDpiZg7BOMx0DyQp0wlgRKM+wToEkxpg0xjTIYIxpFyjnmc8g3pNdDIhdmF4xtgOxC6hI
4XkEsdkziM2YkHtxABUYY4K1fgHBukDuBaw1E3tyPPZkQq2LVxAqqEEKnsUJBE/NBM8c70jB
c10QCJ6GSSFb5K5gLZGfgqfkeKiuREYK1oojoIIKp0DDzDDBTOEUaJgZJkRQeGMaEQwTIuQ8
E3XJeU/UReG9a9TFMLELTohhFyaOjlNguBLI3aASCrkbVMIw8clCzQy/B/3/JGShJ2Sa5aGh
uHO21trukI8rpFmcWxs0XDSh9bcu7S193EXTOG2rwu8fjPYiDAplbmRzdHJlYW0KZW5kb2Jq
CjU2IDAgb2JqCjw8L0ZpbHRlci9GbGF0ZURlY29kZS9MZW5ndGggNDU2Pj4Kc3RyZWFtCnja
XZPditswEIXv/RS63EJVy44t7UIw7Dox5KI/NLsP4B85NcSSkBVo3r62zpDCmjjwaTyjM4eZ
tD4dTmYKLP3lbX/WgY2TGbxe7M33mnX6Mpkky9kw9YEo/vdz65K0/t66H+2sWcpvi+fLn9Zr
HvTfeeTDtAQ+WhMWbp024e40d7fuOvX8Oq8/b+fWZIJ39jp8s2H8KoTgH+9NJtmgR5R+X5NY
Tnw6nO9L0PPJjJbt9wlj6e9VyRL8nT29DrbTX7azn37QfjIX9vRRn+PJ+ebcVc+rBiaSqorl
MvTS20Evru21b81FJ/tVg6jYvlmfKtFm+BQvKK0b+7XT7fPsbf1ciCKrItWRJCjPEctBO8SI
XhHbgVBFEh0RK0ANYqBdhlgJwg2SSIEkiG5QILqBiGo+RypEpPwAopovIAl6Az2DahDVpDz0
XhxBB8RAJVTLBgQnSgEqIimiElqgrMTtObRI6FRwUKJmCc8kVCsi6Czh2dpKjBFBZwnPJHQq
IvhSwkFFNeGZIp1QpqBMQZmibuXDN3X8fwK3Grh1jPGs2fJzkb3EMaN52gZuW6vHVvU379ex
jbsXF2Kb3cnox3o667as+P4D7wLzVwplbmRzdHJlYW0KZW5kb2JqCjU3IDAgb2JqCjw8L0Zp
bHRlci9GbGF0ZURlY29kZS9MZW5ndGggMjk2Pj4Kc3RyZWFtCnjaXZHbasQgEIbv8xRebqE2
ZtlDCyFQki7kogea3QcwOqZCojIa6L59jVn2oqLCN87hnzGv26Y1OpD8C63oIBCljUTwdkYB
pIdBm6zYEqlFuFG6xcRdltfv3H3wCUhOZ4/U/3AEGuB3UlRqH6iyJnhqHZhwdUDd3I9a0HGK
G+3EjeDOF4wiDPPI8ckG9cgYo5fzqTgQCWqtcI6xZHvjtumuPsDUGmVJWWaE5N9RkA94JZtX
aXt4WGyfKAG1GcjmUnfJ0s3OjTBFKYRlVZXSFWtLwkrwjgtAbgbIyqiBVaQ8xVVlYOS/990a
1SsR+128d9vozdjhpUrUrPSW6FAn2u8THXeJjs8p7y3DUmEZ532aYkaMOtPM0wQWsdrA/Vuc
dUtUOn8vmo95CmVuZHN0cmVhbQplbmRvYmoKNTkgMCBvYmoKPDwvU3VidHlwZS9DSURGb250
VHlwZTBDL0ZpbHRlci9GbGF0ZURlY29kZS9MZW5ndGggMTI5OT4+CnN0cmVhbQp42mWUbUxT
VxjH76Uvd4MOsdeqtHrvdcO3AaU6nRESjRBxCKLTMpfJApVeaKH20ntbwbchA8T29AVqFaQW
xFIlSKbiC2Ay5ubED3xw0ziX6GKWuMzNJdMYd253+LBbTYzJzknOOXnOc37nPM//5MExuRzD
cTy9rKgwf3tBZsmmrdwuk33ZquytbI3LZuITm4XiPHE+UFEihYk0LuqSREYmLpCjDpXspko+
nYFG5ily/40r5mMY3jwjMZ6YCRWqd6WV4kNVRsIQUi3EiCQMx9TYHIzGMrDn2DSe9L/b1pm5
nWyRmbU7rc49y/UGw4oCrn4Pb62xOJnlBsMHWYlxNZOvZzaaquq4BqHOypjsZmajntmkZ0q5
BslqZZZwdmYnazHZqhmumjGynzIugeUFpobnXPXCUj1jtFgFpoHj6xhp5lkbaxJYM+Oym1me
cVpYZkPZNiNTyNmdTIm1irULLJOdzTACyzIWp7M+NyfH6arRc3xNTrXkI+TYXjkJOYlz2YWb
S43ZJUUF60u3rdc7G51MNcczZtZpstoE/euISzl+l8mGSS0TW47lYx9hJdgW7GOsEquXSWmS
WjKWnEiYHKvGfsSz8Dr8r6R1Sf2ymbIv4XCq+H5LBPbfvhtRD0/B9DvFU+AOGRJnwWRNwONv
bfV4vminch1bGyp1xWsm4RKatMCsu99NjtxoNPZTjRywcKdaumlyJDjo/+r2hm/XLFi2FM1C
6X8YnsG0IUgco1/d4OrZH4YFYfXpKdh6jXwgamBA86zsEVIuWLUIzUCz/8x8AeWjL04GWwBo
9bib2qkNLqN1u66yMjpaT9smwORVLbyiJJlAAPiOass8GtKIWpQwI/jz2Yu6W+PFSO6lU6Ef
xMSUmOM8nPmL+uGDkglyANbOjhFb3J3naFFJkN8j4qDCQVw/0raDRkME236omHIQvugVMKCL
XgLuUzQ59zPxqSbaeGK3sLfRJfTuPRk90dtPvUTHE2j1swnyPHRI1OL2wAgdVxDkDyglQZ0M
SdTpN6ijEjU2CtxROjVe9PI4Duf0ido+WVwTX6iJEW6nCfA63gR8TtpB3AflPD1dRaBH4rji
WKvH26hDpKNXeTFyyOOnp78meFCelwCfuiyBBy4nnhsj8sDVAVo8RwTbgDvYLBLTz+c2Bf2g
Q3cU+Htp8SYxAK7ep1Lj5n2ReF4EH78ncvdk8ZXwsQaa0GKoR7loDcpABlSBKuAilA3z4Fr4
HjTAcmpttwa1IRIlSV2J0qASNsODcN7vT1/AuVnoAJUqVrRExBVhXFJ1cEomFsBaDZyl/xvh
CNcvlr6B+nEmxCH++AlUU8VHNGb35vod1OdcZSOrK686M+Kk+bHD10e1l33fxMao4b6RsxO6
sQu8JUoPlYMimzYV/gNiEIVB7FBYPXQLTEDiFpkGfxVna87W9VnX1q6zNFMeiCvJQfTWawXe
1HUcxHSDE8B9WkoU+UlBExij4WriyaXffgoGPYeDFHC1OrRCb3NPV3/wjBTPnu7doiGGHxXN
MtEuLpEkKnErdtcCX4Okz4D7eJND+yVwtx2gpIwMoRR4TdHWDXwBbXQY9FCSnkKFpGe9Dfhc
kv+Fk8DWRcOF05hif6fXHdKFvL6eThqmw4eh/vDFG7701ERRTBN1qkVSacNWJsrcRvW+sJjf
Bbkjx8NKKllu5FRvA1VKLDmS0uP1eju8Pl+n/1xIpYpEuvy+zg6fLxDoUL3zHy/KT0UKZW5k
c3RyZWFtCmVuZG9iago2MSAwIG9iago8PC9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3RoIDIx
Pj4Kc3RyZWFtCnjaa2AAAgEFBoWOAwwNDA0AEx8DGQplbmRzdHJlYW0KZW5kb2JqCjYzIDAg
b2JqCjw8L1N1YnR5cGUvQ0lERm9udFR5cGUwQy9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3Ro
IDI1MDU+PgpzdHJlYW0KeNqdVnl0E8cZX9laIYzC4UUkdIhnyTNg4vggISUQwuUCMb4A2xxN
jC8JS/iQrcP3rVurw5J8S8IXMiCbI3ZqOwGMYqcOxKUhIRc8SNOQo2naXK8wC5s/urLbkvS1
fXndt29md+abmd9vvt8333AwLhfjcDhh6VsPJKTsikxM2isrzC5KLcguUq5ZF7VXnKcqyJYH
LJLoZfSjlCCMDsNoyKFBEE0G08u5YV8ey5EJgpgmQfAbAu4PW5ihZfj++/fwRzGM07YgUPoX
oSDBY+zXvGcE4YGGMcEKbE4QxsEexpZh4dhqjObwOIL/vPJWkSxHHC8SFymlyoono2Nj18bJ
iivk0jyJknwyNvapJwLlenJbNLkrOzdfVqbIl5LZRSJyVzSZFE0my8rYVikZISsic8SS7ILD
pOwwmSY+QKoUYrmCzJPLVMWK1dFkmkSqIMtk8nySreXiAnG2QiwiVUUisZxUSsTkzvTUNHKH
rEhJJkpzxUUKMRkVRZIKsZiUKJXFG2JilKq8aJk8L+Ywa6OIKZg1UsQExkXtSElOi0qMj9ue
nLo9WlmuJA/L5KRIrMyWFiiif0o7WSYvzC7A2GcZ9jgWicVgT2LPYtuwBCwJ24OlYVlYNpaD
SbHCYHb72GcRtiiwkVzsKIfkGIIWBGmCfdzF3C9xNf4lzzPn0Tnv8638v83diwbn05m06FNh
8yRewWvciyc3FKlrQU7zxVEH7EPhrVfspyVDSwfzc1qkYOPOpPh6eFh70mgH7X3O403wmK2y
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
W79iCZiVf/pCIUkzl9Dnv11zR6shoMTjCfSCjLSpaBK4dLbuvVaY5kmzXuQEKk7kp9hdu/j0
3iQ+nV3P/5Uf4ziA8qTRWimYSZbcoi2QapLc87I1apUCj8WFbqtQA60u4/K512qMrVwVIPA4
keQfrNNHQ/ZzMuV1gzKqED7AiE7P16nKQJmpqNgI0Vp0p/SA7XiHzt1x8gVaqx5wVn6X3TXv
geoBe/S/zmzXlqWo493zsrR5uZl4NNa6eSMrnVeszc8nM7eQzfXyzGTeM2YuvBB29wrC19Ob
ooKWrwast0rKVaXChvxSq75CVGNMqZACeUJGtAqScyy3OewcuH7u8uUmiDh+EX295byuAjh2
kbXHzSpAfKeQL0Yfi8vvFd6T3hZ9Ez2/IhCsWxjnsRHuXp68IH1eppfCs26RaO6hm/KzoP2e
5e9X4fGbVXfI1ppbKiZvrpCtFk2KWhMdAII32b7Jg9qrFY+L3i25UdJR2S5Cg1o/KbKBxuvJ
4wxQ55uxSOEjevnxfXcielv+//MZPuuMXkPHxXgYeguvwG+VpCNPRKHBmKJfesrXmYjWy115
0MF2/98/62Pd3uc9xFWGtKpkkJapUKogfhNPLk9GXsilpKCoRF/q7uL4aG8oD5zffJ2iqJmO
T+nErjIrv7QSxZSYrMzIgf02xToP4JwH2Qd2D7LodHqdXq8r0huuOTvb9tcYTIUGg8Foynce
/J9U8RuMCmVuZHN0cmVhbQplbmRvYmoKNjkgMCBvYmoKPDwvRmlsdGVyL0ZsYXRlRGVjb2Rl
L0xlbmd0aCAzMT4+CnN0cmVhbQp42mtgYJBIMC0++HBfxYU3f5ocGBgaGJCAAAC8mAiDCmVu
ZHN0cmVhbQplbmRvYmoKNzEgMCBvYmoKPDwvU3VidHlwZS9DSURGb250VHlwZTBDL0ZpbHRl
ci9GbGF0ZURlY29kZS9MZW5ndGggMjA2OD4+CnN0cmVhbQp42o1WDVQTVxaekMyIGqsyxtPu
U9/4U2WPJSJaFast6ArKAqJipcVVsAkQExjILwjhJyJEJgaCJBjCT0B+GpSudvH/X0sJ3bam
LVJPV8/a1braHteenl3fuMOeszOKVna35+w7c97Mue+++9373fvuPBEmkWAikWj62viYpA3r
58cnJNA59CZNeo5+YXjYRmWmQZOuFRTWs9PY6Yx0BjsDY6GIBUEsJWZnSmxS0Yz77TtoaRD3
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
ahcxY5wkmZaOZaTj/eMC4496HDZh1LRUO6TSK/tctvpam/OSo9MpncC2Tnkk+zfOoG/sCmVu
ZHN0cmVhbQplbmRvYmoKNzMgMCBvYmoKPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCAy
Mz4+CnN0cmVhbQp42mtgYGAQEFAQVJhxoKHJpQEAF0UEEAplbmRzdHJlYW0KZW5kb2JqCjc1
IDAgb2JqCjw8L1N1YnR5cGUvQ0lERm9udFR5cGUwQy9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVu
Z3RoIDMxOTA+PgpzdHJlYW0KeNqtV3tYE1cWnxiSQaG0yxhrM3QmVlsryNNXa1utUqEqUqtQ
H1UhSHhoSCAPYhQk4RESLoHwfiWBgMAEFAv4wIot1L5Ea23tln52td3ttqUtbd3W9g5evu1O
oLX9dtv9Z3eSb5Lvzrn3nvM75/c7d3iYlxfG4/Hu2xSzefOWqKCYTVuUGVJFeETwFlmqVi5V
eR5GsQHs/cCXYimMpXksOYOV8Nl5XijSl3/a12tyJToaIFDdRoL7MYxnvNtzf+lPcKbvA9w/
P4fvAs/AKd8HMXwGxsP8sXsxGluAfY9N8mb8x25rkpVJsvXJMoUmXaOPCAkLWxqpzNSr0lPT
NJKIsLAliz33RyVrQyQbpHv3K3Xq/ekSqSJZsiFEsilEEqvUcaPpkoeVCkmSLE0qT5EoUyRx
su0SrVqmUktSVUptpnpRiCQuLV0t0SlV+yXcr0oml0nVsmSJVpEsU0k0aTJJdPzWOEmUUqGR
xKTvlSnUMklwsESilskkaRpN5srQUI02NUSpSg1N4WzUofJpI3WoZ15w1DOxccEx6yPXxW5d
F6I5oJGkKFWSZJlGmi5Xh9yJOFapypDKMe4KwOZjgVgQFoqFYxHYY9ha7CksCovGnsY2Ypuw
zdiz2FYsDkvEkrB0LAPLxLIwDZ8DkrtIjPRA6oWV8mby9Lx3Z8TOGOIv9JrjleX1kcAoeFt4
t/AtfDPuwn/yVnjfnqmYNXdWyqxXfcJ9vvZtRz/5mZjD2bDMeeT6hzr/Y+/CpEujLqKZVfxd
dF67Fd+iLsiVgaFGCkbiw6A/oY/qTtvTkEA+GhO/QeHMbW2z29tOpIIc+mTrWUc/eeZ1WTi9
F0e7zatXrBITTz7+uerNtwb6zzoponNXeVfqKbLltYYPabTiZdGitfsSdyYdPwvnwlV1x62U
38PGZja0Gab3+3eOgpGYUWgbJdJYG5SLIBH8NeLH7VJJ0yn4Hk70IdogUOBvVxXupCe/dOHH
LwlSWk/JLpIQvzkORfTqUtHTRqk6lZLr9sp3kPFpPR0H6cMtoNwuhkk4EeUA1tom6njbaWaQ
dN/KQ3G038VsZiKU4Q2Psep2/oQE5ohqQYXBWGIqpNCSfOS9LpBch7aehAPwJNx8+uqtzyNQ
YDOdZwXmOrIBlDXT0Ig7gM1YVGIxFlE7Hxec3xPdE0mijSiC+ySivXApCoPr4SNjcD6cQfuh
ZKMLMteHXbyeUbjnBp8NhD6i6kJgzi8x55mpp7TxGfFk7MohuBiu/PjEud5XcpJb6bwUkKS2
H2xrdTYwl9edXYlmhsxH/mj2V4ugAM51Q99q2oOiro8NmMIRDnFAgtHZfsRhtm4Og0cXVA7S
7A/4b+BDWTiTndgTSyLvhYvQbER8uQjOGD19ztlAR+GQ8NIDc66WInrS1EmKHWQWwmrgc1fr
+l1H6a7m/q5z5IWePYdq6LqDwKIX+7UCBo4w8AWGBwP+Ane64GKXzcWf8IfVIq0QhanVT6En
SBQgTLBUHqVh62f4V7XyZbQLNmmFywzyICoMmoVHrZWnKXifEC7s2oEWNNIuYRZUCyZPKJqF
V8uMKfRkO55iNkZSOgU7LJyGcbcTOOE2nb97FBZcIN5kgzgoK0zlRQUWk8lCrch6WiMlpQ91
wjW0E7pxYtBlBc6b8V+gu5BwyQJ0D5r7j0DIhz4DEGuhN8G5IpQvhOFVnzg6yR8r0Lz0Ui5b
0hYY/8pfW6C1xb9jMOcKjLwCBo2DqYPE7CdZJRsocuR2pm1L3p+TS7VmpNXLyPCno1dt6Ump
yaeJLw15OXpFsvjZHlWVidp9eHfqNnHUF1vg3dDnm6H3jxS+/kwX1b59B1hGxhYCp5421uQ7
W8T2CntNAyV/sR/Ukp9efvuDjoLe/d10f9+LwEaW24ClnCaWPWksNhkN4tyavKYqh81FoVVo
hkgPkg5mUooDGcZscgm42eoAJ+wdNON017SQxIjhE/CQhobY5CzR5tW7QoPWDr5aZe3rbaca
XNXgHfIGFICltN8kDhjWm1H0Q3zc/5Px1SPEEVjE1c+GYlsfzXrhxKsowFNBF6uLuAo6gu8x
gA2UArd2ngUMWfsasByjiblb2Zsit9qpVmZrM7Nc2na3s62N8kPjaGP2sX62c2rt9BtJI8fH
N44QMpiwXcQacLTQs+771R5iL8DjDGuepcA+oGmgCO92W5XTLia8Wg861BRxQXVQr35+OOvl
q69f+Iwm/Esn5v/ebv5cRe5l4P0MVHPh+H8/QoyzZi6STDk4oaSRGG4rrBGUjQxXVVFX3jhd
2lLqzeAWXRbIILO2A6uGVuD2krr8Q2Jdth5QiCObgM3Gifd+qz8tvw3fTbrPAksnzeAb88AA
/QN+8fxXiBI0ZlcacsX6XFO2x+7IIOggT1mB5RTtJwfMhGCKL3z28hRPFhoPIwJFkkunacIe
w49b6/5GuRmhRbEEpJEZEcCqphXN+DQdOu/QAQinEsctx0UKeSPEC7B0zs+OTGA4ceUPvB70
eH3O47UfXMPhdZQZmVoBuwT3er6cfNyYOMattEMF3CU0jMHHQKemm+pT7KpIJx+RPpN8iP4g
N94VQwbKHtEV0CXfCYlvpgtkWmLa7uzVPgw6SWYYWNp/QQjG4reunL9woWF7LIXy/idDv4f/
3XniPdbxR37/6uv4/89XP+iT3TrxuMvTR1LH+BPb4OciuBcthhFoLYpCi9BSJEUJMAiFw0gY
DR+GS+BuKqRRhOpRQGjgg2juV7AaWiB944tvILkMmSg/o4uN0vE4ZXOP8tkEuE8ERYu+Q97I
d/E8j/J/GwSFcNb419CfWl0tSgObsnZRzyt3H5CRKXuaBhV05kDJ6yfFveDNrgHqVOfpph6y
76Q+uYPu2g1iUqYF+2QbvMQV4P3XzozBFWN8FrIm0XjgJ4ik0Kd3RPdOlQmtbdc5kruvA0sb
zejwSHPNCzQ0wSdwOPPHazfpkDlSgIRoBYVoeGRazL8QwuUACRK5BKHnGBjazJKMweX//SXY
NErc82uD5y3ZFVNspi7jXEamKvWdisIEenLff8vIWlzlOJH8a+Ofg3yil66SK+qdOkrTmtPc
6Wn4TlDKtXti9oB70NlLvv9GGPLiJL2Ri/1yv2NaFoqvdV8jZsMfWELkzuxMXK4IPVBElUC+
kGCQ+Peqo/MVjjUd7wJLK+cLUagTEhvWWmqP0zAcH+//7IMqKygppwqKDxVlihWthqbm5voO
To5qarNhhAM2OnhHB6B+gA9vQUI0vK87v5pK7cqsWF/nnVGxtuENcVfLmU8hryJEbqUKSitB
GVkLbA76+6kTRsEBbX4hdUQur9hPortS18cZQFpvGt2tPFZ4Jv8VQ735iM7bkVOvVYoTVc8v
Wf9877daqthRYgXicksxMJMGYNLTKADXA1ONrbS0xU7ZKoG1scl7V+8wsJO3Xn7tmgcdrvDE
DIzR+X93SeuCAS7iFrwG7xG9qo3DIxXS5GgwZqfgUTiPQfM4ZhFpWmFJcGpQmNlbx+njx6hL
iPh/1gyNHL1w1XOy62O9+3nTpORPcXLqKAJZHM37Fd1ofPmep5581PTiEAU/+vnJKDBH0CgQ
3wRS3fuorLYTeS+R9m7AHKOZ1qZeIA7HOZGvzWbDGJ6D1fBZE/uQiJNwRS6Qk49auQVOWmwZ
BnE+dxTIox5EtcgL9ghMDSXAJm7vBQ6Ks1VtA5lkkMf2fE2xvI6G89FtQa7NaqojKyus9koa
zoEfVrvspy6W3ucHfwLZ7DfMaYZnv53Av5058YBnu0QLSCCz4qeEGX+zxLFfJzaZCyzc2XHx
pAItZ4GgpMxSVSZ2D4E2z5bqNUBBKmKBNYuzH2ow62vpysOV8vpUNH9yy1y0lDVxPgIrN+El
0O6ZoFkNlHcmDDuBjHNz5+Q/BTm28uJqsspW1mij4Uq2CT422cQN2sxVZHV5uWdwM/tR01mm
+Rzn+1Q3XM7AYAYw/jVsIVHPlnGpeE5v7VbT6F64huk9Oexsue/MiRcru8npsJLJcA8y9Zam
Io34YL6hqIDauPKJ7wTm8qLqSnGFzeEuncJw+y8YEmMvOS2ZLTSciYIFVkt5kVlsfmKR8TCV
EJ9gSCzx5rjTawWnyE8tAgZXlxU3NoibKqtq6qmrY9clArsWWIrEBQWHMkumGD/IMd7P8+55
D0v6PsS9QWKPed4me/2zW9jIRqisqWoRUrO84pS+M4GvDzPrko+z1MpVdUV5qbW/0dfX1dFg
rbCVWa3lFeW+d7GHZ0/cK/oXla/ODAplbmRzdHJlYW0KZW5kb2JqCjc3IDAgb2JqCjw8L0Zp
bHRlci9GbGF0ZURlY29kZS9MZW5ndGggMjM+PgpzdHJlYW0KeNprYGDgEDBMENCecoNhgcsJ
ABp2BH0KZW5kc3RyZWFtCmVuZG9iago3OSAwIG9iago8PC9TdWJ0eXBlL0NJREZvbnRUeXBl
MEMvRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCA2MTY5Pj4Kc3RyZWFtCnjajVkJeBPlup6Q
JlO2Ah2CMoMzQVHZ91VEoCCb7FBkKXRN13RLmy5A23RJm+RP0o3ua9p0YVraUlrZN1kFq8BB
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
dGnpniozSxWLDhIGWZyX2RIlHr9qNq05wj3ECq81yOi1fvi6bWuNcSJLtNTx5jrmewetohZo
rRnFpbStsfniP9h/vi7L1xXv0tNpabujTCxl6NV/9e0m417uD6nw5R1pd9zzLopiMOlISUdZ
QrxOn5yl5/AcXI2Xw1FZhuhcDl1tzz7k7CEPFMDgYeLZCvLjfF10GQeB+HsZfpf8240bS75l
KGjnwJMET/hIdrHtfHYTI6ZQVOEVXyKb4M27V35JHfprf/Gmsp0aOtVkzExhX8MmcQfbZFkF
xuxsuq4NVf6v/jpaiYLFbh7bI9GslW3URi55h6FuiNq9IoHjs/NtZXRdQllsvDY5fEdn0PFL
HWfP1rKwWJgvu1R3wlzGOLDT1v2iTdJ+G/JF6u8D1xWfZX4W/An7w/Y5Zb7MGo/oiX5c2JLM
eXPpBdlTOuazb7x3Pf4Yc/qf1d8f5Jqu5Ny8Rc8uUixAS3XvsON3rw/fwQSstf+QyOkuoPvn
6cuoK/80C/0rP91jZ5q7EkdXcgUb0PyV9O/KCai7rQ4KAa92oS7qfed9+l7RLCWxe5psl8lo
QrTJaERJDO4HMjnV8/DOgQ/2tqbGVrF+Rn3kLjq0LrmypqZs7/mNnQsn4v6bsYTF8v95K1hq
BekfHPwGTCUP5yX7cbjmfwhxwQD5NgkSshzUIl9h68nSkm6O/50OFpgBr71EEMQMx39Do921
NmFROUQU5trkbD+XjZED+qIB/fl+V/rbzBazxWLOs1isFwcMsHdYcy25Vqs1Jzd7wMD/BriF
70UKZW5kc3RyZWFtCmVuZG9iago4MSAwIG9iago8PC9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVu
Z3RoIDI4Pj4Kc3RyZWFtCnjaa2BgkBAwTf78e8+/hw/+rnNhwAQcAOQgCKEKZW5kc3RyZWFt
CmVuZG9iago4MyAwIG9iago8PC9TdWJ0eXBlL0NJREZvbnRUeXBlMEMvRmlsdGVyL0ZsYXRl
RGVjb2RlL0xlbmd0aCA0MzYyPj4Kc3RyZWFtCnjatVh5VFPXuj8hnBxUCMghaHPsOdGqKMrg
dL21g4riVKRVUVGCggYBUeZZBRQDSXYIM4IyC4gTqCBXT7F1ttZqW/VZba2tQ2tb9ZZnr/c7
uLnrvR1AW1fvuu+vl7Wyk3X2zv7m3/f7IqNsbSmZTOa6wM9/fqDPOL+Fi2M2hkZP8Pbwidmg
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
C3LpW1dxNoPfhiASD1e6oryw6A5hHF6GkVYJFTuM23cIuXpkzM2d6jF0LDB0G1HAwYBtyPZV
hlAhPzwEu9Gp6eEoiNMyDy1PCQwzaakFhQiROhUegwxssCutI6O9vbVL/Ya1rdI5IhwYQisZ
uXSzzzkJG03xnLdVKBJRpjonk0xgJsxCPX2KSHQyYAXZu8TA+z3DE4PooKSoubO5LUazJVso
ya+vaFEfSNgdGROdqgsU11y4ee7i2SYeoqRguqLIUnSpv+8+Ff8L2OpWmZVzrQNKbp2v5kjj
GDxbb8qlsdsTxXefH37YXJuTUc+n62PT16p1zXGth5ob2j9efYlAsBMeqcMDeLeXE4SjBRx7
u85TmMfsLkQRAv78BUXqlwjhrbGtzv0S2YZekYRXmbYF5OZy200oTy+wt0ui4lAqR/ju62sw
I/zb+9e9eEIvlRaq8IYnit8eV31a15SDeFaHkNFo5Ldm6rdsUmfmJ+/K4AtykXGT+g8T2M1k
WJ7i/GIMYx/+v85h7NAyiVPti9kXlZiZkZHJY1s8dO86GHeb3lVSV7ZfTeimJEuGZeAtuw0z
5FAoXVZ9se7MouANESFrm8I+qqsp3rmL12Nb34CkdLtcQ65hu3pr2dbiCpB9Dxpeaf1r0Uni
7Ee/TlHUX6z/FeY5Z5VJH5TAqtrSMgU/0DYgxn4Ash8kDgTFoAMWi9mcl28uKjp4wd5eLDxa
XlhmKc7PK7PYO/wvBtDCgAplbmRzdHJlYW0KZW5kb2JqCjg1IDAgb2JqCjw8L0ZpbHRlci9G
bGF0ZURlY29kZS9MZW5ndGggMzI+PgpzdHJlYW0KeNprYGCQMDBONFw0J47hwVktNgZUIMCA
FzABABNfBRkKZW5kc3RyZWFtCmVuZG9iago4NyAwIG9iago8PC9TdWJ0eXBlL0NJREZvbnRU
eXBlMEMvRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCA5MzA+PgpzdHJlYW0KeNptk11s21QU
x68Xu3dr3e7D6jY1q307oBqwfFAYiIkHsnRdO9puarMKJEDLFjcJdePIdtQWMa1aS5TEiZuu
ataQqh+Lp7UZAolCR4VA0yQeeNnD+tIHkIa0Zyr2cp05D9ggISFxHs69Ovqfc3V+V38CkCQg
CKJ1cOiDcxe6X+3tGxBHgzF/MC6/5nUN8OGEEJRsQZdxzGhVadZggcERhnOPgRxGG2m2044N
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
dGFydHhyZWYKMzg1NTMKJSVFT0YK
--------------030909060806060301040801
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--------------030909060806060301040801--



From mirageos-devel-bounces@lists.xenproject.org Mon Jan 18 23:05:06 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 18 Jan 2016 23:05:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aLIr6-0007li-Ob; Mon, 18 Jan 2016 23:05:00 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <olivier.nicole@ensta-paristech.fr>)
	id 1aLIcS-0006uH-Bk
	for mirageos-devel@lists.xenproject.org; Mon, 18 Jan 2016 22:49:52 +0000
Received: from [85.158.143.35] by server-3.bemta-4.messagelabs.com id
	21/43-31122-F0C6D965; Mon, 18 Jan 2016 22:49:51 +0000
X-Env-Sender: olivier.nicole@ensta-paristech.fr
X-Msg-Ref: server-9.tower-21.messagelabs.com!1453157390!10770431!1
X-Originating-IP: [147.250.10.4]
X-SpamReason: No, hits=-2.0 required=7.0 tests=ML_FP_R_142
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 47495 invoked from network); 18 Jan 2016 22:49:50 -0000
Received: from ns4.ensta.fr (HELO ns4.ensta.fr) (147.250.10.4)
	by server-9.tower-21.messagelabs.com with SMTP;
	18 Jan 2016 22:49:50 -0000
Received: from ns4.ensta.fr (localhost [127.0.0.1])
	by ns4.ensta.fr (Postfix) with ESMTP id EC538F741E;
	Mon, 18 Jan 2016 23:49:49 +0100 (CET)
X-Virus-Scanned: amavisd-new at ns4.ensta.fr
Received: from ns4.ensta.fr ([127.0.0.1])
	by ns4.ensta.fr (ns4.ensta.fr [127.0.0.1]) (amavisd-new, port 10024)
	with ESMTP id s_B9NDw2Ke6E; Mon, 18 Jan 2016 23:49:47 +0100 (CET)
Received: from zemail.ensta.fr (zemail.ensta.fr [147.250.1.16])
	by ns4.ensta.fr (Postfix) with ESMTP id 9FA30F741C;
	Mon, 18 Jan 2016 23:49:47 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
	by zemail.ensta.fr (Postfix) with ESMTP id 8E8D42981F9;
	Mon, 18 Jan 2016 23:49:47 +0100 (CET)
Received: from zemail.ensta.fr ([127.0.0.1])
	by localhost (zemail.ensta.fr [127.0.0.1]) (amavisd-new, port 10032)
	with ESMTP id gdXbFktGy45b; Mon, 18 Jan 2016 23:49:47 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
	by zemail.ensta.fr (Postfix) with ESMTP id 23C5229814D;
	Mon, 18 Jan 2016 23:49:47 +0100 (CET)
X-Virus-Scanned: amavisd-new at zemail.ensta.fr
Received: from zemail.ensta.fr ([127.0.0.1])
	by localhost (zemail.ensta.fr [127.0.0.1]) (amavisd-new, port 10026)
	with ESMTP id 4AHSRKQjESOm; Mon, 18 Jan 2016 23:49:47 +0100 (CET)
Received: from [147.250.85.254] (unknown [147.250.85.254])
	by zemail.ensta.fr (Postfix) with ESMTPSA id EFCA029814B;
	Mon, 18 Jan 2016 23:49:46 +0100 (CET)
From: Olivier Nicole <olivier.nicole@ensta-paristech.fr>
X-Enigmail-Draft-Status: N1110
To: mirageos-devel@lists.xenproject.org
Message-ID: <569D6C04.7080409@ensta.fr>
Date: Mon, 18 Jan 2016 23:49:40 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101
	Thunderbird/38.5.1
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="------------030909060806060301040801"
X-Mailman-Approved-At: Mon, 18 Jan 2016 23:04:59 +0000
Cc: Michel Mauny <michel.mauny@ensta-paristech.fr>
Subject: [MirageOS-devel] Macros for OCaml project: internship possibilities
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

This is a multi-part message in MIME format.
--------------030909060806060301040801
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Hello,

Looking for an internship this summer, I would be extremely interested
to work on the Macros for OCaml project under the supervision of Jeremy
Yallop.

I am a French undergraduate student (first year of M.Sc.) studying
Computer Science at ENSTA ParisTech (one of the top 20 French
engineering schools), with a very strong interest in functional programmi=
ng.

I especially appreciate programming in OCaml and Haskell (some of my
personal projects are available on GitHub:
https://github.com/OlivierNicole); I am passionnate about language
constructs and I am eager to learn. My supervisor Michel Mauny
(professor at ENSTA and major OCaml contributor) supports me about this
application. In addition, I am going to attend Dr. Mauny's course about
programming languages and compiler design, and he is ready to help me
acquire the necessary skills for the project.

If you are interested in my profile or need further information, please
contact me. I would be available between May and August for 3 or 4 months=
.

Thank you for your consideration.

Yours sincerely,

Olivier Nicole
+33 6 51 74 44 85

Computer Science student
1st year of M.Sc.
Paris-Saclay university
ENSTA ParisTech
828, bd des Mar=C3=A9chaux
F91120 PALAISEAU
--------------------------

--------------030909060806060301040801
Content-Type: application/pdf;
 name="resume_Olivier_Nicole.pdf"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename="resume_Olivier_Nicole.pdf"

JVBERi0xLjUKJeTw7fgKMjUgMCBvYmoKPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCAy
MDYxPj4Kc3RyZWFtCnjatVm5khtHDM39FRNKAVt9H1UsBqqy7HImezOXAx47SqxATvz7bgCN
bszskFxK3lJRy2n2AaDxHo6Zvk1m0vWfmZKdUiwql+n8FYf09Psv7cs/X6aPT9OHT2ZyTuXk
pqd58kFlN+1SUT5MT5c/91oHrbXP9WO1Tpr+uvqJ+rBz2tQZ/kyj9lRnG5rt7OGvp9+mn58m
DVuN/+D45QjLYSeTlDVByGF0VNE3QeyxbQ/H+CrApX7KWphoSBAW01/ouQpUZ9g6w5zb6Iwi
6npMVK4dwktc2wK/d43F2KkfaEmMiFvyDgcb4LfSrfDC9q+2i5uKKhGvx8asUph20SkTm8Tm
1O6nfmZW1Ln9kCb2kZgP2TYt7elgM3yfSSPQLJxIj7EKDXY6GKP3cP2HEKUFT3wkTgdVXVI6
V4uaKjLfW/212geNhOY7DSMlMlI7KFYV7IWFhVPgnvGTDzvvPcyB24fVz3jezgbwEDyQPdY/
0xT4wPTUDwiO9EebpfbXkNM4g5qiTeKZBUFrRVoF9y9Vbz7+4ZMXN1S/WaH/u1/f0xxxi/Cj
rU7Q8AW+c4RPv6XA31wGLfp4NYQr/beyeHIw+6U89SgjrPPu4/vmkGvXci4qjYbUqmS25GUL
2fXZDKSw/+N1we8J4SiPCcI+qd2XtaowshlsiOa5QcnRdv1ocM14i47uEtEGBK1lwCVCoByo
M75NXvmYpn87I2Wvgpm+TkZnFUof+Hv6Y/r8XUegheJkvHI+knskFSLsXJSOgoWtO+ws4M97
hvBAVcUm/nZLXzwqTXDDugiatTopZwXNIrVq+jBUEReFjJpi9buoN9gvxRVHRvMa6o53qRtn
0M78dB2XDb0R6MUbno9zukygR6i/oWIo3AvRQUFwZ/h1iGnOXeBj/1ZosyYYmEn36OJUYE/3
7JnCoG4GIdJQr7Gi8OsGM6RqIDa/WlGfxm5kMBpJjcxBWTvzKEjgEj8hYC/DfOxRJGczW+5r
PcmEe5yE8U/tIyy4JSPZUgQnLaWnC8kteCEndDyTXcDP876vFTZm+gdpYAX+5YB8YmbosUZz
3KK/MBvlOtE5YMeQRxLzMFPYEJRJginawBswhQ1FJcYvxDHLJNrMsLzSBwgiaqCgnU1ZldQO
AIv5NTzJphhsKfC6sggBWWzaxV7syh44D7+X/sUqsTro46VcT8CcabmFLXnP6yBp081IEC2A
cmpSVAKlOW1uTRMcEwYnfXhKnRlH+kTJwcxyhDDOB5Tw6niTDVha26SNMQiExhhfQZ806zp9
1lWxpQbycg3dLici9nLgVEXMqVNEruIIfGvDANvW7OQ1udLCu4Iq8vi2B1zMS6/tRERpnwuQ
piyA74533IVyX/P6DJ9WkGEFLQBJpf3IMUB0W6y80TYdQ3baS6pzyxKkndFTFi1CzgtI8OxB
4G5J+xt0eO3O4CTQjOkSFKmhDedifCeXPI8sEKh36DKIoLotr0J5Bm2+4JNgla3ZHySbtSZt
yBesEZmfDUZZSnsfY5XF3hyt1phkt+BoBAoHH/fSFA3zdlHfrBBU69NyG0BZDYRByQEJ0qib
alWTwp7dFZ5iu7K0lzGJfCxgFUa7HIYHXuSvDwHQeK+0W0AwmMabFG3tYeRHmiuuooJbMhnI
w1GZpK47IVd+D6/Tyq1siDMhdkc6E1YEAaKevtqN/epTakjtZ4osQRIPZkN9/UbfQMLMYyxo
QBhS0h43QZGjSpXKXDbKxm1Q3HV6udbagWrOALpLN9PMJxESXcSrlkUYj8o0rBfwm4nilQDj
wm18ROXMAMiZzTyunZ2DSLY86uLJKZMXHk4ZwFrdwd+4Jfu6Kyr75U1D9dUrAiTJXpYgXz3i
WaPTweGARtib0l1v+o7M1FenqUF9ZKZt4A0yU2+NCtxNSObQoxdGIogy2CcDEyXfChsZYjZK
wYeS13ppu3pfKnN27F2jJKpiKfZeNhPYfBd1i505+0DtLJVe3Jcj/Ta8s8bDcCcDg57oAMjx
Zf0o4YwH6gF3+A7ZIzzHy4hmqHK2D8cL61QOSzThaogTaXm1PR6gV6cFTpLjOhq/JVlRzKLW
Ixl2JjsV7SrZS4Pk1pG8tS3PS4yt8dlJRtS4tPKWNgP1i87Axhl8T0mkaD+G2xQBrgK3NPAW
uK3xxASRtrBruNMwmOPij3rdVrRQmt/HR+BambqKt6tVlHJFFLM9Wc8jFLn5LjgX+6Tn0dgW
1da1iJyMirCFiSpygRpacGcYMSU3V7oljlltVf3LLYlw1XlCTOHoBdGA1WiyogE7d/Pf0CGk
erCzozMOVMBNJH+RDZD75lzsU8salAkLJ1FI9U31D/h5CAGSguHnbeAN/DzUXDbH175g+n/8
nLVMRRnTi7RXd9Wu3XdXSe7rnkclI1mMBcekKgRuMB/Fqf3X1EyDT46f4LVFKDwCvQ/qpRBd
jLmwL/Urxds17DHPPA1LnmOj8SiPhWgNNWlavXwSYruWIDHBNsK4kW7HWh8CMEpNPXMHNy3t
9TpCc5ms3TW83BCJq71NWjQBALlcC1FkdM2pOM/rtQ7niMk92HdtKwxHW37lxX3XeBnzsWuN
81FMLvZ66TmPDo+jboMWpuod3XKtEzvyWm4n9NeJsQ/37od4n4QF3JWW9K1iSqtYi6loa94k
3p3IZHz1dqps3KVcvmiBbCVxtsgSY/sqZVKCNZUkTSu1Pux663FZX10tFqLoXi17NL1A4ZTn
Skm9fnsi0pQJqOzLBq99/uk/cmf8lQplbmRzdHJlYW0KZW5kb2JqCjI4IDAgb2JqCjw8L0Zp
bHRlci9GbGF0ZURlY29kZS9MZW5ndGggNjg0Pj4Kc3RyZWFtCnjatVbJjhMxEL3zFf6BGLvK
W0tRH5AAidtAbohDejI9F+YwXPh9yrXE3VKYESAU9WK71levquOeXXSBftFVcLVMvk3u/om3
gvv8UV9+PNKtLx5vnXgAuqVMt8onuw2SeHbJp1LdT5eyb+gOJXpwTy6G5vOky+/ui7v7K/Pv
Tu7th+Ji8piKO60uxupzIbvZ1+xOl6/HEDLOUOkZ70Moga4phAQhwCLPnPRM93Ok52U+IOSj
7Miq0KqAyJUL6a8hoJzK2WQ63bJa0RORvGrD/O30yb0/3UiaU6oEkJ/C1FMqwUd3aJZNOvdo
JaNa5obdX48PoXsiz5U8ZPKEzbywzbaxaTBdrWKUnDo+PXJAshiPsqDEuqF9WFTPiBSyYtyu
IpOfCnaJg4gcIvp8rcU67HMKap/Cxx1wG7CCwr3cKBFr9eIlLojt9JJaKrjIO0steoFo4DI8
C6S4qmSTC6+S8p73oG4RyYRpTzcS08GqhRI8m4B/qNTOKp57apsK9eg02rgWJtgBhRoPg9xE
G90tcdDfMgTO0CTwPBBDuFH/mJuP+WUCdJkc9wwoTTjb3dYkxU+YrT8v2i3KEy4+yFp6tUuX
40jKKMIdjcPCliZDw2giO6CwsS3tz65XFY5bU0E0GfRqq5rnBkbmy2ZCGMs7ripqoerwYBXB
1yPXmdBTqHo6FhqTZzXy7PlvgKGGX4KdJGWtVF+8Dja8yObShHc5+ZKsyGG04a6L2Udgend7
sfVBvS/7H9J96/bKYS2REaWXjmcHg19oNy5z5IDKattwfq2pjfKZ0qswhgNf20HRcDPLrTly
udEcAMlPrzSHyuxR0hxitByk3P9pnJl9/cbJNyXM0IxibRB22Ifj6EkmEfUkq4hBBikoY5fN
fFI49w215eDv/2jcvfkFtVLe5gplbmRzdHJlYW0KZW5kb2JqCjQ4IDAgb2JqCjw8L1N1YnR5
cGUvVHlwZTFDL0ZpbHRlci9GbGF0ZURlY29kZS9MZW5ndGggMTI0OT4+CnN0cmVhbQp42mWS
b2wTZRzHr6O3VYHJOA56BLpHWELEyVZYWCASmZIFZVMMuAzI1K67dcfWP7t2g6IdpWvX9p67
K+1a6WBbN6ETmBiVV6KIicIL0PkvKi80GDQGAy9M1DxXnpH4XAf6wrvc78nd7/v9fH/55QyU
0UgZDIZFra0vNTY3P95sE1vcu/xO/Vu9tpLSLAatskSrnKeZjbNf4f0r5l+5a6VXUpTBW6FX
1yN67VpEKrWRFHpgMUWXUAaqjKqg2qg7BrqJ9/l4sdndLvTwnW4Xv5tvBf286BXcLuDuBA19
jj6vD6yvtVqrQbvNy3cAvSEKDsFl6wEt95Ub1llrwfPuft7Zzougtq6aOGrrybQ+wQVa3A6+
Z40XkLnb3T3eaiC47D19HYLLAXxdghd08KLQb/MJ/Tw4IPi6gD6Ct8/jcYu+amATeSDyPXwx
us9FtMTEgxc8vAs0ul0+0CTYeZeXB08AL8+DLp/Ps7mmxu6zuda5RUeNp9tR47SJ/W6v3/lg
ef9LISsqeZraTo6oIUbN0/dTQoWNhvK7pdL7HTPa8qs7rwjnFn/40d6rTdcLS7948bL9PCOD
wncSSw5t9F5+drSQL7PPsDiLbDTzKkBZ1EzPLi/r1epZ/CMO0sxDQTyDgnRhaenw7C6WCW29
V12KptCeT+yXL6JpbKfvbdY2syiN99LMbgqncSutWcrKC39hy7VLuaQ2OdugNeCb6KYdrTiQ
+yEHjy5OIjtmtC9nXegW3qatxRdRG34WncEVp1H9aeZaQ/DzSTY7KauKrELu3EElLkswxgXE
IWn/aFSBMjzKTV1gj00oqqLcV0BycwO9Eal7LCoTRZKb+oA9VmQkIPe2X43NKcRInCgUCIki
hZex2SlZLkqm/SQmTmIGREmKS1HIdb1J51AjiZH/i5GLEC8dj0sxizAWm4tKYbMOUshgRZD0
ABSPQx00SecvsCMkqSg461fnBAGRliQYsXSPxYkFytwwXsJm8zTz8zZKURRZgdN+cyIOJTjk
7zU7cpJKj6Nn2JE8TUhJC+HEZQgjXMAnxckJue7x+6AUAY2cIuuBij4QySM5nL+3c4IwyGKy
J5W55U4fUnV+hDskdub+7SXmen518JBuUehG1MJeQ8ZEJq1mIZeOoZVPjh9Wo/A1bgemY4Oh
6ADksPXXwUR0GGY5tA6n2aHQe0dOxS5CjlcdKeGY6eMbbDRCM8kKKh99R3aqniT9GfnHGON2
aicMRO2e8ZA5N3IySzOmieDx1GhiTDHdNup6vAVTAG+pPPspravfQst++gatGCPdTXBfcDtv
0h24fONuK8SrYUfaNr5v9Ix58Gzk3WJcEImIQzWod8KE1+BedhCGYqHwU6vNva/grfh6kTkU
jofhEBxUw5kw2rHKrPsy4XRsGKagqqbTyIn+Nl9ChkRGycBhDiaHcoE0Xv97KOFVTeSfZX8L
XGlS6oqTSNadz9W8btIRyPDt139WMqYS6tbWmUctt42oauDOYylcXezGMFuH5+P1AcTAXy5f
QKbMebOuVUeVaZg16XOhTbj2Bl5InDoZtQXQarwW4j1HcBtm8DJsF5EHoiq0Ko0ORtDLeC2q
wk7FVH54pLDvOBhJjuOqsVK8YeKPybKTD5+Yn8joV/ZEJjv1/YIFyeJb5g3y5BcsLCxd8g9U
X35qCmVuZHN0cmVhbQplbmRvYmoKNTAgMCBvYmoKPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0xl
bmd0aCAzMTY+PgpzdHJlYW0KeNpdkd9qwyAUxu/zFF52MBeTtukKIbClK+Rif1jaBzB6kgmJ
ihpY335GQy8mKvyO5xy+45fWzamRwqH0yyjWgkO9kNyAVbNhgDoYhEyyHHHB3ErhZhPVSVq/
U/1BJ0Apnq3B9ocawA5+px5zYR3ulXQWKw3S3TRgPXejYHic/DZqojI7YAPDPFLzpFz/SAjB
18s5KxCHPna/+DqUr9yc2pt1MDWyV6gsE4TSby/GOnNDmxeuOnhYYp+GgxFyQJtr3YZIO2s9
wuRlIJJUVWiXxXGY4mA1ZWCoHCApvQZSofLsV5WA5P/ej7Gq65mfdcnOX302IcW2WmibR9oH
2q10jPQcqY5UB9q9BdqTSOdIWcyMVMS3Qx7osFIR1K06Fp2LIXc/2GyMnza4Fv5xGVlIuBur
lV6qwvkD31KbagplbmRzdHJlYW0KZW5kb2JqCjUxIDAgb2JqCjw8L0ZpbHRlci9GbGF0ZURl
Y29kZS9MZW5ndGggMzUyPj4Kc3RyZWFtCnjaXZLfa4MwEMff/Svy2MEyo7VKoQhdneDDfjDb
PyCNZydoEpII63+/mJM+TGLgk7vLfe8u8ampGjk4En8ZJVpwpB9kZ8Cq2QggV7gNMkpS0g3C
rRR2MXEdxad3rj/4BCSmszXU/nAD1MHv1NNusI72SjpLlQbp7hqonq/jIOg4+WXUxKUduXRJ
QQ3c5pGbF+X6Z8YYvZzrJCcd9Jji7INJunJTtXfrYGpkr8jhEBESf3tF1pk72Rw7dYWn5ezT
dGAGeSOby6kNJ+2s9QiT10JYVJbhugRrEqoDq7kAw+UNooPXwEpyqP1XRiC7f3avLYRde+Er
XtyTk3dnLE/KhdJjoGyL9Iq2lWqkLNA2RdohrZ5FoGy17ZFWW4VUIb0F2iVINVIWqGCBcoaU
IqHnDrXkmKFYaY+EynLMUOxCA9ZKl1Ysg3/MXczG+IaG1xFGtXR1kPB4QFrpJSr8fzL0sNEK
ZW5kc3RyZWFtCmVuZG9iago1MiAwIG9iago8PC9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3Ro
IDQ5ND4+CnN0cmVhbQp42l2U3WrjMBCF7/0UuuxCtf6XagiG1kkgF/tD0z6AY8tZgy0LWYbN
26+sM/RiQxL4LGnOzBmN4+ZyvOjRsfi3XbqrcmwYdW/Vumy2U+ym7qOO0oz1Y+eIwn83tyaK
mx+t+dnOisV8Wy1f/7RWcaf+zgPvx9XxYdFu5YtR2j2M4ma7TWPHp9l/7TK3ep1a7dKEW3Xf
ptZ+X9zwnCQJ//w4p4L1aoDEhz/MMuLL8fpYnZoveljY4RAxFr/7jFZnH+zptV9u6tv+7Jft
lR31nT19Ntfw5LoZM6nZ58KSqK5DuBQ1dUuvVtN2yrb6rqKDzyGp2eHsP3WkdP/felHh2G3o
fMX79vTNb0+SIq0DNYEEKEuxloAyUAZ6BeUgRBFEx0BZAzpjrQiUU8wShJiCKA+Uv4AEdgqQ
xE6iF+ykcxWIFEgPUYoEuRxBpF6BSJ0ICgWyLqAgiKhaikLVEsGz4gRC7YLohMygUEJdnEFQ
z+F1idpLeF0WgSQRcskQs0S13vJAyEUiikC1Ej0S0CvRFQE9SQQFb2uEBjBYHsE6hiQi2BPO
EcGJnKJAPSc9OFGiKwJOSJCkzKAg0VsJXyT1D9VW2HlCzDMUTlW4znRv94u9j/HXFHebtX48
wqyHwdtnZNTq63VgFrOfCr9/9jMKuwplbmRzdHJlYW0KZW5kb2JqCjUzIDAgb2JqCjw8L0Zp
bHRlci9GbGF0ZURlY29kZS9MZW5ndGggMzU0Pj4Kc3RyZWFtCnjaXZLdaoQwEIXvfYpcbqGp
0d3VLYjQahe86A919wE0jlbQJCQRum/fmJG9qGjgy5yTzIwTFlVZidGS8EtLXoMl/Sg6DUYu
mgNpYRhFEMWkG7ndyK98blQQFu+N+mhmICFdjKbmp9FALfzOPe1GY2kvhTVUKhD2poCqpZ1G
TqfZvbMU0kyNsBGjGoZlavSTtP0jY4xeL+coIR30eMPFeUm8cVXWN2NhrkQvSZYFhITfLiFj
9Y3sXjrZwsO696k70KMYyO5a1H6nXpSaYHapEBbkuT8uwpK47MCohoNuxABB5nJgOcnO7skD
EN2/eJSire25K3iVx3snZyyJc0+vSHtP+xjpiLTFUqQz0snTYVM+I52QCqTNVyIVng5vno4M
6YwUoXIjPCVGZYLKFPNMEoyh0l3rYwekEgmzTjdf4tux1b02Zp2C+xDwRWvXXj8q/setPR4F
3KdJSbW6/PcHZA+zTgplbmRzdHJlYW0KZW5kb2JqCjU0IDAgb2JqCjw8L0ZpbHRlci9GbGF0
ZURlY29kZS9MZW5ndGggMzg5Pj4Kc3RyZWFtCnjaXZLLasMwEEX3/gotU6jqRxK5hWBInQay
6IOm/QBHHqeGWBKyDM3fV9YVWdTYgqN5Xs+k9WF3UL1j6YfV8kiOdb1qLY16spLYic69SvKC
tb10kcIph8Ykaf3amLdmIJbyabR8/GkscUe/Q8fbfnS808qNXBtS7mqIm+l06SW/DP61emhU
XnBL5+nS2Aftuvssy/j31z4XrKUO2b98HCsiH3bH6+hoOKhOs80mYSz99M2Mzl7ZYtvqE93N
d++2JdurM1t818dwc5yMudDg22BZUlUhXQ45Urc0mkaSbdSZko3vIavYZu+fKiHV/rMXAmGn
Tnqxs3tee/csE3k1U7EEFaBtoNUS9AxbpD1oFWiZw3MNKmCLFOPKQKtoewKtQFuQAD2DSuSs
QY+wRYo5d6Ad6CXQOkPcHoTORCTo8y6BUL0ECcSV0C7QZwm1vt1AUCtQr4S+MsYJEOqtobaM
FR7DMOJfn8cy799t/eRkrR9uWNKwNvOEe0W3PTbazFHh+wO41cnYCmVuZHN0cmVhbQplbmRv
YmoKNTUgMCBvYmoKPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCA1MjM+PgpzdHJlYW0K
eNpdlNuOmzAQhu95Cl9upVLAYDsrRUhZspFy0YOa3QcgMKRIwSBjpObtC/6ne7FREunDh/lm
8Dipzsez7b1IfrmxuZAXXW9bR/O4uIbElW69jTIp2r7xTOG/GeopSqrv9fSjHkgk8TK7eP5T
O4o9/R26uO1nH3ej9XM8TmT9Y6J4Wq73vonvw/p141DbLI0d3ZZ77b6Nvvuapmn8/nbKtGip
w+5v6zohmc/Hy2P2NJxtN4r9PhIi+b3KzN49xNOhHa/0ZXv207XkensTT+/VJTy5LNN0p2HV
EGlUlmG7DOk0Y0vzVDfkanujaL86pKXYn9ZPGZFtP42rHZZdu2ZNdpuevazT07TIykBVIA2S
OUiCDpiZg7BOMx0DyQp0wlgRKM+wToEkxpg0xjTIYIxpFyjnmc8g3pNdDIhdmF4xtgOxC6hI
4XkEsdkziM2YkHtxABUYY4K1fgHBukDuBaw1E3tyPPZkQq2LVxAqqEEKnsUJBE/NBM8c70jB
c10QCJ6GSSFb5K5gLZGfgqfkeKiuREYK1oojoIIKp0DDzDDBTOEUaJgZJkRQeGMaEQwTIuQ8
E3XJeU/UReG9a9TFMLELTohhFyaOjlNguBLI3aASCrkbVMIw8clCzQy/B/3/JGShJ2Sa5aGh
uHO21trukI8rpFmcWxs0XDSh9bcu7S193EXTOG2rwu8fjPYiDAplbmRzdHJlYW0KZW5kb2Jq
CjU2IDAgb2JqCjw8L0ZpbHRlci9GbGF0ZURlY29kZS9MZW5ndGggNDU2Pj4Kc3RyZWFtCnja
XZPditswEIXv/RS63EJVy44t7UIw7Dox5KI/NLsP4B85NcSSkBVo3r62zpDCmjjwaTyjM4eZ
tD4dTmYKLP3lbX/WgY2TGbxe7M33mnX6Mpkky9kw9YEo/vdz65K0/t66H+2sWcpvi+fLn9Zr
HvTfeeTDtAQ+WhMWbp024e40d7fuOvX8Oq8/b+fWZIJ39jp8s2H8KoTgH+9NJtmgR5R+X5NY
Tnw6nO9L0PPJjJbt9wlj6e9VyRL8nT29DrbTX7azn37QfjIX9vRRn+PJ+ebcVc+rBiaSqorl
MvTS20Evru21b81FJ/tVg6jYvlmfKtFm+BQvKK0b+7XT7fPsbf1ciCKrItWRJCjPEctBO8SI
XhHbgVBFEh0RK0ANYqBdhlgJwg2SSIEkiG5QILqBiGo+RypEpPwAopovIAl6Az2DahDVpDz0
XhxBB8RAJVTLBgQnSgEqIimiElqgrMTtObRI6FRwUKJmCc8kVCsi6Czh2dpKjBFBZwnPJHQq
IvhSwkFFNeGZIp1QpqBMQZmibuXDN3X8fwK3Grh1jPGs2fJzkb3EMaN52gZuW6vHVvU379ex
jbsXF2Kb3cnox3o667as+P4D7wLzVwplbmRzdHJlYW0KZW5kb2JqCjU3IDAgb2JqCjw8L0Zp
bHRlci9GbGF0ZURlY29kZS9MZW5ndGggMjk2Pj4Kc3RyZWFtCnjaXZHbasQgEIbv8xRebqE2
ZtlDCyFQki7kogea3QcwOqZCojIa6L59jVn2oqLCN87hnzGv26Y1OpD8C63oIBCljUTwdkYB
pIdBm6zYEqlFuFG6xcRdltfv3H3wCUhOZ4/U/3AEGuB3UlRqH6iyJnhqHZhwdUDd3I9a0HGK
G+3EjeDOF4wiDPPI8ckG9cgYo5fzqTgQCWqtcI6xZHvjtumuPsDUGmVJWWaE5N9RkA94JZtX
aXt4WGyfKAG1GcjmUnfJ0s3OjTBFKYRlVZXSFWtLwkrwjgtAbgbIyqiBVaQ8xVVlYOS/990a
1SsR+128d9vozdjhpUrUrPSW6FAn2u8THXeJjs8p7y3DUmEZ532aYkaMOtPM0wQWsdrA/Vuc
dUtUOn8vmo95CmVuZHN0cmVhbQplbmRvYmoKNTkgMCBvYmoKPDwvU3VidHlwZS9DSURGb250
VHlwZTBDL0ZpbHRlci9GbGF0ZURlY29kZS9MZW5ndGggMTI5OT4+CnN0cmVhbQp42mWUbUxT
VxjH76Uvd4MOsdeqtHrvdcO3AaU6nRESjRBxCKLTMpfJApVeaKH20ntbwbchA8T29AVqFaQW
xFIlSKbiC2Ay5ubED3xw0ziX6GKWuMzNJdMYd253+LBbTYzJzknOOXnOc37nPM//5MExuRzD
cTy9rKgwf3tBZsmmrdwuk33ZquytbI3LZuITm4XiPHE+UFEihYk0LuqSREYmLpCjDpXspko+
nYFG5ily/40r5mMY3jwjMZ6YCRWqd6WV4kNVRsIQUi3EiCQMx9TYHIzGMrDn2DSe9L/b1pm5
nWyRmbU7rc49y/UGw4oCrn4Pb62xOJnlBsMHWYlxNZOvZzaaquq4BqHOypjsZmajntmkZ0q5
BslqZZZwdmYnazHZqhmumjGynzIugeUFpobnXPXCUj1jtFgFpoHj6xhp5lkbaxJYM+Oym1me
cVpYZkPZNiNTyNmdTIm1irULLJOdzTACyzIWp7M+NyfH6arRc3xNTrXkI+TYXjkJOYlz2YWb
S43ZJUUF60u3rdc7G51MNcczZtZpstoE/euISzl+l8mGSS0TW47lYx9hJdgW7GOsEquXSWmS
WjKWnEiYHKvGfsSz8Dr8r6R1Sf2ymbIv4XCq+H5LBPbfvhtRD0/B9DvFU+AOGRJnwWRNwONv
bfV4vminch1bGyp1xWsm4RKatMCsu99NjtxoNPZTjRywcKdaumlyJDjo/+r2hm/XLFi2FM1C
6X8YnsG0IUgco1/d4OrZH4YFYfXpKdh6jXwgamBA86zsEVIuWLUIzUCz/8x8AeWjL04GWwBo
9bib2qkNLqN1u66yMjpaT9smwORVLbyiJJlAAPiOass8GtKIWpQwI/jz2Yu6W+PFSO6lU6Ef
xMSUmOM8nPmL+uGDkglyANbOjhFb3J3naFFJkN8j4qDCQVw/0raDRkME236omHIQvugVMKCL
XgLuUzQ59zPxqSbaeGK3sLfRJfTuPRk90dtPvUTHE2j1swnyPHRI1OL2wAgdVxDkDyglQZ0M
SdTpN6ijEjU2CtxROjVe9PI4Duf0ido+WVwTX6iJEW6nCfA63gR8TtpB3AflPD1dRaBH4rji
WKvH26hDpKNXeTFyyOOnp78meFCelwCfuiyBBy4nnhsj8sDVAVo8RwTbgDvYLBLTz+c2Bf2g
Q3cU+Htp8SYxAK7ep1Lj5n2ReF4EH78ncvdk8ZXwsQaa0GKoR7loDcpABlSBKuAilA3z4Fr4
HjTAcmpttwa1IRIlSV2J0qASNsODcN7vT1/AuVnoAJUqVrRExBVhXFJ1cEomFsBaDZyl/xvh
CNcvlr6B+nEmxCH++AlUU8VHNGb35vod1OdcZSOrK686M+Kk+bHD10e1l33fxMao4b6RsxO6
sQu8JUoPlYMimzYV/gNiEIVB7FBYPXQLTEDiFpkGfxVna87W9VnX1q6zNFMeiCvJQfTWawXe
1HUcxHSDE8B9WkoU+UlBExij4WriyaXffgoGPYeDFHC1OrRCb3NPV3/wjBTPnu7doiGGHxXN
MtEuLpEkKnErdtcCX4Okz4D7eJND+yVwtx2gpIwMoRR4TdHWDXwBbXQY9FCSnkKFpGe9Dfhc
kv+Fk8DWRcOF05hif6fXHdKFvL6eThqmw4eh/vDFG7701ERRTBN1qkVSacNWJsrcRvW+sJjf
Bbkjx8NKKllu5FRvA1VKLDmS0uP1eju8Pl+n/1xIpYpEuvy+zg6fLxDoUL3zHy/KT0UKZW5k
c3RyZWFtCmVuZG9iago2MSAwIG9iago8PC9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3RoIDIx
Pj4Kc3RyZWFtCnjaa2AAAgEFBoWOAwwNDA0AEx8DGQplbmRzdHJlYW0KZW5kb2JqCjYzIDAg
b2JqCjw8L1N1YnR5cGUvQ0lERm9udFR5cGUwQy9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3Ro
IDI1MDU+PgpzdHJlYW0KeNqdVnl0E8cZX9laIYzC4UUkdIhnyTNg4vggISUQwuUCMb4A2xxN
jC8JS/iQrcP3rVurw5J8S8IXMiCbI3ZqOwGMYqcOxKUhIRc8SNOQo2naXK8wC5s/urLbkvS1
fXndt29md+abmd9vvt8333AwLhfjcDhh6VsPJKTsikxM2isrzC5KLcguUq5ZF7VXnKcqyJYH
LJLoZfSjlCCMDsNoyKFBEE0G08u5YV8ey5EJgpgmQfAbAu4PW5ihZfj++/fwRzGM07YgUPoX
oSDBY+zXvGcE4YGGMcEKbE4QxsEexpZh4dhqjObwOIL/vPJWkSxHHC8SFymlyoono2Nj18bJ
iivk0jyJknwyNvapJwLlenJbNLkrOzdfVqbIl5LZRSJyVzSZFE0my8rYVikZISsic8SS7ILD
pOwwmSY+QKoUYrmCzJPLVMWK1dFkmkSqIMtk8nySreXiAnG2QiwiVUUisZxUSsTkzvTUNHKH
rEhJJkpzxUUKMRkVRZIKsZiUKJXFG2JilKq8aJk8L+Ywa6OIKZg1UsQExkXtSElOi0qMj9ue
nLo9WlmuJA/L5KRIrMyWFiiif0o7WSYvzC7A2GcZ9jgWicVgT2LPYtuwBCwJ24OlYVlYNpaD
SbHCYHb72GcRtiiwkVzsKIfkGIIWBGmCfdzF3C9xNf4lzzPn0Tnv8638v83diwbn05m06FNh
8yRewWvciyc3FKlrQU7zxVEH7EPhrVfspyVDSwfzc1qkYOPOpPh6eFh70mgH7X3O403wmK2y
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
W79iCZiVf/pCIUkzl9Dnv11zR6shoMTjCfSCjLSpaBK4dLbuvVaY5kmzXuQEKk7kp9hdu/j0
3iQ+nV3P/5Uf4ziA8qTRWimYSZbcoi2QapLc87I1apUCj8WFbqtQA60u4/K512qMrVwVIPA4
keQfrNNHQ/ZzMuV1gzKqED7AiE7P16nKQJmpqNgI0Vp0p/SA7XiHzt1x8gVaqx5wVn6X3TXv
geoBe/S/zmzXlqWo493zsrR5uZl4NNa6eSMrnVeszc8nM7eQzfXyzGTeM2YuvBB29wrC19Ob
ooKWrwast0rKVaXChvxSq75CVGNMqZACeUJGtAqScyy3OewcuH7u8uUmiDh+EX295byuAjh2
kbXHzSpAfKeQL0Yfi8vvFd6T3hZ9Ez2/IhCsWxjnsRHuXp68IH1eppfCs26RaO6hm/KzoP2e
5e9X4fGbVXfI1ppbKiZvrpCtFk2KWhMdAII32b7Jg9qrFY+L3i25UdJR2S5Cg1o/KbKBxuvJ
4wxQ55uxSOEjevnxfXcielv+//MZPuuMXkPHxXgYeguvwG+VpCNPRKHBmKJfesrXmYjWy115
0MF2/98/62Pd3uc9xFWGtKpkkJapUKogfhNPLk9GXsilpKCoRF/q7uL4aG8oD5zffJ2iqJmO
T+nErjIrv7QSxZSYrMzIgf02xToP4JwH2Qd2D7LodHqdXq8r0huuOTvb9tcYTIUGg8Foynce
/J9U8RuMCmVuZHN0cmVhbQplbmRvYmoKNjkgMCBvYmoKPDwvRmlsdGVyL0ZsYXRlRGVjb2Rl
L0xlbmd0aCAzMT4+CnN0cmVhbQp42mtgYJBIMC0++HBfxYU3f5ocGBgaGJCAAAC8mAiDCmVu
ZHN0cmVhbQplbmRvYmoKNzEgMCBvYmoKPDwvU3VidHlwZS9DSURGb250VHlwZTBDL0ZpbHRl
ci9GbGF0ZURlY29kZS9MZW5ndGggMjA2OD4+CnN0cmVhbQp42o1WDVQTVxaekMyIGqsyxtPu
U9/4U2WPJSJaFast6ArKAqJipcVVsAkQExjILwjhJyJEJgaCJBjCT0B+GpSudvH/X0sJ3bam
LVJPV8/a1braHteenl3fuMOeszOKVna35+w7c97Mue+++9373fvuPBEmkWAikWj62viYpA3r
58cnJNA59CZNeo5+YXjYRmWmQZOuFRTWs9PY6Yx0BjsDY6GIBUEsJWZnSmxS0Yz77TtoaRD3
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
ahcxY5wkmZaOZaTj/eMC4496HDZh1LRUO6TSK/tctvpam/OSo9MpncC2Tnkk+zfOoG/sCmVu
ZHN0cmVhbQplbmRvYmoKNzMgMCBvYmoKPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCAy
Mz4+CnN0cmVhbQp42mtgYGAQEFAQVJhxoKHJpQEAF0UEEAplbmRzdHJlYW0KZW5kb2JqCjc1
IDAgb2JqCjw8L1N1YnR5cGUvQ0lERm9udFR5cGUwQy9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVu
Z3RoIDMxOTA+PgpzdHJlYW0KeNqtV3tYE1cWnxiSQaG0yxhrM3QmVlsryNNXa1utUqEqUqtQ
H1UhSHhoSCAPYhQk4RESLoHwfiWBgMAEFAv4wIot1L5Ea23tln52td3ttqUtbd3W9g5evu1O
oLX9dtv9Z3eSb5Lvzrn3nvM75/c7d3iYlxfG4/Hu2xSzefOWqKCYTVuUGVJFeETwFlmqVi5V
eR5GsQHs/cCXYimMpXksOYOV8Nl5XijSl3/a12tyJToaIFDdRoL7MYxnvNtzf+lPcKbvA9w/
P4fvAs/AKd8HMXwGxsP8sXsxGluAfY9N8mb8x25rkpVJsvXJMoUmXaOPCAkLWxqpzNSr0lPT
NJKIsLAliz33RyVrQyQbpHv3K3Xq/ekSqSJZsiFEsilEEqvUcaPpkoeVCkmSLE0qT5EoUyRx
su0SrVqmUktSVUptpnpRiCQuLV0t0SlV+yXcr0oml0nVsmSJVpEsU0k0aTJJdPzWOEmUUqGR
xKTvlSnUMklwsESilskkaRpN5srQUI02NUSpSg1N4WzUofJpI3WoZ15w1DOxccEx6yPXxW5d
F6I5oJGkKFWSZJlGmi5Xh9yJOFapypDKMe4KwOZjgVgQFoqFYxHYY9ha7CksCovGnsY2Ypuw
zdiz2FYsDkvEkrB0LAPLxLIwDZ8DkrtIjPRA6oWV8mby9Lx3Z8TOGOIv9JrjleX1kcAoeFt4
t/AtfDPuwn/yVnjfnqmYNXdWyqxXfcJ9vvZtRz/5mZjD2bDMeeT6hzr/Y+/CpEujLqKZVfxd
dF67Fd+iLsiVgaFGCkbiw6A/oY/qTtvTkEA+GhO/QeHMbW2z29tOpIIc+mTrWUc/eeZ1WTi9
F0e7zatXrBITTz7+uerNtwb6zzoponNXeVfqKbLltYYPabTiZdGitfsSdyYdPwvnwlV1x62U
38PGZja0Gab3+3eOgpGYUWgbJdJYG5SLIBH8NeLH7VJJ0yn4Hk70IdogUOBvVxXupCe/dOHH
LwlSWk/JLpIQvzkORfTqUtHTRqk6lZLr9sp3kPFpPR0H6cMtoNwuhkk4EeUA1tom6njbaWaQ
dN/KQ3G038VsZiKU4Q2Psep2/oQE5ohqQYXBWGIqpNCSfOS9LpBch7aehAPwJNx8+uqtzyNQ
YDOdZwXmOrIBlDXT0Ig7gM1YVGIxFlE7Hxec3xPdE0mijSiC+ySivXApCoPr4SNjcD6cQfuh
ZKMLMteHXbyeUbjnBp8NhD6i6kJgzi8x55mpp7TxGfFk7MohuBiu/PjEud5XcpJb6bwUkKS2
H2xrdTYwl9edXYlmhsxH/mj2V4ugAM51Q99q2oOiro8NmMIRDnFAgtHZfsRhtm4Og0cXVA7S
7A/4b+BDWTiTndgTSyLvhYvQbER8uQjOGD19ztlAR+GQ8NIDc66WInrS1EmKHWQWwmrgc1fr
+l1H6a7m/q5z5IWePYdq6LqDwKIX+7UCBo4w8AWGBwP+Ane64GKXzcWf8IfVIq0QhanVT6En
SBQgTLBUHqVh62f4V7XyZbQLNmmFywzyICoMmoVHrZWnKXifEC7s2oEWNNIuYRZUCyZPKJqF
V8uMKfRkO55iNkZSOgU7LJyGcbcTOOE2nb97FBZcIN5kgzgoK0zlRQUWk8lCrch6WiMlpQ91
wjW0E7pxYtBlBc6b8V+gu5BwyQJ0D5r7j0DIhz4DEGuhN8G5IpQvhOFVnzg6yR8r0Lz0Ui5b
0hYY/8pfW6C1xb9jMOcKjLwCBo2DqYPE7CdZJRsocuR2pm1L3p+TS7VmpNXLyPCno1dt6Ump
yaeJLw15OXpFsvjZHlWVidp9eHfqNnHUF1vg3dDnm6H3jxS+/kwX1b59B1hGxhYCp5421uQ7
W8T2CntNAyV/sR/Ukp9efvuDjoLe/d10f9+LwEaW24ClnCaWPWksNhkN4tyavKYqh81FoVVo
hkgPkg5mUooDGcZscgm42eoAJ+wdNON017SQxIjhE/CQhobY5CzR5tW7QoPWDr5aZe3rbaca
XNXgHfIGFICltN8kDhjWm1H0Q3zc/5Px1SPEEVjE1c+GYlsfzXrhxKsowFNBF6uLuAo6gu8x
gA2UArd2ngUMWfsasByjiblb2Zsit9qpVmZrM7Nc2na3s62N8kPjaGP2sX62c2rt9BtJI8fH
N44QMpiwXcQacLTQs+771R5iL8DjDGuepcA+oGmgCO92W5XTLia8Wg861BRxQXVQr35+OOvl
q69f+Iwm/Esn5v/ebv5cRe5l4P0MVHPh+H8/QoyzZi6STDk4oaSRGG4rrBGUjQxXVVFX3jhd
2lLqzeAWXRbIILO2A6uGVuD2krr8Q2Jdth5QiCObgM3Gifd+qz8tvw3fTbrPAksnzeAb88AA
/QN+8fxXiBI0ZlcacsX6XFO2x+7IIOggT1mB5RTtJwfMhGCKL3z28hRPFhoPIwJFkkunacIe
w49b6/5GuRmhRbEEpJEZEcCqphXN+DQdOu/QAQinEsctx0UKeSPEC7B0zs+OTGA4ceUPvB70
eH3O47UfXMPhdZQZmVoBuwT3er6cfNyYOMattEMF3CU0jMHHQKemm+pT7KpIJx+RPpN8iP4g
N94VQwbKHtEV0CXfCYlvpgtkWmLa7uzVPgw6SWYYWNp/QQjG4reunL9woWF7LIXy/idDv4f/
3XniPdbxR37/6uv4/89XP+iT3TrxuMvTR1LH+BPb4OciuBcthhFoLYpCi9BSJEUJMAiFw0gY
DR+GS+BuKqRRhOpRQGjgg2juV7AaWiB944tvILkMmSg/o4uN0vE4ZXOP8tkEuE8ERYu+Q97I
d/E8j/J/GwSFcNb419CfWl0tSgObsnZRzyt3H5CRKXuaBhV05kDJ6yfFveDNrgHqVOfpph6y
76Q+uYPu2g1iUqYF+2QbvMQV4P3XzozBFWN8FrIm0XjgJ4ik0Kd3RPdOlQmtbdc5kruvA0sb
zejwSHPNCzQ0wSdwOPPHazfpkDlSgIRoBYVoeGRazL8QwuUACRK5BKHnGBjazJKMweX//SXY
NErc82uD5y3ZFVNspi7jXEamKvWdisIEenLff8vIWlzlOJH8a+Ofg3yil66SK+qdOkrTmtPc
6Wn4TlDKtXti9oB70NlLvv9GGPLiJL2Ri/1yv2NaFoqvdV8jZsMfWELkzuxMXK4IPVBElUC+
kGCQ+Peqo/MVjjUd7wJLK+cLUagTEhvWWmqP0zAcH+//7IMqKygppwqKDxVlihWthqbm5voO
To5qarNhhAM2OnhHB6B+gA9vQUI0vK87v5pK7cqsWF/nnVGxtuENcVfLmU8hryJEbqUKSitB
GVkLbA76+6kTRsEBbX4hdUQur9hPortS18cZQFpvGt2tPFZ4Jv8VQ735iM7bkVOvVYoTVc8v
Wf9877daqthRYgXicksxMJMGYNLTKADXA1ONrbS0xU7ZKoG1scl7V+8wsJO3Xn7tmgcdrvDE
DIzR+X93SeuCAS7iFrwG7xG9qo3DIxXS5GgwZqfgUTiPQfM4ZhFpWmFJcGpQmNlbx+njx6hL
iPh/1gyNHL1w1XOy62O9+3nTpORPcXLqKAJZHM37Fd1ofPmep5581PTiEAU/+vnJKDBH0CgQ
3wRS3fuorLYTeS+R9m7AHKOZ1qZeIA7HOZGvzWbDGJ6D1fBZE/uQiJNwRS6Qk49auQVOWmwZ
BnE+dxTIox5EtcgL9ghMDSXAJm7vBQ6Ks1VtA5lkkMf2fE2xvI6G89FtQa7NaqojKyus9koa
zoEfVrvspy6W3ucHfwLZ7DfMaYZnv53Av5058YBnu0QLSCCz4qeEGX+zxLFfJzaZCyzc2XHx
pAItZ4GgpMxSVSZ2D4E2z5bqNUBBKmKBNYuzH2ow62vpysOV8vpUNH9yy1y0lDVxPgIrN+El
0O6ZoFkNlHcmDDuBjHNz5+Q/BTm28uJqsspW1mij4Uq2CT422cQN2sxVZHV5uWdwM/tR01mm
+Rzn+1Q3XM7AYAYw/jVsIVHPlnGpeE5v7VbT6F64huk9Oexsue/MiRcru8npsJLJcA8y9Zam
Io34YL6hqIDauPKJ7wTm8qLqSnGFzeEuncJw+y8YEmMvOS2ZLTSciYIFVkt5kVlsfmKR8TCV
EJ9gSCzx5rjTawWnyE8tAgZXlxU3NoibKqtq6qmrY9clArsWWIrEBQWHMkumGD/IMd7P8+55
D0v6PsS9QWKPed4me/2zW9jIRqisqWoRUrO84pS+M4GvDzPrko+z1MpVdUV5qbW/0dfX1dFg
rbCVWa3lFeW+d7GHZ0/cK/oXla/ODAplbmRzdHJlYW0KZW5kb2JqCjc3IDAgb2JqCjw8L0Zp
bHRlci9GbGF0ZURlY29kZS9MZW5ndGggMjM+PgpzdHJlYW0KeNprYGDgEDBMENCecoNhgcsJ
ABp2BH0KZW5kc3RyZWFtCmVuZG9iago3OSAwIG9iago8PC9TdWJ0eXBlL0NJREZvbnRUeXBl
MEMvRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCA2MTY5Pj4Kc3RyZWFtCnjajVkJeBPlup6Q
JlO2Ah2CMoMzQVHZ91VEoCCb7FBkKXRN13RLmy5A23RJm+RP0o3ua9p0YVraUlrZN1kFq8BB
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
dGnpniozSxWLDhIGWZyX2RIlHr9qNq05wj3ECq81yOi1fvi6bWuNcSJLtNTx5jrmewetohZo
rRnFpbStsfniP9h/vi7L1xXv0tNpabujTCxl6NV/9e0m417uD6nw5R1pd9zzLopiMOlISUdZ
QrxOn5yl5/AcXI2Xw1FZhuhcDl1tzz7k7CEPFMDgYeLZCvLjfF10GQeB+HsZfpf8240bS75l
KGjnwJMET/hIdrHtfHYTI6ZQVOEVXyKb4M27V35JHfprf/Gmsp0aOtVkzExhX8MmcQfbZFkF
xuxsuq4NVf6v/jpaiYLFbh7bI9GslW3URi55h6FuiNq9IoHjs/NtZXRdQllsvDY5fEdn0PFL
HWfP1rKwWJgvu1R3wlzGOLDT1v2iTdJ+G/JF6u8D1xWfZX4W/An7w/Y5Zb7MGo/oiX5c2JLM
eXPpBdlTOuazb7x3Pf4Yc/qf1d8f5Jqu5Ny8Rc8uUixAS3XvsON3rw/fwQSstf+QyOkuoPvn
6cuoK/80C/0rP91jZ5q7EkdXcgUb0PyV9O/KCai7rQ4KAa92oS7qfed9+l7RLCWxe5psl8lo
QrTJaERJDO4HMjnV8/DOgQ/2tqbGVrF+Rn3kLjq0LrmypqZs7/mNnQsn4v6bsYTF8v95K1hq
BekfHPwGTCUP5yX7cbjmfwhxwQD5NgkSshzUIl9h68nSkm6O/50OFpgBr71EEMQMx39Do921
NmFROUQU5trkbD+XjZED+qIB/fl+V/rbzBazxWLOs1isFwcMsHdYcy25Vqs1Jzd7wMD/BriF
70UKZW5kc3RyZWFtCmVuZG9iago4MSAwIG9iago8PC9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVu
Z3RoIDI4Pj4Kc3RyZWFtCnjaa2BgkBAwTf78e8+/hw/+rnNhwAQcAOQgCKEKZW5kc3RyZWFt
CmVuZG9iago4MyAwIG9iago8PC9TdWJ0eXBlL0NJREZvbnRUeXBlMEMvRmlsdGVyL0ZsYXRl
RGVjb2RlL0xlbmd0aCA0MzYyPj4Kc3RyZWFtCnjatVh5VFPXuj8hnBxUCMghaHPsOdGqKMrg
dL21g4riVKRVUVGCggYBUeZZBRQDSXYIM4IyC4gTqCBXT7F1ttZqW/VZba2tQ2tb9ZZnr/c7
uLnrvR1AW1fvuu+vl7Wyk3X2zv7m3/f7IqNsbSmZTOa6wM9/fqDPOL+Fi2M2hkZP8Pbwidmg
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
C3LpW1dxNoPfhiASD1e6oryw6A5hHF6GkVYJFTuM23cIuXpkzM2d6jF0LDB0G1HAwYBtyPZV
hlAhPzwEu9Gp6eEoiNMyDy1PCQwzaakFhQiROhUegwxssCutI6O9vbVL/Ya1rdI5IhwYQisZ
uXSzzzkJG03xnLdVKBJRpjonk0xgJsxCPX2KSHQyYAXZu8TA+z3DE4PooKSoubO5LUazJVso
ya+vaFEfSNgdGROdqgsU11y4ee7i2SYeoqRguqLIUnSpv+8+Ff8L2OpWmZVzrQNKbp2v5kjj
GDxbb8qlsdsTxXefH37YXJuTUc+n62PT16p1zXGth5ob2j9efYlAsBMeqcMDeLeXE4SjBRx7
u85TmMfsLkQRAv78BUXqlwjhrbGtzv0S2YZekYRXmbYF5OZy200oTy+wt0ui4lAqR/ju62sw
I/zb+9e9eEIvlRaq8IYnit8eV31a15SDeFaHkNFo5Ldm6rdsUmfmJ+/K4AtykXGT+g8T2M1k
WJ7i/GIMYx/+v85h7NAyiVPti9kXlZiZkZHJY1s8dO86GHeb3lVSV7ZfTeimJEuGZeAtuw0z
5FAoXVZ9se7MouANESFrm8I+qqsp3rmL12Nb34CkdLtcQ65hu3pr2dbiCpB9Dxpeaf1r0Uni
7Ee/TlHUX6z/FeY5Z5VJH5TAqtrSMgU/0DYgxn4Ash8kDgTFoAMWi9mcl28uKjp4wd5eLDxa
XlhmKc7PK7PYO/wvBtDCgAplbmRzdHJlYW0KZW5kb2JqCjg1IDAgb2JqCjw8L0ZpbHRlci9G
bGF0ZURlY29kZS9MZW5ndGggMzI+PgpzdHJlYW0KeNprYGCQMDBONFw0J47hwVktNgZUIMCA
FzABABNfBRkKZW5kc3RyZWFtCmVuZG9iago4NyAwIG9iago8PC9TdWJ0eXBlL0NJREZvbnRU
eXBlMEMvRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCA5MzA+PgpzdHJlYW0KeNptk11s21QU
x68Xu3dr3e7D6jY1q307oBqwfFAYiIkHsnRdO9puarMKJEDLFjcJdePIdtQWMa1aS5TEiZuu
ataQqh+Lp7UZAolCR4VA0yQeeNnD+tIHkIa0Zyr2cp05D9ggISFxHs69Ovqfc3V+V38CkCQg
CKJ1cOiDcxe6X+3tGxBHgzF/MC6/5nUN8OGEEJRsQZdxzGhVadZggcERhnOPgRxGG2m2044N
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
dGFydHhyZWYKMzg1NTMKJSVFT0YK
--------------030909060806060301040801
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--------------030909060806060301040801--



From mirageos-devel-bounces@lists.xenproject.org Wed Jan 20 03:26:15 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 20 Jan 2016 03:26:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aLjPI-0004eb-39; Wed, 20 Jan 2016 03:26:04 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <anil@recoil.org>) id 1aLjPG-0004eW-BE
	for mirageos-devel@lists.xenproject.org; Wed, 20 Jan 2016 03:26:02 +0000
Received: from [193.109.254.147] by server-10.bemta-14.messagelabs.com id
	6F/30-25438-94EFE965; Wed, 20 Jan 2016 03:26:01 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-16.tower-27.messagelabs.com!1453260360!17962122!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=0.9 required=7.0 tests=DATE_IN_PAST_03_06,
	RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 34512 invoked from network); 20 Jan 2016 03:26:00 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-16.tower-27.messagelabs.com with DHE-RSA-AES256-GCM-SHA384
	encrypted SMTP; 20 Jan 2016 03:26:00 -0000
Received: from bark.recoil.org (localhost [127.0.0.1])
	by bark.recoil.org (OpenSMTPD) with ESMTP id 10329e0f;
	Wed, 20 Jan 2016 03:25:59 +0000 (GMT)
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=recoil.org; h=content-type
	:mime-version:subject:from:in-reply-to:date:cc
	:content-transfer-encoding:message-id:references:to; s=
	selector1; bh=OFKjrHM3/CUFFy6Y62b0TQ32/v4=; b=iIhyAzLgtYbvJqu/R7
	USUR1sofMrqeirh8L6+Oo3E9Ft9fjZQ7mef0OCCRgWas6hEhEMPOQlyEM+PNas7q
	jt/YgOnYlvbN43hYZLM4OItZDPsm0hLJuWFxAP7PB9sdH8wmlQR+x45KC1PMtaSO
	J0HYc/DGzthI9ReAJJiQ+sIJ8=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=recoil.org; h=content-type
	:mime-version:subject:from:in-reply-to:date:cc
	:content-transfer-encoding:message-id:references:to; q=dns; s=
	selector1; b=Y01gRbiY4pzBv/Fvl6DGwZ3FO90MpmJyCedmUZARrWKdBKWbwa0
	SEnMGQ9FqUeB75Ei9mkGr61vHF/aj2Xpon1/ey9T8u5NSwO0zIJkzs3ko7vpY6oM
	Yr8jqsca3enJCp9mMcuDGre/57s8pOxvyp83rivc0HOf0lL7VL3jFJmg=
Received: by bark.recoil.org (OpenSMTPD) with ESMTPSA id 66687ad1
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Wed, 20 Jan 2016 03:25:59 +0000 (GMT)
Mime-Version: 1.0 (Mac OS X Mail 9.1 \(3096.5\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <CAG4opy_iiNN+UkADt3121SWB1HLJ_A1org0t8ps=yjHDLd4DAg@mail.gmail.com>
Date: Tue, 19 Jan 2016 22:04:07 +0000
Message-Id: <72A60708-DB97-44E0-8FD7-42E183180FCC@recoil.org>
References: <CAG4opy-Rqu4EqKMCFDbN8XTe6DECMteGp5dDo-d1E+ZzG4RKTQ@mail.gmail.com>
	<8800A03F-EB2A-418F-84C8-AA153305F720@recoil.org>
	<CAG4opy_iiNN+UkADt3121SWB1HLJ_A1org0t8ps=yjHDLd4DAg@mail.gmail.com>
To: Thomas Leonard <talex5@gmail.com>
X-Mailer: Apple Mail (2.3096.5)
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Unmapping grants is unsafe
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org


> On 17 Jan 2016, at 14:54, Thomas Leonard <talex5@gmail.com> wrote:
> 
> On 15 January 2016 at 16:15, Anil Madhavapeddy <anil@recoil.org> wrote:
>> 
>>> On 4 Jan 2016, at 14:26, Thomas Leonard <talex5@gmail.com> wrote:
>>> 
>>> On 3 January 2016 at 10:38, Thomas Leonard <talex5@gmail.com> wrote:
>>>> On 2 January 2016 at 14:35, Mindy <mindy@somerandomidiot.com> wrote:
>>>>> On 01/02/2016 12:14 PM, Anil Madhavapeddy wrote:
>>>>>> 
>>>>>> On 2 Jan 2016, at 12:07, Thomas Leonard <talex5@gmail.com> wrote:
>>>>>>> 
>>>>>>> I have a Mirage firewall running now under Qubes:
>>>>>>> 
>>>>>>> 
>>>>>>> http://roscidus.com/blog/blog/2016/01/01/a-unikernel-firewall-for-qubesos/
>>> [...]
>>>>>>> - Mirage allows you to access memory after unmapping it. This isn't
>>>>>>> safe (may page-fault or give access to someone else's data). I've
>>>>>>> added checks in mirage-net-xen to make sure we don't try to access a
>>>>>>> ring after unmapping it [1], but I think this should be fixed at the
>>>>>>> Bigarray level [2].
>>>>>>> 
>>>>>> Did that Bigarray patch get committed into OCaml 4.03dev?  I dont
>>>>>> have a checkout handy here and it's hard to map a commit to the
>>>>>> associated PRs in the web UI.
>>>> 
>>>> I haven't submitted a PR yet. Need to update it to master and test.
>>> 
>>> https://github.com/ocaml/ocaml/pull/389
>>> 
>>> However, they're not keen on merging it, for performance reasons.
>>> Also, it would mean changing Cstruct, which currently says:
>>> 
>>>> We try to maintain the property that no constructed [t] can ever point out of
>>>> its underlying buffer. This property is guarded by all of the constructing
>>>> functions and the fact that the type is private, and used by various
>>>> functions that would otherwise be completely unsafe.
>>> 
>>> I wonder if we should instead change Gnt.Gnttab.Local_mapping.to_buf
>>> so that instead of returning an Io_page it returns something else,
>>> which provides similar operations but:
>>> 
>>> a) checks every access to ensure it hasn't been unmapped, and
>>> b) doesn't allow you to get a Cstruct or Bigarray from it.
>>> 
>>> However, this would mean a largish API change.
>> 
>> Before going through the epic amount of work that an API change would make in upstream libraries, perhaps we should build a small unit test that rapidly does a simple data copy across domains and benchmark it?
>> 
>> I think any new API should do very explicit lifetimes for the grant buffers (i.e. not depend on the GC to cleanup), but also minimise copying the data if at all possible. While it's dangerous to read from a shared memory buffer if you don't trust the other side, an enforced copy does make it hard to build efficient unikernel proxies that are just transferring data across shared rings.
> 
> A simpler solution might be to rename [to_buf] to [to_buf_unsafe] and
> provide a safe [blit] operation (that fails if the buffer is no longer
> mapped). The block and net drivers already copy, so they could use the
> safe interface.
> 
> shared-memory-ring currently reads directly, but maybe it shouldn't
> anyway (whether frontend or backend) to avoid TOCTOU issues.

Yes, this sounds reasonable for the block and net drivers, and any lingering users of `to_buf` could be fixed up easily.

-Anil
_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Wed Jan 20 03:26:15 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 20 Jan 2016 03:26:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aLjPI-0004eb-39; Wed, 20 Jan 2016 03:26:04 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <anil@recoil.org>) id 1aLjPG-0004eW-BE
	for mirageos-devel@lists.xenproject.org; Wed, 20 Jan 2016 03:26:02 +0000
Received: from [193.109.254.147] by server-10.bemta-14.messagelabs.com id
	6F/30-25438-94EFE965; Wed, 20 Jan 2016 03:26:01 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-16.tower-27.messagelabs.com!1453260360!17962122!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=0.9 required=7.0 tests=DATE_IN_PAST_03_06,
	RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 34512 invoked from network); 20 Jan 2016 03:26:00 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-16.tower-27.messagelabs.com with DHE-RSA-AES256-GCM-SHA384
	encrypted SMTP; 20 Jan 2016 03:26:00 -0000
Received: from bark.recoil.org (localhost [127.0.0.1])
	by bark.recoil.org (OpenSMTPD) with ESMTP id 10329e0f;
	Wed, 20 Jan 2016 03:25:59 +0000 (GMT)
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=recoil.org; h=content-type
	:mime-version:subject:from:in-reply-to:date:cc
	:content-transfer-encoding:message-id:references:to; s=
	selector1; bh=OFKjrHM3/CUFFy6Y62b0TQ32/v4=; b=iIhyAzLgtYbvJqu/R7
	USUR1sofMrqeirh8L6+Oo3E9Ft9fjZQ7mef0OCCRgWas6hEhEMPOQlyEM+PNas7q
	jt/YgOnYlvbN43hYZLM4OItZDPsm0hLJuWFxAP7PB9sdH8wmlQR+x45KC1PMtaSO
	J0HYc/DGzthI9ReAJJiQ+sIJ8=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=recoil.org; h=content-type
	:mime-version:subject:from:in-reply-to:date:cc
	:content-transfer-encoding:message-id:references:to; q=dns; s=
	selector1; b=Y01gRbiY4pzBv/Fvl6DGwZ3FO90MpmJyCedmUZARrWKdBKWbwa0
	SEnMGQ9FqUeB75Ei9mkGr61vHF/aj2Xpon1/ey9T8u5NSwO0zIJkzs3ko7vpY6oM
	Yr8jqsca3enJCp9mMcuDGre/57s8pOxvyp83rivc0HOf0lL7VL3jFJmg=
Received: by bark.recoil.org (OpenSMTPD) with ESMTPSA id 66687ad1
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Wed, 20 Jan 2016 03:25:59 +0000 (GMT)
Mime-Version: 1.0 (Mac OS X Mail 9.1 \(3096.5\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <CAG4opy_iiNN+UkADt3121SWB1HLJ_A1org0t8ps=yjHDLd4DAg@mail.gmail.com>
Date: Tue, 19 Jan 2016 22:04:07 +0000
Message-Id: <72A60708-DB97-44E0-8FD7-42E183180FCC@recoil.org>
References: <CAG4opy-Rqu4EqKMCFDbN8XTe6DECMteGp5dDo-d1E+ZzG4RKTQ@mail.gmail.com>
	<8800A03F-EB2A-418F-84C8-AA153305F720@recoil.org>
	<CAG4opy_iiNN+UkADt3121SWB1HLJ_A1org0t8ps=yjHDLd4DAg@mail.gmail.com>
To: Thomas Leonard <talex5@gmail.com>
X-Mailer: Apple Mail (2.3096.5)
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Unmapping grants is unsafe
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org


> On 17 Jan 2016, at 14:54, Thomas Leonard <talex5@gmail.com> wrote:
> 
> On 15 January 2016 at 16:15, Anil Madhavapeddy <anil@recoil.org> wrote:
>> 
>>> On 4 Jan 2016, at 14:26, Thomas Leonard <talex5@gmail.com> wrote:
>>> 
>>> On 3 January 2016 at 10:38, Thomas Leonard <talex5@gmail.com> wrote:
>>>> On 2 January 2016 at 14:35, Mindy <mindy@somerandomidiot.com> wrote:
>>>>> On 01/02/2016 12:14 PM, Anil Madhavapeddy wrote:
>>>>>> 
>>>>>> On 2 Jan 2016, at 12:07, Thomas Leonard <talex5@gmail.com> wrote:
>>>>>>> 
>>>>>>> I have a Mirage firewall running now under Qubes:
>>>>>>> 
>>>>>>> 
>>>>>>> http://roscidus.com/blog/blog/2016/01/01/a-unikernel-firewall-for-qubesos/
>>> [...]
>>>>>>> - Mirage allows you to access memory after unmapping it. This isn't
>>>>>>> safe (may page-fault or give access to someone else's data). I've
>>>>>>> added checks in mirage-net-xen to make sure we don't try to access a
>>>>>>> ring after unmapping it [1], but I think this should be fixed at the
>>>>>>> Bigarray level [2].
>>>>>>> 
>>>>>> Did that Bigarray patch get committed into OCaml 4.03dev?  I dont
>>>>>> have a checkout handy here and it's hard to map a commit to the
>>>>>> associated PRs in the web UI.
>>>> 
>>>> I haven't submitted a PR yet. Need to update it to master and test.
>>> 
>>> https://github.com/ocaml/ocaml/pull/389
>>> 
>>> However, they're not keen on merging it, for performance reasons.
>>> Also, it would mean changing Cstruct, which currently says:
>>> 
>>>> We try to maintain the property that no constructed [t] can ever point out of
>>>> its underlying buffer. This property is guarded by all of the constructing
>>>> functions and the fact that the type is private, and used by various
>>>> functions that would otherwise be completely unsafe.
>>> 
>>> I wonder if we should instead change Gnt.Gnttab.Local_mapping.to_buf
>>> so that instead of returning an Io_page it returns something else,
>>> which provides similar operations but:
>>> 
>>> a) checks every access to ensure it hasn't been unmapped, and
>>> b) doesn't allow you to get a Cstruct or Bigarray from it.
>>> 
>>> However, this would mean a largish API change.
>> 
>> Before going through the epic amount of work that an API change would make in upstream libraries, perhaps we should build a small unit test that rapidly does a simple data copy across domains and benchmark it?
>> 
>> I think any new API should do very explicit lifetimes for the grant buffers (i.e. not depend on the GC to cleanup), but also minimise copying the data if at all possible. While it's dangerous to read from a shared memory buffer if you don't trust the other side, an enforced copy does make it hard to build efficient unikernel proxies that are just transferring data across shared rings.
> 
> A simpler solution might be to rename [to_buf] to [to_buf_unsafe] and
> provide a safe [blit] operation (that fails if the buffer is no longer
> mapped). The block and net drivers already copy, so they could use the
> safe interface.
> 
> shared-memory-ring currently reads directly, but maybe it shouldn't
> anyway (whether frontend or backend) to avoid TOCTOU issues.

Yes, this sounds reasonable for the block and net drivers, and any lingering users of `to_buf` could be fixed up easily.

-Anil
_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Wed Jan 20 03:27:12 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 20 Jan 2016 03:27:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aLjQO-0004hN-GF; Wed, 20 Jan 2016 03:27:12 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <anil@recoil.org>) id 1aLjQM-0004hH-Ag
	for mirageos-devel@lists.xenproject.org; Wed, 20 Jan 2016 03:27:10 +0000
Received: from [193.109.254.147] by server-2.bemta-14.messagelabs.com id
	F9/65-12889-D8EFE965; Wed, 20 Jan 2016 03:27:09 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-3.tower-27.messagelabs.com!1453260428!17694145!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=1.2 required=7.0 tests=DATE_IN_PAST_03_06,
	MAILTO_TO_SPAM_ADDR,RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 20252 invoked from network); 20 Jan 2016 03:27:08 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-3.tower-27.messagelabs.com with DHE-RSA-AES256-GCM-SHA384
	encrypted SMTP; 20 Jan 2016 03:27:08 -0000
Received: from bark.recoil.org (localhost [127.0.0.1])
	by bark.recoil.org (OpenSMTPD) with ESMTP id 8a58d239;
	Wed, 20 Jan 2016 03:27:08 +0000 (GMT)
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=recoil.org; h=content-type
	:mime-version:subject:from:in-reply-to:date:cc
	:content-transfer-encoding:message-id:references:to; s=
	selector1; bh=+9+21XIfk5VLbR/+J3lOCgzavYY=; b=JYL+aUORMEmQ7ZbM6n
	Pnb4OJhw58OULoZji9+uzCYs9dOyfYkiFGdkgK1YZM+Y9cwjYpWqPH3JM0UQ3M70
	p3bkONn/n6onNnkvPoxEOkoWdPdwVOYnHZ4inwiipO4AUJkpol8Aoro4cX0DLq5r
	b2oVKWl3XtfXClJGh9lUtzmvw=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=recoil.org; h=content-type
	:mime-version:subject:from:in-reply-to:date:cc
	:content-transfer-encoding:message-id:references:to; q=dns; s=
	selector1; b=JWGCgaA3UDyAqQE++wWsqj7pSLuaYoyWXBTXwWbmg9llOlIJfBv
	21r1wh7WDgFGus4v3OX23qZrClskCYA6gh2HBXPd9MWIkJoVI32aqYbJ02WYO7E4
	5HGXlScdUWpEidh/0rCMUJ/7Mqh2HW6cFhlLQKVj0t88ekK5fNAwS15M=
Received: by bark.recoil.org (OpenSMTPD) with ESMTPSA id 0dcba9fe
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Wed, 20 Jan 2016 03:27:08 +0000 (GMT)
Mime-Version: 1.0 (Mac OS X Mail 9.1 \(3096.5\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <7B62EA03-7B91-41BA-8963-29D45F4D6D46@internetmachines.co.uk>
Date: Tue, 19 Jan 2016 22:43:17 +0000
Message-Id: <00623E9F-12F1-4391-8A67-305AB2DF4A27@recoil.org>
References: <20151109113322.GY3006@annexia.org>
	<75B08AC5-B781-4998-9A72-C5A8C214BD2F@recoil.org>
	<396AD0C1-31B4-4DA2-BF09-421AB8DFD455@recoil.org>
	<5643D916.6040205@luminar.eu.org>
	<7C85D096-40CA-42DD-B408-0EC9E066DAE8@cam.ac.uk>
	<5C54DF5F-52FE-45D1-A885-CE4FF3B6DF49@recoil.org>
	<5644FFCC.6030009@gmx.net>
	<CAK4o1WwH77KRCpCq9v7CUH8dQDfioGpbTR_JQ3xCv1coquUmfg@mail.gmail.com>
	<7B62EA03-7B91-41BA-8963-29D45F4D6D46@internetmachines.co.uk>
To: Nick Hardiman <nick@internetmachines.co.uk>
X-Mailer: Apple Mail (2.3096.5)
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Hardware choices for ARM64
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

VGhlcmUncyBiZWVuIHNvbWUgcHJvZ3Jlc3Mgb24gZmluZGluZyBBUk02NCBob3N0aW5nIG9ubGlu
ZSBub3cuICBKdXN0aW4gZm91bmQgb25lIHRoYXQgaGUgc2VlbXMgdG8gYmUgdXNpbmcgc3VjY2Vz
c2Z1bGx5IChpZiBzbG93bHkpLi4uIHdobyBpcyB0aGUgcHJvdmlkZXI/CgpJIGRvbid0IGZpbmQg
dGhhdCBBUk0gaXMgcGFydGljdWxhcmx5IGJlbmVmaWNpYWwgZm9yIG9ubGluZSBob3N0aW5nIG91
dHNpZGUgb2YgaGF2aW5nIGEgY29udmVuaWVudCBidWlsZCBib3ggdG8gZ2VuZXJhdGUgYmluYXJp
ZXMgb3IgRG9ja2VyIGNvbnRhaW5lcnMgZm9yIG15IEN1YmllYm9hcmQgYW5kIG90aGVyIGxvY2Fs
IEFSTSBkZXZpY2VzLiAgSXQncyB2ZXJ5IGNvbnZlbmllbnQgZm9yIHRoYXQgdGhvdWdoLi4uCgpB
bmlsCgo+IE9uIDI3IE5vdiAyMDE1LCBhdCAxNToyOCwgTmljayBIYXJkaW1hbiA8bmlja0BpbnRl
cm5ldG1hY2hpbmVzLmNvLnVrPiB3cm90ZToKPiAKPiBJ4oCZdmUgYmVlbiB0dXJuaW5nIG92ZXIg
c29tZSBpZGVhcy4gSSByZWFkIGFib3V0IHRoZSB2aXJ0dWFsaXphdGlvbiBwcm9ibGVtIG9uIGh0
dHBzOi8vd3d3LnNjYWxld2F5LmNvbS8uCj4gaHR0cHM6Ly9naXRodWIuY29tL3NjYWxld2F5L2tl
cm5lbC10b29scy9pc3N1ZXMvMTQjaXNzdWVjb21tZW50LTEwNTUzNjI3Ngo+IAo+IEhvdyB1c2Vm
dWwgd291bGQgSW50ZXJuZXQgaG9zdGluZyBvbiBBUk0gYmFyZSBtZXRhbCBiZT8gV2hhdOKAmXMg
YW4gYXR0cmFjdGl2ZSB0ZWNoIHN0YWNrPwo+IAo+IAo+IAo+PiBPbiAxMyBOb3YgMjAxNSwgYXQg
MTE6MjksIEp1c3RpbiBDb3JtYWNrIDxqdXN0aW5Ac3BlY2lhbGJ1c3NlcnZpY2UuY29tPiB3cm90
ZToKPj4gCj4+IFRoZSBtYWluIHBlcmZvcm1hbmNlIHRoaW5nIGlzIHVzaW5nIGFuIGV4dGVybmFs
IFNBVEEgU1NELCByYXRoZXIgdGhhbgo+PiBvbmJvYXJkIGZsYXNoIHdoaWNoIGlzIHVzdWFsbHkg
ZXh0cmVtZWx5IHNsb3cuIFRoZSBDdWJpZXRydWNrcyBhcmUKPj4gcmVhc29uYWJsZSBmb3IgdGhp
cy4KPj4gCj4+IEp1c3Rpbgo+PiAKPj4gCj4+IE9uIDEyIE5vdmVtYmVyIDIwMTUgYXQgMjE6MDgs
IFN0ZWZhbiBYZW5vbiA8c3RlZmFueGVAZ214Lm5ldD4gd3JvdGU6Cj4+PiBIaSEKPj4+IEFzIGEg
bmV3YmllIEknbSBhIGJpdCBjb25mdXNlZCB3aGljaCBib2FyZHMgYW5kIENQVXMgd29yayB3aXRo
Cj4+PiBNaXJhZ2VPUy9YRU4uIEkgdW5kZXJzdG9vZCB3aGlsZSBBUk02NCBkb2Vzbid0IHdvcmsg
eWV0IChidXQgaXQKPj4+IHNob3VsZG4ndCBiZSBhIGJpZyBkZWFsIHRvIGdldCBpdCBydW5uaW5n
KSBpbnN0ZWFkIEFSTTMyIGlzIHRoZSBvbmx5Cj4+PiBhcmNoaXRlY3R1cmUgc3VwcG9ydGVkLiBP
YnZpb3VzbHkgQ3ViaWVib2FyZDIgd29ya3MgYnV0IEkgY291bGRuJ3QgZmluZAo+Pj4gaW5mb3Jt
YXRpb24gYWJvdXQgb3RoZXIgc3VwcG9ydGVkIGRldmljZXMuIEluIHBhcnRpY3VsYXIgSSdtIGlu
dGVyZXN0ZWQKPj4+IGluIGZhc3RlciBkZXZpY2VzIHRoYW4gdGhlIEN1YmllYm9hcmQyLiBDb3Vs
ZCBhbnlib2R5IGxpc3Qgb3RoZXIgd29ya2luZwo+Pj4gYm9hcmRzIGFuZCBzdW1tYXJpemUgdGhl
IHJlcXVpcmVtZW50cyB0byBsb29rIGZvcj8KPj4+IAo+Pj4gVGhhbmtzIGEgbG90Lgo+Pj4gCj4+
PiBBbSAxMi4xMS4yMDE1IHVtIDE0OjQyIHNjaHJpZWIgQW5pbCBNYWRoYXZhcGVkZHk6Cj4+Pj4g
Cj4+Pj4+IE9uIDEyIE5vdiAyMDE1LCBhdCAxMTo0MywgQW1pciBDaGF1ZGhyeSA8YW1jNzlAY2Ft
LmFjLnVrPiB3cm90ZToKPj4+Pj4gCj4+Pj4+PiAKPj4+Pj4+IE9uIDEyIE5vdiAyMDE1LCBhdCAw
MDoxMSwgVmluY2VudCBCZXJuYXJkb2ZmIDx2YkBsdW1pbmFyLmV1Lm9yZz4gd3JvdGU6Cj4+Pj4+
PiAKPj4+Pj4+IE9uIDA5LzExLzIwMTUgMTU6MjEsIEFuaWwgTWFkaGF2YXBlZGR5IHdyb3RlOgo+
Pj4+Pj4+IEp1c3QgZnlpLCBJIGFsc28gZ290IGFub3RoZXIgb2ZmLWxpc3QgcmVwbHkgcG9pbnRp
bmcgdG86Cj4+Pj4+Pj4gCj4+Pj4+Pj4+IFRoZSBnaWdhYnl0ZSBNUDMwLUFSMCBib2FyZHMgYXJl
IG5pY2UgYW5kIHZlcnkgYWZmb3JkYWJsZToKPj4+Pj4+Pj4gCj4+Pj4+Pj4+IGh0dHA6Ly9iMmIu
Z2lnYWJ5dGUuY29tL3Byb2R1Y3RzL3Byb2R1Y3QtcGFnZS5hc3B4P3BpZD01NDIyI292Cj4+Pj4+
Pj4+IAo+Pj4+Pj4+PiBpbmNsdWRlcyB0aGUgWC1nZW5lIDEgcHJvY2Vzc29yLiBUaGV5IGNvc3Qg
YXJvdW5kICQ3MDAKPj4+Pj4+PiAKPj4+Pj4+PiAtYW5pbAo+Pj4+Pj4gCj4+Pj4+PiAKPj4+Pj4+
IEZZSSwgZnJlbmNoIHByb3ZpZGVyIG9ubGluZS5uZXQgaGFzIHJlbGVhc2VkIGh0dHBzOi8vd3d3
LnNjYWxld2F5LmNvbSwgYQo+Pj4+Pj4gZGVkaWNhdGVkIGFybSBzZXJ2ZXJzIC8gY2xvdWQgb2Zm
ZXIuCj4+Pj4+PiAKPj4+Pj4+IEl0IGlzIHBlcmhhcHMgcG9zc2libGUgdG8gcnVuIE1pcmFnZSBv
biB0aG9zZeKApgo+Pj4+PiAKPj4+Pj4gV2UgZGlkIGV4cGxvcmUgdGhpcyBidXQgdW5mb3J0dW5h
dGVseSB0aGVyZSB3YXMgYSBoYXJkd2FyZSBsaW1pdGF0aW9uLgo+Pj4+PiAKPj4+Pj4gaHR0cHM6
Ly9naXRodWIuY29tL3NjYWxld2F5L2tlcm5lbC10b29scy9pc3N1ZXMvMTQjaXNzdWVjb21tZW50
LTEwNTUzNjI3Ngo+Pj4+IAo+Pj4+IFhlbiBkb2Vzbid0IHJ1biBvbiB0aGVyZSByaWdodCBub3cg
LS0gYW5vdGhlciBvcHRpb24gaXMgdGhhdCBvbmNlIHRoZSBSdW1wL01pcmFnZSBody9IVk0gYmFj
a2VuZCBnZXRzIG1vcmUgbWF0dXJlIG5hdGl2ZSBBUk0gc3VwcG9ydCwgd2Ugc2hvdWxkIGJlIGFi
bGUgdG8gYm9vdCBkaXJlY3RseSBvbiB0aGUgU2NhbGV3YXkgQzFzIGFzIGJhcmUgbWV0YWwuCj4+
Pj4gCj4+Pj4gQW5pbAo+Pj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fCj4+Pj4gTWlyYWdlT1MtZGV2ZWwgbWFpbGluZyBsaXN0Cj4+Pj4gTWlyYWdlT1Mt
ZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKPj4+PiBodHRwOi8vbGlzdHMueGVucHJvamVjdC5v
cmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL21pcmFnZW9zLWRldmVsCj4+Pj4gCj4+PiAKPj4+
IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4+PiBNaXJh
Z2VPUy1kZXZlbCBtYWlsaW5nIGxpc3QKPj4+IE1pcmFnZU9TLWRldmVsQGxpc3RzLnhlbnByb2pl
Y3Qub3JnCj4+PiBodHRwOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xp
c3RpbmZvL21pcmFnZW9zLWRldmVsCj4+IAo+PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fXwo+PiBNaXJhZ2VPUy1kZXZlbCBtYWlsaW5nIGxpc3QKPj4gTWly
YWdlT1MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKPj4gaHR0cDovL2xpc3RzLnhlbnByb2pl
Y3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9taXJhZ2Vvcy1kZXZlbAo+IAo+IF9fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gTWlyYWdlT1MtZGV2
ZWwgbWFpbGluZyBsaXN0Cj4gTWlyYWdlT1MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKPiBo
dHRwOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL21pcmFn
ZW9zLWRldmVsCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X18KTWlyYWdlT1MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1pcmFnZU9TLWRldmVsQGxpc3RzLnhlbnBy
b2plY3Qub3JnCmh0dHA6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlz
dGluZm8vbWlyYWdlb3MtZGV2ZWwK

From mirageos-devel-bounces@lists.xenproject.org Wed Jan 20 03:27:12 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 20 Jan 2016 03:27:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aLjQO-0004hN-GF; Wed, 20 Jan 2016 03:27:12 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <anil@recoil.org>) id 1aLjQM-0004hH-Ag
	for mirageos-devel@lists.xenproject.org; Wed, 20 Jan 2016 03:27:10 +0000
Received: from [193.109.254.147] by server-2.bemta-14.messagelabs.com id
	F9/65-12889-D8EFE965; Wed, 20 Jan 2016 03:27:09 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-3.tower-27.messagelabs.com!1453260428!17694145!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=1.2 required=7.0 tests=DATE_IN_PAST_03_06,
	MAILTO_TO_SPAM_ADDR,RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 20252 invoked from network); 20 Jan 2016 03:27:08 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-3.tower-27.messagelabs.com with DHE-RSA-AES256-GCM-SHA384
	encrypted SMTP; 20 Jan 2016 03:27:08 -0000
Received: from bark.recoil.org (localhost [127.0.0.1])
	by bark.recoil.org (OpenSMTPD) with ESMTP id 8a58d239;
	Wed, 20 Jan 2016 03:27:08 +0000 (GMT)
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=recoil.org; h=content-type
	:mime-version:subject:from:in-reply-to:date:cc
	:content-transfer-encoding:message-id:references:to; s=
	selector1; bh=+9+21XIfk5VLbR/+J3lOCgzavYY=; b=JYL+aUORMEmQ7ZbM6n
	Pnb4OJhw58OULoZji9+uzCYs9dOyfYkiFGdkgK1YZM+Y9cwjYpWqPH3JM0UQ3M70
	p3bkONn/n6onNnkvPoxEOkoWdPdwVOYnHZ4inwiipO4AUJkpol8Aoro4cX0DLq5r
	b2oVKWl3XtfXClJGh9lUtzmvw=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=recoil.org; h=content-type
	:mime-version:subject:from:in-reply-to:date:cc
	:content-transfer-encoding:message-id:references:to; q=dns; s=
	selector1; b=JWGCgaA3UDyAqQE++wWsqj7pSLuaYoyWXBTXwWbmg9llOlIJfBv
	21r1wh7WDgFGus4v3OX23qZrClskCYA6gh2HBXPd9MWIkJoVI32aqYbJ02WYO7E4
	5HGXlScdUWpEidh/0rCMUJ/7Mqh2HW6cFhlLQKVj0t88ekK5fNAwS15M=
Received: by bark.recoil.org (OpenSMTPD) with ESMTPSA id 0dcba9fe
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Wed, 20 Jan 2016 03:27:08 +0000 (GMT)
Mime-Version: 1.0 (Mac OS X Mail 9.1 \(3096.5\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <7B62EA03-7B91-41BA-8963-29D45F4D6D46@internetmachines.co.uk>
Date: Tue, 19 Jan 2016 22:43:17 +0000
Message-Id: <00623E9F-12F1-4391-8A67-305AB2DF4A27@recoil.org>
References: <20151109113322.GY3006@annexia.org>
	<75B08AC5-B781-4998-9A72-C5A8C214BD2F@recoil.org>
	<396AD0C1-31B4-4DA2-BF09-421AB8DFD455@recoil.org>
	<5643D916.6040205@luminar.eu.org>
	<7C85D096-40CA-42DD-B408-0EC9E066DAE8@cam.ac.uk>
	<5C54DF5F-52FE-45D1-A885-CE4FF3B6DF49@recoil.org>
	<5644FFCC.6030009@gmx.net>
	<CAK4o1WwH77KRCpCq9v7CUH8dQDfioGpbTR_JQ3xCv1coquUmfg@mail.gmail.com>
	<7B62EA03-7B91-41BA-8963-29D45F4D6D46@internetmachines.co.uk>
To: Nick Hardiman <nick@internetmachines.co.uk>
X-Mailer: Apple Mail (2.3096.5)
Cc: mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] Hardware choices for ARM64
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

VGhlcmUncyBiZWVuIHNvbWUgcHJvZ3Jlc3Mgb24gZmluZGluZyBBUk02NCBob3N0aW5nIG9ubGlu
ZSBub3cuICBKdXN0aW4gZm91bmQgb25lIHRoYXQgaGUgc2VlbXMgdG8gYmUgdXNpbmcgc3VjY2Vz
c2Z1bGx5IChpZiBzbG93bHkpLi4uIHdobyBpcyB0aGUgcHJvdmlkZXI/CgpJIGRvbid0IGZpbmQg
dGhhdCBBUk0gaXMgcGFydGljdWxhcmx5IGJlbmVmaWNpYWwgZm9yIG9ubGluZSBob3N0aW5nIG91
dHNpZGUgb2YgaGF2aW5nIGEgY29udmVuaWVudCBidWlsZCBib3ggdG8gZ2VuZXJhdGUgYmluYXJp
ZXMgb3IgRG9ja2VyIGNvbnRhaW5lcnMgZm9yIG15IEN1YmllYm9hcmQgYW5kIG90aGVyIGxvY2Fs
IEFSTSBkZXZpY2VzLiAgSXQncyB2ZXJ5IGNvbnZlbmllbnQgZm9yIHRoYXQgdGhvdWdoLi4uCgpB
bmlsCgo+IE9uIDI3IE5vdiAyMDE1LCBhdCAxNToyOCwgTmljayBIYXJkaW1hbiA8bmlja0BpbnRl
cm5ldG1hY2hpbmVzLmNvLnVrPiB3cm90ZToKPiAKPiBJ4oCZdmUgYmVlbiB0dXJuaW5nIG92ZXIg
c29tZSBpZGVhcy4gSSByZWFkIGFib3V0IHRoZSB2aXJ0dWFsaXphdGlvbiBwcm9ibGVtIG9uIGh0
dHBzOi8vd3d3LnNjYWxld2F5LmNvbS8uCj4gaHR0cHM6Ly9naXRodWIuY29tL3NjYWxld2F5L2tl
cm5lbC10b29scy9pc3N1ZXMvMTQjaXNzdWVjb21tZW50LTEwNTUzNjI3Ngo+IAo+IEhvdyB1c2Vm
dWwgd291bGQgSW50ZXJuZXQgaG9zdGluZyBvbiBBUk0gYmFyZSBtZXRhbCBiZT8gV2hhdOKAmXMg
YW4gYXR0cmFjdGl2ZSB0ZWNoIHN0YWNrPwo+IAo+IAo+IAo+PiBPbiAxMyBOb3YgMjAxNSwgYXQg
MTE6MjksIEp1c3RpbiBDb3JtYWNrIDxqdXN0aW5Ac3BlY2lhbGJ1c3NlcnZpY2UuY29tPiB3cm90
ZToKPj4gCj4+IFRoZSBtYWluIHBlcmZvcm1hbmNlIHRoaW5nIGlzIHVzaW5nIGFuIGV4dGVybmFs
IFNBVEEgU1NELCByYXRoZXIgdGhhbgo+PiBvbmJvYXJkIGZsYXNoIHdoaWNoIGlzIHVzdWFsbHkg
ZXh0cmVtZWx5IHNsb3cuIFRoZSBDdWJpZXRydWNrcyBhcmUKPj4gcmVhc29uYWJsZSBmb3IgdGhp
cy4KPj4gCj4+IEp1c3Rpbgo+PiAKPj4gCj4+IE9uIDEyIE5vdmVtYmVyIDIwMTUgYXQgMjE6MDgs
IFN0ZWZhbiBYZW5vbiA8c3RlZmFueGVAZ214Lm5ldD4gd3JvdGU6Cj4+PiBIaSEKPj4+IEFzIGEg
bmV3YmllIEknbSBhIGJpdCBjb25mdXNlZCB3aGljaCBib2FyZHMgYW5kIENQVXMgd29yayB3aXRo
Cj4+PiBNaXJhZ2VPUy9YRU4uIEkgdW5kZXJzdG9vZCB3aGlsZSBBUk02NCBkb2Vzbid0IHdvcmsg
eWV0IChidXQgaXQKPj4+IHNob3VsZG4ndCBiZSBhIGJpZyBkZWFsIHRvIGdldCBpdCBydW5uaW5n
KSBpbnN0ZWFkIEFSTTMyIGlzIHRoZSBvbmx5Cj4+PiBhcmNoaXRlY3R1cmUgc3VwcG9ydGVkLiBP
YnZpb3VzbHkgQ3ViaWVib2FyZDIgd29ya3MgYnV0IEkgY291bGRuJ3QgZmluZAo+Pj4gaW5mb3Jt
YXRpb24gYWJvdXQgb3RoZXIgc3VwcG9ydGVkIGRldmljZXMuIEluIHBhcnRpY3VsYXIgSSdtIGlu
dGVyZXN0ZWQKPj4+IGluIGZhc3RlciBkZXZpY2VzIHRoYW4gdGhlIEN1YmllYm9hcmQyLiBDb3Vs
ZCBhbnlib2R5IGxpc3Qgb3RoZXIgd29ya2luZwo+Pj4gYm9hcmRzIGFuZCBzdW1tYXJpemUgdGhl
IHJlcXVpcmVtZW50cyB0byBsb29rIGZvcj8KPj4+IAo+Pj4gVGhhbmtzIGEgbG90Lgo+Pj4gCj4+
PiBBbSAxMi4xMS4yMDE1IHVtIDE0OjQyIHNjaHJpZWIgQW5pbCBNYWRoYXZhcGVkZHk6Cj4+Pj4g
Cj4+Pj4+IE9uIDEyIE5vdiAyMDE1LCBhdCAxMTo0MywgQW1pciBDaGF1ZGhyeSA8YW1jNzlAY2Ft
LmFjLnVrPiB3cm90ZToKPj4+Pj4gCj4+Pj4+PiAKPj4+Pj4+IE9uIDEyIE5vdiAyMDE1LCBhdCAw
MDoxMSwgVmluY2VudCBCZXJuYXJkb2ZmIDx2YkBsdW1pbmFyLmV1Lm9yZz4gd3JvdGU6Cj4+Pj4+
PiAKPj4+Pj4+IE9uIDA5LzExLzIwMTUgMTU6MjEsIEFuaWwgTWFkaGF2YXBlZGR5IHdyb3RlOgo+
Pj4+Pj4+IEp1c3QgZnlpLCBJIGFsc28gZ290IGFub3RoZXIgb2ZmLWxpc3QgcmVwbHkgcG9pbnRp
bmcgdG86Cj4+Pj4+Pj4gCj4+Pj4+Pj4+IFRoZSBnaWdhYnl0ZSBNUDMwLUFSMCBib2FyZHMgYXJl
IG5pY2UgYW5kIHZlcnkgYWZmb3JkYWJsZToKPj4+Pj4+Pj4gCj4+Pj4+Pj4+IGh0dHA6Ly9iMmIu
Z2lnYWJ5dGUuY29tL3Byb2R1Y3RzL3Byb2R1Y3QtcGFnZS5hc3B4P3BpZD01NDIyI292Cj4+Pj4+
Pj4+IAo+Pj4+Pj4+PiBpbmNsdWRlcyB0aGUgWC1nZW5lIDEgcHJvY2Vzc29yLiBUaGV5IGNvc3Qg
YXJvdW5kICQ3MDAKPj4+Pj4+PiAKPj4+Pj4+PiAtYW5pbAo+Pj4+Pj4gCj4+Pj4+PiAKPj4+Pj4+
IEZZSSwgZnJlbmNoIHByb3ZpZGVyIG9ubGluZS5uZXQgaGFzIHJlbGVhc2VkIGh0dHBzOi8vd3d3
LnNjYWxld2F5LmNvbSwgYQo+Pj4+Pj4gZGVkaWNhdGVkIGFybSBzZXJ2ZXJzIC8gY2xvdWQgb2Zm
ZXIuCj4+Pj4+PiAKPj4+Pj4+IEl0IGlzIHBlcmhhcHMgcG9zc2libGUgdG8gcnVuIE1pcmFnZSBv
biB0aG9zZeKApgo+Pj4+PiAKPj4+Pj4gV2UgZGlkIGV4cGxvcmUgdGhpcyBidXQgdW5mb3J0dW5h
dGVseSB0aGVyZSB3YXMgYSBoYXJkd2FyZSBsaW1pdGF0aW9uLgo+Pj4+PiAKPj4+Pj4gaHR0cHM6
Ly9naXRodWIuY29tL3NjYWxld2F5L2tlcm5lbC10b29scy9pc3N1ZXMvMTQjaXNzdWVjb21tZW50
LTEwNTUzNjI3Ngo+Pj4+IAo+Pj4+IFhlbiBkb2Vzbid0IHJ1biBvbiB0aGVyZSByaWdodCBub3cg
LS0gYW5vdGhlciBvcHRpb24gaXMgdGhhdCBvbmNlIHRoZSBSdW1wL01pcmFnZSBody9IVk0gYmFj
a2VuZCBnZXRzIG1vcmUgbWF0dXJlIG5hdGl2ZSBBUk0gc3VwcG9ydCwgd2Ugc2hvdWxkIGJlIGFi
bGUgdG8gYm9vdCBkaXJlY3RseSBvbiB0aGUgU2NhbGV3YXkgQzFzIGFzIGJhcmUgbWV0YWwuCj4+
Pj4gCj4+Pj4gQW5pbAo+Pj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fCj4+Pj4gTWlyYWdlT1MtZGV2ZWwgbWFpbGluZyBsaXN0Cj4+Pj4gTWlyYWdlT1Mt
ZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKPj4+PiBodHRwOi8vbGlzdHMueGVucHJvamVjdC5v
cmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL21pcmFnZW9zLWRldmVsCj4+Pj4gCj4+PiAKPj4+
IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4+PiBNaXJh
Z2VPUy1kZXZlbCBtYWlsaW5nIGxpc3QKPj4+IE1pcmFnZU9TLWRldmVsQGxpc3RzLnhlbnByb2pl
Y3Qub3JnCj4+PiBodHRwOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xp
c3RpbmZvL21pcmFnZW9zLWRldmVsCj4+IAo+PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fXwo+PiBNaXJhZ2VPUy1kZXZlbCBtYWlsaW5nIGxpc3QKPj4gTWly
YWdlT1MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKPj4gaHR0cDovL2xpc3RzLnhlbnByb2pl
Y3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9taXJhZ2Vvcy1kZXZlbAo+IAo+IF9fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gTWlyYWdlT1MtZGV2
ZWwgbWFpbGluZyBsaXN0Cj4gTWlyYWdlT1MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKPiBo
dHRwOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL21pcmFn
ZW9zLWRldmVsCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X18KTWlyYWdlT1MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1pcmFnZU9TLWRldmVsQGxpc3RzLnhlbnBy
b2plY3Qub3JnCmh0dHA6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlz
dGluZm8vbWlyYWdlb3MtZGV2ZWwK

From mirageos-devel-bounces@lists.xenproject.org Mon Jan 25 12:48:24 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 25 Jan 2016 12:48:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aNgZ5-0002oC-Dr; Mon, 25 Jan 2016 12:48:15 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <martin@lucina.net>) id 1aNgZ3-0002o3-GN
	for mirageos-devel@lists.xenproject.org; Mon, 25 Jan 2016 12:48:13 +0000
Received: from [85.158.139.211] by server-7.bemta-5.messagelabs.com id
	6A/CD-13905-C8916A65; Mon, 25 Jan 2016 12:48:12 +0000
X-Env-Sender: martin@lucina.net
X-Msg-Ref: server-15.tower-206.messagelabs.com!1453726091!9542752!1
X-Originating-IP: [62.176.169.44]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 36335 invoked from network); 25 Jan 2016 12:48:12 -0000
Received: from smtp.lucina.net (HELO smtp.lucina.net) (62.176.169.44)
	by server-15.tower-206.messagelabs.com with DHE-RSA-AES256-GCM-SHA384
	encrypted SMTP; 25 Jan 2016 12:48:12 -0000
Received: from nodbug.lucina.net (chello089173222227.chello.sk
	[89.173.222.227])
	by smtp.lucina.net (Postfix) with ESMTPSA id A441F122801;
	Mon, 25 Jan 2016 13:46:29 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=lucina.net;
	s=dkim-201309; t=1453725989;
	bh=GZl8kyjPfjFUJTbrjlHcmkoh76yHs+6Ho0eNrtVQH/g=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=CW/HSdiWwLb1gw5ah2nupaKGTd8dEMQE5lZtu4OUN3wy30Wr8S2vKMggKLJSwqFy/
	H5rv3Zf84TQDlh6TKJ4FIZoQBlfcGC7/a+JuquULXBkxqTrSa6CjCLnw6BJIdaETDS
	UyLtutoCqvvsVTp8nkt3PARepVfrWeidRhSvdWVmWvMUR6SKHVtfK4jZNYs5GKwUol
	S3Lc1L5oGLTWRTiF7A11DIuVk+PxntlJlp5mto5rgNSsRZkV2cz3h6LRSG9h8rMoTi
	7g7/T0QxhkNXTRd26H1LOhNDqBFHk3wy8C96+OT/3NKikBwTYBMaXij+qp2HWdO+vp
	G5NhvkZfai6mA==
Received: by nodbug.lucina.net (Postfix, from userid 1000)
	id B29C24C0F38; Mon, 25 Jan 2016 13:48:11 +0100 (CET)
Date: Mon, 25 Jan 2016 13:48:11 +0100
From: Martin Lucina <martin@lucina.net>
To: Anil Madhavapeddy <anil@recoil.org>
Message-ID: <20160125124811.GF32307@nodbug.lucina.net>
Mail-Followup-To: Anil Madhavapeddy <anil@recoil.org>,
	rumpkernel-users <rumpkernel-users@freelists.org>,
	mirageos-devel <mirageos-devel@lists.xenproject.org>
References: <20151221142552.GA5387@nodbug.lucina.net> <567FC653.9060605@iki.fi>
	<20151227191025.GA10060@nodbug.lucina.net>
	<56853624.2080802@iki.fi> <20160104121514.GB906@nodbug.lucina.net>
	<9FD6403E-920C-44BE-AAE2-976B14D200A4@recoil.org>
MIME-Version: 1.0
Content-Length: 4205
Content-Disposition: inline
In-Reply-To: <9FD6403E-920C-44BE-AAE2-976B14D200A4@recoil.org>
User-Agent: Mutt/1.5.23 (2014-03-12)
Cc: rumpkernel-users <rumpkernel-users@freelists.org>,
	mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] [RFC/PULL]: Rumprun configuration
	specification and rototill
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On Monday, 04.01.2016 at=A012:27, Anil Madhavapeddy wrote:
> On 4 Jan 2016, at 12:15, Martin Lucina <martin@lucina.net> wrote:
> > =

> > If I have a Mirage/Rumprun hybrid unikernel (whether using -k or not,
> > irrelevant) and I would like Rumprun to mount some block devices, but
> > Mirage to handle the network stack, can I express this using a single
> > JSON configuration?
> > =

> > I've not thought about this enough, but it would seem to imply that Rum=
prun
> > config would handle "fs", but not "net", which would be passed to Mirage
> > somehow. A strawman of how this could work:
> > =

> > 1) We would need to specify the method that rumprun uses to pass the
> > configuration on to the application. This could be as simple as writing=
 it
> > out to "/config.json".
> > =

> > 2) In a hybrid unikernel as described above, presumably -lrumpnet_netin=
et
> > and -lrumpnet_netinet6 would not be linked in. This would have to be
> > exposed to config.c somehow (through a data structure with a list of
> > baked-in components at rumprun-bake time?), and on this basis (no netin=
et),
> > config.c would not handle those parts of the configuration.
> > =

> > I may be completely off on the wrong track here -- would appreciate inp=
ut
> > from the Mirage (and other?) unikernel folks on this list. This would a=
lso
> > be a good discussion to have on the "cross-project" unikernel.org once =
the
> > discourse.org setup there is complete.
> =

> It sounds to me like this is a map function over the configuration: you
> want to pass the JSON tree to a function that descends over the various
> nodes that convert the configuration into a concrete (device_tree,linker)
> tuple.
> =

> The output of this could then grabbed by the linker or domain builder in
> order to satisfy their particular jobs.  Bear in mind that Mirage or
> HalVM may also want their own linking flags that are OCaml- or Haskell-
> specific as well.
> =

> So if Mirage provided a set of command-line binaries that accepted
> a JSON configuration fragment for just the network and storage setup,
> and rumprun have the ability to shell out to them to delegate a portion
> of the configuration, that might be a nice way to glue different toolchai=
ns
> together...?
> =

> (Assuming I've understood rumprun's role in this correctly as the main
> entrypoint command).

That [rumprun's role as main entrypoint command, which also happens to do
config parsing and application] is currently correct.  However, in the case
of hybrid Rump/X unikernels, and indeed also in the case of gorump or other
future users of kernonly mode I'm not convinced that there should be a
(rumprun-provided) configuration parser/executor at all.

If there is a "main entrypoint", akin to a "/sbin/init", which is
responsible for parsing and applying the configuration, then it becomes
hard to delegate parts of that configuration to other layers.
Conceptually, as you wrote, it is just a map function. However that map
function would need to know:

  a) Which components are present in the unikernel as a whole.
  b) Which of those components are to be configured by the (rumprun-provide=
d) config layer.
  c) Which of those components are to be configured by the (from rumprun's
  PoV) application layers.
  d) We would also need to define an interface for c).

Thinking about it, this means we have the layering wrong. It seems to me
that we need an extra split:

  1) A config library with a C API to apply the various bits of
  configuration.
  2) The configuration parser / "main entrypoint" which is a client of 1).

Now, rumprun unikernels which run full libc applications get 1) and 2),
i.e. more or less what we have today.

In the case of kernonly/Mirage/other hybrids, it would be the
responsibility of the (non-rumprun-provided) "main entrypoint") to provide
a 2) compliant with the spec and call out to 1) for those rump kernel
components it wants to configure.

Thoughts? I realise this is a bit handwavy, but it's the best idea I have
so far.
 =


_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Mon Jan 25 12:48:24 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 25 Jan 2016 12:48:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aNgZ5-0002oC-Dr; Mon, 25 Jan 2016 12:48:15 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <martin@lucina.net>) id 1aNgZ3-0002o3-GN
	for mirageos-devel@lists.xenproject.org; Mon, 25 Jan 2016 12:48:13 +0000
Received: from [85.158.139.211] by server-7.bemta-5.messagelabs.com id
	6A/CD-13905-C8916A65; Mon, 25 Jan 2016 12:48:12 +0000
X-Env-Sender: martin@lucina.net
X-Msg-Ref: server-15.tower-206.messagelabs.com!1453726091!9542752!1
X-Originating-IP: [62.176.169.44]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 36335 invoked from network); 25 Jan 2016 12:48:12 -0000
Received: from smtp.lucina.net (HELO smtp.lucina.net) (62.176.169.44)
	by server-15.tower-206.messagelabs.com with DHE-RSA-AES256-GCM-SHA384
	encrypted SMTP; 25 Jan 2016 12:48:12 -0000
Received: from nodbug.lucina.net (chello089173222227.chello.sk
	[89.173.222.227])
	by smtp.lucina.net (Postfix) with ESMTPSA id A441F122801;
	Mon, 25 Jan 2016 13:46:29 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=lucina.net;
	s=dkim-201309; t=1453725989;
	bh=GZl8kyjPfjFUJTbrjlHcmkoh76yHs+6Ho0eNrtVQH/g=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=CW/HSdiWwLb1gw5ah2nupaKGTd8dEMQE5lZtu4OUN3wy30Wr8S2vKMggKLJSwqFy/
	H5rv3Zf84TQDlh6TKJ4FIZoQBlfcGC7/a+JuquULXBkxqTrSa6CjCLnw6BJIdaETDS
	UyLtutoCqvvsVTp8nkt3PARepVfrWeidRhSvdWVmWvMUR6SKHVtfK4jZNYs5GKwUol
	S3Lc1L5oGLTWRTiF7A11DIuVk+PxntlJlp5mto5rgNSsRZkV2cz3h6LRSG9h8rMoTi
	7g7/T0QxhkNXTRd26H1LOhNDqBFHk3wy8C96+OT/3NKikBwTYBMaXij+qp2HWdO+vp
	G5NhvkZfai6mA==
Received: by nodbug.lucina.net (Postfix, from userid 1000)
	id B29C24C0F38; Mon, 25 Jan 2016 13:48:11 +0100 (CET)
Date: Mon, 25 Jan 2016 13:48:11 +0100
From: Martin Lucina <martin@lucina.net>
To: Anil Madhavapeddy <anil@recoil.org>
Message-ID: <20160125124811.GF32307@nodbug.lucina.net>
Mail-Followup-To: Anil Madhavapeddy <anil@recoil.org>,
	rumpkernel-users <rumpkernel-users@freelists.org>,
	mirageos-devel <mirageos-devel@lists.xenproject.org>
References: <20151221142552.GA5387@nodbug.lucina.net> <567FC653.9060605@iki.fi>
	<20151227191025.GA10060@nodbug.lucina.net>
	<56853624.2080802@iki.fi> <20160104121514.GB906@nodbug.lucina.net>
	<9FD6403E-920C-44BE-AAE2-976B14D200A4@recoil.org>
MIME-Version: 1.0
Content-Length: 4205
Content-Disposition: inline
In-Reply-To: <9FD6403E-920C-44BE-AAE2-976B14D200A4@recoil.org>
User-Agent: Mutt/1.5.23 (2014-03-12)
Cc: rumpkernel-users <rumpkernel-users@freelists.org>,
	mirageos-devel <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] [RFC/PULL]: Rumprun configuration
	specification and rototill
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On Monday, 04.01.2016 at=A012:27, Anil Madhavapeddy wrote:
> On 4 Jan 2016, at 12:15, Martin Lucina <martin@lucina.net> wrote:
> > =

> > If I have a Mirage/Rumprun hybrid unikernel (whether using -k or not,
> > irrelevant) and I would like Rumprun to mount some block devices, but
> > Mirage to handle the network stack, can I express this using a single
> > JSON configuration?
> > =

> > I've not thought about this enough, but it would seem to imply that Rum=
prun
> > config would handle "fs", but not "net", which would be passed to Mirage
> > somehow. A strawman of how this could work:
> > =

> > 1) We would need to specify the method that rumprun uses to pass the
> > configuration on to the application. This could be as simple as writing=
 it
> > out to "/config.json".
> > =

> > 2) In a hybrid unikernel as described above, presumably -lrumpnet_netin=
et
> > and -lrumpnet_netinet6 would not be linked in. This would have to be
> > exposed to config.c somehow (through a data structure with a list of
> > baked-in components at rumprun-bake time?), and on this basis (no netin=
et),
> > config.c would not handle those parts of the configuration.
> > =

> > I may be completely off on the wrong track here -- would appreciate inp=
ut
> > from the Mirage (and other?) unikernel folks on this list. This would a=
lso
> > be a good discussion to have on the "cross-project" unikernel.org once =
the
> > discourse.org setup there is complete.
> =

> It sounds to me like this is a map function over the configuration: you
> want to pass the JSON tree to a function that descends over the various
> nodes that convert the configuration into a concrete (device_tree,linker)
> tuple.
> =

> The output of this could then grabbed by the linker or domain builder in
> order to satisfy their particular jobs.  Bear in mind that Mirage or
> HalVM may also want their own linking flags that are OCaml- or Haskell-
> specific as well.
> =

> So if Mirage provided a set of command-line binaries that accepted
> a JSON configuration fragment for just the network and storage setup,
> and rumprun have the ability to shell out to them to delegate a portion
> of the configuration, that might be a nice way to glue different toolchai=
ns
> together...?
> =

> (Assuming I've understood rumprun's role in this correctly as the main
> entrypoint command).

That [rumprun's role as main entrypoint command, which also happens to do
config parsing and application] is currently correct.  However, in the case
of hybrid Rump/X unikernels, and indeed also in the case of gorump or other
future users of kernonly mode I'm not convinced that there should be a
(rumprun-provided) configuration parser/executor at all.

If there is a "main entrypoint", akin to a "/sbin/init", which is
responsible for parsing and applying the configuration, then it becomes
hard to delegate parts of that configuration to other layers.
Conceptually, as you wrote, it is just a map function. However that map
function would need to know:

  a) Which components are present in the unikernel as a whole.
  b) Which of those components are to be configured by the (rumprun-provide=
d) config layer.
  c) Which of those components are to be configured by the (from rumprun's
  PoV) application layers.
  d) We would also need to define an interface for c).

Thinking about it, this means we have the layering wrong. It seems to me
that we need an extra split:

  1) A config library with a C API to apply the various bits of
  configuration.
  2) The configuration parser / "main entrypoint" which is a client of 1).

Now, rumprun unikernels which run full libc applications get 1) and 2),
i.e. more or less what we have today.

In the case of kernonly/Mirage/other hybrids, it would be the
responsibility of the (non-rumprun-provided) "main entrypoint") to provide
a 2) compliant with the spec and call out to 1) for those rump kernel
components it wants to configure.

Thoughts? I realise this is a bit handwavy, but it's the best idea I have
so far.
 =


_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Tue Jan 26 03:43:53 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 26 Jan 2016 03:43:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aNuXe-0004nR-Te; Tue, 26 Jan 2016 03:43:42 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <tim@gfxmonk.net>) id 1aNuXd-0004nM-6j
	for mirageos-devel@lists.xenproject.org; Tue, 26 Jan 2016 03:43:41 +0000
Received: from [85.158.137.68] by server-2.bemta-3.messagelabs.com id
	56/16-21201-C6BE6A65; Tue, 26 Jan 2016 03:43:40 +0000
X-Env-Sender: tim@gfxmonk.net
X-Msg-Ref: server-4.tower-31.messagelabs.com!1453779818!8453784!1
X-Originating-IP: [209.85.213.54]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 35719 invoked from network); 26 Jan 2016 03:43:39 -0000
Received: from mail-vk0-f54.google.com (HELO mail-vk0-f54.google.com)
	(209.85.213.54)
	by server-4.tower-31.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 26 Jan 2016 03:43:39 -0000
Received: by mail-vk0-f54.google.com with SMTP id n1so85185237vkb.3
	for <mirageos-devel@lists.xenproject.org>;
	Mon, 25 Jan 2016 19:43:39 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=gfxmonk-net.20150623.gappssmtp.com; s=20150623;
	h=mime-version:from:date:message-id:subject:to:content-type;
	bh=rLqO/BC+2mn6ZxMJQ55zU9wyCKBfDMY0gTAYRvf9q8c=;
	b=jK0xVpA4Sr6MOVM9fKLjNpO/sEJL8YRGbc5dxkZqtw7h15HgzcA37D5Gel9hzDfZFX
	slKtwVd5sTuWPr0jmvefaWmABzUi3Wr5VPsFUhsp5q0jLmlhGgftGmTJjExBaYUP+dyr
	quNYM1k8xSGQZd7sFQmUsL694EsYA3B5zxQ1VJdUC5o8n9gRdhdUgMVFCYti6zgTd0sn
	j0yI9Ou1Y6k91lzppzwm25KaTnhbMsmTIxEnNTQeARIb14jv7/Pvj9vF3mimiYx2/tXX
	+J6nxV0wnH+p3bFtWsaoaW6bATGYXdU6YdgXGpNAq/BMOu4xPfR5ZGtm76mAK5hMeZUe
	RBeQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:from:date:message-id:subject:to
	:content-type;
	bh=rLqO/BC+2mn6ZxMJQ55zU9wyCKBfDMY0gTAYRvf9q8c=;
	b=Vm36RbYp6sYunHG7ybRVtx5T0FiSWKMhrNMkTTzzTn+x1yIGu4JozCrD9MbtlWrXTQ
	s4HcgfkmjxLdzRHEVDGwNBjZQEEzd3ejkEcKFoO6P6sknCTsnTSH3e17Un2M70ZzxLRX
	jEwnSyYMc0VPqpcAAiOGJR8UIRXRTayAlJyCBNoIag1homTVkxqTL3+5CNxKAaubKAOV
	Nn9lV4ftBMYzVIhgMtiYrqmqTrSh3TKX/LTEa5C/JP5YwjMFXLm07ErRPXl/v13tr49n
	TLxQtQWxmSlci0r739oWw+rPBqaZ2TQX9lJ4IPYc2CT+QyuAcf6zUtDBkK//NZWCei9X
	yYhw==
X-Gm-Message-State: AG10YOQGf3XjHCyamF0hT9ovpMngM0Af9EI2ole7XtzKBrra3ijTZclISHtquIVdrRfjMA==
X-Received: by 10.31.151.11 with SMTP id z11mr13131833vkd.131.1453779818429;
	Mon, 25 Jan 2016 19:43:38 -0800 (PST)
Received: from mail-vk0-f53.google.com (mail-vk0-f53.google.com.
	[209.85.213.53]) by smtp.gmail.com with ESMTPSA id
	x194sm2762864vkd.3.2016.01.25.19.43.37
	for <mirageos-devel@lists.xenproject.org>
	(version=TLSv1/SSLv3 cipher=OTHER);
	Mon, 25 Jan 2016 19:43:37 -0800 (PST)
Received: by mail-vk0-f53.google.com with SMTP id e64so86058694vkg.0
	for <mirageos-devel@lists.xenproject.org>;
	Mon, 25 Jan 2016 19:43:37 -0800 (PST)
X-Received: by 10.31.149.78 with SMTP id x75mr13142411vkd.103.1453779817317;
	Mon, 25 Jan 2016 19:43:37 -0800 (PST)
MIME-Version: 1.0
Received: by 10.31.69.132 with HTTP; Mon, 25 Jan 2016 19:43:18 -0800 (PST)
From: Tim Cuthbertson <tim@gfxmonk.net>
Date: Tue, 26 Jan 2016 14:43:18 +1100
X-Gmail-Original-Message-ID: <CAC-LLDiU-j7rLLAhkP4EWkmRkb-qpK8kps5Vp3zeyy5c=ra5vA@mail.gmail.com>
Message-ID: <CAC-LLDiU-j7rLLAhkP4EWkmRkb-qpK8kps5Vp3zeyy5c=ra5vA@mail.gmail.com>
To: mirageos-devel@lists.xenproject.org
Subject: [MirageOS-devel] atomically writing persistent data in mirage
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

Hi all,

I've got a small HTTP service which runs both as a normal unix server
which I've slowly been porting to work on mirage as well. One factor I
haven't found a solution for yet is atomic FS operations.

The unix version relies on Unix.rename being atomic - I don't have
heavy storage needs, so I'm not worried about the performance of
writing a new file then renaming over the old one atomically. To get
things working with the existing code I implemented a crude `rename`
for mirage's FS backend, but obviously it is not atomic:

https://github.com/timbertson/passe/blob/a07ca8fe5a3a6fe0803df4765078749310c3df5c/src/mirage/unikernel.ml#L10

I believe that irmin does various things atomically, but my needs are
simple enough that converting my simple, flat-file storage to use
irmin as a backend instead seems like a lot of unnecessary work (and I
really don't need branching or history).

Does anyone know of a simple way to do persistent writes to the FS in
mirage that ensure atomicity of written data? Peraps folks with
knowledge of how irmin achieves atomicity can let me in on the base FS
operations that it uses to do that?

Just thinking about it without any particular knowledge of xen or the
block storage, it seems like I could get away with three files for
each real file:

<file>.ptr -> contents is just "a" or "b"
<file>.a
<file>.b

Upon read, get the current "active" from <file>.ptr then read that.
Upon write, get the current active from <file>.ptr, write to the
_inactive_ file and then overwrite the byte in file.ptr to make it
active. I'd protect file writes with a process-level lock (to make
sure multiple writers don't conflict), which is sufficient for the
mirage backend since there's no multi-process concerns.

Would that work? Are single-byte writes guaranteed to be atomic in the
FAT FS backend? Any better ideas?

Cheers,
 - Tim.

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Tue Jan 26 03:43:53 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 26 Jan 2016 03:43:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aNuXe-0004nR-Te; Tue, 26 Jan 2016 03:43:42 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <tim@gfxmonk.net>) id 1aNuXd-0004nM-6j
	for mirageos-devel@lists.xenproject.org; Tue, 26 Jan 2016 03:43:41 +0000
Received: from [85.158.137.68] by server-2.bemta-3.messagelabs.com id
	56/16-21201-C6BE6A65; Tue, 26 Jan 2016 03:43:40 +0000
X-Env-Sender: tim@gfxmonk.net
X-Msg-Ref: server-4.tower-31.messagelabs.com!1453779818!8453784!1
X-Originating-IP: [209.85.213.54]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 35719 invoked from network); 26 Jan 2016 03:43:39 -0000
Received: from mail-vk0-f54.google.com (HELO mail-vk0-f54.google.com)
	(209.85.213.54)
	by server-4.tower-31.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 26 Jan 2016 03:43:39 -0000
Received: by mail-vk0-f54.google.com with SMTP id n1so85185237vkb.3
	for <mirageos-devel@lists.xenproject.org>;
	Mon, 25 Jan 2016 19:43:39 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=gfxmonk-net.20150623.gappssmtp.com; s=20150623;
	h=mime-version:from:date:message-id:subject:to:content-type;
	bh=rLqO/BC+2mn6ZxMJQ55zU9wyCKBfDMY0gTAYRvf9q8c=;
	b=jK0xVpA4Sr6MOVM9fKLjNpO/sEJL8YRGbc5dxkZqtw7h15HgzcA37D5Gel9hzDfZFX
	slKtwVd5sTuWPr0jmvefaWmABzUi3Wr5VPsFUhsp5q0jLmlhGgftGmTJjExBaYUP+dyr
	quNYM1k8xSGQZd7sFQmUsL694EsYA3B5zxQ1VJdUC5o8n9gRdhdUgMVFCYti6zgTd0sn
	j0yI9Ou1Y6k91lzppzwm25KaTnhbMsmTIxEnNTQeARIb14jv7/Pvj9vF3mimiYx2/tXX
	+J6nxV0wnH+p3bFtWsaoaW6bATGYXdU6YdgXGpNAq/BMOu4xPfR5ZGtm76mAK5hMeZUe
	RBeQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:from:date:message-id:subject:to
	:content-type;
	bh=rLqO/BC+2mn6ZxMJQ55zU9wyCKBfDMY0gTAYRvf9q8c=;
	b=Vm36RbYp6sYunHG7ybRVtx5T0FiSWKMhrNMkTTzzTn+x1yIGu4JozCrD9MbtlWrXTQ
	s4HcgfkmjxLdzRHEVDGwNBjZQEEzd3ejkEcKFoO6P6sknCTsnTSH3e17Un2M70ZzxLRX
	jEwnSyYMc0VPqpcAAiOGJR8UIRXRTayAlJyCBNoIag1homTVkxqTL3+5CNxKAaubKAOV
	Nn9lV4ftBMYzVIhgMtiYrqmqTrSh3TKX/LTEa5C/JP5YwjMFXLm07ErRPXl/v13tr49n
	TLxQtQWxmSlci0r739oWw+rPBqaZ2TQX9lJ4IPYc2CT+QyuAcf6zUtDBkK//NZWCei9X
	yYhw==
X-Gm-Message-State: AG10YOQGf3XjHCyamF0hT9ovpMngM0Af9EI2ole7XtzKBrra3ijTZclISHtquIVdrRfjMA==
X-Received: by 10.31.151.11 with SMTP id z11mr13131833vkd.131.1453779818429;
	Mon, 25 Jan 2016 19:43:38 -0800 (PST)
Received: from mail-vk0-f53.google.com (mail-vk0-f53.google.com.
	[209.85.213.53]) by smtp.gmail.com with ESMTPSA id
	x194sm2762864vkd.3.2016.01.25.19.43.37
	for <mirageos-devel@lists.xenproject.org>
	(version=TLSv1/SSLv3 cipher=OTHER);
	Mon, 25 Jan 2016 19:43:37 -0800 (PST)
Received: by mail-vk0-f53.google.com with SMTP id e64so86058694vkg.0
	for <mirageos-devel@lists.xenproject.org>;
	Mon, 25 Jan 2016 19:43:37 -0800 (PST)
X-Received: by 10.31.149.78 with SMTP id x75mr13142411vkd.103.1453779817317;
	Mon, 25 Jan 2016 19:43:37 -0800 (PST)
MIME-Version: 1.0
Received: by 10.31.69.132 with HTTP; Mon, 25 Jan 2016 19:43:18 -0800 (PST)
From: Tim Cuthbertson <tim@gfxmonk.net>
Date: Tue, 26 Jan 2016 14:43:18 +1100
X-Gmail-Original-Message-ID: <CAC-LLDiU-j7rLLAhkP4EWkmRkb-qpK8kps5Vp3zeyy5c=ra5vA@mail.gmail.com>
Message-ID: <CAC-LLDiU-j7rLLAhkP4EWkmRkb-qpK8kps5Vp3zeyy5c=ra5vA@mail.gmail.com>
To: mirageos-devel@lists.xenproject.org
Subject: [MirageOS-devel] atomically writing persistent data in mirage
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

Hi all,

I've got a small HTTP service which runs both as a normal unix server
which I've slowly been porting to work on mirage as well. One factor I
haven't found a solution for yet is atomic FS operations.

The unix version relies on Unix.rename being atomic - I don't have
heavy storage needs, so I'm not worried about the performance of
writing a new file then renaming over the old one atomically. To get
things working with the existing code I implemented a crude `rename`
for mirage's FS backend, but obviously it is not atomic:

https://github.com/timbertson/passe/blob/a07ca8fe5a3a6fe0803df4765078749310c3df5c/src/mirage/unikernel.ml#L10

I believe that irmin does various things atomically, but my needs are
simple enough that converting my simple, flat-file storage to use
irmin as a backend instead seems like a lot of unnecessary work (and I
really don't need branching or history).

Does anyone know of a simple way to do persistent writes to the FS in
mirage that ensure atomicity of written data? Peraps folks with
knowledge of how irmin achieves atomicity can let me in on the base FS
operations that it uses to do that?

Just thinking about it without any particular knowledge of xen or the
block storage, it seems like I could get away with three files for
each real file:

<file>.ptr -> contents is just "a" or "b"
<file>.a
<file>.b

Upon read, get the current "active" from <file>.ptr then read that.
Upon write, get the current active from <file>.ptr, write to the
_inactive_ file and then overwrite the byte in file.ptr to make it
active. I'd protect file writes with a process-level lock (to make
sure multiple writers don't conflict), which is sufficient for the
mirage backend since there's no multi-process concerns.

Would that work? Are single-byte writes guaranteed to be atomic in the
FAT FS backend? Any better ideas?

Cheers,
 - Tim.

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Tue Jan 26 10:01:45 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 26 Jan 2016 10:01:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aO0RN-0002xH-VQ; Tue, 26 Jan 2016 10:01:37 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <talex5@gmail.com>) id 1aO0RM-0002xA-Nt
	for mirageos-devel@lists.xenproject.org; Tue, 26 Jan 2016 10:01:36 +0000
Received: from [193.109.254.147] by server-8.bemta-14.messagelabs.com id
	13/65-24450-00447A65; Tue, 26 Jan 2016 10:01:36 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-13.tower-27.messagelabs.com!1453802494!19417644!1
X-Originating-IP: [209.85.213.43]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 57883 invoked from network); 26 Jan 2016 10:01:35 -0000
Received: from mail-vk0-f43.google.com (HELO mail-vk0-f43.google.com)
	(209.85.213.43)
	by server-13.tower-27.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 26 Jan 2016 10:01:35 -0000
Received: by mail-vk0-f43.google.com with SMTP id e64so89515788vkg.0
	for <mirageos-devel@lists.xenproject.org>;
	Tue, 26 Jan 2016 02:01:35 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=H30xeEAFGI0Q1fL7yqKck+qu7N3xHjBry3jSo57EZFw=;
	b=d6PC7X0zUKPrYK7GaBWAEotqqeXo5ZKNSxOjuH9pWHeBPX3GAWEV2ClRdNCLB8a+OE
	wW3KQha5aJDhsg5zTn0488hD3YW6cg1wOouhzTynwK27zBz2WZgiqcn2uipzUTrunsto
	tMOxupLhcbWEfBwq8AE0tO9hYUfKuupBcRBdeeprv7c1dqsGWIRxaa6n2vr5uT/ydtmg
	A2HfgbHUeFTxgPpch9cMynzuNc4m5QUpdnQEMfYyUtyGfBaKc0J17ItNMzfVdsho2KO7
	S+JgeoldiVjnqjcxw0YzkAK8yqZILVVJQ6rXiywQeYVyJ9E5wt9h+SNyRknjVZWO6FRz
	iuag==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:in-reply-to:references:date
	:message-id:subject:from:to:cc:content-type;
	bh=H30xeEAFGI0Q1fL7yqKck+qu7N3xHjBry3jSo57EZFw=;
	b=AGHCgPcTh+4BHnFWynJd3WgokxI03WhiVnCmsMmYRefgG22xBmNqo/NjO42BJaUQLc
	PiKj36zTTJcZB7qJu0vGsjKBJab7BqBLdGgyo8ynmVbMp7v4pl+4xokyxCerW89g/MHh
	MX6Q1K85GzEeWBmHfDq1+j04dOGNH6aeXUtRCPqJtFhC9sicb4gWREtCtnyXXEIpY55J
	Ox3eSjbJESMSLWMFfC6Qo3jBe4rPynU3rvJCjZG2kP0Oyuo1GjLzTfBAr1COUTi3nJ3Q
	3kOKuTINzwx2LVWKkg60QRVF9iKLELSwENt+ygNyxkGAr6VZN5UJf5LuRS+PxZ6wprYI
	SWDA==
X-Gm-Message-State: AG10YORAohLbZ6ktL1rIDSbTA9zZYETjM901uyBQ20GYShWJeknJXWgNHs9PKAdck9ODRpMtGhAgxR7R2mEAsg==
MIME-Version: 1.0
X-Received: by 10.31.47.200 with SMTP id v191mr14826121vkv.116.1453802494058; 
	Tue, 26 Jan 2016 02:01:34 -0800 (PST)
Received: by 10.31.130.129 with HTTP; Tue, 26 Jan 2016 02:01:34 -0800 (PST)
In-Reply-To: <CAC-LLDiU-j7rLLAhkP4EWkmRkb-qpK8kps5Vp3zeyy5c=ra5vA@mail.gmail.com>
References: <CAC-LLDiU-j7rLLAhkP4EWkmRkb-qpK8kps5Vp3zeyy5c=ra5vA@mail.gmail.com>
Date: Tue, 26 Jan 2016 10:01:34 +0000
Message-ID: <CAG4opy8+A5fW0B_zsPFSCqRkgdt6EBkO33-1OKGa7FseUErb_g@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Tim Cuthbertson <tim@gfxmonk.net>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] atomically writing persistent data in mirage
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 26 January 2016 at 03:43, Tim Cuthbertson <tim@gfxmonk.net> wrote:
> Hi all,
>
> I've got a small HTTP service which runs both as a normal unix server
> which I've slowly been porting to work on mirage as well. One factor I
> haven't found a solution for yet is atomic FS operations.
>
> The unix version relies on Unix.rename being atomic - I don't have
> heavy storage needs, so I'm not worried about the performance of
> writing a new file then renaming over the old one atomically. To get
> things working with the existing code I implemented a crude `rename`
> for mirage's FS backend, but obviously it is not atomic:
>
> https://github.com/timbertson/passe/blob/a07ca8fe5a3a6fe0803df4765078749310c3df5c/src/mirage/unikernel.ml#L10
>
> I believe that irmin does various things atomically, but my needs are
> simple enough that converting my simple, flat-file storage to use
> irmin as a backend instead seems like a lot of unnecessary work (and I
> really don't need branching or history).
>
> Does anyone know of a simple way to do persistent writes to the FS in
> mirage that ensure atomicity of written data? Peraps folks with
> knowledge of how irmin achieves atomicity can let me in on the base FS
> operations that it uses to do that?

There are two separate things here:

1. Making operations appear atomic to the application (i.e. it will
never see a half-written file).

2. Ensuring that if the system crashes and is restarted it will return
to some state it had previously had.

(1) is pretty easy in a Unikernel since you can just make everything
go via your own wrapper, e.g. with a Lwt_mutex around it. (2) is
hard...

Irmin ensures (1), but relies on the FS layer for (2). On Unix, it
uses POSIX atomic rename. I don't think we have Irmin persistence
working on Xen yet (maybe someone hacked it up with FAT, but it
probably wasn't robust against crashes if so).

I believe the current plan is to get this finished and working:

  https://github.com/djs55/ocaml-btree

Not sure how close it is to being ready. Perhaps Dave can comment...

> Just thinking about it without any particular knowledge of xen or the
> block storage, it seems like I could get away with three files for
> each real file:
>
> <file>.ptr -> contents is just "a" or "b"
> <file>.a
> <file>.b
>
> Upon read, get the current "active" from <file>.ptr then read that.
> Upon write, get the current active from <file>.ptr, write to the
> _inactive_ file and then overwrite the byte in file.ptr to make it
> active. I'd protect file writes with a process-level lock (to make
> sure multiple writers don't conflict), which is sufficient for the
> mirage backend since there's no multi-process concerns.
>
> Would that work? Are single-byte writes guaranteed to be atomic in the
> FAT FS backend? Any better ideas?

I vaguely recall that the FAT code builds up a list of blocks to write
and passes them all together to a function. You could perhaps write
them to a journal partition first. I suspect that trying to build
anything reliable on top of FAT is a lost cause however...


-- 
Dr Thomas Leonard        http://roscidus.com/blog/
GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Tue Jan 26 10:01:45 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 26 Jan 2016 10:01:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aO0RN-0002xH-VQ; Tue, 26 Jan 2016 10:01:37 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <talex5@gmail.com>) id 1aO0RM-0002xA-Nt
	for mirageos-devel@lists.xenproject.org; Tue, 26 Jan 2016 10:01:36 +0000
Received: from [193.109.254.147] by server-8.bemta-14.messagelabs.com id
	13/65-24450-00447A65; Tue, 26 Jan 2016 10:01:36 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-13.tower-27.messagelabs.com!1453802494!19417644!1
X-Originating-IP: [209.85.213.43]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 57883 invoked from network); 26 Jan 2016 10:01:35 -0000
Received: from mail-vk0-f43.google.com (HELO mail-vk0-f43.google.com)
	(209.85.213.43)
	by server-13.tower-27.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 26 Jan 2016 10:01:35 -0000
Received: by mail-vk0-f43.google.com with SMTP id e64so89515788vkg.0
	for <mirageos-devel@lists.xenproject.org>;
	Tue, 26 Jan 2016 02:01:35 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=H30xeEAFGI0Q1fL7yqKck+qu7N3xHjBry3jSo57EZFw=;
	b=d6PC7X0zUKPrYK7GaBWAEotqqeXo5ZKNSxOjuH9pWHeBPX3GAWEV2ClRdNCLB8a+OE
	wW3KQha5aJDhsg5zTn0488hD3YW6cg1wOouhzTynwK27zBz2WZgiqcn2uipzUTrunsto
	tMOxupLhcbWEfBwq8AE0tO9hYUfKuupBcRBdeeprv7c1dqsGWIRxaa6n2vr5uT/ydtmg
	A2HfgbHUeFTxgPpch9cMynzuNc4m5QUpdnQEMfYyUtyGfBaKc0J17ItNMzfVdsho2KO7
	S+JgeoldiVjnqjcxw0YzkAK8yqZILVVJQ6rXiywQeYVyJ9E5wt9h+SNyRknjVZWO6FRz
	iuag==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:in-reply-to:references:date
	:message-id:subject:from:to:cc:content-type;
	bh=H30xeEAFGI0Q1fL7yqKck+qu7N3xHjBry3jSo57EZFw=;
	b=AGHCgPcTh+4BHnFWynJd3WgokxI03WhiVnCmsMmYRefgG22xBmNqo/NjO42BJaUQLc
	PiKj36zTTJcZB7qJu0vGsjKBJab7BqBLdGgyo8ynmVbMp7v4pl+4xokyxCerW89g/MHh
	MX6Q1K85GzEeWBmHfDq1+j04dOGNH6aeXUtRCPqJtFhC9sicb4gWREtCtnyXXEIpY55J
	Ox3eSjbJESMSLWMFfC6Qo3jBe4rPynU3rvJCjZG2kP0Oyuo1GjLzTfBAr1COUTi3nJ3Q
	3kOKuTINzwx2LVWKkg60QRVF9iKLELSwENt+ygNyxkGAr6VZN5UJf5LuRS+PxZ6wprYI
	SWDA==
X-Gm-Message-State: AG10YORAohLbZ6ktL1rIDSbTA9zZYETjM901uyBQ20GYShWJeknJXWgNHs9PKAdck9ODRpMtGhAgxR7R2mEAsg==
MIME-Version: 1.0
X-Received: by 10.31.47.200 with SMTP id v191mr14826121vkv.116.1453802494058; 
	Tue, 26 Jan 2016 02:01:34 -0800 (PST)
Received: by 10.31.130.129 with HTTP; Tue, 26 Jan 2016 02:01:34 -0800 (PST)
In-Reply-To: <CAC-LLDiU-j7rLLAhkP4EWkmRkb-qpK8kps5Vp3zeyy5c=ra5vA@mail.gmail.com>
References: <CAC-LLDiU-j7rLLAhkP4EWkmRkb-qpK8kps5Vp3zeyy5c=ra5vA@mail.gmail.com>
Date: Tue, 26 Jan 2016 10:01:34 +0000
Message-ID: <CAG4opy8+A5fW0B_zsPFSCqRkgdt6EBkO33-1OKGa7FseUErb_g@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Tim Cuthbertson <tim@gfxmonk.net>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] atomically writing persistent data in mirage
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 26 January 2016 at 03:43, Tim Cuthbertson <tim@gfxmonk.net> wrote:
> Hi all,
>
> I've got a small HTTP service which runs both as a normal unix server
> which I've slowly been porting to work on mirage as well. One factor I
> haven't found a solution for yet is atomic FS operations.
>
> The unix version relies on Unix.rename being atomic - I don't have
> heavy storage needs, so I'm not worried about the performance of
> writing a new file then renaming over the old one atomically. To get
> things working with the existing code I implemented a crude `rename`
> for mirage's FS backend, but obviously it is not atomic:
>
> https://github.com/timbertson/passe/blob/a07ca8fe5a3a6fe0803df4765078749310c3df5c/src/mirage/unikernel.ml#L10
>
> I believe that irmin does various things atomically, but my needs are
> simple enough that converting my simple, flat-file storage to use
> irmin as a backend instead seems like a lot of unnecessary work (and I
> really don't need branching or history).
>
> Does anyone know of a simple way to do persistent writes to the FS in
> mirage that ensure atomicity of written data? Peraps folks with
> knowledge of how irmin achieves atomicity can let me in on the base FS
> operations that it uses to do that?

There are two separate things here:

1. Making operations appear atomic to the application (i.e. it will
never see a half-written file).

2. Ensuring that if the system crashes and is restarted it will return
to some state it had previously had.

(1) is pretty easy in a Unikernel since you can just make everything
go via your own wrapper, e.g. with a Lwt_mutex around it. (2) is
hard...

Irmin ensures (1), but relies on the FS layer for (2). On Unix, it
uses POSIX atomic rename. I don't think we have Irmin persistence
working on Xen yet (maybe someone hacked it up with FAT, but it
probably wasn't robust against crashes if so).

I believe the current plan is to get this finished and working:

  https://github.com/djs55/ocaml-btree

Not sure how close it is to being ready. Perhaps Dave can comment...

> Just thinking about it without any particular knowledge of xen or the
> block storage, it seems like I could get away with three files for
> each real file:
>
> <file>.ptr -> contents is just "a" or "b"
> <file>.a
> <file>.b
>
> Upon read, get the current "active" from <file>.ptr then read that.
> Upon write, get the current active from <file>.ptr, write to the
> _inactive_ file and then overwrite the byte in file.ptr to make it
> active. I'd protect file writes with a process-level lock (to make
> sure multiple writers don't conflict), which is sufficient for the
> mirage backend since there's no multi-process concerns.
>
> Would that work? Are single-byte writes guaranteed to be atomic in the
> FAT FS backend? Any better ideas?

I vaguely recall that the FAT code builds up a list of blocks to write
and passes them all together to a function. You could perhaps write
them to a journal partition first. I suspect that trying to build
anything reliable on top of FAT is a lost cause however...


-- 
Dr Thomas Leonard        http://roscidus.com/blog/
GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Tue Jan 26 14:59:37 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 26 Jan 2016 14:59:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aO55a-00066W-7d; Tue, 26 Jan 2016 14:59:26 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <scott.dj@gmail.com>) id 1aO55Y-00066K-PM
	for mirageos-devel@lists.xenproject.org; Tue, 26 Jan 2016 14:59:24 +0000
Received: from [193.109.254.147] by server-15.bemta-14.messagelabs.com id
	49/9E-10115-CC987A65; Tue, 26 Jan 2016 14:59:24 +0000
X-Env-Sender: scott.dj@gmail.com
X-Msg-Ref: server-8.tower-27.messagelabs.com!1453820362!15739973!1
X-Originating-IP: [74.125.82.51]
X-SpamReason: No, hits=0.4 required=7.0 tests=HTML_30_40,HTML_MESSAGE,
	RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 27303 invoked from network); 26 Jan 2016 14:59:22 -0000
Received: from mail-wm0-f51.google.com (HELO mail-wm0-f51.google.com)
	(74.125.82.51)
	by server-8.tower-27.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 26 Jan 2016 14:59:22 -0000
Received: by mail-wm0-f51.google.com with SMTP id u188so109830007wmu.1
	for <mirageos-devel@lists.xenproject.org>;
	Tue, 26 Jan 2016 06:59:22 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=jOk7QuJrV2SLTvlZEXuajTvEFgX9UHom945yGlKGQYM=;
	b=JsPn66jCVOctQIBSFRacoJPE8zPA4yjaneaHI3MLOtHdTCcl83sDYQ9vY05SQIfo3y
	g4OefI/VWDCfDHS+3Nm67Vb3+el70x+U1rip8KcmbnmyIhhfBXHwQvHflrDYULyuX/vd
	buay2gWBXIxp0gxa3A74GOnNdTJmDazYjxiXDBm3tLN9W2uqrfAtn9XPjntcOnJFxWpF
	FBPbDEdjARaVLDBl10gQWNZntF33OoH3sKvONhBkLDyes03o1dl0QNHTEYpG2Y3Pc485
	r8cUPkNmcoVMCT2C0brPoKQ56d6VTXz/tdpIbEvEh/NSEkFGV1hil9Tr4WT/OBAURdFj
	GR8A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:in-reply-to:references:date
	:message-id:subject:from:to:cc:content-type;
	bh=jOk7QuJrV2SLTvlZEXuajTvEFgX9UHom945yGlKGQYM=;
	b=lezGe9MvqgAaQkYiWwTuy9gpjCz5i5x0dJmy69PIuJaa5N7UCCeCc1FaJymkPnjIih
	O98P+B/rbmZQwJuAqKzarBoOh/rO4UA3GNLkJk48HEsQorfrr6uTZeJqke195Q59AeFQ
	Lr4uj3Q3uyJxQv/2FMcpV9GHL/vi9SRrCGpOFLZps5TJnjJA9VtZoGcoxB/doPgcVsZs
	oCyNnqkzXLKPkrJAcRPCBDxIIkAf8DlAfpgQWFMV/4PAR5R54HRToHweUrycNHmWmhU5
	ugn1H4+/TDqah3bq4cJBhn2DGmPHLcHow/UEyvNUsYjP3FxENbfBbTCChUvU3Kl1HfgG
	xTMQ==
X-Gm-Message-State: AG10YOSKAT7RmOqVCCeiT1TDzxvZhmLJfl3g1gNqmrs4j3Wjl8sIJPEx+kb8UL+wGCZ+LQkAqkdZ/h9AkbWGLQ==
MIME-Version: 1.0
X-Received: by 10.194.20.67 with SMTP id l3mr22725951wje.86.1453820361804;
	Tue, 26 Jan 2016 06:59:21 -0800 (PST)
Received: by 10.28.137.2 with HTTP; Tue, 26 Jan 2016 06:59:21 -0800 (PST)
In-Reply-To: <CAG4opy8+A5fW0B_zsPFSCqRkgdt6EBkO33-1OKGa7FseUErb_g@mail.gmail.com>
References: <CAC-LLDiU-j7rLLAhkP4EWkmRkb-qpK8kps5Vp3zeyy5c=ra5vA@mail.gmail.com>
	<CAG4opy8+A5fW0B_zsPFSCqRkgdt6EBkO33-1OKGa7FseUErb_g@mail.gmail.com>
Date: Tue, 26 Jan 2016 14:59:21 +0000
Message-ID: <CAG_esB2ejZ1DydJKkmH2PKS=ajDUy0QqhjJ=JAA9gv9rNzAiYw@mail.gmail.com>
From: David Scott <scott.dj@gmail.com>
To: Thomas Leonard <talex5@gmail.com>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] atomically writing persistent data in mirage
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============1495113377472751123=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============1495113377472751123==
Content-Type: multipart/alternative; boundary=047d7b5d649a3b9d94052a3dee7f

--047d7b5d649a3b9d94052a3dee7f
Content-Type: text/plain; charset=UTF-8

On Tue, Jan 26, 2016 at 10:01 AM, Thomas Leonard <talex5@gmail.com> wrote:

> On 26 January 2016 at 03:43, Tim Cuthbertson <tim@gfxmonk.net> wrote:
> > Hi all,
> >
> > I've got a small HTTP service which runs both as a normal unix server
> > which I've slowly been porting to work on mirage as well. One factor I
> > haven't found a solution for yet is atomic FS operations.
> >
> > The unix version relies on Unix.rename being atomic - I don't have
> > heavy storage needs, so I'm not worried about the performance of
> > writing a new file then renaming over the old one atomically. To get
> > things working with the existing code I implemented a crude `rename`
> > for mirage's FS backend, but obviously it is not atomic:
> >
> >
> https://github.com/timbertson/passe/blob/a07ca8fe5a3a6fe0803df4765078749310c3df5c/src/mirage/unikernel.ml#L10
> >
> > I believe that irmin does various things atomically, but my needs are
> > simple enough that converting my simple, flat-file storage to use
> > irmin as a backend instead seems like a lot of unnecessary work (and I
> > really don't need branching or history).
> >
> > Does anyone know of a simple way to do persistent writes to the FS in
> > mirage that ensure atomicity of written data? Peraps folks with
> > knowledge of how irmin achieves atomicity can let me in on the base FS
> > operations that it uses to do that?
>
> There are two separate things here:
>
> 1. Making operations appear atomic to the application (i.e. it will
> never see a half-written file).
>
> 2. Ensuring that if the system crashes and is restarted it will return
> to some state it had previously had.
>
> (1) is pretty easy in a Unikernel since you can just make everything
> go via your own wrapper, e.g. with a Lwt_mutex around it. (2) is
> hard...
>
> Irmin ensures (1), but relies on the FS layer for (2). On Unix, it
> uses POSIX atomic rename. I don't think we have Irmin persistence
> working on Xen yet (maybe someone hacked it up with FAT, but it
> probably wasn't robust against crashes if so).
>
> I believe the current plan is to get this finished and working:
>
>   https://github.com/djs55/ocaml-btree
>
> Not sure how close it is to being ready. Perhaps Dave can comment...
>

It's not ready for use yet unfortunately :( Realistically it'll take a
couple of months (unless I suddenly find an excuse to spend more of my time
on it).

I'm hoping that an update will consist of constructing a new tree on disk
sharing as many nodes as possible with the current tree (wrapped by a mutex
to guarantee (1)) and then flipping the root pointer in an atomic sector
write to guarantee (2). I need to make sure blocks don't leak and can be
efficiently GCed too. None of this is fully implemented yet.

Cheers,
Dave


> > Just thinking about it without any particular knowledge of xen or the
> > block storage, it seems like I could get away with three files for
> > each real file:
> >
> > <file>.ptr -> contents is just "a" or "b"
> > <file>.a
> > <file>.b
> >
> > Upon read, get the current "active" from <file>.ptr then read that.
> > Upon write, get the current active from <file>.ptr, write to the
> > _inactive_ file and then overwrite the byte in file.ptr to make it
> > active. I'd protect file writes with a process-level lock (to make
> > sure multiple writers don't conflict), which is sufficient for the
> > mirage backend since there's no multi-process concerns.
> >
> > Would that work? Are single-byte writes guaranteed to be atomic in the
> > FAT FS backend? Any better ideas?
>
> I vaguely recall that the FAT code builds up a list of blocks to write
> and passes them all together to a function. You could perhaps write
> them to a journal partition first. I suspect that trying to build
> anything reliable on top of FAT is a lost cause however...
>
>
> --
> Dr Thomas Leonard        http://roscidus.com/blog/
> GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA
>
> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>



-- 
Dave Scott

--047d7b5d649a3b9d94052a3dee7f
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Tue, Jan 26, 2016 at 10:01 AM, Thomas Leonard <span dir=3D"ltr">&lt;=
<a href=3D"mailto:talex5@gmail.com" target=3D"_blank">talex5@gmail.com</a>&=
gt;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 =
0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=3D"">On 26 =
January 2016 at 03:43, Tim Cuthbertson &lt;<a href=3D"mailto:tim@gfxmonk.ne=
t">tim@gfxmonk.net</a>&gt; wrote:<br>
&gt; Hi all,<br>
&gt;<br>
&gt; I&#39;ve got a small HTTP service which runs both as a normal unix ser=
ver<br>
&gt; which I&#39;ve slowly been porting to work on mirage as well. One fact=
or I<br>
&gt; haven&#39;t found a solution for yet is atomic FS operations.<br>
&gt;<br>
&gt; The unix version relies on Unix.rename being atomic - I don&#39;t have=
<br>
&gt; heavy storage needs, so I&#39;m not worried about the performance of<b=
r>
&gt; writing a new file then renaming over the old one atomically. To get<b=
r>
&gt; things working with the existing code I implemented a crude `rename`<b=
r>
&gt; for mirage&#39;s FS backend, but obviously it is not atomic:<br>
&gt;<br>
&gt; <a href=3D"https://github.com/timbertson/passe/blob/a07ca8fe5a3a6fe080=
3df4765078749310c3df5c/src/mirage/unikernel.ml#L10" rel=3D"noreferrer" targ=
et=3D"_blank">https://github.com/timbertson/passe/blob/a07ca8fe5a3a6fe0803d=
f4765078749310c3df5c/src/mirage/unikernel.ml#L10</a><br>
&gt;<br>
&gt; I believe that irmin does various things atomically, but my needs are<=
br>
&gt; simple enough that converting my simple, flat-file storage to use<br>
&gt; irmin as a backend instead seems like a lot of unnecessary work (and I=
<br>
&gt; really don&#39;t need branching or history).<br>
&gt;<br>
&gt; Does anyone know of a simple way to do persistent writes to the FS in<=
br>
&gt; mirage that ensure atomicity of written data? Peraps folks with<br>
&gt; knowledge of how irmin achieves atomicity can let me in on the base FS=
<br>
&gt; operations that it uses to do that?<br>
<br>
</span>There are two separate things here:<br>
<br>
1. Making operations appear atomic to the application (i.e. it will<br>
never see a half-written file).<br>
<br>
2. Ensuring that if the system crashes and is restarted it will return<br>
to some state it had previously had.<br>
<br>
(1) is pretty easy in a Unikernel since you can just make everything<br>
go via your own wrapper, e.g. with a Lwt_mutex around it. (2) is<br>
hard...<br>
<br>
Irmin ensures (1), but relies on the FS layer for (2). On Unix, it<br>
uses POSIX atomic rename. I don&#39;t think we have Irmin persistence<br>
working on Xen yet (maybe someone hacked it up with FAT, but it<br>
probably wasn&#39;t robust against crashes if so).<br>
<br>
I believe the current plan is to get this finished and working:<br>
<br>
=C2=A0 <a href=3D"https://github.com/djs55/ocaml-btree" rel=3D"noreferrer" =
target=3D"_blank">https://github.com/djs55/ocaml-btree</a><br>
<br>
Not sure how close it is to being ready. Perhaps Dave can comment...<br></b=
lockquote><div><br></div><div>It&#39;s not ready for use yet unfortunately =
:( Realistically it&#39;ll take a couple of months (unless I suddenly find =
an excuse to spend more of my time on it).</div><div><br></div><div>I&#39;m=
 hoping that an update will consist of constructing a new tree on disk shar=
ing as many nodes as possible with the current tree (wrapped by a mutex to =
guarantee (1)) and then flipping the root pointer in an atomic sector write=
 to guarantee (2). I need to make sure blocks don&#39;t leak and can be eff=
iciently GCed too. None of this is fully implemented yet.<br></div><div><br=
></div><div>Cheers,</div><div>Dave</div><div><br></div><blockquote class=3D=
"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding=
-left:1ex">
<span class=3D""><br>
&gt; Just thinking about it without any particular knowledge of xen or the<=
br>
&gt; block storage, it seems like I could get away with three files for<br>
&gt; each real file:<br>
&gt;<br>
&gt; &lt;file&gt;.ptr -&gt; contents is just &quot;a&quot; or &quot;b&quot;=
<br>
&gt; &lt;file&gt;.a<br>
&gt; &lt;file&gt;.b<br>
&gt;<br>
&gt; Upon read, get the current &quot;active&quot; from &lt;file&gt;.ptr th=
en read that.<br>
&gt; Upon write, get the current active from &lt;file&gt;.ptr, write to the=
<br>
&gt; _inactive_ file and then overwrite the byte in file.ptr to make it<br>
&gt; active. I&#39;d protect file writes with a process-level lock (to make=
<br>
&gt; sure multiple writers don&#39;t conflict), which is sufficient for the=
<br>
&gt; mirage backend since there&#39;s no multi-process concerns.<br>
&gt;<br>
&gt; Would that work? Are single-byte writes guaranteed to be atomic in the=
<br>
&gt; FAT FS backend? Any better ideas?<br>
<br>
</span>I vaguely recall that the FAT code builds up a list of blocks to wri=
te<br>
and passes them all together to a function. You could perhaps write<br>
them to a journal partition first. I suspect that trying to build<br>
anything reliable on top of FAT is a lost cause however...<br>
<span class=3D"HOEnZb"><font color=3D"#888888"><br>
<br>
--<br>
Dr Thomas Leonard=C2=A0 =C2=A0 =C2=A0 =C2=A0 <a href=3D"http://roscidus.com=
/blog/" rel=3D"noreferrer" target=3D"_blank">http://roscidus.com/blog/</a><=
br>
GPG: DA98 25AE CAD0 8975 7CDA=C2=A0 BD8E 0713 3F96 CA74 D8BA<br>
</font></span><div class=3D"HOEnZb"><div class=3D"h5"><br>
_______________________________________________<br>
MirageOS-devel mailing list<br>
<a href=3D"mailto:MirageOS-devel@lists.xenproject.org">MirageOS-devel@lists=
.xenproject.org</a><br>
<a href=3D"http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-de=
vel" rel=3D"noreferrer" target=3D"_blank">http://lists.xenproject.org/cgi-b=
in/mailman/listinfo/mirageos-devel</a><br>
</div></div></blockquote></div><br><br clear=3D"all"><div><br></div>-- <br>=
<div class=3D"gmail_signature">Dave Scott</div>
</div></div>

--047d7b5d649a3b9d94052a3dee7f--


--===============1495113377472751123==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============1495113377472751123==--


From mirageos-devel-bounces@lists.xenproject.org Tue Jan 26 14:59:37 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 26 Jan 2016 14:59:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aO55a-00066W-7d; Tue, 26 Jan 2016 14:59:26 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <scott.dj@gmail.com>) id 1aO55Y-00066K-PM
	for mirageos-devel@lists.xenproject.org; Tue, 26 Jan 2016 14:59:24 +0000
Received: from [193.109.254.147] by server-15.bemta-14.messagelabs.com id
	49/9E-10115-CC987A65; Tue, 26 Jan 2016 14:59:24 +0000
X-Env-Sender: scott.dj@gmail.com
X-Msg-Ref: server-8.tower-27.messagelabs.com!1453820362!15739973!1
X-Originating-IP: [74.125.82.51]
X-SpamReason: No, hits=0.4 required=7.0 tests=HTML_30_40,HTML_MESSAGE,
	RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 27303 invoked from network); 26 Jan 2016 14:59:22 -0000
Received: from mail-wm0-f51.google.com (HELO mail-wm0-f51.google.com)
	(74.125.82.51)
	by server-8.tower-27.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 26 Jan 2016 14:59:22 -0000
Received: by mail-wm0-f51.google.com with SMTP id u188so109830007wmu.1
	for <mirageos-devel@lists.xenproject.org>;
	Tue, 26 Jan 2016 06:59:22 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=jOk7QuJrV2SLTvlZEXuajTvEFgX9UHom945yGlKGQYM=;
	b=JsPn66jCVOctQIBSFRacoJPE8zPA4yjaneaHI3MLOtHdTCcl83sDYQ9vY05SQIfo3y
	g4OefI/VWDCfDHS+3Nm67Vb3+el70x+U1rip8KcmbnmyIhhfBXHwQvHflrDYULyuX/vd
	buay2gWBXIxp0gxa3A74GOnNdTJmDazYjxiXDBm3tLN9W2uqrfAtn9XPjntcOnJFxWpF
	FBPbDEdjARaVLDBl10gQWNZntF33OoH3sKvONhBkLDyes03o1dl0QNHTEYpG2Y3Pc485
	r8cUPkNmcoVMCT2C0brPoKQ56d6VTXz/tdpIbEvEh/NSEkFGV1hil9Tr4WT/OBAURdFj
	GR8A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:in-reply-to:references:date
	:message-id:subject:from:to:cc:content-type;
	bh=jOk7QuJrV2SLTvlZEXuajTvEFgX9UHom945yGlKGQYM=;
	b=lezGe9MvqgAaQkYiWwTuy9gpjCz5i5x0dJmy69PIuJaa5N7UCCeCc1FaJymkPnjIih
	O98P+B/rbmZQwJuAqKzarBoOh/rO4UA3GNLkJk48HEsQorfrr6uTZeJqke195Q59AeFQ
	Lr4uj3Q3uyJxQv/2FMcpV9GHL/vi9SRrCGpOFLZps5TJnjJA9VtZoGcoxB/doPgcVsZs
	oCyNnqkzXLKPkrJAcRPCBDxIIkAf8DlAfpgQWFMV/4PAR5R54HRToHweUrycNHmWmhU5
	ugn1H4+/TDqah3bq4cJBhn2DGmPHLcHow/UEyvNUsYjP3FxENbfBbTCChUvU3Kl1HfgG
	xTMQ==
X-Gm-Message-State: AG10YOSKAT7RmOqVCCeiT1TDzxvZhmLJfl3g1gNqmrs4j3Wjl8sIJPEx+kb8UL+wGCZ+LQkAqkdZ/h9AkbWGLQ==
MIME-Version: 1.0
X-Received: by 10.194.20.67 with SMTP id l3mr22725951wje.86.1453820361804;
	Tue, 26 Jan 2016 06:59:21 -0800 (PST)
Received: by 10.28.137.2 with HTTP; Tue, 26 Jan 2016 06:59:21 -0800 (PST)
In-Reply-To: <CAG4opy8+A5fW0B_zsPFSCqRkgdt6EBkO33-1OKGa7FseUErb_g@mail.gmail.com>
References: <CAC-LLDiU-j7rLLAhkP4EWkmRkb-qpK8kps5Vp3zeyy5c=ra5vA@mail.gmail.com>
	<CAG4opy8+A5fW0B_zsPFSCqRkgdt6EBkO33-1OKGa7FseUErb_g@mail.gmail.com>
Date: Tue, 26 Jan 2016 14:59:21 +0000
Message-ID: <CAG_esB2ejZ1DydJKkmH2PKS=ajDUy0QqhjJ=JAA9gv9rNzAiYw@mail.gmail.com>
From: David Scott <scott.dj@gmail.com>
To: Thomas Leonard <talex5@gmail.com>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] atomically writing persistent data in mirage
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============1495113377472751123=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============1495113377472751123==
Content-Type: multipart/alternative; boundary=047d7b5d649a3b9d94052a3dee7f

--047d7b5d649a3b9d94052a3dee7f
Content-Type: text/plain; charset=UTF-8

On Tue, Jan 26, 2016 at 10:01 AM, Thomas Leonard <talex5@gmail.com> wrote:

> On 26 January 2016 at 03:43, Tim Cuthbertson <tim@gfxmonk.net> wrote:
> > Hi all,
> >
> > I've got a small HTTP service which runs both as a normal unix server
> > which I've slowly been porting to work on mirage as well. One factor I
> > haven't found a solution for yet is atomic FS operations.
> >
> > The unix version relies on Unix.rename being atomic - I don't have
> > heavy storage needs, so I'm not worried about the performance of
> > writing a new file then renaming over the old one atomically. To get
> > things working with the existing code I implemented a crude `rename`
> > for mirage's FS backend, but obviously it is not atomic:
> >
> >
> https://github.com/timbertson/passe/blob/a07ca8fe5a3a6fe0803df4765078749310c3df5c/src/mirage/unikernel.ml#L10
> >
> > I believe that irmin does various things atomically, but my needs are
> > simple enough that converting my simple, flat-file storage to use
> > irmin as a backend instead seems like a lot of unnecessary work (and I
> > really don't need branching or history).
> >
> > Does anyone know of a simple way to do persistent writes to the FS in
> > mirage that ensure atomicity of written data? Peraps folks with
> > knowledge of how irmin achieves atomicity can let me in on the base FS
> > operations that it uses to do that?
>
> There are two separate things here:
>
> 1. Making operations appear atomic to the application (i.e. it will
> never see a half-written file).
>
> 2. Ensuring that if the system crashes and is restarted it will return
> to some state it had previously had.
>
> (1) is pretty easy in a Unikernel since you can just make everything
> go via your own wrapper, e.g. with a Lwt_mutex around it. (2) is
> hard...
>
> Irmin ensures (1), but relies on the FS layer for (2). On Unix, it
> uses POSIX atomic rename. I don't think we have Irmin persistence
> working on Xen yet (maybe someone hacked it up with FAT, but it
> probably wasn't robust against crashes if so).
>
> I believe the current plan is to get this finished and working:
>
>   https://github.com/djs55/ocaml-btree
>
> Not sure how close it is to being ready. Perhaps Dave can comment...
>

It's not ready for use yet unfortunately :( Realistically it'll take a
couple of months (unless I suddenly find an excuse to spend more of my time
on it).

I'm hoping that an update will consist of constructing a new tree on disk
sharing as many nodes as possible with the current tree (wrapped by a mutex
to guarantee (1)) and then flipping the root pointer in an atomic sector
write to guarantee (2). I need to make sure blocks don't leak and can be
efficiently GCed too. None of this is fully implemented yet.

Cheers,
Dave


> > Just thinking about it without any particular knowledge of xen or the
> > block storage, it seems like I could get away with three files for
> > each real file:
> >
> > <file>.ptr -> contents is just "a" or "b"
> > <file>.a
> > <file>.b
> >
> > Upon read, get the current "active" from <file>.ptr then read that.
> > Upon write, get the current active from <file>.ptr, write to the
> > _inactive_ file and then overwrite the byte in file.ptr to make it
> > active. I'd protect file writes with a process-level lock (to make
> > sure multiple writers don't conflict), which is sufficient for the
> > mirage backend since there's no multi-process concerns.
> >
> > Would that work? Are single-byte writes guaranteed to be atomic in the
> > FAT FS backend? Any better ideas?
>
> I vaguely recall that the FAT code builds up a list of blocks to write
> and passes them all together to a function. You could perhaps write
> them to a journal partition first. I suspect that trying to build
> anything reliable on top of FAT is a lost cause however...
>
>
> --
> Dr Thomas Leonard        http://roscidus.com/blog/
> GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA
>
> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>



-- 
Dave Scott

--047d7b5d649a3b9d94052a3dee7f
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Tue, Jan 26, 2016 at 10:01 AM, Thomas Leonard <span dir=3D"ltr">&lt;=
<a href=3D"mailto:talex5@gmail.com" target=3D"_blank">talex5@gmail.com</a>&=
gt;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 =
0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=3D"">On 26 =
January 2016 at 03:43, Tim Cuthbertson &lt;<a href=3D"mailto:tim@gfxmonk.ne=
t">tim@gfxmonk.net</a>&gt; wrote:<br>
&gt; Hi all,<br>
&gt;<br>
&gt; I&#39;ve got a small HTTP service which runs both as a normal unix ser=
ver<br>
&gt; which I&#39;ve slowly been porting to work on mirage as well. One fact=
or I<br>
&gt; haven&#39;t found a solution for yet is atomic FS operations.<br>
&gt;<br>
&gt; The unix version relies on Unix.rename being atomic - I don&#39;t have=
<br>
&gt; heavy storage needs, so I&#39;m not worried about the performance of<b=
r>
&gt; writing a new file then renaming over the old one atomically. To get<b=
r>
&gt; things working with the existing code I implemented a crude `rename`<b=
r>
&gt; for mirage&#39;s FS backend, but obviously it is not atomic:<br>
&gt;<br>
&gt; <a href=3D"https://github.com/timbertson/passe/blob/a07ca8fe5a3a6fe080=
3df4765078749310c3df5c/src/mirage/unikernel.ml#L10" rel=3D"noreferrer" targ=
et=3D"_blank">https://github.com/timbertson/passe/blob/a07ca8fe5a3a6fe0803d=
f4765078749310c3df5c/src/mirage/unikernel.ml#L10</a><br>
&gt;<br>
&gt; I believe that irmin does various things atomically, but my needs are<=
br>
&gt; simple enough that converting my simple, flat-file storage to use<br>
&gt; irmin as a backend instead seems like a lot of unnecessary work (and I=
<br>
&gt; really don&#39;t need branching or history).<br>
&gt;<br>
&gt; Does anyone know of a simple way to do persistent writes to the FS in<=
br>
&gt; mirage that ensure atomicity of written data? Peraps folks with<br>
&gt; knowledge of how irmin achieves atomicity can let me in on the base FS=
<br>
&gt; operations that it uses to do that?<br>
<br>
</span>There are two separate things here:<br>
<br>
1. Making operations appear atomic to the application (i.e. it will<br>
never see a half-written file).<br>
<br>
2. Ensuring that if the system crashes and is restarted it will return<br>
to some state it had previously had.<br>
<br>
(1) is pretty easy in a Unikernel since you can just make everything<br>
go via your own wrapper, e.g. with a Lwt_mutex around it. (2) is<br>
hard...<br>
<br>
Irmin ensures (1), but relies on the FS layer for (2). On Unix, it<br>
uses POSIX atomic rename. I don&#39;t think we have Irmin persistence<br>
working on Xen yet (maybe someone hacked it up with FAT, but it<br>
probably wasn&#39;t robust against crashes if so).<br>
<br>
I believe the current plan is to get this finished and working:<br>
<br>
=C2=A0 <a href=3D"https://github.com/djs55/ocaml-btree" rel=3D"noreferrer" =
target=3D"_blank">https://github.com/djs55/ocaml-btree</a><br>
<br>
Not sure how close it is to being ready. Perhaps Dave can comment...<br></b=
lockquote><div><br></div><div>It&#39;s not ready for use yet unfortunately =
:( Realistically it&#39;ll take a couple of months (unless I suddenly find =
an excuse to spend more of my time on it).</div><div><br></div><div>I&#39;m=
 hoping that an update will consist of constructing a new tree on disk shar=
ing as many nodes as possible with the current tree (wrapped by a mutex to =
guarantee (1)) and then flipping the root pointer in an atomic sector write=
 to guarantee (2). I need to make sure blocks don&#39;t leak and can be eff=
iciently GCed too. None of this is fully implemented yet.<br></div><div><br=
></div><div>Cheers,</div><div>Dave</div><div><br></div><blockquote class=3D=
"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding=
-left:1ex">
<span class=3D""><br>
&gt; Just thinking about it without any particular knowledge of xen or the<=
br>
&gt; block storage, it seems like I could get away with three files for<br>
&gt; each real file:<br>
&gt;<br>
&gt; &lt;file&gt;.ptr -&gt; contents is just &quot;a&quot; or &quot;b&quot;=
<br>
&gt; &lt;file&gt;.a<br>
&gt; &lt;file&gt;.b<br>
&gt;<br>
&gt; Upon read, get the current &quot;active&quot; from &lt;file&gt;.ptr th=
en read that.<br>
&gt; Upon write, get the current active from &lt;file&gt;.ptr, write to the=
<br>
&gt; _inactive_ file and then overwrite the byte in file.ptr to make it<br>
&gt; active. I&#39;d protect file writes with a process-level lock (to make=
<br>
&gt; sure multiple writers don&#39;t conflict), which is sufficient for the=
<br>
&gt; mirage backend since there&#39;s no multi-process concerns.<br>
&gt;<br>
&gt; Would that work? Are single-byte writes guaranteed to be atomic in the=
<br>
&gt; FAT FS backend? Any better ideas?<br>
<br>
</span>I vaguely recall that the FAT code builds up a list of blocks to wri=
te<br>
and passes them all together to a function. You could perhaps write<br>
them to a journal partition first. I suspect that trying to build<br>
anything reliable on top of FAT is a lost cause however...<br>
<span class=3D"HOEnZb"><font color=3D"#888888"><br>
<br>
--<br>
Dr Thomas Leonard=C2=A0 =C2=A0 =C2=A0 =C2=A0 <a href=3D"http://roscidus.com=
/blog/" rel=3D"noreferrer" target=3D"_blank">http://roscidus.com/blog/</a><=
br>
GPG: DA98 25AE CAD0 8975 7CDA=C2=A0 BD8E 0713 3F96 CA74 D8BA<br>
</font></span><div class=3D"HOEnZb"><div class=3D"h5"><br>
_______________________________________________<br>
MirageOS-devel mailing list<br>
<a href=3D"mailto:MirageOS-devel@lists.xenproject.org">MirageOS-devel@lists=
.xenproject.org</a><br>
<a href=3D"http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-de=
vel" rel=3D"noreferrer" target=3D"_blank">http://lists.xenproject.org/cgi-b=
in/mailman/listinfo/mirageos-devel</a><br>
</div></div></blockquote></div><br><br clear=3D"all"><div><br></div>-- <br>=
<div class=3D"gmail_signature">Dave Scott</div>
</div></div>

--047d7b5d649a3b9d94052a3dee7f--


--===============1495113377472751123==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============1495113377472751123==--


From mirageos-devel-bounces@lists.xenproject.org Wed Jan 27 16:03:22 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 27 Jan 2016 16:03:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aOSYo-0002zC-6Z; Wed, 27 Jan 2016 16:03:10 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <talex5@gmail.com>) id 1aOSYm-0002yw-HW
	for mirageos-devel@lists.xenproject.org; Wed, 27 Jan 2016 16:03:08 +0000
Received: from [85.158.143.35] by server-2.bemta-4.messagelabs.com id
	93/56-08977-B3AE8A65; Wed, 27 Jan 2016 16:03:07 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-7.tower-21.messagelabs.com!1453910561!12589068!1
X-Originating-IP: [209.85.213.48]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 21417 invoked from network); 27 Jan 2016 16:03:07 -0000
Received: from mail-vk0-f48.google.com (HELO mail-vk0-f48.google.com)
	(209.85.213.48)
	by server-7.tower-21.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 27 Jan 2016 16:03:07 -0000
Received: by mail-vk0-f48.google.com with SMTP id e185so7409198vkb.1
	for <mirageos-devel@lists.xenproject.org>;
	Wed, 27 Jan 2016 08:03:05 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:date:message-id:subject:from:to:content-type;
	bh=vVSJFdbZopWGly4ZYay7DYDoD/QRci5C7uSBEaAiVns=;
	b=Wt9Yx7S4FdZrwe/ws5+ryopK7u7m4AV/9Og3+H5HByj5n2wfEDbG5db+/O2K4ykS5h
	oT4GHqzt6+XaECEiMdyrG//ga3/TgZ/k3E2ZbrJfn4I1nMuzgM+cIRUKNl/+UWhqTAO9
	5qUVYL9bFb/HQdclYWqR1fhpvPU+0Fs/zeXgkiAOXYBT0kUCqNiFb3h9cU9wlOICr10Y
	OVE8QPdZP8RHwkbkFZuLVhEhvfb6dxXWDtKhdrgOqSich1+3av3OfeyojMyOdv+f9FWJ
	tvZd1dmrGdgh3mV8zmiAfwf3FSTTTFVtRTGdU3tmeJIYf2XouHsgGDS3BSjMfqokMecg
	P8bg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:date:message-id:subject:from:to
	:content-type;
	bh=vVSJFdbZopWGly4ZYay7DYDoD/QRci5C7uSBEaAiVns=;
	b=EI7doICi1lbc4ie2vStC+NlHpZN0J6vPzXsBnRDzX7W7iLVUzcyL1G5yBXw9xiIBBg
	b8YxYHM6j2wqxynz1rfu43UkOUncPHZbjWoYx+jbMufcBVncjcYNbub6YRkentefDDbn
	KnOrPXQAC9CzrAEnPWCxgsBam3PrpjkdWy0bLGV7BsT6duWuZ9gAY3iHYiZCQCCbS7Fb
	B7BWpXEyOHt5CpJAhnNN71B0NFc3JsSQr+o1Gax6dqa+gD7DFBqlWklgDBlcg171Hxb6
	3iRLFmx2c+k9tr26PqweMX+NNc2ZtREyAfb7DqO0ChxGbcCLrl84XTr7PnvZqHuXQNe/
	CSew==
X-Gm-Message-State: AG10YORIEOi6P0hAICBcTnLzuPwBXJRo/g8g/OPPiel/saHNrf+9CjjKVd1yqtSlb+vOdX6QDzBO0zo590a+AA==
MIME-Version: 1.0
X-Received: by 10.31.16.101 with SMTP id g98mr18993660vki.41.1453910557974;
	Wed, 27 Jan 2016 08:02:37 -0800 (PST)
Received: by 10.31.130.129 with HTTP; Wed, 27 Jan 2016 08:02:37 -0800 (PST)
Date: Wed, 27 Jan 2016 16:02:37 +0000
Message-ID: <CAG4opy-u1E+cv92tKoChuHFw6jN26Bwhw1t6TEThDGqx5U5BnQ@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: [MirageOS-devel] MirageOS fortnightly call
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

Does anyone know if this week's call is happening? I thought Amir
mentioned that he wanted to move it back by a week, but I haven't
heard anything. Will assume it's not happening unless someone posts to
say it is...


-- 
Dr Thomas Leonard        http://roscidus.com/blog/
GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Wed Jan 27 16:03:22 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 27 Jan 2016 16:03:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aOSYo-0002zC-6Z; Wed, 27 Jan 2016 16:03:10 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <talex5@gmail.com>) id 1aOSYm-0002yw-HW
	for mirageos-devel@lists.xenproject.org; Wed, 27 Jan 2016 16:03:08 +0000
Received: from [85.158.143.35] by server-2.bemta-4.messagelabs.com id
	93/56-08977-B3AE8A65; Wed, 27 Jan 2016 16:03:07 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-7.tower-21.messagelabs.com!1453910561!12589068!1
X-Originating-IP: [209.85.213.48]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 21417 invoked from network); 27 Jan 2016 16:03:07 -0000
Received: from mail-vk0-f48.google.com (HELO mail-vk0-f48.google.com)
	(209.85.213.48)
	by server-7.tower-21.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 27 Jan 2016 16:03:07 -0000
Received: by mail-vk0-f48.google.com with SMTP id e185so7409198vkb.1
	for <mirageos-devel@lists.xenproject.org>;
	Wed, 27 Jan 2016 08:03:05 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:date:message-id:subject:from:to:content-type;
	bh=vVSJFdbZopWGly4ZYay7DYDoD/QRci5C7uSBEaAiVns=;
	b=Wt9Yx7S4FdZrwe/ws5+ryopK7u7m4AV/9Og3+H5HByj5n2wfEDbG5db+/O2K4ykS5h
	oT4GHqzt6+XaECEiMdyrG//ga3/TgZ/k3E2ZbrJfn4I1nMuzgM+cIRUKNl/+UWhqTAO9
	5qUVYL9bFb/HQdclYWqR1fhpvPU+0Fs/zeXgkiAOXYBT0kUCqNiFb3h9cU9wlOICr10Y
	OVE8QPdZP8RHwkbkFZuLVhEhvfb6dxXWDtKhdrgOqSich1+3av3OfeyojMyOdv+f9FWJ
	tvZd1dmrGdgh3mV8zmiAfwf3FSTTTFVtRTGdU3tmeJIYf2XouHsgGDS3BSjMfqokMecg
	P8bg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:date:message-id:subject:from:to
	:content-type;
	bh=vVSJFdbZopWGly4ZYay7DYDoD/QRci5C7uSBEaAiVns=;
	b=EI7doICi1lbc4ie2vStC+NlHpZN0J6vPzXsBnRDzX7W7iLVUzcyL1G5yBXw9xiIBBg
	b8YxYHM6j2wqxynz1rfu43UkOUncPHZbjWoYx+jbMufcBVncjcYNbub6YRkentefDDbn
	KnOrPXQAC9CzrAEnPWCxgsBam3PrpjkdWy0bLGV7BsT6duWuZ9gAY3iHYiZCQCCbS7Fb
	B7BWpXEyOHt5CpJAhnNN71B0NFc3JsSQr+o1Gax6dqa+gD7DFBqlWklgDBlcg171Hxb6
	3iRLFmx2c+k9tr26PqweMX+NNc2ZtREyAfb7DqO0ChxGbcCLrl84XTr7PnvZqHuXQNe/
	CSew==
X-Gm-Message-State: AG10YORIEOi6P0hAICBcTnLzuPwBXJRo/g8g/OPPiel/saHNrf+9CjjKVd1yqtSlb+vOdX6QDzBO0zo590a+AA==
MIME-Version: 1.0
X-Received: by 10.31.16.101 with SMTP id g98mr18993660vki.41.1453910557974;
	Wed, 27 Jan 2016 08:02:37 -0800 (PST)
Received: by 10.31.130.129 with HTTP; Wed, 27 Jan 2016 08:02:37 -0800 (PST)
Date: Wed, 27 Jan 2016 16:02:37 +0000
Message-ID: <CAG4opy-u1E+cv92tKoChuHFw6jN26Bwhw1t6TEThDGqx5U5BnQ@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: [MirageOS-devel] MirageOS fortnightly call
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

Does anyone know if this week's call is happening? I thought Amir
mentioned that he wanted to move it back by a week, but I haven't
heard anything. Will assume it's not happening unless someone posts to
say it is...


-- 
Dr Thomas Leonard        http://roscidus.com/blog/
GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Wed Jan 27 16:13:26 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 27 Jan 2016 16:13:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aOSii-0004WA-Lw; Wed, 27 Jan 2016 16:13:24 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <amc79@cam.ac.uk>) id 1aOSig-0004W3-KP
	for mirageos-devel@lists.xenproject.org; Wed, 27 Jan 2016 16:13:22 +0000
Received: from [85.158.143.35] by server-2.bemta-4.messagelabs.com id
	58/45-08977-1ACE8A65; Wed, 27 Jan 2016 16:13:21 +0000
X-Env-Sender: amc79@cam.ac.uk
X-Msg-Ref: server-15.tower-21.messagelabs.com!1453911164!12457459!1
X-Originating-IP: [131.111.8.132]
X-SpamReason: No, hits=0.2 required=7.0 tests=MIME_QP_LONG_LINE
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 9077 invoked from network); 27 Jan 2016 16:13:21 -0000
Received: from ppsw-32.csi.cam.ac.uk (HELO ppsw-32.csi.cam.ac.uk)
	(131.111.8.132)
	by server-15.tower-21.messagelabs.com with DHE-RSA-AES256-GCM-SHA384
	encrypted SMTP; 27 Jan 2016 16:13:21 -0000
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: http://www.cam.ac.uk/cs/email/scanner/
Received: from [172.58.104.43] (port=22026 helo=[172.20.10.10])
	by ppsw-32.csi.cam.ac.uk (smtp.hermes.cam.ac.uk [131.111.8.156]:587)
	with esmtpsa (PLAIN:amc79) (TLSv1:ECDHE-RSA-AES256-SHA:256)
	id 1aOSi0-000s6x-1A (Exim 4.86_36-e07b163)
	(return-path <amc79@cam.ac.uk>); Wed, 27 Jan 2016 16:12:41 +0000
Mime-Version: 1.0 (1.0)
From: Amir Chaudhry <amc79@cam.ac.uk>
X-Mailer: iPhone Mail (13D14)
In-Reply-To: <CAG4opy-u1E+cv92tKoChuHFw6jN26Bwhw1t6TEThDGqx5U5BnQ@mail.gmail.com>
Date: Wed, 27 Jan 2016 08:12:26 -0800
Message-Id: <C5BF0254-68E2-45DE-A5ED-6858ECA5C4A4@cam.ac.uk>
References: <CAG4opy-u1E+cv92tKoChuHFw6jN26Bwhw1t6TEThDGqx5U5BnQ@mail.gmail.com>
To: Thomas Leonard <talex5@gmail.com>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] MirageOS fortnightly call
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

My apologies! 

I did move the call back by a week and forgot to mention it on this list. We'll be back to the regular cadence from next Wednesday (3rd Feb). 

Best wishes,
Amir

--
Sent via mobile

> On 27 Jan 2016, at 08:02, Thomas Leonard <talex5@gmail.com> wrote:
> 
> Does anyone know if this week's call is happening? I thought Amir
> mentioned that he wanted to move it back by a week, but I haven't
> heard anything. Will assume it's not happening unless someone posts to
> say it is...
> 
> 
> -- 
> Dr Thomas Leonard        http://roscidus.com/blog/
> GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA
> 
> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Wed Jan 27 16:13:26 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 27 Jan 2016 16:13:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aOSii-0004WA-Lw; Wed, 27 Jan 2016 16:13:24 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <amc79@cam.ac.uk>) id 1aOSig-0004W3-KP
	for mirageos-devel@lists.xenproject.org; Wed, 27 Jan 2016 16:13:22 +0000
Received: from [85.158.143.35] by server-2.bemta-4.messagelabs.com id
	58/45-08977-1ACE8A65; Wed, 27 Jan 2016 16:13:21 +0000
X-Env-Sender: amc79@cam.ac.uk
X-Msg-Ref: server-15.tower-21.messagelabs.com!1453911164!12457459!1
X-Originating-IP: [131.111.8.132]
X-SpamReason: No, hits=0.2 required=7.0 tests=MIME_QP_LONG_LINE
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 9077 invoked from network); 27 Jan 2016 16:13:21 -0000
Received: from ppsw-32.csi.cam.ac.uk (HELO ppsw-32.csi.cam.ac.uk)
	(131.111.8.132)
	by server-15.tower-21.messagelabs.com with DHE-RSA-AES256-GCM-SHA384
	encrypted SMTP; 27 Jan 2016 16:13:21 -0000
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: http://www.cam.ac.uk/cs/email/scanner/
Received: from [172.58.104.43] (port=22026 helo=[172.20.10.10])
	by ppsw-32.csi.cam.ac.uk (smtp.hermes.cam.ac.uk [131.111.8.156]:587)
	with esmtpsa (PLAIN:amc79) (TLSv1:ECDHE-RSA-AES256-SHA:256)
	id 1aOSi0-000s6x-1A (Exim 4.86_36-e07b163)
	(return-path <amc79@cam.ac.uk>); Wed, 27 Jan 2016 16:12:41 +0000
Mime-Version: 1.0 (1.0)
From: Amir Chaudhry <amc79@cam.ac.uk>
X-Mailer: iPhone Mail (13D14)
In-Reply-To: <CAG4opy-u1E+cv92tKoChuHFw6jN26Bwhw1t6TEThDGqx5U5BnQ@mail.gmail.com>
Date: Wed, 27 Jan 2016 08:12:26 -0800
Message-Id: <C5BF0254-68E2-45DE-A5ED-6858ECA5C4A4@cam.ac.uk>
References: <CAG4opy-u1E+cv92tKoChuHFw6jN26Bwhw1t6TEThDGqx5U5BnQ@mail.gmail.com>
To: Thomas Leonard <talex5@gmail.com>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] MirageOS fortnightly call
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

My apologies! 

I did move the call back by a week and forgot to mention it on this list. We'll be back to the regular cadence from next Wednesday (3rd Feb). 

Best wishes,
Amir

--
Sent via mobile

> On 27 Jan 2016, at 08:02, Thomas Leonard <talex5@gmail.com> wrote:
> 
> Does anyone know if this week's call is happening? I thought Amir
> mentioned that he wanted to move it back by a week, but I haven't
> heard anything. Will assume it's not happening unless someone posts to
> say it is...
> 
> 
> -- 
> Dr Thomas Leonard        http://roscidus.com/blog/
> GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA
> 
> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Wed Jan 27 16:28:10 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 27 Jan 2016 16:28:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aOSwz-0006Hg-0v; Wed, 27 Jan 2016 16:28:09 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <cosmokramer@gmail.com>) id 1aOSwy-0006Hb-71
	for mirageos-devel@lists.xenproject.org; Wed, 27 Jan 2016 16:28:08 +0000
Received: from [85.158.139.211] by server-10.bemta-5.messagelabs.com id
	05/F3-17090-710F8A65; Wed, 27 Jan 2016 16:28:07 +0000
X-Env-Sender: cosmokramer@gmail.com
X-Msg-Ref: server-5.tower-206.messagelabs.com!1453912086!18533134!1
X-Originating-IP: [74.125.82.53]
X-SpamReason: No, hits=1.2 required=7.0 tests=HTML_20_30,HTML_MESSAGE,
	RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 1150 invoked from network); 27 Jan 2016 16:28:06 -0000
Received: from mail-wm0-f53.google.com (HELO mail-wm0-f53.google.com)
	(74.125.82.53)
	by server-5.tower-206.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 27 Jan 2016 16:28:06 -0000
Received: by mail-wm0-f53.google.com with SMTP id n5so36629744wmn.1
	for <mirageos-devel@lists.xenproject.org>;
	Wed, 27 Jan 2016 08:28:06 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:date:message-id:subject:from:to:content-type;
	bh=Ndv3ogCnfWyn9IVwEAtOE3LjzxevMahs7qFUVMtPAFE=;
	b=KVSpXLwfFQwUkpmZTOw2sz0o/m3MfZ6rkXLpkmCZLIhGWT12k8fCktVUYYxsgWgylB
	GepGbjkbuW/jRNRW8SwpnRS41ZclR+/LqoiOTd6d/Qua41A2NOvtMABrgF8ggS/w8oD4
	PMY7wMhr7YawZ3/KpDizCNTStcvZakspxyRb5enaaTRPN7/zcMKHN6QjApXZp+k9IidK
	gSDDc7F58wcmaybNED3qEiqNjxXSwFPQW5LHmdSKrC1GbqOCvtgrpJYw7xzWfwHAfjb4
	fkpvs/jhkNBfVDBJCoyFrY0KlF5X7sRmwhP4A29R6JnCgC2Ig7fBEsE87pAel0F5ylOe
	J7dw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:date:message-id:subject:from:to
	:content-type;
	bh=Ndv3ogCnfWyn9IVwEAtOE3LjzxevMahs7qFUVMtPAFE=;
	b=djpbgLNkfWY8mh1Iy9cUuuZCvmJpMDmLwX4vnOhcpdYZI2krFUPw83iW68ovr1UIWn
	k50K4Mpxz8Tl+CkKR/h3ULkATKCzNCrsfPRBZ3h4jEhJTRZwcI2MRB7Lvf2gjxuwshHu
	VquHVmR3FUBb6mjg+fmBZfOW5tRT9l6Gj30csPDPmAS8O6gVUwtkKleRb7hiSrs6paO9
	eFSqEfh2IpkaNvhLDvfNeanH493jRILfpwffYWcsVl8eav6JUrTzBGoyt9dFvHcO1Ooy
	sIlaTza5KVykdBXIm/dQtNIwXW6UgPBzjt4/6aK8u84stXqRjg/tFSzgJTpIZoKeSf/k
	Of/g==
X-Gm-Message-State: AG10YOT60Fn8wWzW2b491FGA6WJu1nK9UqaFPEWS0acjYp914RdoJfT2iHBhu1jAdg7uK++dGZHKi8yYLuRBSA==
MIME-Version: 1.0
X-Received: by 10.28.222.86 with SMTP id v83mr29624004wmg.17.1453912086246;
	Wed, 27 Jan 2016 08:28:06 -0800 (PST)
Received: by 10.194.82.195 with HTTP; Wed, 27 Jan 2016 08:28:06 -0800 (PST)
Date: Wed, 27 Jan 2016 08:28:06 -0800
Message-ID: <CAAHpSfiDq+ggXWcdHfmM9NG+LcV9OEbJLoL6U-z8pX5gPYD8aw@mail.gmail.com>
From: Madhuri Yechuri <cosmokramer@gmail.com>
To: mirageos-devel@lists.xenproject.org
Subject: [MirageOS-devel] request for beginner project suggestion
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============1538583629179093903=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============1538583629179093903==
Content-Type: multipart/alternative; boundary=001a114b10286f7e8d052a534953

--001a114b10286f7e8d052a534953
Content-Type: text/plain; charset=UTF-8

Hi,

i am interested in contributing to MirageOS (during non-work hours), and
wondering if there is a beginner project recommendation? This would be my
first project in OCAML (have 15 years industry coding experience in C
(Oracle Database Server, VMware ESX) and C++ (VMware vCenter), and recent 9
months in Python (Flocker)).

Looking through https://github.com/mirage/mirage-www/wiki/Pioneer-Projects
, i understand Logging is taken from recent emails on this mailing list. Is
there is any other beginner-friendly project that i could take up?

Thanks a lot!
madhuri.

--001a114b10286f7e8d052a534953
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Hi,<div><br></div><div>i am interested in contributing to =
MirageOS (during non-work hours), and wondering if there is a beginner proj=
ect recommendation? This would be my first project in OCAML (have 15 years =
industry coding experience in C (Oracle Database Server, VMware ESX) and C+=
+ (VMware vCenter), and recent 9 months in Python (Flocker)).</div><div><br=
></div><div>Looking through=C2=A0<a href=3D"https://github.com/mirage/mirag=
e-www/wiki/Pioneer-Projects">https://github.com/mirage/mirage-www/wiki/Pion=
eer-Projects</a> , i understand Logging is taken from recent emails on this=
 mailing list. Is there is any other beginner-friendly project that i could=
 take up?</div><div><br></div><div>Thanks a lot!</div><div>madhuri.</div></=
div>

--001a114b10286f7e8d052a534953--


--===============1538583629179093903==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============1538583629179093903==--


From mirageos-devel-bounces@lists.xenproject.org Wed Jan 27 16:28:10 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 27 Jan 2016 16:28:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aOSwz-0006Hg-0v; Wed, 27 Jan 2016 16:28:09 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <cosmokramer@gmail.com>) id 1aOSwy-0006Hb-71
	for mirageos-devel@lists.xenproject.org; Wed, 27 Jan 2016 16:28:08 +0000
Received: from [85.158.139.211] by server-10.bemta-5.messagelabs.com id
	05/F3-17090-710F8A65; Wed, 27 Jan 2016 16:28:07 +0000
X-Env-Sender: cosmokramer@gmail.com
X-Msg-Ref: server-5.tower-206.messagelabs.com!1453912086!18533134!1
X-Originating-IP: [74.125.82.53]
X-SpamReason: No, hits=1.2 required=7.0 tests=HTML_20_30,HTML_MESSAGE,
	RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 1150 invoked from network); 27 Jan 2016 16:28:06 -0000
Received: from mail-wm0-f53.google.com (HELO mail-wm0-f53.google.com)
	(74.125.82.53)
	by server-5.tower-206.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 27 Jan 2016 16:28:06 -0000
Received: by mail-wm0-f53.google.com with SMTP id n5so36629744wmn.1
	for <mirageos-devel@lists.xenproject.org>;
	Wed, 27 Jan 2016 08:28:06 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:date:message-id:subject:from:to:content-type;
	bh=Ndv3ogCnfWyn9IVwEAtOE3LjzxevMahs7qFUVMtPAFE=;
	b=KVSpXLwfFQwUkpmZTOw2sz0o/m3MfZ6rkXLpkmCZLIhGWT12k8fCktVUYYxsgWgylB
	GepGbjkbuW/jRNRW8SwpnRS41ZclR+/LqoiOTd6d/Qua41A2NOvtMABrgF8ggS/w8oD4
	PMY7wMhr7YawZ3/KpDizCNTStcvZakspxyRb5enaaTRPN7/zcMKHN6QjApXZp+k9IidK
	gSDDc7F58wcmaybNED3qEiqNjxXSwFPQW5LHmdSKrC1GbqOCvtgrpJYw7xzWfwHAfjb4
	fkpvs/jhkNBfVDBJCoyFrY0KlF5X7sRmwhP4A29R6JnCgC2Ig7fBEsE87pAel0F5ylOe
	J7dw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:date:message-id:subject:from:to
	:content-type;
	bh=Ndv3ogCnfWyn9IVwEAtOE3LjzxevMahs7qFUVMtPAFE=;
	b=djpbgLNkfWY8mh1Iy9cUuuZCvmJpMDmLwX4vnOhcpdYZI2krFUPw83iW68ovr1UIWn
	k50K4Mpxz8Tl+CkKR/h3ULkATKCzNCrsfPRBZ3h4jEhJTRZwcI2MRB7Lvf2gjxuwshHu
	VquHVmR3FUBb6mjg+fmBZfOW5tRT9l6Gj30csPDPmAS8O6gVUwtkKleRb7hiSrs6paO9
	eFSqEfh2IpkaNvhLDvfNeanH493jRILfpwffYWcsVl8eav6JUrTzBGoyt9dFvHcO1Ooy
	sIlaTza5KVykdBXIm/dQtNIwXW6UgPBzjt4/6aK8u84stXqRjg/tFSzgJTpIZoKeSf/k
	Of/g==
X-Gm-Message-State: AG10YOT60Fn8wWzW2b491FGA6WJu1nK9UqaFPEWS0acjYp914RdoJfT2iHBhu1jAdg7uK++dGZHKi8yYLuRBSA==
MIME-Version: 1.0
X-Received: by 10.28.222.86 with SMTP id v83mr29624004wmg.17.1453912086246;
	Wed, 27 Jan 2016 08:28:06 -0800 (PST)
Received: by 10.194.82.195 with HTTP; Wed, 27 Jan 2016 08:28:06 -0800 (PST)
Date: Wed, 27 Jan 2016 08:28:06 -0800
Message-ID: <CAAHpSfiDq+ggXWcdHfmM9NG+LcV9OEbJLoL6U-z8pX5gPYD8aw@mail.gmail.com>
From: Madhuri Yechuri <cosmokramer@gmail.com>
To: mirageos-devel@lists.xenproject.org
Subject: [MirageOS-devel] request for beginner project suggestion
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============1538583629179093903=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============1538583629179093903==
Content-Type: multipart/alternative; boundary=001a114b10286f7e8d052a534953

--001a114b10286f7e8d052a534953
Content-Type: text/plain; charset=UTF-8

Hi,

i am interested in contributing to MirageOS (during non-work hours), and
wondering if there is a beginner project recommendation? This would be my
first project in OCAML (have 15 years industry coding experience in C
(Oracle Database Server, VMware ESX) and C++ (VMware vCenter), and recent 9
months in Python (Flocker)).

Looking through https://github.com/mirage/mirage-www/wiki/Pioneer-Projects
, i understand Logging is taken from recent emails on this mailing list. Is
there is any other beginner-friendly project that i could take up?

Thanks a lot!
madhuri.

--001a114b10286f7e8d052a534953
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Hi,<div><br></div><div>i am interested in contributing to =
MirageOS (during non-work hours), and wondering if there is a beginner proj=
ect recommendation? This would be my first project in OCAML (have 15 years =
industry coding experience in C (Oracle Database Server, VMware ESX) and C+=
+ (VMware vCenter), and recent 9 months in Python (Flocker)).</div><div><br=
></div><div>Looking through=C2=A0<a href=3D"https://github.com/mirage/mirag=
e-www/wiki/Pioneer-Projects">https://github.com/mirage/mirage-www/wiki/Pion=
eer-Projects</a> , i understand Logging is taken from recent emails on this=
 mailing list. Is there is any other beginner-friendly project that i could=
 take up?</div><div><br></div><div>Thanks a lot!</div><div>madhuri.</div></=
div>

--001a114b10286f7e8d052a534953--


--===============1538583629179093903==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============1538583629179093903==--


From mirageos-devel-bounces@lists.xenproject.org Wed Jan 27 16:40:43 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 27 Jan 2016 16:40:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aOT97-00078B-1m; Wed, 27 Jan 2016 16:40:41 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <talex5@gmail.com>) id 1aOT95-000785-8G
	for mirageos-devel@lists.xenproject.org; Wed, 27 Jan 2016 16:40:39 +0000
Received: from [85.158.139.211] by server-1.bemta-5.messagelabs.com id
	23/52-15353-603F8A65; Wed, 27 Jan 2016 16:40:38 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-11.tower-206.messagelabs.com!1453912837!18601797!1
X-Originating-IP: [209.85.213.54]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 18009 invoked from network); 27 Jan 2016 16:40:37 -0000
Received: from mail-vk0-f54.google.com (HELO mail-vk0-f54.google.com)
	(209.85.213.54)
	by server-11.tower-206.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 27 Jan 2016 16:40:37 -0000
Received: by mail-vk0-f54.google.com with SMTP id n1so8165723vkb.3
	for <mirageos-devel@lists.xenproject.org>;
	Wed, 27 Jan 2016 08:40:37 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=x9VK6+vUev0vYh6sM2CNybiLiXkYK0MOiN13p9JNBn0=;
	b=Fwft+ttnZiXXXehYTwXLB1mYq/Y1mKocFxXUS/PFCHQvNUOhuxCI3J5pIWDALiHRBK
	Rg1MH03sYpnHnlgxtdJ5wBu7BFtwcAMvLlGORNVOeJG8dv4i2XlLmcBparijYT4EMzqG
	NJyHBkkcoa0MqK8e9YeUCOdghgCbqT/6aU3IC1b2G93V9S16P6lrQqok7ON+q9iIfkdC
	r21+8GkbRwLEnceaeb/SJ/gmMx1sYTbb+z5uhZb/i7ews72kl6d9UUP0AKpOzJDrTrfp
	vIT+vQg2NZfK2grtG+xXwMcqYUbWfyjz0GNFvgRuFdj1E47D5DnmH7wanO9C6tXxHyPF
	22Sw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:in-reply-to:references:date
	:message-id:subject:from:to:cc:content-type;
	bh=x9VK6+vUev0vYh6sM2CNybiLiXkYK0MOiN13p9JNBn0=;
	b=b2ZgRLxeZ9CWEaEHLQuFnx0EKW4PqZjpCLYJ4RpMhMyPl2XfNnmSn2YiUJQ10UCjQ/
	+rM7uVmyIsLSLiCxCZaJFGSn1SUo/ZTy4CzZnxPDGEC2zOvqWOvt/gWg4tHOwcImNeKq
	7uxO9yT6byv9sp1LjUKOtAVPfGK11GexhxfJBfh/QrwI9V7LFBsfWz+ru7Q302Wn/QuX
	yoYtMgPkKWcVIfo7VibBKpLbi3kNJr0pykL5n5puX5U6IX9OPqcHfZaeecEjQgMlRdEs
	juhRoH5CHRvyhLafts4HdrCdr5Mr6s+cxPU3nzwXYsvSwiqBZZBiSM//k/vL2fYMR93J
	anIQ==
X-Gm-Message-State: AG10YORqAbDIQ0KFbAeQYmXshxWlMJwHJL/Gm+NltDKTdk5zphT/ax6litsK/v7uzKeTBTaP+94Z0sLcEuVkHQ==
MIME-Version: 1.0
X-Received: by 10.31.178.146 with SMTP id b140mr18323951vkf.108.1453912836554; 
	Wed, 27 Jan 2016 08:40:36 -0800 (PST)
Received: by 10.31.130.129 with HTTP; Wed, 27 Jan 2016 08:40:36 -0800 (PST)
In-Reply-To: <CAAHpSfiDq+ggXWcdHfmM9NG+LcV9OEbJLoL6U-z8pX5gPYD8aw@mail.gmail.com>
References: <CAAHpSfiDq+ggXWcdHfmM9NG+LcV9OEbJLoL6U-z8pX5gPYD8aw@mail.gmail.com>
Date: Wed, 27 Jan 2016 16:40:36 +0000
Message-ID: <CAG4opy9TThL8-WqSx30eE_zc0LNN57MZjfKuPy6SFkqbygdUAA@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Madhuri Yechuri <cosmokramer@gmail.com>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] request for beginner project suggestion
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 27 January 2016 at 16:28, Madhuri Yechuri <cosmokramer@gmail.com> wrote:
> Hi,
>
> i am interested in contributing to MirageOS (during non-work hours), and
> wondering if there is a beginner project recommendation? This would be my
> first project in OCAML (have 15 years industry coding experience in C
> (Oracle Database Server, VMware ESX) and C++ (VMware vCenter), and recent 9
> months in Python (Flocker)).
>
> Looking through https://github.com/mirage/mirage-www/wiki/Pioneer-Projects ,
> i understand Logging is taken from recent emails on this mailing list. Is
> there is any other beginner-friendly project that i could take up?
>
> Thanks a lot!
> madhuri.

Hi Madhuri,

There are lots of libraries that need improved logging, so as long as
people say which ones they're working on there should be no problem -
it would be great if you want to work on that!


-- 
Dr Thomas Leonard        http://roscidus.com/blog/
GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Wed Jan 27 16:40:43 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 27 Jan 2016 16:40:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aOT97-00078B-1m; Wed, 27 Jan 2016 16:40:41 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <talex5@gmail.com>) id 1aOT95-000785-8G
	for mirageos-devel@lists.xenproject.org; Wed, 27 Jan 2016 16:40:39 +0000
Received: from [85.158.139.211] by server-1.bemta-5.messagelabs.com id
	23/52-15353-603F8A65; Wed, 27 Jan 2016 16:40:38 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-11.tower-206.messagelabs.com!1453912837!18601797!1
X-Originating-IP: [209.85.213.54]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 18009 invoked from network); 27 Jan 2016 16:40:37 -0000
Received: from mail-vk0-f54.google.com (HELO mail-vk0-f54.google.com)
	(209.85.213.54)
	by server-11.tower-206.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 27 Jan 2016 16:40:37 -0000
Received: by mail-vk0-f54.google.com with SMTP id n1so8165723vkb.3
	for <mirageos-devel@lists.xenproject.org>;
	Wed, 27 Jan 2016 08:40:37 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=x9VK6+vUev0vYh6sM2CNybiLiXkYK0MOiN13p9JNBn0=;
	b=Fwft+ttnZiXXXehYTwXLB1mYq/Y1mKocFxXUS/PFCHQvNUOhuxCI3J5pIWDALiHRBK
	Rg1MH03sYpnHnlgxtdJ5wBu7BFtwcAMvLlGORNVOeJG8dv4i2XlLmcBparijYT4EMzqG
	NJyHBkkcoa0MqK8e9YeUCOdghgCbqT/6aU3IC1b2G93V9S16P6lrQqok7ON+q9iIfkdC
	r21+8GkbRwLEnceaeb/SJ/gmMx1sYTbb+z5uhZb/i7ews72kl6d9UUP0AKpOzJDrTrfp
	vIT+vQg2NZfK2grtG+xXwMcqYUbWfyjz0GNFvgRuFdj1E47D5DnmH7wanO9C6tXxHyPF
	22Sw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:in-reply-to:references:date
	:message-id:subject:from:to:cc:content-type;
	bh=x9VK6+vUev0vYh6sM2CNybiLiXkYK0MOiN13p9JNBn0=;
	b=b2ZgRLxeZ9CWEaEHLQuFnx0EKW4PqZjpCLYJ4RpMhMyPl2XfNnmSn2YiUJQ10UCjQ/
	+rM7uVmyIsLSLiCxCZaJFGSn1SUo/ZTy4CzZnxPDGEC2zOvqWOvt/gWg4tHOwcImNeKq
	7uxO9yT6byv9sp1LjUKOtAVPfGK11GexhxfJBfh/QrwI9V7LFBsfWz+ru7Q302Wn/QuX
	yoYtMgPkKWcVIfo7VibBKpLbi3kNJr0pykL5n5puX5U6IX9OPqcHfZaeecEjQgMlRdEs
	juhRoH5CHRvyhLafts4HdrCdr5Mr6s+cxPU3nzwXYsvSwiqBZZBiSM//k/vL2fYMR93J
	anIQ==
X-Gm-Message-State: AG10YORqAbDIQ0KFbAeQYmXshxWlMJwHJL/Gm+NltDKTdk5zphT/ax6litsK/v7uzKeTBTaP+94Z0sLcEuVkHQ==
MIME-Version: 1.0
X-Received: by 10.31.178.146 with SMTP id b140mr18323951vkf.108.1453912836554; 
	Wed, 27 Jan 2016 08:40:36 -0800 (PST)
Received: by 10.31.130.129 with HTTP; Wed, 27 Jan 2016 08:40:36 -0800 (PST)
In-Reply-To: <CAAHpSfiDq+ggXWcdHfmM9NG+LcV9OEbJLoL6U-z8pX5gPYD8aw@mail.gmail.com>
References: <CAAHpSfiDq+ggXWcdHfmM9NG+LcV9OEbJLoL6U-z8pX5gPYD8aw@mail.gmail.com>
Date: Wed, 27 Jan 2016 16:40:36 +0000
Message-ID: <CAG4opy9TThL8-WqSx30eE_zc0LNN57MZjfKuPy6SFkqbygdUAA@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Madhuri Yechuri <cosmokramer@gmail.com>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] request for beginner project suggestion
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 27 January 2016 at 16:28, Madhuri Yechuri <cosmokramer@gmail.com> wrote:
> Hi,
>
> i am interested in contributing to MirageOS (during non-work hours), and
> wondering if there is a beginner project recommendation? This would be my
> first project in OCAML (have 15 years industry coding experience in C
> (Oracle Database Server, VMware ESX) and C++ (VMware vCenter), and recent 9
> months in Python (Flocker)).
>
> Looking through https://github.com/mirage/mirage-www/wiki/Pioneer-Projects ,
> i understand Logging is taken from recent emails on this mailing list. Is
> there is any other beginner-friendly project that i could take up?
>
> Thanks a lot!
> madhuri.

Hi Madhuri,

There are lots of libraries that need improved logging, so as long as
people say which ones they're working on there should be no problem -
it would be great if you want to work on that!


-- 
Dr Thomas Leonard        http://roscidus.com/blog/
GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Wed Jan 27 16:48:47 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 27 Jan 2016 16:48:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aOTGv-0007XG-RM; Wed, 27 Jan 2016 16:48:45 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <lars.kurth.xen@gmail.com>)
	id 1aOTGt-0007Wp-HK; Wed, 27 Jan 2016 16:48:43 +0000
Received: from [85.158.139.211] by server-4.bemta-5.messagelabs.com id
	0C/F5-12635-AE4F8A65; Wed, 27 Jan 2016 16:48:42 +0000
X-Env-Sender: lars.kurth.xen@gmail.com
X-Msg-Ref: server-4.tower-206.messagelabs.com!1453913321!18597984!1
X-Originating-IP: [74.125.82.46]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 49719 invoked from network); 27 Jan 2016 16:48:41 -0000
Received: from mail-wm0-f46.google.com (HELO mail-wm0-f46.google.com)
	(74.125.82.46)
	by server-4.tower-206.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 27 Jan 2016 16:48:41 -0000
Received: by mail-wm0-f46.google.com with SMTP id n5so35709031wmn.0;
	Wed, 27 Jan 2016 08:48:41 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:content-type:content-transfer-encoding:subject:date:message-id
	:cc:to:mime-version;
	bh=ey9vlWWIwPaOlZj36Spl9r5ZptikZdir6XKmWKJA9Mc=;
	b=IMFqG43oTqUZp0+AeisMxqgB1FhD7zn47ADpddDYoQv1kIUJDIxiYDvnKtnGR1InCw
	VZ4p6ohVl/UPaFkX1YywDbVrI9Di+rv7KrLBrI3QH+RBFCX8dEOLnM40OBxSIG89zFp9
	UbqZv0BQ6ndz+m+usQc5vj7Sobp401zQiT4BJXMEqpynbenRR+8tUHNjAUXY/VwAGK4Q
	JIi+8EQAggZ8YDROVBnmjit0nrdu7UNOvTjW0r8/sA2MhTopCZ04mAW/mWwIknJuiU2N
	TvTQbfXeQvSgbLhL0GyAsNBf9fr5wgmZ7t7istVU2NkDGnSCvVNg4tYRVuZ7A6ZXg15s
	n49A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:from:content-type:content-transfer-encoding
	:subject:date:message-id:cc:to:mime-version;
	bh=ey9vlWWIwPaOlZj36Spl9r5ZptikZdir6XKmWKJA9Mc=;
	b=GdNPz6zu5Ee1MAQOU5kllLe9OsnqJwr/kbP4zzc+tdaPxgQnoNVmleQQ26l7xQWd9u
	OqzoqDIUOVqS5bqbX0QZQJ4M8IEbahBucCaiihS5vsaAXyReAR0s1xCwfgi0T4KU4QlT
	LlpPnW5zoa+Fm9AwUlF0RhqpANRKsh/Pfhs9EAYvvS7jwWZt5Dy9bxsTMgSQJllcwRbM
	Pikxi8i3A0E5BlG0AZKqqkFtknLXe/Ra6brrNORdpmMN1RjKa14jstaNQ4HLOkbTV501
	oOOhI7vqoFqUzqH0TCTATDCZtNW69CsVCmKpDxOPamCE4+wG2kgNTjKuX6YUFPjZM4HC
	BODw==
X-Gm-Message-State: AG10YOSki4a0iIrzW9HGx30iK7AGjj7CIq+FAnnpyIdP/kAscUJoOmbFPDxLCChlNPjaUw==
X-Received: by 10.194.52.72 with SMTP id r8mr29853878wjo.148.1453913321165;
	Wed, 27 Jan 2016 08:48:41 -0800 (PST)
Received: from [192.168.0.9] (5ec0a1a0.skybroadband.com. [94.192.161.160])
	by smtp.gmail.com with ESMTPSA id
	k130sm8505998wmg.6.2016.01.27.08.48.39
	(version=TLSv1/SSLv3 cipher=OTHER);
	Wed, 27 Jan 2016 08:48:39 -0800 (PST)
From: Lars Kurth <lars.kurth.xen@gmail.com>
Date: Wed, 27 Jan 2016 16:48:37 +0000
Message-Id: <C49F5723-E3BE-456D-87C8-A2F4CDE8D43C@gmail.com>
To: xen-devel <xen-devel@lists.xenproject.org>,
	mirageos-devel <mirageos-devel@lists.xenproject.org>,
	Win-pv-devel@lists.xenproject.org, embedded-pv-devel@lists.xenproject.org
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
X-Mailer: Apple Mail (2.2104)
Cc: xen-users@lists.xenproject.org
Subject: [MirageOS-devel] Xen Project Infrastructure Maintenance: xenbits
	(Jan 28), qemu-bitslave & mail & downloads.xenproject.org (Feb 1),
	lists & etherpad (Feb 4th)
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

Hi everyone,

we are rebooting a number of Xen Project services in the next few days to upgrade operating systems. This means that a few services may be temporarily unavailable. The following websites are affected and will be done during the times below. If you notice any issues after the reboot, please reply to this mail or check on the #xeninfra IRC channel.

= Jan 28, 7am - 9am UTC : affecting xenbits =
Affected services: Xen Project source code repositories, automatically generated xenproject docs, list of security vulnerabilities
If you need to clone or commit to any affected repositories please do so before or after

= Feb 1, 7am - 9am UTC : affecting qemu-bitslave and xenproject.org mail aliases and downloads.xenproject.org =
Affected services: qemu-bitslave, mail server, DNS and downloads.xenproject.org
Note that mails to e-mails using foo-bar@xenproject.org may be delayed during the maintenance window. 

= Feb 4, 7am - 9am UTC : affecting xen project mailing lists & ether pad =
Affected services: all foo@lists.xenproject.org mailing lists and ether pads
Note that mails to all mailing lists will be delayed during the maintenance window

Best Regards
Lars
_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Wed Jan 27 16:48:47 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 27 Jan 2016 16:48:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aOTGv-0007XG-RM; Wed, 27 Jan 2016 16:48:45 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <lars.kurth.xen@gmail.com>)
	id 1aOTGt-0007Wp-HK; Wed, 27 Jan 2016 16:48:43 +0000
Received: from [85.158.139.211] by server-4.bemta-5.messagelabs.com id
	0C/F5-12635-AE4F8A65; Wed, 27 Jan 2016 16:48:42 +0000
X-Env-Sender: lars.kurth.xen@gmail.com
X-Msg-Ref: server-4.tower-206.messagelabs.com!1453913321!18597984!1
X-Originating-IP: [74.125.82.46]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 49719 invoked from network); 27 Jan 2016 16:48:41 -0000
Received: from mail-wm0-f46.google.com (HELO mail-wm0-f46.google.com)
	(74.125.82.46)
	by server-4.tower-206.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 27 Jan 2016 16:48:41 -0000
Received: by mail-wm0-f46.google.com with SMTP id n5so35709031wmn.0;
	Wed, 27 Jan 2016 08:48:41 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:content-type:content-transfer-encoding:subject:date:message-id
	:cc:to:mime-version;
	bh=ey9vlWWIwPaOlZj36Spl9r5ZptikZdir6XKmWKJA9Mc=;
	b=IMFqG43oTqUZp0+AeisMxqgB1FhD7zn47ADpddDYoQv1kIUJDIxiYDvnKtnGR1InCw
	VZ4p6ohVl/UPaFkX1YywDbVrI9Di+rv7KrLBrI3QH+RBFCX8dEOLnM40OBxSIG89zFp9
	UbqZv0BQ6ndz+m+usQc5vj7Sobp401zQiT4BJXMEqpynbenRR+8tUHNjAUXY/VwAGK4Q
	JIi+8EQAggZ8YDROVBnmjit0nrdu7UNOvTjW0r8/sA2MhTopCZ04mAW/mWwIknJuiU2N
	TvTQbfXeQvSgbLhL0GyAsNBf9fr5wgmZ7t7istVU2NkDGnSCvVNg4tYRVuZ7A6ZXg15s
	n49A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:from:content-type:content-transfer-encoding
	:subject:date:message-id:cc:to:mime-version;
	bh=ey9vlWWIwPaOlZj36Spl9r5ZptikZdir6XKmWKJA9Mc=;
	b=GdNPz6zu5Ee1MAQOU5kllLe9OsnqJwr/kbP4zzc+tdaPxgQnoNVmleQQ26l7xQWd9u
	OqzoqDIUOVqS5bqbX0QZQJ4M8IEbahBucCaiihS5vsaAXyReAR0s1xCwfgi0T4KU4QlT
	LlpPnW5zoa+Fm9AwUlF0RhqpANRKsh/Pfhs9EAYvvS7jwWZt5Dy9bxsTMgSQJllcwRbM
	Pikxi8i3A0E5BlG0AZKqqkFtknLXe/Ra6brrNORdpmMN1RjKa14jstaNQ4HLOkbTV501
	oOOhI7vqoFqUzqH0TCTATDCZtNW69CsVCmKpDxOPamCE4+wG2kgNTjKuX6YUFPjZM4HC
	BODw==
X-Gm-Message-State: AG10YOSki4a0iIrzW9HGx30iK7AGjj7CIq+FAnnpyIdP/kAscUJoOmbFPDxLCChlNPjaUw==
X-Received: by 10.194.52.72 with SMTP id r8mr29853878wjo.148.1453913321165;
	Wed, 27 Jan 2016 08:48:41 -0800 (PST)
Received: from [192.168.0.9] (5ec0a1a0.skybroadband.com. [94.192.161.160])
	by smtp.gmail.com with ESMTPSA id
	k130sm8505998wmg.6.2016.01.27.08.48.39
	(version=TLSv1/SSLv3 cipher=OTHER);
	Wed, 27 Jan 2016 08:48:39 -0800 (PST)
From: Lars Kurth <lars.kurth.xen@gmail.com>
Date: Wed, 27 Jan 2016 16:48:37 +0000
Message-Id: <C49F5723-E3BE-456D-87C8-A2F4CDE8D43C@gmail.com>
To: xen-devel <xen-devel@lists.xenproject.org>,
	mirageos-devel <mirageos-devel@lists.xenproject.org>,
	Win-pv-devel@lists.xenproject.org, embedded-pv-devel@lists.xenproject.org
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
X-Mailer: Apple Mail (2.2104)
Cc: xen-users@lists.xenproject.org
Subject: [MirageOS-devel] Xen Project Infrastructure Maintenance: xenbits
	(Jan 28), qemu-bitslave & mail & downloads.xenproject.org (Feb 1),
	lists & etherpad (Feb 4th)
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

Hi everyone,

we are rebooting a number of Xen Project services in the next few days to upgrade operating systems. This means that a few services may be temporarily unavailable. The following websites are affected and will be done during the times below. If you notice any issues after the reboot, please reply to this mail or check on the #xeninfra IRC channel.

= Jan 28, 7am - 9am UTC : affecting xenbits =
Affected services: Xen Project source code repositories, automatically generated xenproject docs, list of security vulnerabilities
If you need to clone or commit to any affected repositories please do so before or after

= Feb 1, 7am - 9am UTC : affecting qemu-bitslave and xenproject.org mail aliases and downloads.xenproject.org =
Affected services: qemu-bitslave, mail server, DNS and downloads.xenproject.org
Note that mails to e-mails using foo-bar@xenproject.org may be delayed during the maintenance window. 

= Feb 4, 7am - 9am UTC : affecting xen project mailing lists & ether pad =
Affected services: all foo@lists.xenproject.org mailing lists and ether pads
Note that mails to all mailing lists will be delayed during the maintenance window

Best Regards
Lars
_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Thu Jan 28 05:58:51 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 28 Jan 2016 05:58:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aOfbH-0001fI-S5; Thu, 28 Jan 2016 05:58:35 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <cosmokramer@gmail.com>) id 1aOfbF-0001fD-Ll
	for mirageos-devel@lists.xenproject.org; Thu, 28 Jan 2016 05:58:33 +0000
Received: from [85.158.139.211] by server-7.bemta-5.messagelabs.com id
	96/BA-13905-80EA9A65; Thu, 28 Jan 2016 05:58:32 +0000
X-Env-Sender: cosmokramer@gmail.com
X-Msg-Ref: server-13.tower-206.messagelabs.com!1453960711!18417520!1
X-Originating-IP: [74.125.82.42]
X-SpamReason: No, hits=0.9 required=7.0 tests=BODY_RANDOM_LONG,
	HTML_50_60,HTML_MESSAGE,RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 57371 invoked from network); 28 Jan 2016 05:58:31 -0000
Received: from mail-wm0-f42.google.com (HELO mail-wm0-f42.google.com)
	(74.125.82.42)
	by server-13.tower-206.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 28 Jan 2016 05:58:31 -0000
Received: by mail-wm0-f42.google.com with SMTP id n5so10248533wmn.1
	for <mirageos-devel@lists.xenproject.org>;
	Wed, 27 Jan 2016 21:58:31 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=k/W5QyX44jC4+waOXVzmzCZEAvVa/EB9NJ83Q7Fw8VU=;
	b=uD43AHdlDHXkDvB3hNrQqWZQH78p0jJIgx5LsGbs1ykby6Lo0lfNncX96/N8V01RkI
	uG6WgtKHJC63lzVsQ8OVmNFWHfq/ODhckVDg8Gq5d0g40TvP2nRW8vu3nzX/xdbPe/se
	zv+MYNOyoRX8UgkAjgJdHeEXfIx5f0eHdtNdNpO3pwVgFnP0m2Kn5X8ckXJagVO6ztUv
	sdNf0RgYav5IhaCQWzmRcXucPzeRNTm3EIxHxqvFARMtj9udGxWSrAhQL22Y3Xyancq9
	a37T06kCYlWmITJDdOUCIj79uzCb3T0MzVsC+JCqvh0z7/duWnO7WMrIi4WNpQsdWL6r
	blNw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:in-reply-to:references:date
	:message-id:subject:from:to:cc:content-type;
	bh=k/W5QyX44jC4+waOXVzmzCZEAvVa/EB9NJ83Q7Fw8VU=;
	b=FhhxJYKzfEypCAjx/Hb0NFXTgGmayKCAUdMs8CmchOKIv06kY3cHvw5YRqfgp9qRug
	WZbio6tX6wBQU5y9GcQp3J+1Ha6KVMxZXj9rk6xeS7+DGT3YOFigtpg7tMjXkbV2qG7Z
	77q1tTQy8JtaF7zqUrvAiAU7AWY1rPQtFyC4uzco0h5lcDpVDV2DeZAaIsk6enLJqxYt
	tHKtpBZFGM6D2VK1DL9VQT3GaceSeDzYiaoOqIuwnOrOjvwqgPzF6SzUb2VPSgbdVZOK
	sGunjzaEcsDqrY7XFTvWmovuL+6h5cv3FWbEfPG+NoOkdzpaTDd8xNArG8dRZrzn6mMj
	JeWg==
X-Gm-Message-State: AG10YOR3ZrbQdhTtU3nDr8l1flyqy/erGpi3fnheX51h4/uRQ4oETErZLoZxcDOSL8WDWALHtrjqBXWbbu3Mfw==
MIME-Version: 1.0
X-Received: by 10.28.16.8 with SMTP id 8mr1067703wmq.77.1453960711210; Wed, 27
	Jan 2016 21:58:31 -0800 (PST)
Received: by 10.194.82.195 with HTTP; Wed, 27 Jan 2016 21:58:31 -0800 (PST)
In-Reply-To: <CAG4opy9TThL8-WqSx30eE_zc0LNN57MZjfKuPy6SFkqbygdUAA@mail.gmail.com>
References: <CAAHpSfiDq+ggXWcdHfmM9NG+LcV9OEbJLoL6U-z8pX5gPYD8aw@mail.gmail.com>
	<CAG4opy9TThL8-WqSx30eE_zc0LNN57MZjfKuPy6SFkqbygdUAA@mail.gmail.com>
Date: Wed, 27 Jan 2016 21:58:31 -0800
Message-ID: <CAAHpSfi+v4jNbSBLoF5-MsZwymYU5a8hdeZKwhsC6scpttTNYA@mail.gmail.com>
From: Madhuri Yechuri <cosmokramer@gmail.com>
To: Thomas Leonard <talex5@gmail.com>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] request for beginner project suggestion
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============4808991589046378994=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============4808991589046378994==
Content-Type: multipart/alternative; boundary=001a114725a0b592c6052a5e9ba3

--001a114725a0b592c6052a5e9ba3
Content-Type: text/plain; charset=UTF-8

Great, thanks for the quick response! i assume below advice still holds
true, in that case.

______
You could start by cloning the mirage-skeleton repository and making a
new example based on "console" that uses logging rather than printing.

For modifying libraries, you'll need to know how to "opam pin" a
modified package for testing. There's some useful information here:

https://www.somerandomidiot.com/blog/2015/11/26/quick-changes-in-mirageos/

(however, I find it easier to look in the Makefile to find the
dependencies, rather than reading the source of the mirage tool, and
make sure you do "opam pin -k git" to pin in "mixed mode", or you'll
have endless trouble with stale OASIS files)
______

i can start with
https://github.com/mirage/mirage-net-xen/blob/995bcf518b7c8e41e7db79050948bb7ecc1046b2/lib/frontend.ml#L106
, as listed in the Pioneer Projects page.

Is there a recommended regression test set? i looked around
https://mirage.io/wiki/contributing, but couldn't find any pointers.

Thanks a lot!
madhuri.

On Wed, Jan 27, 2016 at 8:40 AM, Thomas Leonard <talex5@gmail.com> wrote:

> On 27 January 2016 at 16:28, Madhuri Yechuri <cosmokramer@gmail.com>
> wrote:
> > Hi,
> >
> > i am interested in contributing to MirageOS (during non-work hours), and
> > wondering if there is a beginner project recommendation? This would be my
> > first project in OCAML (have 15 years industry coding experience in C
> > (Oracle Database Server, VMware ESX) and C++ (VMware vCenter), and
> recent 9
> > months in Python (Flocker)).
> >
> > Looking through
> https://github.com/mirage/mirage-www/wiki/Pioneer-Projects ,
> > i understand Logging is taken from recent emails on this mailing list. Is
> > there is any other beginner-friendly project that i could take up?
> >
> > Thanks a lot!
> > madhuri.
>
> Hi Madhuri,
>
> There are lots of libraries that need improved logging, so as long as
> people say which ones they're working on there should be no problem -
> it would be great if you want to work on that!
>
>
> --
> Dr Thomas Leonard        http://roscidus.com/blog/
> GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA
>

--001a114725a0b592c6052a5e9ba3
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Great, thanks for the quick response! i assume below advic=
e still holds true, in that case.<div><br></div><div>______</div><div><span=
 style=3D"font-size:13px">You could start by cloning the mirage-skeleton re=
pository and making a</span><br style=3D"font-size:13px"><span style=3D"fon=
t-size:13px">new example based on &quot;console&quot; that uses=C2=A0</span=
><span class=3D"" style=3D"font-size:13px">logging</span><span style=3D"fon=
t-size:13px">=C2=A0rather than printing.</span><br style=3D"font-size:13px"=
><br style=3D"font-size:13px"><span style=3D"font-size:13px">For modifying =
libraries, you&#39;ll need to know how to &quot;opam pin&quot; a</span><br =
style=3D"font-size:13px"><span style=3D"font-size:13px">modified package fo=
r testing. There&#39;s some useful information here:</span><br style=3D"fon=
t-size:13px"><br style=3D"font-size:13px"><a href=3D"https://www.somerandom=
idiot.com/blog/2015/11/26/quick-changes-in-mirageos/" rel=3D"noreferrer" ta=
rget=3D"_blank" style=3D"font-size:13px">https://www.somerandomidiot.com/bl=
og/2015/11/26/quick-changes-in-mirageos/</a><br style=3D"font-size:13px"><b=
r style=3D"font-size:13px"><span style=3D"font-size:13px">(however, I find =
it easier to look in the Makefile to find the</span><br style=3D"font-size:=
13px"><span style=3D"font-size:13px">dependencies, rather than reading the =
source of the mirage tool, and</span><br style=3D"font-size:13px"><span sty=
le=3D"font-size:13px">make sure you do &quot;opam pin -k git&quot; to pin i=
n &quot;mixed mode&quot;, or you&#39;ll</span><br style=3D"font-size:13px">=
<span style=3D"font-size:13px">have endless trouble with stale OASIS files)=
</span><br></div><div><span style=3D"font-size:13px">______</span></div><di=
v><span style=3D"font-size:13px"><br></span></div><div>i can start with <a =
href=3D"https://github.com/mirage/mirage-net-xen/blob/995bcf518b7c8e41e7db7=
9050948bb7ecc1046b2/lib/frontend.ml#L106">https://github.com/mirage/mirage-=
net-xen/blob/995bcf518b7c8e41e7db79050948bb7ecc1046b2/lib/frontend.ml#L106<=
/a> , as listed in the Pioneer Projects page.<span style=3D"font-size:13px"=
><br></span></div><div><br></div><div>Is there a recommended regression tes=
t set? i looked around=C2=A0<a href=3D"https://mirage.io/wiki/contributing"=
>https://mirage.io/wiki/contributing</a>, but couldn&#39;t find any pointer=
s.</div><div><br></div><div><span style=3D"font-size:13px">Thanks a lot!</s=
pan></div><div><span style=3D"font-size:13px">madhuri.</span></div></div><d=
iv class=3D"gmail_extra"><br><div class=3D"gmail_quote">On Wed, Jan 27, 201=
6 at 8:40 AM, Thomas Leonard <span dir=3D"ltr">&lt;<a href=3D"mailto:talex5=
@gmail.com" target=3D"_blank">talex5@gmail.com</a>&gt;</span> wrote:<br><bl=
ockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #=
ccc solid;padding-left:1ex"><div class=3D"HOEnZb"><div class=3D"h5">On 27 J=
anuary 2016 at 16:28, Madhuri Yechuri &lt;<a href=3D"mailto:cosmokramer@gma=
il.com">cosmokramer@gmail.com</a>&gt; wrote:<br>
&gt; Hi,<br>
&gt;<br>
&gt; i am interested in contributing to MirageOS (during non-work hours), a=
nd<br>
&gt; wondering if there is a beginner project recommendation? This would be=
 my<br>
&gt; first project in OCAML (have 15 years industry coding experience in C<=
br>
&gt; (Oracle Database Server, VMware ESX) and C++ (VMware vCenter), and rec=
ent 9<br>
&gt; months in Python (Flocker)).<br>
&gt;<br>
&gt; Looking through <a href=3D"https://github.com/mirage/mirage-www/wiki/P=
ioneer-Projects" rel=3D"noreferrer" target=3D"_blank">https://github.com/mi=
rage/mirage-www/wiki/Pioneer-Projects</a> ,<br>
&gt; i understand Logging is taken from recent emails on this mailing list.=
 Is<br>
&gt; there is any other beginner-friendly project that i could take up?<br>
&gt;<br>
&gt; Thanks a lot!<br>
&gt; madhuri.<br>
<br>
</div></div>Hi Madhuri,<br>
<br>
There are lots of libraries that need improved logging, so as long as<br>
people say which ones they&#39;re working on there should be no problem -<b=
r>
it would be great if you want to work on that!<br>
<span class=3D"HOEnZb"><font color=3D"#888888"><br>
<br>
--<br>
Dr Thomas Leonard=C2=A0 =C2=A0 =C2=A0 =C2=A0 <a href=3D"http://roscidus.com=
/blog/" rel=3D"noreferrer" target=3D"_blank">http://roscidus.com/blog/</a><=
br>
GPG: DA98 25AE CAD0 8975 7CDA=C2=A0 BD8E 0713 3F96 CA74 D8BA<br>
</font></span></blockquote></div><br></div>

--001a114725a0b592c6052a5e9ba3--


--===============4808991589046378994==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============4808991589046378994==--


From mirageos-devel-bounces@lists.xenproject.org Thu Jan 28 05:58:51 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 28 Jan 2016 05:58:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aOfbH-0001fI-S5; Thu, 28 Jan 2016 05:58:35 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <cosmokramer@gmail.com>) id 1aOfbF-0001fD-Ll
	for mirageos-devel@lists.xenproject.org; Thu, 28 Jan 2016 05:58:33 +0000
Received: from [85.158.139.211] by server-7.bemta-5.messagelabs.com id
	96/BA-13905-80EA9A65; Thu, 28 Jan 2016 05:58:32 +0000
X-Env-Sender: cosmokramer@gmail.com
X-Msg-Ref: server-13.tower-206.messagelabs.com!1453960711!18417520!1
X-Originating-IP: [74.125.82.42]
X-SpamReason: No, hits=0.9 required=7.0 tests=BODY_RANDOM_LONG,
	HTML_50_60,HTML_MESSAGE,RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 57371 invoked from network); 28 Jan 2016 05:58:31 -0000
Received: from mail-wm0-f42.google.com (HELO mail-wm0-f42.google.com)
	(74.125.82.42)
	by server-13.tower-206.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 28 Jan 2016 05:58:31 -0000
Received: by mail-wm0-f42.google.com with SMTP id n5so10248533wmn.1
	for <mirageos-devel@lists.xenproject.org>;
	Wed, 27 Jan 2016 21:58:31 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=k/W5QyX44jC4+waOXVzmzCZEAvVa/EB9NJ83Q7Fw8VU=;
	b=uD43AHdlDHXkDvB3hNrQqWZQH78p0jJIgx5LsGbs1ykby6Lo0lfNncX96/N8V01RkI
	uG6WgtKHJC63lzVsQ8OVmNFWHfq/ODhckVDg8Gq5d0g40TvP2nRW8vu3nzX/xdbPe/se
	zv+MYNOyoRX8UgkAjgJdHeEXfIx5f0eHdtNdNpO3pwVgFnP0m2Kn5X8ckXJagVO6ztUv
	sdNf0RgYav5IhaCQWzmRcXucPzeRNTm3EIxHxqvFARMtj9udGxWSrAhQL22Y3Xyancq9
	a37T06kCYlWmITJDdOUCIj79uzCb3T0MzVsC+JCqvh0z7/duWnO7WMrIi4WNpQsdWL6r
	blNw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:in-reply-to:references:date
	:message-id:subject:from:to:cc:content-type;
	bh=k/W5QyX44jC4+waOXVzmzCZEAvVa/EB9NJ83Q7Fw8VU=;
	b=FhhxJYKzfEypCAjx/Hb0NFXTgGmayKCAUdMs8CmchOKIv06kY3cHvw5YRqfgp9qRug
	WZbio6tX6wBQU5y9GcQp3J+1Ha6KVMxZXj9rk6xeS7+DGT3YOFigtpg7tMjXkbV2qG7Z
	77q1tTQy8JtaF7zqUrvAiAU7AWY1rPQtFyC4uzco0h5lcDpVDV2DeZAaIsk6enLJqxYt
	tHKtpBZFGM6D2VK1DL9VQT3GaceSeDzYiaoOqIuwnOrOjvwqgPzF6SzUb2VPSgbdVZOK
	sGunjzaEcsDqrY7XFTvWmovuL+6h5cv3FWbEfPG+NoOkdzpaTDd8xNArG8dRZrzn6mMj
	JeWg==
X-Gm-Message-State: AG10YOR3ZrbQdhTtU3nDr8l1flyqy/erGpi3fnheX51h4/uRQ4oETErZLoZxcDOSL8WDWALHtrjqBXWbbu3Mfw==
MIME-Version: 1.0
X-Received: by 10.28.16.8 with SMTP id 8mr1067703wmq.77.1453960711210; Wed, 27
	Jan 2016 21:58:31 -0800 (PST)
Received: by 10.194.82.195 with HTTP; Wed, 27 Jan 2016 21:58:31 -0800 (PST)
In-Reply-To: <CAG4opy9TThL8-WqSx30eE_zc0LNN57MZjfKuPy6SFkqbygdUAA@mail.gmail.com>
References: <CAAHpSfiDq+ggXWcdHfmM9NG+LcV9OEbJLoL6U-z8pX5gPYD8aw@mail.gmail.com>
	<CAG4opy9TThL8-WqSx30eE_zc0LNN57MZjfKuPy6SFkqbygdUAA@mail.gmail.com>
Date: Wed, 27 Jan 2016 21:58:31 -0800
Message-ID: <CAAHpSfi+v4jNbSBLoF5-MsZwymYU5a8hdeZKwhsC6scpttTNYA@mail.gmail.com>
From: Madhuri Yechuri <cosmokramer@gmail.com>
To: Thomas Leonard <talex5@gmail.com>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] request for beginner project suggestion
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============4808991589046378994=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============4808991589046378994==
Content-Type: multipart/alternative; boundary=001a114725a0b592c6052a5e9ba3

--001a114725a0b592c6052a5e9ba3
Content-Type: text/plain; charset=UTF-8

Great, thanks for the quick response! i assume below advice still holds
true, in that case.

______
You could start by cloning the mirage-skeleton repository and making a
new example based on "console" that uses logging rather than printing.

For modifying libraries, you'll need to know how to "opam pin" a
modified package for testing. There's some useful information here:

https://www.somerandomidiot.com/blog/2015/11/26/quick-changes-in-mirageos/

(however, I find it easier to look in the Makefile to find the
dependencies, rather than reading the source of the mirage tool, and
make sure you do "opam pin -k git" to pin in "mixed mode", or you'll
have endless trouble with stale OASIS files)
______

i can start with
https://github.com/mirage/mirage-net-xen/blob/995bcf518b7c8e41e7db79050948bb7ecc1046b2/lib/frontend.ml#L106
, as listed in the Pioneer Projects page.

Is there a recommended regression test set? i looked around
https://mirage.io/wiki/contributing, but couldn't find any pointers.

Thanks a lot!
madhuri.

On Wed, Jan 27, 2016 at 8:40 AM, Thomas Leonard <talex5@gmail.com> wrote:

> On 27 January 2016 at 16:28, Madhuri Yechuri <cosmokramer@gmail.com>
> wrote:
> > Hi,
> >
> > i am interested in contributing to MirageOS (during non-work hours), and
> > wondering if there is a beginner project recommendation? This would be my
> > first project in OCAML (have 15 years industry coding experience in C
> > (Oracle Database Server, VMware ESX) and C++ (VMware vCenter), and
> recent 9
> > months in Python (Flocker)).
> >
> > Looking through
> https://github.com/mirage/mirage-www/wiki/Pioneer-Projects ,
> > i understand Logging is taken from recent emails on this mailing list. Is
> > there is any other beginner-friendly project that i could take up?
> >
> > Thanks a lot!
> > madhuri.
>
> Hi Madhuri,
>
> There are lots of libraries that need improved logging, so as long as
> people say which ones they're working on there should be no problem -
> it would be great if you want to work on that!
>
>
> --
> Dr Thomas Leonard        http://roscidus.com/blog/
> GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA
>

--001a114725a0b592c6052a5e9ba3
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Great, thanks for the quick response! i assume below advic=
e still holds true, in that case.<div><br></div><div>______</div><div><span=
 style=3D"font-size:13px">You could start by cloning the mirage-skeleton re=
pository and making a</span><br style=3D"font-size:13px"><span style=3D"fon=
t-size:13px">new example based on &quot;console&quot; that uses=C2=A0</span=
><span class=3D"" style=3D"font-size:13px">logging</span><span style=3D"fon=
t-size:13px">=C2=A0rather than printing.</span><br style=3D"font-size:13px"=
><br style=3D"font-size:13px"><span style=3D"font-size:13px">For modifying =
libraries, you&#39;ll need to know how to &quot;opam pin&quot; a</span><br =
style=3D"font-size:13px"><span style=3D"font-size:13px">modified package fo=
r testing. There&#39;s some useful information here:</span><br style=3D"fon=
t-size:13px"><br style=3D"font-size:13px"><a href=3D"https://www.somerandom=
idiot.com/blog/2015/11/26/quick-changes-in-mirageos/" rel=3D"noreferrer" ta=
rget=3D"_blank" style=3D"font-size:13px">https://www.somerandomidiot.com/bl=
og/2015/11/26/quick-changes-in-mirageos/</a><br style=3D"font-size:13px"><b=
r style=3D"font-size:13px"><span style=3D"font-size:13px">(however, I find =
it easier to look in the Makefile to find the</span><br style=3D"font-size:=
13px"><span style=3D"font-size:13px">dependencies, rather than reading the =
source of the mirage tool, and</span><br style=3D"font-size:13px"><span sty=
le=3D"font-size:13px">make sure you do &quot;opam pin -k git&quot; to pin i=
n &quot;mixed mode&quot;, or you&#39;ll</span><br style=3D"font-size:13px">=
<span style=3D"font-size:13px">have endless trouble with stale OASIS files)=
</span><br></div><div><span style=3D"font-size:13px">______</span></div><di=
v><span style=3D"font-size:13px"><br></span></div><div>i can start with <a =
href=3D"https://github.com/mirage/mirage-net-xen/blob/995bcf518b7c8e41e7db7=
9050948bb7ecc1046b2/lib/frontend.ml#L106">https://github.com/mirage/mirage-=
net-xen/blob/995bcf518b7c8e41e7db79050948bb7ecc1046b2/lib/frontend.ml#L106<=
/a> , as listed in the Pioneer Projects page.<span style=3D"font-size:13px"=
><br></span></div><div><br></div><div>Is there a recommended regression tes=
t set? i looked around=C2=A0<a href=3D"https://mirage.io/wiki/contributing"=
>https://mirage.io/wiki/contributing</a>, but couldn&#39;t find any pointer=
s.</div><div><br></div><div><span style=3D"font-size:13px">Thanks a lot!</s=
pan></div><div><span style=3D"font-size:13px">madhuri.</span></div></div><d=
iv class=3D"gmail_extra"><br><div class=3D"gmail_quote">On Wed, Jan 27, 201=
6 at 8:40 AM, Thomas Leonard <span dir=3D"ltr">&lt;<a href=3D"mailto:talex5=
@gmail.com" target=3D"_blank">talex5@gmail.com</a>&gt;</span> wrote:<br><bl=
ockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #=
ccc solid;padding-left:1ex"><div class=3D"HOEnZb"><div class=3D"h5">On 27 J=
anuary 2016 at 16:28, Madhuri Yechuri &lt;<a href=3D"mailto:cosmokramer@gma=
il.com">cosmokramer@gmail.com</a>&gt; wrote:<br>
&gt; Hi,<br>
&gt;<br>
&gt; i am interested in contributing to MirageOS (during non-work hours), a=
nd<br>
&gt; wondering if there is a beginner project recommendation? This would be=
 my<br>
&gt; first project in OCAML (have 15 years industry coding experience in C<=
br>
&gt; (Oracle Database Server, VMware ESX) and C++ (VMware vCenter), and rec=
ent 9<br>
&gt; months in Python (Flocker)).<br>
&gt;<br>
&gt; Looking through <a href=3D"https://github.com/mirage/mirage-www/wiki/P=
ioneer-Projects" rel=3D"noreferrer" target=3D"_blank">https://github.com/mi=
rage/mirage-www/wiki/Pioneer-Projects</a> ,<br>
&gt; i understand Logging is taken from recent emails on this mailing list.=
 Is<br>
&gt; there is any other beginner-friendly project that i could take up?<br>
&gt;<br>
&gt; Thanks a lot!<br>
&gt; madhuri.<br>
<br>
</div></div>Hi Madhuri,<br>
<br>
There are lots of libraries that need improved logging, so as long as<br>
people say which ones they&#39;re working on there should be no problem -<b=
r>
it would be great if you want to work on that!<br>
<span class=3D"HOEnZb"><font color=3D"#888888"><br>
<br>
--<br>
Dr Thomas Leonard=C2=A0 =C2=A0 =C2=A0 =C2=A0 <a href=3D"http://roscidus.com=
/blog/" rel=3D"noreferrer" target=3D"_blank">http://roscidus.com/blog/</a><=
br>
GPG: DA98 25AE CAD0 8975 7CDA=C2=A0 BD8E 0713 3F96 CA74 D8BA<br>
</font></span></blockquote></div><br></div>

--001a114725a0b592c6052a5e9ba3--


--===============4808991589046378994==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============4808991589046378994==--


From mirageos-devel-bounces@lists.xenproject.org Thu Jan 28 09:48:34 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 28 Jan 2016 09:48:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aOjBk-00005u-47; Thu, 28 Jan 2016 09:48:28 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <lars.kurth.xen@gmail.com>)
	id 1aOjBi-00005R-UW; Thu, 28 Jan 2016 09:48:27 +0000
Received: from [85.158.143.35] by server-2.bemta-4.messagelabs.com id
	6C/65-08977-9E3E9A65; Thu, 28 Jan 2016 09:48:25 +0000
X-Env-Sender: lars.kurth.xen@gmail.com
X-Msg-Ref: server-8.tower-21.messagelabs.com!1453974504!12585941!1
X-Originating-IP: [74.125.82.44]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 59929 invoked from network); 28 Jan 2016 09:48:25 -0000
Received: from mail-wm0-f44.google.com (HELO mail-wm0-f44.google.com)
	(74.125.82.44)
	by server-8.tower-21.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 28 Jan 2016 09:48:25 -0000
Received: by mail-wm0-f44.google.com with SMTP id r129so16414322wmr.0;
	Thu, 28 Jan 2016 01:48:24 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=content-type:mime-version:subject:from:in-reply-to:date:cc
	:content-transfer-encoding:message-id:references:to;
	bh=Guca8PqER+GEAeTEm183RwQq/3DbexI0OXcDfmPPeGc=;
	b=ggoUifNHjEsQ9GqYGjDa4gsPChKQKOnNqarcIOSpoYtvryGeHU+T40eFXJBMTvPeCp
	g9XXYUq1LWqtS0fkR8IbilPiNAydVoNsHoBfXMZWT1KN67RFgfONI5JxdZa71uei2x5S
	YFNe3VGIC2106arJOSnLaLCdPQJk/kuHbufPpE/LMMWHaK5i50k4Ifm99+uDddT21NjF
	QGarsNFoJuBHZtoD0+xU6mOPYRjyFnUZt/4KuA7fPSLIGXMj3GaaKDqHOp5LoXiQ5NGt
	LEIMvyc06etKqqw/cpnfPVqF1Ox8K1/EEBuBglg1mkP/JEXxZ9b0OiCA4rJJRtkImYSV
	G3BA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:content-type:mime-version:subject:from
	:in-reply-to:date:cc:content-transfer-encoding:message-id:references
	:to; bh=Guca8PqER+GEAeTEm183RwQq/3DbexI0OXcDfmPPeGc=;
	b=GaPJ/Br2ZtykU5syRuttK7YC60BxJ4Zzz7+GCTQAtbbK0WuxY/G4mkI5nwc68uDmlD
	S0gZAZp8RwGdpEMjhCC2ccr3JW4+TvyTdTJVw1BBLGWsfY7krPL6AcNHjj4BMY5RDDFR
	CUaDDMdlABe69qzOCzaAu3XIo08cEPdWg2t5NjsTQz/eRgvE2xqhv/AYofnt3s64z8MI
	Ii3VvzRMeag/gQn0bgtzsL2tZcnRvT3lkNfy1uhguXirU7rocpQ5xosZCklDVk+8wqMT
	yEcPYsJ3aEkwM3Y5fL1Vvt74qtfTzYE1rFOgAVbHCZMxSpBbp5Z0IdA9Yi1eg2euuXNb
	f/Yw==
X-Gm-Message-State: AG10YORH/u02Vi3eBQxXp0C2NP+0dJaKIXJY58XlcStE6zcNF9L+jQbIlMrC4egGfdUNyA==
X-Received: by 10.194.192.170 with SMTP id hh10mr2268873wjc.69.1453974503781; 
	Thu, 28 Jan 2016 01:48:23 -0800 (PST)
Received: from [192.168.0.12] (5ec0a1a0.skybroadband.com. [94.192.161.160])
	by smtp.gmail.com with ESMTPSA id
	l194sm2016555wmb.14.2016.01.28.01.48.22
	(version=TLSv1/SSLv3 cipher=OTHER);
	Thu, 28 Jan 2016 01:48:23 -0800 (PST)
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Lars Kurth <lars.kurth.xen@gmail.com>
In-Reply-To: <C49F5723-E3BE-456D-87C8-A2F4CDE8D43C@gmail.com>
Date: Thu, 28 Jan 2016 09:48:21 +0000
Message-Id: <F298D48D-5BEE-4535-83F2-D2F59AB7178A@gmail.com>
References: <C49F5723-E3BE-456D-87C8-A2F4CDE8D43C@gmail.com>
To: xen-devel <xen-devel@lists.xenproject.org>,
	mirageos-devel <mirageos-devel@lists.xenproject.org>,
	Win-pv-devel@lists.xenproject.org, embedded-pv-devel@lists.xenproject.org
X-Mailer: Apple Mail (2.2104)
Cc: xen-users@lists.xenproject.org
Subject: Re: [MirageOS-devel] Xen Project Infrastructure Maintenance:
	xenbits (Jan 28),
	qemu-bitslave & mail & downloads.xenproject.org (Feb 1),
	lists & etherpad (Feb 4th)
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

Hi everyone,

due to a problem during an upgrade from Debian Wheezy to Debian Jessie, xenbits will be unavailable for an unknown period. The server is not responding and we have to wait for the support of the service provider to rectify the issue.

I will let you know, once the issue is resolved.

Regards
Lars

> On 27 Jan 2016, at 16:48, Lars Kurth <lars.kurth.xen@gmail.com> wrote:

> = Jan 28, 7am - 9am UTC : affecting xenbits =
> Affected services: Xen Project source code repositories, automatically generated xenproject docs, list of security vulnerabilities
> If you need to clone or commit to any affected repositories please do so before or after


_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Thu Jan 28 09:48:34 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 28 Jan 2016 09:48:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aOjBk-00005u-47; Thu, 28 Jan 2016 09:48:28 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <lars.kurth.xen@gmail.com>)
	id 1aOjBi-00005R-UW; Thu, 28 Jan 2016 09:48:27 +0000
Received: from [85.158.143.35] by server-2.bemta-4.messagelabs.com id
	6C/65-08977-9E3E9A65; Thu, 28 Jan 2016 09:48:25 +0000
X-Env-Sender: lars.kurth.xen@gmail.com
X-Msg-Ref: server-8.tower-21.messagelabs.com!1453974504!12585941!1
X-Originating-IP: [74.125.82.44]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 59929 invoked from network); 28 Jan 2016 09:48:25 -0000
Received: from mail-wm0-f44.google.com (HELO mail-wm0-f44.google.com)
	(74.125.82.44)
	by server-8.tower-21.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 28 Jan 2016 09:48:25 -0000
Received: by mail-wm0-f44.google.com with SMTP id r129so16414322wmr.0;
	Thu, 28 Jan 2016 01:48:24 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=content-type:mime-version:subject:from:in-reply-to:date:cc
	:content-transfer-encoding:message-id:references:to;
	bh=Guca8PqER+GEAeTEm183RwQq/3DbexI0OXcDfmPPeGc=;
	b=ggoUifNHjEsQ9GqYGjDa4gsPChKQKOnNqarcIOSpoYtvryGeHU+T40eFXJBMTvPeCp
	g9XXYUq1LWqtS0fkR8IbilPiNAydVoNsHoBfXMZWT1KN67RFgfONI5JxdZa71uei2x5S
	YFNe3VGIC2106arJOSnLaLCdPQJk/kuHbufPpE/LMMWHaK5i50k4Ifm99+uDddT21NjF
	QGarsNFoJuBHZtoD0+xU6mOPYRjyFnUZt/4KuA7fPSLIGXMj3GaaKDqHOp5LoXiQ5NGt
	LEIMvyc06etKqqw/cpnfPVqF1Ox8K1/EEBuBglg1mkP/JEXxZ9b0OiCA4rJJRtkImYSV
	G3BA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:content-type:mime-version:subject:from
	:in-reply-to:date:cc:content-transfer-encoding:message-id:references
	:to; bh=Guca8PqER+GEAeTEm183RwQq/3DbexI0OXcDfmPPeGc=;
	b=GaPJ/Br2ZtykU5syRuttK7YC60BxJ4Zzz7+GCTQAtbbK0WuxY/G4mkI5nwc68uDmlD
	S0gZAZp8RwGdpEMjhCC2ccr3JW4+TvyTdTJVw1BBLGWsfY7krPL6AcNHjj4BMY5RDDFR
	CUaDDMdlABe69qzOCzaAu3XIo08cEPdWg2t5NjsTQz/eRgvE2xqhv/AYofnt3s64z8MI
	Ii3VvzRMeag/gQn0bgtzsL2tZcnRvT3lkNfy1uhguXirU7rocpQ5xosZCklDVk+8wqMT
	yEcPYsJ3aEkwM3Y5fL1Vvt74qtfTzYE1rFOgAVbHCZMxSpBbp5Z0IdA9Yi1eg2euuXNb
	f/Yw==
X-Gm-Message-State: AG10YORH/u02Vi3eBQxXp0C2NP+0dJaKIXJY58XlcStE6zcNF9L+jQbIlMrC4egGfdUNyA==
X-Received: by 10.194.192.170 with SMTP id hh10mr2268873wjc.69.1453974503781; 
	Thu, 28 Jan 2016 01:48:23 -0800 (PST)
Received: from [192.168.0.12] (5ec0a1a0.skybroadband.com. [94.192.161.160])
	by smtp.gmail.com with ESMTPSA id
	l194sm2016555wmb.14.2016.01.28.01.48.22
	(version=TLSv1/SSLv3 cipher=OTHER);
	Thu, 28 Jan 2016 01:48:23 -0800 (PST)
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Lars Kurth <lars.kurth.xen@gmail.com>
In-Reply-To: <C49F5723-E3BE-456D-87C8-A2F4CDE8D43C@gmail.com>
Date: Thu, 28 Jan 2016 09:48:21 +0000
Message-Id: <F298D48D-5BEE-4535-83F2-D2F59AB7178A@gmail.com>
References: <C49F5723-E3BE-456D-87C8-A2F4CDE8D43C@gmail.com>
To: xen-devel <xen-devel@lists.xenproject.org>,
	mirageos-devel <mirageos-devel@lists.xenproject.org>,
	Win-pv-devel@lists.xenproject.org, embedded-pv-devel@lists.xenproject.org
X-Mailer: Apple Mail (2.2104)
Cc: xen-users@lists.xenproject.org
Subject: Re: [MirageOS-devel] Xen Project Infrastructure Maintenance:
	xenbits (Jan 28),
	qemu-bitslave & mail & downloads.xenproject.org (Feb 1),
	lists & etherpad (Feb 4th)
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

Hi everyone,

due to a problem during an upgrade from Debian Wheezy to Debian Jessie, xenbits will be unavailable for an unknown period. The server is not responding and we have to wait for the support of the service provider to rectify the issue.

I will let you know, once the issue is resolved.

Regards
Lars

> On 27 Jan 2016, at 16:48, Lars Kurth <lars.kurth.xen@gmail.com> wrote:

> = Jan 28, 7am - 9am UTC : affecting xenbits =
> Affected services: Xen Project source code repositories, automatically generated xenproject docs, list of security vulnerabilities
> If you need to clone or commit to any affected repositories please do so before or after


_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Thu Jan 28 11:16:27 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 28 Jan 2016 11:16:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aOkYj-0008Ui-Gk; Thu, 28 Jan 2016 11:16:17 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <gm0911.park@samsung.com>) id 1aOkYh-0008Ub-La
	for mirageos-devel@lists.xenproject.org; Thu, 28 Jan 2016 11:16:16 +0000
Received: from [85.158.137.68] by server-8.bemta-3.messagelabs.com id
	D1/A9-24375-E78F9A65; Thu, 28 Jan 2016 11:16:14 +0000
X-Env-Sender: gm0911.park@samsung.com
X-Msg-Ref: server-3.tower-31.messagelabs.com!1453979768!18768173!1
X-Originating-IP: [203.254.224.25]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
	VHJ1c3RlZCBJUDogMjAzLjI1NC4yMjQuMjUgPT4gMzcxMzg3\n
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 35881 invoked from network); 28 Jan 2016 11:16:12 -0000
Received: from mailout2.samsung.com (HELO mailout2.samsung.com)
	(203.254.224.25)
	by server-3.tower-31.messagelabs.com with DHE-RSA-AES128-SHA encrypted
	SMTP; 28 Jan 2016 11:16:12 -0000
Received: from epcpsbgr1.samsung.com
	(u141.gpu120.samsung.co.kr [203.254.230.141])
	by mailout2.samsung.com (Oracle Communications Messaging Server
	7.0.5.31.0 64bit (built May  5 2014))
	with ESMTP id <0O1N0322JTYVHN10@mailout2.samsung.com> for
	mirageos-devel@lists.xenproject.org;
	Thu, 28 Jan 2016 20:16:07 +0900 (KST)
Received: from epcpsbgx4.samsung.com ( [172.20.52.116])
	by epcpsbgr1.samsung.com (EPCPMTA) with SMTP id A1.39.04949.778F9A65;
	Thu, 28 Jan 2016 20:16:07 +0900 (KST)
X-AuditID: cbfee68d-f79646d000001355-34-56a9f8775417
Received: from epmailer01 ( [203.254.219.141])
	by epcpsbgx4.samsung.com (EPCPMTA) with SMTP id 63.22.05161.678F9A65;
	Thu, 28 Jan 2016 20:16:07 +0900 (KST)
Message-id: <63.22.05161.678F9A65@epcpsbgx4.samsung.com>
Date: Thu, 28 Jan 2016 11:16:06 +0000 (GMT)
From: =?euc-kr?B?udqw5rnO?= <gm0911.park@samsung.com>
To: mirageos-devel@lists.xenproject.org
MIME-version: 1.0
X-MTR: 20160128111519184@gm0911.park
Msgkey: 20160128111519184@gm0911.park
X-EPLocale: ko_KR.euc-kr
X-Priority: 3
X-EPWebmail-Msg-Type: personal
X-EPWebmail-Reply-Demand: 0
X-EPApproval-Locale: 
X-EPHeader: ML
X-MLAttribute: 
X-RootMTR: 20160128110713239@gm0911.park
X-ParentMTR: 20160128111253913@gm0911.park
X-ArchiveUser: 
X-CPGSPASS: N
X-ConfirmMail: N,general
MIME-version: 1.0
X-Generator: Namo ActiveSquare 7 7.0.0.45
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrJKsWRmVeSWpSXmKPExsWyRsSkRLf8x8owg/Y+QYve1rssDowehz9c
	YQlgjOKySUnNySxLLdK3S+DKuDdtH0vBnGvMFf/Xz2dqYPx4krmLkZNDSEBNonfScnYQW0LA
	RKJz3iVmCFtM4sK99WxdjFxANUsZJSbdm80EU3S4qZEZIjGHUWLOokcsIAleAQuJ3X8nsYHY
	LAKqElfb/4HF2QTMJI7s284IYgsLWErMedgNtk1EQEfizc9eRogrFCX+NPewQcwRlDg58wkL
	xDIViXf7G6DiqhJrzk+EOkJCYtb0C6wQNq/EjPanUPVyEtO+roH6QFri/KwNjDDfLP7+GCrO
	L3Hs9g6oOQISU88chKrRlFj6rxMqri2x5dpSFpj6XaeWM8Psur9lLtwNW1uesKK7mVnASWLL
	zUksMDMfLWplAQWWhMAWDol9O3tYIAEkIPFt8iGWCYyKs5D0o7NhZkHY2hKtbz4yQdiKElO6
	H7JD2HYSa7v/sWCKq0ps2H6eeQEjxypG0dSC5ILipPQiQ73ixNzi0rx0veT83E2MwBR0+t+z
	3h2Mtw9YH2IU4GBU4uFliFoZJsSaWFZcmXuI0RTo1InMUqLJ+cBEl1cSb2hsZmRhamJqbGRu
	aaYkzqso9TNYSCA9sSQ1OzW1ILUovqg0J7X4ECMTB6dUA+OBpWWyFUX/7fiDTzqITbAJfJC2
	bxZj3qPbi5f9W/38Cq/pmkN70lcwbhXbnbOFI3K3GutN9htfbJfs3RWwN3xfiE9g7Hef404r
	7CRqVd4Zet692HP+/fd8+aZjuU1v/1v/+7nRLnnyPZP393InbJ2+xG93TKZR3au5/p1SxyqZ
	+NUCC/zETNYqsRRnJBpqMRcVJwIAJWPn/TwDAAA=
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrJKsWRmVeSWpSXmKPExsVy+t/tXt3yHyvDDD4bWvS23mVxYPQ4/OEK
	SwBjVJpNRmpiSmqRQmpecn5KZl66rZJ3cLxzvKmZgaGuoaWFuZJCXmJuqq2Si0+ArltmDtBQ
	JYWyxJxSoFBAYnGxkr6dTVF+aUmqQkZ+cYmtUrShuZGekYGeqZGeoXGslaGBgZEpUE1CWsa9
	aftYCuZcY674v34+UwPjx5PMXYycHEICahK9k5azg9gSAiYSh5samSFsMYkL99azdTFyAdXM
	YZSYs+gRC0iCV8BCYvffSWwgNouAqsTV9n9gcTYBM4kj+7YzgtjCApYScx52gw0VEdCRePOz
	lxFimaLEn+YeNog5ghInZz5hgVimIvFufwNUXFVizfmJTBBxCYlZ0y+wQti8EjPan0LVy0lM
	+7oG6lBpifOzNjDCHL34+2OoOL/Esds7oOYISEw9cxCqRlNi6b9OqLi2xJZrS1lg6nedWs4M
	s+v+lrlwN2xtecKK7mZmASeJLTcnscDMfLSolWUCo8wsJGXobJgWCFtbovXNRyYIW1FiSvdD
	dgjbTmJt9z8WTHFViQ3bzzMvYORYxSiaWpBcUJyUXmGiV5yYW1yal66XnJ+7iRGc1J4t2cHY
	cMH6EKMAB6MSDy9D1MowIdbEsuLK3EOMKkBzHm1YfYFRiiUvPy9VSYRXsRoozZuSWFmVWpQf
	X1Sak1p8iNEUGLMTmaVEk/OBiTivJN7Q2NjEzMTU0sTCwNRcSZz39j6/MCGB9MSS1OzU1ILU
	Ipg+Jg5OqQbGg32P5vH4JuyfnBi0aFnxEeWcuXv5zKZb9fB/U5kVLtTEbHbg8cXlvzPsNZPv
	8l6XOit93Wzyrii/Casf30uVebY46T2/ZdXpnp0bd4ff471a8uAlS9w30+63v0oWl96fcfid
	i9bh58sSZFXCW0KD7oZHr1gv+oTFqcDkocQE7TURPTNaTsxvUmIpzkg01GIuKk4EAMNMjheM	AwAA
DLP-Filter: Pass
X-CFilter-Loop: Reflected
Subject: [MirageOS-devel]  request for solving the problem
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
Reply-To: gm0911.park@samsung.com
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============5156697503593393135=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============5156697503593393135==
Content-type: multipart/related; boundary="=_NamoWEC-fa22mhucko"

--=_NamoWEC-fa22mhucko
Content-Type: text/html;
	charset="euc-kr"
Content-Transfer-Encoding: base64

PEhUTUwgeG1sbnM6byA9ICJ1cm46c2NoZW1hcy1taWNyb3NvZnQtY29tOm9mZmljZTpvZmZpY2Ui
PjxIRUFEPjxUSVRMRT5TYW1zdW5nIEVudGVycHJpc2UgUG9ydGFsIG15U2luZ2xlPC9USVRMRT4N
CjxNRVRBIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1ldWMta3IiIGh0dHAtZXF1aXY9Q29u
dGVudC1UeXBlPg0KPFNUWUxFIGlkPW15c2luZ2xlX3N0eWxlPlAgew0KCU1BUkdJTi1CT1RUT006
IDVweDsgRk9OVC1TSVpFOiAxMHB0OyBGT05ULUZBTUlMWTogQ291cmllciBOZXcsIGFyaWFsOyBN
QVJHSU4tVE9QOiA1cHgNCn0NClREIHsNCglNQVJHSU4tQk9UVE9NOiA1cHg7IEZPTlQtU0laRTog
MTBwdDsgRk9OVC1GQU1JTFk6IENvdXJpZXIgTmV3LCBhcmlhbDsgTUFSR0lOLVRPUDogNXB4DQp9
DQpMSSB7DQoJTUFSR0lOLUJPVFRPTTogNXB4OyBGT05ULVNJWkU6IDEwcHQ7IEZPTlQtRkFNSUxZ
OiBDb3VyaWVyIE5ldywgYXJpYWw7IE1BUkdJTi1UT1A6IDVweA0KfQ0KQk9EWSB7DQoJRk9OVC1T
SVpFOiAxMHB0OyBGT05ULUZBTUlMWTogQ291cmllciBOZXcsIGFyaWFsOyBNQVJHSU46IDEwcHg7
IExJTkUtSEVJR0hUOiAxLjQNCn0NCjwvU1RZTEU+DQoNCjxNRVRBIGNvbnRlbnQ9SUU9NSBodHRw
LWVxdWl2PVgtVUEtQ29tcGF0aWJsZT4NCjxNRVRBIGNvbnRlbnQ9SUU9NSBodHRwLWVxdWl2PVgt
VUEtQ29tcGF0aWJsZT4NCjxNRVRBIG5hbWU9R0VORVJBVE9SIGNvbnRlbnQ9Ik1TSFRNTCAxMS4w
MC45NjAwLjE4MTYzIj48L0hFQUQ+DQo8Qk9EWT4NCjxQPkhpLDwvUD4NCjxQPiZuYnNwOzwvUD4N
CjxQPkkgaGFkIHNvbWUgcHJvYmxlbSBhYm91dCBydW5uaW5nIGRvbSBVPC9QPg0KPFA+Jm5ic3A7
PC9QPg0KPFA+SSByZWZlcmVkIHRvIDxBIGhyZWY9Imh0dHBzOi8vbWlyYWdlLmlvL3dpa2kveGVu
LW9uLWN1YmllYm9hcmQyIj5odHRwczovL21pcmFnZS5pby93aWtpL3hlbi1vbi1jdWJpZWJvYXJk
MjwvQT4mbmJzcDthbmQgYmVsb3cgbG9nIGlzIGZyb20gbXlib2FyZC48L1A+DQo8UD4mbmJzcDs8
L1A+DQo8UD5NeSBwcm9ibGVtIGlzIHRoYXQgSSBjb3VsZG5gdCBhY2Nlc3MgdGhlIERvbVUgY29u
c29sZS48L1A+DQo8UD5JIHRoaW5rIEl0IGhhcyBhIGJ1Zy48L1A+DQo8UD4mbmJzcDs8L1A+DQo8
UD5NYXkgSSBhc2sgd2hpY2ggcG9pbnQgaXMgd3Jvbmc/PC9QPg0KPFA+Jm5ic3A7PC9QPg0KPFA+
UmVnYXJkczwvUD4NCjxQPkd5dW5nbWluPC9QPg0KPFA+Jm5ic3A7PC9QPg0KPFA+PEEgaHJlZj0i
bWFpbHRvOm1pcmFnZUBjdWJpZXRydWNrOn4kIj5taXJhZ2VAY3ViaWV0cnVjazp+JDwvQT4gc3Vk
byB4bCBjcmVhdGUgLWMgbGludXgtZ3Vlc3QtMS5jb25mPEJSPlBhcnNpbmcgY29uZmlnIGZyb20g
bGludXgtZ3Vlc3QtMS5jb25mPEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsgMC4wMDAwMDBdIEJvb3Rp
bmcgTGludXggb24gcGh5c2ljYWwgQ1BVIDB4MDxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMDAw
MDAwXSBMaW51eCB2ZXJzaW9uIDMuMTYuMC0wMDEyNC1nNmI2ZGNjMi1kaXJ0eSAoPEEgaHJlZj0i
bWFpbHRvOmFybS1idWlsZGVyQGJsb2JzLm9wZW5taXJhZ2Uub3JnLXVidW50dSI+YXJtLWJ1aWxk
ZXJAYmxvYnMub3Blbm1pcmFnZS5vcmctdWJ1bnR1PC9BPikgKGdjYyB2ZXJzaW9uIDQuOC4yIChV
YnVudHUvTGluYXJvIDQuOC4yLTE2dWJ1bnR1NCkgKSAjMTc4MiBTTVAgVHVlIEp1biAxNiAwMDo0
NzowOSBVVEMgMjAxNTxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMDAwMDAwXSBDUFU6IEFSTXY3
IFByb2Nlc3NvciBbNDEwZmMwNzRdIHJldmlzaW9uIDQgKEFSTXY3KSwgY3I9MTBjNTM4N2Q8QlI+
WyZuYnNwOyZuYnNwOyZuYnNwOyAwLjAwMDAwMF0gQ1BVOiBQSVBUIC8gVklQVCBub25hbGlhc2lu
ZyBkYXRhIGNhY2hlLCBWSVBUIGFsaWFzaW5nIGluc3RydWN0aW9uIGNhY2hlPEJSPlsmbmJzcDsm
bmJzcDsmbmJzcDsgMC4wMDAwMDBdIE1hY2hpbmUgbW9kZWw6IFhFTlZNLTQuNDxCUj5bJm5ic3A7
Jm5ic3A7Jm5ic3A7IDAuMDAwMDAwXSBjbWE6IENNQTogcmVzZXJ2ZWQgNjQgTWlCIGF0IDhjMDAw
MDAwPEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsgMC4wMDAwMDBdIE1lbW9yeSBwb2xpY3k6IERhdGEg
Y2FjaGUgd3JpdGVhbGxvYzxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMDAwMDAwXSBwc2NpOiBw
cm9iaW5nIGZvciBjb25kdWl0IG1ldGhvZCBmcm9tIERULjxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7
IDAuMDAwMDAwXSBwc2NpOiBVc2luZyBQU0NJIHYwLjEgRnVuY3Rpb24gSURzIGZyb20gRFQ8QlI+
WyZuYnNwOyZuYnNwOyZuYnNwOyAwLjAwMDAwMF0gUEVSQ1BVOiBFbWJlZGRlZCA4IHBhZ2VzL2Nw
dSBAY2JkY2UwMDAgczg4MzIgcjgxOTIgZDE1NzQ0IHUzMjc2ODxCUj5bJm5ic3A7Jm5ic3A7Jm5i
c3A7IDAuMDAwMDAwXSBCdWlsdCAxIHpvbmVsaXN0cyBpbiBab25lIG9yZGVyLCBtb2JpbGl0eSBn
cm91cGluZyBvbi4mbmJzcDsgVG90YWwgcGFnZXM6IDY1MDI0PEJSPlsmbmJzcDsmbmJzcDsmbmJz
cDsgMC4wMDAwMDBdIEtlcm5lbCBjb21tYW5kIGxpbmU6IGNvbnNvbGU9aHZjMCB4ZW5jb25zPXR0
eSByb290PS9kZXYveHZkYTxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMDAwMDAwXSBQSUQgaGFz
aCB0YWJsZSBlbnRyaWVzOiAxMDI0IChvcmRlcjogMCwgNDA5NiBieXRlcyk8QlI+WyZuYnNwOyZu
YnNwOyZuYnNwOyAwLjAwMDAwMF0gRGVudHJ5IGNhY2hlIGhhc2ggdGFibGUgZW50cmllczogMzI3
NjggKG9yZGVyOiA1LCAxMzEwNzIgYnl0ZXMpPEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsgMC4wMDAw
MDBdIElub2RlLWNhY2hlIGhhc2ggdGFibGUgZW50cmllczogMTYzODQgKG9yZGVyOiA0LCA2NTUz
NiBieXRlcyk8QlI+WyZuYnNwOyZuYnNwOyZuYnNwOyAwLjAwMDAwMF0gTWVtb3J5OiAxODI2ODRL
LzI2MjE0NEsgYXZhaWxhYmxlICg3MDA5SyBrZXJuZWwgY29kZSwgODQzSyByd2RhdGEsIDI2OTZL
IHJvZGF0YSwgNTg4SyBpbml0LCAzMTdLIGJzcywgNzk0NjBLIHJlc2VydmVkLCAwSyBoaWdobWVt
KTxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMDAwMDAwXSBWaXJ0dWFsIGtlcm5lbCBtZW1vcnkg
bGF5b3V0OjxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMDAwMDAwXSZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyB2ZWN0b3ImbmJzcDsgOiAweGZmZmYwMDAwIC0gMHhmZmZmMTAwMCZuYnNwOyZuYnNw
OyAoJm5ic3A7Jm5ic3A7IDQga0IpPEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsgMC4wMDAwMDBdJm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGZpeG1hcCZuYnNwOyA6IDB4ZmZjMDAwMDAgLSAweGZmZTAw
MDAwJm5ic3A7Jm5ic3A7ICgyMDQ4IGtCKTxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMDAwMDAw
XSZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyB2bWFsbG9jIDogMHhkMDgwMDAwMCAtIDB4ZmYwMDAw
MDAmbmJzcDsmbmJzcDsgKCA3NDQgTUIpPEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsgMC4wMDAwMDBd
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGxvd21lbSZuYnNwOyA6IDB4YzAwMDAwMDAgLSAweGQw
MDAwMDAwJm5ic3A7Jm5ic3A7ICggMjU2IE1CKTxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMDAw
MDAwXSZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBwa21hcCZuYnNwOyZuYnNwOyA6IDB4YmZlMDAw
MDAgLSAweGMwMDAwMDAwJm5ic3A7Jm5ic3A7ICgmbmJzcDsmbmJzcDsgMiBNQik8QlI+WyZuYnNw
OyZuYnNwOyZuYnNwOyAwLjAwMDAwMF0mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgbW9kdWxlcyA6
IDB4YmYwMDAwMDAgLSAweGJmZTAwMDAwJm5ic3A7Jm5ic3A7ICgmbmJzcDsgMTQgTUIpPEJSPlsm
bmJzcDsmbmJzcDsmbmJzcDsgMC4wMDAwMDBdJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7IC50ZXh0IDogMHhjMDIwODAwMCAtIDB4YzBiODI5MzQmbmJzcDsmbmJzcDsgKDk3MDcg
a0IpPEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsgMC4wMDAwMDBdJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7IC5pbml0IDogMHhjMGI4MzAwMCAtIDB4YzBjMTYyODAmbmJzcDsmbmJz
cDsgKCA1ODkga0IpPEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsgMC4wMDAwMDBdJm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IC5kYXRhIDogMHhjMGMxODAwMCAtIDB4YzBjZWFjZTAm
bmJzcDsmbmJzcDsgKCA4NDQga0IpPEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsgMC4wMDAwMDBdJm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IC5ic3MgOiAweGMwY2VhY2U4
IC0gMHhjMGQzYTQ5MCZuYnNwOyZuYnNwOyAoIDMxOCBrQik8QlI+WyZuYnNwOyZuYnNwOyZuYnNw
OyAwLjAwMDAwMF0gU0xVQjogSFdhbGlnbj02NCwgT3JkZXI9MC0zLCBNaW5PYmplY3RzPTAsIENQ
VXM9MSwgTm9kZXM9MTxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMDAwMDAwXSBIaWVyYXJjaGlj
YWwgUkNVIGltcGxlbWVudGF0aW9uLjxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMDAwMDAwXSZu
YnNwOyBSQ1UgcmVzdHJpY3RpbmcgQ1BVcyBmcm9tIE5SX0NQVVM9NCB0byBucl9jcHVfaWRzPTEu
PEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsgMC4wMDAwMDBdIFJDVTogQWRqdXN0aW5nIGdlb21ldHJ5
IGZvciByY3VfZmFub3V0X2xlYWY9MTYsIG5yX2NwdV9pZHM9MTxCUj5bJm5ic3A7Jm5ic3A7Jm5i
c3A7IDAuMDAwMDAwXSBOUl9JUlFTOjE2IG5yX2lycXM6MTYgMTY8QlI+WyZuYnNwOyZuYnNwOyZu
YnNwOyAwLjAwMDAwMF0gQXJjaGl0ZWN0ZWQgY3AxNSB0aW1lcihzKSBydW5uaW5nIGF0IDI0LjAw
TUh6ICh2aXJ0KS48QlI+WyZuYnNwOyZuYnNwOyZuYnNwOyAwLjAwMDAwOF0gc2NoZWRfY2xvY2s6
IDU2IGJpdHMgYXQgMjRNSHosIHJlc29sdXRpb24gNDFucywgd3JhcHMgZXZlcnkgMjg2MzMxMTUx
OTc0NG5zPEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsgMC4wMDAwMTZdIFN3aXRjaGluZyB0byB0aW1l
ci1iYXNlZCBkZWxheSBsb29wPEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsgMC4wMDAxNjldIENvbnNv
bGU6IGNvbG91ciBkdW1teSBkZXZpY2UgODB4MzA8QlI+WyZuYnNwOyZuYnNwOyZuYnNwOyAwLjAw
MDIwMV0gQ2FsaWJyYXRpbmcgZGVsYXkgbG9vcCAoc2tpcHBlZCksIHZhbHVlIGNhbGN1bGF0ZWQg
dXNpbmcgdGltZXIgZnJlcXVlbmN5Li4gNDguMDAgQm9nb01JUFMgKGxwaj0yNDAwMDApPEJSPlsm
bmJzcDsmbmJzcDsmbmJzcDsgMC4wMDAyMThdIHBpZF9tYXg6IGRlZmF1bHQ6IDMyNzY4IG1pbmlt
dW06IDMwMTxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMDAwMzU1XSBNb3VudC1jYWNoZSBoYXNo
IHRhYmxlIGVudHJpZXM6IDEwMjQgKG9yZGVyOiAwLCA0MDk2IGJ5dGVzKTxCUj5bJm5ic3A7Jm5i
c3A7Jm5ic3A7IDAuMDAwMzY3XSBNb3VudHBvaW50LWNhY2hlIGhhc2ggdGFibGUgZW50cmllczog
MTAyNCAob3JkZXI6IDAsIDQwOTYgYnl0ZXMpPEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsgMC4wMDA5
MzldIENQVTogVGVzdGluZyB3cml0ZSBidWZmZXIgY29oZXJlbmN5OiBvazxCUj5bJm5ic3A7Jm5i
c3A7Jm5ic3A7IDAuMDAxMjcyXSA8QT4vY3B1cy9jcHVAMDwvQT4gbWlzc2luZyBjbG9jay1mcmVx
dWVuY3kgcHJvcGVydHk8QlI+WyZuYnNwOyZuYnNwOyZuYnNwOyAwLjAwMTI5Nl0gQ1BVMDogdGhy
ZWFkIC0xLCBjcHUgMCwgc29ja2V0IDAsIG1waWRyIDgwMDAwMDAwPEJSPlsmbmJzcDsmbmJzcDsm
bmJzcDsgMC4wMDEzNzJdIFhlbiA0LjQgc3VwcG9ydCBmb3VuZCwgZXZlbnRzX2lycT0zMSBnbnR0
YWJfZnJhbWU9MHhiMDAwMDAwMDxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMDAxNDEwXSBQbGVh
c2UgdXBncmFkZSB5b3VyIFhlbi48QlI+WyZuYnNwOyZuYnNwOyZuYnNwOyAwLjAwMTQxMF0gSWYg
eW91ciBwbGF0Zm9ybSBoYXMgYW55IG5vbi1jb2hlcmVudCBETUEgZGV2aWNlcywgdGhleSB3b24n
dCB3b3JrIHByb3Blcmx5LjxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMDAxNDk4XSB4ZW46Z3Jh
bnRfdGFibGU6IEdyYW50IHRhYmxlcyB1c2luZyB2ZXJzaW9uIDEgbGF5b3V0PEJSPlsmbmJzcDsm
bmJzcDsmbmJzcDsgMC4wMDE1NTFdIEdyYW50IHRhYmxlIGluaXRpYWxpemVkPEJSPlsmbmJzcDsm
bmJzcDsmbmJzcDsgMC4wMDE2NTRdIHhlbjpldmVudHM6IFVzaW5nIEZJRk8tYmFzZWQgQUJJPEJS
PlsmbmJzcDsmbmJzcDsmbmJzcDsgMC4wMDE2OTBdIFhlbjogaW5pdGlhbGl6aW5nIGNwdTA8QlI+
WyZuYnNwOyZuYnNwOyZuYnNwOyAwLjAwMTg3MV0gU2V0dGluZyB1cCBzdGF0aWMgaWRlbnRpdHkg
bWFwIGZvciAweDgwOGE1OWY4IC0gMHg4MDhhNWE5MDxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAu
MDAzMDQxXSBCcm91Z2h0IHVwIDEgQ1BVczxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMDAzMDU4
XSBTTVA6IFRvdGFsIG9mIDEgcHJvY2Vzc29ycyBhY3RpdmF0ZWQuPEJSPlsmbmJzcDsmbmJzcDsm
bmJzcDsgMC4wMDMwNjVdIENQVTogQWxsIENQVShzKSBzdGFydGVkIGluIFNWQyBtb2RlLjxCUj5b
Jm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMDAzNjI5XSBkZXZ0bXBmczogaW5pdGlhbGl6ZWQ8QlI+WyZu
YnNwOyZuYnNwOyZuYnNwOyAwLjAwNDUxMV0gVkZQIHN1cHBvcnQgdjAuMzogaW1wbGVtZW50b3Ig
NDEgYXJjaGl0ZWN0dXJlIDIgcGFydCAzMCB2YXJpYW50IDcgcmV2IDQ8QlI+WyZuYnNwOyZuYnNw
OyZuYnNwOyAwLjAwNDk5M10gcGluY3RybCBjb3JlOiBpbml0aWFsaXplZCBwaW5jdHJsIHN1YnN5
c3RlbTxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMDA1NTEwXSByZWd1bGF0b3ItZHVtbXk6IG5v
IHBhcmFtZXRlcnM8QlI+WyZuYnNwOyZuYnNwOyZuYnNwOyAwLjAwODY4OV0gTkVUOiBSZWdpc3Rl
cmVkIHByb3RvY29sIGZhbWlseSAxNjxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMDEwNjEwXSBE
TUE6IHByZWFsbG9jYXRlZCAyNTYgS2lCIHBvb2wgZm9yIGF0b21pYyBjb2hlcmVudCBhbGxvY2F0
aW9uczxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMDE1OTMyXSBObyBBVEFHcz88QlI+WyZuYnNw
OyZuYnNwOyZuYnNwOyAwLjAxNjc2MV0gU2VyaWFsOiBBTUJBIFBMMDExIFVBUlQgZHJpdmVyPEJS
PlsmbmJzcDsmbmJzcDsmbmJzcDsgMC4wMzI2NzddIGVkbWEtZG1hLWVuZ2luZSBlZG1hLWRtYS1l
bmdpbmUuMDogQ2FuJ3QgYWxsb2NhdGUgUGFSQU0gZHVtbXkgc2xvdDxCUj5bJm5ic3A7Jm5ic3A7
Jm5ic3A7IDAuMDMyNzE1XSBlZG1hLWRtYS1lbmdpbmU6IHByb2JlIG9mIGVkbWEtZG1hLWVuZ2lu
ZS4wIGZhaWxlZCB3aXRoIGVycm9yIC01PEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsgMC4wMzI4NzBd
IHhlbjpiYWxsb29uOiBJbml0aWFsaXNpbmcgYmFsbG9vbiBkcml2ZXI8QlI+WyZuYnNwOyZuYnNw
OyZuYnNwOyAwLjAzOTk0OF0geGVuX2JhbGxvb246IEluaXRpYWxpc2luZyBiYWxsb29uIGRyaXZl
cjxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMDQxNzYwXSB2Z2FhcmI6IGxvYWRlZDxCUj5bJm5i
c3A7Jm5ic3A7Jm5ic3A7IDAuMDQyNjc3XSBTQ1NJIHN1YnN5c3RlbSBpbml0aWFsaXplZDxCUj5b
Jm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMDQzNjY0XSB1c2Jjb3JlOiByZWdpc3RlcmVkIG5ldyBpbnRl
cmZhY2UgZHJpdmVyIHVzYmZzPEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsgMC4wNDM3NDldIHVzYmNv
cmU6IHJlZ2lzdGVyZWQgbmV3IGludGVyZmFjZSBkcml2ZXIgaHViPEJSPlsmbmJzcDsmbmJzcDsm
bmJzcDsgMC4wNDQwNjFdIHVzYmNvcmU6IHJlZ2lzdGVyZWQgbmV3IGRldmljZSBkcml2ZXIgdXNi
PEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsgMC4wNDQ3MjVdIExpbnV4IHZpZGVvIGNhcHR1cmUgaW50
ZXJmYWNlOiB2Mi4wMDxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMDQ0NzkzXSBwcHNfY29yZTog
TGludXhQUFMgQVBJIHZlci4gMSByZWdpc3RlcmVkPEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsgMC4w
NDQ4MDFdIHBwc19jb3JlOiBTb2Z0d2FyZSB2ZXIuIDUuMy42IC0gQ29weXJpZ2h0IDIwMDUtMjAw
NyBSb2RvbGZvIEdpb21ldHRpICZsdDs8QSBocmVmPSJtYWlsdG86Z2lvbWV0dGlAbGludXguaXQi
Pmdpb21ldHRpQGxpbnV4Lml0PC9BPiZndDs8QlI+WyZuYnNwOyZuYnNwOyZuYnNwOyAwLjA0NDgz
MV0gUFRQIGNsb2NrIHN1cHBvcnQgcmVnaXN0ZXJlZDxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAu
MDQ0OTI2XSBFREFDIE1DOiBWZXI6IDMuMC4wPEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsgMC4wNDY2
MTVdIEFkdmFuY2VkIExpbnV4IFNvdW5kIEFyY2hpdGVjdHVyZSBEcml2ZXIgSW5pdGlhbGl6ZWQu
PEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsgMC4wNDgyNDFdIFN3aXRjaGVkIHRvIGNsb2Nrc291cmNl
IGFyY2hfc3lzX2NvdW50ZXI8QlI+WyZuYnNwOyZuYnNwOyZuYnNwOyAwLjA2NDQwMl0gTkVUOiBS
ZWdpc3RlcmVkIHByb3RvY29sIGZhbWlseSAyPEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsgMC4wNjUy
MjJdIFRDUCBlc3RhYmxpc2hlZCBoYXNoIHRhYmxlIGVudHJpZXM6IDIwNDggKG9yZGVyOiAxLCA4
MTkyIGJ5dGVzKTxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMDY1MjcyXSBUQ1AgYmluZCBoYXNo
IHRhYmxlIGVudHJpZXM6IDIwNDggKG9yZGVyOiAyLCAxNjM4NCBieXRlcyk8QlI+WyZuYnNwOyZu
YnNwOyZuYnNwOyAwLjA2NTMxMF0gVENQOiBIYXNoIHRhYmxlcyBjb25maWd1cmVkIChlc3RhYmxp
c2hlZCAyMDQ4IGJpbmQgMjA0OCk8QlI+WyZuYnNwOyZuYnNwOyZuYnNwOyAwLjA2NTM3NV0gVENQ
OiByZW5vIHJlZ2lzdGVyZWQ8QlI+WyZuYnNwOyZuYnNwOyZuYnNwOyAwLjA2NTM5Ml0gVURQIGhh
c2ggdGFibGUgZW50cmllczogMjU2IChvcmRlcjogMSwgODE5MiBieXRlcyk8QlI+WyZuYnNwOyZu
YnNwOyZuYnNwOyAwLjA2NTQzMV0gVURQLUxpdGUgaGFzaCB0YWJsZSBlbnRyaWVzOiAyNTYgKG9y
ZGVyOiAxLCA4MTkyIGJ5dGVzKTxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMDY1NjYzXSBORVQ6
IFJlZ2lzdGVyZWQgcHJvdG9jb2wgZmFtaWx5IDE8QlI+WyZuYnNwOyZuYnNwOyZuYnNwOyAwLjA2
NjA5M10gUlBDOiBSZWdpc3RlcmVkIG5hbWVkIFVOSVggc29ja2V0IHRyYW5zcG9ydCBtb2R1bGUu
PEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsgMC4wNjYxMTFdIFJQQzogUmVnaXN0ZXJlZCB1ZHAgdHJh
bnNwb3J0IG1vZHVsZS48QlI+WyZuYnNwOyZuYnNwOyZuYnNwOyAwLjA2NjExOF0gUlBDOiBSZWdp
c3RlcmVkIHRjcCB0cmFuc3BvcnQgbW9kdWxlLjxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMDY2
MTI1XSBSUEM6IFJlZ2lzdGVyZWQgdGNwIE5GU3Y0LjEgYmFja2NoYW5uZWwgdHJhbnNwb3J0IG1v
ZHVsZS48QlI+WyZuYnNwOyZuYnNwOyZuYnNwOyAwLjA2Nzk3N10gZnV0ZXggaGFzaCB0YWJsZSBl
bnRyaWVzOiAyNTYgKG9yZGVyOiAyLCAxNjM4NCBieXRlcyk8QlI+WyZuYnNwOyZuYnNwOyZuYnNw
OyAwLjA4MDQxNV0gc3F1YXNoZnM6IHZlcnNpb24gNC4wICgyMDA5LzAxLzMxKSBQaGlsbGlwIExv
dWdoZXI8QlI+WyZuYnNwOyZuYnNwOyZuYnNwOyAwLjA4MTM1M10gTkZTOiBSZWdpc3RlcmluZyB0
aGUgaWRfcmVzb2x2ZXIga2V5IHR5cGU8QlI+WyZuYnNwOyZuYnNwOyZuYnNwOyAwLjA4MTQyN10g
S2V5IHR5cGUgaWRfcmVzb2x2ZXIgcmVnaXN0ZXJlZDxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAu
MDgxNDM2XSBLZXkgdHlwZSBpZF9sZWdhY3kgcmVnaXN0ZXJlZDxCUj5bJm5ic3A7Jm5ic3A7Jm5i
c3A7IDAuMDgxNTE5XSBtc2dtbmkgaGFzIGJlZW4gc2V0IHRvIDQ4NDxCUj5bJm5ic3A7Jm5ic3A7
Jm5ic3A7IDAuMDgyNDQ2XSBCbG9jayBsYXllciBTQ1NJIGdlbmVyaWMgKGJzZykgZHJpdmVyIHZl
cnNpb24gMC40IGxvYWRlZCAobWFqb3IgMjQ5KTxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMDgy
NDc1XSBpbyBzY2hlZHVsZXIgbm9vcCByZWdpc3RlcmVkPEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsg
MC4wODI0OTBdIGlvIHNjaGVkdWxlciBkZWFkbGluZSByZWdpc3RlcmVkPEJSPlsmbmJzcDsmbmJz
cDsmbmJzcDsgMC4wODI3MDFdIGlvIHNjaGVkdWxlciBjZnEgcmVnaXN0ZXJlZCAoZGVmYXVsdCk8
QlI+WyZuYnNwOyZuYnNwOyZuYnNwOyAwLjA4NjA2OV0geGVuOnhlbl9ldnRjaG46IEV2ZW50LWNo
YW5uZWwgZGV2aWNlIGluc3RhbGxlZDxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMTYyNzIxXSBj
b25zb2xlIFtodmMwXSBlbmFibGVkPEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsgMC4xNjI4NDZdIFNl
cmlhbDogODI1MC8xNjU1MCBkcml2ZXIsIDQgcG9ydHMsIElSUSBzaGFyaW5nIGRpc2FibGVkPEJS
PlsmbmJzcDsmbmJzcDsmbmJzcDsgMC4xNjUxMzhdIFNlcmlhbDogSU1YIGRyaXZlcjxCUj5bJm5i
c3A7Jm5ic3A7Jm5ic3A7IDAuMTY1Mzc3XSBtc21fc2VyaWFsOiBkcml2ZXIgaW5pdGlhbGl6ZWQ8
QlI+WyZuYnNwOyZuYnNwOyZuYnNwOyAwLjE2NTU4Ml0gU1RNaWNyb2VsZWN0cm9uaWNzIEFTQyBk
cml2ZXIgaW5pdGlhbGl6ZWQ8QlI+WyZuYnNwOyZuYnNwOyZuYnNwOyAwLjE2NjA1Ml0gc2VyaWFs
OiBGcmVlc2NhbGUgbHB1YXJ0IGRyaXZlcjxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMTY2MjUy
XSBbZHJtXSBJbml0aWFsaXplZCBkcm0gMS4xLjAgMjAwNjA4MTA8QlI+WyZuYnNwOyZuYnNwOyZu
YnNwOyAwLjE3MTgyM10gbG9vcDogbW9kdWxlIGxvYWRlZDxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7
IDAuMTkwNTk0XSBibGt0YXBfZGV2aWNlX2luaXQ6IGJsa3RhcCBkZXZpY2UgbWFqb3IgMjU0PEJS
PlsmbmJzcDsmbmJzcDsmbmJzcDsgMC4xOTA2NDJdIGJsa3RhcF9yaW5nX2luaXQ6IGJsa3RhcCBy
aW5nIG1ham9yOiAyNDA8QlI+WyZuYnNwOyZuYnNwOyZuYnNwOyAwLjIwODYzN10gdHVuOiBVbml2
ZXJzYWwgVFVOL1RBUCBkZXZpY2UgZHJpdmVyLCAxLjY8QlI+WyZuYnNwOyZuYnNwOyZuYnNwOyAw
LjIwODY3OF0gdHVuOiAoQykgMTk5OS0yMDA0IE1heCBLcmFzbnlhbnNreSAmbHQ7PEEgaHJlZj0i
bWFpbHRvOm1heGtAcXVhbGNvbW0uY29tIj5tYXhrQHF1YWxjb21tLmNvbTwvQT4mZ3Q7PEJSPlsm
bmJzcDsmbmJzcDsmbmJzcDsgMC4yMTA2ODVdIHhlbl9uZXRmcm9udDogSW5pdGlhbGlzaW5nIFhl
biB2aXJ0dWFsIGV0aGVybmV0IGRyaXZlcjxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMjE1MTU4
XSBibGtmcm9udDogeHZkYTogYmFycmllciBvciBmbHVzaDogZGlzYWJsZWQ7IHBlcnNpc3RlbnQg
Z3JhbnRzOiBlbmFibGVkOyBpbmRpcmVjdCBkZXNjcmlwdG9yczogZW5hYmxlZDs8QlI+WyZuYnNw
OyZuYnNwOyZuYnNwOyAwLjIyMjc2NV0mbmJzcDsgeHZkYTogdW5rbm93biBwYXJ0aXRpb24gdGFi
bGU8QlI+WyZuYnNwOyZuYnNwOyZuYnNwOyAwLjIyNTk0OV0gcGVnYXN1czogdjAuOS4zICgyMDEz
LzA0LzI1KSwgUGVnYXN1cy9QZWdhc3VzIElJIFVTQiBFdGhlcm5ldCBkcml2ZXI8QlI+WyZuYnNw
OyZuYnNwOyZuYnNwOyAwLjIyNjA5MV0gdXNiY29yZTogcmVnaXN0ZXJlZCBuZXcgaW50ZXJmYWNl
IGRyaXZlciBwZWdhc3VzPEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsgMC4yMjYyMjRdIHVzYmNvcmU6
IHJlZ2lzdGVyZWQgbmV3IGludGVyZmFjZSBkcml2ZXIgYXNpeDxCUj5bJm5ic3A7Jm5ic3A7Jm5i
c3A7IDAuMjI2MzQzXSB1c2Jjb3JlOiByZWdpc3RlcmVkIG5ldyBpbnRlcmZhY2UgZHJpdmVyIGF4
ODgxNzlfMTc4YTxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMjI2NDUxXSB1c2Jjb3JlOiByZWdp
c3RlcmVkIG5ldyBpbnRlcmZhY2UgZHJpdmVyIGNkY19ldGhlcjxCUj5bJm5ic3A7Jm5ic3A7Jm5i
c3A7IDAuMjI2NTYwXSB1c2Jjb3JlOiByZWdpc3RlcmVkIG5ldyBpbnRlcmZhY2UgZHJpdmVyIHNt
c2M3NXh4PEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsgMC4yMjY2NjNdIHVzYmNvcmU6IHJlZ2lzdGVy
ZWQgbmV3IGludGVyZmFjZSBkcml2ZXIgc21zYzk1eHg8QlI+WyZuYnNwOyZuYnNwOyZuYnNwOyAw
LjIyNjgxOV0gdXNiY29yZTogcmVnaXN0ZXJlZCBuZXcgaW50ZXJmYWNlIGRyaXZlciBuZXQxMDgw
PEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsgMC4yMjY5MjVdIHVzYmNvcmU6IHJlZ2lzdGVyZWQgbmV3
IGludGVyZmFjZSBkcml2ZXIgY2RjX3N1YnNldDxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMjI3
MDAwXSB1c2Jjb3JlOiByZWdpc3RlcmVkIG5ldyBpbnRlcmZhY2UgZHJpdmVyIHphdXJ1czxCUj5b
Jm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMjI3MTMzXSB1c2Jjb3JlOiByZWdpc3RlcmVkIG5ldyBpbnRl
cmZhY2UgZHJpdmVyIGNkY19uY208QlI+WyZuYnNwOyZuYnNwOyZuYnNwOyAwLjIyNzE5M10gZWhj
aV9oY2Q6IFVTQiAyLjAgJ0VuaGFuY2VkJyBIb3N0IENvbnRyb2xsZXIgKEVIQ0kpIERyaXZlcjxC
Uj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMjI3MjIxXSBlaGNpLXBjaTogRUhDSSBQQ0kgcGxhdGZv
cm0gZHJpdmVyPEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsgMC4yMjczMzFdIGVoY2ktcGxhdGZvcm06
IEVIQ0kgZ2VuZXJpYyBwbGF0Zm9ybSBkcml2ZXI8QlI+WyZuYnNwOyZuYnNwOyZuYnNwOyAwLjIy
NzUxNl0gZWhjaS1vbWFwOiBPTUFQLUVIQ0kgSG9zdCBDb250cm9sbGVyIGRyaXZlcjxCUj5bJm5i
c3A7Jm5ic3A7Jm5ic3A7IDAuMjI3NjI3XSBlaGNpLW9yaW9uOiBFSENJIG9yaW9uIGRyaXZlcjxC
Uj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMjI3NzE0XSBTUEVBci1laGNpOiBFSENJIFNQRUFyIGRy
aXZlcjxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMjI3ODA0XSB0ZWdyYS1laGNpOiBUZWdyYSBF
SENJIGRyaXZlcjxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMjI4NDA3XSB1c2Jjb3JlOiByZWdp
c3RlcmVkIG5ldyBpbnRlcmZhY2UgZHJpdmVyIHVzYi1zdG9yYWdlPEJSPlsmbmJzcDsmbmJzcDsm
bmJzcDsgMC4zNjM4OTVdIG1vdXNlZGV2OiBQUy8yIG1vdXNlIGRldmljZSBjb21tb24gZm9yIGFs
bCBtaWNlPEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsgMC4zNjYxNThdIGkyYyAvZGV2IGVudHJpZXMg
ZHJpdmVyPEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsgMC4zNjY3ODRdIHVzYmNvcmU6IHJlZ2lzdGVy
ZWQgbmV3IGludGVyZmFjZSBkcml2ZXIgdXZjdmlkZW88QlI+WyZuYnNwOyZuYnNwOyZuYnNwOyAw
LjM2NjgzN10gVVNCIFZpZGVvIENsYXNzIGRyaXZlciAoMS4xLjEpPEJSPlsmbmJzcDsmbmJzcDsm
bmJzcDsgMC4zNjY4NjhdIGdzcGNhX21haW46IHYyLjE0LjAgcmVnaXN0ZXJlZDxCUj5bJm5ic3A7
Jm5ic3A7Jm5ic3A7IDAuMzY5OTEzXSBkZXZpY2UtbWFwcGVyOiB1ZXZlbnQ6IHZlcnNpb24gMS4w
LjM8QlI+WyZuYnNwOyZuYnNwOyZuYnNwOyAwLjM3MTE4MV0gU2V0dGluZyBjYXBhY2l0eSB0byA4
Mzg4NjA4PEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsgMC4zNzEyNzhdIHh2ZGE6IGRldGVjdGVkIGNh
cGFjaXR5IGNoYW5nZSBmcm9tIDAgdG8gNDI5NDk2NzI5NjxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7
IDAuMzcxNTUxXSBkZXZpY2UtbWFwcGVyOiBpb2N0bDogNC4yNy4wLWlvY3RsICgyMDEzLTEwLTMw
KSBpbml0aWFsaXNlZDogPEEgaHJlZj0ibWFpbHRvOmRtLWRldmVsQHJlZGhhdC5jb20iPmRtLWRl
dmVsQHJlZGhhdC5jb208L0E+PEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsgMC4zNzM1MzhdIHNkaGNp
OiBTZWN1cmUgRGlnaXRhbCBIb3N0IENvbnRyb2xsZXIgSW50ZXJmYWNlIGRyaXZlcjxCUj5bJm5i
c3A7Jm5ic3A7Jm5ic3A7IDAuMzczNjE4XSBzZGhjaTogQ29weXJpZ2h0KGMpIFBpZXJyZSBPc3Nt
YW48QlI+WyZuYnNwOyZuYnNwOyZuYnNwOyAwLjM3NDEyOF0gc2RoY2ktcGx0Zm06IFNESENJIHBs
YXRmb3JtIGFuZCBPRiBkcml2ZXIgaGVscGVyPEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsgMC4zNzQ2
ODNdIHVzYmNvcmU6IHJlZ2lzdGVyZWQgbmV3IGludGVyZmFjZSBkcml2ZXIgdXNiaGlkPEJSPlsm
bmJzcDsmbmJzcDsmbmJzcDsgMC4zNzQ3MzNdIHVzYmhpZDogVVNCIEhJRCBjb3JlIGRyaXZlcjxC
Uj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMzc0ODQyXSB1c2Jjb3JlOiByZWdpc3RlcmVkIG5ldyBp
bnRlcmZhY2UgZHJpdmVyIHI4MTg4ZXU8QlI+WyZuYnNwOyZuYnNwOyZuYnNwOyAwLjM3OTEyNF0g
bmZfY29ubnRyYWNrIHZlcnNpb24gMC41LjAgKDM4NzggYnVja2V0cywgMTU1MTIgbWF4KTxCUj5b
Jm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMzgwMTYzXSBpcF90YWJsZXM6IChDKSAyMDAwLTIwMDYgTmV0
ZmlsdGVyIENvcmUgVGVhbTxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMzgwMzc4XSBUQ1A6IGN1
YmljIHJlZ2lzdGVyZWQ8QlI+WyZuYnNwOyZuYnNwOyZuYnNwOyAwLjM4MDQyNl0gTkVUOiBSZWdp
c3RlcmVkIHByb3RvY29sIGZhbWlseSAxNzxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMzgwNzc3
XSBLZXkgdHlwZSBkbnNfcmVzb2x2ZXIgcmVnaXN0ZXJlZDxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7
IDAuMzgwOTYyXSBUaHVtYkVFIENQVSBleHRlbnNpb24gc3VwcG9ydGVkLjxCUj5bJm5ic3A7Jm5i
c3A7Jm5ic3A7IDAuMzgxMDEzXSBSZWdpc3RlcmluZyBTV1AvU1dQQiBlbXVsYXRpb24gaGFuZGxl
cjxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuNDc5MDc1XSBkcml2ZXJzL3J0Yy9oY3Rvc3lzLmM6
IHVuYWJsZSB0byBvcGVuIHJ0YyBkZXZpY2UgKHJ0YzApPEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsg
MC40NzkzMjNdIEFMU0EgZGV2aWNlIGxpc3Q6PEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsgMC40Nzkz
NjBdJm5ic3A7Jm5ic3A7IE5vIHNvdW5kY2FyZHMgZm91bmQuPEJSPlsmbmJzcDsmbmJzcDsmbmJz
cDsgMC40ODIyMDBdIEVYVDQtZnMgKHh2ZGEpOiBjb3VsZG4ndCBtb3VudCBhcyBleHQzIGR1ZSB0
byBmZWF0dXJlIGluY29tcGF0aWJpbGl0aWVzPEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsgMC40ODQw
MThdIEVYVDQtZnMgKHh2ZGEpOiBjb3VsZG4ndCBtb3VudCBhcyBleHQyIGR1ZSB0byBmZWF0dXJl
IGluY29tcGF0aWJpbGl0aWVzPEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsgMC41MTkyMTldIEVYVDQt
ZnMgKHh2ZGEpOiBtb3VudGVkIGZpbGVzeXN0ZW0gd2l0aCBvcmRlcmVkIGRhdGEgbW9kZS4gT3B0
czogKG51bGwpPEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsgMC41MTkzNTFdIFZGUzogTW91bnRlZCBy
b290IChleHQ0IGZpbGVzeXN0ZW0pIHJlYWRvbmx5IG9uIGRldmljZSAyMDI6MC48QlI+WyZuYnNw
OyZuYnNwOyZuYnNwOyAwLjUzMTI1NF0gZGV2dG1wZnM6IG1vdW50ZWQ8QlI+WyZuYnNwOyZuYnNw
OyZuYnNwOyAwLjUzMTk2Ml0gRnJlZWluZyB1bnVzZWQga2VybmVsIG1lbW9yeTogNTg4SyAoYzBi
ODMwMDAgLSBjMGMxNjAwMCk8QlI+TW91bnQgZmFpbGVkIGZvciBzZWxpbnV4ZnMgb24gL3N5cy9m
cy9zZWxpbnV4OiZuYnNwOyBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5PEJSPlsmbmJzcDsmbmJz
cDsmbmJzcDsgMS4xNTc1NDRdIHJhbmRvbTogaW5pdCB1cmFuZG9tIHJlYWQgd2l0aCAxOCBiaXRz
IG9mIGVudHJvcHkgYXZhaWxhYmxlPEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsgMS41NTY4OTBdIGlu
aXQ6IHBseW1vdXRoLXVwc3RhcnQtYnJpZGdlIG1haW4gcHJvY2VzcyAoNDEpIHRlcm1pbmF0ZWQg
d2l0aCBzdGF0dXMgMTxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDEuNTU3MTExXSBpbml0OiBwbHlt
b3V0aC11cHN0YXJ0LWJyaWRnZSBtYWluIHByb2Nlc3MgZW5kZWQsIHJlc3Bhd25pbmc8QlI+WyZu
YnNwOyZuYnNwOyZuYnNwOyAxLjU5OTQ2N10gaW5pdDogcGx5bW91dGgtdXBzdGFydC1icmlkZ2Ug
bWFpbiBwcm9jZXNzICg1NCkgdGVybWluYXRlZCB3aXRoIHN0YXR1cyAxPEJSPlsmbmJzcDsmbmJz
cDsmbmJzcDsgMS41OTk2NDJdIGluaXQ6IHBseW1vdXRoLXVwc3RhcnQtYnJpZGdlIG1haW4gcHJv
Y2VzcyBlbmRlZCwgcmVzcGF3bmluZzxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDEuNjIyODU4XSBp
bml0OiBwbHltb3V0aC11cHN0YXJ0LWJyaWRnZSBtYWluIHByb2Nlc3MgKDU3KSB0ZXJtaW5hdGVk
IHdpdGggc3RhdHVzIDE8QlI+WyZuYnNwOyZuYnNwOyZuYnNwOyAxLjYyMzA1M10gaW5pdDogcGx5
bW91dGgtdXBzdGFydC1icmlkZ2UgbWFpbiBwcm9jZXNzIGVuZGVkLCByZXNwYXduaW5nPEJSPlsm
bmJzcDsmbmJzcDsmbmJzcDsgMS43MTI4OTddIGluaXQ6IHVyZWFkYWhlYWQgbWFpbiBwcm9jZXNz
ICg0NCkgdGVybWluYXRlZCB3aXRoIHN0YXR1cyA1PC9QPg0KPFA+Jm5ic3A7PC9QPg0KPFA+Jm5i
c3A7KiBTdGFydGluZyBNb3VudCBmaWxlc3lzdGVtcyBvbiBib290Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IFsgT0sgXTxCUj4mbmJzcDsqIFN0YXJ0aW5nIFBvcHVsYXRl
IC9kZXYgZmlsZXN5c3RlbSZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyBbIE9LIF08QlI+Jm5ic3A7KiBTdG9wcGluZyBQb3B1bGF0ZSAvZGV2IGZpbGVzeXN0ZW0m
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgWyBPSyBdPEJSPiZu
YnNwOyogU3RhcnRpbmcgRml4LXVwIC9zeXMva2VybmVsL2RlYnVnIGZpbGVzeXN0ZW0mbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgWyBPSyBdPEJSPiZuYnNwOyogU3RvcHBpbmcg
Rml4LXVwIC9zeXMva2VybmVsL2RlYnVnIGZpbGVzeXN0ZW0mbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsgWyBPSyBdPEJSPiZuYnNwOyogU3RhcnRpbmcgUG9wdWxhdGUgYW5kIGxp
bmsgdG8gL3J1biBmaWxlc3lzdGVtJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IFsgT0sg
XTxCUj4mbmJzcDsqIFN0b3BwaW5nIFBvcHVsYXRlIGFuZCBsaW5rIHRvIC9ydW4gZmlsZXN5c3Rl
bSZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBbIE9LIF08QlI+Jm5ic3A7KiBTdG9wcGlu
ZyBUcmFjayBpZiB1cHN0YXJ0IGlzIHJ1bm5pbmcgaW4gYSBjb250YWluZXImbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgWyBPSyBdPEJSPiZuYnNwOyog
U3RhcnRpbmcgSW5pdGlhbGl6ZSBvciBmaW5hbGl6ZSByZXNvbHZjb25mJm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IFsgT0sgXTxCUj4mbmJzcDsqIFN0YXJ0
aW5nIHNldCBjb25zb2xlIGtleW1hcCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBbIE9LIF08QlI+
Jm5ic3A7KiBTdGFydGluZyBTaWduYWwgc3lzdmluaXQgdGhhdCB2aXJ0dWFsIGZpbGVzeXN0ZW1z
IGFyZSBtb3VudGVkJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7IFsgT0sgXTxCUj4mbmJzcDsqIFN0YXJ0aW5nIFNpZ25hbCBzeXN2aW5pdCB0aGF0IHZpcnR1
YWwgZmlsZXN5c3RlbXMgYXJlIG1vdW50ZWQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsgWyBPSyBdPEJSPiZuYnNwOyogU3RhcnRpbmcgQnJpZGdlIHVkZXYg
ZXZlbnRzIGludG8gdXBzdGFydCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBbIE9LIF08QlI+Jm5ic3A7KiBTdG9wcGluZyBzZXQgY29u
c29sZSBrZXltYXAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgWyBPSyBdPEJSPiZuYnNwOyogU3Rh
cnRpbmcgU2lnbmFsIHN5c3Zpbml0IHRoYXQgcmVtb3RlIGZpbGVzeXN0ZW1zIGFyZSBtb3VudGVk
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IFsg
T0sgXTxCUj4mbmJzcDsqIFN0YXJ0aW5nIGRldmljZSBub2RlIGFuZCBrZXJuZWwgZXZlbnQgbWFu
YWdlciZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBbIE9LIF08QlI+Jm5ic3A7KiBTdGFy
dGluZyBsb2FkIG1vZHVsZXMgZnJvbSAvZXRjL21vZHVsZXMmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgWyBPSyBdPEJSPiZu
YnNwOyogU3RhcnRpbmcgY29sZCBwbHVnIGRldmljZXMmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsgWyBPSyBdPEJSPiZuYnNwOyogU3RhcnRpbmcgbG9nIGluaXRpYWwgZGV2aWNlIGNyZWF0
aW9uJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IFsgT0sgXTxCUj4mbmJzcDsqIFN0b3BwaW5n
IGxvYWQgbW9kdWxlcyBmcm9tIC9ldGMvbW9kdWxlcyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBbIE9LIF08QlI+Jm5ic3A7
KiBTdGFydGluZyBjb25maWd1cmUgbmV0d29yayBkZXZpY2Ugc2VjdXJpdHkmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgWyBPSyBdPEJSPiZuYnNwOyogU3Rh
cnRpbmcgY29uZmlndXJlIG5ldHdvcmsgZGV2aWNlIHNlY3VyaXR5Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IFsgT0sgXTxCUj4mbmJzcDsqIFN0YXJ0aW5n
IFNpZ25hbCBzeXN2aW5pdCB0aGF0IHRoZSByb290ZnMgaXMgbW91bnRlZCZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBbIE9LIF08QlI+Jm5ic3A7KiBT
dGFydGluZyBNb3VudCBuZXR3b3JrIGZpbGVzeXN0ZW1zJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7IFsgT0sgXTxCUj4mbmJzcDsqIFN0YXJ0aW5nIGNvbmZpZ3VyZSBuZXR3
b3JrIGRldmljZSZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBb
IE9LIF08QlI+Jm5ic3A7KiBTdGFydGluZyBDbGVhbiAvdG1wIGRpcmVjdG9yeSZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyBbIE9LIF08QlI+Jm5ic3A7KiBTdG9wcGluZyBNb3VudCBuZXR3b3JrIGZpbGVzeXN0ZW1zJm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IFsgT0sgXTxCUj4mbmJzcDsqIFN0
b3BwaW5nIENsZWFuIC90bXAgZGlyZWN0b3J5Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IFsgT0sgXTxCUj4mbmJzcDsq
IFN0b3BwaW5nIGNvbGQgcGx1ZyBkZXZpY2VzJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
IFsgT0sgXTxCUj4mbmJzcDsqIFN0YXJ0aW5nIFNpZ25hbCBzeXN2aW5pdCB0aGF0IGxvY2FsIGZp
bGVzeXN0ZW1zIGFyZSBtb3VudGVkJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IFsgT0sgXTxCUj4mbmJzcDsqIFN0b3BwaW5nIGxvZyBp
bml0aWFsIGRldmljZSBjcmVhdGlvbiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBbIE9LIF08
QlI+Jm5ic3A7KiBTdG9wcGluZyBNb3VudCBmaWxlc3lzdGVtcyBvbiBib290Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IFsgT0sgXTxCUj4mbmJzcDsqIFN0YXJ0aW5nIEZh
aWxzYWZlIEJvb3QgRGVsYXkmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgWyBPSyBdPEJSPiZuYnNwOyogU3Rh
cnRpbmcgZmx1c2ggZWFybHkgam9iIG91dHB1dCB0byBsb2dzJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IFsgT0sgXTxCUj4m
bmJzcDsqIFN0YXJ0aW5nIGNvbmZpZ3VyZSBuZXR3b3JrIGRldmljZSBzZWN1cml0eSZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBbIE9LIF08QlI+Jm5ic3A7
KiBTdGFydGluZyBELUJ1cyBzeXN0ZW0gbWVzc2FnZSBidXMmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgWyBPSyBdPEJSPiZuYnNwOyogU3RhcnRpbmcgdXNlcnNw
YWNlIGJvb3RzcGxhc2gmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgWyBPSyBdPEJSPiZuYnNwOyogU3RvcHBpbmcgZmx1
c2ggZWFybHkgam9iIG91dHB1dCB0byBsb2dzJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IFsgT0sgXTxCUj4mbmJzcDsqIFN0
b3BwaW5nIHVzZXJzcGFjZSBib290c3BsYXNoJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IFsgT0sgXTxCUj4mbmJzcDsq
IFN0YXJ0aW5nIFNlbmQgYW4gZXZlbnQgdG8gaW5kaWNhdGUgcGx5bW91dGggaXMgdXAmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsg
WyBPSyBdPEJSPiZuYnNwOyogU3RhcnRpbmcgY29uZmlndXJlIHZpcnR1YWwgbmV0d29yayBkZXZp
Y2VzJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IFsgT0sg
XTxCUj4mbmJzcDsqIFN0YXJ0aW5nIHN5c3RlbSBsb2dnaW5nIGRhZW1vbiZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBbIE9LIF08
QlI+Jm5ic3A7KiBTdG9wcGluZyBTZW5kIGFuIGV2ZW50IHRvIGluZGljYXRlIHBseW1vdXRoIGlz
IHVwJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7IFsgT0sgXTxCUj4mbmJzcDsqIFN0YXJ0aW5nIE1vdW50IG5ldHdvcmsgZmlsZXN5
c3RlbXMmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgWyBPSyBdPEJSPiZu
YnNwOyogU3RhcnRpbmcgY29uZmlndXJlIG5ldHdvcmsgZGV2aWNlJm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IFsgT0sgXTxCUj4mbmJzcDsqIFN0b3BwaW5nIEZh
aWxzYWZlIEJvb3QgRGVsYXkmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgWyBPSyBdPEJSPiZuYnNwOyogU3Rh
cnRpbmcgbUROUy9ETlMtU0QgZGFlbW9uJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IFsgT0sgXTxC
Uj4mbmJzcDsqIFN0YXJ0aW5nIFN5c3RlbSBWIGluaXRpYWxpc2F0aW9uIGNvbXBhdGliaWxpdHkm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgWyBPSyBdPEJSPiZuYnNwOyogU3RhcnRpbmcgUmVsb2Fk
IGN1cHMsIHVwb24gc3RhcnRpbmcgYXZhaGktZGFlbW9uIHRvIG1ha2Ugc3VyZSByZW1vdGUgcVsg
T0sgXWFyZSBwb3B1bGF0ZWQ8QlI+Jm5ic3A7KiBTdGFydGluZyBSZWxvYWQgY3VwcywgdXBvbiBz
dGFydGluZyBhdmFoaS1kYWVtb24gdG8gbWFrZSBzdXJlIHJlbW90ZSBxW2ZhaWxdYXJlIHBvcHVs
YXRlZDxCUj4mbmJzcDsqIFN0b3BwaW5nIE1vdW50IG5ldHdvcmsgZmlsZXN5c3RlbXMmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgWyBPSyBdPEJSPiZuYnNwOyogU3RvcHBp
bmcgU3lzdGVtIFYgaW5pdGlhbGlzYXRpb24gY29tcGF0aWJpbGl0eSZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyBbIE9LIF08QlI+Jm5ic3A7KiBTdGFydGluZyBTeXN0ZW0gViBydW5sZXZlbCBjb21w
YXRpYmlsaXR5Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7IFsgT0sgXTxCUj4mbmJzcDsqIFN0YXJ0aW5nIHJlZ3VsYXIgYmFja2dyb3Vu
ZCBwcm9ncmFtIHByb2Nlc3NpbmcgZGFlbW9uJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7IFsgT0sgXTxCUj4mbmJzcDsqIFN0YXJ0aW5nIHNhdmUga2VybmVsIG1lc3NhZ2Vz
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7IFsgT0sgXTxCUj4mbmJzcDsqIFN0b3BwaW5nIFN5c3RlbSBWIHJ1bmxldmVs
IGNvbXBhdGliaWxpdHkmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsgWyBPSyBdPEJSPiZuYnNwOyogU3RvcHBpbmcgc2F2ZSBrZXJuZWwg
bWVzc2FnZXMmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsgWyBPSyBdPEJSPiZuYnNwOyogU3RhcnRpbmcgT3BlblNTSCBz
ZXJ2ZXImbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgWyBP
SyBdPEJSPlsmbmJzcDsgNzU3LjA3NTA2OV0gQlVHOiBzb2Z0IGxvY2t1cCAtIENQVSMwIHN0dWNr
IGZvciAzNXMhIFtzd2FwcGVyLzA6MF08QlI+PC9QPg0KPFA+Jm5ic3A7PC9QPg0KPFA+PFNQQU4g
bGFuZz1FTi1VUyBzdHlsZT0iRk9OVC1TSVpFOiA4cHQ7IEZPTlQtRkFNSUxZOiAnQ2FuZGFyYScs
c2Fucy1zZXJpZjsgQ09MT1I6ICM0MDQwNDAiPkd5dW5nbWluIFBhcmsmbmJzcDt8ICs4Mi0xMC0z
NDY1LTc1MDcgfCBSJmFtcDtEIE9mZmljZSwgVkQgRGl2aXNpb24sIFNFQzxvOnA+PC9vOnA+PC9T
UEFOPjwvUD48IS0tZ20wOTExLnBhcms6RVAtLT4NCjxQPiZuYnNwOzwvUD4NCjxUQUJMRSBpZD1j
b25maWRlbnRpYWxzaWduaW1nPg0KPFRCT0RZPg0KPFRSPg0KPFREIE5BTU9fTE9DSz4NCjxQPjxJ
TUcgYm9yZGVyPTAgc3JjPSJjaWQ6RVc5QkVXWFhZS0VOQG5hbW8uY28ua3IiPjwvUD48L1REPjwv
VFI+PC9UQk9EWT48L1RBQkxFPjwvQk9EWT48L0hUTUw+PGltZyBzcmM9J2h0dHA6Ly9leHQuc2Ft
c3VuZy5uZXQvbWFpbGNoZWNrL1NlZW5UaW1lQ2hlY2tlcj9kbz0yOGJjY2IwZTdhMWUwZDA2ODI2
OTc0NTRkN2Y0MWQ3OThjMDNmN2YwNThlNjkxNWU5YWIzZTVhMDViY2FlZjllMzU3YTFiN2ZjMjJh
NmQ2MDZkM2U4YzdmYWJhMjRhZTZiYTk1MTEzZmM4NjVjN2Y2NWFmOTY2YzBmMDg5OTE5ZTQ5ZTVm
ZjNkZmRjODY4MWQ3NmY4MGJmODFkMzFjODYzY2Y4NzhmOWEyNmNlMTVhMCcgYm9yZGVyPTAgd2lk
dGg9MCBoZWlnaHQ9MCBzdHlsZT0nZGlzcGxheTpub25lJz4=


--=_NamoWEC-fa22mhucko
Content-Type: image/gif;
	name="201601282016874_4XEV4D4T.gif"
Content-Transfer-Encoding: base64
Content-ID: <EW9BEWXXYKEN@namo.co.kr>

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
Ow==

--=_NamoWEC-fa22mhucko--




--===============5156697503593393135==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============5156697503593393135==--




From mirageos-devel-bounces@lists.xenproject.org Thu Jan 28 11:16:27 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 28 Jan 2016 11:16:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aOkYj-0008Ui-Gk; Thu, 28 Jan 2016 11:16:17 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <gm0911.park@samsung.com>) id 1aOkYh-0008Ub-La
	for mirageos-devel@lists.xenproject.org; Thu, 28 Jan 2016 11:16:16 +0000
Received: from [85.158.137.68] by server-8.bemta-3.messagelabs.com id
	D1/A9-24375-E78F9A65; Thu, 28 Jan 2016 11:16:14 +0000
X-Env-Sender: gm0911.park@samsung.com
X-Msg-Ref: server-3.tower-31.messagelabs.com!1453979768!18768173!1
X-Originating-IP: [203.254.224.25]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
	VHJ1c3RlZCBJUDogMjAzLjI1NC4yMjQuMjUgPT4gMzcxMzg3\n
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 35881 invoked from network); 28 Jan 2016 11:16:12 -0000
Received: from mailout2.samsung.com (HELO mailout2.samsung.com)
	(203.254.224.25)
	by server-3.tower-31.messagelabs.com with DHE-RSA-AES128-SHA encrypted
	SMTP; 28 Jan 2016 11:16:12 -0000
Received: from epcpsbgr1.samsung.com
	(u141.gpu120.samsung.co.kr [203.254.230.141])
	by mailout2.samsung.com (Oracle Communications Messaging Server
	7.0.5.31.0 64bit (built May  5 2014))
	with ESMTP id <0O1N0322JTYVHN10@mailout2.samsung.com> for
	mirageos-devel@lists.xenproject.org;
	Thu, 28 Jan 2016 20:16:07 +0900 (KST)
Received: from epcpsbgx4.samsung.com ( [172.20.52.116])
	by epcpsbgr1.samsung.com (EPCPMTA) with SMTP id A1.39.04949.778F9A65;
	Thu, 28 Jan 2016 20:16:07 +0900 (KST)
X-AuditID: cbfee68d-f79646d000001355-34-56a9f8775417
Received: from epmailer01 ( [203.254.219.141])
	by epcpsbgx4.samsung.com (EPCPMTA) with SMTP id 63.22.05161.678F9A65;
	Thu, 28 Jan 2016 20:16:07 +0900 (KST)
Message-id: <63.22.05161.678F9A65@epcpsbgx4.samsung.com>
Date: Thu, 28 Jan 2016 11:16:06 +0000 (GMT)
From: =?euc-kr?B?udqw5rnO?= <gm0911.park@samsung.com>
To: mirageos-devel@lists.xenproject.org
MIME-version: 1.0
X-MTR: 20160128111519184@gm0911.park
Msgkey: 20160128111519184@gm0911.park
X-EPLocale: ko_KR.euc-kr
X-Priority: 3
X-EPWebmail-Msg-Type: personal
X-EPWebmail-Reply-Demand: 0
X-EPApproval-Locale: 
X-EPHeader: ML
X-MLAttribute: 
X-RootMTR: 20160128110713239@gm0911.park
X-ParentMTR: 20160128111253913@gm0911.park
X-ArchiveUser: 
X-CPGSPASS: N
X-ConfirmMail: N,general
MIME-version: 1.0
X-Generator: Namo ActiveSquare 7 7.0.0.45
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrJKsWRmVeSWpSXmKPExsWyRsSkRLf8x8owg/Y+QYve1rssDowehz9c
	YQlgjOKySUnNySxLLdK3S+DKuDdtH0vBnGvMFf/Xz2dqYPx4krmLkZNDSEBNonfScnYQW0LA
	RKJz3iVmCFtM4sK99WxdjFxANUsZJSbdm80EU3S4qZEZIjGHUWLOokcsIAleAQuJ3X8nsYHY
	LAKqElfb/4HF2QTMJI7s284IYgsLWErMedgNtk1EQEfizc9eRogrFCX+NPewQcwRlDg58wkL
	xDIViXf7G6DiqhJrzk+EOkJCYtb0C6wQNq/EjPanUPVyEtO+roH6QFri/KwNjDDfLP7+GCrO
	L3Hs9g6oOQISU88chKrRlFj6rxMqri2x5dpSFpj6XaeWM8Psur9lLtwNW1uesKK7mVnASWLL
	zUksMDMfLWplAQWWhMAWDol9O3tYIAEkIPFt8iGWCYyKs5D0o7NhZkHY2hKtbz4yQdiKElO6
	H7JD2HYSa7v/sWCKq0ps2H6eeQEjxypG0dSC5ILipPQiQ73ixNzi0rx0veT83E2MwBR0+t+z
	3h2Mtw9YH2IU4GBU4uFliFoZJsSaWFZcmXuI0RTo1InMUqLJ+cBEl1cSb2hsZmRhamJqbGRu
	aaYkzqso9TNYSCA9sSQ1OzW1ILUovqg0J7X4ECMTB6dUA+OBpWWyFUX/7fiDTzqITbAJfJC2
	bxZj3qPbi5f9W/38Cq/pmkN70lcwbhXbnbOFI3K3GutN9htfbJfs3RWwN3xfiE9g7Hef404r
	7CRqVd4Zet692HP+/fd8+aZjuU1v/1v/+7nRLnnyPZP393InbJ2+xG93TKZR3au5/p1SxyqZ
	+NUCC/zETNYqsRRnJBpqMRcVJwIAJWPn/TwDAAA=
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrJKsWRmVeSWpSXmKPExsVy+t/tXt3yHyvDDD4bWvS23mVxYPQ4/OEK
	SwBjVJpNRmpiSmqRQmpecn5KZl66rZJ3cLxzvKmZgaGuoaWFuZJCXmJuqq2Si0+ArltmDtBQ
	JYWyxJxSoFBAYnGxkr6dTVF+aUmqQkZ+cYmtUrShuZGekYGeqZGeoXGslaGBgZEpUE1CWsa9
	aftYCuZcY674v34+UwPjx5PMXYycHEICahK9k5azg9gSAiYSh5samSFsMYkL99azdTFyAdXM
	YZSYs+gRC0iCV8BCYvffSWwgNouAqsTV9n9gcTYBM4kj+7YzgtjCApYScx52gw0VEdCRePOz
	lxFimaLEn+YeNog5ghInZz5hgVimIvFufwNUXFVizfmJTBBxCYlZ0y+wQti8EjPan0LVy0lM
	+7oG6lBpifOzNjDCHL34+2OoOL/Esds7oOYISEw9cxCqRlNi6b9OqLi2xJZrS1lg6nedWs4M
	s+v+lrlwN2xtecKK7mZmASeJLTcnscDMfLSolWUCo8wsJGXobJgWCFtbovXNRyYIW1FiSvdD
	dgjbTmJt9z8WTHFViQ3bzzMvYORYxSiaWpBcUJyUXmGiV5yYW1yal66XnJ+7iRGc1J4t2cHY
	cMH6EKMAB6MSDy9D1MowIdbEsuLK3EOMKkBzHm1YfYFRiiUvPy9VSYRXsRoozZuSWFmVWpQf
	X1Sak1p8iNEUGLMTmaVEk/OBiTivJN7Q2NjEzMTU0sTCwNRcSZz39j6/MCGB9MSS1OzU1ILU
	Ipg+Jg5OqQbGg32P5vH4JuyfnBi0aFnxEeWcuXv5zKZb9fB/U5kVLtTEbHbg8cXlvzPsNZPv
	8l6XOit93Wzyrii/Casf30uVebY46T2/ZdXpnp0bd4ff471a8uAlS9w30+63v0oWl96fcfid
	i9bh58sSZFXCW0KD7oZHr1gv+oTFqcDkocQE7TURPTNaTsxvUmIpzkg01GIuKk4EAMNMjheM	AwAA
DLP-Filter: Pass
X-CFilter-Loop: Reflected
Subject: [MirageOS-devel]  request for solving the problem
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
Reply-To: gm0911.park@samsung.com
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============5156697503593393135=="
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

--===============5156697503593393135==
Content-type: multipart/related; boundary="=_NamoWEC-fa22mhucko"

--=_NamoWEC-fa22mhucko
Content-Type: text/html;
	charset="euc-kr"
Content-Transfer-Encoding: base64

PEhUTUwgeG1sbnM6byA9ICJ1cm46c2NoZW1hcy1taWNyb3NvZnQtY29tOm9mZmljZTpvZmZpY2Ui
PjxIRUFEPjxUSVRMRT5TYW1zdW5nIEVudGVycHJpc2UgUG9ydGFsIG15U2luZ2xlPC9USVRMRT4N
CjxNRVRBIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1ldWMta3IiIGh0dHAtZXF1aXY9Q29u
dGVudC1UeXBlPg0KPFNUWUxFIGlkPW15c2luZ2xlX3N0eWxlPlAgew0KCU1BUkdJTi1CT1RUT006
IDVweDsgRk9OVC1TSVpFOiAxMHB0OyBGT05ULUZBTUlMWTogQ291cmllciBOZXcsIGFyaWFsOyBN
QVJHSU4tVE9QOiA1cHgNCn0NClREIHsNCglNQVJHSU4tQk9UVE9NOiA1cHg7IEZPTlQtU0laRTog
MTBwdDsgRk9OVC1GQU1JTFk6IENvdXJpZXIgTmV3LCBhcmlhbDsgTUFSR0lOLVRPUDogNXB4DQp9
DQpMSSB7DQoJTUFSR0lOLUJPVFRPTTogNXB4OyBGT05ULVNJWkU6IDEwcHQ7IEZPTlQtRkFNSUxZ
OiBDb3VyaWVyIE5ldywgYXJpYWw7IE1BUkdJTi1UT1A6IDVweA0KfQ0KQk9EWSB7DQoJRk9OVC1T
SVpFOiAxMHB0OyBGT05ULUZBTUlMWTogQ291cmllciBOZXcsIGFyaWFsOyBNQVJHSU46IDEwcHg7
IExJTkUtSEVJR0hUOiAxLjQNCn0NCjwvU1RZTEU+DQoNCjxNRVRBIGNvbnRlbnQ9SUU9NSBodHRw
LWVxdWl2PVgtVUEtQ29tcGF0aWJsZT4NCjxNRVRBIGNvbnRlbnQ9SUU9NSBodHRwLWVxdWl2PVgt
VUEtQ29tcGF0aWJsZT4NCjxNRVRBIG5hbWU9R0VORVJBVE9SIGNvbnRlbnQ9Ik1TSFRNTCAxMS4w
MC45NjAwLjE4MTYzIj48L0hFQUQ+DQo8Qk9EWT4NCjxQPkhpLDwvUD4NCjxQPiZuYnNwOzwvUD4N
CjxQPkkgaGFkIHNvbWUgcHJvYmxlbSBhYm91dCBydW5uaW5nIGRvbSBVPC9QPg0KPFA+Jm5ic3A7
PC9QPg0KPFA+SSByZWZlcmVkIHRvIDxBIGhyZWY9Imh0dHBzOi8vbWlyYWdlLmlvL3dpa2kveGVu
LW9uLWN1YmllYm9hcmQyIj5odHRwczovL21pcmFnZS5pby93aWtpL3hlbi1vbi1jdWJpZWJvYXJk
MjwvQT4mbmJzcDthbmQgYmVsb3cgbG9nIGlzIGZyb20gbXlib2FyZC48L1A+DQo8UD4mbmJzcDs8
L1A+DQo8UD5NeSBwcm9ibGVtIGlzIHRoYXQgSSBjb3VsZG5gdCBhY2Nlc3MgdGhlIERvbVUgY29u
c29sZS48L1A+DQo8UD5JIHRoaW5rIEl0IGhhcyBhIGJ1Zy48L1A+DQo8UD4mbmJzcDs8L1A+DQo8
UD5NYXkgSSBhc2sgd2hpY2ggcG9pbnQgaXMgd3Jvbmc/PC9QPg0KPFA+Jm5ic3A7PC9QPg0KPFA+
UmVnYXJkczwvUD4NCjxQPkd5dW5nbWluPC9QPg0KPFA+Jm5ic3A7PC9QPg0KPFA+PEEgaHJlZj0i
bWFpbHRvOm1pcmFnZUBjdWJpZXRydWNrOn4kIj5taXJhZ2VAY3ViaWV0cnVjazp+JDwvQT4gc3Vk
byB4bCBjcmVhdGUgLWMgbGludXgtZ3Vlc3QtMS5jb25mPEJSPlBhcnNpbmcgY29uZmlnIGZyb20g
bGludXgtZ3Vlc3QtMS5jb25mPEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsgMC4wMDAwMDBdIEJvb3Rp
bmcgTGludXggb24gcGh5c2ljYWwgQ1BVIDB4MDxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMDAw
MDAwXSBMaW51eCB2ZXJzaW9uIDMuMTYuMC0wMDEyNC1nNmI2ZGNjMi1kaXJ0eSAoPEEgaHJlZj0i
bWFpbHRvOmFybS1idWlsZGVyQGJsb2JzLm9wZW5taXJhZ2Uub3JnLXVidW50dSI+YXJtLWJ1aWxk
ZXJAYmxvYnMub3Blbm1pcmFnZS5vcmctdWJ1bnR1PC9BPikgKGdjYyB2ZXJzaW9uIDQuOC4yIChV
YnVudHUvTGluYXJvIDQuOC4yLTE2dWJ1bnR1NCkgKSAjMTc4MiBTTVAgVHVlIEp1biAxNiAwMDo0
NzowOSBVVEMgMjAxNTxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMDAwMDAwXSBDUFU6IEFSTXY3
IFByb2Nlc3NvciBbNDEwZmMwNzRdIHJldmlzaW9uIDQgKEFSTXY3KSwgY3I9MTBjNTM4N2Q8QlI+
WyZuYnNwOyZuYnNwOyZuYnNwOyAwLjAwMDAwMF0gQ1BVOiBQSVBUIC8gVklQVCBub25hbGlhc2lu
ZyBkYXRhIGNhY2hlLCBWSVBUIGFsaWFzaW5nIGluc3RydWN0aW9uIGNhY2hlPEJSPlsmbmJzcDsm
bmJzcDsmbmJzcDsgMC4wMDAwMDBdIE1hY2hpbmUgbW9kZWw6IFhFTlZNLTQuNDxCUj5bJm5ic3A7
Jm5ic3A7Jm5ic3A7IDAuMDAwMDAwXSBjbWE6IENNQTogcmVzZXJ2ZWQgNjQgTWlCIGF0IDhjMDAw
MDAwPEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsgMC4wMDAwMDBdIE1lbW9yeSBwb2xpY3k6IERhdGEg
Y2FjaGUgd3JpdGVhbGxvYzxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMDAwMDAwXSBwc2NpOiBw
cm9iaW5nIGZvciBjb25kdWl0IG1ldGhvZCBmcm9tIERULjxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7
IDAuMDAwMDAwXSBwc2NpOiBVc2luZyBQU0NJIHYwLjEgRnVuY3Rpb24gSURzIGZyb20gRFQ8QlI+
WyZuYnNwOyZuYnNwOyZuYnNwOyAwLjAwMDAwMF0gUEVSQ1BVOiBFbWJlZGRlZCA4IHBhZ2VzL2Nw
dSBAY2JkY2UwMDAgczg4MzIgcjgxOTIgZDE1NzQ0IHUzMjc2ODxCUj5bJm5ic3A7Jm5ic3A7Jm5i
c3A7IDAuMDAwMDAwXSBCdWlsdCAxIHpvbmVsaXN0cyBpbiBab25lIG9yZGVyLCBtb2JpbGl0eSBn
cm91cGluZyBvbi4mbmJzcDsgVG90YWwgcGFnZXM6IDY1MDI0PEJSPlsmbmJzcDsmbmJzcDsmbmJz
cDsgMC4wMDAwMDBdIEtlcm5lbCBjb21tYW5kIGxpbmU6IGNvbnNvbGU9aHZjMCB4ZW5jb25zPXR0
eSByb290PS9kZXYveHZkYTxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMDAwMDAwXSBQSUQgaGFz
aCB0YWJsZSBlbnRyaWVzOiAxMDI0IChvcmRlcjogMCwgNDA5NiBieXRlcyk8QlI+WyZuYnNwOyZu
YnNwOyZuYnNwOyAwLjAwMDAwMF0gRGVudHJ5IGNhY2hlIGhhc2ggdGFibGUgZW50cmllczogMzI3
NjggKG9yZGVyOiA1LCAxMzEwNzIgYnl0ZXMpPEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsgMC4wMDAw
MDBdIElub2RlLWNhY2hlIGhhc2ggdGFibGUgZW50cmllczogMTYzODQgKG9yZGVyOiA0LCA2NTUz
NiBieXRlcyk8QlI+WyZuYnNwOyZuYnNwOyZuYnNwOyAwLjAwMDAwMF0gTWVtb3J5OiAxODI2ODRL
LzI2MjE0NEsgYXZhaWxhYmxlICg3MDA5SyBrZXJuZWwgY29kZSwgODQzSyByd2RhdGEsIDI2OTZL
IHJvZGF0YSwgNTg4SyBpbml0LCAzMTdLIGJzcywgNzk0NjBLIHJlc2VydmVkLCAwSyBoaWdobWVt
KTxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMDAwMDAwXSBWaXJ0dWFsIGtlcm5lbCBtZW1vcnkg
bGF5b3V0OjxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMDAwMDAwXSZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyB2ZWN0b3ImbmJzcDsgOiAweGZmZmYwMDAwIC0gMHhmZmZmMTAwMCZuYnNwOyZuYnNw
OyAoJm5ic3A7Jm5ic3A7IDQga0IpPEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsgMC4wMDAwMDBdJm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGZpeG1hcCZuYnNwOyA6IDB4ZmZjMDAwMDAgLSAweGZmZTAw
MDAwJm5ic3A7Jm5ic3A7ICgyMDQ4IGtCKTxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMDAwMDAw
XSZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyB2bWFsbG9jIDogMHhkMDgwMDAwMCAtIDB4ZmYwMDAw
MDAmbmJzcDsmbmJzcDsgKCA3NDQgTUIpPEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsgMC4wMDAwMDBd
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGxvd21lbSZuYnNwOyA6IDB4YzAwMDAwMDAgLSAweGQw
MDAwMDAwJm5ic3A7Jm5ic3A7ICggMjU2IE1CKTxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMDAw
MDAwXSZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBwa21hcCZuYnNwOyZuYnNwOyA6IDB4YmZlMDAw
MDAgLSAweGMwMDAwMDAwJm5ic3A7Jm5ic3A7ICgmbmJzcDsmbmJzcDsgMiBNQik8QlI+WyZuYnNw
OyZuYnNwOyZuYnNwOyAwLjAwMDAwMF0mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgbW9kdWxlcyA6
IDB4YmYwMDAwMDAgLSAweGJmZTAwMDAwJm5ic3A7Jm5ic3A7ICgmbmJzcDsgMTQgTUIpPEJSPlsm
bmJzcDsmbmJzcDsmbmJzcDsgMC4wMDAwMDBdJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7IC50ZXh0IDogMHhjMDIwODAwMCAtIDB4YzBiODI5MzQmbmJzcDsmbmJzcDsgKDk3MDcg
a0IpPEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsgMC4wMDAwMDBdJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7IC5pbml0IDogMHhjMGI4MzAwMCAtIDB4YzBjMTYyODAmbmJzcDsmbmJz
cDsgKCA1ODkga0IpPEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsgMC4wMDAwMDBdJm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IC5kYXRhIDogMHhjMGMxODAwMCAtIDB4YzBjZWFjZTAm
bmJzcDsmbmJzcDsgKCA4NDQga0IpPEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsgMC4wMDAwMDBdJm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IC5ic3MgOiAweGMwY2VhY2U4
IC0gMHhjMGQzYTQ5MCZuYnNwOyZuYnNwOyAoIDMxOCBrQik8QlI+WyZuYnNwOyZuYnNwOyZuYnNw
OyAwLjAwMDAwMF0gU0xVQjogSFdhbGlnbj02NCwgT3JkZXI9MC0zLCBNaW5PYmplY3RzPTAsIENQ
VXM9MSwgTm9kZXM9MTxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMDAwMDAwXSBIaWVyYXJjaGlj
YWwgUkNVIGltcGxlbWVudGF0aW9uLjxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMDAwMDAwXSZu
YnNwOyBSQ1UgcmVzdHJpY3RpbmcgQ1BVcyBmcm9tIE5SX0NQVVM9NCB0byBucl9jcHVfaWRzPTEu
PEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsgMC4wMDAwMDBdIFJDVTogQWRqdXN0aW5nIGdlb21ldHJ5
IGZvciByY3VfZmFub3V0X2xlYWY9MTYsIG5yX2NwdV9pZHM9MTxCUj5bJm5ic3A7Jm5ic3A7Jm5i
c3A7IDAuMDAwMDAwXSBOUl9JUlFTOjE2IG5yX2lycXM6MTYgMTY8QlI+WyZuYnNwOyZuYnNwOyZu
YnNwOyAwLjAwMDAwMF0gQXJjaGl0ZWN0ZWQgY3AxNSB0aW1lcihzKSBydW5uaW5nIGF0IDI0LjAw
TUh6ICh2aXJ0KS48QlI+WyZuYnNwOyZuYnNwOyZuYnNwOyAwLjAwMDAwOF0gc2NoZWRfY2xvY2s6
IDU2IGJpdHMgYXQgMjRNSHosIHJlc29sdXRpb24gNDFucywgd3JhcHMgZXZlcnkgMjg2MzMxMTUx
OTc0NG5zPEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsgMC4wMDAwMTZdIFN3aXRjaGluZyB0byB0aW1l
ci1iYXNlZCBkZWxheSBsb29wPEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsgMC4wMDAxNjldIENvbnNv
bGU6IGNvbG91ciBkdW1teSBkZXZpY2UgODB4MzA8QlI+WyZuYnNwOyZuYnNwOyZuYnNwOyAwLjAw
MDIwMV0gQ2FsaWJyYXRpbmcgZGVsYXkgbG9vcCAoc2tpcHBlZCksIHZhbHVlIGNhbGN1bGF0ZWQg
dXNpbmcgdGltZXIgZnJlcXVlbmN5Li4gNDguMDAgQm9nb01JUFMgKGxwaj0yNDAwMDApPEJSPlsm
bmJzcDsmbmJzcDsmbmJzcDsgMC4wMDAyMThdIHBpZF9tYXg6IGRlZmF1bHQ6IDMyNzY4IG1pbmlt
dW06IDMwMTxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMDAwMzU1XSBNb3VudC1jYWNoZSBoYXNo
IHRhYmxlIGVudHJpZXM6IDEwMjQgKG9yZGVyOiAwLCA0MDk2IGJ5dGVzKTxCUj5bJm5ic3A7Jm5i
c3A7Jm5ic3A7IDAuMDAwMzY3XSBNb3VudHBvaW50LWNhY2hlIGhhc2ggdGFibGUgZW50cmllczog
MTAyNCAob3JkZXI6IDAsIDQwOTYgYnl0ZXMpPEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsgMC4wMDA5
MzldIENQVTogVGVzdGluZyB3cml0ZSBidWZmZXIgY29oZXJlbmN5OiBvazxCUj5bJm5ic3A7Jm5i
c3A7Jm5ic3A7IDAuMDAxMjcyXSA8QT4vY3B1cy9jcHVAMDwvQT4gbWlzc2luZyBjbG9jay1mcmVx
dWVuY3kgcHJvcGVydHk8QlI+WyZuYnNwOyZuYnNwOyZuYnNwOyAwLjAwMTI5Nl0gQ1BVMDogdGhy
ZWFkIC0xLCBjcHUgMCwgc29ja2V0IDAsIG1waWRyIDgwMDAwMDAwPEJSPlsmbmJzcDsmbmJzcDsm
bmJzcDsgMC4wMDEzNzJdIFhlbiA0LjQgc3VwcG9ydCBmb3VuZCwgZXZlbnRzX2lycT0zMSBnbnR0
YWJfZnJhbWU9MHhiMDAwMDAwMDxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMDAxNDEwXSBQbGVh
c2UgdXBncmFkZSB5b3VyIFhlbi48QlI+WyZuYnNwOyZuYnNwOyZuYnNwOyAwLjAwMTQxMF0gSWYg
eW91ciBwbGF0Zm9ybSBoYXMgYW55IG5vbi1jb2hlcmVudCBETUEgZGV2aWNlcywgdGhleSB3b24n
dCB3b3JrIHByb3Blcmx5LjxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMDAxNDk4XSB4ZW46Z3Jh
bnRfdGFibGU6IEdyYW50IHRhYmxlcyB1c2luZyB2ZXJzaW9uIDEgbGF5b3V0PEJSPlsmbmJzcDsm
bmJzcDsmbmJzcDsgMC4wMDE1NTFdIEdyYW50IHRhYmxlIGluaXRpYWxpemVkPEJSPlsmbmJzcDsm
bmJzcDsmbmJzcDsgMC4wMDE2NTRdIHhlbjpldmVudHM6IFVzaW5nIEZJRk8tYmFzZWQgQUJJPEJS
PlsmbmJzcDsmbmJzcDsmbmJzcDsgMC4wMDE2OTBdIFhlbjogaW5pdGlhbGl6aW5nIGNwdTA8QlI+
WyZuYnNwOyZuYnNwOyZuYnNwOyAwLjAwMTg3MV0gU2V0dGluZyB1cCBzdGF0aWMgaWRlbnRpdHkg
bWFwIGZvciAweDgwOGE1OWY4IC0gMHg4MDhhNWE5MDxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAu
MDAzMDQxXSBCcm91Z2h0IHVwIDEgQ1BVczxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMDAzMDU4
XSBTTVA6IFRvdGFsIG9mIDEgcHJvY2Vzc29ycyBhY3RpdmF0ZWQuPEJSPlsmbmJzcDsmbmJzcDsm
bmJzcDsgMC4wMDMwNjVdIENQVTogQWxsIENQVShzKSBzdGFydGVkIGluIFNWQyBtb2RlLjxCUj5b
Jm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMDAzNjI5XSBkZXZ0bXBmczogaW5pdGlhbGl6ZWQ8QlI+WyZu
YnNwOyZuYnNwOyZuYnNwOyAwLjAwNDUxMV0gVkZQIHN1cHBvcnQgdjAuMzogaW1wbGVtZW50b3Ig
NDEgYXJjaGl0ZWN0dXJlIDIgcGFydCAzMCB2YXJpYW50IDcgcmV2IDQ8QlI+WyZuYnNwOyZuYnNw
OyZuYnNwOyAwLjAwNDk5M10gcGluY3RybCBjb3JlOiBpbml0aWFsaXplZCBwaW5jdHJsIHN1YnN5
c3RlbTxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMDA1NTEwXSByZWd1bGF0b3ItZHVtbXk6IG5v
IHBhcmFtZXRlcnM8QlI+WyZuYnNwOyZuYnNwOyZuYnNwOyAwLjAwODY4OV0gTkVUOiBSZWdpc3Rl
cmVkIHByb3RvY29sIGZhbWlseSAxNjxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMDEwNjEwXSBE
TUE6IHByZWFsbG9jYXRlZCAyNTYgS2lCIHBvb2wgZm9yIGF0b21pYyBjb2hlcmVudCBhbGxvY2F0
aW9uczxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMDE1OTMyXSBObyBBVEFHcz88QlI+WyZuYnNw
OyZuYnNwOyZuYnNwOyAwLjAxNjc2MV0gU2VyaWFsOiBBTUJBIFBMMDExIFVBUlQgZHJpdmVyPEJS
PlsmbmJzcDsmbmJzcDsmbmJzcDsgMC4wMzI2NzddIGVkbWEtZG1hLWVuZ2luZSBlZG1hLWRtYS1l
bmdpbmUuMDogQ2FuJ3QgYWxsb2NhdGUgUGFSQU0gZHVtbXkgc2xvdDxCUj5bJm5ic3A7Jm5ic3A7
Jm5ic3A7IDAuMDMyNzE1XSBlZG1hLWRtYS1lbmdpbmU6IHByb2JlIG9mIGVkbWEtZG1hLWVuZ2lu
ZS4wIGZhaWxlZCB3aXRoIGVycm9yIC01PEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsgMC4wMzI4NzBd
IHhlbjpiYWxsb29uOiBJbml0aWFsaXNpbmcgYmFsbG9vbiBkcml2ZXI8QlI+WyZuYnNwOyZuYnNw
OyZuYnNwOyAwLjAzOTk0OF0geGVuX2JhbGxvb246IEluaXRpYWxpc2luZyBiYWxsb29uIGRyaXZl
cjxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMDQxNzYwXSB2Z2FhcmI6IGxvYWRlZDxCUj5bJm5i
c3A7Jm5ic3A7Jm5ic3A7IDAuMDQyNjc3XSBTQ1NJIHN1YnN5c3RlbSBpbml0aWFsaXplZDxCUj5b
Jm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMDQzNjY0XSB1c2Jjb3JlOiByZWdpc3RlcmVkIG5ldyBpbnRl
cmZhY2UgZHJpdmVyIHVzYmZzPEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsgMC4wNDM3NDldIHVzYmNv
cmU6IHJlZ2lzdGVyZWQgbmV3IGludGVyZmFjZSBkcml2ZXIgaHViPEJSPlsmbmJzcDsmbmJzcDsm
bmJzcDsgMC4wNDQwNjFdIHVzYmNvcmU6IHJlZ2lzdGVyZWQgbmV3IGRldmljZSBkcml2ZXIgdXNi
PEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsgMC4wNDQ3MjVdIExpbnV4IHZpZGVvIGNhcHR1cmUgaW50
ZXJmYWNlOiB2Mi4wMDxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMDQ0NzkzXSBwcHNfY29yZTog
TGludXhQUFMgQVBJIHZlci4gMSByZWdpc3RlcmVkPEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsgMC4w
NDQ4MDFdIHBwc19jb3JlOiBTb2Z0d2FyZSB2ZXIuIDUuMy42IC0gQ29weXJpZ2h0IDIwMDUtMjAw
NyBSb2RvbGZvIEdpb21ldHRpICZsdDs8QSBocmVmPSJtYWlsdG86Z2lvbWV0dGlAbGludXguaXQi
Pmdpb21ldHRpQGxpbnV4Lml0PC9BPiZndDs8QlI+WyZuYnNwOyZuYnNwOyZuYnNwOyAwLjA0NDgz
MV0gUFRQIGNsb2NrIHN1cHBvcnQgcmVnaXN0ZXJlZDxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAu
MDQ0OTI2XSBFREFDIE1DOiBWZXI6IDMuMC4wPEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsgMC4wNDY2
MTVdIEFkdmFuY2VkIExpbnV4IFNvdW5kIEFyY2hpdGVjdHVyZSBEcml2ZXIgSW5pdGlhbGl6ZWQu
PEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsgMC4wNDgyNDFdIFN3aXRjaGVkIHRvIGNsb2Nrc291cmNl
IGFyY2hfc3lzX2NvdW50ZXI8QlI+WyZuYnNwOyZuYnNwOyZuYnNwOyAwLjA2NDQwMl0gTkVUOiBS
ZWdpc3RlcmVkIHByb3RvY29sIGZhbWlseSAyPEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsgMC4wNjUy
MjJdIFRDUCBlc3RhYmxpc2hlZCBoYXNoIHRhYmxlIGVudHJpZXM6IDIwNDggKG9yZGVyOiAxLCA4
MTkyIGJ5dGVzKTxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMDY1MjcyXSBUQ1AgYmluZCBoYXNo
IHRhYmxlIGVudHJpZXM6IDIwNDggKG9yZGVyOiAyLCAxNjM4NCBieXRlcyk8QlI+WyZuYnNwOyZu
YnNwOyZuYnNwOyAwLjA2NTMxMF0gVENQOiBIYXNoIHRhYmxlcyBjb25maWd1cmVkIChlc3RhYmxp
c2hlZCAyMDQ4IGJpbmQgMjA0OCk8QlI+WyZuYnNwOyZuYnNwOyZuYnNwOyAwLjA2NTM3NV0gVENQ
OiByZW5vIHJlZ2lzdGVyZWQ8QlI+WyZuYnNwOyZuYnNwOyZuYnNwOyAwLjA2NTM5Ml0gVURQIGhh
c2ggdGFibGUgZW50cmllczogMjU2IChvcmRlcjogMSwgODE5MiBieXRlcyk8QlI+WyZuYnNwOyZu
YnNwOyZuYnNwOyAwLjA2NTQzMV0gVURQLUxpdGUgaGFzaCB0YWJsZSBlbnRyaWVzOiAyNTYgKG9y
ZGVyOiAxLCA4MTkyIGJ5dGVzKTxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMDY1NjYzXSBORVQ6
IFJlZ2lzdGVyZWQgcHJvdG9jb2wgZmFtaWx5IDE8QlI+WyZuYnNwOyZuYnNwOyZuYnNwOyAwLjA2
NjA5M10gUlBDOiBSZWdpc3RlcmVkIG5hbWVkIFVOSVggc29ja2V0IHRyYW5zcG9ydCBtb2R1bGUu
PEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsgMC4wNjYxMTFdIFJQQzogUmVnaXN0ZXJlZCB1ZHAgdHJh
bnNwb3J0IG1vZHVsZS48QlI+WyZuYnNwOyZuYnNwOyZuYnNwOyAwLjA2NjExOF0gUlBDOiBSZWdp
c3RlcmVkIHRjcCB0cmFuc3BvcnQgbW9kdWxlLjxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMDY2
MTI1XSBSUEM6IFJlZ2lzdGVyZWQgdGNwIE5GU3Y0LjEgYmFja2NoYW5uZWwgdHJhbnNwb3J0IG1v
ZHVsZS48QlI+WyZuYnNwOyZuYnNwOyZuYnNwOyAwLjA2Nzk3N10gZnV0ZXggaGFzaCB0YWJsZSBl
bnRyaWVzOiAyNTYgKG9yZGVyOiAyLCAxNjM4NCBieXRlcyk8QlI+WyZuYnNwOyZuYnNwOyZuYnNw
OyAwLjA4MDQxNV0gc3F1YXNoZnM6IHZlcnNpb24gNC4wICgyMDA5LzAxLzMxKSBQaGlsbGlwIExv
dWdoZXI8QlI+WyZuYnNwOyZuYnNwOyZuYnNwOyAwLjA4MTM1M10gTkZTOiBSZWdpc3RlcmluZyB0
aGUgaWRfcmVzb2x2ZXIga2V5IHR5cGU8QlI+WyZuYnNwOyZuYnNwOyZuYnNwOyAwLjA4MTQyN10g
S2V5IHR5cGUgaWRfcmVzb2x2ZXIgcmVnaXN0ZXJlZDxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAu
MDgxNDM2XSBLZXkgdHlwZSBpZF9sZWdhY3kgcmVnaXN0ZXJlZDxCUj5bJm5ic3A7Jm5ic3A7Jm5i
c3A7IDAuMDgxNTE5XSBtc2dtbmkgaGFzIGJlZW4gc2V0IHRvIDQ4NDxCUj5bJm5ic3A7Jm5ic3A7
Jm5ic3A7IDAuMDgyNDQ2XSBCbG9jayBsYXllciBTQ1NJIGdlbmVyaWMgKGJzZykgZHJpdmVyIHZl
cnNpb24gMC40IGxvYWRlZCAobWFqb3IgMjQ5KTxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMDgy
NDc1XSBpbyBzY2hlZHVsZXIgbm9vcCByZWdpc3RlcmVkPEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsg
MC4wODI0OTBdIGlvIHNjaGVkdWxlciBkZWFkbGluZSByZWdpc3RlcmVkPEJSPlsmbmJzcDsmbmJz
cDsmbmJzcDsgMC4wODI3MDFdIGlvIHNjaGVkdWxlciBjZnEgcmVnaXN0ZXJlZCAoZGVmYXVsdCk8
QlI+WyZuYnNwOyZuYnNwOyZuYnNwOyAwLjA4NjA2OV0geGVuOnhlbl9ldnRjaG46IEV2ZW50LWNo
YW5uZWwgZGV2aWNlIGluc3RhbGxlZDxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMTYyNzIxXSBj
b25zb2xlIFtodmMwXSBlbmFibGVkPEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsgMC4xNjI4NDZdIFNl
cmlhbDogODI1MC8xNjU1MCBkcml2ZXIsIDQgcG9ydHMsIElSUSBzaGFyaW5nIGRpc2FibGVkPEJS
PlsmbmJzcDsmbmJzcDsmbmJzcDsgMC4xNjUxMzhdIFNlcmlhbDogSU1YIGRyaXZlcjxCUj5bJm5i
c3A7Jm5ic3A7Jm5ic3A7IDAuMTY1Mzc3XSBtc21fc2VyaWFsOiBkcml2ZXIgaW5pdGlhbGl6ZWQ8
QlI+WyZuYnNwOyZuYnNwOyZuYnNwOyAwLjE2NTU4Ml0gU1RNaWNyb2VsZWN0cm9uaWNzIEFTQyBk
cml2ZXIgaW5pdGlhbGl6ZWQ8QlI+WyZuYnNwOyZuYnNwOyZuYnNwOyAwLjE2NjA1Ml0gc2VyaWFs
OiBGcmVlc2NhbGUgbHB1YXJ0IGRyaXZlcjxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMTY2MjUy
XSBbZHJtXSBJbml0aWFsaXplZCBkcm0gMS4xLjAgMjAwNjA4MTA8QlI+WyZuYnNwOyZuYnNwOyZu
YnNwOyAwLjE3MTgyM10gbG9vcDogbW9kdWxlIGxvYWRlZDxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7
IDAuMTkwNTk0XSBibGt0YXBfZGV2aWNlX2luaXQ6IGJsa3RhcCBkZXZpY2UgbWFqb3IgMjU0PEJS
PlsmbmJzcDsmbmJzcDsmbmJzcDsgMC4xOTA2NDJdIGJsa3RhcF9yaW5nX2luaXQ6IGJsa3RhcCBy
aW5nIG1ham9yOiAyNDA8QlI+WyZuYnNwOyZuYnNwOyZuYnNwOyAwLjIwODYzN10gdHVuOiBVbml2
ZXJzYWwgVFVOL1RBUCBkZXZpY2UgZHJpdmVyLCAxLjY8QlI+WyZuYnNwOyZuYnNwOyZuYnNwOyAw
LjIwODY3OF0gdHVuOiAoQykgMTk5OS0yMDA0IE1heCBLcmFzbnlhbnNreSAmbHQ7PEEgaHJlZj0i
bWFpbHRvOm1heGtAcXVhbGNvbW0uY29tIj5tYXhrQHF1YWxjb21tLmNvbTwvQT4mZ3Q7PEJSPlsm
bmJzcDsmbmJzcDsmbmJzcDsgMC4yMTA2ODVdIHhlbl9uZXRmcm9udDogSW5pdGlhbGlzaW5nIFhl
biB2aXJ0dWFsIGV0aGVybmV0IGRyaXZlcjxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMjE1MTU4
XSBibGtmcm9udDogeHZkYTogYmFycmllciBvciBmbHVzaDogZGlzYWJsZWQ7IHBlcnNpc3RlbnQg
Z3JhbnRzOiBlbmFibGVkOyBpbmRpcmVjdCBkZXNjcmlwdG9yczogZW5hYmxlZDs8QlI+WyZuYnNw
OyZuYnNwOyZuYnNwOyAwLjIyMjc2NV0mbmJzcDsgeHZkYTogdW5rbm93biBwYXJ0aXRpb24gdGFi
bGU8QlI+WyZuYnNwOyZuYnNwOyZuYnNwOyAwLjIyNTk0OV0gcGVnYXN1czogdjAuOS4zICgyMDEz
LzA0LzI1KSwgUGVnYXN1cy9QZWdhc3VzIElJIFVTQiBFdGhlcm5ldCBkcml2ZXI8QlI+WyZuYnNw
OyZuYnNwOyZuYnNwOyAwLjIyNjA5MV0gdXNiY29yZTogcmVnaXN0ZXJlZCBuZXcgaW50ZXJmYWNl
IGRyaXZlciBwZWdhc3VzPEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsgMC4yMjYyMjRdIHVzYmNvcmU6
IHJlZ2lzdGVyZWQgbmV3IGludGVyZmFjZSBkcml2ZXIgYXNpeDxCUj5bJm5ic3A7Jm5ic3A7Jm5i
c3A7IDAuMjI2MzQzXSB1c2Jjb3JlOiByZWdpc3RlcmVkIG5ldyBpbnRlcmZhY2UgZHJpdmVyIGF4
ODgxNzlfMTc4YTxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMjI2NDUxXSB1c2Jjb3JlOiByZWdp
c3RlcmVkIG5ldyBpbnRlcmZhY2UgZHJpdmVyIGNkY19ldGhlcjxCUj5bJm5ic3A7Jm5ic3A7Jm5i
c3A7IDAuMjI2NTYwXSB1c2Jjb3JlOiByZWdpc3RlcmVkIG5ldyBpbnRlcmZhY2UgZHJpdmVyIHNt
c2M3NXh4PEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsgMC4yMjY2NjNdIHVzYmNvcmU6IHJlZ2lzdGVy
ZWQgbmV3IGludGVyZmFjZSBkcml2ZXIgc21zYzk1eHg8QlI+WyZuYnNwOyZuYnNwOyZuYnNwOyAw
LjIyNjgxOV0gdXNiY29yZTogcmVnaXN0ZXJlZCBuZXcgaW50ZXJmYWNlIGRyaXZlciBuZXQxMDgw
PEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsgMC4yMjY5MjVdIHVzYmNvcmU6IHJlZ2lzdGVyZWQgbmV3
IGludGVyZmFjZSBkcml2ZXIgY2RjX3N1YnNldDxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMjI3
MDAwXSB1c2Jjb3JlOiByZWdpc3RlcmVkIG5ldyBpbnRlcmZhY2UgZHJpdmVyIHphdXJ1czxCUj5b
Jm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMjI3MTMzXSB1c2Jjb3JlOiByZWdpc3RlcmVkIG5ldyBpbnRl
cmZhY2UgZHJpdmVyIGNkY19uY208QlI+WyZuYnNwOyZuYnNwOyZuYnNwOyAwLjIyNzE5M10gZWhj
aV9oY2Q6IFVTQiAyLjAgJ0VuaGFuY2VkJyBIb3N0IENvbnRyb2xsZXIgKEVIQ0kpIERyaXZlcjxC
Uj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMjI3MjIxXSBlaGNpLXBjaTogRUhDSSBQQ0kgcGxhdGZv
cm0gZHJpdmVyPEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsgMC4yMjczMzFdIGVoY2ktcGxhdGZvcm06
IEVIQ0kgZ2VuZXJpYyBwbGF0Zm9ybSBkcml2ZXI8QlI+WyZuYnNwOyZuYnNwOyZuYnNwOyAwLjIy
NzUxNl0gZWhjaS1vbWFwOiBPTUFQLUVIQ0kgSG9zdCBDb250cm9sbGVyIGRyaXZlcjxCUj5bJm5i
c3A7Jm5ic3A7Jm5ic3A7IDAuMjI3NjI3XSBlaGNpLW9yaW9uOiBFSENJIG9yaW9uIGRyaXZlcjxC
Uj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMjI3NzE0XSBTUEVBci1laGNpOiBFSENJIFNQRUFyIGRy
aXZlcjxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMjI3ODA0XSB0ZWdyYS1laGNpOiBUZWdyYSBF
SENJIGRyaXZlcjxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMjI4NDA3XSB1c2Jjb3JlOiByZWdp
c3RlcmVkIG5ldyBpbnRlcmZhY2UgZHJpdmVyIHVzYi1zdG9yYWdlPEJSPlsmbmJzcDsmbmJzcDsm
bmJzcDsgMC4zNjM4OTVdIG1vdXNlZGV2OiBQUy8yIG1vdXNlIGRldmljZSBjb21tb24gZm9yIGFs
bCBtaWNlPEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsgMC4zNjYxNThdIGkyYyAvZGV2IGVudHJpZXMg
ZHJpdmVyPEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsgMC4zNjY3ODRdIHVzYmNvcmU6IHJlZ2lzdGVy
ZWQgbmV3IGludGVyZmFjZSBkcml2ZXIgdXZjdmlkZW88QlI+WyZuYnNwOyZuYnNwOyZuYnNwOyAw
LjM2NjgzN10gVVNCIFZpZGVvIENsYXNzIGRyaXZlciAoMS4xLjEpPEJSPlsmbmJzcDsmbmJzcDsm
bmJzcDsgMC4zNjY4NjhdIGdzcGNhX21haW46IHYyLjE0LjAgcmVnaXN0ZXJlZDxCUj5bJm5ic3A7
Jm5ic3A7Jm5ic3A7IDAuMzY5OTEzXSBkZXZpY2UtbWFwcGVyOiB1ZXZlbnQ6IHZlcnNpb24gMS4w
LjM8QlI+WyZuYnNwOyZuYnNwOyZuYnNwOyAwLjM3MTE4MV0gU2V0dGluZyBjYXBhY2l0eSB0byA4
Mzg4NjA4PEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsgMC4zNzEyNzhdIHh2ZGE6IGRldGVjdGVkIGNh
cGFjaXR5IGNoYW5nZSBmcm9tIDAgdG8gNDI5NDk2NzI5NjxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7
IDAuMzcxNTUxXSBkZXZpY2UtbWFwcGVyOiBpb2N0bDogNC4yNy4wLWlvY3RsICgyMDEzLTEwLTMw
KSBpbml0aWFsaXNlZDogPEEgaHJlZj0ibWFpbHRvOmRtLWRldmVsQHJlZGhhdC5jb20iPmRtLWRl
dmVsQHJlZGhhdC5jb208L0E+PEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsgMC4zNzM1MzhdIHNkaGNp
OiBTZWN1cmUgRGlnaXRhbCBIb3N0IENvbnRyb2xsZXIgSW50ZXJmYWNlIGRyaXZlcjxCUj5bJm5i
c3A7Jm5ic3A7Jm5ic3A7IDAuMzczNjE4XSBzZGhjaTogQ29weXJpZ2h0KGMpIFBpZXJyZSBPc3Nt
YW48QlI+WyZuYnNwOyZuYnNwOyZuYnNwOyAwLjM3NDEyOF0gc2RoY2ktcGx0Zm06IFNESENJIHBs
YXRmb3JtIGFuZCBPRiBkcml2ZXIgaGVscGVyPEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsgMC4zNzQ2
ODNdIHVzYmNvcmU6IHJlZ2lzdGVyZWQgbmV3IGludGVyZmFjZSBkcml2ZXIgdXNiaGlkPEJSPlsm
bmJzcDsmbmJzcDsmbmJzcDsgMC4zNzQ3MzNdIHVzYmhpZDogVVNCIEhJRCBjb3JlIGRyaXZlcjxC
Uj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMzc0ODQyXSB1c2Jjb3JlOiByZWdpc3RlcmVkIG5ldyBp
bnRlcmZhY2UgZHJpdmVyIHI4MTg4ZXU8QlI+WyZuYnNwOyZuYnNwOyZuYnNwOyAwLjM3OTEyNF0g
bmZfY29ubnRyYWNrIHZlcnNpb24gMC41LjAgKDM4NzggYnVja2V0cywgMTU1MTIgbWF4KTxCUj5b
Jm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMzgwMTYzXSBpcF90YWJsZXM6IChDKSAyMDAwLTIwMDYgTmV0
ZmlsdGVyIENvcmUgVGVhbTxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMzgwMzc4XSBUQ1A6IGN1
YmljIHJlZ2lzdGVyZWQ8QlI+WyZuYnNwOyZuYnNwOyZuYnNwOyAwLjM4MDQyNl0gTkVUOiBSZWdp
c3RlcmVkIHByb3RvY29sIGZhbWlseSAxNzxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuMzgwNzc3
XSBLZXkgdHlwZSBkbnNfcmVzb2x2ZXIgcmVnaXN0ZXJlZDxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7
IDAuMzgwOTYyXSBUaHVtYkVFIENQVSBleHRlbnNpb24gc3VwcG9ydGVkLjxCUj5bJm5ic3A7Jm5i
c3A7Jm5ic3A7IDAuMzgxMDEzXSBSZWdpc3RlcmluZyBTV1AvU1dQQiBlbXVsYXRpb24gaGFuZGxl
cjxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDAuNDc5MDc1XSBkcml2ZXJzL3J0Yy9oY3Rvc3lzLmM6
IHVuYWJsZSB0byBvcGVuIHJ0YyBkZXZpY2UgKHJ0YzApPEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsg
MC40NzkzMjNdIEFMU0EgZGV2aWNlIGxpc3Q6PEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsgMC40Nzkz
NjBdJm5ic3A7Jm5ic3A7IE5vIHNvdW5kY2FyZHMgZm91bmQuPEJSPlsmbmJzcDsmbmJzcDsmbmJz
cDsgMC40ODIyMDBdIEVYVDQtZnMgKHh2ZGEpOiBjb3VsZG4ndCBtb3VudCBhcyBleHQzIGR1ZSB0
byBmZWF0dXJlIGluY29tcGF0aWJpbGl0aWVzPEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsgMC40ODQw
MThdIEVYVDQtZnMgKHh2ZGEpOiBjb3VsZG4ndCBtb3VudCBhcyBleHQyIGR1ZSB0byBmZWF0dXJl
IGluY29tcGF0aWJpbGl0aWVzPEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsgMC41MTkyMTldIEVYVDQt
ZnMgKHh2ZGEpOiBtb3VudGVkIGZpbGVzeXN0ZW0gd2l0aCBvcmRlcmVkIGRhdGEgbW9kZS4gT3B0
czogKG51bGwpPEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsgMC41MTkzNTFdIFZGUzogTW91bnRlZCBy
b290IChleHQ0IGZpbGVzeXN0ZW0pIHJlYWRvbmx5IG9uIGRldmljZSAyMDI6MC48QlI+WyZuYnNw
OyZuYnNwOyZuYnNwOyAwLjUzMTI1NF0gZGV2dG1wZnM6IG1vdW50ZWQ8QlI+WyZuYnNwOyZuYnNw
OyZuYnNwOyAwLjUzMTk2Ml0gRnJlZWluZyB1bnVzZWQga2VybmVsIG1lbW9yeTogNTg4SyAoYzBi
ODMwMDAgLSBjMGMxNjAwMCk8QlI+TW91bnQgZmFpbGVkIGZvciBzZWxpbnV4ZnMgb24gL3N5cy9m
cy9zZWxpbnV4OiZuYnNwOyBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5PEJSPlsmbmJzcDsmbmJz
cDsmbmJzcDsgMS4xNTc1NDRdIHJhbmRvbTogaW5pdCB1cmFuZG9tIHJlYWQgd2l0aCAxOCBiaXRz
IG9mIGVudHJvcHkgYXZhaWxhYmxlPEJSPlsmbmJzcDsmbmJzcDsmbmJzcDsgMS41NTY4OTBdIGlu
aXQ6IHBseW1vdXRoLXVwc3RhcnQtYnJpZGdlIG1haW4gcHJvY2VzcyAoNDEpIHRlcm1pbmF0ZWQg
d2l0aCBzdGF0dXMgMTxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDEuNTU3MTExXSBpbml0OiBwbHlt
b3V0aC11cHN0YXJ0LWJyaWRnZSBtYWluIHByb2Nlc3MgZW5kZWQsIHJlc3Bhd25pbmc8QlI+WyZu
YnNwOyZuYnNwOyZuYnNwOyAxLjU5OTQ2N10gaW5pdDogcGx5bW91dGgtdXBzdGFydC1icmlkZ2Ug
bWFpbiBwcm9jZXNzICg1NCkgdGVybWluYXRlZCB3aXRoIHN0YXR1cyAxPEJSPlsmbmJzcDsmbmJz
cDsmbmJzcDsgMS41OTk2NDJdIGluaXQ6IHBseW1vdXRoLXVwc3RhcnQtYnJpZGdlIG1haW4gcHJv
Y2VzcyBlbmRlZCwgcmVzcGF3bmluZzxCUj5bJm5ic3A7Jm5ic3A7Jm5ic3A7IDEuNjIyODU4XSBp
bml0OiBwbHltb3V0aC11cHN0YXJ0LWJyaWRnZSBtYWluIHByb2Nlc3MgKDU3KSB0ZXJtaW5hdGVk
IHdpdGggc3RhdHVzIDE8QlI+WyZuYnNwOyZuYnNwOyZuYnNwOyAxLjYyMzA1M10gaW5pdDogcGx5
bW91dGgtdXBzdGFydC1icmlkZ2UgbWFpbiBwcm9jZXNzIGVuZGVkLCByZXNwYXduaW5nPEJSPlsm
bmJzcDsmbmJzcDsmbmJzcDsgMS43MTI4OTddIGluaXQ6IHVyZWFkYWhlYWQgbWFpbiBwcm9jZXNz
ICg0NCkgdGVybWluYXRlZCB3aXRoIHN0YXR1cyA1PC9QPg0KPFA+Jm5ic3A7PC9QPg0KPFA+Jm5i
c3A7KiBTdGFydGluZyBNb3VudCBmaWxlc3lzdGVtcyBvbiBib290Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IFsgT0sgXTxCUj4mbmJzcDsqIFN0YXJ0aW5nIFBvcHVsYXRl
IC9kZXYgZmlsZXN5c3RlbSZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyBbIE9LIF08QlI+Jm5ic3A7KiBTdG9wcGluZyBQb3B1bGF0ZSAvZGV2IGZpbGVzeXN0ZW0m
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgWyBPSyBdPEJSPiZu
YnNwOyogU3RhcnRpbmcgRml4LXVwIC9zeXMva2VybmVsL2RlYnVnIGZpbGVzeXN0ZW0mbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgWyBPSyBdPEJSPiZuYnNwOyogU3RvcHBpbmcg
Rml4LXVwIC9zeXMva2VybmVsL2RlYnVnIGZpbGVzeXN0ZW0mbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsgWyBPSyBdPEJSPiZuYnNwOyogU3RhcnRpbmcgUG9wdWxhdGUgYW5kIGxp
bmsgdG8gL3J1biBmaWxlc3lzdGVtJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IFsgT0sg
XTxCUj4mbmJzcDsqIFN0b3BwaW5nIFBvcHVsYXRlIGFuZCBsaW5rIHRvIC9ydW4gZmlsZXN5c3Rl
bSZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBbIE9LIF08QlI+Jm5ic3A7KiBTdG9wcGlu
ZyBUcmFjayBpZiB1cHN0YXJ0IGlzIHJ1bm5pbmcgaW4gYSBjb250YWluZXImbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgWyBPSyBdPEJSPiZuYnNwOyog
U3RhcnRpbmcgSW5pdGlhbGl6ZSBvciBmaW5hbGl6ZSByZXNvbHZjb25mJm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IFsgT0sgXTxCUj4mbmJzcDsqIFN0YXJ0
aW5nIHNldCBjb25zb2xlIGtleW1hcCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBbIE9LIF08QlI+
Jm5ic3A7KiBTdGFydGluZyBTaWduYWwgc3lzdmluaXQgdGhhdCB2aXJ0dWFsIGZpbGVzeXN0ZW1z
IGFyZSBtb3VudGVkJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7IFsgT0sgXTxCUj4mbmJzcDsqIFN0YXJ0aW5nIFNpZ25hbCBzeXN2aW5pdCB0aGF0IHZpcnR1
YWwgZmlsZXN5c3RlbXMgYXJlIG1vdW50ZWQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsgWyBPSyBdPEJSPiZuYnNwOyogU3RhcnRpbmcgQnJpZGdlIHVkZXYg
ZXZlbnRzIGludG8gdXBzdGFydCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBbIE9LIF08QlI+Jm5ic3A7KiBTdG9wcGluZyBzZXQgY29u
c29sZSBrZXltYXAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgWyBPSyBdPEJSPiZuYnNwOyogU3Rh
cnRpbmcgU2lnbmFsIHN5c3Zpbml0IHRoYXQgcmVtb3RlIGZpbGVzeXN0ZW1zIGFyZSBtb3VudGVk
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IFsg
T0sgXTxCUj4mbmJzcDsqIFN0YXJ0aW5nIGRldmljZSBub2RlIGFuZCBrZXJuZWwgZXZlbnQgbWFu
YWdlciZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBbIE9LIF08QlI+Jm5ic3A7KiBTdGFy
dGluZyBsb2FkIG1vZHVsZXMgZnJvbSAvZXRjL21vZHVsZXMmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgWyBPSyBdPEJSPiZu
YnNwOyogU3RhcnRpbmcgY29sZCBwbHVnIGRldmljZXMmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsgWyBPSyBdPEJSPiZuYnNwOyogU3RhcnRpbmcgbG9nIGluaXRpYWwgZGV2aWNlIGNyZWF0
aW9uJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IFsgT0sgXTxCUj4mbmJzcDsqIFN0b3BwaW5n
IGxvYWQgbW9kdWxlcyBmcm9tIC9ldGMvbW9kdWxlcyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBbIE9LIF08QlI+Jm5ic3A7
KiBTdGFydGluZyBjb25maWd1cmUgbmV0d29yayBkZXZpY2Ugc2VjdXJpdHkmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgWyBPSyBdPEJSPiZuYnNwOyogU3Rh
cnRpbmcgY29uZmlndXJlIG5ldHdvcmsgZGV2aWNlIHNlY3VyaXR5Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IFsgT0sgXTxCUj4mbmJzcDsqIFN0YXJ0aW5n
IFNpZ25hbCBzeXN2aW5pdCB0aGF0IHRoZSByb290ZnMgaXMgbW91bnRlZCZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBbIE9LIF08QlI+Jm5ic3A7KiBT
dGFydGluZyBNb3VudCBuZXR3b3JrIGZpbGVzeXN0ZW1zJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7IFsgT0sgXTxCUj4mbmJzcDsqIFN0YXJ0aW5nIGNvbmZpZ3VyZSBuZXR3
b3JrIGRldmljZSZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBb
IE9LIF08QlI+Jm5ic3A7KiBTdGFydGluZyBDbGVhbiAvdG1wIGRpcmVjdG9yeSZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyBbIE9LIF08QlI+Jm5ic3A7KiBTdG9wcGluZyBNb3VudCBuZXR3b3JrIGZpbGVzeXN0ZW1zJm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IFsgT0sgXTxCUj4mbmJzcDsqIFN0
b3BwaW5nIENsZWFuIC90bXAgZGlyZWN0b3J5Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IFsgT0sgXTxCUj4mbmJzcDsq
IFN0b3BwaW5nIGNvbGQgcGx1ZyBkZXZpY2VzJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
IFsgT0sgXTxCUj4mbmJzcDsqIFN0YXJ0aW5nIFNpZ25hbCBzeXN2aW5pdCB0aGF0IGxvY2FsIGZp
bGVzeXN0ZW1zIGFyZSBtb3VudGVkJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IFsgT0sgXTxCUj4mbmJzcDsqIFN0b3BwaW5nIGxvZyBp
bml0aWFsIGRldmljZSBjcmVhdGlvbiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBbIE9LIF08
QlI+Jm5ic3A7KiBTdG9wcGluZyBNb3VudCBmaWxlc3lzdGVtcyBvbiBib290Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IFsgT0sgXTxCUj4mbmJzcDsqIFN0YXJ0aW5nIEZh
aWxzYWZlIEJvb3QgRGVsYXkmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgWyBPSyBdPEJSPiZuYnNwOyogU3Rh
cnRpbmcgZmx1c2ggZWFybHkgam9iIG91dHB1dCB0byBsb2dzJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IFsgT0sgXTxCUj4m
bmJzcDsqIFN0YXJ0aW5nIGNvbmZpZ3VyZSBuZXR3b3JrIGRldmljZSBzZWN1cml0eSZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBbIE9LIF08QlI+Jm5ic3A7
KiBTdGFydGluZyBELUJ1cyBzeXN0ZW0gbWVzc2FnZSBidXMmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgWyBPSyBdPEJSPiZuYnNwOyogU3RhcnRpbmcgdXNlcnNw
YWNlIGJvb3RzcGxhc2gmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgWyBPSyBdPEJSPiZuYnNwOyogU3RvcHBpbmcgZmx1
c2ggZWFybHkgam9iIG91dHB1dCB0byBsb2dzJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IFsgT0sgXTxCUj4mbmJzcDsqIFN0
b3BwaW5nIHVzZXJzcGFjZSBib290c3BsYXNoJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IFsgT0sgXTxCUj4mbmJzcDsq
IFN0YXJ0aW5nIFNlbmQgYW4gZXZlbnQgdG8gaW5kaWNhdGUgcGx5bW91dGggaXMgdXAmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsg
WyBPSyBdPEJSPiZuYnNwOyogU3RhcnRpbmcgY29uZmlndXJlIHZpcnR1YWwgbmV0d29yayBkZXZp
Y2VzJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IFsgT0sg
XTxCUj4mbmJzcDsqIFN0YXJ0aW5nIHN5c3RlbSBsb2dnaW5nIGRhZW1vbiZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBbIE9LIF08
QlI+Jm5ic3A7KiBTdG9wcGluZyBTZW5kIGFuIGV2ZW50IHRvIGluZGljYXRlIHBseW1vdXRoIGlz
IHVwJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7IFsgT0sgXTxCUj4mbmJzcDsqIFN0YXJ0aW5nIE1vdW50IG5ldHdvcmsgZmlsZXN5
c3RlbXMmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgWyBPSyBdPEJSPiZu
YnNwOyogU3RhcnRpbmcgY29uZmlndXJlIG5ldHdvcmsgZGV2aWNlJm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IFsgT0sgXTxCUj4mbmJzcDsqIFN0b3BwaW5nIEZh
aWxzYWZlIEJvb3QgRGVsYXkmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgWyBPSyBdPEJSPiZuYnNwOyogU3Rh
cnRpbmcgbUROUy9ETlMtU0QgZGFlbW9uJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IFsgT0sgXTxC
Uj4mbmJzcDsqIFN0YXJ0aW5nIFN5c3RlbSBWIGluaXRpYWxpc2F0aW9uIGNvbXBhdGliaWxpdHkm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgWyBPSyBdPEJSPiZuYnNwOyogU3RhcnRpbmcgUmVsb2Fk
IGN1cHMsIHVwb24gc3RhcnRpbmcgYXZhaGktZGFlbW9uIHRvIG1ha2Ugc3VyZSByZW1vdGUgcVsg
T0sgXWFyZSBwb3B1bGF0ZWQ8QlI+Jm5ic3A7KiBTdGFydGluZyBSZWxvYWQgY3VwcywgdXBvbiBz
dGFydGluZyBhdmFoaS1kYWVtb24gdG8gbWFrZSBzdXJlIHJlbW90ZSBxW2ZhaWxdYXJlIHBvcHVs
YXRlZDxCUj4mbmJzcDsqIFN0b3BwaW5nIE1vdW50IG5ldHdvcmsgZmlsZXN5c3RlbXMmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgWyBPSyBdPEJSPiZuYnNwOyogU3RvcHBp
bmcgU3lzdGVtIFYgaW5pdGlhbGlzYXRpb24gY29tcGF0aWJpbGl0eSZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyBbIE9LIF08QlI+Jm5ic3A7KiBTdGFydGluZyBTeXN0ZW0gViBydW5sZXZlbCBjb21w
YXRpYmlsaXR5Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7IFsgT0sgXTxCUj4mbmJzcDsqIFN0YXJ0aW5nIHJlZ3VsYXIgYmFja2dyb3Vu
ZCBwcm9ncmFtIHByb2Nlc3NpbmcgZGFlbW9uJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7IFsgT0sgXTxCUj4mbmJzcDsqIFN0YXJ0aW5nIHNhdmUga2VybmVsIG1lc3NhZ2Vz
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7IFsgT0sgXTxCUj4mbmJzcDsqIFN0b3BwaW5nIFN5c3RlbSBWIHJ1bmxldmVs
IGNvbXBhdGliaWxpdHkmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsgWyBPSyBdPEJSPiZuYnNwOyogU3RvcHBpbmcgc2F2ZSBrZXJuZWwg
bWVzc2FnZXMmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsgWyBPSyBdPEJSPiZuYnNwOyogU3RhcnRpbmcgT3BlblNTSCBz
ZXJ2ZXImbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgWyBP
SyBdPEJSPlsmbmJzcDsgNzU3LjA3NTA2OV0gQlVHOiBzb2Z0IGxvY2t1cCAtIENQVSMwIHN0dWNr
IGZvciAzNXMhIFtzd2FwcGVyLzA6MF08QlI+PC9QPg0KPFA+Jm5ic3A7PC9QPg0KPFA+PFNQQU4g
bGFuZz1FTi1VUyBzdHlsZT0iRk9OVC1TSVpFOiA4cHQ7IEZPTlQtRkFNSUxZOiAnQ2FuZGFyYScs
c2Fucy1zZXJpZjsgQ09MT1I6ICM0MDQwNDAiPkd5dW5nbWluIFBhcmsmbmJzcDt8ICs4Mi0xMC0z
NDY1LTc1MDcgfCBSJmFtcDtEIE9mZmljZSwgVkQgRGl2aXNpb24sIFNFQzxvOnA+PC9vOnA+PC9T
UEFOPjwvUD48IS0tZ20wOTExLnBhcms6RVAtLT4NCjxQPiZuYnNwOzwvUD4NCjxUQUJMRSBpZD1j
b25maWRlbnRpYWxzaWduaW1nPg0KPFRCT0RZPg0KPFRSPg0KPFREIE5BTU9fTE9DSz4NCjxQPjxJ
TUcgYm9yZGVyPTAgc3JjPSJjaWQ6RVc5QkVXWFhZS0VOQG5hbW8uY28ua3IiPjwvUD48L1REPjwv
VFI+PC9UQk9EWT48L1RBQkxFPjwvQk9EWT48L0hUTUw+PGltZyBzcmM9J2h0dHA6Ly9leHQuc2Ft
c3VuZy5uZXQvbWFpbGNoZWNrL1NlZW5UaW1lQ2hlY2tlcj9kbz0yOGJjY2IwZTdhMWUwZDA2ODI2
OTc0NTRkN2Y0MWQ3OThjMDNmN2YwNThlNjkxNWU5YWIzZTVhMDViY2FlZjllMzU3YTFiN2ZjMjJh
NmQ2MDZkM2U4YzdmYWJhMjRhZTZiYTk1MTEzZmM4NjVjN2Y2NWFmOTY2YzBmMDg5OTE5ZTQ5ZTVm
ZjNkZmRjODY4MWQ3NmY4MGJmODFkMzFjODYzY2Y4NzhmOWEyNmNlMTVhMCcgYm9yZGVyPTAgd2lk
dGg9MCBoZWlnaHQ9MCBzdHlsZT0nZGlzcGxheTpub25lJz4=


--=_NamoWEC-fa22mhucko
Content-Type: image/gif;
	name="201601282016874_4XEV4D4T.gif"
Content-Transfer-Encoding: base64
Content-ID: <EW9BEWXXYKEN@namo.co.kr>

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
Ow==

--=_NamoWEC-fa22mhucko--




--===============5156697503593393135==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

--===============5156697503593393135==--




From mirageos-devel-bounces@lists.xenproject.org Thu Jan 28 11:37:10 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 28 Jan 2016 11:37:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aOkst-0002QE-HH; Thu, 28 Jan 2016 11:37:07 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <lars.kurth.xen@gmail.com>)
	id 1aOksr-0002Po-HK; Thu, 28 Jan 2016 11:37:05 +0000
Received: from [85.158.143.35] by server-1.bemta-4.messagelabs.com id
	15/DA-09708-06DF9A65; Thu, 28 Jan 2016 11:37:04 +0000
X-Env-Sender: lars.kurth.xen@gmail.com
X-Msg-Ref: server-4.tower-21.messagelabs.com!1453981015!12595011!1
X-Originating-IP: [74.125.82.54]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 38672 invoked from network); 28 Jan 2016 11:37:03 -0000
Received: from mail-wm0-f54.google.com (HELO mail-wm0-f54.google.com)
	(74.125.82.54)
	by server-4.tower-21.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 28 Jan 2016 11:37:03 -0000
Received: by mail-wm0-f54.google.com with SMTP id p63so20376454wmp.1;
	Thu, 28 Jan 2016 03:37:02 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=content-type:mime-version:subject:from:in-reply-to:date:cc
	:content-transfer-encoding:message-id:references:to;
	bh=3iZRWVJFg/dbVock04X0wXbPcIK1vFz7BUwgS7C5m+8=;
	b=qRup5xBFQrZjjqd4SaH/lHw8sHq6Zux7AwWc3cRgxqvzglkCminWbiDVFiuCpcrmVK
	RU+PzEjsPc/x3nwuSrNe9JaQmbuC5wXo6W2Fd339jHaPL3MzWUnkoNliP4iCppk9mV9x
	saJkMayV3wnPcL3J/XMV0sJYOQ+F0wNreS6puUPdDOtv2iqazIVj3bPbXl8J2QqCyzlf
	N+3cyKmnSQBPW/+2BykOuaRspZCJkiSyPntY62ssQFTJPlX+svghk/SkG6sARNAh+9Qi
	Eil8PnkIth9QXcLT8eVoPjpz4mAkOUgXIwDLh4oh4MydfqW7NfBmH5uspwkoJrEPYPE1
	3JTA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:content-type:mime-version:subject:from
	:in-reply-to:date:cc:content-transfer-encoding:message-id:references
	:to; bh=3iZRWVJFg/dbVock04X0wXbPcIK1vFz7BUwgS7C5m+8=;
	b=g0zpqu4UNQPGeC+NLKoT4rwW1LYs/QugdmK9ZRX5+TxSvOyHjM6u79kuVRYnjL7wOe
	DXxRWS6k90ZY34Imd2/UEknCZwiqzWQ/0MkJ3yFJ6hbabYHV29X409XKMO2xGXXRgZ3A
	lVAQUPDKPZMsnE825CCCotKnnfmKNUEg5/DsIraq62INX3wNR+sVs/e5o2NCXZs+nTp8
	Ntvaf87Kifuve6NfH2f9KTLYwHWtK3CGUp0FXo1iGH/AfPOyTAWEwoJuIzUeKnpaq54N
	GIR2TXA2obelqedXDrJ+LM3Ri/GSZKEI+HPgblMG8TQVO4LfE9dSVBF36FShzeFalI2J
	yDsQ==
X-Gm-Message-State: AG10YORHuBFWPjW/I9OeysR9Dnm5Qt+WfT/Ro0fR4QzzXFPuYt5QRIb9GYDp1GJiHBY7mA==
X-Received: by 10.194.52.8 with SMTP id p8mr2537660wjo.62.1453981014654;
	Thu, 28 Jan 2016 03:36:54 -0800 (PST)
Received: from [192.168.0.12] (5ec0a1a0.skybroadband.com. [94.192.161.160])
	by smtp.gmail.com with ESMTPSA id
	r10sm10612055wjz.24.2016.01.28.03.36.53
	(version=TLSv1/SSLv3 cipher=OTHER);
	Thu, 28 Jan 2016 03:36:53 -0800 (PST)
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Lars Kurth <lars.kurth.xen@gmail.com>
In-Reply-To: <F298D48D-5BEE-4535-83F2-D2F59AB7178A@gmail.com>
Date: Thu, 28 Jan 2016 11:36:52 +0000
Message-Id: <ADA95C36-8DD3-4E36-8690-34382D20C9B9@gmail.com>
References: <C49F5723-E3BE-456D-87C8-A2F4CDE8D43C@gmail.com>
	<F298D48D-5BEE-4535-83F2-D2F59AB7178A@gmail.com>
To: xen-devel <xen-devel@lists.xenproject.org>,
	mirageos-devel <mirageos-devel@lists.xenproject.org>,
	Win-pv-devel@lists.xenproject.org, embedded-pv-devel@lists.xenproject.org
X-Mailer: Apple Mail (2.2104)
Cc: xen-users@lists.xenproject.org
Subject: Re: [MirageOS-devel] Xen Project Infrastructure Maintenance:
	xenbits (Jan 28),
	qemu-bitslave & mail & downloads.xenproject.org (Feb 1),
	lists & etherpad (Feb 4th)
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

Hi everyone,
http://xenbits.xen.org/ is live again. This means that access to git repositories, on-line documentation and information to XSA's has been restored. Apologies for any inconvenience that was caused.
Best Regards
Lars


_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Thu Jan 28 11:37:10 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 28 Jan 2016 11:37:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aOkst-0002QE-HH; Thu, 28 Jan 2016 11:37:07 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <lars.kurth.xen@gmail.com>)
	id 1aOksr-0002Po-HK; Thu, 28 Jan 2016 11:37:05 +0000
Received: from [85.158.143.35] by server-1.bemta-4.messagelabs.com id
	15/DA-09708-06DF9A65; Thu, 28 Jan 2016 11:37:04 +0000
X-Env-Sender: lars.kurth.xen@gmail.com
X-Msg-Ref: server-4.tower-21.messagelabs.com!1453981015!12595011!1
X-Originating-IP: [74.125.82.54]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 38672 invoked from network); 28 Jan 2016 11:37:03 -0000
Received: from mail-wm0-f54.google.com (HELO mail-wm0-f54.google.com)
	(74.125.82.54)
	by server-4.tower-21.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 28 Jan 2016 11:37:03 -0000
Received: by mail-wm0-f54.google.com with SMTP id p63so20376454wmp.1;
	Thu, 28 Jan 2016 03:37:02 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=content-type:mime-version:subject:from:in-reply-to:date:cc
	:content-transfer-encoding:message-id:references:to;
	bh=3iZRWVJFg/dbVock04X0wXbPcIK1vFz7BUwgS7C5m+8=;
	b=qRup5xBFQrZjjqd4SaH/lHw8sHq6Zux7AwWc3cRgxqvzglkCminWbiDVFiuCpcrmVK
	RU+PzEjsPc/x3nwuSrNe9JaQmbuC5wXo6W2Fd339jHaPL3MzWUnkoNliP4iCppk9mV9x
	saJkMayV3wnPcL3J/XMV0sJYOQ+F0wNreS6puUPdDOtv2iqazIVj3bPbXl8J2QqCyzlf
	N+3cyKmnSQBPW/+2BykOuaRspZCJkiSyPntY62ssQFTJPlX+svghk/SkG6sARNAh+9Qi
	Eil8PnkIth9QXcLT8eVoPjpz4mAkOUgXIwDLh4oh4MydfqW7NfBmH5uspwkoJrEPYPE1
	3JTA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:content-type:mime-version:subject:from
	:in-reply-to:date:cc:content-transfer-encoding:message-id:references
	:to; bh=3iZRWVJFg/dbVock04X0wXbPcIK1vFz7BUwgS7C5m+8=;
	b=g0zpqu4UNQPGeC+NLKoT4rwW1LYs/QugdmK9ZRX5+TxSvOyHjM6u79kuVRYnjL7wOe
	DXxRWS6k90ZY34Imd2/UEknCZwiqzWQ/0MkJ3yFJ6hbabYHV29X409XKMO2xGXXRgZ3A
	lVAQUPDKPZMsnE825CCCotKnnfmKNUEg5/DsIraq62INX3wNR+sVs/e5o2NCXZs+nTp8
	Ntvaf87Kifuve6NfH2f9KTLYwHWtK3CGUp0FXo1iGH/AfPOyTAWEwoJuIzUeKnpaq54N
	GIR2TXA2obelqedXDrJ+LM3Ri/GSZKEI+HPgblMG8TQVO4LfE9dSVBF36FShzeFalI2J
	yDsQ==
X-Gm-Message-State: AG10YORHuBFWPjW/I9OeysR9Dnm5Qt+WfT/Ro0fR4QzzXFPuYt5QRIb9GYDp1GJiHBY7mA==
X-Received: by 10.194.52.8 with SMTP id p8mr2537660wjo.62.1453981014654;
	Thu, 28 Jan 2016 03:36:54 -0800 (PST)
Received: from [192.168.0.12] (5ec0a1a0.skybroadband.com. [94.192.161.160])
	by smtp.gmail.com with ESMTPSA id
	r10sm10612055wjz.24.2016.01.28.03.36.53
	(version=TLSv1/SSLv3 cipher=OTHER);
	Thu, 28 Jan 2016 03:36:53 -0800 (PST)
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Lars Kurth <lars.kurth.xen@gmail.com>
In-Reply-To: <F298D48D-5BEE-4535-83F2-D2F59AB7178A@gmail.com>
Date: Thu, 28 Jan 2016 11:36:52 +0000
Message-Id: <ADA95C36-8DD3-4E36-8690-34382D20C9B9@gmail.com>
References: <C49F5723-E3BE-456D-87C8-A2F4CDE8D43C@gmail.com>
	<F298D48D-5BEE-4535-83F2-D2F59AB7178A@gmail.com>
To: xen-devel <xen-devel@lists.xenproject.org>,
	mirageos-devel <mirageos-devel@lists.xenproject.org>,
	Win-pv-devel@lists.xenproject.org, embedded-pv-devel@lists.xenproject.org
X-Mailer: Apple Mail (2.2104)
Cc: xen-users@lists.xenproject.org
Subject: Re: [MirageOS-devel] Xen Project Infrastructure Maintenance:
	xenbits (Jan 28),
	qemu-bitslave & mail & downloads.xenproject.org (Feb 1),
	lists & etherpad (Feb 4th)
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

Hi everyone,
http://xenbits.xen.org/ is live again. This means that access to git repositories, on-line documentation and information to XSA's has been restored. Apologies for any inconvenience that was caused.
Best Regards
Lars


_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Fri Jan 29 10:43:06 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 29 Jan 2016 10:43:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aP6W0-0002zz-Rm; Fri, 29 Jan 2016 10:42:56 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <lars.kurth.xen@gmail.com>)
	id 1aP6Vy-0002zd-RZ; Fri, 29 Jan 2016 10:42:54 +0000
Received: from [85.158.139.211] by server-13.bemta-5.messagelabs.com id
	CB/28-09478-D224BA65; Fri, 29 Jan 2016 10:42:53 +0000
X-Env-Sender: lars.kurth.xen@gmail.com
X-Msg-Ref: server-2.tower-206.messagelabs.com!1454064172!19028662!1
X-Originating-IP: [74.125.82.41]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 47337 invoked from network); 29 Jan 2016 10:42:52 -0000
Received: from mail-wm0-f41.google.com (HELO mail-wm0-f41.google.com)
	(74.125.82.41)
	by server-2.tower-206.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 29 Jan 2016 10:42:52 -0000
Received: by mail-wm0-f41.google.com with SMTP id p63so62543564wmp.1;
	Fri, 29 Jan 2016 02:42:52 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=content-type:mime-version:subject:from:in-reply-to:date:cc
	:content-transfer-encoding:message-id:references:to;
	bh=ZItSW/6WdgwAU12GeExgQqJIUQBumiWmPiFyandvuB8=;
	b=ztnK3dnGl92MPM4Ba9OWtvgqO+JIS8MCPDDKxY6pJ2NWeriW525Mxp6Oq4OnTQ69wb
	DetpZ02+Gq/i23R1eqLRNupjF28NgkKpqJZ14aVzSGdnu3h1DSHNNv+89V5mMGvC38QO
	fBtG+3qG7+77V9VdlOwOom1ARTROuiIlSmQFuEut2Ip+JAnr72L2s3RNHlbiDxsoLOUW
	UMbvN/g+1dsWpaN3iC84WDY8Fs8Rfo6tFq7h4vhxfmyIcoyh/UoRtXQbWqWQFRcCvBKR
	yFDaDZsmi3L99e5g33fBpO2/5BINbvz6tXIrNEK/jKFGDbgHucVulzpLj+Nd/Kj9c20Q
	aBxA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:content-type:mime-version:subject:from
	:in-reply-to:date:cc:content-transfer-encoding:message-id:references
	:to; bh=ZItSW/6WdgwAU12GeExgQqJIUQBumiWmPiFyandvuB8=;
	b=QP91JrBjChdf2qx+4y+Ul4ztP0dj7aKJxXCL9oPpWIwYVJhLF3XuM3yZ6skCA/KkY2
	y6q2kcZJUi4TqwNspCp3x1WcvPUja4oHH9bQFKOO/91W+Lz5/LB96pKOHmKmjHG4mQHm
	Vn1TabBBn3oLD4wODpYKN7IYXQEAy7DUTulh5k3vyKQoXfOTpRVNb1acTrwIKL/HK6oT
	M1vQvbi5GFjgjKqYxgDumbVXdGJj92qZ8YQL+SmHy9hLw+DfaystnmbJxzASAjBmdkCh
	oCFoaCBGKe7JxVa07/XUUv0NwVwEYiEFftFqY1WAlZU09Y1g0+WwatRpEN2urF8stSYW
	aBVg==
X-Gm-Message-State: AG10YOT3+zOk3/bxwZx3MLCE07BCvJDt5uK4WF9YcHrzxZP123IcE7/UeVdeU5PN5ARF6g==
X-Received: by 10.28.63.206 with SMTP id m197mr7687109wma.21.1454064172376;
	Fri, 29 Jan 2016 02:42:52 -0800 (PST)
Received: from [192.168.0.9] (5ec0a1a0.skybroadband.com. [94.192.161.160])
	by smtp.gmail.com with ESMTPSA id
	jo6sm15040616wjb.48.2016.01.29.02.42.51
	(version=TLSv1/SSLv3 cipher=OTHER);
	Fri, 29 Jan 2016 02:42:51 -0800 (PST)
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Lars Kurth <lars.kurth.xen@gmail.com>
In-Reply-To: <C49F5723-E3BE-456D-87C8-A2F4CDE8D43C@gmail.com>
Date: Fri, 29 Jan 2016 10:42:52 +0000
Message-Id: <406515BB-2973-4F6E-9540-F4F49F8A2A58@gmail.com>
References: <C49F5723-E3BE-456D-87C8-A2F4CDE8D43C@gmail.com>
To: xen-devel <xen-devel@lists.xenproject.org>,
	mirageos-devel <mirageos-devel@lists.xenproject.org>,
	Win-pv-devel@lists.xenproject.org, embedded-pv-devel@lists.xenproject.org
X-Mailer: Apple Mail (2.2104)
Cc: xen-users@lists.xenproject.org
Subject: Re: [MirageOS-devel] Xen Project Infrastructure Maintenance:
	xenbits (Jan 28),
	qemu-bitslave & mail & downloads.xenproject.org (Feb 1),
	lists & etherpad (Feb 4th)
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

Hi all,
this is a quick note to let you note that we are deferring the upgrades that were originally planned on Feb 1 and 4th. We ran into some issues with the Jan 28th upgrade, which would occur again. We are working with Rackspace to find a solution that avoids the issues we have seen on the 28th. Once we have a solution, we will re-schedule the planned upgrades.
Best Regards
Lars

> On 27 Jan 2016, at 16:48, Lars Kurth <lars.kurth.xen@gmail.com> wrote:
> 
> Hi everyone,
> 
> we are rebooting a number of Xen Project services in the next few days to upgrade operating systems. This means that a few services may be temporarily unavailable. The following websites are affected and will be done during the times below. If you notice any issues after the reboot, please reply to this mail or check on the #xeninfra IRC channel.
> 
> = Jan 28, 7am - 9am UTC : affecting xenbits =
> Affected services: Xen Project source code repositories, automatically generated xenproject docs, list of security vulnerabilities
> If you need to clone or commit to any affected repositories please do so before or after
> 
> = Feb 1, 7am - 9am UTC : affecting qemu-bitslave and xenproject.org mail aliases and downloads.xenproject.org =
> Affected services: qemu-bitslave, mail server, DNS and downloads.xenproject.org
> Note that mails to e-mails using foo-bar@xenproject.org may be delayed during the maintenance window. 
> 
> = Feb 4, 7am - 9am UTC : affecting xen project mailing lists & ether pad =
> Affected services: all foo@lists.xenproject.org mailing lists and ether pads
> Note that mails to all mailing lists will be delayed during the maintenance window
> 
> Best Regards
> Lars


_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Fri Jan 29 10:43:06 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 29 Jan 2016 10:43:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aP6W0-0002zz-Rm; Fri, 29 Jan 2016 10:42:56 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <lars.kurth.xen@gmail.com>)
	id 1aP6Vy-0002zd-RZ; Fri, 29 Jan 2016 10:42:54 +0000
Received: from [85.158.139.211] by server-13.bemta-5.messagelabs.com id
	CB/28-09478-D224BA65; Fri, 29 Jan 2016 10:42:53 +0000
X-Env-Sender: lars.kurth.xen@gmail.com
X-Msg-Ref: server-2.tower-206.messagelabs.com!1454064172!19028662!1
X-Originating-IP: [74.125.82.41]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 47337 invoked from network); 29 Jan 2016 10:42:52 -0000
Received: from mail-wm0-f41.google.com (HELO mail-wm0-f41.google.com)
	(74.125.82.41)
	by server-2.tower-206.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 29 Jan 2016 10:42:52 -0000
Received: by mail-wm0-f41.google.com with SMTP id p63so62543564wmp.1;
	Fri, 29 Jan 2016 02:42:52 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=content-type:mime-version:subject:from:in-reply-to:date:cc
	:content-transfer-encoding:message-id:references:to;
	bh=ZItSW/6WdgwAU12GeExgQqJIUQBumiWmPiFyandvuB8=;
	b=ztnK3dnGl92MPM4Ba9OWtvgqO+JIS8MCPDDKxY6pJ2NWeriW525Mxp6Oq4OnTQ69wb
	DetpZ02+Gq/i23R1eqLRNupjF28NgkKpqJZ14aVzSGdnu3h1DSHNNv+89V5mMGvC38QO
	fBtG+3qG7+77V9VdlOwOom1ARTROuiIlSmQFuEut2Ip+JAnr72L2s3RNHlbiDxsoLOUW
	UMbvN/g+1dsWpaN3iC84WDY8Fs8Rfo6tFq7h4vhxfmyIcoyh/UoRtXQbWqWQFRcCvBKR
	yFDaDZsmi3L99e5g33fBpO2/5BINbvz6tXIrNEK/jKFGDbgHucVulzpLj+Nd/Kj9c20Q
	aBxA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:content-type:mime-version:subject:from
	:in-reply-to:date:cc:content-transfer-encoding:message-id:references
	:to; bh=ZItSW/6WdgwAU12GeExgQqJIUQBumiWmPiFyandvuB8=;
	b=QP91JrBjChdf2qx+4y+Ul4ztP0dj7aKJxXCL9oPpWIwYVJhLF3XuM3yZ6skCA/KkY2
	y6q2kcZJUi4TqwNspCp3x1WcvPUja4oHH9bQFKOO/91W+Lz5/LB96pKOHmKmjHG4mQHm
	Vn1TabBBn3oLD4wODpYKN7IYXQEAy7DUTulh5k3vyKQoXfOTpRVNb1acTrwIKL/HK6oT
	M1vQvbi5GFjgjKqYxgDumbVXdGJj92qZ8YQL+SmHy9hLw+DfaystnmbJxzASAjBmdkCh
	oCFoaCBGKe7JxVa07/XUUv0NwVwEYiEFftFqY1WAlZU09Y1g0+WwatRpEN2urF8stSYW
	aBVg==
X-Gm-Message-State: AG10YOT3+zOk3/bxwZx3MLCE07BCvJDt5uK4WF9YcHrzxZP123IcE7/UeVdeU5PN5ARF6g==
X-Received: by 10.28.63.206 with SMTP id m197mr7687109wma.21.1454064172376;
	Fri, 29 Jan 2016 02:42:52 -0800 (PST)
Received: from [192.168.0.9] (5ec0a1a0.skybroadband.com. [94.192.161.160])
	by smtp.gmail.com with ESMTPSA id
	jo6sm15040616wjb.48.2016.01.29.02.42.51
	(version=TLSv1/SSLv3 cipher=OTHER);
	Fri, 29 Jan 2016 02:42:51 -0800 (PST)
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Lars Kurth <lars.kurth.xen@gmail.com>
In-Reply-To: <C49F5723-E3BE-456D-87C8-A2F4CDE8D43C@gmail.com>
Date: Fri, 29 Jan 2016 10:42:52 +0000
Message-Id: <406515BB-2973-4F6E-9540-F4F49F8A2A58@gmail.com>
References: <C49F5723-E3BE-456D-87C8-A2F4CDE8D43C@gmail.com>
To: xen-devel <xen-devel@lists.xenproject.org>,
	mirageos-devel <mirageos-devel@lists.xenproject.org>,
	Win-pv-devel@lists.xenproject.org, embedded-pv-devel@lists.xenproject.org
X-Mailer: Apple Mail (2.2104)
Cc: xen-users@lists.xenproject.org
Subject: Re: [MirageOS-devel] Xen Project Infrastructure Maintenance:
	xenbits (Jan 28),
	qemu-bitslave & mail & downloads.xenproject.org (Feb 1),
	lists & etherpad (Feb 4th)
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

Hi all,
this is a quick note to let you note that we are deferring the upgrades that were originally planned on Feb 1 and 4th. We ran into some issues with the Jan 28th upgrade, which would occur again. We are working with Rackspace to find a solution that avoids the issues we have seen on the 28th. Once we have a solution, we will re-schedule the planned upgrades.
Best Regards
Lars

> On 27 Jan 2016, at 16:48, Lars Kurth <lars.kurth.xen@gmail.com> wrote:
> 
> Hi everyone,
> 
> we are rebooting a number of Xen Project services in the next few days to upgrade operating systems. This means that a few services may be temporarily unavailable. The following websites are affected and will be done during the times below. If you notice any issues after the reboot, please reply to this mail or check on the #xeninfra IRC channel.
> 
> = Jan 28, 7am - 9am UTC : affecting xenbits =
> Affected services: Xen Project source code repositories, automatically generated xenproject docs, list of security vulnerabilities
> If you need to clone or commit to any affected repositories please do so before or after
> 
> = Feb 1, 7am - 9am UTC : affecting qemu-bitslave and xenproject.org mail aliases and downloads.xenproject.org =
> Affected services: qemu-bitslave, mail server, DNS and downloads.xenproject.org
> Note that mails to e-mails using foo-bar@xenproject.org may be delayed during the maintenance window. 
> 
> = Feb 4, 7am - 9am UTC : affecting xen project mailing lists & ether pad =
> Affected services: all foo@lists.xenproject.org mailing lists and ether pads
> Note that mails to all mailing lists will be delayed during the maintenance window
> 
> Best Regards
> Lars


_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Fri Jan 29 15:51:34 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 29 Jan 2016 15:51:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aPBKW-0005Mp-CI; Fri, 29 Jan 2016 15:51:24 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <talex5@gmail.com>) id 1aPBKU-0005Mk-T6
	for mirageos-devel@lists.xenproject.org; Fri, 29 Jan 2016 15:51:23 +0000
Received: from [85.158.137.68] by server-8.bemta-3.messagelabs.com id
	3D/B6-24375-97A8BA65; Fri, 29 Jan 2016 15:51:21 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-14.tower-31.messagelabs.com!1454082680!19094830!1
X-Originating-IP: [209.85.213.52]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 42867 invoked from network); 29 Jan 2016 15:51:21 -0000
Received: from mail-vk0-f52.google.com (HELO mail-vk0-f52.google.com)
	(209.85.213.52)
	by server-14.tower-31.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 29 Jan 2016 15:51:21 -0000
Received: by mail-vk0-f52.google.com with SMTP id e64so44368188vkg.0
	for <mirageos-devel@lists.xenproject.org>;
	Fri, 29 Jan 2016 07:51:21 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type:content-transfer-encoding;
	bh=hu38ykaBg0qSXkag3ikd2LbLI5h10z3ld3PnoQsqJW0=;
	b=vgW7ZGCV/T5FSZFpjpu+q1tbfMj6ogn7Dmj6UcURKj884b7uqg/sjxv/J/rHYo70cw
	X/gtlmgLaS8+vjEcAHKuUYW7yvvJrtorXWVbngskplt/RgxuZPiyq8pPrRTCYvmGFi8C
	UPwxf/sDYeYnTIu55McUnTaJfgX1mBEauGU2vn1Vx1nnLFctsu5x7MXIZlue5/P3K7GL
	yctsA3+DV85nF4LQc+3kgEYnQEso7+HQbGdrpzU5mKIvTkSIe8tHUYaPKQi+7WXht2fZ
	oCJcZSXfvDanE0E5T6eEgkITz6JatTVEGDhz7sPQs2SBj0BQ3VGl56wMlVk2aM8iEyB0
	TgoQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:in-reply-to:references:date
	:message-id:subject:from:to:cc:content-type
	:content-transfer-encoding;
	bh=hu38ykaBg0qSXkag3ikd2LbLI5h10z3ld3PnoQsqJW0=;
	b=gFWrMn2Qkhrv52p6AhPbwdDDSb0XRBHyuzvRP4IhdWR5N2MPAjqHNnVRqu6+5mGtOB
	RZ4qPd5sVsKAKLrEJDx+zDxi8bNlauDpQ3QKaOb8i0FQ1hfqXbBLH/4ZtkfX04BKqQr6
	cn7+C8u8uJrY/i0JcOVM1bid5hmwO9b9aX3aQV96DeocEXnCrGSuUyXY1FMK+1qZvDf/
	F4xUZsZjy06TMwLyb6T+r7E4LB2PLFcMw/cyt4BHJYk+0aP7/UNvc0xVMiDVJrbM4Gh9
	abhxoIDhqGMZmYEyMLdH5huzbtOagxjo4xEmOPM9t6UssZRjEYSGBxjo1fnDsDHFCrR2
	eRqQ==
X-Gm-Message-State: AG10YOQXGpEqpXf9jx9sYCtdvzxzh1nm3mdVEB78eMHEiz9GVLV1fCHEreC86Axk6fzAgWhc3L73sZCIi1w8Pg==
MIME-Version: 1.0
X-Received: by 10.31.160.6 with SMTP id j6mr6519923vke.87.1454082680361; Fri,
	29 Jan 2016 07:51:20 -0800 (PST)
Received: by 10.31.130.129 with HTTP; Fri, 29 Jan 2016 07:51:20 -0800 (PST)
In-Reply-To: <63.22.05161.678F9A65@epcpsbgx4.samsung.com>
References: <63.22.05161.678F9A65@epcpsbgx4.samsung.com>
Date: Fri, 29 Jan 2016 15:51:20 +0000
Message-ID: <CAG4opy9OeFb=KdOra0XHV-eD-2yP55B4upwos0B0Yo3xzAiiFg@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: gm0911.park@samsung.com
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] request for solving the problem
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

T24gMjggSmFudWFyeSAyMDE2IGF0IDExOjE2LCDrsJXqsr3rr7wgPGdtMDkxMS5wYXJrQHNhbXN1
bmcuY29tPiB3cm90ZToKPgo+IEhpLAo+Cj4KPgo+IEkgaGFkIHNvbWUgcHJvYmxlbSBhYm91dCBy
dW5uaW5nIGRvbSBVCj4KPgo+Cj4gSSByZWZlcmVkIHRvIGh0dHBzOi8vbWlyYWdlLmlvL3dpa2kv
eGVuLW9uLWN1YmllYm9hcmQyIGFuZCBiZWxvdyBsb2cgaXMgZnJvbSBteWJvYXJkLgoKVGhvc2Ug
aW5zdHJ1Y3Rpb25zIG1heSBiZSBvdXQgb2YgZGF0ZS4gQXJlIHlvdSB1c2luZyB0aGUgaW1hZ2Ug
YXQKaHR0cHM6Ly9naXRodWIuY29tL21pcmFnZS94ZW4tYXJtLWJ1aWxkZXIvID8KCj4gTXkgcHJv
YmxlbSBpcyB0aGF0IEkgY291bGRuYHQgYWNjZXNzIHRoZSBEb21VIGNvbnNvbGUuCj4KPiBJIHRo
aW5rIEl0IGhhcyBhIGJ1Zy4KPgo+Cj4KPiBNYXkgSSBhc2sgd2hpY2ggcG9pbnQgaXMgd3Jvbmc/
Cj4KPgo+Cj4gUmVnYXJkcwo+Cj4gR3l1bmdtaW4KPgo+Cj4KPiBtaXJhZ2VAY3ViaWV0cnVjazp+
JCBzdWRvIHhsIGNyZWF0ZSAtYyBsaW51eC1ndWVzdC0xLmNvbmYKPiBQYXJzaW5nIGNvbmZpZyBm
cm9tIGxpbnV4LWd1ZXN0LTEuY29uZgpbLi4uXQo+ICAqIFN0b3BwaW5nIHNhdmUga2VybmVsIG1l
c3NhZ2VzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbIE9LIF0KPiAg
KiBTdGFydGluZyBPcGVuU1NIIHNlcnZlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgWyBPSyBdCj4gWyAgNzU3LjA3NTA2OV0gQlVHOiBzb2Z0IGxvY2t1cCAt
IENQVSMwIHN0dWNrIGZvciAzNXMhIFtzd2FwcGVyLzA6MF0KCgotLSAKRHIgVGhvbWFzIExlb25h
cmQgICAgICAgIGh0dHA6Ly9yb3NjaWR1cy5jb20vYmxvZy8KR1BHOiBEQTk4IDI1QUUgQ0FEMCA4
OTc1IDdDREEgIEJEOEUgMDcxMyAzRjk2IENBNzQgRDhCQQoKX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX18KTWlyYWdlT1MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1p
cmFnZU9TLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHA6Ly9saXN0cy54ZW5wcm9qZWN0
Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vbWlyYWdlb3MtZGV2ZWwK

From mirageos-devel-bounces@lists.xenproject.org Fri Jan 29 15:51:34 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 29 Jan 2016 15:51:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aPBKW-0005Mp-CI; Fri, 29 Jan 2016 15:51:24 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <talex5@gmail.com>) id 1aPBKU-0005Mk-T6
	for mirageos-devel@lists.xenproject.org; Fri, 29 Jan 2016 15:51:23 +0000
Received: from [85.158.137.68] by server-8.bemta-3.messagelabs.com id
	3D/B6-24375-97A8BA65; Fri, 29 Jan 2016 15:51:21 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-14.tower-31.messagelabs.com!1454082680!19094830!1
X-Originating-IP: [209.85.213.52]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 42867 invoked from network); 29 Jan 2016 15:51:21 -0000
Received: from mail-vk0-f52.google.com (HELO mail-vk0-f52.google.com)
	(209.85.213.52)
	by server-14.tower-31.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 29 Jan 2016 15:51:21 -0000
Received: by mail-vk0-f52.google.com with SMTP id e64so44368188vkg.0
	for <mirageos-devel@lists.xenproject.org>;
	Fri, 29 Jan 2016 07:51:21 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type:content-transfer-encoding;
	bh=hu38ykaBg0qSXkag3ikd2LbLI5h10z3ld3PnoQsqJW0=;
	b=vgW7ZGCV/T5FSZFpjpu+q1tbfMj6ogn7Dmj6UcURKj884b7uqg/sjxv/J/rHYo70cw
	X/gtlmgLaS8+vjEcAHKuUYW7yvvJrtorXWVbngskplt/RgxuZPiyq8pPrRTCYvmGFi8C
	UPwxf/sDYeYnTIu55McUnTaJfgX1mBEauGU2vn1Vx1nnLFctsu5x7MXIZlue5/P3K7GL
	yctsA3+DV85nF4LQc+3kgEYnQEso7+HQbGdrpzU5mKIvTkSIe8tHUYaPKQi+7WXht2fZ
	oCJcZSXfvDanE0E5T6eEgkITz6JatTVEGDhz7sPQs2SBj0BQ3VGl56wMlVk2aM8iEyB0
	TgoQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:in-reply-to:references:date
	:message-id:subject:from:to:cc:content-type
	:content-transfer-encoding;
	bh=hu38ykaBg0qSXkag3ikd2LbLI5h10z3ld3PnoQsqJW0=;
	b=gFWrMn2Qkhrv52p6AhPbwdDDSb0XRBHyuzvRP4IhdWR5N2MPAjqHNnVRqu6+5mGtOB
	RZ4qPd5sVsKAKLrEJDx+zDxi8bNlauDpQ3QKaOb8i0FQ1hfqXbBLH/4ZtkfX04BKqQr6
	cn7+C8u8uJrY/i0JcOVM1bid5hmwO9b9aX3aQV96DeocEXnCrGSuUyXY1FMK+1qZvDf/
	F4xUZsZjy06TMwLyb6T+r7E4LB2PLFcMw/cyt4BHJYk+0aP7/UNvc0xVMiDVJrbM4Gh9
	abhxoIDhqGMZmYEyMLdH5huzbtOagxjo4xEmOPM9t6UssZRjEYSGBxjo1fnDsDHFCrR2
	eRqQ==
X-Gm-Message-State: AG10YOQXGpEqpXf9jx9sYCtdvzxzh1nm3mdVEB78eMHEiz9GVLV1fCHEreC86Axk6fzAgWhc3L73sZCIi1w8Pg==
MIME-Version: 1.0
X-Received: by 10.31.160.6 with SMTP id j6mr6519923vke.87.1454082680361; Fri,
	29 Jan 2016 07:51:20 -0800 (PST)
Received: by 10.31.130.129 with HTTP; Fri, 29 Jan 2016 07:51:20 -0800 (PST)
In-Reply-To: <63.22.05161.678F9A65@epcpsbgx4.samsung.com>
References: <63.22.05161.678F9A65@epcpsbgx4.samsung.com>
Date: Fri, 29 Jan 2016 15:51:20 +0000
Message-ID: <CAG4opy9OeFb=KdOra0XHV-eD-2yP55B4upwos0B0Yo3xzAiiFg@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: gm0911.park@samsung.com
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] request for solving the problem
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

T24gMjggSmFudWFyeSAyMDE2IGF0IDExOjE2LCDrsJXqsr3rr7wgPGdtMDkxMS5wYXJrQHNhbXN1
bmcuY29tPiB3cm90ZToKPgo+IEhpLAo+Cj4KPgo+IEkgaGFkIHNvbWUgcHJvYmxlbSBhYm91dCBy
dW5uaW5nIGRvbSBVCj4KPgo+Cj4gSSByZWZlcmVkIHRvIGh0dHBzOi8vbWlyYWdlLmlvL3dpa2kv
eGVuLW9uLWN1YmllYm9hcmQyIGFuZCBiZWxvdyBsb2cgaXMgZnJvbSBteWJvYXJkLgoKVGhvc2Ug
aW5zdHJ1Y3Rpb25zIG1heSBiZSBvdXQgb2YgZGF0ZS4gQXJlIHlvdSB1c2luZyB0aGUgaW1hZ2Ug
YXQKaHR0cHM6Ly9naXRodWIuY29tL21pcmFnZS94ZW4tYXJtLWJ1aWxkZXIvID8KCj4gTXkgcHJv
YmxlbSBpcyB0aGF0IEkgY291bGRuYHQgYWNjZXNzIHRoZSBEb21VIGNvbnNvbGUuCj4KPiBJIHRo
aW5rIEl0IGhhcyBhIGJ1Zy4KPgo+Cj4KPiBNYXkgSSBhc2sgd2hpY2ggcG9pbnQgaXMgd3Jvbmc/
Cj4KPgo+Cj4gUmVnYXJkcwo+Cj4gR3l1bmdtaW4KPgo+Cj4KPiBtaXJhZ2VAY3ViaWV0cnVjazp+
JCBzdWRvIHhsIGNyZWF0ZSAtYyBsaW51eC1ndWVzdC0xLmNvbmYKPiBQYXJzaW5nIGNvbmZpZyBm
cm9tIGxpbnV4LWd1ZXN0LTEuY29uZgpbLi4uXQo+ICAqIFN0b3BwaW5nIHNhdmUga2VybmVsIG1l
c3NhZ2VzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbIE9LIF0KPiAg
KiBTdGFydGluZyBPcGVuU1NIIHNlcnZlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgWyBPSyBdCj4gWyAgNzU3LjA3NTA2OV0gQlVHOiBzb2Z0IGxvY2t1cCAt
IENQVSMwIHN0dWNrIGZvciAzNXMhIFtzd2FwcGVyLzA6MF0KCgotLSAKRHIgVGhvbWFzIExlb25h
cmQgICAgICAgIGh0dHA6Ly9yb3NjaWR1cy5jb20vYmxvZy8KR1BHOiBEQTk4IDI1QUUgQ0FEMCA4
OTc1IDdDREEgIEJEOEUgMDcxMyAzRjk2IENBNzQgRDhCQQoKX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX18KTWlyYWdlT1MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1p
cmFnZU9TLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHA6Ly9saXN0cy54ZW5wcm9qZWN0
Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vbWlyYWdlb3MtZGV2ZWwK

From mirageos-devel-bounces@lists.xenproject.org Fri Jan 29 15:59:46 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 29 Jan 2016 15:59:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aPBSc-0005qT-0I; Fri, 29 Jan 2016 15:59:46 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <talex5@gmail.com>) id 1aPBSa-0005qO-GT
	for mirageos-devel@lists.xenproject.org; Fri, 29 Jan 2016 15:59:44 +0000
Received: from [85.158.139.211] by server-2.bemta-5.messagelabs.com id
	9A/E5-21594-F6C8BA65; Fri, 29 Jan 2016 15:59:43 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-7.tower-206.messagelabs.com!1454083182!18851694!1
X-Originating-IP: [209.85.213.43]
X-SpamReason: No, hits=0.8 required=7.0 tests=BODY_RANDOM_LONG,
  RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 20059 invoked from network); 29 Jan 2016 15:59:42 -0000
Received: from mail-vk0-f43.google.com (HELO mail-vk0-f43.google.com)
	(209.85.213.43)
	by server-7.tower-206.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 29 Jan 2016 15:59:42 -0000
Received: by mail-vk0-f43.google.com with SMTP id n1so44193409vkb.3
	for <mirageos-devel@lists.xenproject.org>;
	Fri, 29 Jan 2016 07:59:42 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=aiwg8Zyo9sT08O6/9Wq6x3ZEwWQamxnaqtS5+GXSxRQ=;
	b=YrYCwFPQzOf5cQzlvaBz61kAdUd71ZbeCeoGRAkV5IA0t96D/1SrxWJ5GtbWyqC16+
	kJKkxLNd9hz+9y18SF+/La2talpj+WApPFP2SZqtt9tQ5SaUfEgMOKTTXnIeGVXtC+Hm
	j+AW3OIOYMwRYGVROwGwemLQahTCDk/IS6IX+ThV8ZjDLzZKiNOxDSKY/XLr/p9ywRLQ
	4BCLHPC1weoW1ivMLIN6vy19rf13177zYotzp33SrGvecvGnpU/Z4liH4sWhJnnj39Al
	/nNXFambmvcvGKFn7w7JeILdgYmqIQlq9CwwGaPohAU/E8/hP0+HA//f2Tw9HS4GjwY9
	xyXg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:in-reply-to:references:date
	:message-id:subject:from:to:cc:content-type;
	bh=aiwg8Zyo9sT08O6/9Wq6x3ZEwWQamxnaqtS5+GXSxRQ=;
	b=jqcofmfoCBpH360Gkh6LolD8RtYYdM9patvdQjhRXR4TwTTcdU61EeXnkRmZVc33a9
	uXXhEbFx7mIiFnenoW0v/wciDId/qTSgsFqPtrKgYomIYiy6PCCsBSp5rUtROPBim3uy
	n2NEeDT+eY6pP75KXaqQGVsp6b65MDGVrKCjM4ZQeiH8cKR355bfxn8TM+ErbaJAFE/E
	mOtzQfLhv/zvgXeohv4wOFpCZ0gdn1DloYcElqmlkTLf+Qpq1Bd+fHXzNUCEcXIsKw4D
	UY7RlM2LwypbMrHPYuAjPFL64l0/R/EAzQK1GLzGDJ6EgQkbTDOhdk7DZnXPtUuEqDRg
	c72g==
X-Gm-Message-State: AG10YOQc9B3M3Huhdh2kfAcs7pXupu1QAFBXJQufz6DHRglA30hlZw1dQPZ8F5xmo3Ffoz4AhhPm0JGK1f8Sdg==
MIME-Version: 1.0
X-Received: by 10.31.178.146 with SMTP id b140mr6194268vkf.108.1454083181889; 
	Fri, 29 Jan 2016 07:59:41 -0800 (PST)
Received: by 10.31.130.129 with HTTP; Fri, 29 Jan 2016 07:59:41 -0800 (PST)
In-Reply-To: <CAAHpSfi+v4jNbSBLoF5-MsZwymYU5a8hdeZKwhsC6scpttTNYA@mail.gmail.com>
References: <CAAHpSfiDq+ggXWcdHfmM9NG+LcV9OEbJLoL6U-z8pX5gPYD8aw@mail.gmail.com>
	<CAG4opy9TThL8-WqSx30eE_zc0LNN57MZjfKuPy6SFkqbygdUAA@mail.gmail.com>
	<CAAHpSfi+v4jNbSBLoF5-MsZwymYU5a8hdeZKwhsC6scpttTNYA@mail.gmail.com>
Date: Fri, 29 Jan 2016 15:59:41 +0000
Message-ID: <CAG4opy_Dhy-oS0AJ64MmUZbgCbM2jOovYNCeVsNSdKHvaOm9EQ@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Madhuri Yechuri <cosmokramer@gmail.com>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] request for beginner project suggestion
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 28 January 2016 at 05:58, Madhuri Yechuri <cosmokramer@gmail.com> wrote:
> Great, thanks for the quick response! i assume below advice still holds
> true, in that case.

Yes.

> ______
> You could start by cloning the mirage-skeleton repository and making a
> new example based on "console" that uses logging rather than printing.
>
> For modifying libraries, you'll need to know how to "opam pin" a
> modified package for testing. There's some useful information here:
>
> https://www.somerandomidiot.com/blog/2015/11/26/quick-changes-in-mirageos/
>
> (however, I find it easier to look in the Makefile to find the
> dependencies, rather than reading the source of the mirage tool, and
> make sure you do "opam pin -k git" to pin in "mixed mode", or you'll
> have endless trouble with stale OASIS files)
> ______
>
> i can start with
> https://github.com/mirage/mirage-net-xen/blob/995bcf518b7c8e41e7db79050948bb7ecc1046b2/lib/frontend.ml#L106
> , as listed in the Pioneer Projects page.
>
> Is there a recommended regression test set? i looked around
> https://mirage.io/wiki/contributing, but couldn't find any pointers.

There are no automated tests. Running mirage-skeleton would let you
check if it was working.

Dave Scott made a branch that allowed mirage-net-xen to run on Unix
(by making the Xen stuff abstract), which allowed running unit-tests
easily. I think it needs a bit of work to rebase it on master, though:

https://github.com/djs55/mirage-net-xen/commits/refactor-modules
https://github.com/djs55/mirage-net-xen/blob/refactor-modules/lib_test/test.ml

(many of the changes on this branch have already been merged)

Some proper integration tests that spin up multiple Xen VMs would be
great too. I know this has been discussed a few times, but I'm not
sure what the status is.

> Thanks a lot!
> madhuri.
>
> On Wed, Jan 27, 2016 at 8:40 AM, Thomas Leonard <talex5@gmail.com> wrote:
>>
>> On 27 January 2016 at 16:28, Madhuri Yechuri <cosmokramer@gmail.com>
>> wrote:
>> > Hi,
>> >
>> > i am interested in contributing to MirageOS (during non-work hours), and
>> > wondering if there is a beginner project recommendation? This would be
>> > my
>> > first project in OCAML (have 15 years industry coding experience in C
>> > (Oracle Database Server, VMware ESX) and C++ (VMware vCenter), and
>> > recent 9
>> > months in Python (Flocker)).
>> >
>> > Looking through
>> > https://github.com/mirage/mirage-www/wiki/Pioneer-Projects ,
>> > i understand Logging is taken from recent emails on this mailing list.
>> > Is
>> > there is any other beginner-friendly project that i could take up?
>> >
>> > Thanks a lot!
>> > madhuri.
>>
>> Hi Madhuri,
>>
>> There are lots of libraries that need improved logging, so as long as
>> people say which ones they're working on there should be no problem -
>> it would be great if you want to work on that!
>>
>>
>> --
>> Dr Thomas Leonard        http://roscidus.com/blog/
>> GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA
>
>



-- 
Dr Thomas Leonard        http://roscidus.com/blog/
GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

From mirageos-devel-bounces@lists.xenproject.org Fri Jan 29 15:59:46 2016
Return-path: <mirageos-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 29 Jan 2016 15:59:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <mirageos-devel-bounces@lists.xenproject.org>)
	id 1aPBSc-0005qT-0I; Fri, 29 Jan 2016 15:59:46 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <talex5@gmail.com>) id 1aPBSa-0005qO-GT
	for mirageos-devel@lists.xenproject.org; Fri, 29 Jan 2016 15:59:44 +0000
Received: from [85.158.139.211] by server-2.bemta-5.messagelabs.com id
	9A/E5-21594-F6C8BA65; Fri, 29 Jan 2016 15:59:43 +0000
X-Env-Sender: talex5@gmail.com
X-Msg-Ref: server-7.tower-206.messagelabs.com!1454083182!18851694!1
X-Originating-IP: [209.85.213.43]
X-SpamReason: No, hits=0.8 required=7.0 tests=BODY_RANDOM_LONG,
  RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 7.35.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 20059 invoked from network); 29 Jan 2016 15:59:42 -0000
Received: from mail-vk0-f43.google.com (HELO mail-vk0-f43.google.com)
	(209.85.213.43)
	by server-7.tower-206.messagelabs.com with AES128-GCM-SHA256 encrypted
	SMTP; 29 Jan 2016 15:59:42 -0000
Received: by mail-vk0-f43.google.com with SMTP id n1so44193409vkb.3
	for <mirageos-devel@lists.xenproject.org>;
	Fri, 29 Jan 2016 07:59:42 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=aiwg8Zyo9sT08O6/9Wq6x3ZEwWQamxnaqtS5+GXSxRQ=;
	b=YrYCwFPQzOf5cQzlvaBz61kAdUd71ZbeCeoGRAkV5IA0t96D/1SrxWJ5GtbWyqC16+
	kJKkxLNd9hz+9y18SF+/La2talpj+WApPFP2SZqtt9tQ5SaUfEgMOKTTXnIeGVXtC+Hm
	j+AW3OIOYMwRYGVROwGwemLQahTCDk/IS6IX+ThV8ZjDLzZKiNOxDSKY/XLr/p9ywRLQ
	4BCLHPC1weoW1ivMLIN6vy19rf13177zYotzp33SrGvecvGnpU/Z4liH4sWhJnnj39Al
	/nNXFambmvcvGKFn7w7JeILdgYmqIQlq9CwwGaPohAU/E8/hP0+HA//f2Tw9HS4GjwY9
	xyXg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:in-reply-to:references:date
	:message-id:subject:from:to:cc:content-type;
	bh=aiwg8Zyo9sT08O6/9Wq6x3ZEwWQamxnaqtS5+GXSxRQ=;
	b=jqcofmfoCBpH360Gkh6LolD8RtYYdM9patvdQjhRXR4TwTTcdU61EeXnkRmZVc33a9
	uXXhEbFx7mIiFnenoW0v/wciDId/qTSgsFqPtrKgYomIYiy6PCCsBSp5rUtROPBim3uy
	n2NEeDT+eY6pP75KXaqQGVsp6b65MDGVrKCjM4ZQeiH8cKR355bfxn8TM+ErbaJAFE/E
	mOtzQfLhv/zvgXeohv4wOFpCZ0gdn1DloYcElqmlkTLf+Qpq1Bd+fHXzNUCEcXIsKw4D
	UY7RlM2LwypbMrHPYuAjPFL64l0/R/EAzQK1GLzGDJ6EgQkbTDOhdk7DZnXPtUuEqDRg
	c72g==
X-Gm-Message-State: AG10YOQc9B3M3Huhdh2kfAcs7pXupu1QAFBXJQufz6DHRglA30hlZw1dQPZ8F5xmo3Ffoz4AhhPm0JGK1f8Sdg==
MIME-Version: 1.0
X-Received: by 10.31.178.146 with SMTP id b140mr6194268vkf.108.1454083181889; 
	Fri, 29 Jan 2016 07:59:41 -0800 (PST)
Received: by 10.31.130.129 with HTTP; Fri, 29 Jan 2016 07:59:41 -0800 (PST)
In-Reply-To: <CAAHpSfi+v4jNbSBLoF5-MsZwymYU5a8hdeZKwhsC6scpttTNYA@mail.gmail.com>
References: <CAAHpSfiDq+ggXWcdHfmM9NG+LcV9OEbJLoL6U-z8pX5gPYD8aw@mail.gmail.com>
	<CAG4opy9TThL8-WqSx30eE_zc0LNN57MZjfKuPy6SFkqbygdUAA@mail.gmail.com>
	<CAAHpSfi+v4jNbSBLoF5-MsZwymYU5a8hdeZKwhsC6scpttTNYA@mail.gmail.com>
Date: Fri, 29 Jan 2016 15:59:41 +0000
Message-ID: <CAG4opy_Dhy-oS0AJ64MmUZbgCbM2jOovYNCeVsNSdKHvaOm9EQ@mail.gmail.com>
From: Thomas Leonard <talex5@gmail.com>
To: Madhuri Yechuri <cosmokramer@gmail.com>
Cc: "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>
Subject: Re: [MirageOS-devel] request for beginner project suggestion
X-BeenThere: mirageos-devel@lists.xenproject.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/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: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel>,
	<mailto:mirageos-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: mirageos-devel-bounces@lists.xenproject.org
Errors-To: mirageos-devel-bounces@lists.xenproject.org

On 28 January 2016 at 05:58, Madhuri Yechuri <cosmokramer@gmail.com> wrote:
> Great, thanks for the quick response! i assume below advice still holds
> true, in that case.

Yes.

> ______
> You could start by cloning the mirage-skeleton repository and making a
> new example based on "console" that uses logging rather than printing.
>
> For modifying libraries, you'll need to know how to "opam pin" a
> modified package for testing. There's some useful information here:
>
> https://www.somerandomidiot.com/blog/2015/11/26/quick-changes-in-mirageos/
>
> (however, I find it easier to look in the Makefile to find the
> dependencies, rather than reading the source of the mirage tool, and
> make sure you do "opam pin -k git" to pin in "mixed mode", or you'll
> have endless trouble with stale OASIS files)
> ______
>
> i can start with
> https://github.com/mirage/mirage-net-xen/blob/995bcf518b7c8e41e7db79050948bb7ecc1046b2/lib/frontend.ml#L106
> , as listed in the Pioneer Projects page.
>
> Is there a recommended regression test set? i looked around
> https://mirage.io/wiki/contributing, but couldn't find any pointers.

There are no automated tests. Running mirage-skeleton would let you
check if it was working.

Dave Scott made a branch that allowed mirage-net-xen to run on Unix
(by making the Xen stuff abstract), which allowed running unit-tests
easily. I think it needs a bit of work to rebase it on master, though:

https://github.com/djs55/mirage-net-xen/commits/refactor-modules
https://github.com/djs55/mirage-net-xen/blob/refactor-modules/lib_test/test.ml

(many of the changes on this branch have already been merged)

Some proper integration tests that spin up multiple Xen VMs would be
great too. I know this has been discussed a few times, but I'm not
sure what the status is.

> Thanks a lot!
> madhuri.
>
> On Wed, Jan 27, 2016 at 8:40 AM, Thomas Leonard <talex5@gmail.com> wrote:
>>
>> On 27 January 2016 at 16:28, Madhuri Yechuri <cosmokramer@gmail.com>
>> wrote:
>> > Hi,
>> >
>> > i am interested in contributing to MirageOS (during non-work hours), and
>> > wondering if there is a beginner project recommendation? This would be
>> > my
>> > first project in OCAML (have 15 years industry coding experience in C
>> > (Oracle Database Server, VMware ESX) and C++ (VMware vCenter), and
>> > recent 9
>> > months in Python (Flocker)).
>> >
>> > Looking through
>> > https://github.com/mirage/mirage-www/wiki/Pioneer-Projects ,
>> > i understand Logging is taken from recent emails on this mailing list.
>> > Is
>> > there is any other beginner-friendly project that i could take up?
>> >
>> > Thanks a lot!
>> > madhuri.
>>
>> Hi Madhuri,
>>
>> There are lots of libraries that need improved logging, so as long as
>> people say which ones they're working on there should be no problem -
>> it would be great if you want to work on that!
>>
>>
>> --
>> Dr Thomas Leonard        http://roscidus.com/blog/
>> GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA
>
>



-- 
Dr Thomas Leonard        http://roscidus.com/blog/
GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@lists.xenproject.org
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

