Index: benchmark/Makefile.am
===================================================================
--- benchmark/Makefile.am	(revision 54db6ba8901dc5ecc6cefa64bfcdb950cec1a3b6)
+++ benchmark/Makefile.am	(revision dc33b5b1d92624f41baf064633127a4075fec592)
@@ -11,6 +11,6 @@
 ## Created On       : Sun May 31 09:08:15 2015
 ## Last Modified By : Peter A. Buhr
-## Last Modified On : Tue Nov  6 09:01:23 2018
-## Update Count     : 26
+## Last Modified On : Sun Jun 23 12:34:29 2019
+## Update Count     : 52
 ###############################################################################
 
@@ -21,5 +21,5 @@
 include $(top_srcdir)/src/cfa.make
 
-AM_CFLAGS = -O2 -Wall -Wextra -Werror -I$(srcdir) -lrt -pthread
+AM_CFLAGS = -O2 -Wall -Wextra -I$(srcdir) -lrt -pthread # -Werror
 AM_CFAFLAGS = -quiet -nodebug -in-tree
 AM_UPPFLAGS = -quiet -nodebug -multi -std=c++14
@@ -31,4 +31,5 @@
 BENCH_V_JAVAC = $(__bench_v_JAVAC_$(__quiet))
 BENCH_V_UPP = $(__bench_v_UPP_$(__quiet))
+BENCH_V_QTHREAD = $(__bench_v_QTHREAD_$(__quiet))
 
 __quiet = verbose
@@ -45,5 +46,5 @@
 __bench_v_JAVAC_verbose = $(AM_V_JAVAC)
 __bench_v_UPP_verbose = $(AM_V_UPP)
-
+__bench_v_QTHREAD_verbose = $(AM_V_CC)
 
 
@@ -51,5 +52,5 @@
 REPEAT   = ${abs_top_builddir}/tools/repeat
 STATS    = ${abs_top_srcdir}/tools/stat.py
-repeats  = 30
+repeats  = 3 # 30
 skipcompile = no
 TIME_FORMAT = "%E"
@@ -124,5 +125,6 @@
 
 ctxswitch.csv:
-	@echo "coroutine,thread" > $@
+	@echo "generator,coroutine,thread" > $@
+	@+make ctxswitch-cfa_generator.runquiet >> $@ && echo -n ',' >> $@
 	@+make ctxswitch-cfa_coroutine.runquiet >> $@ && echo -n ',' >> $@
 	@+make ctxswitch-cfa_thread.runquiet >> $@
@@ -153,4 +155,7 @@
 	$(BENCH_V_CC)$(COMPILE) -DBENCH_N=500000000  $(srcdir)/fetch_add.c
 
+ttst_lock$(EXEEXT):
+	$(BENCH_V_CC)$(COMPILE) -DBENCH_N=500000000  $(srcdir)/ttst_lock.c
+
 tls-fetch_add$(EXEEXT):
 	$(BENCH_V_CC)$(COMPILE) -DBENCH_N=500000000  $(srcdir)/tls-fetch_add.c
@@ -161,6 +166,8 @@
 	function.run			\
 	fetch_add.run			\
+	ttst_lock.run			\
 	tls-fetch_add.run			\
 	ctxswitch-pthread.run		\
+	ctxswitch-cfa_generator.run	\
 	ctxswitch-cfa_coroutine.run	\
 	ctxswitch-cfa_thread.run	\
@@ -169,5 +176,7 @@
 	ctxswitch-upp_thread.run	\
 	ctxswitch-goroutine.run		\
-	ctxswitch-java_thread.run
+	ctxswitch-java_thread.run	\
+	ctxswitch-qthreads.run
+
 
 if WITH_LIBFIBRE
@@ -188,4 +197,7 @@
 ctxswitch-pthread$(EXEEXT):
 	$(BENCH_V_CC)$(COMPILE)    -DBENCH_N=50000000 $(srcdir)/ctxswitch/pthreads.c
