· Overview
· D for Win32
· Win32 DLLs in D
· C .h to D Modules
· FAQ
· Style Guide
· Example: wc
· Future
· D Change Log
· Tech Tips
· Rationale
· Glossary
· Acknowledgements
Tools
· DMD D Compiler
· GDC D Compiler
· Linker
· Profiler
Community
· News Digest
· News
· Forum
· Announcements
· Learn
· D links
Archives
· digitalmars.D
· digitalmars.D.dtl
· digitalmars.D.announce
· digitalmars.D.learn
· digitalmars.D.bugs
· D.gnu
· Old D
|
D Change Log
Nov 7, 2005
Bugs Fixed
Nov 2, 2005
New/Changed Features
- Implemented constant folding of "string"[constant].
- Implemented constant folding of "string"[constant .. constant].
- Added --help switch.
- Removed std.math2.poly, use std.math.poly instead.
DDoc
Documentation
Bugs Fixed
- Fixed std.math.lgamma and tgamma.
- Fixed D.announce/1730
- Fixed D.bugs/5198
- Fixed D.bugs/5199
- Fixed Linux C ABI compatibility bug with returning structs
from extern (C) functions. this can break
existing code.
Oct 24, 2005
New/Changed Features
- Added
implicit type inference.
- extern storage class for variables now works.
- extern(linkage) for nested functions now works.
Documentation
Bugs Fixed
Oct 17, 2005
New/Changed Features
- Added Doc Clugston's D/28800 for tgamma, lgamma.
- Updated std.md5 per Dawid Ciezarkiewicz's suggestion D/28887.
Bugs Fixed
Oct 2, 2005
New/Changed Features
Ddoc
- Color
syntax highlighting is here!
- Added capability to process general purpose documents.
Bugs Fixed
Sep 28, 2005
New/Changed Features
Ddoc
- Added .. macro arguments, and special macro.
- Each standard section now has its own custom DDOC_ macro.
- Incorporated Bob W's suggestions D/28843
.
Bugs Fixed
Sep 24, 2005
New/Changed Features
- Filled out std.math with standard C math.h functions.
- Added -o- flag to suppress generation of object file.
Ddoc
- Removes closing *'s on /******* Comment ***********/
- '_' in section names now replaced with ' ' (Derek Parnell's idea).
- Extensive revision to how macros work based on a
suggestion from Derek Parnell. Much more flexible now.
Bugs Fixed
Sep 19, 2005
New/Changed Features
- Added Ddoc, the documentation
generator for D.
Sep 8, 2005
New/Changed Features
Bugs Fixed
Sep 6, 2005
New/Changed Features
- Added Don Clugston's std.math.feqrel().
- Added Ben Hinkle's updates to std.stream:
- removed all deprecated features stdin/out/err and the Error exceptions
D/27364
- new FilterStream superclass of BufferedStream, EndianStream and SliceStream
- added File.available overload
D/27684
- Fixed D.bugs/4711
- updated html doc with more details about filtering
D.announce/1102
- Added Ben Hinkle's updates to std.mmfile from thread
D.bugs/4550
- added windowing support
- changed size parameters to ulong instead of size_t
- commented out the debug printf
- added unittests
- updated help
Bugs Fixed
Aug 5, 2005
New/Changed Features
- Added postfixes c, w, d to string literals to denote type.
- For linux, DW_LANG_D is used for DW_AT_language in the Dwarf
symbolic debug info. If the
-gc switch is used, DW_LANG_C is used for older GDB's.
- Incorporated Ben Hinkle's new std.format which can print
general arrays.
- Added std.stdio.writefx and std.stream.writefx
from David L. Davis and Ben Hinkle.
- Incorporated Ameer Armaly's improvement to std.c.linux.linux D/27320.
Bugs Fixed
- Implemented access checking for structs.
- Fixed D.bugs/4555
Jul 10, 2005
New/Changed Features
- Incorporated Ameer Armaly's improvement to std.file.exists() D/26226.
- Ben Hinkle's update for stream.d and std_stream.html:
As discussed in
D/26073
scanf and vscanf have been modified and renamed to readf and vreadf
(with doc updates, too).
Bugs Fixed
Jun 16, 2005
New/Changed Features
- No more forward references of version or debug identifiers.
Bugs Fixed
Jun 7, 2005
New/Changed Features
- === now deprecated, replaced with is.
- !== now deprecated, replaced with !is.
- Added typesafe variadic functions.
- Now throws an ArrayBoundsError if accessing an associative
array with a key that is not already in the array. Previously,
the key would be added to the array.
- Added IsExpressions
which replace IftypeConditions
which are now deprecated.
The IsExpressions are significantly
more general and powerful.
- Added VoidInitializers.
- delete aa[key] is now deprecated, use
aa.remove(key) instead.
- Added non-static nested classes.
- Added anonymous non-static nested
classes.
- Incorporated Ben Hinkle's changes to std.stream:
- std.stream.stdin/out/err deprecated
- adding std.cstream.din/out/err
- stream.d:
- incorporate the socketstream code for handling \r
end-of-line formats for readLine on non-seekable streams like
pipes
- getc and getcw return char.init and wchar.init on EOF
- getcw throws if EOF after reading 1 byte
- ungetc and ungetcw ignore char.init and wchar.init
- deprecate stdin,stdout,stderr
- remove private import of std.c.stdio and aliases for
va_list
- socketstream.d: removed overrides that are now in std.stream.Stream
- cstream.d: new stream wrapper around FILE* with din, dout, derr
- unittest,d: add cstream to ensure unittests are run
Bugs Fixed
- Fixed Internal error: e2ir.c 488
- Incorporated David Friedman's patch for std.base64.
- Fixed D.bugs/4178
- Incorporated evilmrhenry's fixes from D.bugs/4215
- Fixed std.math.tan's bug where it could leave an operand on the FPU
stack
May 20, 2005
New/Changed Features
Bugs Fixed
- iftype fixed to do implicit conversion match with
specialization, rather than exact match.
- Fixed D.bugs/4075
- Ben Hinkle fixed D.learn/873
- phobos/internal/gc _d_newarrayi() fixed to use std.c.stdarg.
May 19, 2005
New/Changed Features
- Added -quiet switch to dmd.
- .size property is no longer deprecated, it is
an error. Replace with .sizeof.
- Renamed DMD source debcond.h to cond.h, debcond.c to cond.c.
- Added Burton Radons' std.boxer.
- Reformatted the documentation to use a bit of color.
- Added static if.
- Added iftype.
Bugs Fixed
May 11, 2005
New/Changed Features
- Capped static array size at 16Mb.
Bugs Fixed
May 3, 2005
New/Changed Features
- Added Ben Hinkle's fixes for std.stream:
- fixes the seekable bugs on reading stdin and pipes
- adds isOpen and eof to InputStream
- adds isOpen, flush and close to OutputStream
- Added std.conv.toFloat, toDouble, toReal from David L. Davis.
Bugs Fixed
- Improved line numbers in error messages.
- Fixed problems detecting array overflows at compile time.
- Improved handling of compiler out-of-memory errors.
- Fixed DMDScript build break.
- Fixed memory corruption problem with array[length..length].
- Fixed compiler seg fault on uplevel invariant.
- Fixed problem detecting circular interface hierarchies.
- Fixed cat of static arrays.
- Fixed Internal error cg87 1240.
- Fixed D.bugs/3710
- Fixed D.bugs/3747
- Fixed D.bugs/3752
- Fixed D.bugs/3753
Apr 15, 2005
New/Changed Features
- std.syserror is now deprecated, replaced with
std.windows.syserror. It is Windows specific, and
lining it up with strerror() on Linux was a mistake. Windows
error numbers do not line up with C's errno values.
Thanks to Regan Heath for a decent implementation of it.
- Now ?: works with null and arrays.
- Changed std.outofmemory.OutOfMemory to
std.outofmemory.OutOfMemoryException, and it now
derives from Exception.
- Abstract class methods now cause the class to be abstract.
- Abstract can no longer be applied to variables, structs
or unions.
- Unit tests now allowed in structs and unions.
Bugs Fixed
- Added zwang's fix for std.string.ifind().
- Fixed constant fold divide by 0.
- Fixed "Win32 Exception" in std.regexp.
- Fixed bogus "switch statement already has a default" bug.
- Fixed D.bugs/2991
- Fixed D.bugs/3002
- Fixed D.bugs/3034
- Fixed D.bugs/3091
- Fixed D.bugs/3129
- Fixed D.bugs/3551
- Fixed D.bugs/3597
- Fixed D.bugs/3646
- Implemented typeinfo's for arrays, static arrays, associative
arrays, function pointers, delegates, and enums.
- Fixed typeinfo for typedef's.
- Fixed broken implicit conversion from real or imaginary
to complex.
- Fixed pragma error messages.
- Fixed broken pragma(lib) inside function.
- Fixed dstress slice_10.
- Fixed dstress argument_03.
- Fixed dstress const_04.
- Fixed dstress foreach_26.
- Fixed dstress html_empty_entity_03.
- Fixed dstress invariant_12.
- Fixed dstress invariant_29, _30, _31.
- Fixed dstress main_06.
- Fixed dstress mixin_09.
- Fixed dstress new_09.
- Incorporated Ben Hinkle's fixes for std.stream. Fixed a bug
introduced in dmd-120:
D.bugs/3563
about seekable stdin and Stream.toString(). Fixed a bug in
the Windows version of seek() with files larger than uint.sizeof.
Apr 6, 2005
New/Changed Features
- In -release builds implicit switch defaults,
implicit return statements, and assert(0) expressions are
replaced with HLT instructions.
- Renamed -gt command line switch that invokes the profiler
to -profile.
- Complex types can no longer be implicitly converted to
non-complex types.
- Real and imaginary types can no longer be implicitly converted
to each other.
- Added Pentium 4 (Prescott) instructions to inline assembler.
- Template alias parameters can now have specializations.
- Compiler now permitted to retain floating point literals
and do constant folding on them in a precision that is greater
than the precision of its type.
- Changed AMD64 predefined version to X86_64.
- Added Matthew Wilson's std.openrj.
- Ben Hinkle submitted a new std.stream
with:
- replace uint buffer lengths with size_t
- add line-by-line opApply to Stream and InputStream (due to Regan
Heath)
int opApply(int delegate(inout char[] line) dg)
int opApply(int delegate(inout ulong n, inout char[] line) dg)
int opApply(int delegate(inout wchar[] line) dg)
int opApply(int delegate(inout ulong n, inout wchar[] line) dg)
- move readable/writeable/seekable tests from contracts to the body
since phobos is compiled in release mode and users can easily try
to write to an unwritable stream
- return "this" from writef and writefln to allow chaining (eg flush)
- fix TArrayStream read/write to check for "eof" (Derick Eddington)
- make SliceStream preserve the source buffer position if seekable
and pay attention to isOpen (Derick)
- implement available() for more stream types (Derick)
- copyFrom bug fixes and position preserving if seekable (Derick)
- move the initialization of the BOMs to the initializer instead of the
module constructor.
- make isopen protected (from private) so that subclasses can see it.
- more unittest (Derick and Ben)
- fix File.size() bug on Windows
- fix File.open() error message to say "Cannot open or create file"
Bugs Fixed
- Fixed crash with forward reference of local as mixin alias
parameter.
- Fixed bit array append.
- Fixed base class fwd ref bug introduced in 0.119.
- Fixed problems with throwing in a destructor.
- Fixed problem with misaligned arrays of structs.
- Fixed diagnosis of types based on deprecated symbols.
- Fixed bad code gen for PEXTRW instruction.
- Fixed compiler hang with template alias parameters.
- Fixed Internal error: ..\ztc\cg87.c 279
- Fixed Internal error: ..\ztc\cod1.c 1648
- Fixed Internal error: ..\ztc\cgobj.c 2139
- Fixed Internal error: ..\ztc\cgcs.c 353
- Fixed Assertion failure 622 glue.c
- Fixed compiler crash on circular typedef declarations.
- Fixed compiler crash on empty catch handlers.
- Fixed D.bugs/2606
- Fixed D.bugs/2618
- Fixed D.bugs/3234
- Fixed D.bugs/3369
Mar 18, 2005
New/Changed Features
- Clarified and revamped handling of 'finally' blocks.
- C-style casts are no longer deprecated, they are now illegal.
- Invalid UTF sequences in comments are now diagnosed as errors.
- Can no longer set predefined versions.
Bugs Fixed
- Fixed ‹ misspelled entity.
- Fixed parsing entities with digits.
- Class invariant calls no longer attached to private, protected,
or package member functions.
- Fixed D.bugs/32
- Fixed D.bugs/1148
- Fixed D.bugs/1815
- Fixed D.bugs/1865
- Fixed D.bugs/1953
- Fixed D.bugs/2042
- Fixed D.bugs/2140
- Fixed D.bugs/2240
- Fixed D.bugs/2262
- Fixed D.bugs/2429
- Fixed D.bugs/2546
- Fixed D.bugs/2934
- Changed documentation on struct/union grammar to allow
invariants, unit tests, and allocator/deallocators.
- The file names printed out by runtime assert failures now matches
what was set by any preceding #line LineNumber FileName.
- Fixed bug with aliases as struct members.
- Error now diagnosed when override is applied to non-
class member functions.
- Fixed colliding template struct initializer problem under Linux.
- Can now cat string literals to wchar[] or dchar[].
- Now correctly diagnoses as an error attempts to access
members of outer aggregate from within inner aggregate.
- Fixed Assertion failure: 'cd' on line 1275 in file 'expression.c'
- Now diagnoses error when catches are 'hidden' by previous
catch parameters.
- Added missing typeid's for void, void[] and bit[].
Mar 12, 2005
Bugs Fixed
- Fixed introduced name mangling bug.
- Fixed introduced bug with COMDAT records.
Mar 10, 2005
New/Changed Features
- Added pragma(lib, "library name");
- cent and ucent are now keywords, to ensure
they stay reserved.
- version=all cannot be explicitly set;
all is always on anyway.
Bugs Fixed
- Fixed spurious unreachable code warning.
- Now issues error for declaring non-virtual functions as abstract.
- Declaring an entire class as abstract now works.
- Added wprintf back to std.c.stdio.
- Instantiating deprecated classes now generates deprecation message.
- Fixed several cases where deprecated symbol uses were not flagged.
- Can now goto case into enclosing switch case.
- Fixed problem with goto into if(0) block.
- Incorporated Stewart Gordon's fix for std.file.copy().
- Fixed Assertion failure: '0' on line 720 in file 'statement.c'
- Fixed D.bugs/1795
- Fixed D.bugs/2737
- Fixed D.bugs/752
- Fixed D.bugs/1326
- Fixed D.bugs/2238
- Fixed D.bugs/2275
- Fixed D.bugs/2315
- Fixed D.bugs/2316
Mar 7, 2005
New/Changed Features
- Added named character entities
to escape sequences.
- Added much better named character entity
support to HTML preprocessing.
- Added __FILE__, __LINE__, __DATE__, __TIME__, __TIMESTAMP__.
- $ can now be used instead of length inside an array's
[]. It represents the length of the array. This is a trial feature,
if it works out then these will happen in sequential releases:
- length will become deprecated inside [].
- length will be removed as the implicitly declared length,
and it will be just another identifier.
- Added warnings on a trial basis.
- If a module statement name is used with a package prefix, as in:
module foo.bar;
then bar is not in scope, one must use foo.bar.
Bugs Fixed
- Fixed several errors in HTML preprocessing - entities,
line numbers, spaces, casing.
- Fixed mac line termination.
- Fixed D.gnu/983
- Fixed D.bugs/1849
- Added missing typeid's for arrays of floating point types.
- .sort property now works on arrays of bits and NaNs.
- Can now return an expression from a function returning void.
- Can have a main() as a nested function.
Feb 28, 2005
Bugs Fixed
- Fixed my bungled integration of std.socket.
Feb 27, 2005
New/Changed Features
- Renamed std.regexp.RegExp.search to
std.regexp.RegExp.find
to be analogous to names in
std.string. Old name remains as
a deprecated alias.
- Added functions split, find, rfind,
sub, search to
std.regexp.
- Added functions tr,
succ, squeeze, removechars, countchars,
inPattern, chop,
and chomp to std.string.
- Incorporated Christopher E. Miller's fixes to std.socket:
IPv6 not supported but the C interface for it should all be there.
Split up socket.d and put the C stuff in std.c modules.
std.c.linux.linux updated because most of the socket functions
are actually regular I/O functions. Added classes Protocol and Service.
Added Socket.accepting() to allow derived classes to be
accepted.
Documentation and samples updated.
Fixed major bug in the linux version.
- Improved error message for overloaded function mismatches.
- Added man pages to \dmd\man\man1 (thanks to Anders F Bjorklund)
Bugs Fixed
- Fixed std.format %A unittest failure under linux
- Fixed proxy static constructor ordering problem.
- Fixed bug where v.init would initialize v.
- Fixed .reverse bug of char[] and wchar[] with multibyte encodings.
- Fixed various problems with constant folding for const initializers.
- Fixed Internal error: ../ztc/cod4.c 352
- Fixed Assertion failure: 'ta' on line 1481 in file 'template.c'
- Fixed Assertion failure: 'f' on line 3005 in file 'expression.c'
- Fixed Assertion failure: 'ids->vthis' on line 394 in file 'inline.c'
- Fixed Assertion failure: '0' on line 909 in file 'func.c'
- Fixed Assertion failure: '!scopesym || !scopesym->isWithScopeSymbol()' on line 2637 in
file 'mtype.c'
- Fixed Assertion failure: 'se2->op == TOKstring' on line 1379 in file 'expression.c'
- Fixed Assertion failure: '!needThis()' on line 139 in file 'tocsym.c'
Feb 12, 2005
New/Changed Features
- internal/qsort2.d is now a freely redistributable version of
internal/qsort.d.
- Added std.file.copy
- Asserts enabled in release builds if -unittest is given.
Bugs Fixed
- Fixed cgcs 353 error
- Fixed dmd crash on class C{this(){super();}}
- Fixed dmd crash on cast(int)(.0>>0)
- Fixed dmd crash on enum e;
- Fixed dmd crash on 0==Exception;
- Fixed dmd crash on varargs in initializer
- Fixed dmd crash on labeled {} statements
- Fixed dmd crash on mishandled forward reference
- Fixed Internal error: e2ir.c 229
- Fixed Internal error: ..\ztc\cgcod.c 1640
- Fixed Internal error: e2ir.c 141
- Fixed Internal error: ../ztc/elfobj.c 1251
- Fixed Assertion failure: '!needThis()' on line 139 in file 'tocsym.c'
- Fixed Assertion failure: 'fdx->vresult' on line 1450 in file 'statement.c'
- Fixed Assertion failure: '!deferred.dim' on line 470 in file 'module.c'
- Fixed Assertion failure: 'sym->memtype' on line 3020 in file 'mtype.c'
- Fixed infamous std.string.toStringz() bug.
Jan 26, 2005
Note: This is a library only change, the dmd executables are still
at 0.111.
New/Changed Features
Jan 15, 2005
New/Changed Features
- Added std.date.toUTCString().
- \uFFFE and \uFFFF are now allowed as valid UCS characters,
since there are applications that use them.
- Added std.string.toString(long, uint) and toString(ulong, uint)
for radix conversions.
- Incorporated Phobos improvements provided by Ben Hinkle:
I've attached modified versions of std.stream and mmfile and the help
section for std.mmfile and std.stream.
The std.mmfile changes are:
- change module declaration to std.mmfile
- change class declaration to not be auto
- add mMode read-only property to get the file mode of type MmFile.Mode
The std.stream changes are:
- added Dave Fladebo's performance improvements for buffered readLine
- fixed a bug in read/write cfloat/cdouble/creal endian support
- uncommented MmFileStream and cleaned it up to use MmFile's mode property.
Bugs Fixed
- Fixed .length bug in std.string.sformat().
- Fixed rounding error in std.date for dates before 1970.
- Fixed bugs with function inlining and length property.
- Compensated for errors in linux's powl() function.
- Fixed rounding problem with convering doubles to ulongs.
- Extended range of std.date daylight savings time calculation
under linux.
Dec 30, 2004
New/Changed Features
- Structs can now be forward referenced.
- Structs can now be used as keys in associative arrays.
- Arrays of structs can now be sorted.
- Drastically speedup up compiler with projects that contain
complicated imports.
- Does a better job soldiering on after errors are diagnosed.
- .sizeof property can no longer be overridden.
Bugs Fixed
- Fixed regression on using super or this outside of a class.
- Fixed internal error cod1 2729.
- Object file now deleted if compilation errors occurred.
- Fixed some circumstances where properties were not recognized.
- Fixed potential hang in critical section release code.
- Fixed pointer value returned by 'in' expressions.
- Fixed codegen bug with some array initializations.
- Fixed access violation in std.uri.encodeComponent().
Dec 5, 2004
New/Changed Features
- super.id and this.id now work if id does not need a 'this'
pointer.
Bugs Fixed
- Fixed constant folding problem with complex numbers.
- Fixed class member initialize bug.
- Fixed compiler gpf on bit sizeof.
- Now correctly diagnoses some forward reference errors.
- Fixed error recovery on minusing template as a variable.
- Fixed internal error e2ir 1158
- Fixed Assertion failure: '0' on line 661 in file 'expression.c'
- Fixed synchronized property call omitting ().
Nov 30, 2004
Bugs Fixed
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
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
|