- sort
+ | .sort
| Sorts in place the order of the elements in the array.
Returns the array.
@@ -487,7 +495,7 @@
Setting Dynamic Array Length
- The .length property of a dynamic array can be set
+ The .length property of a dynamic array can be set
as the lvalue of an = operator:
array.length = 7;
diff -uNr dmd-0.106/dmd/html/d/changelog.html dmd-0.107/dmd/html/d/changelog.html
--- dmd-0.106/dmd/html/d/changelog.html 2004-11-09 00:33:06.000000000 +0100
+++ dmd-0.107/dmd/html/d/changelog.html 2004-11-29 18:02:36.000000000 +0100
@@ -24,6 +24,7 @@
+
+
+Nov 29, 2004
+
+New/Changed Features
+
+ - Improved speed of writef().
+
- Improved single thread performance of gc allocation
+ per davejf'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.
+
+
+
What's New for
D 0.106
diff -uNr dmd-0.106/dmd/html/d/class.html dmd-0.107/dmd/html/d/class.html
--- dmd-0.106/dmd/html/d/class.html 2004-09-01 10:09:52.000000000 +0200
+++ dmd-0.107/dmd/html/d/class.html 2004-11-27 00:14:38.000000000 +0100
@@ -18,7 +18,7 @@
[Search]
[D]
- Last update Aug 23, 2004
+ Last update Nov 27, 2004
Classes
@@ -120,16 +120,27 @@
operators as in C++.
- The D compiler is free to rearrange the order of fields in a class to optimally
- pack them in an implementation-defined manner. Hence, alignment statements,
- anonymous structs, and anonymous unions are not allowed in classes because they are
- data layout mechanisms. Consider the fields much like the local variables in a function -
- the compiler assigns some to registers and shuffles others around all to get the optimal
- stack frame layout. This frees the code designer to organize the fields in a manner that
- makes the code more readable rather than being forced to organize it according to
- machine optimization rules. Explicit control of field layout is provided by struct/union
+ The D compiler is free to rearrange the order of fields in a class to
+ optimally pack them in an implementation-defined manner.
+ Consider the fields much like the local
+ variables in a function -
+ the compiler assigns some to registers and shuffles others around all to
+ get the optimal
+ stack frame layout. This frees the code designer to organize the fields
+ in a manner that
+ makes the code more readable rather than being forced to organize it
+ according to
+ machine optimization rules. Explicit control of field layout is provided
+ by struct/union
types, not classes.
+ Field Properties
+
+
+ .offsetof Offset in bytes of field from beginning
+ of class
+
+
Super Class
All classes inherit from a super class. If one is not specified,
diff -uNr dmd-0.106/dmd/html/d/expression.html dmd-0.107/dmd/html/d/expression.html
--- dmd-0.106/dmd/html/d/expression.html 2004-09-01 17:05:18.000000000 +0200
+++ dmd-0.107/dmd/html/d/expression.html 2004-11-17 00:55:02.000000000 +0100
@@ -17,7 +17,7 @@
[Search]
[D]
- Last update Aug 7, 2004
+ Last update Nov 17, 2004
Expressions
@@ -83,6 +83,7 @@
RelExpression:
ShiftExpression
+ InExpression
RelExpression < ShiftExpression
RelExpression <= ShiftExpression
RelExpression > ShiftExpression
@@ -95,7 +96,9 @@
RelExpression !>= ShiftExpression
RelExpression !< ShiftExpression
RelExpression !<= ShiftExpression
- RelExpression in ShiftExpression
+
+ InExpression:
+ RelExpression in ShiftExpression
ShiftExpression:
AddExpression
@@ -442,7 +445,6 @@
RelExpression !>= ShiftExpression
RelExpression !< ShiftExpression
RelExpression !<= ShiftExpression
- RelExpression in ShiftExpression
First, the integral promotions are done on the operands.
@@ -573,7 +575,7 @@
of the operands is a NAN.
-In Expressions
+
RelExpression in ShiftExpression
@@ -591,6 +593,9 @@
The in expression has the same precedence as the
relational expressions <, <=,
etc.
+ The return value of the InExpression is null
+ if the element is not in the array;
+ if it is in the array it is a pointer to the element.
diff -uNr dmd-0.106/dmd/html/d/phobos.html dmd-0.107/dmd/html/d/phobos.html
--- dmd-0.106/dmd/html/d/phobos.html 2004-10-16 22:22:38.000000000 +0200
+++ dmd-0.107/dmd/html/d/phobos.html 2004-11-27 15:36:58.000000000 +0100
@@ -801,7 +801,7 @@
bt(array, 1) = -1
array = [0]:x2, [1]:x100
- ubyte bswap(uint x)
+ uint bswap(uint x)
Swaps bytes in a 4 byte uint end-to-end, i.e. byte 0 becomes
byte 3, byte 1 becomes byte 2, byte 2 becomes byte 1, byte 3
becomes byte 0.
@@ -2475,10 +2475,15 @@
void read(out float x)
void read(out double x)
void read(out real x)
+ void read(out ifloat x)
+ void read(out idouble x)
void read(out ireal x)
+ void read(out cfloat x)
+ void read(out cdouble x)
void read(out creal x)
void read(out char x)
void read(out wchar x)
+ void read(out dchar x)
void read(out char[] s)
void read(out wchar[] s)
Read a basic type or counted string, throwing a
@@ -2563,10 +2568,15 @@
void write(float x)
void write(double x)
void write(real x)
+ void write(ifloat x)
+ void write(idouble x)
void write(ireal x)
+ void write(cfloat x)
+ void write(cdouble x)
void write(creal x)
void write(char x)
void write(wchar x)
+ void write(dchar x)
void write(char[] s)
void write(wchar[] s)
Write a basic type or counted string. Outside of byte, ubyte,
@@ -2801,6 +2811,49 @@
+ enum BOM
+ UTF byte-order-mark signatures
+
+ - UTF8
+
- UTF-8
+
- UTF16LE
+
- UTF-16 Little Endian
+
- UTF16BE
+
- UTF-16 Big Endian
+
- UTF32LE
+
- UTF-32 Little Endian
+
- UTF32BE
+
- UTF-32 Big Endian
+
+
+
+ class EndianStream : Stream
+ This subclass wraps a stream with big-endian or
+ little-endian byte order swapping. UTF Byte-Order-Mark (BOM)
+ signatures can be read and deduced or written.
+
+
+ - this(Stream source, Endian end = std.system.endian)
+
- Create the endian stream for the source stream
+ source with endianness end. The default
+ endianness is the native byte order. The Endian type is
+ defined in the std.system module.
+
- Endian endian
+
- property for endianness of the source stream
+
- int readBOM(int ungetCharSize = 1)
+
- Return -1 if no BOM and otherwise read the BOM and return it.
+ If there is no BOM or if bytes beyond the BOM are read
+ then the bytes read are pushed back onto the ungetc buffer or
+ ungetcw buffer. Pass ungetCharSize == 2 to use ungetcw instead
+ of ungetc when no BOM is present.
+
- void writeBOM(BOM b)
+
- Write the BOM b to the source stream
+
- final void fixBO(void* buffer, uint size)
+
- fix the byte order of the given buffer to match the native order
+
+
+
+
class TArrayStream(Buffer) : Stream
This subclass wraps an array-like buffer with a stream
interface. The type Buffer must support the length
@@ -3077,6 +3130,19 @@
std.system
+
+- enum Endian
+
- Byte order endianness
+
+ - BigEndian
+
- big endian byte order
+
- LittleEndian
+
- little endian byte order
+
+
+ - Endian endian
+
- Native system endianness
+
diff -uNr dmd-0.106/dmd/html/d/struct.html dmd-0.107/dmd/html/d/struct.html
--- dmd-0.106/dmd/html/d/struct.html 2004-09-01 10:09:20.000000000 +0200
+++ dmd-0.107/dmd/html/d/struct.html 2004-11-23 15:12:10.000000000 +0100
@@ -16,7 +16,7 @@
[Home]
[Search]
[D]
- Last modified Apr 17, 2004.
+ Last update Nov 23, 2004
Structs & Unions
@@ -98,10 +98,16 @@
.sizeof Size in bytes of struct
- .size Same as .sizeof
.alignof Size boundary struct needs to be aligned on
+Struct Field Properties
+
+
+ .offsetof Offset in bytes of field from beginning
+ of struct
+
+
Feedback and Comments
Add Search]
[D]
- Last update Jun 8, 2004
+ Last update Nov 29, 2004
Types
@@ -124,21 +124,43 @@
Integer Promotions
- The following types are implicitly converted to int:
+ Integer Promotions are conversions of the following types:
+
-
- bit
- byte
- ubyte
- short
- ushort
- enum
- char
- wchar
- dchar
-
+
+
+ from
+ | to
+ |
+ bit
+ | int
+ |
+ byte
+ | int
+ |
+ ubyte
+ | int
+ |
+ short
+ | int
+ |
+ ushort
+ | int
+ |
+ char
+ | int
+ |
+ wchar
+ | int
+ |
+ dchar
+ | uint
+ |
+
- Typedefs are converted to their underlying type.
+ If a typedef or enum has as a base type one of the types
+ in the left column, it is converted to the type in the right
+ column.
Usual Arithmetic Conversions
|