+
+ctxswitch-cfa_generator$(EXEEXT):
+	$(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=50000000 $(srcdir)/ctxswitch/cfa_gen.cfa
 
 ctxswitch-cfa_coroutine$(EXEEXT):
@@ -212,4 +224,7 @@
 	@echo "java JavaThread" >> a.out
 	@chmod a+x a.out
+
+ctxswitch-qthreads$(EXEEXT):
+	$(BENCH_V_QTHREADS)$(COMPILE) -DBENCH_N=50000000 -I/u/pabuhr/software/qthreads/include -L/u/pabuhr/software/qthreads/lib -Xlinker -R/u/pabuhr/software/qthreads/lib $(srcdir)/ctxswitch/qthreads.c -lqthread
 
 ## =========================================================================================================
@@ -305,5 +320,6 @@
 	creation-upp_thread.run			\
 	creation-goroutine.run			\
-	creation-java_thread.run
+	creation-java_thread.run		\
+	creation-qthreads.run
 
 creation-cfa_coroutine$(EXEEXT):
@@ -333,4 +349,7 @@
 	@echo "java JavaThread" >> a.out
 	@chmod a+x a.out
+
+creation-qthreads$(EXEEXT):
+	$(BENCH_V_QTHREADS)$(COMPILE) -DBENCH_N=50000000 -I/u/pabuhr/software/qthreads/include -L/u/pabuhr/software/qthreads/lib -Xlinker -R/u/pabuhr/software/qthreads/lib $(srcdir)/ctxswitch/qthreads.c -lqthread
 
 ## =========================================================================================================
@@ -375,3 +394,2 @@
 compile-typeof$(EXEEXT):
 	@$(CFACOMPILE) -fsyntax-only -w $(testdir)/typeof.cfa
-
Index: benchmark/Makefile.in
===================================================================
--- benchmark/Makefile.in	(revision 54db6ba8901dc5ecc6cefa64bfcdb950cec1a3b6)
+++ benchmark/Makefile.in	(revision dc33b5b1d92624f41baf064633127a4075fec592)
@@ -363,5 +363,5 @@
 am__v_GOC_0 = @echo "  GOC     " $@;
 am__v_GOC_1 = 
-UPPCC = u++
+UPPCC = u++-work
 UPPCOMPILE = $(UPPCC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_UPPFLAGS) $(UPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_CFLAGS) $(CFLAGS)
 AM_V_UPP = $(am__v_UPP_@AM_V@)
@@ -371,5 +371,5 @@
 
 # applies to both programs
-AM_CFLAGS = -O2 -Wall -Wextra -Werror -I$(srcdir) -lrt -pthread
+AM_CFLAGS = -O2 -Wall -Wextra -I$(srcdir) -lrt -pthread # -Werror
 AM_CFAFLAGS = -quiet -nodebug -in-tree
 AM_UPPFLAGS = -quiet -nodebug -multi -std=c++14
@@ -380,4 +380,5 @@
 BENCH_V_JAVAC = $(__bench_v_JAVAC_$(__quiet))
 BENCH_V_UPP = $(__bench_v_UPP_$(__quiet))
+BENCH_V_QTHREAD = $(__bench_v_QTHREAD_$(__quiet))
 __quiet = verbose
 __bench_v_CC_quiet = @
@@ -393,8 +394,9 @@
 __bench_v_JAVAC_verbose = $(AM_V_JAVAC)
 __bench_v_UPP_verbose = $(AM_V_UPP)
+__bench_v_QTHREAD_verbose = $(AM_V_CC)
 TOOLSDIR = ${abs_top_builddir}/tools/
 REPEAT = ${abs_top_builddir}/tools/repeat
 STATS = ${abs_top_srcdir}/tools/stat.py
-repeats = 30
+repeats = 3 # 30
 skipcompile = no
 TIME_FORMAT = "%E"
@@ -402,10 +404,11 @@
 dummy_SOURCES = dummyC.c dummyCXX.cpp
 FIX_NEW_LINES = cat $@ | tr "\n" "\t" | sed -r 's/\t,/,/' | tr "\t" "\n" > $@
-CTXSWITCH_DEPEND = loop.run function.run fetch_add.run \
+CTXSWITCH_DEPEND = loop.run function.run fetch_add.run ttst_lock.run \
 	tls-fetch_add.run ctxswitch-pthread.run \
-	ctxswitch-cfa_coroutine.run ctxswitch-cfa_thread.run \
-	ctxswitch-cfa_thread2.run ctxswitch-upp_coroutine.run \
-	ctxswitch-upp_thread.run ctxswitch-goroutine.run \
-	ctxswitch-java_thread.run $(am__append_1)
+	ctxswitch-cfa_generator.run ctxswitch-cfa_coroutine.run \
+	ctxswitch-cfa_thread.run ctxswitch-cfa_thread2.run \
+	ctxswitch-upp_coroutine.run ctxswitch-upp_thread.run \
+	ctxswitch-goroutine.run ctxswitch-java_thread.run \
+	ctxswitch-qthreads.run $(am__append_1)
 testdir = $(top_srcdir)/tests
 all: all-am
@@ -784,5 +787,6 @@
 
 ctxswitch.csv:
-	@echo "coroutine,thread" > $@
+	@echo "generator,coroutine,thread" > $@
+	@+make ctxswitch-cfa_generator.runquiet >> $@ && echo -n ',' >> $@
 	@+make ctxswitch-cfa_coroutine.runquiet >> $@ && echo -n ',' >> $@
 	@+make ctxswitch-cfa_thread.runquiet >> $@
@@ -812,4 +816,7 @@
 	$(BENCH_V_CC)$(COMPILE) -DBENCH_N=500000000  $(srcdir)/fetch_add.c
 
+ttst_lock$(EXEEXT):
+	$(BENCH_V_CC)$(COMPILE) -DBENCH_N=500000000  $(srcdir)/ttst_lock.c
+
 tls-fetch_add$(EXEEXT):
 	$(BENCH_V_CC)$(COMPILE) -DBENCH_N=500000000  $(srcdir)/tls-fetch_add.c
@@ -825,4 +832,7 @@
 ctxswitch-pthread$(EXEEXT):
 	$(BENCH_V_CC)$(COMPILE)    -DBENCH_N=50000000 $(srcdir)/ctxswitch/pthreads.c
+
+ctxswitch-cfa_generator$(EXEEXT):
+	$(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=50000000 $(srcdir)/ctxswitch/cfa_gen.cfa
 
 ctxswitch-cfa_coroutine$(EXEEXT):
@@ -849,4 +859,7 @@
 	@echo "java JavaThread" >> a.out
 	@chmod a+x a.out
+
+ctxswitch-qthreads$(EXEEXT):
+	$(BENCH_V_QTHREADS)$(COMPILE) -DBENCH_N=50000000 -I/u/pabuhr/software/qthreads/include -L/u/pabuhr/software/qthreads/lib -Xlinker -R/u/pabuhr/software/qthreads/lib $(srcdir)/ctxswitch/qthreads.c -lqthread
 
 mutex$(EXEEXT) :\
@@ -937,5 +950,6 @@
 	creation-upp_thread.run			\
 	creation-goroutine.run			\
-	creation-java_thread.run
+	creation-java_thread.run		\
+	creation-qthreads.run
 
 creation-cfa_coroutine$(EXEEXT):
@@ -965,4 +979,7 @@
 	@echo "java JavaThread" >> a.out
 	@chmod a+x a.out
+
+creation-qthreads$(EXEEXT):
+	$(BENCH_V_QTHREADS)$(COMPILE) -DBENCH_N=50000000 -I/u/pabuhr/software/qthreads/include -L/u/pabuhr/software/qthreads/lib -Xlinker -R/u/pabuhr/software/qthreads/lib $(srcdir)/ctxswitch/qthreads.c -lqthread
 
 compile$(EXEEXT) :\
Index: benchmark/bench.h
===================================================================
--- benchmark/bench.h	(revision 54db6ba8901dc5ecc6cefa64bfcdb950cec1a3b6)
+++ benchmark/bench.h	(revision dc33b5b1d92624f41baf064633127a4075fec592)
@@ -45,6 +45,6 @@
 	statement;					\
 	EndTime = bench_time();			\
-	unsigned long long int output = 	\
-	( EndTime - StartTime ) / n;
+	double output = 	\
+	    (double)( EndTime - StartTime ) / n;
 
 #if defined(__cforall)
Index: benchmark/creation/cfa_cor.cfa
===================================================================
--- benchmark/creation/cfa_cor.cfa	(revision 54db6ba8901dc5ecc6cefa64bfcdb950cec1a3b6)
+++ benchmark/creation/cfa_cor.cfa	(revision dc33b5b1d92624f41baf064633127a4075fec592)
@@ -10,9 +10,9 @@
 #endif
 }
-void main(MyCoroutine & this) {}
+void main(MyCoroutine &) {}
 
 int main(int argc, char* argv[]) {
 	BENCH(
-		for (size_t i = 0; i < n; i++) {
+		for ( i; n ) {
 			MyCoroutine m;
 		},
@@ -20,4 +20,4 @@
 	)
 
-	printf("%llu\n", result);
+	printf("%g\n", result);
 }
Index: benchmark/creation/cfa_thrd.cfa
===================================================================
--- benchmark/creation/cfa_thrd.cfa	(revision 54db6ba8901dc5ecc6cefa64bfcdb950cec1a3b6)
+++ benchmark/creation/cfa_thrd.cfa	(revision dc33b5b1d92624f41baf064633127a4075fec592)
@@ -5,9 +5,9 @@
 
 thread MyThread {};
-void main(MyThread & this) {}
+void main(MyThread &) {}
 
 int main(int argc, char* argv[]) {
 	BENCH(
-		for (size_t i = 0; i < n; i++) {
+		for ( i; n ) {
 			MyThread m;
 		},
@@ -15,4 +15,4 @@
 	)
 
-	printf("%llu\n", result);
+	printf("%g\n", result);
 }
Index: benchmark/creation/pthreads.c
===================================================================
--- benchmark/creation/pthreads.c	(revision 54db6ba8901dc5ecc6cefa64bfcdb950cec1a3b6)
+++ benchmark/creation/pthreads.c	(revision dc33b5b1d92624f41baf064633127a4075fec592)
@@ -25,4 +25,4 @@
 	)
 
-	printf("%llu\n", result);
+	printf("%g\n", result);
 }
Index: benchmark/creation/upp_cor.cc
===================================================================
--- benchmark/creation/upp_cor.cc	(revision 54db6ba8901dc5ecc6cefa64bfcdb950cec1a3b6)
+++ benchmark/creation/upp_cor.cc	(revision dc33b5b1d92624f41baf064633127a4075fec592)
@@ -15,4 +15,4 @@
 	)
 
