Changes in / [fcc57ba:e523b07]
- Files:
-
- 3 edited
-
doc/bibliography/pl.bib (modified) (34 diffs)
-
src/CodeTools/ResolvProtoDump.cc (modified) (7 diffs)
-
tools/cfa.nanorc (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
doc/bibliography/pl.bib
rfcc57ba re523b07 701 701 % B 702 702 703 @article{Michael13,704 contributer = {pabuhr@plg},705 author = {Maged M. Michael},706 title = {The Balancing Act of Choosing Nonblocking Features},707 journal = cacm,708 volume = 56,709 number = 9,710 month = sep,711 year = 2013,712 pages = {46--53},713 publisher = {ACM},714 address = {New York, NY, USA},715 }716 717 703 @incollection{beta:old, 718 704 keywords = {beta, patterns, virtual types}, … … 922 908 923 909 @misc{Cforall, 924 contributer = {pabuhr@plg},925 910 key = {Cforall}, 926 author = {{\textsf{C}{$\mathbf{\forall}$} Features}},927 howpublished= {\ href{https://plg.uwaterloo.ca/~cforall/features}{https://\-plg.uwaterloo.ca/\-~cforall/\-features}},911 title = {\textsf{C}{$\mathbf{\forall}$} Features}, 912 howpublished= {\url{https://plg.uwaterloo.ca/~cforall/features}}, 928 913 optnote = {Accessed: 2018-01-01}, 929 914 } … … 941 926 942 927 @misc{CFAStackEvaluation, 943 contributer = {a3moss@plg},944 928 author = {Aaron Moss}, 945 929 title = {\textsf{C}$\mathbf{\forall}$ Stack Evaluation Programs}, … … 950 934 951 935 @article{Moss18, 952 keywords = { type systems, tuples, Cforall},936 keywords = {concurrency, C++}, 953 937 contributer = {pabuhr@plg}, 954 938 author = {Aaron Moss and Robert Schluntz and Peter A. Buhr}, … … 957 941 month = aug, 958 942 journal = spe, 959 note = { \href{http://dx.doi.org/10.1002/spe.2624}{http://\-dx.doi.org/\-10.1002/\-spe.2624}},943 note = {http://dx.doi.org/10.1002/spe.2624}, 960 944 } 961 945 … … 1433 1417 } 1434 1418 1435 @misc{NThreadCode13,1436 keywords = {N-thread software-solution mutual exclusion},1437 contributer = {pabuhr@plg},1438 key = {concurrent locking},1439 author = {Peter A. Buhr and David Dice and Wim H. Hesselink},1440 title = {concurrent-locking},1441 howpublished= {\href{https://github.com/pabuhr/concurrent-locking}{https://\-github.com/\-pabuhr/\-concurrent-locking}},1442 optnote = {[Accessed April 2017]},1443 }1444 1445 1419 @incollection{Reppy93, 1446 1420 keywords = {ML, concurrency, continuation passing}, … … 1516 1490 month = dec, 1517 1491 year = 2017, 1518 note = {\href{http s://plg.uwaterloo.ca/~usystem/pub/uSystem/uC++.pdf}{https://\-plg.uwaterloo.ca/\-~usystem/\-pub/\-uSystem/uC++.pdf}},1492 note = {\href{http://plg.uwaterloo.ca/~usystem/pub/uSystem/u++-7.0.0.sh}{http://\-plg.\-uwaterloo.\-ca/\-$\sim$usystem/\-pub/\-uSystem/\-u++-7.0.0.sh}}, 1519 1493 } 1520 1494 … … 1583 1557 } 1584 1558 1585 @mastersthesis{Sun15,1586 author = {Sun, Xianda},1587 title = {Concurrent High-performance Persistent Hash Table In {J}ava},1588 school = {School of Computer Science, University of Waterloo},1589 year = 2015,1590 optaddress = {Waterloo, Ontario, Canada, N2L 3G1},1591 note = {\href{https://uwspace.uwaterloo.ca/handle/10012/10013}{https://\-uwspace.uwaterloo.ca/\-handle/\-10012/\-10013}},1592 }1593 1594 1559 @book{Andrews91:book, 1595 1560 keywords = {concurrency}, … … 1616 1581 1617 1582 @mastersthesis{Delisle18, 1618 keywords = {concurrency, Cforall},1619 contributer = {pabuhr@plg},1620 1583 author = {Thierry Delisle}, 1621 1584 title = {Concurrency in \textsf{C}$\mathbf{\forall}$}, 1622 1585 school = {School of Computer Science, University of Waterloo}, 1623 1586 year = 2018, 1624 optaddress = {Waterloo, Ontario, Canada, N2L 3G1},1587 address = {Waterloo, Ontario, Canada, N2L 3G1}, 1625 1588 note = {\href{https://uwspace.uwaterloo.ca/handle/10012/12888}{https://\-uwspace.uwaterloo.ca/\-handle/\-10012/\-12888}}, 1626 }1627 1628 @article{Delisle18b,1629 keywords = {concurrency, Cforall},1630 contributer = {pabuhr@plg},1631 author = {Thierry Delisle and Peter A. Buhr},1632 title = {Concurrency in \textsf{C}$\mathbf{\forall}$},1633 year = 2018,1634 journal = spe,1635 pages = {1-32},1636 note = {submitted},1637 1589 } 1638 1590 … … 2913 2865 keywords = {concurrency, mutual exclusion, performance experiment, software solutions}, 2914 2866 title = {Fast mutual exclusion by the {T}riangle algorithm}, 2915 author = {Wim H. Hesselink and Peter A.Buhr and David Dice},2867 author = {Wim H. Hesselink and Peter Buhr and David Dice}, 2916 2868 journal = ccpe, 2917 2869 volume = 30, … … 2920 2872 month = feb, 2921 2873 publisher = {John Wiley \& Sons}, 2922 note = {\ href{https://doi.org/10.1002/cpe.4183}{https://\-doi.org/\-10.1002/\-cpe.4183}}2874 note = {\url{https://doi.org/10.1002/cpe.4183}} 2923 2875 } 2924 2876 … … 3332 3284 edition = {{S}imon {M}arlow}, 3333 3285 year = 2010, 3334 note = {\href{https://haskell.org/definition/haskell2010.pdf}{https:// \-haskell.org/\-definition/\-haskell2010.pdf}},3286 note = {\href{https://haskell.org/definition/haskell2010.pdf}{https://haskell.org/\-definition/\-haskell2010.pdf}}, 3335 3287 } 3336 3288 … … 3406 3358 } 3407 3359 3408 @article{Hesselink17 b,3360 @article{Hesselink17, 3409 3361 keywords = {concurrency, mutual exclusion, performance experiment, software solutions}, 3410 3362 title = {High-Contention Mutual Exclusion by Elevator Algorithms}, 3411 author = {Peter A.Buhr and David Dice and Wim H. Hesselink},3363 author = {Peter Buhr and David Dice and Wim H. Hesselink}, 3412 3364 journal = ccpe, 3413 3365 volume = 30, … … 3416 3368 month = sep, 3417 3369 publisher = {John Wiley \& Sons}, 3418 note = {\ href{https://doi-org.proxy.lib.uwaterloo.ca/10.1002/cpe.4475}{https://\-doi-org.proxy.lib.uwaterloo.ca/\-10.1002/\-cpe.4475}},3370 note = {\url{https://doi-org.proxy.lib.uwaterloo.ca/10.1002/cpe.4475}} 3419 3371 } 3420 3372 … … 3894 3846 3895 3847 % K 3896 3897 @inproceedings{Buhr96b,3898 author = {Peter A. Buhr and Martin Karsten and Jun Shih},3899 title = {{\small\textsf{KDB}}: A Multi-threaded Debugger for Multi-threaded Applications},3900 booktitle = {Proceedings of SPDT'96: SIGMETRICS Symposium on Parallel and Distributed Tools},3901 publisher = {ACM Press},3902 address = {Philadelphia, Pennsylvania, U.S.A.},3903 month = may,3904 year = 1996,3905 pages = {80-87},3906 }3907 3848 3908 3849 @article{Duggan96, … … 4593 4534 % N 4594 4535 4595 @techreport{Drepper03,4596 keywords = {NPTL, threading, 1:1 model},4597 contributer = {pabuhr@plg},4598 author = {Ulrich Drepper and Ingo Molnar},4599 title = {The Native POSIX Thread Library for Linux},4600 institution = {Red Hat},4601 year = 2003,4602 note = {\href{http://www.cs.utexas.edu/~witchel/372/lectures/POSIX_Linux_Threading.pdf}{http://www.cs.utexas.edu/\-$\sim$witchel/\-372/\-lectures/\-POSIX\_Linux\_Threading.pdf}},4603 }4604 4605 4536 @article{Haddon77, 4606 4537 keywords = {monitors, nested monitor calls}, … … 4726 4657 volume = 9, 4727 4658 pages = {157-164}, 4728 }4729 4730 @misc{nginx,4731 key = {nginx},4732 author = {{NGINX}},4733 howpublished= {\href{https://www.nginx.com}{https://\-www.nginx.com}},4734 4659 } 4735 4660 … … 4844 4769 @misc{obj-c-book, 4845 4770 keywords = {objective-c}, 4846 contributor = { pabuhr@plg},4771 contributor = {a3moss@uwaterloo.ca}, 4847 4772 key = {Objective-C}, 4848 author= {Objective-C},4773 title = {Objective-C}, 4849 4774 publisher = {Apple Inc.}, 4850 year = 201 4,4851 howpublished= {\href{https://developer.apple.com/library/ archive/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC}{https://\-developer.apple.com/\-library/archive/\-documentation/\-Cocoa/\-Conceptual/\-ProgrammingWithObjectiveC}},4775 year = 2015, 4776 howpublished= {\href{https://developer.apple.com/library/content/documentation/General/Conceptual/DevPedia-CocoaCore/ObjectiveC.html}{https://developer.apple.com/\-library/\-content/\-documentation/\-General/\-Conceptual/\-DevPedia-\-CocoaCore/\-ObjectiveC.html}}, 4852 4777 optnote = {Accessed: 2018-03} 4853 4778 } … … 4859 4784 title = {{X}code 7 Release Notes}, 4860 4785 year = 2015, 4861 howpublished= {\href{https://developer.apple.com/library/content/documentation/Xcode/Conceptual/RN-Xcode-Archive/Chapters/xc7_release_notes.html}{https:// \-developer.apple.com/\-library/\-content/\-documentation/\-Xcode/\-Conceptual/\-RN-Xcode-Archive/\-Chapters/\-xc7\_release\_notes.html}},4786 howpublished= {\href{https://developer.apple.com/library/content/documentation/Xcode/Conceptual/RN-Xcode-Archive/Chapters/xc7_release_notes.html}{https://developer.apple.com/\-library/\-content/\-documentation/\-Xcode/\-Conceptual/\-RN-Xcode-Archive/\-Chapters/\-xc7\_release\_notes.html}}, 4862 4787 optnote = {Accessed: 2017-04} 4863 4788 } … … 5359 5284 } 5360 5285 5361 @misc{perf,5362 contributer = {pabuhr@plg},5363 key = {perf},5364 author = {perf},5365 howpublished= {\href{https://perf.wiki.kernel.org/index.php/Tutorial}{https://\-perf.wiki.kernel.org/\-index.php/\-Tutorial}},5366 }5367 5368 @misc{Verch12,5369 contributer = {pabuhr@plg},5370 author = {Shaun Verch},5371 title = {Performance Analysis of 64-Bit Capriccio},5372 month = may,5373 year = 2012,5374 howpublished= {\href{http://cs.brown.edu/research/pubs/theses/masters/2012/verch.pdf}{http://cs.brown.edu/\-research/\-pubs/\-theses/\-masters/\-2012/\-verch.pdf}},5375 optnote = {Accessed: 2013-10-4}5376 }5377 5378 5286 @article{Anderson90, 5379 5287 keywords = {spin locks, back off, performance}, … … 5596 5504 note = {Proceedings of the OOPSLA'89 Conference, Oct. 1--6, 1989, New Orleans, Lousiana}, 5597 5505 abstract = {}, 5598 }5599 5600 @inproceedings{Buhr98,5601 keywords = {profiling, monitoring, visualization},5602 contributer = {pabuhr@plg},5603 author = {Peter A. Buhr and Robert Denda},5604 title = {{$\mu$Profiler} : Profiling User-Level Threads in a Shared-Memory Programming Environment},5605 booktitle = {Proceedings of the Second International Symposium on Computing in Object-Oriented Parallel Environments (ISCOPE'98)},5606 series = {Lecture Notes in Computer Science},5607 publisher = {Springer-Verlag},5608 volume = 1505,5609 opteditor = {Dennis Caromel and Rodney R. Oldehoeft and Marydell Tholburn},5610 address = {Santa Fe, New Mexico, U.S.A.},5611 month = dec,5612 year = 1998,5613 pages = {159-166},5614 5506 } 5615 5507 … … 6073 5965 } 6074 5966 6075 @article{Ronsse03,6076 keywords = {profiling, replay},6077 contributer = {pabuhr@plg},6078 author = {Michiel Ronsse and De Bosschere, Koen and Mark Christiaens and Jacques Chassin de Kergommeaux and Dieter Kranzlm\"{u}ller},6079 title = {Record/Replay for Nondeterministic Program Executions},6080 journal = cacm,6081 month = sep,6082 year = 2003,6083 volume = 46,6084 number = 9,6085 pages = {62-67},6086 }6087 6088 5967 @article{Robinson48, 6089 5968 keywords = {recursion, Ackermann function}, … … 6124 6003 } 6125 6004 6126 @mastersthesis{Schuster99,6127 author = {Oliver Schuster},6128 title = {Replay of Concurrent Shared-Memory Programs},6129 school = {Universit\"at Mannheim},6130 address = {Mannheim, Deutschland},6131 year = 1999,6132 month = apr,6133 type = {Diplomarbeit},6134 note = {\href{ftp://plg.uwaterloo.ca/pub/theses/SchusterThesis.ps.gz}{ftp://\-plg.uwaterloo.ca/\-pub/\-theses/\-SchusterThesis.ps.gz}},6135 }6136 6137 6005 @article{Euclid, 6138 6006 keywords = {Euclid}, … … 6166 6034 school = {School of Computer Science, University of Waterloo}, 6167 6035 year = 2017, 6168 optaddress = {Waterloo, Ontario, Canada, N2L 3G1},6036 address = {Waterloo, Ontario, Canada, N2L 3G1}, 6169 6037 note = {\href{https://uwspace.uwaterloo.ca/handle/10012/11830}{https://\-uwspace.uwaterloo.ca/\-handle/\-10012/\-11830}}, 6170 6038 } … … 6993 6861 contributer = {pabuhr@plg}, 6994 6862 key = {TIOBE Index}, 6995 author = {{TIOBE Index}},6863 title = {{TIOBE} Index}, 6996 6864 howpublished= {\href{http://www.tiobe.com/tiobe_index}{http://\-www.tiobe.com/\-tiobe\_index}}, 6997 6865 optnote = {Accessed: 2018-09}, … … 7133 7001 year = 1980 7134 7002 } 7135 7136 @misc{TraceCompass,7137 contributer = {pabuhr@plg},7138 key = {Trace Compass},7139 author = {{T}race {C}ompass},7140 howpublished= {\href{https://projects.eclipse.org/proposals/trace-compass}{https://\-projects.eclipse.org/\-proposals/\-trace-compass}},7141 }7142 7003 7143 7004 @article{Leroy00, … … 7275 7136 title = {Usability Challenges in Exception Handling}, 7276 7137 booktitle = {5th International Workshop on Exception Handling (WEH)}, 7277 o ptorganization= {16th International Symposium on the Foundations of Software Engineering (FSE 16)},7138 organization= {16th International Symposium on the Foundations of Software Engineering (FSE 16)}, 7278 7139 address = {Zurich, Switzerland}, 7279 7140 month = jun, … … 7419 7280 } 7420 7281 7421 @inproceedings{vonBehren03,7422 keywords = {threads, events, web server},7423 contributer = {pabuhr@plg},7424 author = {Rob von Behren and Jeremy Condit and Eric Brewer},7425 title = {Why Events Are a Bad Idea (for high-concurrency servers)},7426 booktitle = {HotOS IX: The 9th Workshop on Hot Topics in Operating Systems},7427 publisher = {USENIX Association},7428 address = {Lihue, Hawaii, U.S.A.},7429 month = may,7430 year = 2003,7431 pages = {19-24},7432 }7433 7434 7282 @techreport{Moss90, 7435 7283 keywords = {Swizzling, database}, … … 7496 7344 year = 1986, 7497 7345 editor = {Norman Meyrowitz}, 7498 publisher = sigplan ,7346 publisher = sigplan # " 21(11)", 7499 7347 organization= {Association for Computing Machinery}, 7500 7348 address = {Portland, Oregon}, 7501 month = sep ,7349 month = sep # { 29} 7502 7350 } 7503 7351 … … 7508 7356 year = 1987, 7509 7357 editor = {Norman Meyrowitz}, 7510 publisher = sigplan ,7358 publisher = sigplan # " 22(12)", 7511 7359 organization= {Association for Computing Machinery}, 7512 7360 address = {Orlando, Florida}, 7513 month = oct ,7361 month = oct # { 4--8} 7514 7362 } 7515 7363 … … 7520 7368 year = 1988, 7521 7369 editor = {Norman Meyrowitz}, 7522 publisher = sigplan ,7370 publisher = sigplan # " 23(11)", 7523 7371 organization= {Association for Computing Machinery}, 7524 7372 address = {San Diego, California}, 7525 month = sep ,7373 month = sep # { 25--30} 7526 7374 } 7527 7375 … … 7532 7380 year = 1989, 7533 7381 editor = {Norman Meyrowitz}, 7534 publisher = sigplan ,7382 publisher = sigplan # " 24(10)", 7535 7383 organization= {Association for Computing Machinery}, 7536 7384 address = {New Orleans, Louisiana}, 7537 month = oct ,7385 month = oct # { 1--6} 7538 7386 } 7539 7387 … … 7544 7392 year = 1990, 7545 7393 editor = {Norman Meyrowitz}, 7546 publisher = sigplan ,7394 publisher = sigplan # " 25(10)", 7547 7395 organization= {Association for Computing Machinery}, 7548 7396 address = {Ottawa, Canada}, 7549 month = oct ,7397 month = oct # { 21--25} 7550 7398 } 7551 7399 … … 7556 7404 year = 1991, 7557 7405 editor = {Andreas Paepcke}, 7558 publisher = sigplan ,7406 publisher = sigplan # " 26(11)", 7559 7407 organization= {Association for Computing Machinery}, 7560 7408 address = {Phoenix, Arizona}, 7561 month = oct ,7562 } 7409 month = oct # { 6--11} 7410 } -
src/CodeTools/ResolvProtoDump.cc
rfcc57ba re523b07 196 196 } 197 197 198 // default to just name, with first character in lowercase 199 ss << pre 200 << (char)std::tolower( static_cast<unsigned char>(name[0]) ) 201 << (name.c_str() + 1); 198 // default to just name 199 ss << pre << name; 202 200 } 203 201 204 202 /// ensures type inst names are uppercase 205 203 static void ti_name( const std::string& name, std::stringstream& ss ) { 206 unsigned i = 0; 207 while ( i < name.size() && name[i] == '_' ) { ++i; } 208 if ( i == name.size() ) { 209 ss << "Anon"; 210 return; 211 } 212 ss << (char)std::toupper( static_cast<unsigned char>(name[i]) ) 213 << (name.c_str() + i + 1); 204 ss << (char)std::toupper( static_cast<unsigned char>(name[0]) ) 205 << (name.c_str() + 1); 214 206 } 215 207 … … 227 219 void previsit( BasicType* bt ) { ss << (int)bt->get_kind(); } 228 220 229 // pointers (except function pointers) represented as generic type 230 void previsit( PointerType* pt ) { 231 if ( ! dynamic_cast<FunctionType*>(pt->base) ) { ss << "#$ptr<"; ++depth; } 232 } 233 void postvisit( PointerType* pt ) { 234 if ( ! dynamic_cast<FunctionType*>(pt->base) ) { --depth; ss << '>'; } 235 } 236 237 // arrays represented as generic pointers 221 // pointers represented as generic type 222 // TODO except pointer to function 223 void previsit( PointerType* ) { ss << "#$ptr<"; ++depth; } 224 void postvisit( PointerType* ) { --depth; ss << '>'; } 225 226 // arrays represented as generic type 238 227 void previsit( ArrayType* at ) { 239 ss << "#$ ptr<";228 ss << "#$arr<"; 240 229 ++depth; 241 230 at->base->accept( *visitor ); … … 255 244 } 256 245 257 // print function types using prototype syntax 246 // encode function type as a 2-param generic type 247 // TODO handle forall functions 258 248 void previsit( FunctionType* ft ) { 259 ss << '[';249 ss << "#$fn<"; 260 250 ++depth; 261 build ( *visitor, from_decls( ft->returnVals ), ss, preceded);262 ss << " : ";263 build ( *visitor, from_decls( ft->parameters ), ss, terminated);251 buildAsTuple( *visitor, from_decls( ft->returnVals ), ss ); 252 ss << ' '; 253 buildAsTuple( *visitor, from_decls( ft->parameters ), ss ); 264 254 --depth; 265 ss << ' ]';255 ss << '>'; 266 256 visit_children = false; 267 257 } … … 351 341 } 352 342 353 // print variable declaration in prototype syntax343 // print variable declaration as zero-arg function 354 344 PassVisitor<TypePrinter> printTy{ closed, ss }; 355 345 norefs->accept( printTy ); 356 ss << " &";346 ss << ' '; 357 347 rp_name( name, ss ); 358 348 } … … 391 381 : closed(closed), ss(ss) {} 392 382 393 /// Names handled as n ame expressions383 /// Names handled as nullary function calls 394 384 void previsit( NameExpr* expr ) { 395 ss << '&';396 385 rp_name( expr->name, ss ); 386 ss << "()"; 397 387 } 398 388 … … 426 416 } 427 417 428 /// Already-resolved calls skipped429 void previsit( ApplicationExpr* ) {430 visit_children = false;431 }432 433 418 /// Address-of handled as operator 434 419 void previsit( AddressExpr* expr ) { … … 600 585 601 586 void previsit( FunctionDecl *decl ) { 602 // skip decls with ftype parameters603 for ( TypeDecl* tyvar : decl->type->forall ) {604 if ( tyvar->get_kind() == TypeDecl::Ftype ) {605 visit_children = false;606 return;607 }608 }609 610 587 // add function as declaration 611 588 std::stringstream ss; -
tools/cfa.nanorc
rfcc57ba re523b07 2 2 ## WIP 3 3 4 syntax "cfa" "\. (c|h)fa"4 syntax "cfa" "\.cfa" 5 5 6 6 # Macros … … 9 9 # Types 10 10 color green "\<(forall|trait|(o|d|f|t)type|mutex|_Bool|volatile|virtual)\>" 11 color green "\<(float|double|bool|char|int|short|long| enum|void|auto)\>"12 color green "\<(static|const| extern|(un)?signed|inline)\>" "\<(sizeof)\>"11 color green "\<(float|double|bool|char|int|short|long|sizeof|enum|void|auto)\>" 12 color green "\<(static|const|struct|union|typedef|extern|(un)?signed|inline)\>" 13 13 color green "\<((s?size)|one|zero|((u_?)?int(8|16|32|64|ptr)))_t\>" 14 14 … … 19 19 # Control Flow Structures 20 20 color brightyellow "\<(if|else|while|do|for|switch|choose|case|default)\>" 21 color brightyellow "\<(disable|enable|waitfor|when|timeout)\>"22 21 color brightyellow "\<(try|catch(Resume)?|finally)\>" 23 22 24 23 # Control Flow Statements 25 24 color magenta "\<(goto|return|break|continue|fallthr(u|ough)|throw(Resume)?)\>" 26 27 # Escaped Keywords, now Identifiers.28 color white "`\w+`"29 25 30 26 # Operator Names
Note:
See TracChangeset
for help on using the changeset viewer.