|
| 1 | +Ddoc |
| 2 | + |
| 3 | +$(CHANGELOG_NAV_INJECT) |
| 4 | + |
| 5 | +$(VERSION Jul 01, 2020, =================================================, |
| 6 | + |
| 7 | +$(CHANGELOG_HEADER_STATISTICS |
| 8 | +$(VER) comes with 11 major changes and 0 fixed Bugzilla issues. |
| 9 | + A huge thanks goes to the |
| 10 | + $(LINK2 #contributors, 53 contributors) |
| 11 | + who made $(VER) possible.) |
| 12 | + |
| 13 | +$(BUGSTITLE_TEXT_HEADER Compiler changes, |
| 14 | + |
| 15 | +$(LI $(RELATIVE_LINK2 add_traits_isCopyable,Add new builtin `__traits(isCopyable, T)` for some type `T`)) |
| 16 | +$(LI $(RELATIVE_LINK2 check_interface_implementations,Properly check interface implementations)) |
| 17 | +$(LI $(RELATIVE_LINK2 shared-init,Allow initialization of shared variables.)) |
| 18 | +$(LI $(RELATIVE_LINK2 vtemplates,Add -vtemplates switch to collect and list template statistics)) |
| 19 | + |
| 20 | +) |
| 21 | + |
| 22 | +$(BUGSTITLE_TEXT_HEADER Runtime changes, |
| 23 | + |
| 24 | +$(LI $(RELATIVE_LINK2 add_exit_group,add `exit_group` to `core.sys.linux.unistd`)) |
| 25 | +$(LI $(RELATIVE_LINK2 darwin_bindings,Added module `core.sys.darwin.mach.nlist` and `core.sys.darwin.mach.stab`)) |
| 26 | +$(LI $(RELATIVE_LINK2 depercate_object_selector,Deprecated `object.selector`)) |
| 27 | +$(LI $(RELATIVE_LINK2 gc_suffixes,Memory releated GC options can now be specified with higher accuracy)) |
| 28 | + |
| 29 | +) |
| 30 | + |
| 31 | +$(BUGSTITLE_TEXT_HEADER Installer changes, |
| 32 | + |
| 33 | +$(LI $(RELATIVE_LINK2 install_sh_windows,The install script now also works on the Windows command prompt.)) |
| 34 | + |
| 35 | +) |
| 36 | + |
| 37 | +$(BUGSTITLE_TEXT_HEADER Dub changes, |
| 38 | + |
| 39 | +$(LI $(RELATIVE_LINK2 dub_root_package_target_env_vars_added,Dub root package target environment variables added)) |
| 40 | +$(LI $(RELATIVE_LINK2 improved_cli_extensibility,Improved CLI extensibility)) |
| 41 | + |
| 42 | +) |
| 43 | + |
| 44 | +$(CHANGELOG_SEP_HEADER_TEXT_NONEMPTY) |
| 45 | + |
| 46 | +$(CHANGELOG_SEP_HEADER_TEXT) |
| 47 | + |
| 48 | +$(BUGSTITLE_TEXT_BODY Compiler changes, |
| 49 | + |
| 50 | +$(LI $(LNAME2 add_traits_isCopyable,Add new builtin `__traits(isCopyable, T)` for some type `T`) |
| 51 | +$(CHANGELOG_SOURCE_FILE dmd, changelog/add_traits_isCopyable.dd) |
| 52 | +$(P |
| 53 | +Changing Phobos' `std.traits.isCopyable` to make use of this new builtin trait |
| 54 | +will reduce memory usage and, in turn, improve the performance of the compiler |
| 55 | +checking whether a type is copyable or not. |
| 56 | +) |
| 57 | +) |
| 58 | + |
| 59 | +$(LI $(LNAME2 check_interface_implementations,Properly check interface implementations) |
| 60 | +$(CHANGELOG_SOURCE_FILE dmd, changelog/check_interface_implementations.dd) |
| 61 | +$(P |
| 62 | +In previous releases the check to verify that a class implements all methods of |
| 63 | +the interfaces it implements was performed late in the compilation phase. This |
| 64 | +caused the check to not be performed when code generation was skipped |
| 65 | +(compiling with the `-o-` flag). |
| 66 | +) |
| 67 | + |
| 68 | +$(P |
| 69 | +In this release the check has been moved to an earlier phase of the compilation, |
| 70 | +causing errors to be reported even when the `-o-` flag is used. This can cause |
| 71 | +some breakage if a piece of code has only been compiled with the `-o-` flag. |
| 72 | +) |
| 73 | + |
| 74 | +$(P |
| 75 | +The compiler will now properly report an error for the following code when the |
| 76 | +`-o-` flag is used: |
| 77 | +) |
| 78 | + |
| 79 | +``` |
| 80 | +interface Foo |
| 81 | +{ |
| 82 | + void foo(); |
| 83 | +} |
| 84 | + |
| 85 | +class Bar : Foo |
| 86 | +{ |
| 87 | + |
| 88 | +} |
| 89 | +``` |
| 90 | +) |
| 91 | + |
| 92 | +$(LI $(LNAME2 shared-init,Allow initialization of shared variables.) |
| 93 | +$(CHANGELOG_SOURCE_FILE dmd, changelog/shared-init.dd) |
| 94 | +$(P |
| 95 | +Shared variables can now be initialized when the `-preview=nosharedaccess` |
| 96 | +switch is used. |
| 97 | +) |
| 98 | + |
| 99 | +--- |
| 100 | +void test() |
| 101 | +{ |
| 102 | + shared int x; |
| 103 | + shared int y = 3; |
| 104 | +} |
| 105 | +--- |
| 106 | +) |
| 107 | + |
| 108 | +$(LI $(LNAME2 vtemplates,Add -vtemplates switch to collect and list template statistics) |
| 109 | +$(CHANGELOG_SOURCE_FILE dmd, changelog/vtemplates.dd) |
| 110 | +$(P |
| 111 | +Template instantiations can consume lots of time and memory. |
| 112 | +By passing the -vtemplates switch to the compiler, |
| 113 | +the compiler will collect and print statistics about template usage |
| 114 | +in the code being compiled. |
| 115 | +) |
| 116 | + |
| 117 | +$(P |
| 118 | +For each template that was instantiated, a list of how many |
| 119 | +times it is instantiated, and how many of those instantiations |
| 120 | +are unique, is printed. |
| 121 | +) |
| 122 | +) |
| 123 | + |
| 124 | + |
| 125 | +) |
| 126 | + |
| 127 | +$(BUGSTITLE_TEXT_BODY Runtime changes, |
| 128 | + |
| 129 | +$(LI $(LNAME2 add_exit_group,add `exit_group` to `core.sys.linux.unistd`) |
| 130 | +$(CHANGELOG_SOURCE_FILE druntime, changelog/add_exit_group.dd) |
| 131 | +$(P |
| 132 | +add `exit_group` to `core.sys.linux.unistd`, exits all threads in a process, present since linux 2.5.35 |
| 133 | +) |
| 134 | +) |
| 135 | + |
| 136 | +$(LI $(LNAME2 darwin_bindings,Added module `core.sys.darwin.mach.nlist` and `core.sys.darwin.mach.stab`) |
| 137 | +$(CHANGELOG_SOURCE_FILE druntime, changelog/darwin_bindings.dd) |
| 138 | +$(P |
| 139 | +Those modules contains bindings for the 64 bits part of Mac OSX's |
| 140 | +`<mach-o/nlish.h>` and `<mach-o/stab.h>`, respectively, |
| 141 | +and can be used by users wishing to inspect binary data of Mach-O object files. |
| 142 | +) |
| 143 | +) |
| 144 | + |
| 145 | +$(LI $(LNAME2 depercate_object_selector,Deprecated `object.selector`) |
| 146 | +$(CHANGELOG_SOURCE_FILE druntime, changelog/depercate_object_selector.dd) |
| 147 | +$(P |
| 148 | +The public import of `selector` in the module `object` has been deprecated. |
| 149 | +Please explicitly import `selector` instead using: `import core.attribute : selector;` |
| 150 | +) |
| 151 | + |
| 152 | +$(P |
| 153 | +The following code has been deprecated: |
| 154 | +) |
| 155 | + |
| 156 | +``` |
| 157 | +extern (Objective-C) |
| 158 | +extern class NSObject |
| 159 | +{ |
| 160 | + static NSObject alloc() @selector("alloc"); |
| 161 | +} |
| 162 | +``` |
| 163 | + |
| 164 | +$(P |
| 165 | +Replace with: |
| 166 | +) |
| 167 | + |
| 168 | +``` |
| 169 | +import core.attribute : selector; |
| 170 | + |
| 171 | +extern (Objective-C) |
| 172 | +extern class NSObject |
| 173 | +{ |
| 174 | + static NSObject alloc() @selector("alloc"); |
| 175 | +} |
| 176 | +``` |
| 177 | +) |
| 178 | + |
| 179 | +$(LI $(LNAME2 gc_suffixes,Memory releated GC options can now be specified with higher accuracy) |
| 180 | +$(CHANGELOG_SOURCE_FILE druntime, changelog/gc_suffixes.dd) |
| 181 | +$(P |
| 182 | +Memory-related GC options stored in bytes instead of megabytes to |
| 183 | +provide fine-tune GC on low memory devices. |
| 184 | +) |
| 185 | + |
| 186 | +$(P |
| 187 | +Added ability to use suffixes B, K, M or G: |
| 188 | +) |
| 189 | +--- |
| 190 | +extern(C) __gshared string[] rt_options = |
| 191 | + [ "gcopt=minPoolSize:4K maxPoolSize:2M incPoolSize:8K" ]; |
| 192 | +--- |
| 193 | + |
| 194 | +$(P |
| 195 | +Values without suffix treated as megabytes. |
| 196 | +) |
| 197 | +) |
| 198 | + |
| 199 | + |
| 200 | +) |
| 201 | + |
| 202 | +$(BUGSTITLE_TEXT_BODY Installer changes, |
| 203 | + |
| 204 | +$(LI $(LNAME2 install_sh_windows,The install script now also works on the Windows command prompt.) |
| 205 | +$(CHANGELOG_SOURCE_FILE installer, changelog/install_sh_windows.dd) |
| 206 | +$(P |
| 207 | +The official D version manager ($(LINK2 https://dlang.org/install.sh, install.sh), |
| 208 | +documented at $(LINK2 https://dlang.org/install.html, dlang.org/install.html)) |
| 209 | +used to require a POSIX environment. On Windows, prior to this release, this |
| 210 | +meant running the script and the compilers that it installed from within a |
| 211 | +POSIX terminal emulator as provided by MSYS2 or Cygwin. With this release it is |
| 212 | +now possible to install and activate compilers from the Windows command prompt |
| 213 | +directly. |
| 214 | +) |
| 215 | + |
| 216 | +$(P |
| 217 | +Assuming an MSYS2 installation is present in `C:\msys64`, necessary decompression |
| 218 | +tools can be installed from the Windows command prompt: |
| 219 | +) |
| 220 | +------- |
| 221 | +C:\msys64\usr\bin\pacman.exe --sync unzip p7zip |
| 222 | +------- |
| 223 | + |
| 224 | +$(P |
| 225 | +The following will invoke the script directly from dlang.org and install the |
| 226 | +latest dmd compiler in the `%USERPROFILE%\dlang` folder: |
| 227 | +) |
| 228 | +------- |
| 229 | +C:\msys64\usr\bin\curl.exe https://dlang.org/install.sh | \msys64\usr\bin\bash.exe -s |
| 230 | +------- |
| 231 | +$(P |
| 232 | +This process will end with a message showing the location of `activate.bat`, |
| 233 | +which can be used to add the installed compiler to your `PATH`. |
| 234 | +) |
| 235 | + |
| 236 | +$(P |
| 237 | +The script itself will also be installed locally. This will show you its other |
| 238 | +uses: |
| 239 | +) |
| 240 | +------- |
| 241 | +C:\msys64\usr\bin\bash.exe %USERPROFILE%\dlang\install.sh --help |
| 242 | +------- |
| 243 | +) |
| 244 | + |
| 245 | + |
| 246 | +) |
| 247 | + |
| 248 | +$(BUGSTITLE_TEXT_BODY Dub changes, |
| 249 | + |
| 250 | +$(LI $(LNAME2 dub_root_package_target_env_vars_added,Dub root package target environment variables added) |
| 251 | +$(CHANGELOG_SOURCE_FILE dub, changelog/dub_root_package_target_env_vars_added.dd) |
| 252 | +$(P |
| 253 | +Environment variables `DUB_ROOT_PACKAGE_TARGET_TYPE`, `DUB_ROOT_PACKAGE_TARGET_PATH` |
| 254 | +and `DUB_ROOT_PACKAGE_TARGET_NAME` have been added and exposed. |
| 255 | +) |
| 256 | +) |
| 257 | + |
| 258 | +$(LI $(LNAME2 improved_cli_extensibility,Improved CLI extensibility) |
| 259 | +$(CHANGELOG_SOURCE_FILE dub, changelog/improved_cli_extensibility.dd) |
| 260 | +$(P |
| 261 | +The code from the runDubCommandLine was moved to some other structs. The new |
| 262 | +CommandLineHandler structure takes care of the CLI state and commands, which |
| 263 | +allows DUB commands to be extended in other projects. |
| 264 | +) |
| 265 | + |
| 266 | +$(P |
| 267 | +The CommandArgs class now has new `hasAppArgs` and `appArgs` methods which |
| 268 | +allows you to get the app arguments. In addition, the `extractAllRemainingArgs` |
| 269 | +method will return all unused arguments and the app arguments. |
| 270 | +) |
| 271 | +) |
| 272 | + |
| 273 | + |
| 274 | +) |
| 275 | + |
| 276 | +$(CHANGELOG_SEP_TEXT_BUGZILLA) |
| 277 | + |
| 278 | +) |
| 279 | +$(D_CONTRIBUTORS_HEADER 53) |
| 280 | +$(D_CONTRIBUTORS |
| 281 | + $(D_CONTRIBUTOR Adam D. Ruppe) |
| 282 | + $(D_CONTRIBUTOR aG0aep6G) |
| 283 | + $(D_CONTRIBUTOR Alexandru Militaru) |
| 284 | + $(D_CONTRIBUTOR Andrei Alexandrescu) |
| 285 | + $(D_CONTRIBUTOR Anton Oks) |
| 286 | + $(D_CONTRIBUTOR Atila Neves) |
| 287 | + $(D_CONTRIBUTOR Bastiaan Veelo) |
| 288 | + $(D_CONTRIBUTOR Ben Jones) |
| 289 | + $(D_CONTRIBUTOR blackbird) |
| 290 | + $(D_CONTRIBUTOR Boris Carvajal) |
| 291 | + $(D_CONTRIBUTOR BthereDthat) |
| 292 | + $(D_CONTRIBUTOR Cristian Creteanu) |
| 293 | + $(D_CONTRIBUTOR Denis Feklushkin) |
| 294 | + $(D_CONTRIBUTOR dkorpel) |
| 295 | + $(D_CONTRIBUTOR drug007) |
| 296 | + $(D_CONTRIBUTOR Ernesto Castellotti) |
| 297 | + $(D_CONTRIBUTOR Florian) |
| 298 | + $(D_CONTRIBUTOR guai) |
| 299 | + $(D_CONTRIBUTOR Hiroki Noda) |
| 300 | + $(D_CONTRIBUTOR Iain Buclaw) |
| 301 | + $(D_CONTRIBUTOR Jacob Carlborg) |
| 302 | + $(D_CONTRIBUTOR John Colvin) |
| 303 | + $(D_CONTRIBUTOR Kazuya Takahashi) |
| 304 | + $(D_CONTRIBUTOR Luhrel) |
| 305 | + $(D_CONTRIBUTOR Manu Evans) |
| 306 | + $(D_CONTRIBUTOR Martin Kinkelin) |
| 307 | + $(D_CONTRIBUTOR Martin Nowak) |
| 308 | + $(D_CONTRIBUTOR Mathias Lang) |
| 309 | + $(D_CONTRIBUTOR Mathis Beer) |
| 310 | + $(D_CONTRIBUTOR Mike Parker) |
| 311 | + $(D_CONTRIBUTOR MoonlightSentinel) |
| 312 | + $(D_CONTRIBUTOR Nathan Sashihara) |
| 313 | + $(D_CONTRIBUTOR Nicholas Wilson) |
| 314 | + $(D_CONTRIBUTOR Nick Treleaven) |
| 315 | + $(D_CONTRIBUTOR Nils Lankila) |
| 316 | + $(D_CONTRIBUTOR Patrick Schlüter) |
| 317 | + $(D_CONTRIBUTOR Paul Backus) |
| 318 | + $(D_CONTRIBUTOR Per Nordlöw) |
| 319 | + $(D_CONTRIBUTOR Petar Kirov) |
| 320 | + $(D_CONTRIBUTOR Pierre Grimaud) |
| 321 | + $(D_CONTRIBUTOR Rainer Schuetze) |
| 322 | + $(D_CONTRIBUTOR Razvan Nitu) |
| 323 | + $(D_CONTRIBUTOR Sebastian Wilzbach) |
| 324 | + $(D_CONTRIBUTOR Sergei Akhmatdinov) |
| 325 | + $(D_CONTRIBUTOR Simen Kjærås) |
| 326 | + $(D_CONTRIBUTOR Steven Schveighoffer) |
| 327 | + $(D_CONTRIBUTOR Tomoya Tanjo) |
| 328 | + $(D_CONTRIBUTOR Vladimir Panteleev) |
| 329 | + $(D_CONTRIBUTOR Walter Bright) |
| 330 | + $(D_CONTRIBUTOR Walter Waldron) |
| 331 | + $(D_CONTRIBUTOR welkam) |
| 332 | + $(D_CONTRIBUTOR Witold Baryluk) |
| 333 | + $(D_CONTRIBUTOR wolframw) |
| 334 | +) |
| 335 | +$(D_CONTRIBUTORS_FOOTER) |
| 336 | +$(CHANGELOG_NAV_INJECT) |
| 337 | + |
| 338 | +Macros: |
| 339 | + VER=2.093.0 |
| 340 | + TITLE=Change Log: $(VER) |
0 commit comments