-	printf("%llu\n", result);
+	printf("%g\n", result);
 }
Index: benchmark/creation/upp_thrd.cc
===================================================================
--- benchmark/creation/upp_thrd.cc	(revision 54db6ba8901dc5ecc6cefa64bfcdb950cec1a3b6)
+++ benchmark/creation/upp_thrd.cc	(revision dc33b5b1d92624f41baf064633127a4075fec592)
@@ -15,4 +15,4 @@
 	)
 
-	printf("%llu\n", result);
+	printf("%g\n", result);
 }
Index: benchmark/ctxswitch/cfa_cor.cfa
===================================================================
--- benchmark/ctxswitch/cfa_cor.cfa	(revision 54db6ba8901dc5ecc6cefa64bfcdb950cec1a3b6)
+++ benchmark/ctxswitch/cfa_cor.cfa	(revision dc33b5b1d92624f41baf064633127a4075fec592)
@@ -1,3 +1,2 @@
-#include <stdio.h>
 #include <kernel.hfa>
 #include <thread.hfa>
@@ -21,5 +20,5 @@
 
 	BENCH(
-		for (size_t i = 0; i < n; i++) {
+		for ( i; n ) {
 			resume( s );
 		},
@@ -27,4 +26,4 @@
 	)
 
-	printf("%llu\n", result);
+	printf("%g\n", result);
 }
