[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] RFC: [PATCH 0/5] Explicitly annotating coroutine_fn fun
Re: [Qemu-devel] RFC: [PATCH 0/5] Explicitly annotating coroutine_fn functions
Tue, 6 Aug 2013 11:37:54 +0200
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.
- Re: [Qemu-devel] [PATCH 3/5] Convert BlockDriver to explicit coroutine annotations, (continued)