Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.
|Comment:||Soften the criticism of Go because of their decision to omit assert() from the language.|
|Timelines:||family | ancestors | descendants | both | branch-3.28|
|Files:||files | file ages | folders|
|User & Date:||drh 2019-04-29 15:46:08|
|19:27||Further clarification to the assert.html document. check-in: ef3822f76d user: drh tags: branch-3.28|
|16:21||Merge changes from the 3.28 branch. check-in: d220b2f30c user: drh tags: trunk|
|15:46||Soften the criticism of Go because of their decision to omit assert() from the language. check-in: 4a40995c05 user: drh tags: branch-3.28|
|23:40||Clarify the documentation on PRAGMA cache_size to explain that the cache size will go up or down in proportion to a change in page size. check-in: 184e897473 user: drh tags: trunk|
Changes to pages/assert.in.
67 67 An ALWAYS(X) or NEVER(X) macro, or something similar, should be used in 68 68 those cases because ALWAYS(X) or NEVER(X) will be followed by code to 69 69 actually deal with the problem when the programmers reasoning 70 70 turns out to be wrong. Since the code that follows ALWAYS(X) or NEVER(X) 71 71 is untested, it should be something very simple, like a "return" statement, 72 72 that is easily verified by inspection. 73 73 74 -<p>The [https://golang.org|Go programming language] omits assert(). 74 +<p> 75 +Because assert() can be and is commonly misused, some programming language 76 +theorists and designers look with disfavor on the whole idea of assert(). 77 +For example, the [https://golang.org|Go programming language] omits assert(). 75 78 The Go developers 76 79 [https://golang.org/doc/faq#assertions|recognize this is contentious]. 77 -Disallowing assert() is essentially telling developers that they are 78 -not allowed to do run-time verification of invariants. 79 -It is as if the developers of 80 -Go do not want coders to prove the software is correct. 81 -The SQLite developers believe that the lack of assert() disqualifies 82 -Go as a language for serious development work. 80 +The SQLite developers agree with those that think the decision to 81 +omit assert() from Go is a mistake. 82 +It is true that assert() can be misused. Antibiotics can be misused 83 +too, but that does not mean we should ban all antibiotics. 83 84 84 85 <h2>Different Behaviors According To Build Type</h2> 85 86 86 87 <p>Three separate builds are used to validate the SQLite software. 87 88 <ol> 88 89 <li> A functionality testing build is used to validate the source code. 89 90 <li> A coverage testing build is used to validate the test suite, to confirm