Index: benchmark/ctxswitch/cfa_cor_then.cfa
===================================================================
--- benchmark/ctxswitch/cfa_cor_then.cfa	(revision 54db6ba8901dc5ecc6cefa64bfcdb950cec1a3b6)
+++ benchmark/ctxswitch/cfa_cor_then.cfa	(revision dc33b5b1d92624f41baf064633127a4075fec592)
@@ -1,3 +1,2 @@
-#include <stdio.h>
 #include <kernel.hfa>
 #include <thread.hfa>
@@ -23,5 +22,5 @@
 
 	BENCH(
-		for (size_t i = 0; i < n; i++) {
+		for ( i; n ) {
 			resume( s );
 		},
@@ -29,4 +28,4 @@
 	)
 
-	printf("%llu\n", result);
+	printf("%g\n", result);
 }
Index: benchmark/ctxswitch/cfa_thrd.cfa
===================================================================
--- benchmark/ctxswitch/cfa_thrd.cfa	(revision 54db6ba8901dc5ecc6cefa64bfcdb950cec1a3b6)
+++ benchmark/ctxswitch/cfa_thrd.cfa	(revision dc33b5b1d92624f41baf064633127a4075fec592)
@@ -1,3 +1,2 @@
-#include <stdio.h>
 #include <thread.hfa>
 
