Index: doc/papers/concurrency/Paper.tex
===================================================================
--- doc/papers/concurrency/Paper.tex	(revision 6ca0daba991560404b2298f9e684ea9ba81732af)
+++ doc/papers/concurrency/Paper.tex	(revision 55843425802a531c539405b8efa1c664fcc160b2)
@@ -2999,6 +2999,4 @@
 all long-experiment results are statistically equivalent, \ie median/average/standard-deviation correlate with the short-experiment results, indicating the short experiments reached a steady state.
 All omitted tests for other languages are functionally identical to the \CFA tests and available online~\cite{CforallConcurrentBenchmarks}.
-% tar --exclude-ignore=exclude -cvhf benchmark.tar benchmark
-% cp -p benchmark.tar /u/cforall/public_html/doc/concurrent_benchmark.tar
 
 \paragraph{Creation}
Index: doc/papers/concurrency/mail2
===================================================================
--- doc/papers/concurrency/mail2	(revision 6ca0daba991560404b2298f9e684ea9ba81732af)
+++ doc/papers/concurrency/mail2	(revision 55843425802a531c539405b8efa1c664fcc160b2)
@@ -1050,2 +1050,26 @@
 
 
+
+Date: Tue, 6 Oct 2020 15:29:41 +0000
+From: Mayank Roy Chowdhury <onbehalfof@manuscriptcentral.com>
+Reply-To: speoffice@wiley.com
+To: tdelisle@uwaterloo.ca, pabuhr@uwaterloo.ca
+Subject: SPE-19-0219.R3 successfully submitted
+
+06-Oct-2020
+
+Dear Dr Buhr,
+
+Your manuscript entitled "Advanced Control-flow and Concurrency in Cforall" has been successfully submitted online and is presently being given full consideration for publication in Software: Practice and Experience.
+
+Your manuscript number is SPE-19-0219.R3.  Please mention this number in all future correspondence regarding this submission.
+
+You can view the status of your manuscript at any time by checking your Author Center after logging into https://mc.manuscriptcentral.com/spe.  If you have difficulty using this site, please click the 'Get Help Now' link at the top right corner of the site.
+
+
+Thank you for submitting your manuscript to Software: Practice and Experience.
+
+Sincerely,
+
+Software: Practice and Experience Editorial Office
+
Index: libcfa/src/concurrency/CtxSwitch-i386.S
===================================================================
--- libcfa/src/concurrency/CtxSwitch-i386.S	(revision 6ca0daba991560404b2298f9e684ea9ba81732af)
+++ libcfa/src/concurrency/CtxSwitch-i386.S	(revision 55843425802a531c539405b8efa1c664fcc160b2)
@@ -10,6 +10,6 @@
 // Created On       : Tue Dec 6 12:27:26 2016
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Sun Aug 16 08:46:22 2020
-// Update Count     : 4
+// Last Modified On : Sun Sep  6 18:23:37 2020
+// Update Count     : 5
 //
 
@@ -35,5 +35,5 @@
 
 	// Copy the "from" context argument from the stack to register eax
-	// Return address is at 0(%esp), with parameters following
+	// Return address is at 0(%esp), with parameters following.
 
 	movl 4(%esp),%eax
@@ -50,7 +50,7 @@
 	movl %ebp,FP_OFFSET(%eax)
 
-	// Copy the "to" context argument from the stack to register eax
-	// Having pushed three words (= 12 bytes) on the stack, the
-	// argument is now at 8 + 12 = 20(%esp)
+	// Copy the "to" context argument from the stack to register eax. Having
+	// pushed 3 words (= 12 bytes) on the stack, the argument is now at
+	// 8 + 12 = 20(%esp).
 
 	movl 20(%esp),%eax
Index: src/Parser/lex.ll
===================================================================
--- src/Parser/lex.ll	(revision 6ca0daba991560404b2298f9e684ea9ba81732af)
+++ src/Parser/lex.ll	(revision 55843425802a531c539405b8efa1c664fcc160b2)
@@ -10,6 +10,6 @@
  * Created On       : Sat Sep 22 08:58:10 2001
  * Last Modified By : Peter A. Buhr
- * Last Modified On : Sat Feb 15 11:05:50 2020
- * Update Count     : 737
+ * Last Modified On : Tue Oct  6 18:15:41 2020
+ * Update Count     : 743
  */
 
@@ -62,5 +62,5 @@
 #define IDENTIFIER_RETURN()	RETURN_VAL( typedefTable.isKind( yytext ) )
 
-#ifdef HAVE_KEYWORDS_FLOATXX								// GCC >= 7 => keyword, otherwise typedef
+#ifdef HAVE_KEYWORDS_FLOATXX							// GCC >= 7 => keyword, otherwise typedef
 #define FLOATXX(v) KEYWORD_RETURN(v);
 #else
@@ -292,5 +292,5 @@
 __restrict__	{ KEYWORD_RETURN(RESTRICT); }			// GCC
 return			{ KEYWORD_RETURN(RETURN); }
-	/* resume			{ KEYWORD_RETURN(RESUME); }				// CFA */
+ /* resume			{ KEYWORD_RETURN(RESUME); }				// CFA */
 short			{ KEYWORD_RETURN(SHORT); }
 signed			{ KEYWORD_RETURN(SIGNED); }
