Change Log - D Programming Language 1.0 - Digital Mars

D Programming Language 1.0

- Wiki
- Search
- Downloads
- Home

Last update Mon Apr 6 02:37:15 2009

# D Change Log

- What's new for D 1.00
- What's new for D 0.178
- What's new for D 0.177
- What's new for D 0.176
- What's new for D 0.175
- What's new for D 0.174
- What's new for D 0.173
- What's new for D 0.172
- What's new for D 0.171
- What's new for D 0.170
- What's new for D 0.169
- What's new for D 0.168
- What's new for D 0.167
- What's new for D 0.166
- What's new for D 0.165
- What's new for D 0.164
- What's new for D 0.163
- What's new for D 0.162
- What's new for D 0.161
- What's new for D 0.160
- What's new for D 0.159
- What's new for D 0.158
- What's new for D 0.157
- What's new for D 0.156
- What's new for D 0.155
- What's new for D 0.154
- What's new for D 0.153
- What's new for D 0.152
- What's new for D 0.151
- What's new for D 0.150
- What's new for D 0.149
- What's new for D 0.148
- What's new for D 0.147
- What's new for D 0.146
- What's new for D 0.145
- What's new for D 0.144
- What's new for D 0.143
- What's new for D 0.142
- What's new for D 0.141
- What's new for D 0.140
- older versions
- Download D compiler for Win32 and x86 linux
- tech support

Version D 1.00 Jan 2, 2007

#### New/Changed Features

- -v flag now outputs imports
- added std.c.linux.pthread

#### Bugs Fixed