@@ -6,5 +5,5 @@
 int main(int argc, char* argv[]) {
 	BENCH(
-		for (size_t i = 0; i < n; i++) {
+		for ( i; n ) {
 			yield();
 		},
@@ -12,4 +11,4 @@
 	)
 
-	printf("%llu\n", result);
+	printf("%g\n", result);
 }
Index: benchmark/ctxswitch/cfa_thrd2.cfa
===================================================================
--- benchmark/ctxswitch/cfa_thrd2.cfa	(revision 54db6ba8901dc5ecc6cefa64bfcdb950cec1a3b6)
+++ benchmark/ctxswitch/cfa_thrd2.cfa	(revision dc33b5b1d92624f41baf064633127a4075fec592)
@@ -1,3 +1,2 @@
-#include <stdio.h>
 #include <thread.hfa>
 
@@ -17,5 +16,5 @@
 	Fibre f1;
   	BENCH(
-		for (size_t i = 0; i < n; i++) {
+		for ( i; n ) {
 			yield();
 		},
@@ -23,5 +22,5 @@
 	)
 
-	printf("%llu\n", result);
+	printf("%g\n", result);
 	done = true;
 	return 0;
Index: benchmark/ctxswitch/kos_fibre.cpp
===================================================================
--- benchmark/ctxswitch/kos_fibre.cpp	(revision 54db6ba8901dc5ecc6cefa64bfcdb950cec1a3b6)
+++ benchmark/ctxswitch/kos_fibre.cpp	(revision dc33b5b1d92624f41baf064633127a4075fec592)
@@ -10,5 +10,5 @@
 		result
 	)
-	printf("%llu\n", result);
+	printf("%g\n", result);
 	return 0;
 }
Index: benchmark/ctxswitch/kos_fibre2.cpp
===================================================================
--- benchmark/ctxswitch/kos_fibre2.cpp	(revision 54db6ba8901dc5ecc6cefa64bfcdb950cec1a3b6)
+++ benchmark/ctxswitch/kos_fibre2.cpp	(revision dc33b5b1d92624f41baf064633127a4075fec592)
@@ -19,5 +19,5 @@
 		result
 	)
-	printf("%llu\n", result);
+	printf("%g\n", result);
 	done = true;
 	Fibre::yield();
Index: benchmark/ctxswitch/pthreads.c
===================================================================
--- benchmark/ctxswitch/pthreads.c	(revision 54db6ba8901dc5ecc6cefa64bfcdb950cec1a3b6)
+++ benchmark/ctxswitch/pthreads.c	(revision dc33b5b1d92624f41baf064633127a4075fec592)
@@ -14,4 +14,4 @@
 	)
 
-	printf("%llu\n", result);
+	printf("%g\n", result);
 }
Index: benchmark/ctxswitch/upp_cor.cc
===================================================================
--- benchmark/ctxswitch/upp_cor.cc	(revision 54db6ba8901dc5ecc6cefa64bfcdb950cec1a3b6)
+++ benchmark/ctxswitch/upp_cor.cc	(revision dc33b5b1d92624f41baf064633127a4075fec592)
@@ -30,4 +30,4 @@
 	)
 
-	printf("%llu\n", result);
+	printf("%g\n", result);
 }
Index: benchmark/ctxswitch/upp_thrd.cc
===================================================================
--- benchmark/ctxswitch/upp_thrd.cc	(revision 54db6ba8901dc5ecc6cefa64bfcdb950cec1a3b6)
+++ benchmark/ctxswitch/upp_thrd.cc	(revision dc33b5b1d92624f41baf064633127a4075fec592)
@@ -11,4 +11,4 @@
 	)
 
-	printf("%llu\n", result);
+	printf("%g\n", result);
 }
Index: benchmark/fetch_add.c
===================================================================
--- benchmark/fetch_add.c	(revision 54db6ba8901dc5ecc6cefa64bfcdb950cec1a3b6)
+++ benchmark/fetch_add.c	(revision dc33b5b1d92624f41baf064633127a4075fec592)
@@ -19,4 +19,4 @@
 	)
 
-	printf("%llu\n", result);
+	printf("%g\n", result);
 }
Index: benchmark/function.c
===================================================================
--- benchmark/function.c	(revision 54db6ba8901dc5ecc6cefa64bfcdb950cec1a3b6)
+++ benchmark/function.c	(revision dc33b5b1d92624f41baf064633127a4075fec592)
@@ -15,4 +15,4 @@
 	)
 
-	printf("%llu\n", result);
+	printf("%g\n", result);
 }
Index: benchmark/loop.c
===================================================================
--- benchmark/loop.c	(revision 54db6ba8901dc5ecc6cefa64bfcdb950cec1a3b6)
+++ benchmark/loop.c	(revision dc33b5b1d92624f41baf064633127a4075fec592)
@@ -11,4 +11,4 @@
 	)
 
