|
| 1 | +<p id="f-2022-02-22-history-md"></p> |
| 2 | +<h1>Go 101 Update History (Before v1.18)</h1> |
| 3 | + |
| 4 | +<h3>v1.17.b (2021/Sep/10)</h3> |
| 5 | + |
| 6 | +<ul> |
| 7 | +<li>improve implicit method value evaluation explanations</li> |
| 8 | +</ul> |
| 9 | + |
| 10 | +<h3>1.16.b (2021/May/18)</h3> |
| 11 | + |
| 12 | +<ul> |
| 13 | +<li>add Go 1.17 contents</li> |
| 14 | +</ul> |
| 15 | + |
| 16 | +<h3>1.16.a (2021/Feb/18)</h3> |
| 17 | + |
| 18 | +<ul> |
| 19 | +<li>support Go 1.16 embedding feature.</li> |
| 20 | +</ul> |
| 21 | + |
| 22 | +<h3>1.15.b (2020/Oct/09)</h3> |
| 23 | + |
| 24 | +<ul> |
| 25 | +<li>describe more about <a href="https://go101.org/article/details.html#reflect-deep-equal">reflect.DeepEqual</a> related details.</li> |
| 26 | +<li>add <a href="https://go101.org/article/exceptions.html#code-block-following-else">a new syntax execution</a>.</li> |
| 27 | +</ul> |
| 28 | + |
| 29 | +<h3>1.15.a (2020/Aug/07)</h3> |
| 30 | + |
| 31 | +<ul> |
| 32 | +<li>point out that, since Go Toolchain 1.15, using make+copy to clone slices is always more efficient than using append to clone.</li> |
| 33 | +</ul> |
| 34 | + |
| 35 | +<h3>1.14.g (2020/Jun/12)</h3> |
| 36 | + |
| 37 | +<ul> |
| 38 | +<li>remove the new detail added in 1.14.e: The behavior of comparing struct values with both comparable and incomparable fields or array values with both comparable and incomparable elements is unspecified. The reason is <a href="https://github.com/golang/go/issues/8606">the behavior will be specified</a>.</li> |
| 39 | +<li>add <a href="https://go101.org/article/details.html#impossible-to-interface-assertion">a new detail</a>: About the impossible to-interface assertions which can be detected at compile time.</li> |
| 40 | +</ul> |
| 41 | + |
| 42 | +<h3>1.14.f (2020/Jun/02)</h3> |
| 43 | + |
| 44 | +<ul> |
| 45 | +<li>All "Go SDK" uses are changed to "Go Toolchain".</li> |
| 46 | +</ul> |
| 47 | + |
| 48 | +<h3>1.14.e (2020/May/06)</h3> |
| 49 | + |
| 50 | +<ul> |
| 51 | +<li>add <a href="https://go101.org/article/details.html#compare-values-with-both-comparable-and-incomparable-parts">a new detail</a>: The behavior of comparing struct values with both comparable and incomparable fields or array values with both comparable and incomparable elements is unspecified.</li> |
| 52 | +<li>add <a href="https://go101.org/article/details.html#blank-fields-are-ignored-in-comparisons">a new detail</a>: In struct value comparisons, blank fields will be ignored.</li> |
| 53 | +</ul> |
| 54 | + |
| 55 | +<h3>1.14.d (2020/Apr/25)</h3> |
| 56 | + |
| 57 | +<ul> |
| 58 | +<li><code>runtime.KeepAlive</code> related concents are removed from <a href="https://go101.org/article/unsafe.html">Unsafe Pointers</a> article. |
| 59 | +I'm sorry for spreading some wrong information in this article before.</li> |
| 60 | +</ul> |
| 61 | + |
| 62 | +<h3>1.13.i (2019/Oct/31)</h3> |
| 63 | + |
| 64 | +<ul> |
| 65 | +<li>fix a bug in the example code in the <a href="https://go101.org/article/container.html#delete-slice-elements">Delete a segment of slice elements</a> section |
| 66 | +of the "Arrays, Slices and Maps in Go" article.</li> |
| 67 | +<li>correct explainations in <a href="https://go101.org/article/function.html#function-evaluation-time">The Evaluation Moment of Deferred Function Values</a>.</li> |
| 68 | +<li>the article "The Right Places to Call the Built-in <code>recover</code> Function" is <a href="https://go101.org/article/panic-and-recover-more.html">renamed to</a> "Explain Panic/Recover Mechanism in Detail". It was almost wholly re-written.</li> |
| 69 | +</ul> |
| 70 | + |
| 71 | +<h3>1.13.h (2019/Oct/18)</h3> |
| 72 | + |
| 73 | +<ul> |
| 74 | +<li>correct the explanations for the <a href="https://go101.org/article/evaluation-orders.html#value-assignment">Evaluation and Assignment Orders in Assignment Statements</a> section |
| 75 | +in the "Expression Evaluation Orders" article.</li> |
| 76 | +<li>add <a href="https://go101.org/article/101.html#compiler-optimizations">two new summaries</a>.</li> |
| 77 | +</ul> |
| 78 | + |
| 79 | +<h3>1.13.e (2019/Oct/07)</h3> |
| 80 | + |
| 81 | +<ul> |
| 82 | +<li>I decided to withdraw the last erratum in 1.13.d. (Re-added in 1.14.d)</li> |
| 83 | +</ul> |
| 84 | + |
| 85 | +<h3>1.13.d (2019/Sep/30)</h3> |
| 86 | + |
| 87 | +<ul> |
| 88 | +<li>add <a href="https://go101.org/article/unsafe.html#fact-value-address-might-change">a new fact</a> to the "type-unsafe pointers" article |
| 89 | +and pointed out <a href="https://go101.org/article/unsafe.html#pattern-convert-to-uintptr-and-back">a serious mistake</a> was made in this article.</li> |
| 90 | +</ul> |
| 91 | + |
| 92 | +<h3>1.13.c (2019/Sep/25)</h3> |
| 93 | + |
| 94 | +<ul> |
| 95 | +<li>remove the section containing a stupid code mistake from the "The Right Places to Call the recover Function" article.</li> |
| 96 | +</ul> |
| 97 | + |
| 98 | +<h3>1.13.b (2019/Sep/19)</h3> |
| 99 | + |
| 100 | +<ul> |
| 101 | +<li>remove the inaccurate description "the address of a variable will never change"</li> |
| 102 | +</ul> |
| 103 | + |
| 104 | +<h3>1.13.a (2019/Sep/05)</h3> |
| 105 | + |
| 106 | +<ul> |
| 107 | +<li>Go 1.13 ready.</li> |
| 108 | +<li>add two situations in the article <a href="https://go101.org/article/channel-closing.html">How to Gracefully Close Channels</a>.</li> |
| 109 | +<li><a href="https://go101.org/article/type-system-overview.html#unnamed-type">the "named type" and "unnamed type" terminologies</a> are added back, |
| 110 | +but they are eqivalent to "defined type" and "non-defined type" now.</li> |
| 111 | +</ul> |
| 112 | + |
| 113 | +<h3>1.12.d (2019/May/18)</h3> |
| 114 | + |
| 115 | +<ul> |
| 116 | +<li>enrich the <a href="https://go101.org/article/evaluation-orders.html#package-level-variables">Package-level Variables Initialization Order</a> section.</li> |
| 117 | +</ul> |
| 118 | + |
| 119 | +<h3>1.12.c (2019/April/09)</h3> |
| 120 | + |
| 121 | +<ul> |
| 122 | +<li>remove the "named type" and "unnamed type" terminology.</li> |
| 123 | +<li>adjust some discriptions in <a href="https://go101.org/article/type-embedding.html">Type Embdding</a>.</li> |
| 124 | +</ul> |
| 125 | + |
| 126 | +<h3>1.12.b (2019/April/06)</h3> |
| 127 | + |
| 128 | +<ul> |
| 129 | +<li>add a <a href="https://go101.org/article/evaluation-orders.html#package-level-variables">Package-level Variables Initialization Order</a> section.</li> |
| 130 | +</ul> |
| 131 | + |
| 132 | +<h3>1.12.a (2019/March/02)</h3> |
| 133 | + |
| 134 | +<ul> |
| 135 | +<li>Go 1.12 ready.</li> |
| 136 | +</ul> |
| 137 | + |
| 138 | +<h3>1.11.f (2019/Jan/02)</h3> |
| 139 | + |
| 140 | +<ul> |
| 141 | +<li>remove "Unused Variables" from <a href="https://go101.org/article/exceptions.html">Syntax/Semantics Exceptions In Go</a>.</li> |
| 142 | +</ul> |
| 143 | + |
| 144 | +<h3>1.11.g (2018/Dec/27)</h3> |
| 145 | + |
| 146 | +<ul> |
| 147 | +<li>a serious mistake was just fixed in this book. |
| 148 | +Before, the book said the starting index in a subslice syntax |
| 149 | +can't be larger than the length of the base slice. This is wrong. |
| 150 | +Please read <a href="container.html#subslice">the corrected section</a> again for details.</li> |
| 151 | +</ul> |
| 152 | + |
| 153 | +<h3>1.11.f (2018/Nov/09)</h3> |
| 154 | + |
| 155 | +<ul> |
| 156 | +<li>rearrange <a href="https://go101.org/article/details.html">Go Details 101</a>, more details are added.</li> |
| 157 | +</ul> |
| 158 | + |
| 159 | +<h3>1.11.e (2018/Oct/26)</h3> |
| 160 | + |
| 161 | +<ul> |
| 162 | +<li>published <a href="https://go101.org/article/evaluation-orders.html">Evaluation Orders</a>.</li> |
| 163 | +<li>modify some descriptions for |
| 164 | + |
| 165 | +<ul> |
| 166 | +<li><a href="https://go101.org/article/packages-and-imports.html#initialization-order">program resource initialization order</a></li> |
| 167 | +</ul></li> |
| 168 | +</ul> |
| 169 | + |
| 170 | +<h3>1.11.d (2018/Oct/18)</h3> |
| 171 | + |
| 172 | +<ul> |
| 173 | +<li>remove "Comparing Interface Values" from <a href="https://go101.org/article/exceptions.html">Syntax/Semantics Exceptions In Go</a>.</li> |
| 174 | +<li>add "Comparisons 2" to <a href="https://go101.org/article/exceptions.html">Syntax/Semantics Exceptions In Go</a>.</li> |
| 175 | +<li>modify some descriptions for |
| 176 | + |
| 177 | +<ul> |
| 178 | +<li><a href="https://go101.org/article/value-conversions-assignments-and-comparisons.html#comparison-rules">comparison rules</a></li> |
| 179 | +<li><a href="https://go101.org/article/packages-and-imports.html#package">package hierarchy</a></li> |
| 180 | +</ul></li> |
| 181 | +</ul> |
| 182 | + |
| 183 | +<h3>1.11.c (2018/Sep/22)</h3> |
| 184 | + |
| 185 | +<ul> |
| 186 | +<li>add a new tip <a href="https://go101.org/article/tips.html#make-struct-type-uncomparable">How to make a struct type incomparable?</a>.</li> |
| 187 | +<li>add a new tip <a href="https://go101.org/article/tips.html#reset-pointers-for-dead-elements">Try to reset pointers in freed-up slice elements</a>.</li> |
| 188 | +<li>add a new tip <a href="https://go101.org/article/tips.html#make-using-of-bce">Make optimizations by using BCE</a>.</li> |
| 189 | +<li>remove "Precedences Of Unary Operators" from <a href="https://go101.org/article/exceptions.html">Syntax/Semantics Exceptions In Go</a>.</li> |
| 190 | +</ul> |
| 191 | + |
| 192 | +<h3>1.11.b (2018/Sep/09)</h3> |
| 193 | + |
| 194 | +<ul> |
| 195 | +<li>published <a href="https://go101.org/article/tips.html">Go Tips 101</a>.</li> |
| 196 | +</ul> |
| 197 | + |
| 198 | +<h3>1.11.a (2018/Sep/01)</h3> |
| 199 | + |
| 200 | +<ul> |
| 201 | +<li>mention 1.11 new <code>wasm</code> GOARCH in <a href="https://go101.org/article/more.html#cross-platform-compiling">More Go Related Knowledges</a>.</li> |
| 202 | +<li>mention 1.11 new <code>go mod</code> command in <a href="https://go101.org/article/go-toolchain.html">The Go Toolchain</a>.</li> |
| 203 | +</ul> |
| 204 | + |
| 205 | +<h3>1.10.g (2018/Jun/02)</h3> |
| 206 | + |
| 207 | +<ul> |
| 208 | +<li>published <a href="https://go101.org/article/101-about.html">About Go 101</a>.</li> |
| 209 | +<li>published <a href="https://go101.org/article/acknowledgements.html">Acknowledgments</a>.</li> |
| 210 | +</ul> |
| 211 | + |
| 212 | +<h3>1.10.f (2018/May/15)</h3> |
| 213 | + |
| 214 | +<ul> |
| 215 | +<li>published <a href="https://go101.org/article/reflection.html">Relections in Go</a>.</li> |
| 216 | +<li>added a channel use case: <a href="https://go101.org/article/channel-use-cases.html#rate-limiting">rate limiting</a>.</li> |
| 217 | +</ul> |
| 218 | + |
| 219 | +<h3>1.10.e (2018/Apr/28)</h3> |
| 220 | + |
| 221 | +<ul> |
| 222 | +<li>added a new detail: <a href="https://go101.org/article/details.html#os-exit-runtime-goexit">Exit a program with a <code>os.Exit</code> function call and exit a goroutine with a <code>runtime.Goexit</code> function call.</a>.</li> |
| 223 | +</ul> |
| 224 | + |
| 225 | +<h3>1.10.d (2018/Apr/18)</h3> |
| 226 | + |
| 227 | +<ul> |
| 228 | +<li>added a new detail: <a href="https://go101.org/article/details.html#non-exported-names-from-different-packages">Non-exported method names and struct field names from different packages are viewed as diffferent names.</a>.</li> |
| 229 | +<li>added a FAQ question: [What does the compiler error message <code>declared and not used</code> mean?](<a href="https://go101.org/article/unofficial-faq.html#error-declared-not-used"">https://go101.org/article/unofficial-faq.html#error-declared-not-used"</a>)</li> |
| 230 | +<li>added a FAQ question: <a href="https://go101.org/article/unofficial-faq.html#time-sleep-after">What is the difference between the function call <code>time.Sleep(d)</code> and the channel receive operation <code><-time.After(d)</code>?</a></li> |
| 231 | +<li>added a FAQ question: <a href="https://go101.org/article/unofficial-faq.html#math-crypto-rand">What is the difference between the random numbers produced by the <code>math/rand</code> standard package and the <code>crypto/rand</code> standard package?</a></li> |
| 232 | +<li>added a FAQ question: <a href="https://go101.org/article/unofficial-faq.html#fmt-print-println">What are the differences between the <code>fmt.Print</code> and <code>fmt.Println</code> functions?</a></li> |
| 233 | +<li>added a FAQ question: <a href="https://go101.org/article/unofficial-faq.html#print-builtin-fmt-log">What are the differences between the built-in <code>print</code>/<code>println</code> functions and the corresponding print functions in the <code>fmt</code> and <code>log</code> standard packages?</a></li> |
| 234 | +<li>added a FAQ question: <a href="https://go101.org/article/unofficial-faq.html#math-round">Why isn't there a <code>math.Round</code> function?</a></li> |
| 235 | +<li>added a FAQ question: <a href="https://go101.org/article/unofficial-faq.html#gopher">What does the word <b><i>gopher</i></b> mean in Go community?</a></li> |
| 236 | +</ul> |
| 237 | + |
| 238 | +<h3>1.10.c (2018/Apr/14)</h3> |
| 239 | + |
| 240 | +<ul> |
| 241 | +<li>finished the article <a href="https://go101.org/article/concurrent-common-mistakes.html">some common concurrent programming mistakes</a>.</li> |
| 242 | +<li>published <a href="https://go101.org/article/details.html">Go details 101</a>.</li> |
| 243 | +<li>unhid <a href="https://go101.org/article/unofficial-faq.html">Go FAQ 101</a>.</li> |
| 244 | +</ul> |
| 245 | + |
| 246 | +<h3>1.10.b (2018/Apr/06)</h3> |
| 247 | + |
| 248 | +<ul> |
| 249 | +<li>added <a href="https://go101.org/article/type-embedding.html#dead-loop-example">an interesting type embedding example</a></li> |
| 250 | +<li>mentioned <a href="https://go101.org/article/channel.html#assign-and-compare">receive-only channels can't be closed</a></li> |
| 251 | +<li>mentioned <a href="https://go101.org/article/container.html#value-literals">indexes in array and slice composite literals must be constants</a></li> |
| 252 | +</ul> |
| 253 | + |
| 254 | +<h3>1.10.a (2018/Mar/31)</h3> |
| 255 | + |
| 256 | +<p>First release, though some articles are still not finished.</p> |
0 commit comments