From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33882) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1V6diU-0001fn-DX for qemu-devel@nongnu.org; Tue, 06 Aug 2013 05:38:15 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1V6diP-0006g3-Bs for qemu-devel@nongnu.org; Tue, 06 Aug 2013 05:38:10 -0400 Received: from mx1.redhat.com ([209.132.183.28]:8197) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1V6diP-0006fx-2o for qemu-devel@nongnu.org; Tue, 06 Aug 2013 05:38:05 -0400 Date: Tue, 6 Aug 2013 11:37:54 +0200 From: Kevin Wolf Message-ID: <20130806093753.GH3117@dhcp-200-207.str.redhat.com> References: <1375728247-1306-1-git-send-email-charlie@ctshepherd.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1375728247-1306-1-git-send-email-charlie@ctshepherd.com> Subject: Re: [Qemu-devel] RFC: [PATCH 0/5] Explicitly annotating coroutine_fn functions List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Charlie Shepherd Cc: pbonzini@redhat.com, gabriel@kerneis.info, qemu-devel@nongnu.org, stefanha@gmail.com Am 05.08.2013 um 20:44 hat Charlie Shepherd geschrieben: > This patch series is a follow up to a previous RFC about converting functions > that dynamically yield execution depending on whether they are in executing in > a coroutine context or not to be explicitly statically annotated. This change > is necessary for the GSoC CPC project, but was also agreed in an IRC > conversation on #qemu to be benefical overall if it can be upstream before the > end of the project. This is an update to see if the approach I'm taking to > implementing this conversion is correct. > > In order to statically check the tree to ensure the annotations are correct, > I've been using CPC to compile the QEMU tree. This does a source to source > translation to convert coroutine code to continuation-passing style (the > purpose of the GSoC project), but as a side benefit statically checks > annotations (any functions annotated with coroutine_fn are transformed into > CPS, so have a different "calling style" to the standard C convention). > > In order to compile the tree with CPC: > $ git clone git://github.com/kerneis/cpc.git > $ cd cpc > $ make > $ ./configure > $ make > $ cd .. > $ export CPC=$(pwd)/cpc/bin/cpc > $ cd qemu > $ mkdir -p bin/cpc > $ cd bin/cpc > $ ../../configure --enable-debug --disable-werror --target-list=x86_64-softmmu --cc="$CPC" --extra-cflags="--noMakeStaticGlobal --useLogicalOperators --useCaseRange --save-temps -U__SSE2__ -w -Dcoroutine_fn='__attribute__((__cps__))' --docpsInference --warnall " > $ make Against which tree is this? It didn't apply on top of qemu-git master, nor on my block branch. Kevin