Index: src/Parser/parser.yy
===================================================================
--- src/Parser/parser.yy	(revision 6ca0daba991560404b2298f9e684ea9ba81732af)
+++ src/Parser/parser.yy	(revision 55843425802a531c539405b8efa1c664fcc160b2)
@@ -10,6 +10,6 @@
 // Created On       : Sat Sep  1 20:22:55 2001
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Thu May 28 12:11:45 2020
-// Update Count     : 4500
+// Last Modified On : Tue Oct  6 18:24:18 2020
+// Update Count     : 4610
 //
 
@@ -278,6 +278,6 @@
 %token OTYPE FTYPE DTYPE TTYPE TRAIT					// CFA
 %token SIZEOF OFFSETOF
-// %token RESUME									// CFA
-%token SUSPEND									// CFA
+// %token RESUME											// CFA
+%token SUSPEND											// CFA
 %token ATTRIBUTE EXTENSION								// GCC
 %token IF ELSE SWITCH CASE DEFAULT DO WHILE FOR BREAK CONTINUE GOTO RETURN
@@ -329,5 +329,5 @@
 %type<en> conditional_expression		constant_expression			assignment_expression		assignment_expression_opt
 %type<en> comma_expression				comma_expression_opt
-%type<en> argument_expression_list_opt		argument_expression			default_initialize_opt
+%type<en> argument_expression_list_opt	argument_expression			default_initialize_opt
 %type<ifctl> if_control_expression
 %type<fctl> for_control_expression		for_control_expression_list
@@ -370,5 +370,5 @@
 %type<decl> assertion assertion_list assertion_list_opt
 
-%type<en>   bit_subrange_size_opt bit_subrange_size
+%type<en> bit_subrange_size_opt bit_subrange_size
 
 %type<decl> basic_declaration_specifier basic_type_name basic_type_specifier direct_type indirect_type
@@ -793,5 +793,4 @@
 	| '(' aggregate_control '&' ')' cast_expression		// CFA
 		{ $$ = new ExpressionNode( build_keyword_cast( $2, $5 ) ); }
-		// VIRTUAL cannot be opt because of look ahead issues
 	| '(' VIRTUAL ')' cast_expression					// CFA
 		{ $$ = new ExpressionNode( new VirtualCastExpr( maybeMoveBuild< Expression >( $4 ), maybeMoveBuildType( nullptr ) ) ); }
@@ -920,9 +919,9 @@
 	| unary_expression assignment_operator assignment_expression
 		{
-			if ( $2 == OperKinds::AtAssn ) {
-				SemanticError( yylloc, "C @= assignment is currently unimplemented." ); $$ = nullptr;
-			} else {
+//			if ( $2 == OperKinds::AtAssn ) {
+//				SemanticError( yylloc, "C @= assignment is currently unimplemented." ); $$ = nullptr;
+//			} else {
 				$$ = new ExpressionNode( build_binary_val( $2, $1, $3 ) );
-			} // if
+//			} // if
 		}
 	| unary_expression '=' '{' initializer_list_opt comma_opt '}'
@@ -1676,38 +1675,14 @@
 
 typedef_expression:
-		// GCC, naming expression type: typedef name = exp; gives a name to the type of an expression
+		// deprecated GCC, naming expression type: typedef name = exp; gives a name to the type of an expression
 	TYPEDEF identifier '=' assignment_expression
 		{
-			// $$ = DeclarationNode::newName( 0 );			// unimplemented
-			SemanticError( yylloc, "Typedef expression is currently unimplemented." ); $$ = nullptr;
+			SemanticError( yylloc, "Typedef expression is deprecated, use typeof(...) instead." ); $$ = nullptr;
 		}
 	| typedef_expression pop ',' push identifier '=' assignment_expression
 		{
-			// $$ = DeclarationNode::newName( 0 );			// unimplemented
-			SemanticError( yylloc, "Typedef expression is currently unimplemented." ); $$ = nullptr;
-		}
-	;
-
-//c_declaration:
-//	declaring_list pop ';'
-//	| typedef_declaration pop ';'
-//	| typedef_expression pop ';'						// GCC, naming expression type
-//	| sue_declaration_specifier pop ';'
-//	;
-//
-//declaring_list:
-//		// A semantic check is required to ensure asm_name only appears on declarations with implicit or explicit static
-//		// storage-class
-//	 declarator asm_name_opt initializer_opt
-//		{
-//			typedefTable.addToEnclosingScope( IDENTIFIER );
-//			$$ = ( $2->addType( $1 ))->addAsmName( $3 )->addInitializer( $4 );
-//		}
-//	| declaring_list ',' attribute_list_opt declarator asm_name_opt initializer_opt
-//		{
-//			typedefTable.addToEnclosingScope( IDENTIFIER );
-//			$$ = $1->appendList( $1->cloneBaseType( $4->addAsmName( $5 )->addInitializer( $6 ) ) );
-//		}
-//	;
+			SemanticError( yylloc, "Typedef expression is deprecated, use typeof(...) instead." ); $$ = nullptr;
+		}
+	;
 
 c_declaration:
@@ -1715,5 +1690,5 @@
 		{ $$ = distAttr( $1, $2 ); }
 	| typedef_declaration
-	| typedef_expression								// GCC, naming expression type
+	| typedef_expression								// deprecated GCC, naming expression type
 	| sue_declaration_specifier
 	;
@@ -2094,5 +2069,6 @@
 		{ yyy = true; $$ = AggregateDecl::Union; }
 	| EXCEPTION											// CFA
-		{ yyy = true; $$ = AggregateDecl::Exception; }
+		// { yyy = true; $$ = AggregateDecl::Exception; }
+		{ SemanticError( yylloc, "exception aggregate is currently unimplemented." ); $$ = AggregateDecl::NoAggregate; }
 	;
 
