Initial commit
This commit is contained in:
commit
4fb70d1992
|
@ -0,0 +1 @@
|
|||
*.png filter=lfs diff=lfs merge=lfs -text
|
|
@ -0,0 +1,2 @@
|
|||
out
|
||||
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,119 @@
|
|||
{
|
||||
"displayName": "D",
|
||||
"name": "d",
|
||||
"mimeTypes": ["text/d"],
|
||||
"fileExtensions": ["d","di"],
|
||||
|
||||
"lineComment": "//",
|
||||
"blockCommentStart": "/*",
|
||||
"blockCommentEnd": "*/",
|
||||
|
||||
"keywords": [
|
||||
"alignas", "alignof", "and", "and_eq", "asm", "auto", "bitand", "bitor", "bool", "break", "case",
|
||||
"catch", "char", "wchar", "dchar", "class", "shared", "const", "immutable", "cast",
|
||||
"continue", "default", "do", "double", "else", "foreach",
|
||||
"enum", "export", "extern", "false", "float", "for", "goto", "if", "pragma",
|
||||
"int", "long", "import", "module", "new", "nothrow", "not", "null", "private", "protected", "public", "register", "reinterpret_cast",
|
||||
"return", "short", "static", "assert", "struct",
|
||||
"switch", "template", "this", "__gshared", "true", "try", "alias", "typeof", "union", "virtual", "void", "volatile", "while", "final", "uint", "ulong", "ushort", "ubyte", "byte", "cent", "is", "string", "dstring", "wstring"
|
||||
],
|
||||
|
||||
"extraKeywords": [],
|
||||
|
||||
"typeKeywords": [
|
||||
"bool", "double", "cent", "byte", "int", "short", "char", "void", "long", "float", "ulong", "ushort", "uint", "ubyte", "byte", "wchar", "dchar", "string", "dstring", "wstring"
|
||||
],
|
||||
|
||||
"extraTypeKeywords": [],
|
||||
|
||||
"directives": [
|
||||
"include","if","endif","ifdef","define","line","warning","error"
|
||||
],
|
||||
|
||||
"operators": [
|
||||
"=", ">", "<", "!", "~", "?", ":",
|
||||
"==", "<=", ">=", "!=", "&&", "||", "++", "--",
|
||||
"+", "-", "*", "/", "&", "|", "^", "%", "<<",
|
||||
">>", ">>>", "+=", "-=", "*=", "/=", "&=", "|=",
|
||||
"^=", "%=", "<<=", ">>=", ">>>="
|
||||
],
|
||||
|
||||
"extraOperators": [],
|
||||
|
||||
"symbols": "[=><!~?:&|+\\-*\\/\\^%]+",
|
||||
"escapes": "\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})",
|
||||
|
||||
|
||||
"tokenizer": {
|
||||
"root": [
|
||||
|
||||
["__\\w+", "identifier.predefined"],
|
||||
["\\w+::(?=\\w)", "namespace" ],
|
||||
["(namespace)(\\s*)((?:\\w+::)*\\w+)", ["keyword","white","namespace"] ],
|
||||
|
||||
["[a-z_$][\\w]*", { "cases": {
|
||||
"@typeKeywords": "keyword.type",
|
||||
"@extraTypeKeywords": "keyword.type.extra",
|
||||
"@keywords": "keyword",
|
||||
"@extraKeywords": "keyword.extra",
|
||||
"@default": "identifier" } }],
|
||||
["(\\.|\\->)([A-Z][\\w]*)", ["keyword", "identifier"] ],
|
||||
["[A-Z][\\w]*(?!\\s*[\\w\\(])", "type.identifier" ],
|
||||
["[A-Z][A-Z0-9_]*(?![\\w\\(])", "type.identifier" ],
|
||||
|
||||
|
||||
["^(\\s*#)(\\w+)(.*)", { "cases": {
|
||||
"$2@directives": ["namespace","namespace","string"],
|
||||
"@default": ["meta","meta","string"]
|
||||
}}],
|
||||
|
||||
{ "include": "@whitespace" },
|
||||
|
||||
["[{}()\\[\\]]", "@brackets"],
|
||||
["[<>](?!@symbols)", "@brackets"],
|
||||
["@symbols", { "cases": {
|
||||
"@operators": "operator",
|
||||
"@extraOperators": "operator.extra",
|
||||
"@default" : "" } } ],
|
||||
|
||||
["\\d*\\.\\d+([eE][\\-+]?\\d+)?[fFdD]?", "number.float"],
|
||||
["0[xX][0-9a-fA-F_]*[0-9a-fA-F][Ll]?", "number.hex"],
|
||||
["0[0-7_]*[0-7][Ll]?", "number.octal"],
|
||||
["0[bB][0-1_]*[0-1][Ll]?", "number.binary"],
|
||||
["\\d+[lL]?", "number"],
|
||||
|
||||
|
||||
["[;,.]", "delimiter"],
|
||||
|
||||
|
||||
["[lL]\"([^\"\\\\]|\\\\.)*$", "string.invalid" ],
|
||||
["\"", "string", "@string" ],
|
||||
|
||||
|
||||
["'[^\\\\']'", "string"],
|
||||
["(')(@escapes)(')", ["string","string.escape","string"]],
|
||||
["'", "string.invalid"]
|
||||
],
|
||||
|
||||
"whitespace": [
|
||||
["[ \\t\\r\\n]+", "white"],
|
||||
["\\/\\*", "comment", "@comment" ],
|
||||
["\\/\\/.*$", "comment"]
|
||||
],
|
||||
|
||||
"comment": [
|
||||
["[^\\/*]+", "comment" ],
|
||||
|
||||
["\\/\\*", "comment.invalid" ],
|
||||
["\\*/", "comment", "@pop" ],
|
||||
["[\\/*]", "comment" ]
|
||||
],
|
||||
|
||||
"string": [
|
||||
["[^\\\\\"]+", "string"],
|
||||
["@escapes", "string.escape"],
|
||||
["\\\\.", "string.escape.invalid"],
|
||||
["\"", "string", "@pop" ]
|
||||
]
|
||||
}
|
||||
}
|
|
@ -0,0 +1,770 @@
|
|||
@misc{zigdoc_2021,
|
||||
url={https://ziglang.org/documentation/0.7.0/},
|
||||
title = {Documentation - The Zig Programming Language},
|
||||
year={2021}
|
||||
},
|
||||
|
||||
@misc{cmpxchg_2021,
|
||||
url={https://c9x.me/x86/html/file_module_x86_id_41.html},
|
||||
title = {CMPXCHG: Compare and Exchange (x86 Instruction Set Reference)},
|
||||
year={2021}
|
||||
},
|
||||
|
||||
@misc{lock_free_2019,
|
||||
url={https://www.internalpointers.com/post/lock-free-multithreading-atomic-operations},
|
||||
title = {Lock-Free Multithreading with Atomic Operations},
|
||||
year={2019}
|
||||
},
|
||||
|
||||
@misc{sutter_2007,
|
||||
url={https://www.youtube.com/watch?v=L7zSU9HI-6I},
|
||||
title = {Machine Architecture: Things Your Programming Language Never Told You},
|
||||
organization={Youtube},
|
||||
year={2007}
|
||||
},
|
||||
|
||||
@article{alglave_2009,
|
||||
title={The Semantics of Power and ARM Multiprocessor Machine Code},
|
||||
url={https://dl.acm.org/doi/proceedings/10.1145/1481839},
|
||||
DOI={10.1145/1481839},
|
||||
journal={DAMP '09: Proceedings of the 4th Workshop on Declarative Aspects of Multicore Programming},
|
||||
author={Alglave, Jade and Fox, Anthony and Ishtiaq, Samin and O. Myreen, Magnus and Sarkar, Susmit and Sewell, Peter and Zappa Nardelli, Francesco},
|
||||
year={2009},
|
||||
pages={13-24}
|
||||
},
|
||||
|
||||
@misc{bell_2021,
|
||||
title={Operating Systems: Threads},
|
||||
url={https://www.cs.uic.edu/~jbell/CourseNotes/OperatingSystems/4_Threads.html},
|
||||
author={Bell, J.},
|
||||
year={2021}
|
||||
},
|
||||
|
||||
@misc{drepper_2007,
|
||||
title={Memory part 2: CPU caches [LWN.net]},
|
||||
url={https://lwn.net/Articles/252125/},
|
||||
author={Drepper, Ulrich},
|
||||
year={2007}
|
||||
},
|
||||
|
||||
@book{fabian_2018,
|
||||
title={Data-Oriented Design},
|
||||
author={Fabian, Richard},
|
||||
year={2018},
|
||||
pages={5-7,261-262}
|
||||
},
|
||||
|
||||
@misc{fog_2021,
|
||||
title={Calling Conventions},
|
||||
url={https://www.agner.org/optimize/calling_conventions.pdf},
|
||||
author={Fog, Agner},
|
||||
year={2021}
|
||||
},
|
||||
|
||||
@misc{jenkov_2021,
|
||||
title={Concurrency vs. Parallelism},
|
||||
url={http://tutorials.jenkov.com/java-concurrency/concurrency-vs-parallelism.html},
|
||||
author={Jenkov, Jakob},
|
||||
year={2021}
|
||||
},
|
||||
|
||||
@misc{naik_2013,
|
||||
title={Coding for Performance: Data alignment and structures},
|
||||
url={https://software.intel.com/content/www/us/en/develop/articles/coding-for-performance-data-alignment-and-structures.html},
|
||||
author={Naik, Sumedh},
|
||||
year={2013}
|
||||
},
|
||||
|
||||
@misc{prabhu_2021,
|
||||
title={Pipeline Hazards},
|
||||
url={https://web.cs.iastate.edu/~prabhu/Tutorial/PIPELINE/hazards.html},
|
||||
author={Prabhu, Gurpur}
|
||||
},
|
||||
|
||||
@book{randell_2013,
|
||||
place={Berlin, Heidelberg},
|
||||
title={The Origins of Digital Computers},
|
||||
publisher={Springer Berlin / Heidelberg},
|
||||
author={Randell, Brian},
|
||||
year={2013},
|
||||
pages={399 - 413}
|
||||
},
|
||||
|
||||
@misc{torres_2007,
|
||||
title={How The Cache Memory Works | Hardware Secrets},
|
||||
url={https://hardwaresecrets.com/how-the-cache-memory-works/},
|
||||
author={Torres, Gabriel},
|
||||
year={2007}
|
||||
},
|
||||
|
||||
@misc{williams_2021,
|
||||
title={Memory Ordering for Atomic Operations in C++0x - C++ tutorial - developer Fusion},
|
||||
url={https://www.developerfusion.com/article/138018/memory-ordering-for-atomic-operations-in-c0x/},
|
||||
author={Williams, Anthony},
|
||||
year={2021}
|
||||
},
|
||||
|
||||
@misc{stdatomic_2020,
|
||||
title={std::atomic - cppreference.com},
|
||||
url={https://en.cppreference.com/w/cpp/atomic/atomic},
|
||||
year={2020}
|
||||
},
|
||||
|
||||
@misc{shanthi_2021,
|
||||
title={Memory Hierarchy Design - Basics - Computer Architecture},
|
||||
url={http://www.cs.umd.edu/~meesh/411/CA-online/chapter/memory-hierarchy-design-basics/index.html},
|
||||
author={Shanthi, A. P.},
|
||||
year={2021}
|
||||
},
|
||||
|
||||
@misc{mirek_2017,
|
||||
title={Escape Analysis - DZone Java},
|
||||
url={https://dzone.com/articles/escape-analysis},
|
||||
author={Mirek, Grzegorz},
|
||||
year={2017}
|
||||
},
|
||||
|
||||
@misc{shinsel_2021,
|
||||
title={Understanding the Instruction Pipeline},
|
||||
url={https://techdecoded.intel.io/resources/understanding-the-instruction-pipeline/},
|
||||
author={Shinsel, Alex},
|
||||
year={2021}
|
||||
},
|
||||
|
||||
@article{cheng_2013,
|
||||
title={Design Example of Useful Memory Latency for Developing a Hazard Preventive Pipeline High-Performance Embedded-Microprocessor},
|
||||
volume={2013},
|
||||
url={https://www.hindawi.com/journals/vlsi/2013/425105/},
|
||||
DOI={10.1155/2013/425105},
|
||||
journal={VLSI Design},
|
||||
author={Cheng, Ching-Hwa},
|
||||
year={2013},
|
||||
pages={1-10}
|
||||
},
|
||||
|
||||
@misc{sutter_2005,
|
||||
title={The Free Lunch Is Over: A Fundamental Turn Toward Concurrency in Software},
|
||||
url={http://www.gotw.ca/publications/concurrency-ddj.htm},
|
||||
author={Sutter, Herb},
|
||||
year={2005}
|
||||
},
|
||||
|
||||
@misc{sutter2_2007,
|
||||
title={The Pillars of Concurrency},
|
||||
url={https://www.drdobbs.com/parallel/the-pillars-of-concurrency/200001985},
|
||||
author={Sutter, Herb},
|
||||
year={2007}
|
||||
},
|
||||
|
||||
@article{sutter_larus_2005,
|
||||
title={Software and the Concurrency Revolution},
|
||||
volume={3},
|
||||
url={https://dl.acm.org/doi/10.1145/1095408.1095421},
|
||||
DOI={10.1145/1095408.1095421},
|
||||
number={7},
|
||||
journal={Queue},
|
||||
author={Sutter, Herb and Larus, James},
|
||||
year={2005},
|
||||
pages={54-62}
|
||||
},
|
||||
|
||||
@misc{clement_2021,
|
||||
title={Video Game Industry - Statistics & Facts},
|
||||
url={https://www.statista.com/topics/868/video-games/#dossierSummary},
|
||||
author={Clement, J.},
|
||||
year={2021}
|
||||
},
|
||||
|
||||
@misc{kahle_day_hofstee_johns_shippy_2005,
|
||||
title={IBM JRD 49-4/5 | Introduction to the Cell multiprocessor},
|
||||
url={https://web.archive.org/web/20070228043339/http://researchweb.watson.ibm.com/journal/rd/494/kahle.html},
|
||||
journal={Web.archive.org},
|
||||
author={Kahle, J. A. and Day, M. N. and Hofstee, H. P. and Johns, C. R. and Shippy, D.},
|
||||
year={2005}
|
||||
},
|
||||
|
||||
@misc{maragos_2005,
|
||||
title={IBM, Sony, Toshiba Reveal Cell Processor Details},
|
||||
url={https://www.gamasutra.com/view/news/95883/IBM_Sony_Toshiba_Reveal_Cell_Processor_Details.php},
|
||||
author={Maragos, Nick},
|
||||
year={2005}
|
||||
},
|
||||
|
||||
@misc{gaudin_2008,
|
||||
title={IBM's Roadrunner Smashes 4-Minute Mile of Supercomputing},
|
||||
url={https://web.archive.org/web/20081224001155/http://www.computerworld.com/action/article.do?command=viewArticleBasic&taxonomyName=hardware&articleId=9095318&taxonomyId=12&intsrc=kc_top},
|
||||
author={Gaudin, Sharon},
|
||||
year={2008}
|
||||
},
|
||||
|
||||
@misc{krishnalal_2017,
|
||||
title={The Untapped Potential of the PS3’s CELL Processor And How Naughty Dog Tamed The Beast},
|
||||
url={https://gamingbolt.com/the-untapped-potential-of-the-ps3s-cell-processor-and-how-naughty-dog-tamed-the-beast},
|
||||
author={Krishna Lal, Arjun},
|
||||
year={2017}
|
||||
},
|
||||
|
||||
@misc{turley_2021,
|
||||
title={A Glimpse Inside The Cell Processor},
|
||||
url={https://www.gamasutra.com/view/feature/131168/a_glimpse_inside_the_cell_processor.php?print=1},
|
||||
author={Turley, Jim},
|
||||
year={2021}
|
||||
},
|
||||
|
||||
@misc{hyperthreading_2021,
|
||||
title={What Is Hyper-Threading? - Intel},
|
||||
url={https://www.intel.co.uk/content/www/uk/en/gaming/resources/hyper-threading.html},
|
||||
year={2021}
|
||||
},
|
||||
|
||||
@misc{alimemon_amin_2009,
|
||||
title={Architectural Underpinnings of the Cell Broadband Engine},
|
||||
author={Ali Memon, Nabeel and Amin, Imran},
|
||||
year={2009}
|
||||
},
|
||||
|
||||
@misc{amdnuma_2018,
|
||||
title={AMD Optimizes EPYC Memory with NUMA},
|
||||
url={https://www.amd.com/system/files/2018-03/AMD-Optimizes-EPYC-Memory-With-NUMA.pdf},
|
||||
year={2018}
|
||||
},
|
||||
|
||||
@misc{amddlm_2018,
|
||||
title={Previewing Dynamic Local Mode for the AMD Ryzen Threadripper WX Series Processors},
|
||||
url={https://community.amd.com/t5/blogs/previewing-dynamic-local-mode-for-the-amd-ryzen-threadripper-wx/ba-p/416216},
|
||||
year={2018}
|
||||
},
|
||||
|
||||
@misc{amddlm2_2018,
|
||||
title={AMD Introduces Dynamic Local Mode for Threadripper: up to 47% Performance Gain},
|
||||
url={https://www.techpowerup.com/248308/amd-introduces-dynamic-local-mode-for-threadripper-up-to-47-performance-gain},
|
||||
year={2018}
|
||||
},
|
||||
|
||||
@misc{memperf_2015,
|
||||
title={Time Between the Lines: How Memory Access Affects Performance},
|
||||
url={https://bitbashing.io/memory-performance.html},
|
||||
year={2015}
|
||||
},
|
||||
|
||||
@misc{schoene_hackenberg_molka_2012,
|
||||
title={Memory Performance at Reduced CPU Clock Speeds: An Analysis of Current x86_64 Processors},
|
||||
author={Schoeone, Robert and Hackenberg, Daniel and Molka, Daniel},
|
||||
url={https://www.usenix.org/system/files/conference/hotpower12/hotpower12-final5.pdf},
|
||||
year={2012}
|
||||
},
|
||||
|
||||
@misc{terman_2018,
|
||||
title={L14: The Memory Hierarchy},
|
||||
author={Terman, Chris},
|
||||
url={https://computationstructures.org/lectures/caches/caches.html},
|
||||
year={2018}
|
||||
},
|
||||
|
||||
@article{amdahl_1967,
|
||||
title={Validity of the single processor approach to achieving large scale computing capabilities},
|
||||
url={https://dl.acm.org/doi/pdf/10.1145/1465482.1465560},
|
||||
DOI={10.1145/1465482.1465560},
|
||||
journal={Proceedings of the April 18-20, 1967, spring joint computer conference on - AFIPS '67 (Spring)},
|
||||
author={Amdahl, Gene M.},
|
||||
year={1967}
|
||||
},
|
||||
|
||||
@article{ashcroft_1975,
|
||||
title={Proving assertions about parallel programs},
|
||||
volume={10},
|
||||
DOI={10.1016/s0022-0000(75)80018-3},
|
||||
number={1},
|
||||
journal={Journal of Computer and System Sciences},
|
||||
author={Ashcroft, E.A.},
|
||||
year={1975},
|
||||
pages={110-135}
|
||||
},
|
||||
|
||||
@book{greenlaw_hoover_ruzzo_1995,
|
||||
place={New York},
|
||||
title={Limits to parallel computation},
|
||||
publisher={Oxford University Press, Inc.},
|
||||
author={Greenlaw, Raymond and Hoover, H. James and Ruzzo, Walter L},
|
||||
year={1995}
|
||||
},
|
||||
|
||||
@article{welch_1984,
|
||||
title={A Technique for High-Performance Data Compression},
|
||||
volume={17},
|
||||
url={https://ieeexplore.ieee.org/document/1659158},
|
||||
DOI={10.1109/mc.1984.1659158},
|
||||
number={6},
|
||||
journal={Computer},
|
||||
author={Welch, Terry},
|
||||
year={1984},
|
||||
pages={8-19}
|
||||
},
|
||||
|
||||
@article{ziv_lempel_1977,
|
||||
title={A universal algorithm for sequential data compression},
|
||||
volume={23},
|
||||
url={https://ieeexplore.ieee.org/document/1055714},
|
||||
DOI={10.1109/tit.1977.1055714},
|
||||
number={3},
|
||||
journal={IEEE Transactions on Information Theory},
|
||||
author={Ziv, J. and Lempel, A.},
|
||||
year={1977},
|
||||
pages={337-343}
|
||||
},
|
||||
|
||||
@article{ziv_lempel_1978,
|
||||
title={Compression of individual sequences via variable-rate coding},
|
||||
volume={24},
|
||||
url={https://ieeexplore.ieee.org/document/1055934},
|
||||
DOI={10.1109/tit.1978.1055934},
|
||||
number={5},
|
||||
journal={IEEE Transactions on Information Theory},
|
||||
author={Ziv, J. and Lempel, A.},
|
||||
year={1978},
|
||||
pages={530-536}
|
||||
},
|
||||
|
||||
@article{pm_chezian_2014,
|
||||
title={Behavioral Study of Data Structures on Lempel Ziv Welch (LZW) Data Compression Algorithm and ITS Computational Complexity},
|
||||
url={https://ieeexplore.ieee.org/document/6965054},
|
||||
DOI={10.1109/ICICA.2014.64},
|
||||
journal={IEEE Transactions on Information Theory},
|
||||
author={PM., Nishad and Chezian, R. Manika},
|
||||
year={2014},
|
||||
pages={268-274}
|
||||
},
|
||||
|
||||
@article{mishra_mishra_pani_2012,
|
||||
title={Parallel Lempel-Ziv-Welch (PLZW) Technique for Data Compression},
|
||||
url={http://ijcsit.com/docs/Volume%203/vol3Issue3/ijcsit2012030340.pdf},
|
||||
author={Mishra, Manas Kumar and Mishra, Tapas Kumar and Pani, Alok Kumar},
|
||||
year={2012},
|
||||
},
|
||||
|
||||
@book{arora_barak_2007,
|
||||
place={New York},
|
||||
title={Computational Complexity: A Modern Approach},
|
||||
publisher={Princeton University},
|
||||
author={Arora, Sanjeev and Barak, Boaz},
|
||||
year={2007}
|
||||
},
|
||||
|
||||
@book{gamma_helm_johnson_vlissides_1994,
|
||||
title={Design Patterns: Elements of Reusable Object-Oriented Software},
|
||||
publisher={Addison Wesley},
|
||||
author={Gamma, Erich and Helm, Richard and Johnson, Ralph and Vlissides, John},
|
||||
year={1994}
|
||||
},
|
||||
|
||||
@misc{glconcepts_2017,
|
||||
title={OpenGL Concepts},
|
||||
url={https://www.khronos.org/opengl/wiki/Portal:OpenGL_Concepts},
|
||||
year={2017}
|
||||
},
|
||||
|
||||
@misc{fog2_2021,
|
||||
title={Optimizing Software in C++: An Optimization Guide for Windows, Linux, and Mac Platforms},
|
||||
url={https://www.agner.org/optimize/optimizing_cpp.pdf},
|
||||
author={Fog, Agner},
|
||||
year={2021}
|
||||
},
|
||||
|
||||
@misc{clark_2013,
|
||||
title={Sony's New PlayStation 4 and Open Source FreeBSD: The TRUTH},
|
||||
url={https://www.theregister.com/2013/11/16/sony_playstation_4_kernel/},
|
||||
year={2013}
|
||||
},
|
||||
|
||||
@book{mitchell_samuel_oldham_2001,
|
||||
title={Advanced Linux Programming},
|
||||
publisher={Sams Publishing},
|
||||
author={Mitchell, Mark and Samuel, Alex and Oldham, Jeffrey},
|
||||
year={2001}
|
||||
},
|
||||
|
||||
@misc{pthreadswin32_2003,
|
||||
title={Why Pthreads Are Better Than Win32 Threads},
|
||||
url={https://community.intel.com/t5/Intel-Moderncode-for-Parallel/Why-Pthreads-are-better-than-Win32-threads/td-p/990131},
|
||||
year={2003}
|
||||
},
|
||||
|
||||
@misc{win32criticalsections_2018,
|
||||
title={Critical Section Objects},
|
||||
url={https://docs.microsoft.com/en-us/windows/win32/sync/critical-section-objects},
|
||||
year={2018}
|
||||
},
|
||||
|
||||
@misc{binstock_2011,
|
||||
title={Choosing Between Synchronization Primitives},
|
||||
url={https://software.intel.com/content/www/us/en/develop/articles/choosing-between-synchronization-primitives.html},
|
||||
author={Binstock, Andrew},
|
||||
year={2011}
|
||||
},
|
||||
|
||||
@misc{stdthread_2021,
|
||||
title={std::thread - cppreference.com},
|
||||
url={https://en.cppreference.com/w/cpp/thread/thread},
|
||||
year={2021}
|
||||
},
|
||||
|
||||
@misc{sdlthread_2021,
|
||||
title={SDL_CreateThread - SDL Wiki},
|
||||
url={https://wiki.libsdl.org/SDL_CreateThread},
|
||||
year={2021}
|
||||
},
|
||||
|
||||
@misc{ousterhout_1995,
|
||||
title={Why Threads are a Bad Idea (For Most Purposes)},
|
||||
url={https://web.stanford.edu/~ouster/cgi-bin/papers/threads.pdf},
|
||||
author={Ousterhout, John},
|
||||
year={1995}
|
||||
},
|
||||
|
||||
@misc{abstractionlayers_2021,
|
||||
title={Layers of Abstraction},
|
||||
url={https://slikts.github.io/concurrency-glossary/?id=layers-of-abstraction},
|
||||
year={2021}
|
||||
},
|
||||
|
||||
@article{batty_memarian_nienhuis_pichon-pharabod_sewell_2015,
|
||||
title={The Problem of Programming Language Concurrency Semantics},
|
||||
url={https://link.springer.com/chapter/10.1007/978-3-662-46669-8_12},
|
||||
DOI={10.1007/978-3-662-46669-8_12},
|
||||
journal={Programming Languages and Systems},
|
||||
author={Batty, Mark and Memarian, Kayvan and Nienhuis, Kyndylan and Pichon-Pharabod, Jean and Sewell, Peter},
|
||||
year={2015},
|
||||
pages={283-307}
|
||||
},
|
||||
|
||||
@misc{pugh_2021,
|
||||
title={The "Double-Checked Locking is Broken" Declaration},
|
||||
url={http://www.cs.umd.edu/~pugh/java/memoryModel/DoubleCheckedLocking.html},
|
||||
author={Pugh, Wiliam},
|
||||
year={2021}
|
||||
},
|
||||
|
||||
@misc{aggarwal_2018,
|
||||
title={The Hidden Synchronized Keyword with a Static Block},
|
||||
url={https://dzone.com/articles/the-hidden-synchronized-keyword-with-a-static-bloc},
|
||||
author={Aggarwal, Priya},
|
||||
year={2018}
|
||||
},
|
||||
|
||||
@misc{goetz_2001,
|
||||
title={Double-Checked Locking: Clever, But Broken},
|
||||
url={https://www.infoworld.com/article/2074979/double-checked-locking--clever--but-broken.html},
|
||||
author={Goetz, Brian},
|
||||
year={2001}
|
||||
},
|
||||
|
||||
@misc{jenkov_2020,
|
||||
title={Java Volatile Keyword},
|
||||
url={http://tutorials.jenkov.com/java-concurrency/volatile.html},
|
||||
author={Jenkov, Jakob},
|
||||
year={2020}
|
||||
},
|
||||
|
||||
@misc{javaatomic_2021,
|
||||
title={Atomic Access},
|
||||
url={https://docs.oracle.com/javase/tutorial/essential/concurrency/atomic.html},
|
||||
year={2021}
|
||||
},
|
||||
|
||||
@misc{javaloom_2021,
|
||||
title={Project Loom on OpenJDK Wiki},
|
||||
url={https://wiki.openjdk.java.net/display/loom/Main},
|
||||
year={2021}
|
||||
},
|
||||
|
||||
@misc{smith_2021,
|
||||
title={JEP 401: Primitive Objects (Preview)},
|
||||
url={https://openjdk.java.net/jeps/401},
|
||||
author={Smith, Dan},
|
||||
year={2021}
|
||||
},
|
||||
|
||||
@misc{cimadamore_2021,
|
||||
title={JEP 393: Foreign Memory Access API (Third Incubator)},
|
||||
url={https://openjdk.java.net/jeps/393},
|
||||
author={Cimadamore, Maurizio},
|
||||
year={2021}
|
||||
},
|
||||
|
||||
@article{li_hudak_1989,
|
||||
title={Memory coherence in shared virtual memory systems},
|
||||
volume={7},
|
||||
url={https://dl.acm.org/doi/abs/10.1145/75104.75105},
|
||||
DOI={10.1145/75104.75105},
|
||||
number={4},
|
||||
journal={ACM Transactions on Computer Systems},
|
||||
author={Li, Kai and Hudak, Paul},
|
||||
year={1989},
|
||||
pages={321-359}
|
||||
},
|
||||
|
||||
@article{pugh_2000,
|
||||
title={The Java Memory Model is Fatally Flawed},
|
||||
volume={12},
|
||||
DOI={10.1002/1096-9128(200005)12:6<445::aid-cpe484>3.0.co;2-a},
|
||||
number={6},
|
||||
journal={Concurrency: Practice and Experience},
|
||||
author={Pugh, William},
|
||||
year={2000},
|
||||
pages={445-455}
|
||||
},
|
||||
|
||||
@misc{stdfuture_2020,
|
||||
title={std::future - cppreference.com},
|
||||
url={https://en.cppreference.com/w/cpp/thread/future},
|
||||
year={2020}
|
||||
},
|
||||
|
||||
@misc{bendersky_2016,
|
||||
title={The Promises and Challenges of std::async Task-Based Parallelism in C++11},
|
||||
url={https://eli.thegreenplace.net/2016/the-promises-and-challenges-of-stdasync-task-based-parallelism-in-c11/},
|
||||
author={Bendersky, Eli},
|
||||
year={2016}
|
||||
},
|
||||
|
||||
@misc{stdasync_2021,
|
||||
title={std::async - cppreference.com},
|
||||
url={https://en.cppreference.com/w/cpp/thread/async},
|
||||
year={2021}
|
||||
},
|
||||
|
||||
@misc{asynctut_2017,
|
||||
title={C++11 Multithreading - Part 9: std::async Tutorial & Example},
|
||||
url={https://eli.thegreenplace.net/2016/the-promises-and-challenges-of-stdasync-task-based-parallelism-in-c11/},
|
||||
year={2017}
|
||||
},
|
||||
|
||||
@misc{milewski_2009,
|
||||
title={Broken Promises - C++0x Futures},
|
||||
url={https://bartoszmilewski.com/2009/03/03/broken-promises-c0x-futures/},
|
||||
author={Milewksi, Bartosz},
|
||||
year={2009}
|
||||
},
|
||||
|
||||
@misc{doverview_2021,
|
||||
title={Overview - D Programming Language},
|
||||
url={https://dlang.org/overview.html},
|
||||
year={2021}
|
||||
},
|
||||
|
||||
@misc{dshared_2021,
|
||||
title={Migrating to Shared - D Programming Language},
|
||||
url={https://dlang.org/articles/migrate-to-shared.html},
|
||||
year={2021}
|
||||
},
|
||||
|
||||
@misc{dsynchronization_2021,
|
||||
title={Synchronization & Sharing - D Programming Language},
|
||||
url={https://tour.dlang.org/tour/en/multithreading/synchronization-sharing},
|
||||
year={2021}
|
||||
},
|
||||
|
||||
@misc{dattributes_2021,
|
||||
title={Attributes - D Programming Language},
|
||||
url={https://dlang.org/spec/attribute.html},
|
||||
year={2021}
|
||||
},
|
||||
|
||||
@misc{dmutability_2021,
|
||||
title={Mutability - Dlang Tour},
|
||||
url={https://tour.dlang.org/tour/en/basics/type-qualifiers},
|
||||
year={2021}
|
||||
},
|
||||
|
||||
@article{servetto_pearce_groves_potanin_2013,
|
||||
title = {Balloon Types for Safe Parallelisation over Arbitrary Object Graphs},
|
||||
url={http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.353.2449&rep=rep1&type=pdf},
|
||||
author = {Servetto, Marco and Pearce, David and Groves, Lindsay and Potanin, Alex},
|
||||
year = {2013},
|
||||
},
|
||||
|
||||
@misc{goconcurrency_2021,
|
||||
title={A Tour of Go},
|
||||
url={https://tour.golang.org/concurrency/1},
|
||||
year={2021}
|
||||
},
|
||||
|
||||
@misc{goroutines_2020,
|
||||
title={Receive or Fetch Return Value from a Goroutine in Go(Golang) - Welcome to Golang by Example},
|
||||
url={https://golangbyexample.com/return-value-goroutine-go/},
|
||||
year={2020}
|
||||
},
|
||||
|
||||
@misc{gochannels_2021,
|
||||
title={Go by Example: Channels},
|
||||
url={https://gobyexample.com/channels},
|
||||
author = {McGranaghan, Mark},
|
||||
year={2021}
|
||||
},
|
||||
|
||||
@misc{greenthreads_2021,
|
||||
title={Green Threads Explained (Intro)},
|
||||
url={https://c9x.me/articles/gthreads/intro.html},
|
||||
year={2021}
|
||||
},
|
||||
|
||||
@article{togashi_klyuev_2014,
|
||||
author={Togashi, Naohiro and Klyuev, Vitaly},
|
||||
booktitle={2014 4th IEEE International Conference on Information Science and Technology},
|
||||
title={Concurrency in Go and Java: Performance analysis},
|
||||
year={2014},
|
||||
pages={213-216},
|
||||
doi={10.1109/ICIST.2014.6920368},
|
||||
ISSN={2164-4357},
|
||||
},
|
||||
|
||||
@misc{singh_2020,
|
||||
title={Load Balancing Goroutines in Go},
|
||||
url={https://itnext.io/load-balancing-goroutines-in-go-57e0896c7f86},
|
||||
author = {Singh, Adityp Pratap},
|
||||
year={2020}
|
||||
},
|
||||
|
||||
@misc{khalil_2014,
|
||||
title={Be careful When Using std::string},
|
||||
url={https://groups.google.com/a/chromium.org/g/chromium-dev/c/EUqoIz2iFU4/m/kPZ5ZK0K3gEJ},
|
||||
author = {Khalil, Georges},
|
||||
year={2014}
|
||||
},
|
||||
|
||||
@misc{stdbasicstring_2021,
|
||||
title={std::basic_string - cppreference.com},
|
||||
url={https://en.cppreference.com/w/cpp/string/basic_string},
|
||||
year={2021}
|
||||
},
|
||||
|
||||
@misc{carruth_2016,
|
||||
url={https://www.youtube.com/watch?v=L7zSU9HI-6I},
|
||||
title = {CppCon 2016: Chandler Carruth "High Performance Code 201: Hybrid Data Structures"},
|
||||
organization={Youtube},
|
||||
year={2016}
|
||||
},
|
||||
|
||||
@book{guntheroth_2016,
|
||||
title={Optimized C++: Proven Techniques for Hightened Performance},
|
||||
publisher={O'Reilly Media},
|
||||
author={Guntheroth, Kurt},
|
||||
year={2016},
|
||||
pages={5-7,261-262}
|
||||
},
|
||||
|
||||
@misc{llvmsmallvector_2021,
|
||||
url={https://llvm.org/doxygen/classllvm_1_1SmallVector.html},
|
||||
title = {LLVM llvm::SmallVector},
|
||||
year={2021}
|
||||
},
|
||||
|
||||
@misc{mike_2016,
|
||||
title={Exploring std::string | Shahar Mike's Web Spot},
|
||||
url={https://shaharmike.com/cpp/std-string/},
|
||||
author = {Mike, Shahar},
|
||||
year={2016}
|
||||
},
|
||||
|
||||
@misc{gccdualabi_2021,
|
||||
url={https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html},
|
||||
title = {Dual ABI}
|
||||
},
|
||||
|
||||
@misc{copyonwrite_2020,
|
||||
title={COW (Copy On Write) in GCC},
|
||||
url={https://programmer.help/blogs/cow-copy-on-write-in-gcc.html}
|
||||
},
|
||||
|
||||
@misc{meredith_boehm_crowl_dimov_2008,
|
||||
title={Concurrency Modifications to Basic String},
|
||||
url={http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2534.html},
|
||||
author = {Meredith, Alisdair and Boehm, Hans and Crowl, Lawrence and Dimov, Peter},
|
||||
year={2008}
|
||||
},
|
||||
|
||||
@misc{sutter_1999,
|
||||
title={Optimizations That Aren't (In a Multithreaded World)},
|
||||
url={http://www.gotw.ca/publications/optimizations.htm},
|
||||
author = {Sutter, Herb},
|
||||
year={1999}
|
||||
},
|
||||
|
||||
@misc{acton_2014,
|
||||
url={https://www.youtube.com/watch?v=rX0ItVEVjHc},
|
||||
title = {CppCon 2014: Mike Acton "Data-Oriented Design and C++"},
|
||||
organization={Youtube},
|
||||
year={2016}
|
||||
},
|
||||
|
||||
@misc{steamsurvey_2021,
|
||||
url={https://store.steampowered.com/hwsurvey/},
|
||||
title = {Steam Hardware & Software Survey}
|
||||
},
|
||||
|
||||
@misc{opengldsa_2020,
|
||||
url={https://www.khronos.org/opengl/wiki/Direct_State_Access},
|
||||
title = {Direct State Access - OpenGL Wiki}
|
||||
},
|
||||
|
||||
@misc{openglspirv_2018,
|
||||
url={https://www.khronos.org/opengl/wiki/SPIR-V},
|
||||
title = {SPIR-V - OpenGL Wiki}
|
||||
},
|
||||
|
||||
@misc{openglubo_2017,
|
||||
url={https://www.khronos.org/opengl/wiki/Uniform_Buffer_Object},
|
||||
title = {Uniform Buffer Object - OpenGL Wiki}
|
||||
},
|
||||
|
||||
@misc{haynes_2020,
|
||||
title={How Do Refresh Rates Work for Monitors},
|
||||
url={https://insights.samsung.com/2020/01/16/how-do-refresh-rates-work-for-monitors/},
|
||||
author = {Haynes, Sutter},
|
||||
year={2020}
|
||||
},
|
||||
|
||||
@misc{raylib_2021,
|
||||
title={raylib},
|
||||
url={https://www.raylib.com/},
|
||||
year={2021}
|
||||
},
|
||||
|
||||
@misc{godotscenetree_2021,
|
||||
title={SceneTree - Godot Engine (stable) Documentation in English},
|
||||
url={https://docs.godotengine.org/en/stable/getting_started/step_by_step/scene_tree.html},
|
||||
year={2021}
|
||||
},
|
||||
|
||||
@misc{unityhirarchy_2021,
|
||||
title={Unity - Manual: The Hierarchy Window},
|
||||
url={https://docs.unity3d.com/Manual/Hierarchy.html},
|
||||
year={2021}
|
||||
},
|
||||
|
||||
@misc{amethystbook_2021,
|
||||
title={Introduction - Amethyst Documentation},
|
||||
url={https://book.amethyst.rs/book/stable/},
|
||||
year={2021}
|
||||
},
|
||||
|
||||
@misc{raylibmultithreading_2019,
|
||||
title={Ray on Twitter},
|
||||
url={https://twitter.com/raysan5/status/1119273062405373952},
|
||||
author = {Santamaria, Ramon},
|
||||
year={2019}
|
||||
},
|
||||
|
||||
@misc{spolsky_2002,
|
||||
title={The Law of Leaky Abstraction - Joel on Software},
|
||||
url={https://www.joelonsoftware.com/2002/11/11/the-law-of-leaky-abstractions/},
|
||||
author = {Spolsky, Joel},
|
||||
year={2002}
|
||||
},
|
||||
|
||||
@misc{bergstrom_2011,
|
||||
title={Measuring NUMA Effects with the STREAM Benchmark},
|
||||
url={https://newtraell.cs.uchicago.edu/files/tr_authentic/TR-2012-04.pdf},
|
||||
author = {Bergstrom, Lars},
|
||||
year={2011}
|
||||
},
|
|
@ -0,0 +1,111 @@
|
|||
{
|
||||
"displayName": "Golang",
|
||||
"name": "go",
|
||||
"mimeTypes": ["text/go"],
|
||||
"fileExtensions": ["go"],
|
||||
|
||||
"lineComment": "//",
|
||||
"blockCommentStart": "/*",
|
||||
"blockCommentEnd": "*/",
|
||||
|
||||
"keywords": [
|
||||
"func", "var", "make", "go", "for", "if", "int", "uint"
|
||||
],
|
||||
|
||||
"extraKeywords": [],
|
||||
|
||||
"typeKeywords": [
|
||||
"int", "uint"
|
||||
],
|
||||
|
||||
"extraTypeKeywords": [],
|
||||
|
||||
"directives": [],
|
||||
|
||||
"operators": [
|
||||
"=", ">", "<", "!", "~", "?", ":",
|
||||
"==", "<=", ">=", "!=", "&&", "||", "++", "--",
|
||||
"+", "-", "*", "/", "&", "|", "^", "%", "<<",
|
||||
">>", ">>>", "+=", "-=", "*=", "/=", "&=", "|=",
|
||||
"^=", "%=", "<<=", ">>=", ">>>="
|
||||
],
|
||||
|
||||
"extraOperators": [],
|
||||
|
||||
"symbols": "[=><!~?:&|+\\-*\\/\\^%]+",
|
||||
"escapes": "\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})",
|
||||
|
||||
|
||||
"tokenizer": {
|
||||
"root": [
|
||||
|
||||
["__\\w+", "identifier.predefined"],
|
||||
["\\w+::(?=\\w)", "namespace" ],
|
||||
["(namespace)(\\s*)((?:\\w+::)*\\w+)", ["keyword","white","namespace"] ],
|
||||
|
||||
["[a-z_$][\\w]*", { "cases": {
|
||||
"@typeKeywords": "keyword.type",
|
||||
"@extraTypeKeywords": "keyword.type.extra",
|
||||
"@keywords": "keyword",
|
||||
"@extraKeywords": "keyword.extra",
|
||||
"@default": "identifier" } }],
|
||||
["(\\.|\\->)([A-Z][\\w]*)", ["keyword", "identifier"] ],
|
||||
["[A-Z][\\w]*(?!\\s*[\\w\\(])", "type.identifier" ],
|
||||
["[A-Z][A-Z0-9_]*(?![\\w\\(])", "type.identifier" ],
|
||||
|
||||
|
||||
["^(\\s*#)(\\w+)(.*)", { "cases": {
|
||||
"$2@directives": ["namespace","namespace","string"],
|
||||
"@default": ["meta","meta","string"]
|
||||
}}],
|
||||
|
||||
{ "include": "@whitespace" },
|
||||
|
||||
["[{}()\\[\\]]", "@brackets"],
|
||||
["[<>](?!@symbols)", "@brackets"],
|
||||
["@symbols", { "cases": {
|
||||
"@operators": "operator",
|
||||
"@extraOperators": "operator.extra",
|
||||
"@default" : "" } } ],
|
||||
|
||||
["\\d*\\.\\d+([eE][\\-+]?\\d+)?[fFdD]?", "number.float"],
|
||||
["0[xX][0-9a-fA-F_]*[0-9a-fA-F][Ll]?", "number.hex"],
|
||||
["0[0-7_]*[0-7][Ll]?", "number.octal"],
|
||||
["0[bB][0-1_]*[0-1][Ll]?", "number.binary"],
|
||||
["\\d+[lL]?", "number"],
|
||||
|
||||
|
||||
["[;,.]", "delimiter"],
|
||||
|
||||
|
||||
["[lL]\"([^\"\\\\]|\\\\.)*$", "string.invalid" ],
|
||||
["\"", "string", "@string" ],
|
||||
|
||||
|
||||
["'[^\\\\']'", "string"],
|
||||
["(')(@escapes)(')", ["string","string.escape","string"]],
|
||||
["'", "string.invalid"]
|
||||
],
|
||||
|
||||
"whitespace": [
|
||||
["[ \\t\\r\\n]+", "white"],
|
||||
["\\/\\*", "comment", "@comment" ],
|
||||
["\\/\\/.*$", "comment"]
|
||||
],
|
||||
|
||||
"comment": [
|
||||
["[^\\/*]+", "comment" ],
|
||||
|
||||
["\\/\\*", "comment.invalid" ],
|
||||
["\\*/", "comment", "@pop" ],
|
||||
["[\\/*]", "comment" ]
|
||||
],
|
||||
|
||||
"string": [
|
||||
["[^\\\\\"]+", "string"],
|
||||
["@escapes", "string.escape"],
|
||||
["\\\\.", "string.escape.invalid"],
|
||||
["\"", "string", "@pop" ]
|
||||
]
|
||||
}
|
||||
}
|
|
@ -0,0 +1,4 @@
|
|||
codebase
|
||||
utilisation
|
||||
NUMA
|
||||
completeion
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue