diff -uNr dmd-0.124/dmd/html/d/changelog.html dmd-0.125/dmd/html/d/changelog.html
--- dmd-0.124/dmd/html/d/changelog.html 2005-05-19 11:44:48.000000000 +0200
+++ dmd-0.125/dmd/html/d/changelog.html 2005-05-20 15:43:00.000000000 +0200
@@ -1,2160 +1,2184 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-D Programming Language - Change Log
-
-
-
-
-
-
-Home
-| Search
-| D
-
-
-Last update Thu May 19 2005
-
-
-
-D Change Log
-
-
-
-
-
-
-
-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 heirarchies.
-
- 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 bug
-
- 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
-
-
-
-Feedback and Comments
-
- Add feedback and comments regarding this
- page.
-
-
-Copyright © 1999-2005 by Digital Mars, All Rights Reserved
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+D Programming Language - Change Log
+
+
+
+
+
+
+Home
+| Search
+| D
+
+
+Last update Fri May 20 2005
+
+
+
+D Change Log
+
+
+
+
+
+
+
+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 heirarchies.
+
- 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 bug
+
- 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
+
+
+
+Feedback and Comments
+
+ Add feedback and comments regarding this
+ page.
+
+
+Copyright © 1999-2005 by Digital Mars, All Rights Reserved
+
+
+
+
+
+