- Fixed Bugzilla 552: Internal error: ..\ztc\cg87.c 1327 on in-function modulo of imaginary number
- Fixed Bugzilla 553: Assertion failure: '0' on line 609 in file 'constfold.c' on modulo of complex number
- Fixed Bugzilla 694: Doc mistake: a == null is not a.opCmp(null)
- Fixed Bugzilla 699: long variadic arguments and the "-profile" flag
- Fixed Bugzilla 702: inline assembler: "SMSW r32" fails to compile
- Fixed Bugzilla 703: SuperExp::scanForNestedRef Assertion
- Fixed Bugzilla 728: incorrect initialisation of member arrays if an explicit struct initializer is used
- Fixed Bugzilla 731: Positive and negative NaN in template arguments causes link conflict
- Fixed Bugzilla 734: Multidimensional arrays use incorrect initializer
- Fixed Bugzilla 745: recursive typeof in function declaration crashes cc1d
- Fixed Bugzilla 748: internal error with mixed static / dynamic array
- Fixed Bugzilla 749: Internal error: toir.c 170 with lazy bool and delegate with default argument
- Fixed Bugzilla 750: Recursive typeof in function declaration crashes DMD
- Fixed Bugzilla 751: Compiler segfault on template expansion
- Fixed Bugzilla 752: Assertion failure: 'e->type->ty != Ttuple' on line 4518 in file 'mtype.c'
- Fixed Bugzilla 753: Minor Misspelling in Class Spec Page
- Fixed Bugzilla 754: hex strings crash DMD when reporting syntax errors
- Fixed Bugzilla 757: Some debug code was not removed from statement.c
- Fixed Bugzilla 760: std.c.stdlib does not include system(3)
- Fixed Bugzilla 763: Segfault compiling template code on Linux
- Fixed Bugzilla 764: (typeof(o)).classinfo causes parser error
- Fixed Bugzilla 765: ArrayBoundsError when assigning slice of pointer
- Fixed Bugzilla 766: dmd.exe crash
- Fixed Bugzilla 770: enums and typecasts
- Fixed Bugzilla 771: template func returns delegate w. param list from tuple and type, odd compiler error
- Fixed Bugzilla 772: Bogus error using relation operator as static if expression within template
- Fixed Bugzilla 773: Redundant "Error: " in std.conv.ConvError
- Fixed Bugzilla 775: array literals can't be used as template arguments
- Fixed Bugzilla 777: -inline: assert() with a non-constant message causes code to not compile
- Fixed Bugzilla 778: -inline: Assertion failure: '!v->csym' on line 450 in file 'glue.c'
- Fixed Bugzilla 779: init.c:103: virtual Expression* VoidInitializer::toExpression(): Assertion `0' failed.

Version D 0.178 Dec 23, 2006

#### New/Changed Features

- Implemented Named Return Value Optimization
- If the first element of an array literal is a static array, it is converted to a dynamic array.
- Empty ; no longer allowed after conditional statements, see Bugzilla 576.

#### Bugs Fixed

- Fixed Bugzilla 39: ArrayMemberInitialization, StructMemberInitializer inconsistencies from dmd's behavior
- Fixed Bugzilla 40: DecimalFloat spec doesn't match dmd behavior
- Fixed Bugzilla 238: Cannot initialise const field from foreach loop on associative array
- Fixed Bugzilla 265: Selective import from renamed import behaves strangely
- Fixed Bugzilla 576: version.html - ConditionalStatement grammar doesn't make sense
- Fixed Bugzilla 577: statement.html - NonEmptyStatement grammar lists DebugStatement and VersionStatement, which are not defined
- Fixed Bugzilla 612: Associative arrays ignore opEquals, contrary to the spec
- Fixed Bugzilla 630: Obscure, unimplemented features related to in/out contracts
- Fixed Bugzilla 631: Spelling errors in DMD distribution
- Fixed Bugzilla 634: writef doesn't work on enums
- Fixed Bugzilla 635: regression: looping "Error: outer class Outer 'this' needed to 'new' nested class Inner"
- Fixed Bugzilla 650: Assertion failure: '0' on line 774 in file 'expression.c'
- Fixed Bugzilla 651: Assertion failure: 'global.errors' on line 2622 in file 'template.c'
- Fixed Bugzilla 654: Const string member using implicit type inference gives garbage in certain situation
- Fixed Bugzilla 661: Error using a zero-init struct's init property
- Fixed Bugzilla 663: Slice assignment does not bounds check when it should
- Fixed Bugzilla 665: missing functions in std.c.linux.linux
- Fixed Bugzilla 667: incorrect value for std.socket.SocketShutdown.BOTH
- Fixed Bugzilla 669: (a == b) misuses opCmp and opEquals
- Fixed Bugzilla 672: Compiler endless loop with nested class object
- Fixed Bugzilla 673: ABI as documented is 32 bit specific.. how about 64 bits?
- Fixed Bugzilla 681: Array -- Implicit type doc updates needed
- Fixed Bugzilla 682: dmd segfault with vararg template
- Fixed Bugzilla 683: New: dmd segv, this ain't the same as bug 682
- Fixed Bugzilla 684: dmd should compile this
- Fixed Bugzilla 685: dmd assertion failure
- Fixed Bugzilla 686: [Regression] opCast of a struct or union is called in nonsensical circumstances
- Fixed Bugzilla 687: DDoc doesn't document anonymous enums
- Fixed Bugzilla 688: Implicit function template match doesn't work for classes
- Fixed D.announce/6072
- Fixed D/45058 items 1, 2 and 4
- Fixed D.bugs/6300: Assertion failure: '0' on line 704 in file 'expression.c'
- Fixed c++/5355

Version D 0.177 Dec 9, 2006

#### New/Changed Features

- Casting a value v to a struct S is now rewritten as S(v).
- Initializing a struct S from a value v is now rewritten as S(v).
- TypeInfo now always generated for enum, struct, and typedef's, to enable more thorough rtti.
- classinfo.name now has the fully qualified name
- Arrays no longer implicitly convert to pointers unless -d is used.
- Need to recompile because:
  - Improved name mangling for floating point constants
  - Nested and member functions needing 'this' are preceded by 'M' in the mangled type.

#### Bugs Fixed

- Doc fixed for Bugzilla 510: Nonworking implicit conversions between arrays and pointers
- Doc fixed for Bugzilla 511: Various problems in the documentation
- Doc fixed for Bugzilla 567: Compiler crash with conflicting templates
- Fixed Bugzilla 607: toString can't handle char[]
- Fixed Bugzilla 628: Assertion failure: '0' on line 91 in file 'init.c'
- Fixed Bugzilla 636: Excessive "1: " in error message
- Fixed Bugzilla 637: internal symbols are missing the leading underscore
- Fixed Bugzilla 638: additional leading D in symbol D_D3std9dateparse9DateParse8classifyFAaZE3std9dateparse9DateParse2DP6DateID6__initZ
- Fixed Bugzilla 653: AAs are slightly broken
- Fixed Bugzilla 656: lazy in main

Version D 0.176 Dec 2, 2006

#### New/Changed Features

- Added std.bind.
- Need to recompile because:
  - Associative arrays now are PTRSIZE, not PTRSIZE*2.
  - Destructors no longer stored in vtbl[].
  - "_arguments" now passed differently to variadic functions.
  - Improved name mangling, see D.announce/5791 and D.announce/5759.

#### Bugs Fixed

- Fixed Bugzilla 221: Inconsistent name mangling of bool (a relic of 'bit') [Patch included]
- Fixed Bugzilla 294: DDoc: Function templates get double and incomplete documentation
- Fixed Bugzilla 500: Struct Initializers conflict with Delegate Literals in initializers
- Fixed Bugzilla 501: Bad interaction between 'with' and IFTI in template methods
- Fixed Bugzilla 503: Names of arguments to atan2 are backwards
- Fixed Bugzilla 505: rdmd and dmd do not correctly preserve program arguments with spaces.
- Fixed Bugzilla 507: Error: 'this' is required, but ... is not a base class of ...
- Doc fixed for Bugzilla 508: All members of an array need not be initialised
- Doc fixed for Bugzilla 509: [wd]char[1] does not convert to [wd]char
- Doc fixed for Bugzilla 510: Nonworking implicit conversions between arrays and pointers
- Doc fixed for Bugzilla 511: Various problems in the documentation
- Fixed Bugzilla 513: using struct initializer on static array crashes the compiler
- Fixed Bugzilla 514: Misleading error message for static const initialisation
- Fixed Bugzilla 517: std.compiler outdated
- Fixed Bugzilla 521: frontend: incorrect error(Loc, const char*, char*) declaration in mars.h
- Fixed Bugzilla 522: frontend: 64-bit format string cleanup
- Fixed Bugzilla 524: Compiler crash when compiling
- Fixed Bugzilla 530: segfault assigning array literal to a non-array const
- Fixed Bugzilla 534: IPF trying to initialize an associative array
- Fixed Bugzilla 550: Shifting by more bits than size of quantity is allowed
- Fixed Bugzilla 554: Division by zero results in two identical errors
- Fixed Bugzilla 555: Integral ireal literals can't be specified
- Fixed Bugzilla 557: ICE returning a tuple from a function (Assertion failure: '0' on line 694 in file 'glue.c')
- Fixed Bugzilla 560: Cannot escape reference to variadic parameter
- Fixed Bugzilla 562: Source file without BOM starting with non-ASCII compiles and runs
- Fixed Bugzilla 564: Setting predefined versions on the command line causes crashes
- Fixed Bugzilla 567: Compiler crash with conflicting templates
- Fixed Bugzilla 574: DMD uses D calling convention for returning complex floats from functions with C calling convention
- Fixed Bugzilla 585: dmd crashes with segmentation fault
- Fixed Bugzilla 587: DMD crashes compiling char[][] initialization
- Fixed Bugzilla 589: std.string.newline should be char[] not char[2]
- Fixed Bugzilla 591: version=LittleEndian crash the compiler
- Fixed Bugzilla 593: can't deduce from arrayliteral
- Fixed Bugzilla 597: std.socket TcpSocket and UdpSocket are missing.
- Fixed Bugzilla 598: missing reentrant Linux functions
- Fixed Bugzilla 610: Undocumented behaviour: ~ and ~= can now concatenate an array with a single element
- Fixed Bugzilla 613: Error message still states that '===' and '!==' are merely deprecated
- Fixed Bugzilla 618: The following program crashes dmd.exe 0.175
- Fixed Bugzilla 619: Alias of templated struct instance crashes 0.175

Version D 0.175 Nov 25, 2006

#### New/Changed Features

- Added == super to IsExpressions.
- Class variables declared with scope are now allocated on the stack.

#### Bugs Fixed

- Fixed Bugzilla 222: Internal error: ..\ztc\cod1.c 1656" with && and ||
- Fixed Bugzilla 228: Crash on inferring function literal return type after prior errors
- Fixed Bugzilla 311: Object files missing certain template instantiations
- Fixed Bugzilla 331: performance bug in std.uni.toUniLower / std.uni.toUniUpper
- Incorporated Bugzilla 332: typesafe variadic functions and lazy argument support for std.demangle
- Fixed Bugzilla 343: Compile error using mixin containing struct
- Fixed Bugzilla 349: Function matching with enums is erratic
- Fixed Bugzilla 352: Assertion failure: expression.c 753 - concatenating strings in a template calling another template
- Fixed Bugzilla 353: null passed as a char[] template argument, concatenated with a string literal, is a non-constant expression
- Fixed Bugzilla 354: Internal error: e2ir.c 772 with bad template use
- Fixed Bugzilla 355: ICE from enum : nonexistent type
- Incorporated Bugzilla 363 XHTML support
- Fixed Bugzilla 364: Mysterious access violation when using delegate()[1]... parameter
- Fixed Bugzilla 373: Spec problems with TypeInfo: error and omission.
- Fixed Bugzilla 378: Assertion failure: '0' on line 216 in file 'init.c'
- Fixed Bugzilla 379: wrong thisptr type in typedef'ed struct
- Fixed Bugzilla 380: cannot use typeof(*this) in a static context
- Fixed Bugzilla 384: Different behaviour when compiling as separate object files
- Fixed Bugzilla 389: Cannot link to std.path.altsep
- Fixed Bugzilla 429: Unable to distinguish between empty and uninitialized dynamic arrays
- Fixed Bugzilla 433: A deprecated, same-named alias screws up resolution of imports
- Fixed Bugzilla 443: assignment in return when using cdouble is broken
- Fixed Bugzilla 444: Inside a foreach with delegates, void return does not compile
- Fixed Bugzilla 446: Anonymous class and "return without calling constructor"
- Fixed Bugzilla 460: Assertion failure: '!needThis()' on line 143 in file 'tocsym.c'
- Fixed Bugzilla 464: 64bit clean dchar.c
- Fixed Bugzilla 465: errors when trying to use static templated methods
- Fixed Bugzilla 466: dmd prevent this from link, if so please prevent it from compiling
- Fixed Bugzilla 467: double inheritance from the same interface
- Fixed Bugzilla 468: argument wrongfully identified as type in template instantiation
- Fixed Bugzilla 471: Protection attributes of mixin instances are applied in a wrong scope.
- Fixed Bugzilla 475: DMD segfault on recursive variadic template
- Fixed Bugzilla 476: DMD doesn't resolve its location properly on Windows
- Fixed Bugzilla 478: can't compare arrayliteral statically with variable
- Fixed Bugzilla 480: too many initializers error message doesn't give line number
- Fixed Bugzilla 486: Writefln on null object should not trigger access error.
- Fixed Bugzilla 488: regression: recursive typeof segmentfaults
- Fixed Bugzilla 490: Static struct initializer without static attribute aborts dmd with assertion
- Fixed Bugzilla 525: can't use array variable in typetuple index
- Fixed D.announce/5464
- Fixed problem with ForStatement scope.

Version D 0.174 Nov 14, 2006

#### New/Changed Features

- Implemented std.typetuple.
- Implemented std.traits.
- Added .funcptr property for delegates.
- Added .tupleof property for structs and classes.
- Slicing and indexing of type tuples now supported.
- Variable declarations can now be declared with type tuples.
- Improved the statement grammar thanks to Stewart Gordon.
- Added DMD switch -v1 for D language 1.0 compatibility.
- deprecated === and !== no longer allowed
- deprecated `iftype` no longer allowed
- deprecated `on_scope_xxxx` no longer allowed
- deprecated 'l' numeric literal suffix no longer allowed
- deprecated `if (v; e)` no longer allowed
- deprecated `instance` no longer allowed
- scope can now be used for RAII declarations; use auto for type inference.

#### Bugs Fixed

- Fixed Bugzilla 462: invalid typeinfo usage breaks dmd compiler
- Fixed Bugzilla 469: Incorrect documentation in std.date
- Fixed Bugzilla 477: Malformed URL in documentation
- Issues error now for Bugzilla 483: ICE-invalid with tuple. mangleof.
- Fixed Bugzilla 484: Compiler segfault with template variadic used as a template alias
- Fixed Bugzilla 489: .classinfo not working with fqn
- Fixed Bugzilla 491: Create directories necessary for writing files when using -Dd and -Hd option
- Fixed Bugzilla 494: template's variadic argument can't use as type
- Fixed Bugzilla 495: ICE passing variadic arglist to another variadic template
- Incorporated Bugzilla 496: frontend: 64-bit cleanup of utf_decode
- Incorporated Bugzilla 497: frontend: 64-bit cleanup of sprintf buffer sizes
- Fixed Bugzilla 498: Signal mixins need to import
- Fixed Bugzilla 499: Multiple overrides of the destructor when using signals
- Incorporated D/43595 suggestions
- Fixed D/43649 crash
- Fixed D.bugs/8856
- Fixed D.announce/5290

Version D 0.173 Nov 1, 2006

#### New/Changed Features

- Template instantiations can now accept alias parameters for local variables and nested functions.
- Enhancement Bugzilla 333 std.c.locale
- Implemented Signals and Slots.
- Incorporated D.announce/5104 as std.cpuid.
- Implemented variadic template parameters

#### Bugs Fixed

- Fixed IFTI bug deducing types from struct templates
- Fixed D/43122 crash
- Fixed Bugzilla 445: debugging artifact: DeclarationExp::scanForNestedRef
- Fixed/Incorporated Bugzilla 330: std.string.tolower / std.string.toupper broken for non-ASCII strings
- Documented Bugzilla 350: Modulo for negative values is undefined
- Incorporated Bugzilla 448: frontend: redefinition of size_t
- Incorporated Bugzilla 449: frontend: html.h and complex_t.h are unprotected against multiple inclusion
- Incorporated Bugzilla 450: frontend: please use <stdint.h> to increase portability
- Incorporated Bugzilla 451: frontend: redundant function definitions
- Fixed Bugzilla 457: notifyRelease: debugging artifacts

Version D 0.172 Oct 18, 2006

#### New/Changed Features

#### Bugs Fixed

- Fixed again Bugzilla 440: dmd.170 fails to mark final methods as implementations of abstract ones
- Fixed Bugzilla 441: Crash on foreach of mixed-in aggregate
- Fixed Bugzilla 442: Crash on foreach of mixed-in aggregate

Version D 0.171 Oct 18, 2006

#### New/Changed Features

#### Bugs Fixed

- Incorporating overlooked Bugzilla 429 change.
- Fixed Bugzilla 440: dmd.170 fails to mark final methods as implementations of abstract ones

Version D 0.170 Oct 17, 2006

#### New/Changed Features

- Added foreach_reverse.
- Delegates can now be the 'aggregate' for the foreach.
- final member functions that do not override any are no longer placed in the _vtbl[]. This means that code with classes deriving from such classes need to be recompiled.
- null is now an exact match for null pointers, delegates, arrays, class objects, etc.

#### Bugs Fixed

- Fixed Bugzilla 407
- Fixed Bugzilla 410
- Fixed Bugzilla 411
- Fixed Bugzilla 412
- Fixed Bugzilla 414
- Fixed Bugzilla 416
- Incorporated Bugzilla 417
- Fixed Bugzilla 418
- Fixed Bugzilla 419
- Fixed Bugzilla 420
- Fixed Bugzilla 422
- Fixed Bugzilla 426
- Fixed Bugzilla 427
- Fixed Bugzilla 428 (updated doc)
- Incorporated Bugzilla 429
- Fixed Bugzilla 430 (changed spec)
- Fixed Bugzilla 431
- Fixed Bugzilla 436

Version D 0.169 Oct 7, 2006

#### New/Changed Features

#### Bugs Fixed

- Improved optimization of div/mod combinations.
- Fixed D/42668
- Fixed D.announce/4869
- Fixed D.bugs/8605
- Fixed Bugzilla 351
- Fixed Bugzilla 377
- Fixed Bugzilla 381
- Fixed Bugzilla 382
- Fixed Bugzilla 386
- Fixed Bugzilla 391
- Fixed Bugzilla 394
- Fixed Bugzilla 395, but there are probably more UTF bugs in std.regexp.
- Fixed Bugzilla 396
- Fixed Bugzilla 397
- Fixed Bugzilla 402
- Fixed Bugzilla 404
- Fixed Bugzilla 405

Version D 0.168 Oct 2, 2006

#### New/Changed Features

- Added .ptr property for delegates.
- Added .outer property for nested class instances.
- Can now initialize stack variables with array literals.
- Array literals can now be cast to [][] types.
- Mixins can now insert multiple destructors.

#### Bugs Fixed

- Fixed D.bugs/8408
- Fixed Bugzilla 104
- Fixed Bugzilla 291
- Fixed Bugzilla 315
- Fixed Bugzilla 347
- Fixed Bugzilla 356
- Incorporated Bugzilla 363
- Fixed Bugzilla 365
- Fixed Bugzilla 367
- Fixed Bugzilla 368
- Fixed Bugzilla 369
- Fixed Bugzilla 370
- Fixed Bugzilla 371
- Fixed Bugzilla 372
- Fixed Bugzilla 374
- Fixed Bugzilla 385
- Fixed Bugzilla 392

Version D 0.167 Sep 18, 2006

#### New/Changed Features

- Implemented Stewart Gordon's suggestions per D.bugs/3843.
- Added std.c.windows.stat.
- Added std.file.getTimes().
- Added support for multidimensional array allocation with NewExpression.
- Added array literals.
- std.format will now work with struct arguments as long as they define a `char[] toString()` member function.

#### Bugs Fixed

- Fixed dmd segfault on void inits of statics.
- Fixed D.bugs/8247
- Fixed Bugzilla 285
- Fixed Bugzilla 289
- Fixed Bugzilla 296
- Fixed Bugzilla 297
- Fixed Bugzilla 303
- Fixed Bugzilla 308
- Fixed Bugzilla 311
- Fixed Bugzilla 324
- Fixed Bugzilla 325
- Fixed Bugzilla 326
- Fixed Bugzilla 328
- Fixed Bugzilla 329
- Fixed Bugzilla 334
- Fixed Bugzilla 335
- Fixed Bugzilla 336
- Fixed Bugzilla 344

Version D 0.166 Aug 30, 2006

#### New/Changed Features

- Upgraded zlib from 1.2.1 to 1.2.3 per Bugzilla 286
- Removed implicit conversion to delegates, except in the case of typesafe variadic arguments.
- Replaced with lazy parameter storage class per Tomasz Stachowiak's suggestion D/41633.
- Incorporated Oskar Linde's patches to support member templates.

#### Bugs Fixed

- Fixed Bugzilla 295
- Fixed Bugzilla 300
- Fixed Bugzilla 301
- Fixed Bugzilla 304
- Fixed Bugzilla 306

Version D 0.165 Aug 20, 2006

#### New/Changed Features

- Added implicit conversion of expressions to delegates.

#### Bugs Fixed

- Fixed Bugzilla 170
- Fixed Bugzilla 292
- Fixed dstress class_26_A and dstress class_26_B

Version D 0.164 Aug 11, 2006

#### New/Changed Features

- Added DDOC_COMMENT macro to Ddoc.

#### Bugs Fixed

- Added a couple needed publics to std.thread per Dave Fladebo
- Fixed D.bugs/7923
- Fixed D.bugs/7928
- Fixed D.bugs/8028
- Fixed dstress mangleof_16_A
- Fixed dstress bug_cgcod_1667_A
- Fixed dstress bug_type_308_B
- Fixed Bugzilla 256 (revised documentation to reflect intended behavior)
- Fixed Bugzilla 262 (added suggested documentation)
- Fixed Bugzilla 264 (made static import with bind list illegal)
- Fixed Bugzilla 269
- Fixed Bugzilla 270
- Fixed Bugzilla 272
- Fixed Bugzilla 273
- Fixed Bugzilla 274
- Fixed Bugzilla 276
- Fixed Bugzilla 278
- Fixed Bugzilla 279

Version D 0.163 Jul 18, 2006

#### New/Changed Features

- Object.opCmp now throws an error. Should override it if used. Breaks existing code.
- Imports now default to private instead of public. Breaks existing code.
- Added static imports, renamed imports, and selective importing.

#### Bugs Fixed

- Added documentation per Stewart Gordon's suggestion D/21572
.
- Fixed Bugzilla 232
- Fixed Bugzilla 236
- Fixed Bugzilla 239
- Fixed Bugzilla 240
- Fixed Bugzilla 241
- Fixed Bugzilla 246
- Fixed Bugzilla 247
- Fixed Bugzilla 248
- Fixed Bugzilla 249
- Fixed Bugzilla 250
- Private module members now inaccessible from other modules.

Version D 0.162 Jun 22, 2006

#### New/Changed Features

#### Bugs Fixed

- Fixed D.bugs/7620
- Fixed D.bugs/7627
- Fixed D.bugs/7630
- Fixed Bugzilla 125
- Fixed Bugzilla 135
- Fixed Bugzilla 138
- Fixed Bugzilla 145
- Fixed Bugzilla 147
- Fixed Bugzilla 154
- Fixed Bugzilla 155
- Fixed Bugzilla 167
- Fixed Bugzilla 172
- Fixed Bugzilla 179 (first example is an error now diagnosed, following two now work correctly)
- Fixed Bugzilla 180
- Fixed Bugzilla 181 (changed documentation)
- Fixed Bugzilla 184
- Fixed Bugzilla 185
- Fixed Bugzilla 193
- Fixed Bugzilla 197
- Fixed Bugzilla 200 (changed spec to allow ';' as empty statement for labelled statement)
- Fixed Bugzilla 205
- Fixed Bugzilla 210
- Fixed Bugzilla 225

Version D 0.161 Jun 19, 2006

#### New/Changed Features

- Added opIn_r operator overload.
- Function return types for lambda delegates can now be inferred.
- delegate keyword now optional for lambda delegates.
- Shadowing local variable declarations is now deprecated.
- New function template syntax.

#### Bugs Fixed

- Fixed D.bugs/5957
- Fixed D.bugs/5958
- Fixed D.bugs/7399
- Folded in D.bugs/7509
- Fixed D.bugs/7518
- Fixed Bugzilla 14 (fixed documentation to explain error)
- Fixed Bugzilla 29
- Fixed Bugzilla 34
- Fixed Bugzilla 36 (better error message)
- Fixed Bugzilla 47
- Fixed Bugzilla 51 according to Bruno's analysis
- Fixed Bugzilla 57 in 0.151
- Fixed Bugzilla 59
- Fixed Bugzilla 74
- Fixed Bugzilla 75
- Fixed Bugzilla 76
- Fixed Bugzilla 85 (now issues error message)
- Fixed Bugzilla 96 (fixed documentation)
- Fixed Bugzilla 103
- Fixed Bugzilla 106
- Fixed Bugzilla 113 (thanks to Artem Rebrov)
- Fixed Bugzilla 116 (use offsetof rather than offset)
- Fixed Bugzilla 119
- Fixed Bugzilla 120
- Fixed Bugzilla 123
- Fixed Bugzilla 128
- Fixed Bugzilla 130
- Fixed Bugzilla 134 (again)
- Fixed Bugzilla 159 (better error message)
- Fixed Bugzilla 160
- Fixed Bugzilla 192
- Fixed Bugzilla 202

Version D 0.160 Jun 4, 2006

#### New/Changed Features

- Documentation is much more controlled by style sheets now.
- AssertExpression's can now take an optional informational string as the second parameter. Static assert's can, too.
- Added Expression.NewExpression so inner classes can be initialized more conveniently.
- Added operator overloading of InExpression.
- For Windows, looks for sc.ini in:
  1. The current working directory
  2. The directory specified by the HOME environment variable
  3. The directory dmd.exe resides in
- For Linux, looks for dmd.conf in:
  1. The current working directory
  2. The directory specified by the HOME environment variable
  3. directory dmd resides in
  4. /etc/

#### Bugs Fixed

- Fixed Bugzilla 50, but the o must appear as `o.new Inner`
- Fixed Bugzilla 139
- Fixed Bugzilla 148
- Fixed Bugzilla 149
- Fixed Bugzilla 156
- Fixed Bugzilla 158
- Fixed Bugzilla 168
- Fixed Bugzilla 173
- Incorporated Artem Rebrov's fix D.bugs/7345
- Line number debug info now generated for inline asm.

Version D 0.159 May 26, 2006

#### New/Changed Features

#### Bugs Fixed

- Fixed Bugzilla 134 (again!)
- Fixed D.bugs/7325

Version D 0.158 May 22, 2006

#### New/Changed Features

- Added DDOC_DITTO Ddoc macro to address D.bugs/7152.
- Ddoc now emits module COPYRIGHT macro by default to address D.bugs/7148.
- dmd now lists -gc switch to address D.bugs/7187.
- For Bugzilla 77, dmd now stops after first static assert error, and before template expansions after errors.

#### Bugs Fixed

- Fixed Bugzilla 44
- Fixed Bugzilla 54
- Fixed Bugzilla 65, including dstress interface_23_D.d
- Fixed Bugzilla 79
- Fixed Bugzilla 83
- Fixed Bugzilla 89
- Fixed Bugzilla 97
- Fixed Bugzilla 108
- Fixed Bugzilla 110
- Fixed Bugzilla 115
- Fixed Bugzilla 118
- Fixed Bugzilla 121
- Fixed Bugzilla 126
- Fixed Bugzilla 127
- Fixed Bugzilla 132
- Fixed Bugzilla 133
- Fixed Bugzilla 134
- Fixed Bugzilla 141
- Fixed Bugzilla 142
- Fixed Bugzilla 151
- Fixed Bugzilla 153
- Fixed D.bugs/7147
- Fixed D.bugs/7191
- Fixed D.bugs/7204
- Fixed D.bugs/7218
- Fixed c++.beta/512
- Fixed Dstress bug_cg87_2393_A
- Added -m32 to linux link per D.bugs/7264

Version D 0.157 May 10, 2006

#### New/Changed Features

- Partial Dwarf symbol debug info now generated for Linux.
- Improved dumpobj's handling of Dwarf symbolic debug info.

#### Bugs Fixed

- Applied Dave Fladebo's fix to gc internal sorting problem.

Version D 0.156 Apr 28, 2006

#### Bugs Fixed

- Fixed Bugzilla 117

Version D 0.155 Apr 27, 2006

#### New/Changed Features

- Added Microsoft windbg.exe Win32 debugger.
- Removed std.recls, instead use http://synesis.com.au/software/recls/.
- Incorporated Dave Fladebo's changes:

- std.regexp speedups.
- Fixed a bug in pauseHandler whereby the stackTop was being overwritten by subsequently resumed threads causing a crash in gcx.mark(). (The fix was to just move sem_post(&flagSuspend); to right before the sigsuspend loop).
- Moved linux semaphore declarations to std/c/linux/linux.d
- Changed void wait(uint milliseconds){} to be a timed wait function instead of just a stub for void wait() {} on linux (it is comparable to the Win32 Thread method now). This is implemented with pthread mutexes and conditions and the extra overhead to initialize phobos Threads does not result in slower executables (Threads, GC and startup time are not effected).
- Changed the allThreads static array size to the same as Windows. This in conjunction w/ the stack size change will allow the creation of more than 100 threads on linux for better compatibility w/ the Win32 version.
- Added optional stack size parameter to constructors. Since the stackBottom is static when the threads are created and the stackTop is dynamic based on the stack pointer (or context for Win32), allowing the threads to be created with a non-default stack size shouldn't interfere with the GC. This adds little overhead to either the Win32 or Linux Thread implementations.

#### Bugs Fixed

- Fixed D.bugs/7029
- Fixed D.bugs/7043
- Fixed Bugzilla 10
- Fixed Bugzilla 13
- Fixed Bugzilla 15
- Fixed Bugzilla 23
- Fixed Bugzilla 30
- Fixed Bugzilla 33
- Fixed Bugzilla 35
- Fixed Bugzilla 105

Version D 0.154 Apr 11, 2006

#### New/Changed Features

- Numeric suffix 'l' now deprecated, use 'L' instead.
- Floating point suffix 'I' now deprecated, use 'i' instead.

#### Bugs Fixed

- Removed --gc_sections, it causes exception handling to fail.

Version D 0.153 Apr 7, 2006

#### New/Changed Features

- Changed parameter types for std.date.MakeDate and std.date.MakeTime so they won't overflow.
- Changed arraycat per suggestion D.announce/3400.
- Added -nofloat compiler switch to suppress generation of __fltused reference by library code (Windows only).
- dmd for Linux now adds --gc-sections switch to the link step to enable smart linking.
- Nested functions now are placed in their own distinct code sections to facilitate smart linking.

#### Bugs Fixed

- Removed floating point dependency from std.date.
- Fixed Bugzilla 45
- Fixed Bugzilla 84
- Fixed Bugzilla 86
- Fixed Bugzilla 87
- Fixed Bugzilla 90
- Fixed Bugzilla 92
- Fixed Bugzilla 94
- Fixed Bugzilla 95

Version D 0.152 Apr 3, 2006

#### Bugs Fixed

- Non-debug phobos.lib build included.

Version D 0.151 Apr 2, 2006

#### New/Changed Features

- Changed the hash type from uint to hash_t. This will make 64 bit implementations better.

#### Bugs Fixed

- Fixed D/35845
- Fixed D.bugs/6662
- Fixed D.bugs/6743
- Fixed D.bugs/6823
- Fixed D.bugs/6838 (now diagnoses an error at compile time)
- Fixed Bugzilla 55
- Fixed Bugzilla 56
- Fixed Bugzilla 57
- Fixed Bugzilla 58
- Cannot reproduce Bugzilla 60
- Fixed Bugzilla 61
- Fixed Bugzilla 62
- Fixed Bugzilla 65
- Fixed Bugzilla 66
- Fixed Bugzilla 67
- Fixed Bugzilla 73

Version D 0.150 Mar 18, 2006

#### New/Changed Features

- Implicit conversion of reals and imaginaries to complex is no longer allowed per Don Clugston's suggestion.
- Moved string.h functions from std.string to std.c.string.
- Now supports covariant interface method returns.

#### Bugs Fixed

- Fixed Ddoc problem with auto declarations.
- Fixed Ddoc problem with extern (C) function formatting.
- Fixed Internal error: cg87 1297
- Fixed D.bugs/6425
- Fixed D.bugs/6533
- Fixed D.bugs/6547
- Fixed Bugzilla 5
- Fixed Bugzilla 17
- Fixed Bugzilla 19
- Fixed Bugzilla 20
- Fixed Bugzilla 25
- Fixed Bugzilla 26
- Fixed Bugzilla 27

Version D 0.149 Mar 7, 2006

#### New/Changed Features

- Changed on_scope_exit to scope(exit)
- Changed on_scope_success to scope(success)
- Changed on_scope_failure to scope(failure)
- Changed IfStatement to allow: `(auto v = expression)`, and `(type v = expression)` forms.
- & | ^ &= |= ^= ! && || ?: are now only operators allowed on bools
- opSliceAssign now overloads assignment to a slice.
- Added std.c.fenv.
- Added limited support for implicit function template instantiation.

#### Bugs Fixed

- Fixed bit problem with phobos\internal\gc\gcbits.d
- Fixed D.bugs/6399
- Fixed D.bugs/6419
- Implicit casts of non-bool to bool disallowed
- Fixed code gen bugs for OnScopeGuardStatements.

Version D 0.148 Feb 25, 2006

#### New/Changed Features

- Removed MatchExpressions.
- foreach loops can now implicitly determine the types in the ForeachTypelist.
- IfStatements can now have an optional variable implicitly declared and assigned the value of the Expression.
- Removed bit basic type.
- Added bool basic type.
- Added BitArray.
- Added On Scope Statements.

#### Bugs Fixed

- Fixed D.bugs/6277
- Fixed D.bugs/6280
- Fixed D.bugs/6288
- Fixed D.bugs/6301
- Fixed D.bugs/6302
- Fixed D.bugs/6303
- Fixed D.bugs/6304
- Fixed D.bugs/6305
- Fixed D.bugs/6327
- Fixed D.bugs/6333

Version D 0.147 Feb 12, 2006

#### New/Changed Features

- Renamed std.regexp.RegExpError to RegExpException.
- -run switch changed so that the source file to compile must appear immediately after it.
- Added MatchExpressions
.

#### Bugs Fixed

- Incorporated Dave Fladebo's fixes for std.process.spawnvp() on Linux.
- Fixed D.bugs/6196
- Fixed D.bugs/6225
- Fixed D.bugs/6231
- Fixed D.bugs/6238
- Fixed D.bugs/6251
- Fixed D.bugs/6252
- Fixed D.bugs/6260
- Fixed D.bugs/6264
- Fixed D/33201

Version D 0.146 Feb 9, 2006

#### New/Changed Features

- Improvements to the functionality of std.file.listdir().
- Removed the long-deprecated instance keyword.
- Ignores first line starting with #!, D/32661.
- Added -run command line switch.
- Added module statements to all std.typeinfo modules. This may require recompiling library code.

#### Bugs Fixed

- Fixed D/32444
- Fixed D.bugs/4829
- Fixed D.bugs/5851, D.bugs/2677, D.bugs/2853, D/13127
- Fixed D.bugs/6122
- Fixed D.bugs/6141
- Fixed D.bugs/6150
- Fixed D.bugs/6168
- Fixed D.bugs/6186
- Fixed std.math.poly() for Linux
- Fixed header gen bugs reported by Dave Fladebo

Version D 0.145 Jan 29, 2006

#### New/Changed Features

#### Bugs Fixed

- Incorporated D/32417
- Fixed D.bugs/6068
- Fixed D.bugs/6079
- Fixed D.bugs/6080
- Fixed D.bugs/6081
- Fixed D.bugs/6082
- Fixed D.bugs/6097
- Fixed D.bugs/6099
- Fixed D.bugs/6105
- Fixed several problems with -fPIC code generation
- Fixed dstress const_04 regression
- Fixed dstress asm_lea_01_B regression
- Fixed D.announce/2578
- Fixed problem with abstract template classes

Version D 0.144 Jan 22, 2006

#### New/Changed Features

- static if now can reference declarations in same scope.
- Leading . no longer necessary for recursive template instantiations.

#### Bugs Fixed

- Constant folding of string==string now works.
- Constant folding of `length` for char literals now works.
- Constant folding of char literals appending chars now works.
- Constant folding of char literal slices now works.
- Fixed D.bugs/6003
- Fixed D.bugs/6018
- Fixed D.bugs/6027
- Fixed D.bugs/6049

Version D 0.143 Jan 9, 2006

#### New/Changed Features

- Added D.bugs/5987 std.path.expandTilde() by Grzegorz Adam Hankiewicz and Thomas Kuehne.
- Added Don Clugston's improvements to std.math in D/31951.

#### Bugs Fixed

- Fixed D.announce/2303
- Fixed D.announce/2315
- Fixed D.bugs/5910
- Fixed D.bugs/5917
- Fixed D.bugs/5924
- Fixed D.bugs/5937
- Fixed D.bugs/5939
- Fixed D.bugs/5950
- Fixed D.bugs/5970
- Fixed D.bugs/5981
- Fixed D.bugs/5983
- Per Grzegorz Adam Hankiewicz's suggestions in D.bugs/5984, Windows only declarations in process.d are versioned.

Version D 0.142 Dec 28, 2005

#### New/Changed Features

- AssertError now has a destructor, per proposal in D/31595.
- Added D interface file support, with much help from Dave Fladebo.

#### Bugs Fixed

- Fixed D.bugs/5749
- Fixed D.bugs/5771
- Fixed D.bugs/5772
- Fixed D.bugs/5773
- Fixed D.bugs/5809
- Fixed D/31482

Version D 0.141 Dec 4, 2005

#### New/Changed Features

- The predefined version identifier D_InlineAsm has been changed to D_InlineAsm_X86. The former made no sense, and although it is still defined, it is deprecated.
- Added D code coverage analyzer.
- Added .mangleof property for types, which gives the 'mangled' type name as a string.

#### Bugs Fixed

- Fixed D.bugs/5643
- Fixed D.bugs/5668
- Fixed D.bugs/5687
- Fixed D.bugs/5690
- Fixed D.bugs/5673 (it now issues an OutOfMemoryException)
- Fixed D.bugs/5729
- Fixed dstress.run.c.creal_26_A regression.
- Fixed dstress.run.const_18 regression.

Version D 0.140 Nov 23, 2005

#### New/Changed Features

- Added std.string.soundex.
- Added std.string.entab.
- Added std.string.wrap.
- Added std.string.abbrev.
- Added std.windows.charset (thanks to Stewart Gordon, D/28426).
- Added std.demangle to demangle D names.
- Improved promotion of names inside templates.
- Now allows floating point and string literals as template value arguments.
- To support the previous, the name mangling of template instances has changed. This will necessitate recompilation of any code that uses templates.
- std.utf.UtfError is now deprecated. Use std.utf.UtfException instead.

#### Bugs Fixed

- Fixed D.bugs/5299
- Fixed D.bugs/5353
- Fixed D.bugs/5360
- Fixed D.bugs/5391
- Fixed D.bugs/5429
- Fixed D.bugs/5464
- Fixed std.string.expandtabs so it handles UTF.

Copyright © 1999-2009 by Digital Mars ®, All Rights Reserved | Page generated by Ddoc. | Comments