 Undefined Behavior: What Every Programmer Should Know and Fearit bool f(int i) { return i + 1 > i; } // Example 01 ● Signed integer overflow is UB ● UB never happens (compiler is not required to condone UB) ● i != INT_MAX ● i + 1 is always greater than i bool g(int it bool f(int i) { return i + 1 > i; } // Example 01 ● Signed integer overflow is UB ● UB never happens (compiler is not required to condone UB) ● i != INT_MAX ● i + 1 is always greater than i bool g(int int i = 1; int main() { cout << "Before" << endl; while (i) {} cout << "After" << endl; } ● GCC, O3: prints “Before” and hangs ● CLANG, O3: prints “Before”, “After”, and exitsUndefined Behavior0 码力 | 38 页 | 2.56 MB | 6 月前3 Undefined Behavior: What Every Programmer Should Know and Fearit bool f(int i) { return i + 1 > i; } // Example 01 ● Signed integer overflow is UB ● UB never happens (compiler is not required to condone UB) ● i != INT_MAX ● i + 1 is always greater than i bool g(int it bool f(int i) { return i + 1 > i; } // Example 01 ● Signed integer overflow is UB ● UB never happens (compiler is not required to condone UB) ● i != INT_MAX ● i + 1 is always greater than i bool g(int int i = 1; int main() { cout << "Before" << endl; while (i) {} cout << "After" << endl; } ● GCC, O3: prints “Before” and hangs ● CLANG, O3: prints “Before”, “After”, and exitsUndefined Behavior0 码力 | 38 页 | 2.56 MB | 6 月前3
 Building a Coroutine-Based Job System Without Standard LibraryWhat do we do? Before we get started, just a quick self introduction about my background, I am a real-time rendering engineer at NVIDIA working on the RTX renderer in Omniverse. Before that, I was rendering functions are compiled More resources: https://gist.github.com/MattPD/9b55db49537a90545a90447392ad3aeb Before we dive into the system, I want to take 10 mins to have a quick recap about C++ coroutine and share expression into code. 1. Retreive awaiter & awaitable 2. Awaiting the awaiter(suspend and resume happens here) Awaitable & awaiter & co_await Useful to know • According to the definition, a type can0 码力 | 120 页 | 2.20 MB | 6 月前3 Building a Coroutine-Based Job System Without Standard LibraryWhat do we do? Before we get started, just a quick self introduction about my background, I am a real-time rendering engineer at NVIDIA working on the RTX renderer in Omniverse. Before that, I was rendering functions are compiled More resources: https://gist.github.com/MattPD/9b55db49537a90545a90447392ad3aeb Before we dive into the system, I want to take 10 mins to have a quick recap about C++ coroutine and share expression into code. 1. Retreive awaiter & awaitable 2. Awaiting the awaiter(suspend and resume happens here) Awaitable & awaiter & co_await Useful to know • According to the definition, a type can0 码力 | 120 页 | 2.20 MB | 6 月前3
 Back to Basics: Pointersstoring an int with value 7 ● Here we see ‘px’ again ● And we see an ‘asterisk’ before px ○ When an asterisk is before the variable name (and the type is a pointer), it means to retrieve the value at storing an int with value 7 ● Here we see ‘px’ again ● And we see an ‘asterisk’ before px ○ When an asterisk is before the variable name (and the type is a pointer), it means to retrieve the value at addresses (8/11) 36 ● Okay, so what happens with our pointer? ○ int x= 7; ○ int* px= &x; 7Visualizing Memory - Linear array of addresses (9/11) 37 ● Okay, so what happens with our pointer? ○ int x= 7;0 码力 | 152 页 | 5.61 MB | 6 月前3 Back to Basics: Pointersstoring an int with value 7 ● Here we see ‘px’ again ● And we see an ‘asterisk’ before px ○ When an asterisk is before the variable name (and the type is a pointer), it means to retrieve the value at storing an int with value 7 ● Here we see ‘px’ again ● And we see an ‘asterisk’ before px ○ When an asterisk is before the variable name (and the type is a pointer), it means to retrieve the value at addresses (8/11) 36 ● Okay, so what happens with our pointer? ○ int x= 7; ○ int* px= &x; 7Visualizing Memory - Linear array of addresses (9/11) 37 ● Okay, so what happens with our pointer? ○ int x= 7;0 码力 | 152 页 | 5.61 MB | 6 月前3
 Conda 23.3.x Documentationmore about conda's noarch packages. Link and unlink scripts You may optionally execute scripts before and after the link and unlink steps. For more information, see Adding pre- link, post-link, and pre-unlink string). • Letters/Strings indicating non-release versions should always occur at the same position. Before comparison, version strings are parsed as follows: • They are first split into epoch, version number case ��dev�� == 1.1.dev1 # 0 is inserted before string < 1.1.a1 < 1.1.0rc1 < 1.1.0 == 1.1 < 1.1.0post1 # special case ��post�� == 1.1.post1 # 0 is inserted before string < 1.1post1 # special case ��post��0 码力 | 370 页 | 2.94 MB | 8 月前3 Conda 23.3.x Documentationmore about conda's noarch packages. Link and unlink scripts You may optionally execute scripts before and after the link and unlink steps. For more information, see Adding pre- link, post-link, and pre-unlink string). • Letters/Strings indicating non-release versions should always occur at the same position. Before comparison, version strings are parsed as follows: • They are first split into epoch, version number case ��dev�� == 1.1.dev1 # 0 is inserted before string < 1.1.a1 < 1.1.0rc1 < 1.1.0 == 1.1 < 1.1.0post1 # special case ��post�� == 1.1.post1 # 0 is inserted before string < 1.1post1 # special case ��post��0 码力 | 370 页 | 2.94 MB | 8 月前3
 Conda 23.5.x Documentationmore about conda's noarch packages. Link and unlink scripts You may optionally execute scripts before and after the link and unlink steps. For more information, see Adding pre- link, post-link, and pre-unlink string). • Letters/Strings indicating non-release versions should always occur at the same position. Before comparison, version strings are parsed as follows: • They are first split into epoch, version number case ��dev�� == 1.1.dev1 # 0 is inserted before string < 1.1.a1 < 1.1.0rc1 < 1.1.0 == 1.1 < 1.1.0post1 # special case ��post�� == 1.1.post1 # 0 is inserted before string < 1.1post1 # special case ��post��0 码力 | 370 页 | 3.11 MB | 8 月前3 Conda 23.5.x Documentationmore about conda's noarch packages. Link and unlink scripts You may optionally execute scripts before and after the link and unlink steps. For more information, see Adding pre- link, post-link, and pre-unlink string). • Letters/Strings indicating non-release versions should always occur at the same position. Before comparison, version strings are parsed as follows: • They are first split into epoch, version number case ��dev�� == 1.1.dev1 # 0 is inserted before string < 1.1.a1 < 1.1.0rc1 < 1.1.0 == 1.1 < 1.1.0post1 # special case ��post�� == 1.1.post1 # 0 is inserted before string < 1.1post1 # special case ��post��0 码力 | 370 页 | 3.11 MB | 8 月前3
 Single Producer Single Consumer Lock-free FIFO From the Ground Upevaluations are atomic operations (see std::atomic ), or ■ one of the conflicting evaluations happens-before another (see std::memory_order ). If a data race occurs, the behavior of the program is undefined size_] if (popCursor_ < pushCursor_) ++popCursor_ if (pushCursor_ - popCursor_ != size_) need happens before Need atomic pushCursor_ and popCursor_24 template Single Producer Single Consumer Lock-free FIFO From the Ground Upevaluations are atomic operations (see std::atomic ), or ■ one of the conflicting evaluations happens-before another (see std::memory_order ). If a data race occurs, the behavior of the program is undefined size_] if (popCursor_ < pushCursor_) ++popCursor_ if (pushCursor_ - popCursor_ != size_) need happens before Need atomic pushCursor_ and popCursor_24 template- > (popCursor_ != pushCursor_) happens before new (&ring_[pushCursor_ % size_]) T(value) if (pushCursor_ - popCursor_ != size_) if (pushCursor_ - popCursor_ != size_) happens before release release acquire 0 码力 | 51 页 | 546.30 KB | 6 月前3
 Oracle VM VirtualBox 4.1.40 Programming Guide and Referencedownside (and, one could say, typical of things related to XML), a lot of standards are involved before a web service can be implemented. Many of the standards invented around XML are used one way or another file grows beyond this limit. • --loginterval (or -I): Maximum time interval to be put in a log file before rotation is triggered, in seconds, and defaults to one day. 1.4.2 Authenticating at web service logon able. On most Linux distribution PAM uses a suid root helper internally, so make sure you test this before deploying it. One can override this behavior by setting the environment variable VBOX_PAM_ALLOW_INACTIVE0 码力 | 306 页 | 1.92 MB | 6 月前3 Oracle VM VirtualBox 4.1.40 Programming Guide and Referencedownside (and, one could say, typical of things related to XML), a lot of standards are involved before a web service can be implemented. Many of the standards invented around XML are used one way or another file grows beyond this limit. • --loginterval (or -I): Maximum time interval to be put in a log file before rotation is triggered, in seconds, and defaults to one day. 1.4.2 Authenticating at web service logon able. On most Linux distribution PAM uses a suid root helper internally, so make sure you test this before deploying it. One can override this behavior by setting the environment variable VBOX_PAM_ALLOW_INACTIVE0 码力 | 306 页 | 1.92 MB | 6 月前3
 Oracle VM VirtualBox 4.3.36 Programming Guide and Referencedownside (and, one could say, typical of things related to XML), a lot of standards are involved before a web service can be implemented. Many of the standards invented around XML are used one way or another file grows beyond this limit. • --loginterval (or -I): Maximum time interval to be put in a log file before rotation is triggered, in seconds, and defaults to one day. 1.4.2 Authenticating at web service logon able. On most Linux distribution PAM uses a suid root helper internally, so make sure you test this before deploying it. One can override this behavior by setting the environment variable VBOX_PAM_ALLOW_INACTIVE0 码力 | 376 页 | 1.99 MB | 6 月前3 Oracle VM VirtualBox 4.3.36 Programming Guide and Referencedownside (and, one could say, typical of things related to XML), a lot of standards are involved before a web service can be implemented. Many of the standards invented around XML are used one way or another file grows beyond this limit. • --loginterval (or -I): Maximum time interval to be put in a log file before rotation is triggered, in seconds, and defaults to one day. 1.4.2 Authenticating at web service logon able. On most Linux distribution PAM uses a suid root helper internally, so make sure you test this before deploying it. One can override this behavior by setting the environment variable VBOX_PAM_ALLOW_INACTIVE0 码力 | 376 页 | 1.99 MB | 6 月前3
 Oracle VM VirtualBox 4.3.12 Programming Guide and Referencedownside (and, one could say, typical of things related to XML), a lot of standards are involved before a web service can be implemented. Many of the standards invented around XML are used one way or another file grows beyond this limit. • --loginterval (or -I): Maximum time interval to be put in a log file before rotation is triggered, in seconds, and defaults to one day. 1.4.2 Authenticating at web service logon able. On most Linux distribution PAM uses a suid root helper internally, so make sure you test this before deploying it. One can override this behavior by setting the environment variable VBOX_PAM_ALLOW_INACTIVE0 码力 | 376 页 | 2.24 MB | 6 月前3 Oracle VM VirtualBox 4.3.12 Programming Guide and Referencedownside (and, one could say, typical of things related to XML), a lot of standards are involved before a web service can be implemented. Many of the standards invented around XML are used one way or another file grows beyond this limit. • --loginterval (or -I): Maximum time interval to be put in a log file before rotation is triggered, in seconds, and defaults to one day. 1.4.2 Authenticating at web service logon able. On most Linux distribution PAM uses a suid root helper internally, so make sure you test this before deploying it. One can override this behavior by setting the environment variable VBOX_PAM_ALLOW_INACTIVE0 码力 | 376 页 | 2.24 MB | 6 月前3
 Oracle VM VirtualBox 4.2.32 Programming Guide and Referencedownside (and, one could say, typical of things related to XML), a lot of standards are involved before a web service can be implemented. Many of the standards invented around XML are used one way or another file grows beyond this limit. • --loginterval (or -I): Maximum time interval to be put in a log file before rotation is triggered, in seconds, and defaults to one day. 1.4.2 Authenticating at web service logon able. On most Linux distribution PAM uses a suid root helper internally, so make sure you test this before deploying it. One can override this behavior by setting the environment variable VBOX_PAM_ALLOW_INACTIVE0 码力 | 339 页 | 2.07 MB | 6 月前3 Oracle VM VirtualBox 4.2.32 Programming Guide and Referencedownside (and, one could say, typical of things related to XML), a lot of standards are involved before a web service can be implemented. Many of the standards invented around XML are used one way or another file grows beyond this limit. • --loginterval (or -I): Maximum time interval to be put in a log file before rotation is triggered, in seconds, and defaults to one day. 1.4.2 Authenticating at web service logon able. On most Linux distribution PAM uses a suid root helper internally, so make sure you test this before deploying it. One can override this behavior by setting the environment variable VBOX_PAM_ALLOW_INACTIVE0 码力 | 339 页 | 2.07 MB | 6 月前3
共 324 条
- 1
- 2
- 3
- 4
- 5
- 6
- 33














 
  
 