-	printf("%llu\n", result);
+	printf("%g\n", result);
 }
Index: benchmark/mutex/cfa1.cfa
===================================================================
--- benchmark/mutex/cfa1.cfa	(revision 54db6ba8901dc5ecc6cefa64bfcdb950cec1a3b6)
+++ benchmark/mutex/cfa1.cfa	(revision dc33b5b1d92624f41baf064633127a4075fec592)
@@ -10,5 +10,5 @@
 	M m;
 	BENCH(
-		for (size_t i = 0; i < n; i++) {
+		for ( i; n ) {
 			call(m);
 		},
@@ -16,4 +16,4 @@
 	)
 
-	printf("%llu\n", result);
+	printf("%g\n", result);
 }
Index: benchmark/mutex/cfa2.cfa
===================================================================
--- benchmark/mutex/cfa2.cfa	(revision 54db6ba8901dc5ecc6cefa64bfcdb950cec1a3b6)
+++ benchmark/mutex/cfa2.cfa	(revision dc33b5b1d92624f41baf064633127a4075fec592)
@@ -10,5 +10,5 @@
 	M m1, m2;
 	BENCH(
-		for (size_t i = 0; i < n; i++) {
+		for ( i; n ) {
 			call(m1, m2);
 		},
@@ -16,4 +16,4 @@
 	)
 
-	printf("%llu\n", result);
+	printf("%g\n", result);
 }
Index: benchmark/mutex/cfa4.cfa
===================================================================
--- benchmark/mutex/cfa4.cfa	(revision 54db6ba8901dc5ecc6cefa64bfcdb950cec1a3b6)
+++ benchmark/mutex/cfa4.cfa	(revision dc33b5b1d92624f41baf064633127a4075fec592)
@@ -11,5 +11,5 @@
 	M m1, m2, m3, m4;
 	BENCH(
-		for (size_t i = 0; i < n; i++) {
+		for ( i; n ) {
 			call(m1, m2, m3, m4);
 		},
@@ -17,4 +17,4 @@
 	)
 
-	printf("%llu\n", result);
+	printf("%g\n", result);
 }
Index: benchmark/mutex/pthreads.c
===================================================================
--- benchmark/mutex/pthreads.c	(revision 54db6ba8901dc5ecc6cefa64bfcdb950cec1a3b6)
+++ benchmark/mutex/pthreads.c	(revision dc33b5b1d92624f41baf064633127a4075fec592)
@@ -19,4 +19,4 @@
 	)
 
-	printf("%llu\n", result);
+	printf("%g\n", result);
 }
Index: benchmark/mutex/upp.cc
===================================================================
--- benchmark/mutex/upp.cc	(revision 54db6ba8901dc5ecc6cefa64bfcdb950cec1a3b6)
+++ benchmark/mutex/upp.cc	(revision dc33b5b1d92624f41baf064633127a4075fec592)
@@ -17,4 +17,4 @@
 	)
 
-	printf("%llu\n", result);
+	printf("%g\n", result);
 }
