+
+
+
+
+
+
+
+ · Overview
+
+ · D for Win32
+
+ · Win32 DLLs in D
+
+ · C .h to D Modules
+
+ · FAQ
+
+ · Style Guide
+
+ · Example: wc
+
+ · Future
+
+ · D Change Log
+
+ · Tech Tips
+
+ · Rationale
+
+ · Warnings
+
+
+ Articles
+
+ · Exception Safety
+
+ · Templates Revisited
+
+
+ Tools
+
+ · DMD D Compiler
+
+ · GDC D Compiler
+
+ · Linker
+
+ · Profiler
+
+ · Code Coverage
+
+ · DMD Script Shell
+
+ · Windows Debugger
+
+ · C .h to D .d
+
+ · Editors
+
+ · More Tools
+
+
+ Community
+
+
+ · News
+
+ · Forum
+
+ · Announcements
+
+ · Learn
+
+ · D links
+
+
+ Archives
+
+ · digitalmars.D
+
+ · digitalmars.D.dtl
+
+ · digitalmars.D.announce
+
+ · digitalmars.D.dwt
+
+ · digitalmars.D.learn
+
+ · digitalmars.D.bugs
+
+ · D.gnu
+
+ · Old D
+
+
+ Appendices
+
+ · Glossary
+
+ · Ascii Table
+
+ · Acknowledgements
+
+
+
+ |
+
+
+
+D Change Log to Nov 7, 2005
+
+
+
+
+
+
+
+
+
+Nov 7, 2005
+
+
+ Bugs Fixed
+
+
+
+
+
+
+
+Nov 2, 2005
+
+
+ New/Changed Features
+
+ - Implemented constant folding of "string"[constant].
+ - Implemented constant folding of "string"[constant .. constant].
+ - Added --help switch.
+ - Removed std.math2.poly, use std.math.poly instead.
+
+
+DDoc
+
+ - Implemented Jarrett Billingsley's suggestion for custom
+ wrappers around structs, modules, etc.
+ D.announce/1705
+.
+ - Fixed D.learn/2070
+
+
+Documentation
+
+
+Bugs Fixed
+
+ - Fixed std.math.lgamma and tgamma.
+ - Fixed D.announce/1730
+
+ - Fixed D.bugs/5198
+ - Fixed D.bugs/5199
+ - Fixed Linux C ABI compatibility bug with returning structs
+ from extern (C) functions. this can break
+ existing code.
+
+
+
+
+
+
+
+Oct 24, 2005
+
+
+ New/Changed Features
+
+ - Added
+ implicit type inference.
+ - extern storage class for variables now works.
+ - extern(linkage) for nested functions now works.
+
+
+Documentation
+
+
+Bugs Fixed
+
+
+
+
+
+
+
+Oct 17, 2005
+
+
+ New/Changed Features
+
+ - Added Doc Clugston's D/28800 for tgamma, lgamma.
+ - Updated std.md5 per Dawid Ciezarkiewicz's suggestion D/28887.
+
+
+Bugs Fixed
+
+
+
+
+
+
+
+Oct 2, 2005
+
+
+ New/Changed Features
+
+
+Ddoc
+
+ - Color
+ syntax highlighting is here!
+ - Added capability to process general purpose documents.
+
+
+Bugs Fixed
+
+
+
+
+
+
+
+Sep 28, 2005
+
+
+ New/Changed Features
+
+
+Ddoc
+
+ - Added .. macro arguments, and special macro.
+ - Each standard section now has its own custom DDOC_ macro.
+ - Incorporated Bob W's suggestions D/28843.
+
+
+Bugs Fixed
+
+
+
+
+
+
+
+Sep 24, 2005
+
+
+ New/Changed Features
+
+ - Filled out std.math with standard C math.h functions.
+
- Added -o- flag to suppress generation of object file.
+
+
+Ddoc
+
+ - Removes closing *'s on /******* Comment ***********/
+
- '_' in section names now replaced with ' ' (Derek Parnell's idea).
+
- Extensive revision to how macros work based on a
+ suggestion from Derek Parnell. Much more flexible now.
+
+
+Bugs Fixed
+
+
+
+
+
+
+
+Sep 19, 2005
+
+
+ New/Changed Features
+
+ - Added Ddoc, the documentation
+ generator for D.
+
+
+
+
+
+
+
+
+Sep 8, 2005
+
+
+ New/Changed Features
+
+
+Bugs Fixed
+
+
+
+
+
+
+
+Sep 6, 2005
+
+
+ New/Changed Features
+
+ - Added Don Clugston's std.math.feqrel().
+
- Added Ben Hinkle's updates to std.stream:
+
+ - removed all deprecated features stdin/out/err and the Error exceptions
+ D/27364
+ - new FilterStream superclass of BufferedStream, EndianStream and SliceStream
+
- added File.available overload
+ D/27684
+ - Fixed D.bugs/4711
+ - updated html doc with more details about filtering
+ D.announce/1102
+
+
+
+ - Added Ben Hinkle's updates to std.mmfile from thread
+ D.bugs/4550
+
+ - added windowing support
+
- changed size parameters to ulong instead of size_t
+
- commented out the debug printf
+
- added unittests
+
- updated help
+
+
+
+
+Bugs Fixed
+
+
+
+
+
+Aug 5, 2005
+
+
+ New/Changed Features
+
+ - Added postfixes c, w, d to string literals to denote type.
+
+ - For linux, DW_LANG_D is used for DW_AT_language in the Dwarf
+ symbolic debug info. If the
+ -gc switch is used, DW_LANG_C is used for older GDB's.
+
+ - Incorporated Ben Hinkle's new std.format which can print
+ general arrays.
+
+ - Added std.stdio.writefx and std.stream.writefx
+ from David L. Davis and Ben Hinkle.
+
- Incorporated Ameer Armaly's improvement to std.c.linux.linux D/27320.
+
+
+Bugs Fixed
+
+ - Implemented access checking for structs.
+ - Fixed D.bugs/4555
+
+
+
+
+
+Jul 10, 2005
+
+
+ New/Changed Features
+
+ - Incorporated Ameer Armaly's improvement to std.file.exists() D/26226.
+ - Ben Hinkle's update for stream.d and std_stream.html:
+ As discussed in
+ D/26073
+ scanf and vscanf have been modified and renamed to readf and vreadf
+ (with doc updates, too).
+
+
+
+
+Bugs Fixed
+
+
+
+
+
+Jun 16, 2005
+
+
+ New/Changed Features
+
+ - No more forward references of version or debug identifiers.
+
+
+Bugs Fixed
+
+
+
+
+
+Jun 7, 2005
+
+
+ New/Changed Features
+
+ - === now deprecated, replaced with is.
+
- !== now deprecated, replaced with !is.
+
- Added typesafe variadic functions.
+
- Now throws an ArrayBoundsError if accessing an associative
+ array with a key that is not already in the array. Previously,
+ the key would be added to the array.
+
- Added IsExpressions
+ which replaces IftypeConditions
+ which are now deprecated.
+ The IsExpressions are significantly
+ more general and powerful.
+
- Added VoidInitializers.
+
- delete aa[key] is now deprecated, use
+ aa.remove(key) instead.
+
- Added non-static nested classes.
+
- Added anonymous non-static nested
+ classes.
+
- Incorporated Ben Hinkle's changes to std.stream:
+
+ - std.stream.stdin/out/err deprecated
+
- adding std.cstream.din/out/err
+
- stream.d:
+
+ - incorporate the socketstream code for handling \r
+ end-of-line formats for readLine on non-seekable streams like
+ pipes
+
- getc and getcw return char.init and wchar.init on EOF
+
- getcw throws if EOF after reading 1 byte
+
- ungetc and ungetcw ignore char.init and wchar.init
+
- deprecate stdin,stdout,stderr
+
- remove private import of std.c.stdio and aliases for
+ va_list
+
+
+ - socketstream.d: removed overrides that are now in std.stream.Stream
+
- cstream.d: new stream wrapper around FILE* with din, dout, derr
+
- unittest,d: add cstream to ensure unittests are run
+
+
+
+
+Bugs Fixed
+
+ - Fixed Internal error: e2ir.c 488
+
- Incorporated David Friedman's patch for std.base64.
+
- Fixed D.bugs/4178
+
- Incorporated evilmrhenry's fixes from D.bugs/4215
+
- Fixed std.math.tan's bug where it could leave an operand on the FPU
+ stack
+
+
+
+
+
+May 20, 2005
+
+
+ New/Changed Features
+
+
+Bugs Fixed
+
+ - iftype fixed to do implicit conversion match with
+ specialization, rather than exact match.
+
- Fixed D.bugs/4075
+
- Ben Hinkle fixed D.learn/873
+
- phobos/internal/gc _d_newarrayi() fixed to use std.c.stdarg.
+
+
+
+
+
+May 19, 2005
+
+
+ New/Changed Features
+
+ - Added -quiet switch to dmd.
+
- .size property is no longer deprecated, it is
+ an error. Replace with .sizeof.
+
- Renamed DMD source debcond.h to cond.h, debcond.c to cond.c.
+
- Added Burton Radons' std.boxer.
+
- Reformatted the documentation to use a bit of color.
+
- Added static if.
+
- Added iftype.
+
+
+Bugs Fixed
+
+
+
+
+
+May 11, 2005
+
+
+ New/Changed Features
+
+ - Capped static array size at 16Mb.
+
+
+Bugs Fixed
+
+
+
+
+
+May 3, 2005
+
+
+ New/Changed Features
+
+ - Added Ben Hinkle's fixes for std.stream:
+
+ - fixes the seekable bugs on reading stdin and pipes
+ - adds isOpen and eof to InputStream
+ - adds isOpen, flush and close to OutputStream
+
+
+ - Added std.conv.toFloat, toDouble, toReal from David L. Davis.
+
+
+Bugs Fixed
+
+ - Improved line numbers in error messages.
+ - Fixed problems detecting array overflows at compile time.
+ - Improved handling of compiler out-of-memory errors.
+ - Fixed DMDScript build break.
+ - Fixed memory corruption problem with array[length..length].
+ - Fixed compiler seg fault on uplevel invariant.
+ - Fixed problem detecting circular interface hierarchies.
+ - Fixed cat of static arrays.
+ - Fixed Internal error cg87 1240.
+ - Fixed D.bugs/3710
+ - Fixed D.bugs/3747
+ - Fixed D.bugs/3752
+ - Fixed D.bugs/3753
+
+
+
+
+
+Apr 15, 2005
+
+
+ New/Changed Features
+
+ - std.syserror is now deprecated, replaced with
+ std.windows.syserror. It is Windows specific, and
+ lining it up with strerror() on Linux was a mistake. Windows
+ error numbers do not line up with C's errno values.
+ Thanks to Regan Heath for a decent implementation of it.
+
- Now ?: works with null and arrays.
+
- Changed std.outofmemory.OutOfMemory to
+ std.outofmemory.OutOfMemoryException, and it now
+ derives from Exception.
+
- Abstract class methods now cause the class to be abstract.
+
- Abstract can no longer be applied to variables, structs
+ or unions.
+
- Unit tests now allowed in structs and unions.
+
+
+Bugs Fixed
+
+ - Added zwang's fix for std.string.ifind().
+
- Fixed constant fold divide by 0.
+
- Fixed "Win32 Exception" in std.regexp.
+
- Fixed bogus "switch statement already has a default" bug.
+
- Fixed D.bugs/2991
+
- Fixed D.bugs/3002
+
- Fixed D.bugs/3034
+
- Fixed D.bugs/3091
+
- Fixed D.bugs/3129
+
- Fixed D.bugs/3551
+
- Fixed D.bugs/3597
+
- Fixed D.bugs/3646
+
- Implemented typeinfo's for arrays, static arrays, associative
+ arrays, function pointers, delegates, and enums.
+
- Fixed typeinfo for typedef's.
+
- Fixed broken implicit conversion from real or imaginary
+ to complex.
+
- Fixed pragma error messages.
+
- Fixed broken pragma(lib) inside function.
+
- Fixed dstress slice_10.
+
- Fixed dstress argument_03.
+
- Fixed dstress const_04.
+
- Fixed dstress foreach_26.
+
- Fixed dstress html_empty_entity_03.
+
- Fixed dstress invariant_12.
+
- Fixed dstress invariant_29, _30, _31.
+
- Fixed dstress main_06.
+
- Fixed dstress mixin_09.
+
- Fixed dstress new_09.
+
- Incorporated Ben Hinkle's fixes for std.stream. Fixed a bug
+ introduced in dmd-120:
+ D.bugs/3563
+ about seekable stdin and Stream.toString(). Fixed a bug in
+ the Windows version of seek() with files larger than uint.sizeof.
+
+
+
+
+
+
+Apr 6, 2005
+
+
+ New/Changed Features
+
+ - In -release builds implicit switch defaults,
+ implicit return statements, and assert(0) expressions are
+ replaced with HLT instructions.
+
- Renamed -gt command line switch that invokes the profiler
+ to -profile.
+
- Complex types can no longer be implicitly converted to
+ non-complex types.
+
- Real and imaginary types can no longer be implicitly converted
+ to each other.
+
- Added Pentium 4 (Prescott) instructions to inline assembler.
+
- Template alias parameters can now have specializations.
+
- Compiler now permitted to retain floating point literals
+ and do constant folding on them in a precision that is greater
+ than the precision of its type.
+
- Changed AMD64 predefined version to X86_64.
+
- Added Matthew Wilson's std.openrj.
+
- Ben Hinkle submitted a new std.stream
+ with:
+
+
+
+ - replace uint buffer lengths with size_t
+
- add line-by-line opApply to Stream and InputStream (due to Regan
+ Heath)
+ int opApply(int delegate(inout char[] line) dg)
+ int opApply(int delegate(inout ulong n, inout char[] line) dg)
+ int opApply(int delegate(inout wchar[] line) dg)
+ int opApply(int delegate(inout ulong n, inout wchar[] line) dg)
+ - move readable/writeable/seekable tests from contracts to the body
+ since phobos is compiled in release mode and users can easily try
+ to write to an unwritable stream
+
- return "this" from writef and writefln to allow chaining (eg flush)
+
- fix TArrayStream read/write to check for "eof" (Derick Eddington)
+
- make SliceStream preserve the source buffer position if seekable
+ and pay attention to isOpen (Derick)
+
- implement available() for more stream types (Derick)
+
- copyFrom bug fixes and position preserving if seekable (Derick)
+
- move the initialization of the BOMs to the initializer instead of the
+ module constructor.
+
- make isopen protected (from private) so that subclasses can see it.
+
- more unittest (Derick and Ben)
+
- fix File.size() bug on Windows
+
- fix File.open() error message to say "Cannot open or create file"
+
+
+
+
+
+Bugs Fixed
+
+ - Fixed crash with forward reference of local as mixin alias
+ parameter.
+ - Fixed bit array append.
+ - Fixed base class fwd ref bug introduced in 0.119.
+ - Fixed problems with throwing in a destructor.
+ - Fixed problem with misaligned arrays of structs.
+ - Fixed diagnosis of types based on deprecated symbols.
+ - Fixed bad code gen for PEXTRW instruction.
+ - Fixed compiler hang with template alias parameters.
+ - Fixed Internal error: ..\ztc\cg87.c 279
+ - Fixed Internal error: ..\ztc\cod1.c 1648
+ - Fixed Internal error: ..\ztc\cgobj.c 2139
+ - Fixed Internal error: ..\ztc\cgcs.c 353
+ - Fixed Assertion failure 622 glue.c
+ - Fixed compiler crash on circular typedef declarations.
+ - Fixed compiler crash on empty catch handlers.
+ - Fixed D.bugs/2606
+ - Fixed D.bugs/2618
+ - Fixed D.bugs/3234
+ - Fixed D.bugs/3369
+
+
+
+
+
+Mar 18, 2005
+
+
+ New/Changed Features
+
+ - Clarified and revamped handling of 'finally' blocks.
+
- C-style casts are no longer deprecated, they are now illegal.
+
- Invalid UTF sequences in comments are now diagnosed as errors.
+
- Can no longer set predefined versions.
+
+
+Bugs Fixed
+
+ - Fixed ‹ misspelled entity.
+
- Fixed parsing entities with digits.
+
- Class invariant calls no longer attached to private, protected,
+ or package member functions.
+
- Fixed D.bugs/32
+
- Fixed D.bugs/1148
+
- Fixed D.bugs/1815
+
- Fixed D.bugs/1865
+
- Fixed D.bugs/1953
+
- Fixed D.bugs/2042
+
- Fixed D.bugs/2140
+
- Fixed D.bugs/2240
+
- Fixed D.bugs/2262
+
- Fixed D.bugs/2429
+
- Fixed D.bugs/2546
+
- Fixed D.bugs/2934
+
- Changed documentation on struct/union grammar to allow
+ invariants, unit tests, and allocator/deallocators.
+
- The file names printed out by runtime assert failures now matches
+ what was set by any preceding #line LineNumber FileName.
+
- Fixed bug with aliases as struct members.
+
- Error now diagnosed when override is applied to non-
+ class member functions.
+
- Fixed colliding template struct initializer problem under Linux.
+
- Can now cat string literals to wchar[] or dchar[].
+
- Now correctly diagnoses as an error attempts to access
+ members of outer aggregate from within inner aggregate.
+
- Fixed Assertion failure: 'cd' on line 1275 in file 'expression.c'
+
- Now diagnoses error when catches are 'hidden' by previous
+ catch parameters.
+
- Added missing typeid's for void, void[] and bit[].
+
+
+
+
+
+Mar 12, 2005
+
+
+ Bugs Fixed
+
+ - Fixed introduced name mangling bug.
+
- Fixed introduced bug with COMDAT records.
+
+
+
+
+
+Mar 10, 2005
+
+
+ New/Changed Features
+
+ - Added pragma(lib, "library name");
+
- cent and ucent are now keywords, to ensure
+ they stay reserved.
+
- version=all cannot be explicitly set;
+ all is always on anyway.
+
+
+Bugs Fixed
+
+ - Fixed spurious unreachable code warning.
+ - Now issues error for declaring non-virtual functions as abstract.
+ - Declaring an entire class as abstract now works.
+ - Added wprintf back to std.c.stdio.
+ - Instantiating deprecated classes now generates deprecation message.
+ - Fixed several cases where deprecated symbol uses were not flagged.
+ - Can now goto case into enclosing switch case.
+ - Fixed problem with goto into if(0) block.
+ - Incorporated Stewart Gordon's fix for std.file.copy().
+ - Fixed Assertion failure: '0' on line 720 in file 'statement.c'
+ - Fixed D.bugs/1795
+ - Fixed D.bugs/2737
+ - Fixed D.bugs/752
+ - Fixed D.bugs/1326
+ - Fixed D.bugs/2238
+ - Fixed D.bugs/2275
+ - Fixed D.bugs/2315
+ - Fixed D.bugs/2316
+
+
+
+
+
+
+
+Mar 7, 2005
+
+
+ New/Changed Features
+
+ - Added named character entities
+ to escape sequences.
+
- Added much better named character entity
+ support to HTML preprocessing.
+
- Added __FILE__, __LINE__, __DATE__, __TIME__, __TIMESTAMP__.
+
- $ can now be used instead of length inside an array's
+ []. It represents the length of the array. This is a trial feature,
+ if it works out then these will happen in sequential releases:
+
+ - length will become deprecated inside [].
+
- length will be removed as the implicitly declared length,
+ and it will be just another identifier.
+
+ - Added warnings on a trial basis.
+
- If a module statement name is used with a package prefix, as in:
+
+ module foo.bar;
+ then bar is not in scope, one must use foo.bar.
+
+
+Bugs Fixed
+
+ - Fixed several errors in HTML preprocessing - entities,
+ line numbers, spaces, casing.
+ - Fixed mac line termination.
+ - Fixed D.gnu/983
+ - Fixed D.bugs/1849
+ - Added missing typeid's for arrays of floating point types.
+ - .sort property now works on arrays of bits and NaNs.
+ - Can now return an expression from a function returning void.
+ - Can have a main() as a nested function.
+
+
+
+
+
+Feb 28, 2005
+
+
+ Bugs Fixed
+
+ - Fixed my bungled integration of std.socket.
+
+
+
+
+
+Feb 27, 2005
+
+
+ New/Changed Features
+
+ - Renamed std.regexp.RegExp.search to
+ std.regexp.RegExp.find
+ to be analogous to names in
+ std.string. Old name remains as
+ a deprecated alias.
+
- Added functions split, find, rfind,
+ sub, search to
+ std.regexp.
+
- Added functions tr,
+ succ, squeeze, removechars, countchars,
+ inPattern, chop,
+ and chomp to std.string.
+
- Incorporated Christopher E. Miller's fixes to std.socket:
+
+
+ IPv6 not supported but the C interface for it should all be there.
+ Split up socket.d and put the C stuff in std.c modules.
+ std.c.linux.linux updated because most of the socket functions
+ are actually regular I/O functions. Added classes Protocol and Service.
+ Added Socket.accepting() to allow derived classes to be
+ accepted.
+ Documentation and samples updated.
+ Fixed major bug in the linux version.
+
+
+
+ - Improved error message for overloaded function mismatches.
+
- Added man pages to \dmd\man\man1 (thanks to Anders F Bjorklund)
+
+
+Bugs Fixed
+
+ - Fixed std.format %A unittest failure under linux
+
- Fixed proxy static constructor ordering problem.
+
- Fixed bug where v.init would initialize v.
+
- Fixed .reverse bug of char[] and wchar[] with multibyte encodings.
+
- Fixed various problems with constant folding for const initializers.
+
- Fixed Internal error: ../ztc/cod4.c 352
+
- Fixed Assertion failure: 'ta' on line 1481 in file 'template.c'
+
- Fixed Assertion failure: 'f' on line 3005 in file 'expression.c'
+
- Fixed Assertion failure: 'ids->vthis' on line 394 in file 'inline.c'
+
- Fixed Assertion failure: '0' on line 909 in file 'func.c'
+
- Fixed Assertion failure: '!scopesym || !scopesym->isWithScopeSymbol()' on line 2637 in
+ file 'mtype.c'
+
- Fixed Assertion failure: 'se2->op == TOKstring' on line 1379 in file 'expression.c'
+
- Fixed Assertion failure: '!needThis()' on line 139 in file 'tocsym.c'
+
+
+
+
+
+Feb 12, 2005
+
+
+ New/Changed Features
+
+ - internal/qsort2.d is now a freely redistributable version of
+ internal/qsort.d.
+
- Added std.file.copy
+
- Asserts enabled in release builds if -unittest is given.
+
+
+Bugs Fixed
+
+ - Fixed cgcs 353 error
+ - Fixed dmd crash on class C{this(){super();}}
+ - Fixed dmd crash on cast(int)(.0>>0)
+ - Fixed dmd crash on enum e;
+ - Fixed dmd crash on 0==Exception;
+ - Fixed dmd crash on varargs in initializer
+ - Fixed dmd crash on labeled {} statements
+ - Fixed dmd crash on mishandled forward reference
+ - Fixed Internal error: e2ir.c 229
+ - Fixed Internal error: ..\ztc\cgcod.c 1640
+ - Fixed Internal error: e2ir.c 141
+ - Fixed Internal error: ../ztc/elfobj.c 1251
+ - Fixed Assertion failure: '!needThis()' on line 139 in file 'tocsym.c'
+ - Fixed Assertion failure: 'fdx->vresult' on line 1450 in file 'statement.c'
+ - Fixed Assertion failure: '!deferred.dim' on line 470 in file 'module.c'
+ - Fixed Assertion failure: 'sym->memtype' on line 3020 in file 'mtype.c'
+ - Fixed infamous std.string.toStringz() bug.
+
+
+
+
+
+Jan 26, 2005
+
+
+Note: This is a library only change, the dmd executables are still
+at 0.111.
+
+ New/Changed Features
+
+
+
+
+
+Jan 15, 2005
+
+New/Changed Features
+
+ - Added std.date.toUTCString().
+
- \uFFFE and \uFFFF are now allowed as valid UCS characters,
+ since there are applications that use them.
+
- Added std.string.toString(long, uint) and toString(ulong, uint)
+ for radix conversions.
+
- Incorporated Phobos improvements provided by Ben Hinkle:
+
+ I've attached modified versions of std.stream and mmfile and the help
+ section for std.mmfile and std.stream.
+ The std.mmfile changes are:
+
+ - change module declaration to std.mmfile
+
- change class declaration to not be auto
+
- add mMode read-only property to get the file mode of type MmFile.Mode
+
+ The std.stream changes are:
+
+ - added Dave Fladebo's performance improvements for buffered readLine
+
- fixed a bug in read/write cfloat/cdouble/creal endian support
+
- uncommented MmFileStream and cleaned it up to use MmFile's mode property.
+
+
+
+
+
+Bugs Fixed
+
+ - Fixed .length bug in std.string.sformat().
+
- Fixed rounding error in std.date for dates before 1970.
+
- Fixed bugs with function inlining and length property.
+
- Compensated for errors in linux's powl() function.
+
- Fixed rounding problem with convering doubles to ulongs.
+
- Extended range of std.date daylight savings time calculation
+ under linux.
+
+
+
+
+
+Dec 30, 2004
+
+New/Changed Features
+
+ - Structs can now be forward referenced.
+
- Structs can now be used as keys in associative arrays.
+
- Arrays of structs can now be sorted.
+
- Drastically speedup up compiler with projects that contain
+ complicated imports.
+
- Does a better job soldiering on after errors are diagnosed.
+
- .sizeof property can no longer be overridden.
+
+
+Bugs Fixed
+
+ - Fixed regression on using super or this outside of a class.
+ - Fixed internal error cod1 2729.
+ - Object file now deleted if compilation errors occurred.
+ - Fixed some circumstances where properties were not recognized.
+ - Fixed potential hang in critical section release code.
+ - Fixed pointer value returned by 'in' expressions.
+ - Fixed codegen bug with some array initializations.
+ - Fixed access violation in std.uri.encodeComponent().
+
+
+
+
+
+Dec 5, 2004
+
+New/Changed Features
+
+ - super.id and this.id now work if id does not need a 'this'
+ pointer.
+
+
+Bugs Fixed
+
+ - Fixed constant folding problem with complex numbers.
+ - Fixed class member initialize bug.
+ - Fixed compiler gpf on bit sizeof.
+ - Now correctly diagnoses some forward reference errors.
+ - Fixed error recovery on minusing template as a variable.
+ - Fixed internal error e2ir 1158
+ - Fixed Assertion failure: '0' on line 661 in file 'expression.c'
+ - Fixed synchronized property call omitting ().
+
+
+
+
+
+Nov 30, 2004
+
+Bugs Fixed
+
+ - Fixed mango build break.
+
+
+
+
+
+Nov 29, 2004
+
+New/Changed Features
+
+ - Improved speed of writef().
+
- Improved single thread performance of gc allocation
+ per Dave Fladebo's suggestions.
+
- InExpressions now, instead of returning a bit,
+ return a pointer to the associative array element if the key
+ is present, null if it is not. This obviates the need
+ for many double lookups.
+
- .offset property is now deprecated, use .offsetof
+ instead. This makes for better compatibility with C and fewer conflicts
+ with offset as a field name.
+
- Added .ptr property to arrays, which is handier and
+ more typesafe than casting an array to a pointer.
+
- Added Ben Hinkle's changes to std.stream:
+
+ - adds EndianStream for BOM and endian support.
+
- removes the two public imports std.string and std.file from end of
+ file
+
- adds read/write for ifloat, idouble, cfloat, cdouble and dchar to
+ interfaces InputStream and OutputStream and add implementations to
+ Stream and EndianStream
+
+ - Added std.c.stddef for definition of C wchar_t.
+
+
+Bugs Fixed
+
+ - Fixed internal error e2ir 814
+
- Fixed protection of implicit constructor.
+
- Fixed deprecated attribute overriding static.
+
- Tightened up detection of constants being implicitly
+ converted to a type that cannot hold it.
+
- Now detects duplicate case strings in switch statements.
+
- Added support for switch(dchar[]) statements.
+
- Fixed bug reading source files without B.O.M.
+
- Fixed initialization of anonymous structs in classes.
+
- Anonymous structs/unions can now only be a member of an
+ aggregate.
+
- Assert expressions are no longer evaluated for side effects
+ even if asserts are turned off. It is not legal to depend on
+ the side effect of an assert.
+
- Fixed _init vs __init prefix for TypeInfo classes.
+
- Adjusted arithmetic conversion rules to match C99.
+
+
+
+
+
+Nov 9, 2004
+
+New/Changed Features
+
+ - Changed std.c.time.CLOCKS_PER_SEC
+ from 1000 to 1000000 for linux.
+
- Added version identifier all being always set.
+
- Setting one of the list of
+ predefined version identifiers
+ is now an error.
+
- Changed TypeInfoClass to TypeInfo_Class.
+
- Changed TypeInfoTypedef to TypeInfo_Typedef.
+
- Incorporated Matthew Wilson's changes to std.process.
+
+
+Bugs Fixed
+
+ - Fixed internal error s2ir 458
+
- Fixed Assertion failure: 64 tocvdebug.c
+
- Fixed codegen error with EAX parameter.
+
- Version switch syntax checking fixed.
+
- Fixed cast of constant to bit.
+
- Multiple declarations of the same type alias now detected.
+
- Access check now done for private constructor in new expression.
+
- Anonymous structs/unions can now have non-field members.
+
- Non-top level classes now added to module class list.
+
- Fixed bugs in std.format with class objets, typedefs,
+ %o and %b formats.
+
- Fixed optimizer bug with loop invariants.
+
- Fixed synchronized statements on Linux.
+
+
+
+
+
+Oct 28, 2004
+
+New/Changed Features
+
+ - Changed integral literal type determination to match C99 6.4.4.1.
+
+
+Bugs Fixed
+
+ - Incorporated David Friedman's fixes for static initializers.
+
- Incorporated David Friedman's fixes for bit array duping
+ and array appending.
+
- Incorporated David Friedman's fix for cast of integral constant to bit.
+
- Incorporated Stewart Gordon's fix for switcherr.d and array.d.
+
- Fixed several bugs with dmd command line parsing.
+
- Fixed Assertion failure: 'ei' line 2576 file 'mtype.c'
+
- Fixed Ivan Senji's two compiler crashes.
+
- Fixed Internal error: ..\ztc\cod3.c 736
+
- Fixed diagnostic on forward referenced templates.
+
- Fixed diagnostic on missing identifiers in foreach declarations.
+
- Fixed bug with mixin constructors.
+
- Internal use of "_invariant" changed to "__invariant" to avoid
+ conflicts with user code.
+
- Fixed dmd hang on transcoding some utf strings.
+
- Interfaces used as an argument to synchronized statements
+ are now automatically cast to Object.
+
+
+
+
+
+Oct 21, 2004
+
+Bugs Fixed
+
+ - Fixed linker bug with unknown CV version.
+
+
+
+
+
+Oct 20, 2004
+
+New/Changed Features
+
+ - Improved symbolic debug info generation for Win32.
+ - Added Dwarf2 line number debug info for linux.
+ - Added Dave Fladebo's speedups to associative arrays.
+
+
+Bugs Fixed
+
+ - Removed redundant declaration of MAP_FAILED from Phobos.
+ - Fixed codegen scheduling bug.
+ - Incorporated Dave Fladebo's linux phobos makefile improvements.
+ - Incorporated David Friedman's std.thread pause fix.
+
+
+
+
+
+Sep 20, 2004
+
+New/Changed Features
+
+ - Upgraded etc.c.zlib to 1.2.1 (thanks to Sean Kelly).
+ - Improved performance of array append (thanks to Dave Fladebo).
+ - Added \dmd\bin\make.exe.
+ - Improved Phobos makefiles.
+
+
+Bugs Fixed
+
+ - Fixed private module construction order.
+ - Folded in Dave Fladebo's fix to std.zlib.
+ - Fixed array append seg fault under linux.
+ - Fixed problem where COMDATs could not exist in multiple modules.
+ - Fixed seg fault on const fields as lvalues.
+ - Fixed Internal error: ../ztc/cod1.c 2498
+ - Fixed Internal error: e2ir.c 447
+ - Fixed seg fault with empty debug statement.
+ - Fixed seg fault with undefined qualified types.
+ - Fixed error recovery with void in arithmetic expressions.
+ - Fixed assertion failure 1147 in expression.c.
+ - Fixed Internal error: ../ztc/cod2.c 4207
+ - Eliminated trailing 0 in returned array from std.file.getcwd()
+ - Fixed "cd" command in make.exe.
+
+
+
+
+
+Aug 30, 2004
+
+New/Changed Features
+
+ - Added Ben Hinkle's improvements to std.stream. Ben writes:
+ "I've attached a modified version of std.stream and phobos.html that
+ include the bug fixes and behavior changes outlined in the newsgroup
+ post yesterday. The bug fixes are almost entirely backwards compatible.
+ The biggest difference is the change that opening a file on Windows with
+ FileMode.In errors when the file doesn't exist. That makes it the same
+ behavior as Linux and it just seems to make sense.
+ I also did things like added writef and changed the Error classes to
+ Exception."
+
+
- Kris pointed out that version identifiers have global effect,
+ and are dependent on which order modules are imported. This is clearly
+ wrong. Now, only version and debug definitions on the command line
+ have global effect. Others only influence the module they are
+ declared in. Furthermore, version and debug definitions can only
+ be done at module scope.
+
+
+Bugs Fixed
+
+ - Fixed "super" bug introduced by 0.99.
+ - Missing function body after 'in' now diagnosed.
+ - Function literals can now have same type signature.
+ - Fixed problem with 'out' parameters in nested functions.
+ - Fixed array initialization causing seg fault.
+ - Fixed compiler gpf on invalid enum syntax.
+ - Fixed Internal error: ..\ztc\cod1.c 3251
+ - Fixed FPU stack overflow bug.
+ - Fixed float optimization bug.
+ - Fixed bug in conversion of string literals to UTF-16.
+
+
+
+
+
+Aug 20, 2004
+
+Bugs Fixed
+
+ - Fixed Internal error: ..\ztc\cgcs.c 213 introduced by 0.99.
+ - Hopefully fixed linux seg fault ENTER problem.
+
+
+
+
+
+Aug 19, 2004
+
+New/Changed Features
+
+ - Added std.string functions ifind() and irfind() (thanks
+ to David L. Davis).
+
- Slicing of bit arrays now allowed if lower bound lands
+ on a byte boundary.
+
- Bit pointer offsets now are in number of bits, however,
+ they must be a multiple of 8.
+
- Improved performance of stack array initialization.
+
- Idiom of using std.c.stdlib.alloca() with a constant value
+ now recognized.
+
- Removed implicit cast to void. What was I thinking?
+
- Moved setErrno() from std.c.linux.linux to std.c.stdlib.
+
- Added setErrno() to std.c.stdlib.
+
- Improved code gen on cast of 'this' to interface.
+
- Added implicit declaration of length to index and slice
+ expressions. This will break existing code if length is used
+ as a variable within [ ].
+
+
+Bugs Fixed
+
+ - Some overloading errors fixed.
+
- ~ now works on bit operands.
+
- Copy of non-byte aligned upper bound of bit array copies
+ no longer copies too many bits.
+
- Fixed cast of bit to byte.
+
- Fixed MI bug with interface vtbl dispatch.
+
- Fixed Internal error: ..\ztc\el.c 723
+
- Fixed gpf on forward reference of mixin.
+
- Fixed Internal error: ..\ztc\dt.c 104
+
- Fixed Internal error: ..\ztc\cgcod.c 552
+
- Fixed error recovery on bad initializers.
+
- Diagnoses error on arithmetic on class references.
+
- Fixed Internal error: ..\ztc\cgcod.c 1464
+
- Fixed internal error: ..\ztc\cgcs.c 353
+
- Fixed unresolved external when expanding nested templates in
+ imports.
+
- Fixed mysterious TOK881 message.
+
- Fixed compiler gpf with using const char[] as enum value.
+
- Fixed compiler gpf with error recovery.
+
+
+
+
+
+Aug 5, 2004
+
+New/Changed Features
+
+ - One can now 'new' a scalar type, for example:
+ int* p = new int;
+
+
+Bugs Fixed
+
+ - Fixed bug where typedef/alias members of a class weren't found
+ when looked up via an instance of that class.
+
- Added Berin Loritsch's fixes to pi.d.
+
- Better detection of recursive template instantiation errors.
+
- Improved error message for implicit conversion errors.
+
- Fixed gpf on erroneous template instantiations.
+
- Fixed name mangling of D __import__ symbols from DLLs.
+
- Fixed Assertion failure: 267 'declaration.c'
+
- Fixed Internal error: ..\ztc\cgcod.c 1464
+
- Fixed Assertion failure: 1204 'expression.c'
+
- Fixed some error recovery for undefined identifiers.
+
- Fixed Internal error: ..\ztc\cgcs.c 350
+
- Fixed Internal error: ..\ztc\cod1.c 2244
+
- Access checking now done after overload resolution rather
+ than before.
+
- Fixed gpf on static initializers for function local structs.
+
- Fixed error recovery on undefined identifiers.
+
- Fixed gpf on const arrays without initializers.
+
- Fixed Assertion failure: 3154 'mtype.c'
+
- Fixed Assertion failure: 1203 'func.c'
+
- Fixed Internal error: ..\ztc\cg87.c 1968
+
+
+
+
+
+Jul 26, 2004
+
+New/Changed Features
+
+ - Added missing overload (opPos) for unary plus.
+
- B.O.M. no longer required for UTF-16 and UTF-32 source
+ text (thanks to Arcane Jill).
+
+
+Bugs Fixed
+
+ - Fixed linux bug where sometimes global symbols were not
+ made public in .o file.
+
- Fixed linux bug with function returns of small structs
+ from C functions.
+
- Implemented listdir() for linux (thanks to Christopher E.
+ Miller and Andre Fornacon)
+
- Deprecated functions can now call other deprecated functions
+ without causing an error.
+
- Check for deprecated functions now done after overloading
+ rather than before.
+
- Fixed some forward reference problems with interfaces.
+
- Fixed compiler GPF with va_arg.
+
- Fixes for std.system (thanks to Thomas Kuehne)
+
- Fixed method alias ordering conflict in derived class.
+
- Fixed std.utf bugs (thanks to Stewart Gordon)
+
+
+
+
+
+Jul 21, 2004
+
+New/Changed Features
+
+ - Added exec* functions to std.process. (thanks to Matthew Wilson)
+ - Added std.perf (thanks to Matthew Wilson)
+
+
+Bugs Fixed
+
+ - Fixed compiler crash on circular class derivations.
+
- Invalid UTF characters in string literals now diagnosed.
+
- Date parsing can now handle time zone offsets that are not
+ in hourly increments.
+
- Fixed incorrect handling of precision for strings in std.format.
+
- Fixed auto bug inside template bodies.
+
- Fixed static initializations of the form int[2]x=3;
+
- Added some missing line numbers in error messages.
+
- Fixed an alias resolution problem.
+
- Break/continue in try and syncrhonized blocks now matches
+ documentation.
+
- Function out parameters are now initialized at the start
+ of the function.
+
- Fixed mishandling of out parameters in variadic functions.
+
- Fixed problem of undefined symbols at link time when templates are
+ expanded in interface declarations.
+
- Template default arguments for parameters now are 'lazilly'
+ semantically analyzed, which means they can refer to previous template
+ argument types.
+
- Fixed DMD GPF when trying to index a mixin with [].
+
- time_t definition removed from std.c.linux.linux, as it conflicted
+ with definition in std.c.time.
+
+
+
+
+
+Jul 6, 2004
+
+New/Changed Features
+
+ - Added printf replacement, std.stdio.writef and related
+ functions.
+
- Added std.format for formatting strings.
+
- Rewrote std.string.format() for full functionality.
+
+
+Bugs Fixed
+
+ - Fixed Internal error: ..\ztc\cgcod.c 614
+
- Fixed overflow detection on static array dimension.
+
- Fixed Internal error: ..\ztc\cod4.c 352
+
- Now detects attempts to use non-identifer character filenames
+ as module names.
+
- Can now overload static member functions with non-static ones
+ within a static one.
+
- Now detects attempts to overload destructors.
+
- Fixed compiler exit status under linux (thanks to Sam McCall).
+
- Fixed poor error recover from undefined template identifier.
+
- Better forward reference handling.
+
- Fixed problems with local statics having name collisions.
+
+
+
+
+
+Jun 27, 2004
+
+Bugs Fixed
+
+ - Missing TypeInfo for bit added.
+
- Incorrect integral type promotion for variadic arguments fixed.
+
- Fixed std.string.toStringz() 0 termination bug.
+
- Fixed some .size => .sizeof deprecations in library.
+
- Fixed std.stream.File.open() and std.stream.File.create()
+ to handle UTF filenames (thanks to Carlos Santander Bernal).
+
- Fixed std.uri.encode() bug with Octets.
+
- Fixed codegen error with typedef'd static arrays.
+
- Correct error message now generated when using an array
+ initializer as an expression.
+
- Fixed "frame" error when compiling.
+
- Fixed compiler GPF on getting boolean value of module name.
+
- Fixed compiler GPF with function with all default arguments.
+
- Fixed bug with associative array typedef'd indices.
+
- Fixed TypeInfo crash with arrays of null Objects.
+
- Fixed Internal error: ..\ztc\blockopt.c 1941
+
- Fixed Internal error: ..\ztc\cod1.c 2244
+
- Fixed Assertion failure: '0' on line 80 in file 'mtype.c'
+
+
+
+
+
+Jun 22, 2004
+
+New/Changed Features
+
+ - char.init is now 0xFF, wchar.init is 0xFFFF, dchar.init
+ is 0x0000FFFF. Thanks to Arcane Jill.
+
- Array operator assignment overloading with opIndex(index, value) is now
+ deprecated. Use opIndexAssign(value, index) instead.
+
- Multiple indices are now allowed with array operator
+ overloading.
+
- Added _arguments[] and _argptr to
+ variadic functions.
+
- Added
+ TypeidExpressions.
+
- .typeinfo property is now deprecated (use
+ TypeidExpression instead).
+
- Replaced std.c.stdarg with std.stdarg.
+
+
+Bugs Fixed
+
+ - Some minor error message improvements.
+
- Fixed bug where local class static constructor did not get
+ called.
+
- Fixed Assertion failure: 'f' on line 2695 in file 'expression.c'
+
- Fixed Internal error: ..\ztc\cgcs.c 353
+
- Fixed dmd GPF when module used as array.
+
+
+
+
+
+Jun 7, 2004
+
+New/Changed Features
+
+ - Modified Object.toString() and Object.print() to print
+ out the name of the object instance's class.
+
- The Expression within an array's brackets is
+ now an AssignExpression (meaning that commas are no
+ longer allowed).
+
- Added default arguments to function parameters. Semantics
+ are like C++.
+
- Added package attribute for package level access.
+
- Added operator overloads opAdd_r, opMul_r, opAnd_r,
+ opOr_r, and opXor_r.
+
- Modified operator overloading rules
+ so functionality can be added to the lvalue of an operator overload
+ for user defined rvalues
+ without needing to modify the lvalue's class.
+
+
+Bugs Fixed
+
+ - Fixed parsing bug in typeof(this).func();
+
- Fixed nested multiple inheritance bug with interfaces.
+
- Fixed compare() bug in typeinfo's for int and uint.
+ Thanks to Stewart Gordon.
+
+
+
+
+
+May 27, 2004
+
+New/Changed Features
+
+ - Allow functions that return void to return expressions.
+
- Added support for typeof(this)
+ and typeof(super).
+ outside of non-static member functions.
+
- Added cast operator overloading.
+
- typeof(this).member() now does non-virtual call to member().
+
- Mixin qualifier names now work for class members.
+
+
+Bugs Fixed
+
+ - Fixed std.file.listdir unicode issue with Win95.
+
- Fixed incorrect diamond inheritance of interface classes.
+
- std.string.capwords() now converts non-first characters
+ of a word to lower case.
+
- Fixed problem with super in mixins.
+
- Fixed assert failure mtype.c 2575
+
- Fixed bad formatting of typedef* error messages.
+
- Fixed std.string.toString(char).
+
- Fixed bug accessing private static from inlined function.
+
- Fixed compiler gpf on synchronized blank for statement inits.
+
+
+
+
+
+May 20, 2004
+
+Bugs Fixed
+
+ - Fixed problem with mixins overriding same function more than once.
+
- Added ability for invariants and other special functions
+ to be in mixins.
+
- Fixed error diagnostic for delegate literals in class declarations.
+
- Fixed extended comparison operators so they work on integral
+ types when constant folding.
+
- Fixed bug with mixin functions for interfaces.
+
- Fixed Internal error: ..\ztc\cod1.c 1641
+
- Fixed name lookups for special functions in mixins.
+
+
+
+
+
+May 17, 2004
+
+New/Changed Features
+
+ - Allow void() to be omitted from function literals.
+ - Mixins added.
+ - A WithStatement now works on struct instances.
+
+
+Bugs Fixed
+
+ - Added Stewart Gordon's windows.d function pointer fixes.
+ - Added Stewart Gordon's std.asserterror fixes.
+ - Added Ben Hinkle's std.stream fixes.
+ - Fixed bug with template function alias arguments.
+
+
+
+
+
+May 5, 2004
+
+New/Changed Features
+
+ - Added std.c.stdarg (thanks to Hauke Duden).
+
- C style casts deprecated (use -d to compile them for now).
+
- instance style template instantiation deprecated
+ (use -d to compile them for now).
+
+
+Bugs Fixed
+
+ - Fixed problem with template classes and opCall.
+
- Fixed problems with implicit this and member template functions.
+
- Fixed problem with property in [] of NewExp.
+
- Now correctly diagnoses problem with using local as template
+ parameter alias.
+
- Fixed bug with no identifier for declarator in template type.
+
- Fixed const folding with ?: operator.
+
- Fixed std.utf.toUTF32() with J C Calvarese's fix.
+
- Included David Friedman's fixes for linux monitors.
+
- Fixed bug with overloading alias template parameters.
+
- Fixed internal error cg87 1235.
+
- Superclass dtors now called for class deallocator.
+
- Fixed _d_delmemory() taking the wrong argument.
+
- Fixed auto super dtors.
+
- Fixed multi argument struct new's with custom new.
+
- Fixed custom deallocator struct delete.
+
- Monitors now deleted when object is deleted.
+
+
+
+
+
+Apr 23, 2004
+
+New/Changed Features
+
+ - Added template default parameters.
+ - Added casting ability to non-COM interfaces.
+ - Added Christopher E. Miller's std.socket and std.socketstream.
+ - Added std.mmfile (thanks to Matthew Wilson!)
+
+
+Bugs Fixed
+
+ - An error is now issued when the argument to delete
+ is a COM interface object.
+
- Incorporated Antonio Monteiro's fixes for std.date and std.zip.
+
- Error now diagnosed when EnumBaseType is not integral.
+
- Fixed delete on non-class objects.
+
+
+
+
+
+Mar 28, 2004
+
+Bugs Fixed
+
+ - Some cases of forward referenced classes are now handled.
+
- Illegal recursive alias declarations now correctly diagnosed.
+
- Erroneous anonymous struct member offsets within unions fixed.
+
- Fixed problem with array initializers for consts.
+
- Fixed bug with intrinsics.
+
- Can now slice a void[].
+
- std.date: fixed dst calculation for zones with no dst.
+
- Fixed bug with nested delegate literals.
+
- Fixed overload inheritance bug with function aliases from
+ base classes.
+
- Added files gnuc.h, mem.h, mem.c, port.h, enum.h, and enum.c
+ to the \dmd\src\dmd.
+
- Fixed seg fault on forward reference to template.
+
- Fixed std.date.getUTCtime() for linux.
+
+
+
+
+
+Mar 7, 2004
+
+Bugs Fixed
+
+ - Fixed problem with class and modules having the same name.
+ - Fixed access problem with protected members of base class.
+
+
+
+
+
+Mar 5, 2004
+
+New/Changed Features
+
+ - Added overloads for basic types for std.string.toString().
+
- Modified front end source to be more compatible with GDMD project.
+
- Implicit conversions of floating point values to integer
+ values is now disallowed.
+
+
+Bugs Fixed
+
+ - Fixed dmd crash with module and class name conflict.
+
- Fixed bug where f(x)(y); was interpreted as declaring
+ x as a function taking parameter type y and returning type f,
+ instead of f being an instance of a class with () overloaded.
+ There's still the problem of f(*p)(y), though, the solution
+ is to probably just deprecate the C function pointer declaration
+ syntax.
+
- Fixed using super in nested function.
+
- Function members without bodies in non-abstract classes
+ now reference an external
+ symbol rather than inserting a 0 in the vtbl[].
+
- Fixed Internal error: ../ztc/cgcod.c 1459
+
- Fixed problems with template aliases.
+
- Improved semantic analysis with member templates.
+
- Adding some missing file/line numbers to error messages.
+
- Fixed bug with property syntax in return expression.
+
- Fixed problem with template expansion contexts.
+
+
+
+
+
+Feb 2, 2004
+
+New/Changed Features
+
+ - Added utf decoding capability to foreach statement.
+
- Added Christopher Miller's std.base64.
+
- Fixed gc per http://www.digitalmars.com/drn-bin/wwwnews?D/21217
+
+
+Bugs Fixed
+
+ - Fixed std.file failure on Win95 (hopefully got it right this time!).
+ - Fixed code gen error with unsigned % 10.
+ - Fixed problem with std.regexp.test and multiple calls.
+ - Fixed Internal error: ..\ztc\cgcod.c 2241
+ - Fixed chained assignments to bit arrays.
+ - Fixed bugs with foreach over a bit array.
+ - Fixed many problems with recursive templates.
+ - Fixed Assertion failure on line 67 in file 'template.c'
+ - Fixed problem with optimization of short registers.
+
+
+
+
+
+Jan 14, 2004
+
+New/Changed Features
+
+ - std.string.find() and .rfind() upgraded to support dchar
+ searches within char[] strings.
+
- Fixed std.ctype functions to accept/return dchar types
+ instead of char types.
+
- // comments can now be terminated by end of file rather
+ than a newline.
+
+
+Bugs Fixed
+
+ - Fixed Internal error e2ir.c 133
+
- Fixed Internal error: ..\ztc\cod1.c 2240
+
- Fixed Internal error: ..\ztc\cod2.c 4116
+
- Fixed crash on invalid template syntax.
+
- std.file functions now fall back to "A" functions
+ on Win9x systems.
+
- Fixed problem with static arrays of structs with non-zero
+ default initializations.
+
- Fixed crasher with structs declared but not defined.
+
- Fixed critical section bug in Win95.
+
+
+
+
+
+Jan 2, 2004
+
+New/Changed Features
+
+ - Changed std.file so unicode filenames work.
+
- Added toUTF16z to std.utf.
+
- Added std.md5.
+
- Hex strings must now contain an even number of hex digits.
+
- Added .alignof property.
+
- Added .sizeof property which has same value as
+ .size, but won't conflict with C/C++ struct member names.
+
- Global main must be main() or main(char[][] args).
+
- Added size_t, ptrdiff_t predefined aliases.
+ Use size_t as an alias for an unsigned integral type spanning
+ the address space, and ptrdiff_t as an alias for a signed
+ integral type spanning the address space. This will make the code
+ portable from 32 to 64 bits.
+
- .length, .size, .sizeof, and .alignof
+ now return a value of type size_t.
+
- For win32, converts '/' in source file names passed to dmd
+ to '\' so that
+ back end routines work consistently.
+
- Added typeof.
+
- Added pragmas.
+
- Added expression lists to
+ case statements.
+
- Added goto default; and goto case; and
+ goto case Expression;
+ for use in switch statements.
+
- Added template alias
+ parameters.
+
- Added new template instance syntax.
+
- Added class template syntax.
+
- Added template member injection rule.
+
- Added Matthew Wilson's std.recls - for recursive file-system searching.
+
+
+Bugs Fixed
+
+ - Better error recovery in parser.
+ - Sizes of bit arrays fixed.
+ - Fixed conflict between std.intrinsic and std.math.
+ - Fixed reset problem with std.regexp.match().
+ - Fixed std.string.rfind().
+ - Fixed several problems with -inline.
+
+
+
+
+
+Nov 21, 2003
+
+New/Changed Features
+
+ - std.assert changed to std.asserterror.
+
- Added keyword is, which has same function as ===.
+
- Renamed operator overloading names.
+
- Renamed std.assert to std.asserterror.
+
- Added system to std.process.
+
- Changes to std.file:
+
+ - Added several functions to std.file.
+
- Changed byte[] types for data in std.file to void[].
+
- std.file.getSize() now returns a ulong.
+
+
+
+Bugs Fixed
+
+ - Library modules are all correctly named.
+ - Library modules now have private imports.
+
+
+
+
+
+Nov 4, 2003
+
+New/Changed Features
+
+ - Changed to new standard library package layout.
+
- Changed apply to opApply.
+
- Fixed foreach so it
+ can have multiple parameters.
+
- Added etc.c.zlib, a D interface to the C zlib compression library.
+
- Added std.zlib, a compression module.
+
- Added std.zip, a zip archive module.
+
+
+
+
+
+Oct 15, 2003
+
+New/Changed Features
+
+ - Added support for Unicode characters in identifiers.
+ - Version declarations can now wrap attribute : and they'll stick.
+ - -offilename switch now accepts any extension.
+ - Added D.win32.registry.
+
+
+Bugs Fixed
+
+ - Problems fixed with with abstract member function definitions.
+ - Fixed problems with getting the wrong .classinfo with inherited classes.
+ - Fixed internal error cgcod.c 1459
+ - Fixed internal error e2ir.c 721
+ - Fixed ICE for empty foreach bodies.
+ - Fixed name mangling for out/inout parameters to extern (Windows) functions.
+ - Fixed bug in ?: of string literals.
+ - Fixed order-of-evaluation bug with &((new foo()).bar)
+ - Can now assign null to delegates.
+ - Fixed problem diagnosing error of slices as out parameters.
+ - Fixed problem diagnosing error of const field initializations.
+ - Fixed gc and multithread deadlock (thanks to jhenzie).
+
+
+
+
+
+Sep 18, 2003
+
+New/Changed Features
+
+ - Added static asserts.
+
- Added bswap as a compiler intrinsic function.
+
- Added operator overloading
+ for array index [],
+ array slice [..] and
+ function call () operators.
+
- Added properties.
+
- To take the address of a function, the & operator is
+ required now, rather than being implicit.
+
+
+Bugs Fixed
+
+ - Implicit conversions of B[] to A[] are no longer allowed if B
+ is derived from A. Gaping type safety holes are the reason.
+
+
+
+
+
+Sep 14, 2003
+
+New/Changed Features
+
+ - Implicit conversions of B[] to A[] are now allowed if B
+ is derived from A.
+
- Functions in abstract classes can now have function bodies.
+
+
+Bugs Fixed
+
+ - Fixed bug with in and out instructions in inline assembler.
+
- Fixed speed problem with %.*s printf format.
+
- Fixed problem with foreach over array of arrays or structs.
+
- Fixed compiler error with array rehash.
+
- Now correctly issues error on self-initializations like:
+ int a = a;
+ - Fixed problem converting "string" to char[], it should be
+ an exact conversion, not an implicit conversion.
+
+
+Linux Bugs Fixed
+
+ - Occaisional segfault during gc collection fixed.
+ - Empty static arrays now placed in BSS segment.
+ - Conversion of uint to real now works.
+
+
+
+
+
+Sep 3, 2003
+
+New/Changed Features
+
+
+Bugs Fixed
+
+ - Fixed bug with nested functions.
+ - Fixed bug with linux file.write() and file.append() functions.
+ - Fixed bug with linux processing of /etc/dmd.conf.
+
+
+
+
+
+Aug 24, 2003
+
+New/Changed Features
+
+ - Added wprintf() to object.d.
+ - Extended alias
+ to work for overloaded functions from another scope.
+
+
+Bugs Fixed
+
+ - Fixed incorrect handling of leading UTF-8 BOM mark.
+ - Fixed 2 compiler GPF's.
+ - Fixed problem with downcasting to interfaces.
+ - Fixed linux seg fault with %@P% in DFLAGS.
+ - Fixed inoperative -L switch for linux.
+
+
+
+
+
+Aug 11, 2003
+
+New/Changed Features
+
+ - Added dchar keyword for UTF-32 characters.
+
- ' ' strings are now character literals, not strings.
+
- wysiwyg strings are not r"string", not 'string'.
+
- `string` (backquotes) are also wysiwyg strings.
+
- Added x"0a AA BF" style hex strings.
+
- Implicit conversion of single character strings to
+ character literals no longer happens.
+
- Implicit conversions of string literals between UTF-8,
+ UTF-16 and UTF-32 now happens.
+
- Deleted command line switch -o, replaced it with
+ -od, -of and -op. This should remove
+ confusion and add flexibility.
+
- Added bool as an alias for bit.
+
- Integer and floating point literals can now have embedded
+ _ for formatting purposes.
+
+
+Bugs Fixed
+
+ - Bit variables can now be out or inout function
+ parameters.
+
- Package names now part of mangled names.
+
- Mangled names are now reversible unambiguously.
+
- Fixed problem returning 8 byte structs from functions.
+
- Fixed bug with typedef'd associative arrays.
+
- Fixed bug with typedef'd return values.
+
- Fixed error recovery from 'typedef struct'.
+
- Fixed problems with Linux exception handling.
+
- 0b... numeric literals now work under Linux.
+
+
+
+
+
+Jul 8, 2003
+
+
+ - Added TypeInfo's for classes and other basic types.
+
- new'ing arrays of types with non-zero initializers now works.
+
- new'ing bit arrays now works.
+
- new'ing structs now works.
+
- Fixed bug with typedef'd associative array index.
+
- Falling off the end of a function that has a non-void return
+ type now generates a runtime exception if a syntax error is not
+ already generated.
+
- Fixed parse bug with inout keyword in nested functions.
+
- Fixed cgcs 350 error.
+
- Fixed error where const objects could be assigned to.
+
- Fixed crash with non-existent struct member names in initializers.
+
- Fixed crash with const objects with no initializers.
+
- Fixed cgobj 3115 error.
+
- Correctly errors out now when slicing voids.
+
+
+
+
+
+Jun 17, 2003
+
+
+
+
+
+
+Jun 8, 2003
+
+
+ - Added uri module.
+
- Added utf module.
+
- Added constant folding for ?: operator.
+
- Zero initialized structs no longer need to link to
+ the module the struct was defined in.
+
- Private imports now supported.
+
- Class names common to multiple modules no longer collide,
+ but this required a change to how class names are mangled.
+ Hence, existing libraries will need to be recompiled.
+
- templates of the form:
+
+ template foo(T:T[])
+
+ now correctly resolve T in foo(int[]) to int rather than int[].
+
+
+
+
+
+May 13, 2003
+
+linux version
+
+
+ - Another bad section name bug is hopefully fixed.
+
+
+
+
+
+May 12, 2003
+
+linux version
+
+
+ - dmd.conf now needs to be installed as
+ /etc/dmd.conf.
+
- phobos.a has been renamed as libphobos.a
+ and been placed in the /usr/lib directory.
+
- dmd will now do the link step automatically.
+
- The bad section name bug is hopefully fixed.
+
+
+
+
+
+May 10, 2003
+
+
+ - Added linux version. Thanks to Burton Radons and
+ Pat Nelson for the help.
+
+
+
+
+
+Mar 30, 2003
+
+
+ - Incorporated Burton Radon's stream.d fixes.
+ - Improved performance of string switches and string concatenation.
+ - Phobos library is now built optimized.
+ - Fixed numerous reported bugs.
+
+
+
+
+
+Mar 6, 2003
+
+
+ - Fixed bugs in nested functions.
+ - Refactored code so it compiles with gnuc.
+
+
+
+
+
+Mar 3, 2003
+
+
+ - Added covariant function return types.
+
- Fixed several bugs in nested functions,
+ template argument deduction, access protections,
+ constant folding, etc.
+
+
+
+
+
+Feb 25, 2003
+
+
+
+Many thanks to Burton Radons for his help with this.
+
+
+
+
+Feb 20, 2003
+
+
+ - Fixed a couple bad bugs with template typedefs and arrays.
+
+
+
+
+
+Feb 17, 2003
+
+
+ - Added several new math functions to math.d.
+
- Changed behavior of new expressions to match change in
+ array declaration order:
+
+ char[][] foo;
+ foo = new char[][45]; // new, correct way to allocate array of 45 strings
+ //foo = new char[45][]; // old, now wrong, way
+
+ - Fixed some problems with error recovery.
+
- The module name is now in its own scope enclosing the scope
+ of the contents of the module (before it was simply inaccessible).
+
+
+
+
+
+Feb 14, 2003
+
+
+
+ These changes have been needed for a while, and it's time to
+ put them in before D gets too constrained by legacy code.
+ Fortunately, using grep and global/search/replace can easily
+ take care of the type renames.
+ The array declaration issue can be fixed
+ by grepping for "][", and then manually fixing each.
+
+
+
+
+
+Feb 8, 2003
+
+
+
+
+
+
+
+Feb 5, 2003
+
+
+ - The argument to a with statement can now be a template instance.
+
- The inline asm for FCOMI/FCOMIP/FUCOMI/FUCOMIP can now
+ accept the ST,ST(i) form of the instruction to match the
+ Intel documentation.
+
- Fixed numerous minor bugs.
+
+
+
+
+
+
+Jan 27, 2003
+
+
+ - Added template value parameters (as opposed to just type parameters).
+ - Fixed several problems with templates.
+ - Added #line pragma support.
+ - D can now accept source files in various UTF formats.
+
+
+
+
+
+
+Nov 20, 2002
+
+
+
+
+
+
+
+Nov 18, 2002
+
+
+ - Added LINKCMD to sc.ini to specify which linker to use.
+
- Multiple -I switches can now be used, and the
+ paths are searched in order.
+
- Fixed bug in regexp with blank substitutions.
+
- Removed "reference to this before super()" error.
+
- % and %= floating point operations are now handled
+ by code generator instead of library.
+
- Fixed GCStats linking problem.
+
- Fixed many other minor problems.
+
+
+
+
+
+
+Oct 25, 2002
+
+
+ - Added
+ conv to phobos library.
+
- Fixed a number of bugs that were blocking people.
+
+
+
+
+
+
+Oct 22, 2002
+
+
+ - Fixed problem with auto class constructors.
+
- Fixed problem with calling class invariants with -O.
+
- Redid
+ lib.exe command syntax to simplify makefiles.
+
- String literals can now span multiple lines.
+
- Fixed bugs in handling access violations and other windows
+ exceptions.
+
- Revamped support for generating Windows GUI apps.
+
- Fixed some code gen bugs.
+
+
+
+
+
+
+Oct 8, 2002
+
+
+ - Redid constructor semantics
+ to improve reliability.
+
- Expanded inlining capability.
+
- Redid interface semantics.
+
- Fixed problems with ~ string concatenation.
+
+
+
+
+
+
+Oct 1, 2002
+
+
+ - Clarified interface semantics
+ and fixed problems with it per Joe Battelle's suggestions.
+
+
+
+
+
+
+Sep 28, 2002
+
+
+
+
+
+
+
+
+
+
+
+ |