D Change Log
- What's new for D 1.030
- What's new for D 1.029
- What's new for D 1.028
- What's new for D 1.027
- What's new for D 1.026
- What's new for D 1.025
- What's new for D 1.024
- What's new for D 1.023
- What's new for D 1.022
- What's new for D 1.021
- What's new for D 1.020
- What's new for D 1.019
- What's new for D 1.018
- What's new for D 1.017
- What's new for D 1.016
- What's new for D 1.015
- What's new for D 1.014
- What's new for D 1.013
- What's new for D 1.012
- What's new for D 1.011
- What's new for D 1.010
- What's new for D 1.009
- What's new for D 1.007
- What's new for D 1.006
- What's new for D 1.005
- What's new for D 1.004
- What's new for D 1.003
- What's new for D 1.002
- What's new for D 1.001
- change log for D 2.0
- older versions
- even older versions
- Download latest stable (1.020) D compiler for Win32 and x86 linux
- tech support
Version
D 1.030
May 16, 2008
New/Changed Features
- Added -lib switch to generate library files.
- Added -man switch to browse manual.
- When generating an executable file, only one object file is now generated containing all the modules that were compiled, rather than one object file per module.
Bugs Fixed
- Bugzilla 2031: Documentation: template value parameters
- Bugzilla 2032: Documentation for creating a class on the stack is unintuitive
- Bugzilla 2033: -g + circular refs => dmd hangs
- Bugzilla 2039: -ignore switch is missing from compiler docs
- Bugzilla 2044: -g hangs DMD
- Bugzilla 2055: (ICE) Compiler crash on struct initializer with too many elements
- Bugzilla 2058: Describe hidden value passed to class member functions
- Bugzilla 2067: call from anonymous class makes access violation.
- Bugzilla 2071: spec doesn't mention pointer arithmetic with two pointer operands
- Bugzilla 2075: Spec does not specify how array literals are stored.
- Bugzilla 2084: operator ?: does not compute the tightest type
- Bugzilla 2086: Describe relationship between string and char[] more explicitly
- Bugzilla 2089: Issues with CTFE and tuple indexes
- Bugzilla 2090: Cannot alias a tuple member which is a template instance
Version
D 1.029
Apr 23, 2008
New/Changed Features
- Added -ignore switch to ignore unsupported pragmas.
- Unsupported pragmas now printed out with -v switch.
- Incorporated Benjamin Shropshire's doc changes
Bugs Fixed
- Bugzilla 1712: vtbl[0] for interface not set to corresponding Interface*
- Bugzilla 1741: crash on associative array with static array as index type
- Bugzilla 1905: foreach docs inconsistency
- Bugzilla 1906: foreach cannot use index with large arrays
- Bugzilla 1908: fix closure14.d
- Bugzilla 1935: The std.recls samples in the DMD .zip are obsolete.
- Bugzilla 1967: getDirName does not seem to use altsep on windows
- Bugzilla 1978: Wrong vtable call
- Bugzilla 1991: Dmd hangs
- Bugzilla 2019: Appending a one-element array literal doesn't work
Version
D 1.028
Mar 6, 2008
New/Changed Features
- Added compile time error for comparing class types against null.
Bugs Fixed
- Fixed dwarf bug with DT_AT_upper_bound
- Bugzilla 756: IFTI for tuples only works if tuple parameter is last
- Bugzilla 1454: IFTI cant deduce parameter if alias argument used
- Bugzilla 1661: Not possible to specialize on template with integer parameter
- Bugzilla 1809: template.c:2600
- Bugzilla 1810: MmFile anonymous mapping does not work under win32
- Bugzilla 1819: spurious warning about missing return statement after synchronized
- Bugzilla 1828: Several Thread Issues
- Bugzilla 1833: std.c.windows.windows should use enums for constants, or be more selective about use of extern(Windows)
- Bugzilla 1836: Inline assembler can't use enum values as parameters.
- Bugzilla 1837: Make dmd stop flooding the console: prints content of passed parameter file
- Bugzilla 1843: Bogus unreachable statement on forward referenced struct, lacks line number
- Bugzilla 1850: The compiler accepts lower case asm registers.
- Bugzilla 1852: you get opCall missing when cast to a struct(diagnostic)
- Bugzilla 1853: opCmp documentation really needs some examples
- Bugzilla 1857: Runtime segfault while profileing - jump to invalid code address
- Bugzilla 1862: asm: [ESI+1*EAX] should be a legal addr mode
- Bugzilla 1864: Variable incorrectly declared final in final class template
- Bugzilla 1865: Escape sequences are flawed.
- Bugzilla 1877: Errors in the documentation of std.math.atan2
- Bugzilla 1879: Compiler segfaults on 'scope' and 'static if'
- Bugzilla 1882: Internal error: ..\ztc\cod1.c 2529
Version
D 1.027
Feb 18, 2008
New/Changed Features
- Re-enabled auto interfaces.
Bugs Fixed
- Fixed display of ddoc template parameters that were aliased
- Bugzilla 1072: CTFE: crash on for loop with blank increment
- Bugzilla 1435: DDoc: Don't apply DDOC_PSYMBOL everywhere
- Bugzilla 1825: local instantiation and function nesting
- Bugzilla 1837: Make dmd stop flooding the console: prints content of passed parameter file
- Bugzilla 1842: Useless linker command line output during compilation on Linux
Version
D 1.026
Jan 20, 2008
New/Changed Features
- WinMain and DllMain can now be in template mixins.
Bugs Fixed
- Bugzilla 1697: Internal error: ..\ztc\cgcod.c 2322 with -O
- Bugzilla 1707: '==' in TemplateParameterList in IsExpression causes segfault
- Bugzilla 1711: typeof with delegate literal not allowed as template parameter
- Bugzilla 1718: obscure exit with error code 5
- Bugzilla 1719: Compiler crash or unstable code generation with scoped interface instances
- Bugzilla 1724: Internal error: toir.c 177
- Bugzilla 1725: std.stream.BufferedFile.create should use FileMode.OutNew
- Bugzilla 1767: rejects-valid, diagnostic
- Bugzilla 1769: Typo on the page about exceptions
- Bugzilla 1773: excessively long integer literal
- Bugzilla 1779: Compiler crash when deducing more than 2 type args
- Bugzilla 1783: DMD 1.025 asserts on code with struct, template, and alias
- Bugzilla 1788: dmd segfaults without info
Version
D 1.025
Jan 1, 2008
Bugs Fixed
- Bugzilla 1111: enum value referred to by another value of same enum is considered as enum's base type, not enum type
- Bugzilla 1720: std.math.NotImplemented missing a space in message
- Bugzilla 1738: Error on struct without line number
- Bugzilla 1742: CTFE fails on some template functions
- Bugzilla 1743: interpret.c:1421 assertion failure on CTFE code
- Bugzilla 1744: CTFE: crash on assigning void-returning function to variable
- Bugzilla 1749: std.socket not thread-safe due to strerror
- Bugzilla 1753: String corruption in recursive CTFE functions
Version
D 1.024
Nov 27, 2007
New/Changed Features
- Changed the way coverage analysis is done so it is independent of order dependencies among modules.
Bugs Fixed
- Bugzilla 70: valgrind: Conditional jump or move depends on uninitialised value(s) in elf_findstr
- Bugzilla 71: valgrind: Invalid read of size 4 in elf_renumbersyms
- Bugzilla 204: Error message on attempting to instantiate an abstract class needs to be improved
- Bugzilla 1508: dmd/linux template symbol issues
- Bugzilla 1656: illegal declaration accepted
- Bugzilla 1664: (1.23).stringof generates bad code
- Bugzilla 1665: Internal error: ..\ztc\cod2.c 411
Version
D 1.023
Oct 31, 2007
New/Changed Features
- Data items in static data segment >= 16 bytes in size are now paragraph aligned.
Bugs Fixed
- Bugzilla 318: wait does not release thread resources on Linux
- Bugzilla 322: Spawning threads which allocate and free memory leads to pause error on collect
- Bugzilla 645: Race condition in std.thread.Thread.pauseAll
- Bugzilla 689: Clean up the spec printfs!
- Bugzilla 697: No const folding on asm db,dw, etc
- Bugzilla 706: incorrect type deduction for array literals in functions
- Bugzilla 708: inline assembler: "CVTPS2PI mm, xmm/m128" fails to compile
- Bugzilla 709: inline assembler: "CVTPD2PI mm, xmm/m128" fails to compile
- Bugzilla 718: Internal error: ../ztc/cgcod.c 562
- Bugzilla 723: bad mixin of class definitions at function level: func.c:535: virtual void FuncDeclaration::semantic3(Scope*): Assertion `0' failed
- Bugzilla 725: expression.c:6516: virtual Expression* MinAssignExp::semantic(Scope*): Assertion `e2->type->isfloating()' failed.
- Bugzilla 726: incorrect error line for "override" mixin
- Bugzilla 729: scope(...) statement in SwitchBody causes compiler to segfault
- Bugzilla 733: std.conv.toFloat does not catch errors
- Bugzilla 1258: Garbage collector loses memory upon array concatenation
- Bugzilla 1478: Avoid libc network api threadsafety issues
- Bugzilla 1480: std.stream throws the new override warning all over the place
- Bugzilla 1483: Errors in threads not directed to stderr
- Bugzilla 1491: Suppress SIGPIPE when sending to a dead socket
- Bugzilla 1557: std.zlib allocates void[]s instead of ubyte[]s, causing leaks.
- Bugzilla 1562: Deduction of template alias parameter fails
- Bugzilla 1575: Cannot do assignment of tuples
- Bugzilla 1593: ICE compiler crash empty return statement in function
- Bugzilla 1613: DMD hangs on syntax error
- Bugzilla 1618: Typo in std\system.d
Version
D 1.022
Oct 1, 2007
Bugs Fixed
- Fix std.boxer boxing of Object's (unit test failure)
- Fix std.demangle to not show hidden parameters (this and delegate context pointers)
- Bugzilla 217: typeof not working properly in internal/object.d
- Bugzilla 218: Clean up old code for packed bit array support
- Bugzilla 223: Error message for unset constants doesn't specify error location
- Bugzilla 278: dmd.conf search path doesn't work
- Bugzilla 479: can't compare arrayliteral statically with string
- Bugzilla 549: A class derived from a deprecated class is not caught
- Bugzilla 550: Shifting by more bits than size of quantity is allowed
- Bugzilla 551: Modulo operator works with imaginary and complex operands
- Bugzilla 556: is (Type Identifier : TypeSpecialization) doesn't work as it should
- Bugzilla 668: Use of *.di files breaks the order of static module construction
- Bugzilla 1125: Segfault using tuple in asm code, when size not specified
- Bugzilla 1437: dmd crash: "Internal error: ..\ztc\cod4.c 357"
- Bugzilla 1474: regression: const struct with an initializer not recognized as a valid alias template param
- Bugzilla 1484: Forward reference of enum member crashes DMD
- Bugzilla 1488: Bad code generation when using tuple from asm
- Bugzilla 1510: ICE: Assertion failure: 'ad' on line 925 in file 'func.c'
- Bugzilla 1523: struct literals not work with typedef
- Bugzilla 1531: cannot access typedef'd class field
- Bugzilla 1537: Internal error: ..\ztc\cgcod.c 1521
- Bugzilla 1609: TypeInfo_Typedef has incorrect implementation of next()
Version
D 1.021
Sep 5, 2007
New/Changed Features
- Added command line switches -defaultlib and -debuglib
- Bugzilla 1445: Add default library options to sc.ini / dmd.conf
- Added trace_term() to object.d to fix Bugzilla 971: No profiling output is generated if the application terminates with exit
- Multiple module static constructors/destructors allowed.
Bugs Fixed
- Bugzilla 961: std.windows.registry stack corruption
- Bugzilla 1315: CTFE doesn't default initialise arrays of structs
- Bugzilla 1363: Compile-time issue with structs in 'for'
- Bugzilla 1375: CTFE fails for null arrays
- Bugzilla 1378: A function call in an array literal causes compiler to crash
- Bugzilla 1384: Compiler segfaults when using struct variable like a function with no opCall member.
- Bugzilla 1388: multiple static constructors allowed in module
- Bugzilla 1414: compiler crashes with CTFE and structs
- Bugzilla 1423: Registry: corrupted value
- Bugzilla 1436: std.date.getLocalTZA() returns wrong values when in DST under Windows
- Bugzilla 1447: CTFE does not work for static member functions of a class
- Bugzilla 1448: UTF-8 output to console is seriously broken
- Bugzilla 1450: Registry: invalid UTF-8 sequence
- Bugzilla 1460: Compiler crash on valid code
- Bugzilla 1464: "static" foreach breaks CTFE
Version
D 1.019
Jul 21, 2007
New/Changed Features
- Added 0x78 Codeview extension for type dchar.
- Added extern (System)
- Bugzilla 345: updated std.uni.isUniAlpha to Unicode 5.0.0
Bugs Fixed
- Bugzilla 46: Included man files should be updated
- Bugzilla 268: Bug with SocketSet and classes
- Bugzilla 406: std.loader is broken on linux
- Bugzilla 561: Incorrect duplicate error message when trying to create instance of interface
- Bugzilla 588: lazy argument and nested symbol support to std.demangle
- Bugzilla 668: Use of *.di files breaks the order of static module construction
- Bugzilla 1110: std.format.doFormat + struct without toString() == crash
- Bugzilla 1199: Strange error messages when indexing empty arrays or strings at compile time
- Bugzilla 1300: Issues with struct in compile-time function
- Bugzilla 1306: extern (Windows) should work like extern (C) for variables
- Bugzilla 1331: header file genaration generates a ":" instead of ";" at pragma
- Bugzilla 1332: Internal error: ../ztc/cod4.c 357
- Bugzilla 1333: -inline ICE: passing an array element to an inner class's constructor in a nested function, all in a class or struct
- Bugzilla 1336: Internal error when trying to construct a class declared within a unittest from a templated class.
Version
D 1.018
Jul 1, 2007
Bugs Fixed
- Bugzilla 540: Nested template member function error - "function expected before ()"
- Bugzilla 559: Final has no effect on methods
- Bugzilla 627: Concatenation of strings to string arrays with ~ corrupts data
- Bugzilla 629: Misleading error message "Can only append to dynamic arrays"
- Bugzilla 639: Escaped tuple parameter ICEs dmd
- Bugzilla 641: Complex string operations in template argument ICEs dmd
- Bugzilla 657: version(): ignored
- Bugzilla 689: Clean up the spec printfs!
- Bugzilla 1103: metastrings.ToString fails for long > 0xFFFF_FFFF
- Bugzilla 1107: CodeView: wrong CV type for bool
- Bugzilla 1118: weird switch statement behaviour
- Bugzilla 1186: Bind needs a small fix
- Bugzilla 1199: Strange error messages when indexing empty arrays or strings at compile time
- Bugzilla 1200: DMD crash: some statements containing only a ConditionalStatement with a false condition
- Bugzilla 1203: Cannot create Anonclass in loop
- Bugzilla 1204: segfault using struct in CTFE
- Bugzilla 1206: Compiler hangs on this() after method in class that forward references struct
- Bugzilla 1207: Documentation on destructors is confusing
- Bugzilla 1211: mixin("__LINE__") gives incorrect value
- Bugzilla 1212: dmd generates bad line info
- Bugzilla 1216: Concatenation gives 'non-constant expression' outside CTFE
- Bugzilla 1217: Dollar ($) seen as non-constant expression in non-char[] array
- Bugzilla 1219: long.max.stringof gets corrupted
- Bugzilla 1224: Compilation does not stop on asserts during CTFE
- Bugzilla 1228: Class invariants should not be called before the object is fully constructed
- Bugzilla 1233: std.string.ifind(char[] s, char[] sub) fails on certain non ascii strings
- Bugzilla 1234: Occurrence is misspelled almost everywhere
- Bugzilla 1235: std.string.tolower() fails on certain utf8 characters
- Bugzilla 1236: Grammar for Floating Literals is incomplete
- Bugzilla 1239: ICE when empty tuple is passed to variadic template function
- Bugzilla 1242: DMD AV
- Bugzilla 1244: Type of array length is unspecified
- Bugzilla 1247: No time zone info for India
- Bugzilla 1285: Exception typedefs not distinguished by catch
- Bugzilla 1287: Iterating over an array of tuples causes "glue.c:710: virtual unsigned int Type::totym(): Assertion `0' failed."
- Bugzilla 1290: Two ICEs, both involving real, imaginary, ? : and +=.
- Bugzilla 1291: .stringof for a class type returned from a template doesn't work
- Bugzilla 1292: Template argument deduction doesn't work
- Bugzilla 1294: referencing fields in static arrays of structs passed as arguments generates invalid code
- Bugzilla 1295: Some minor errors in the lexer grammar
Version
D 1.017
Jun 25, 2007
New/Changed Features
- Added __VENDOR__ and __VERSION__.
- The .init property for a variable is now based on its type, not its initializer.
Bugs Fixed
- std.compiler now is automatically updated.
- Fixed CFTE bug with e++ and e--.
- Bugzilla 1254: Using a parameter initialized to void in a compile-time evaluated function doesn't work
- Bugzilla 1256: "with" statement with symbol
- Bugzilla 1259: Inline build triggers an illegal error msg "Error: S() is not an lvalue"
- Bugzilla 1260: Another tuple bug
- Bugzilla 1261: Regression from overzealous error message
- Bugzilla 1262: Local variable of struct type initialized by literal resets when compared to .init
- Bugzilla 1263: Template function overload fails when overloading on both template and non-template class
- Bugzilla 1268: Struct literals try to initialize static arrays of non-static structs incorrectly
- Bugzilla 1269: Compiler crash on assigning to an element of a void-initialized array in CTFE
- Bugzilla 1270: -inline produces an ICE
- Bugzilla 1272: problems with the new 1.0 section
- Bugzilla 1276: static assert message displayed with escaped characters
- Bugzilla 1283: writefln: formatter applies to following variable
Version
D 1.016
Jun 14, 2007
New/Changed Features
- The compiler was not changed.
- Added aliases string, wstring, and dstring to ease compatiblity with 2.0.
Bugs Fixed
Version
D 1.015
Jun 5, 2007
Bugs Fixed
- Added missing \n to exception message going to stderr.
- Fixed default struct initialization for CTFE.
- Bugzilla 1226: ICE on a struct literal
- Fixed gc memory corrupting problem.
Version
D 1.014
Apr 26, 2007
New/Changed Features
- Added associative array literals
- Added struct literals
- Array element assignments can now be done in CTFE
Bugs Fixed
- Bugzilla 1000: writefln fails on nested arrays
- Bugzilla 1143: Assertion failure: '0' on line 850 in 'template.c' - On specialization of IFTI template parameters.
- Bugzilla 1144: template mixin causes DMD crash
- Bugzilla 1146: mixin + assert() crashes compiler
- Bugzilla 1153: dmd assertion failure
- Bugzilla 1159: Various mixins cause "CompileExp::semantic" message, some crash DMD
- Bugzilla 1174: Program hangs creating an array of enums with nonzero initializer
- Bugzilla 1177: no longer works inside CTFE functions.
- Bugzilla 1180: the GC failes to handle large allocation requests propperly
- Bugzilla 1189: Reverse the titles on web pages
Version
D 1.013
Apr 19, 2007
Bugs Fixed
- Fixed crash with std.format and static arrrays
- Bugzilla 582: Cannot slice mixed tuples
- Bugzilla 594: can't cast arrayliteral statically
- Bugzilla 595: can't append to array/arrayliteral statically
- Bugzilla 997: [Regression] Struct-returning function that conditionally passes the result of another function straight through doesn't work (NRVO bug?)
- Bugzilla 1090: Attribute specification: "}" vs "end of scope"
- Bugzilla 1091: Wrong size reserved for critical sections
- Bugzilla 1094: switch bug
- Bugzilla 1096: Mysterious hang with toUTCString + UTCtoLocalTime + d_time_nan
- Bugzilla 1098: symbol collision in d/dmd/expression.c between math.h and port.h
- Bugzilla 1119: Internal error: ../ztc/cgcod.c 2190 (template instantiation)
- Bugzilla 1121: Assertion codegen issue with templated function
- Bugzilla 1132: DMD calling linker over commandline
- Bugzilla 1134: incorrect calling convention used
- Bugzilla 1135: invariant keyword parsing is messed up
- Bugzilla 1147: Typo in phobos/std/file.d: 4069 should be 4096
- Bugzilla 1148: Problems returning structs from functions
- Bugzilla 1150: Compiler creates wrong code
- Bugzilla 1156: Installed libraries need to be passed in different order
- Bugzilla 1163: Can't initialize multiple variables with void.
Version
D 1.012
Apr 12, 2007
Bugs Fixed
- D.announce/8190 now works with -v1
- D.announce/8193
- Bugzilla 532: Wrong name mangling for template alias params of local vars
- Bugzilla 1068: stack corruption with mixins and function templates
- Bugzilla 1089: Unsafe pointer comparison in TypeInfo_Pointer.compare
- Bugzilla 1127: -v1 doesn't disable the ref and macro keywords
Version
D 1.011
Apr 11, 2007
New/Changed Features
- Extended Codeview symbolic debug output with LF_OEM types.
- Extended Dwarf symbolic debug output with DW_TAG_darray_type, DW_TAG_aarray_type, and DW_TAG_delegate types.
- Added keywords ref and macro.
- final classes cannot be subclassed.
- final for variables now works.
- ref now works as a replacement for inout.
- Fixed so multiple type inferring declarations like auto a=1,c=2; works.
Bugs Fixed
- Fixed problem with overloading of function templates that have the same template parameter list, but different function parameters.
- Fixed problems with type deduction from specializations that are template instances.
- Fixed assert template.c(2956) s->parent
- Got .property to work for typeof.
- Fixed bug in DW_AT_comp_dir output for some linux versions.
- D.announce/8027
- D.announce/8047
- D/51800
- Bugzilla 1028: Segfault using tuple inside asm code.
- Bugzilla 1052: DMD 1.009 - aliasing functions from superclasses may result in incorrect conflicts
- Bugzilla 1080: Failed to link to std.windows.registry
- Bugzilla 1081: with using real and -O option, dmd generate bug code
- Bugzilla 1082: The .offsetof property yields a signed int, a size_t would be more appropriate
- Bugzilla 1086: CodeView: missing line information for string switch
- Bugzilla 1092: compiler crash in ..\ztc\cod1.c 2528
- Bugzilla 1102: switch case couldn't contain template member
- Bugzilla 1108: Indexing an int[] not evaluatable at compile time
- Bugzilla 1122: dmd generate bad line number while reporting error message
Version
D 1.010
Mar 24, 2007
New/Changed Features
- Added template partial specialization derived from multiple parameters.
- Added Object.factory(char[] classname) method to create class objects based on a string.
- Added std.gc.malloc(), std.gc.extend() and std.gc.capacity().
- Added std.string.isEmail() and std.string.isURL().
- Added std.stdio.readln().
- Improved gc performance for array resize and append.
- Bugzilla 64: Unhandled errors should go to stderr
- Added predefined Ddoc macro DOCFILENAME
Bugs Fixed
- Fixed Broken link in http://digitalmars.com/d/comparison.html
- Fixed problem with CTFE and array literals
- Bugzilla 931: D Strings vs C++ Strings Page Incorrect
- Bugzilla 935: Extern Global C Variables
- Bugzilla 948: operatoroverloading.html - Rationale section is both out of date and incomplete
- Bugzilla 950: Missing filename and line number: conflict between implicit length in [...] and explicit length declared in the scope
- Bugzilla 959: smaller ddoc documentation issue
- Bugzilla 1056: segfault with pragma(msg) inside CTFE
- Bugzilla 1062: Cannot catch typedef'd class
- Bugzilla 1074: Dead link to std.c.locale webpage
Version
D 1.009
Mar 10, 2007
Bugs Fixed
- D/49928 1
- D.announce 7563
- Bugzilla 146: Wrong filename in DWARF debugging information for templates
- Bugzilla 992: CTFE Failure with static if
- Bugzilla 993: incorrect ABI documentation for float parameters
- Bugzilla 995: compile-time function return element of Tuple / const array
- Bugzilla 1005: dmd: tocsym.c:343: virtual Symbol* FuncDeclaration::toSymbol(): Assertion `0' failed.
- Bugzilla 1009: CodeView: out and inout parameters are declared void*
- Bugzilla 1014: Error with character literal escaping when generating header with -H
- Bugzilla 1016: CTFE fails with recursive functions
- Bugzilla 1017: CTFE doesn't support (string == string)
- Bugzilla 1018: regression: Error: divide by 0
- Bugzilla 1019: regression: missing filename and line number: Error: array index X is out of bounds [0 .. Y]
- Bugzilla 1020: regression: mov EAX, func
- Bugzilla 1021: CTFE and functions returning void
- Bugzilla 1022: CodeView: unions have zero length in typeleafs and datasymbols
- Bugzilla 1026: dmd SEGV when checking length of Tuple elements when length == 0
- Bugzilla 1030: ICE one-liner; struct in delegate
- Bugzilla 1038: explicit class cast breakage in 1.007
Version
D 1.007
Feb 20, 2007
New/Changed Features
- Comparison operators are no longer associative; comparison, equality, identity and in operators all have the same precedence.
- out and inout parameters are now allowed for compile time function execution.
- The .dup property is now allowed for compile time function execution.
- Updated lib to insert COMDATs into symbol table.
- Class references can no longer be implicitly converted to void*.
Bugs Fixed
- D/48806 crash
- D/48811
- D/48845
- D/48869
- D/48917
- D/48953
- D/48990
- D/49033
- D.announce/7496
- Bugzilla 968: ICE on compile-time execution
- Bugzilla 974: compile-time parenthesis bug
- Bugzilla 975: compile-time const array makes dmd crash
- Bugzilla 980: If a function tries to concatenate a char to a empty array, dmd complains that the function can't be evaluated at compile time
- Bugzilla 981: CFTE fails in non-template and functions that takes no args.
- Bugzilla 986: Internal error: e2ir.c 1098
Version
D 1.006
Feb 15, 2007
New/Changed Features
- Added -Jpath switch, which is now required in order to import text files.
- Enhanced -v output to include actual filename.
- name string for TypeInfo_Struct now part of the TypeInfo_Struct comdat.
- Compile time execution of functions
Bugs Fixed
- Bugzilla 960: New: DMD 1.0 is in the past -- not the future
- Codeview for classes now gives correct LF_CLASS
Version
D 1.005
Feb 5, 2007
New/Changed Features
- -v now emits pragma library statements and imported file names
- deprecated ===, and !==, tokens no longer recognized
- length can no longer shadow other length declarations
- Added MixinStatements, MixinExpressions, and MixinDeclarations.
- Added ImportExpressions.
- Added std.metastrings
Bugs Fixed
- Bugzilla 761: std.format.doFormat fails for items of a char[][] containing %s
- Bugzilla 784: regression: [Issue 402] compiler crash with mixin and forward reference
- Bugzilla 787: incorrect documentation of std.ctype.isprint
- Bugzilla 788: Compiler rejects hex floats in the format: HexPrefix HexDigits . HexDigits(opt) with binary-exponent-part required
- Bugzilla 789: const initialization in forwarding constructors doesn't work
- Bugzilla 791: dhry.d example doesn't compile in 1.0 without trivial change
- Bugzilla 794: std.math.exp2(0) equals 0 instead of 1
- Bugzilla 800: writefln() on an associative array fails hard
- Bugzilla 821: segfault with char array copy; mistaken samples in doc
- Bugzilla 831: Warning!! String literals are read-only one some platforms.
- Bugzilla 832: NRVO: return inside foreach results in junk
- Bugzilla 835: RegExp.test wrongly matches strings on case insensitive attribute
- Bugzilla 846: Error 42: Symbol Undefined _D1a7__arrayZ
- Bugzilla 848: typo in C sorting example
- Bugzilla 862: Selectively importing a nonexistent identifier results in spurious and incorrect error message
- Bugzilla 872: Assertion in expression.c caused by taking typeof of "this.outer" in nested classes.
- Bugzilla 875: crash in glue.c line 700
- Bugzilla 886: std.zlib uncompression routines do not mark result as containing no pointers
- Bugzilla 887: TypeInfo does not correctly override opCmp, toHash
- Bugzilla 888: -cov and _ModuleInfo linking bugs
- Bugzilla 890: Returning char[4] and assigning to char[] produces unexpected results.
- Bugzilla 891: Crash when compiling the following code (tested with 1.0, 1.001 and 1.002)
- Bugzilla 893: The profile flag no longer seems to work on Linux x86 64
- Bugzilla 894: base class with implemented abstract method problem
- Bugzilla 897: fix default dmd.conf file
- Bugzilla 898: std.conv.toInt doesn't raise ConvOverflowError
- Bugzilla 901: Comparison of array literals fails
- Bugzilla 903: Example with printf and string literals crashes
- Bugzilla 908: compiler dies trying to inline static method call to nonstatic method in template code.
- Bugzilla 910: Error in description of "this" and "super" keywords
- Bugzilla 913: deprecated tokens still listed
- Bugzilla 915: dmd generate bad form return(retn 4) for invariant func
- Bugzilla 916: regression: Internal error: ../ztc/gloop.c 1305
- Bugzilla 917: regression: circular typedefs cause segfaults
- Bugzilla 924: GC collects valid objects
- D.announce/6983
Version
D 1.004
Jan 26, 2007
Bugs Fixed
- Bugzilla 892: Another bug in the new GC - pointers in mixins
Version
D 1.002
Jan 24, 2007
Bugs Fixed
- D.announce/6893: ClassInfo.flags incorrectly set
- D.announce/6906: Three subtle cases of tail recursion item 1 and 2
Version
D 1.001
Jan 23, 2007
New/Changed Features
- tail recursion works again
- New type aware GC
Bugs Fixed
- Bugzilla 621: When inside a loop, if you call break inside a try block the finally block is never executed
- Bugzilla 804: missing linux functions
- Bugzilla 815: scope(exit) isn't executed when "continue" is used to continue a while-loop
- Bugzilla 817: const char[] = string_literal - string_literal gets included for every reference
- Bugzilla 819: mention response files in cmd line usage
- Bugzilla 820: gc should scan only pointer types for pointers
- Bugzilla 823: frontend: incorrect verror declaration in mars.h
- Bugzilla 824: "mov EAX, func;" and "lea EAX, func;" generate incorrect code
- Bugzilla 825: dmd segmentation fault with large char[] template value parameter
- Bugzilla 826: ICE: is-expression with invalid template instantiation