Index: benchmark/schedext/cfa1.cfa
===================================================================
--- benchmark/schedext/cfa1.cfa	(revision 54db6ba8901dc5ecc6cefa64bfcdb950cec1a3b6)
+++ benchmark/schedext/cfa1.cfa	(revision dc33b5b1d92624f41baf064633127a4075fec592)
@@ -18,5 +18,5 @@
 	go = 1;
 	BENCH(
-		for (size_t i = 0; i < n; i++) {
+		for ( i; n ) {
 			waitfor(call, a1);
 		},
@@ -24,5 +24,5 @@
 	)
 
-	printf("%llu\n", result);
+	printf("%g\n", result);
 	go = 0;
 	return 0;
@@ -31,5 +31,5 @@
 thread T {};
 void ^?{}( T & mutex this ) {}
-void main( T & this ) {
+void main( T & ) {
 	while(go == 0) { yield(); }
 	while(go == 1) { call(m1); }
@@ -37,7 +37,5 @@
 }
 
-int main(int margc, char* margv[]) {
-	argc = margc;
-	argv = margv;
+int main(__attribute__((unused)) int argc, __attribute__((unused)) char* argv[]) {
 	T t;
 	return wait(m1);
Index: benchmark/schedext/cfa2.cfa
===================================================================
--- benchmark/schedext/cfa2.cfa	(revision 54db6ba8901dc5ecc6cefa64bfcdb950cec1a3b6)
+++ benchmark/schedext/cfa2.cfa	(revision dc33b5b1d92624f41baf064633127a4075fec592)
@@ -18,5 +18,5 @@
 	go = 1;
 	BENCH(
-		for (size_t i = 0; i < n; i++) {
+		for ( i; n ) {
 			waitfor(call, a1, a2);
 		},
@@ -24,5 +24,5 @@
 	)
 
-	printf("%llu\n", result);
+	printf("%g\n", result);
 	go = 0;
 	return 0;
@@ -31,5 +31,5 @@
 thread T {};
 void ^?{}( T & mutex this ) {}
-void main( T & this ) {
+void main( T & ) {
 	while(go == 0) { yield(); }
 	while(go == 1) { call(m1, m2); }
@@ -37,7 +37,5 @@
 }
 
-int main(int margc, char* margv[]) {
-	argc = margc;
-	argv = margv;
+int main(__attribute__((unused)) int argc, __attribute__((unused)) char* argv[]) {
 	T t;
 	return wait(m1, m2);
Index: benchmark/schedext/cfa4.cfa
===================================================================
--- benchmark/schedext/cfa4.cfa	(revision 54db6ba8901dc5ecc6cefa64bfcdb950cec1a3b6)
+++ benchmark/schedext/cfa4.cfa	(revision dc33b5b1d92624f41baf064633127a4075fec592)
@@ -18,5 +18,5 @@
 	go = 1;
 	BENCH(
-		for (size_t i = 0; i < n; i++) {
+		for ( i; n ) {
 			waitfor(call, a1, a2, a3, a4);
 		},
@@ -24,5 +24,5 @@
 	)
 
-	printf("%llu\n", result);
+	printf("%g\n", result);
 	go = 0;
 	return 0;
@@ -31,5 +31,5 @@
 thread T {};
 void ^?{}( T & mutex this ) {}
-void main( T & this ) {
+void main( T & ) {
 	while(go == 0) { yield(); }
 	while(go == 1) { call(m1, m2, m3, m4); }
@@ -37,7 +37,5 @@
 }
 
-int main(int margc, char* margv[]) {
-	argc = margc;
-	argv = margv;
+int main(__attribute__((unused)) int argc, __attribute__((unused)) char* argv[]) {
 	T t;
 	return wait(m1, m2, m3, m4);
Index: benchmark/schedext/upp.cc
===================================================================
--- benchmark/schedext/upp.cc	(revision 54db6ba8901dc5ecc6cefa64bfcdb950cec1a3b6)
+++ benchmark/schedext/upp.cc	(revision dc33b5b1d92624f41baf064633127a4075fec592)
@@ -20,5 +20,5 @@
 		)
 
-		printf("%llu\n", result);
+		printf("%g\n", result);
 		go = 0;
 		return 0;
Index: benchmark/schedint/cfa1.cfa
===================================================================
--- benchmark/schedint/cfa1.cfa	(revision 54db6ba8901dc5ecc6cefa64bfcdb950cec1a3b6)
+++ benchmark/schedint/cfa1.cfa	(revision dc33b5b1d92624f41baf064633127a4075fec592)
@@ -21,5 +21,5 @@
 	go = 1;
 	BENCH(
-		for (size_t i = 0; i < n; i++) {
+		for ( i; n ) {
 			wait(c);
 		},
@@ -27,5 +27,5 @@
 	)
 
-	printf("%llu\n", result);
+	printf("%g\n", result);
 	go = 0;
 	return 0;
@@ -33,6 +33,6 @@
 
 thread T {};
-void ^?{}( T & mutex this ) {}
-void main( T & this ) {
+void ^?{}( T & mutex ) {}
+void main( T & ) {
 	while(go == 0) { yield(); }
 	while(go == 1) { call(m1); }
@@ -40,7 +40,5 @@
 }
 
-int main(int margc, char* margv[]) {
-	argc = margc;
-	argv = margv;
+int main(__attribute__((unused)) int argc, __attribute__((unused)) char* argv[]) {
 	T t;
 	return wait(m1);
Index: benchmark/schedint/cfa2.cfa
===================================================================
--- benchmark/schedint/cfa2.cfa	(revision 54db6ba8901dc5ecc6cefa64bfcdb950cec1a3b6)
+++ benchmark/schedint/cfa2.cfa	(revision dc33b5b1d92624f41baf064633127a4075fec592)
@@ -21,5 +21,5 @@
 	go = 1;
 	BENCH(
-		for (size_t i = 0; i < n; i++) {
+		for ( i; n ) {
 			wait(c);
 		},
@@ -27,5 +27,5 @@
 	)
 
-	printf("%llu\n", result);
+	printf("%g\n", result);
 	go = 0;
 	return 0;
@@ -34,5 +34,5 @@
 thread T {};
 void ^?{}( T & mutex this ) {}
-void main( T & this ) {
+void main( T & ) {
 	while(go == 0) { yield(); }
 	while(go == 1) { call(m1, m2); }
@@ -40,7 +40,5 @@
 }
 
-int main(int margc, char* margv[]) {
-	argc = margc;
-	argv = margv;
+int main(__attribute__((unused)) int argc, __attribute__((unused)) char* argv[]) {
 	T t;
 	return wait(m1, m2);
Index: benchmark/schedint/cfa4.cfa
===================================================================
--- benchmark/schedint/cfa4.cfa	(revision 54db6ba8901dc5ecc6cefa64bfcdb950cec1a3b6)
+++ benchmark/schedint/cfa4.cfa	(revision dc33b5b1d92624f41baf064633127a4075fec592)
@@ -21,5 +21,5 @@
 	go = 1;
 	BENCH(
-		for (size_t i = 0; i < n; i++) {
+		for ( i; n ) {
 			wait(c);
 		},
@@ -27,5 +27,5 @@
 	)
 
-	printf("%llu\n", result);
+	printf("%g\n", result);
 	go = 0;
 	return 0;
@@ -34,5 +34,5 @@
 thread T {};
 void ^?{}( T & mutex this ) {}
-void main( T & this ) {
+void main( T & ) {
 	while(go == 0) { yield(); }
 	while(go == 1) { call(m1, m2, m3, m4); }
@@ -40,7 +40,5 @@
 }
 
-int main(int margc, char* margv[]) {
-	argc = margc;
-	argv = margv;
+int main(__attribute__((unused)) int argc, __attribute__((unused)) char* argv[]) {
 	T t;
 	return wait(m1, m2, m3, m4);
Index: benchmark/schedint/pthreads.c
===================================================================
--- benchmark/schedint/pthreads.c	(revision 54db6ba8901dc5ecc6cefa64bfcdb950cec1a3b6)
+++ benchmark/schedint/pthreads.c	(revision dc33b5b1d92624f41baf064633127a4075fec592)
@@ -27,5 +27,5 @@
 	)
 
-	printf("%llu\n", result);
+	printf("%g\n", result);
 	go = 0;
 	pthread_mutex_unlock(&m);
@@ -33,5 +33,5 @@
 }
 
-void* thread_main(void * a) {
+void* thread_main(__attribute__((unused)) void * arg ) {
 	while(go == 0) { sched_yield(); }
 	while(go == 1) { call(); }
@@ -39,7 +39,5 @@
 }
 
-int main(int margc, char* margv[]) {
-	argc = margc;
-	argv = margv;
+int main(__attribute__((unused)) int argc, __attribute__((unused)) char* argv[]) {
 	pthread_t thread;
 	if (pthread_create(&thread, NULL, thread_main, NULL) < 0) {
Index: benchmark/schedint/upp.cc
===================================================================
--- benchmark/schedint/upp.cc	(revision 54db6ba8901dc5ecc6cefa64bfcdb950cec1a3b6)
+++ benchmark/schedint/upp.cc	(revision dc33b5b1d92624f41baf064633127a4075fec592)
@@ -23,5 +23,5 @@
 		)
 
-		printf("%llu\n", result);
+		printf("%g\n", result);
 		go = 0;
 		return 0;
@@ -39,7 +39,5 @@
 };
 
-int main(int margc, char* margv[]) {
-	argc = margc;
-	argv = margv;
+int main(__attribute__((unused)) int argc, __attribute__((unused)) char* argv[]) {
 	T t;
 	return m.wait();
Index: benchmark/tls-fetch_add.c
===================================================================
--- benchmark/tls-fetch_add.c	(revision 54db6ba8901dc5ecc6cefa64bfcdb950cec1a3b6)
+++ benchmark/tls-fetch_add.c	(revision dc33b5b1d92624f41baf064633127a4075fec592)
@@ -24,4 +24,4 @@
 	)
 
-	printf("%llu\n", result);
+	printf("%g\n", result);
 }
