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