Changes in / [c532847:e7d6968]
- Files:
-
- 5 edited
-
doc/papers/concurrency/mail2 (modified) (2 diffs)
-
libcfa/src/concurrency/coroutine.cfa (modified) (2 diffs)
-
src/Parser/ParseNode.h (modified) (6 diffs)
-
src/Parser/StatementNode.cc (modified) (2 diffs)
-
src/Parser/parser.yy (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
doc/papers/concurrency/mail2
rc532847 re7d6968 1 2 1 Date: Wed, 26 Jun 2019 20:12:38 +0000 3 2 From: Aaron Thomas <onbehalfof@manuscriptcentral.com> … … 1075 1074 Software: Practice and Experience Editorial Office 1076 1075 1077 1078 1079 Date: Thu, 15 Oct 2020 13:48:52 +00001080 From: Richard Jones <onbehalfof@manuscriptcentral.com>1081 Reply-To: R.E.Jones@kent.ac.uk1082 To: tdelisle@uwaterloo.ca, pabuhr@uwaterloo.ca1083 Subject: Software: Practice and Experience - Decision on Manuscript ID1084 SPE-19-0219.R31085 1086 15-Oct-20201087 1088 Dear Dr Buhr,1089 1090 It is a pleasure to accept your manuscript entitled "Advanced Control-flow and Concurrency in Cforall" in its current form for publication in Software: Practice and Experience.1091 1092 Please note although the manuscript is accepted the files will now be checked to ensure that everything is ready for publication, and you may be contacted if final versions of files for publication are required.1093 1094 Your article cannot be published until the publisher has received the appropriate signed license agreement. Within the next few days the corresponding author will receive an email from Wiley's Author Services system which will ask them to log in and will present them with the appropriate license for completion.1095 1096 Thank you for your fine contribution.1097 1098 Sincerely,1099 Richard1100 1101 Prof. Richard Jones1102 Editor, Software: Practice and Experience1103 R.E.Jones@kent.ac.uk1104 1105 P.S. - You can help your research get the attention it deserves! Check out Wiley's free Promotion Guide for best-practice recommendations for promoting your work at www.wileyauthors.com/eeo/guide. And learn more about Wiley Editing Services which offers professional video, design, and writing services to create shareable video abstracts, infographics, conference posters, lay summaries, and research news stories for your research at www.wileyauthors.com/eeo/promotion.1106 1107 This journal accepts artwork submissions for Cover Images. This is an optional service you can use to help increase article exposure and showcase your research. For more information, including artwork guidelines, pricing, and submission details, please visit the Journal Cover Image page at www.wileyauthors.com/eeo/covers. If you want help creating an image, Wiley Editing Services offers a professional cover image design service that creates eye-catching images, ready to be showcased on the journal cover at www.wileyauthors.com/eeo/design.1108 1109 1110 1111 Date: Fri, 16 Oct 2020 12:44:42 +00001112 From: Mayank Roy Chowdhury <onbehalfof@manuscriptcentral.com>1113 Reply-To: speoffice@wiley.com1114 To: pabuhr@uwaterloo.ca1115 Subject: Manuscript Accepted - Please submit final updates to SPE-19-0219.R3 [email ref: ENR-AW-1-c]1116 1117 16-Oct-20201118 1119 Dear Dr. Buhr,1120 1121 Manuscript id: SPE-19-0219.R31122 Manuscript title: Advanced Control-flow and Concurrency in Cforall1123 1124 Although your manuscript has been accepted for publication it is now being returned to your author center for you to review and make any final adjustments or corrections prior to production and publication.1125 1126 Any special instructions will be listed below:1127 1) Funding Information added in ScholorOne but missing in main document, Kindly add the Funding information in main document.1128 2) Please provide the clean version of the manuscript without any highlights or tracked changes.1129 3) Kindly check and make sure citations for all figures and Tables are present in the main document1130 1131 Please now log back into your Scholar One Author Center and click on the "Manuscripts Accepted for First Look" queue. In order to update the submission, click on the "submit updated manuscript" link in the "Actions" column and follow the steps as you would during a manuscript submission process.1132 1133 On the File Upload screen please upload the FINAL versions of all the files, including print quality image files. For information about image quality requirements, please refer to the guidelines at https://authorservices.wiley.com/asset/photos/electronic_artwork_guidelines.pdf.1134 1135 Instructions for uploading replacement files:1136 1. On the "File Upload" step, click on the "edit" button for the file you wish to replace.1137 2. In the "Upload a later version" section, browse to locate the replacement final version.1138 3. Add any comments concerning the replacement (e.g. "high res image").1139 4. Select whether the new file is a minor or major version (we suggest you select minor version)1140 5. Click upload.1141 6. Click 'Submit' when all the files have been uploaded and you will receive an automated email to say that submission is successful.1142 1143 Please submit your updates within the next 7 days to ensure there are no unnecessary delays in production.1144 1145 Sincerely,1146 Software: Practice and Experience Editorial Office1147 1148 1149 1150 From: SPE Office <speoffice@wiley.com>1151 To: "Peter A. Buhr" <pabuhr@uwaterloo.ca>1152 Subject: Re: Manuscript Accepted - Please submit final updates to SPE-19-0219.R3 [email ref: ENR-AW-1-c]1153 Date: Mon, 19 Oct 2020 17:04:24 +00001154 1155 Dear Dr. Buhr,1156 1157 Thank you very much for contacting the Editorial Office.1158 1159 I would like to let you know that the files has been found in order and moved to production.1160 1161 Plesae let me know for further assistance in this regard.1162 1163 Best Regards1164 1165 Mayank Roy Chowdhury1166 Editorial Assistant1167 Software practice and Experience1168 ________________________________1169 From: Peter A. Buhr <pabuhr@uwaterloo.ca>1170 Sent: Sunday, October 18, 2020 2:00 PM1171 To: SPE Office <speoffice@wiley.com>1172 Cc: Thierry Delisle <tdelisle@uwaterloo.ca>1173 Subject: Re: Manuscript Accepted - Please submit final updates to SPE-19-0219.R3 [email ref: ENR-AW-1-c]1174 1175 This is an external email.1176 1177 Mayank Roy Chowdhury <onbehalfof@manuscriptcentral.com> writes:1178 1179 Instructions for uploading replacement files:1180 1. On the "File Upload" step, click on the "edit" button for the file you wish to replace.1181 2. In the "Upload a later version" section, browse to locate the replacement final version.1182 3. Add any comments concerning the replacement (e.g. "high res image").1183 4. Select whether the new file is a minor or major version (we suggest you select minor version)1184 5. Click upload.1185 6. Click 'Submit' when all the files have been uploaded and you will receive an automated email to say that submission is successful.1186 1187 There was no "edit" button on the "File Upload" page, so I just upload the1188 final version of the PDF and source files using the mechanism on the "File1189 Upload" page and submitted that.1190 1191 1192 1193 Date: Tue, 20 Oct 2020 13:28:37 +05301194 To: "Dr. Peter Buhr" <pabuhr@uwaterloo.ca>1195 From: jpcms@spi-global.com1196 Subject: Information: Production Editor Contact Software:Practice and Experience | Advanced Control-flow and Concurrency in C A1197 1198 Dear Dr. Peter Buhr,1199 1200 We are in the process of preparing "Advanced Control-flow and Concurrency in C A" for publication. Your production editor, Joel Pacaanas, will support you and your article throughout the process.1201 1202 Please get in touch with your Production Editor at SPEproofs@wiley.com;EllaMae.Navor@spi-global.com if you have any questions.1203 1204 Sincerely,1205 Booking-in Team,1206 On behalf of Wiley1207 1208 Article ID: SPE_29251209 Article DOI: 10.1002/SPE.29251210 1211 1212 1213 Date: Tue, 20 Oct 2020 10:33:04 +00001214 From: <cs-author@wiley.com>1215 To: <pabuhr@uwaterloo.ca>1216 Subject: In Production: Your article accepted in Software: Practice and Experience1217 1218 Dear Peter Buhr,1219 1220 Article ID: SPE29251221 Article DOI: 10.1002/spe.29251222 Internal Article ID: 169222131223 Article: Advanced Control-flow and Concurrency in C A1224 Journal: Software: Practice and Experience1225 1226 Congratulations on the acceptance of your article for publication in Software: Practice and Experience.1227 1228 Your article has been received and the production process is now underway. We look forward to working with you and publishing your article. Using Wiley Author Services, you can track your article's progress.1229 1230 Please click below to login - if you are using a different email address than this one, you will need to manually assign this article to your Dashboard (see https://hub.wiley.com/docs/support/assigning-a-missing-article-to-my-dashboard-DOC-11871?utm_source=new%20user%20invitation&utm_medium=email How do I assign a missing article to My Dashboard?):1231 1232 https://authorservices.wiley.com/index.html#login?campaign=email_invitation-new1233 1234 If applicable, a list of available actions will appear below - check out your Author Services Dashboard for all actions related to your articles.1235 1236 Sign your license agreement (REQUIRED) -- you will receive an email when this task is ready on your dashboard. Track your article's progress to publicationAccess your published articleInvite colleagues to view your published article1237 If you need any assistance, please click http://www.wileyauthors.com/help?utm_source=new%20user%20invitation&utm_medium=email here to view our Help section.1238 1239 Sincerely,1240 Wiley Author Services1241 1242 P.S. - Some journals accept artwork submissions for Cover Images. This is an optional service you can use to help increase article exposure and showcase your research. Pricing and placement options vary by journal. For more information, including artwork guidelines, pricing, and submission details, please visit the https://authorservices.wiley.com/author-resources/Journal-Authors/Promotion/journal-cover-image.html?utm_source=as&utm_medium=email&utm_term=invitation_msg&utm_content=covers&utm_campaign=2019feb?campaign=email_invitation-new" target=_blank">Journal Cover Image page. If you want help creating an image, Wiley Editing Services offers a professional https://wileyeditingservices.com/en/article-promotion/cover-image-design.html?utm_source=as&utm_medium=email&utm_term=ie&utm_content=cid&utm_campaign=prodops" target=_blank">Cover Image Design service that creates eye-catching images, ready to be showcased on the journal cover.1243 1244 1245 1246 Date: Thu, 22 Oct 2020 20:21:49 +00001247 From: <cs-author@wiley.com>1248 To: <pabuhr@uwaterloo.ca>1249 Subject: You have actions to complete in Author Services1250 1251 Dear Peter Buhr,1252 1253 Article ID: SPE29251254 Article DOI: 10.1002/spe.29251255 Internal Article ID: 169222131256 Article: Advanced Control-flow and Concurrency in C A1257 Journal: Software: Practice and Experience1258 1259 For the above article, you have the following open tasks:1260 1261 Sign your license agreement in order to publish your article. Simply click the Sign License button on your https://authorservices.wiley.com?campaign=email_license-notice1">Wiley Author Services Dashboard.1262 1263 Need any help? Please visit our https://authorsupport.wiley.com/s/">Author Support Center.1264 1265 Sincerely,1266 Wiley Author Services1267 1268 1269 1270 Date: Thu, 22 Oct 2020 23:13:07 +00001271 From: <cs-author@wiley.com>1272 To: <pabuhr@uwaterloo.ca>1273 Subject: License was successfully submitted! Thank you!1274 1275 Dear Peter Buhr,1276 1277 Article ID: SPE29251278 Article DOI: 10.1002/spe.29251279 Internal Article ID: 169222131280 Article: Advanced Control-flow and Concurrency in C A1281 Journal: Software: Practice and Experience1282 1283 You've successfully completed license signing for your article - thank you! You can view your signed agreement at any time by visiting your https://authorservices.wiley.com?campaign=email_license-confirm">Wiley Author Services Dashboard.1284 1285 Sincerely,1286 1287 Wiley Author Services -
libcfa/src/concurrency/coroutine.cfa
rc532847 re7d6968 10 10 // Created On : Mon Nov 28 12:27:26 2016 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Oct 23 23:05:24202013 // Update Count : 2 212 // Last Modified On : Tue May 26 22:06:09 2020 13 // Update Count : 21 14 14 // 15 15 … … 217 217 size = libFloor(create_size - stack_data_size - diff, libAlign()); 218 218 } // if 219 assertf( size >= MinStackSize, "Stack size %zd provides less than minimum of % zd bytes for a stack.", size, MinStackSize );219 assertf( size >= MinStackSize, "Stack size %zd provides less than minimum of %d bytes for a stack.", size, MinStackSize ); 220 220 221 221 this->storage = (__stack_t *)((intptr_t)storage + size); -
src/Parser/ParseNode.h
rc532847 re7d6968 10 10 // Created On : Sat May 16 13:28:16 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Oct 24 03:53:54202013 // Update Count : 89 512 // Last Modified On : Mon Jul 6 09:33:32 2020 13 // Update Count : 892 14 14 // 15 15 … … 205 205 struct TypeData; 206 206 207 struct DeclarationNode : public ParseNode { 207 class DeclarationNode : public ParseNode { 208 public: 208 209 // These enumerations must harmonize with their names in DeclarationNode.cc. 209 210 enum BasicType { Void, Bool, Char, Int, Int128, … … 303 304 bool get_inLine() const { return inLine; } 304 305 DeclarationNode * set_inLine( bool inL ) { inLine = inL; return this; } 305 306 public: 306 307 DeclarationNode * get_last() { return (DeclarationNode *)ParseNode::get_last(); } 307 308 … … 359 360 //############################################################################## 360 361 361 struct StatementNode final : public ParseNode { 362 class StatementNode final : public ParseNode { 363 public: 362 364 StatementNode() { stmt = nullptr; } 363 365 StatementNode( Statement * stmt ) : stmt( stmt ) {} … … 380 382 os << stmt.get() << std::endl; 381 383 } 382 384 private: 383 385 std::unique_ptr<Statement> stmt; 384 386 }; // StatementNode … … 424 426 Statement * build_finally( StatementNode * stmt ); 425 427 Statement * build_compound( StatementNode * first ); 426 StatementNode * maybe_build_compound( StatementNode * first );427 428 Statement * build_asm( bool voltile, Expression * instruction, ExpressionNode * output = nullptr, ExpressionNode * input = nullptr, ExpressionNode * clobber = nullptr, LabelNode * gotolabels = nullptr ); 428 429 Statement * build_directive( std::string * directive ); -
src/Parser/StatementNode.cc
rc532847 re7d6968 10 10 // Created On : Sat May 16 14:59:41 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Oct 24 04:20:55 202013 // Update Count : 3 8312 // Last Modified On : Sat Aug 4 09:39:25 2018 13 // Update Count : 363 14 14 // 15 15 … … 345 345 } // build_compound 346 346 347 // A single statement in a control structure is always converted to a compound statement so subsequent generated code348 // can be placed within this compound statement. Otherwise, code generation has to constantly check for a single349 // statement and wrap it into a compound statement to insert additional code. Hence, all control structures have a350 // conical form for code generation.351 StatementNode * maybe_build_compound( StatementNode * first ) {352 // Optimization: if the control-structure statement is a compound statement, do not wrap it.353 // e.g., if (...) {...} do not wrap the existing compound statement.354 if ( ! dynamic_cast<CompoundStmt *>( first->stmt.get() ) ) { // unique_ptr355 CompoundStmt * cs = new CompoundStmt();356 buildMoveList( first, cs->get_kids() );357 return new StatementNode( cs );358 } // if359 return first;360 } // maybe_build_compound361 362 347 Statement * build_asm( bool voltile, Expression * instruction, ExpressionNode * output, ExpressionNode * input, ExpressionNode * clobber, LabelNode * gotolabels ) { 363 348 std::list< Expression * > out, in; -
src/Parser/parser.yy
rc532847 re7d6968 10 10 // Created On : Sat Sep 1 20:22:55 2001 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Oct 24 08:21:14202013 // Update Count : 46 2412 // Last Modified On : Fri Oct 9 18:09:09 2020 13 // Update Count : 4614 14 14 // 15 15 … … 1080 1080 IF '(' if_control_expression ')' statement %prec THEN 1081 1081 // explicitly deal with the shift/reduce conflict on if/else 1082 { $$ = new StatementNode( build_if( $3, maybe_build_compound( $5 ), nullptr ) ); }1082 { $$ = new StatementNode( build_if( $3, $5, nullptr ) ); } 1083 1083 | IF '(' if_control_expression ')' statement ELSE statement 1084 { $$ = new StatementNode( build_if( $3, maybe_build_compound( $5 ), maybe_build_compound( $7 )) ); }1084 { $$ = new StatementNode( build_if( $3, $5, $7 ) ); } 1085 1085 ; 1086 1086 … … 1130 1130 1131 1131 case_clause: // CFA 1132 case_label_list statement { $$ = $1->append_last_case( maybe_build_compound( $2) ); }1132 case_label_list statement { $$ = $1->append_last_case( new StatementNode( build_compound( $2 ) ) ); } 1133 1133 ; 1134 1134 … … 1148 1148 iteration_statement: 1149 1149 WHILE '(' push if_control_expression ')' statement pop 1150 { $$ = new StatementNode( build_while( $4, maybe_build_compound( $6 )) ); }1150 { $$ = new StatementNode( build_while( $4, $6 ) ); } 1151 1151 | WHILE '(' ')' statement // CFA => while ( 1 ) 1152 { $$ = new StatementNode( build_while( new IfCtrl( nullptr, new ExpressionNode( build_constantInteger( *new string( "1" ) ) ) ), maybe_build_compound( $4 )) ); }1152 { $$ = new StatementNode( build_while( new IfCtrl( nullptr, new ExpressionNode( build_constantInteger( *new string( "1" ) ) ) ), $4 ) ); } 1153 1153 | DO statement WHILE '(' comma_expression ')' ';' 1154 { $$ = new StatementNode( build_do_while( $5, maybe_build_compound( $2 )) ); }1154 { $$ = new StatementNode( build_do_while( $5, $2 ) ); } 1155 1155 | DO statement WHILE '(' ')' ';' // CFA => do while( 1 ) 1156 { $$ = new StatementNode( build_do_while( new ExpressionNode( build_constantInteger( *new string( "1" ) ) ), maybe_build_compound( $2 )) ); }1156 { $$ = new StatementNode( build_do_while( new ExpressionNode( build_constantInteger( *new string( "1" ) ) ), $2 ) ); } 1157 1157 | FOR '(' push for_control_expression_list ')' statement pop 1158 { $$ = new StatementNode( build_for( $4, maybe_build_compound( $6 )) ); }1158 { $$ = new StatementNode( build_for( $4, $6 ) ); } 1159 1159 | FOR '(' ')' statement // CFA => for ( ;; ) 1160 { $$ = new StatementNode( build_for( new ForCtrl( (ExpressionNode * )nullptr, (ExpressionNode * )nullptr, (ExpressionNode * )nullptr ), maybe_build_compound( $4 )) ); }1160 { $$ = new StatementNode( build_for( new ForCtrl( (ExpressionNode * )nullptr, (ExpressionNode * )nullptr, (ExpressionNode * )nullptr ), $4 ) ); } 1161 1161 ; 1162 1162 … … 1341 1341 waitfor_clause: 1342 1342 when_clause_opt waitfor statement %prec THEN 1343 { $$ = build_waitfor( $2, maybe_build_compound( $3 ), $1 ); }1343 { $$ = build_waitfor( $2, $3, $1 ); } 1344 1344 | when_clause_opt waitfor statement WOR waitfor_clause 1345 { $$ = build_waitfor( $2, maybe_build_compound( $3 ), $1, $5 ); }1345 { $$ = build_waitfor( $2, $3, $1, $5 ); } 1346 1346 | when_clause_opt timeout statement %prec THEN 1347 { $$ = build_waitfor_timeout( $2, maybe_build_compound( $3 ), $1 ); }1347 { $$ = build_waitfor_timeout( $2, $3, $1 ); } 1348 1348 | when_clause_opt ELSE statement 1349 { $$ = build_waitfor_timeout( nullptr, maybe_build_compound( $3 ), $1 ); }1349 { $$ = build_waitfor_timeout( nullptr, $3, $1 ); } 1350 1350 // "else" must be conditional after timeout or timeout is never triggered (i.e., it is meaningless) 1351 1351 | when_clause_opt timeout statement WOR ELSE statement 1352 1352 { SemanticError( yylloc, "else clause must be conditional after timeout or timeout never triggered." ); $$ = nullptr; } 1353 1353 | when_clause_opt timeout statement WOR when_clause ELSE statement 1354 { $$ = build_waitfor_timeout( $2, maybe_build_compound( $3 ), $1, maybe_build_compound( $7 ), $5 ); }1354 { $$ = build_waitfor_timeout( $2, $3, $1, $7, $5 ); } 1355 1355 ; 1356 1356
Note:
See TracChangeset
for help on using the changeset viewer.