diff -uNr dmd-0.106/dmd/html/d/arrays.html dmd-0.107/dmd/html/d/arrays.html --- dmd-0.106/dmd/html/d/arrays.html 2004-08-18 16:55:00.000000000 +0200 +++ dmd-0.107/dmd/html/d/arrays.html 2004-11-23 15:12:02.000000000 +0100 @@ -16,7 +16,7 @@ [Home] [Search] [D] -
Last update Aug 18, 2004 +
Last update Nov 23, 2004

Arrays

@@ -415,27 +415,31 @@ Static array properties are: - - - + - -
size + .sizeof Returns the array length multiplied by the number of bytes per array element.
length + .length Returns the number of elements in the array. This is a fixed quantity for static arrays.
dup + .ptr + Returns a pointer to the first element of the array. + +
.dup Create a dynamic array of the same size and copy the contents of the array into it.
reverse + .reverse Reverses in place the order of the elements in the array. Returns the array.
sort + .sort Sorts in place the order of the elements in the array. Returns the array. @@ -446,26 +450,30 @@ - - - + - -
size + .sizeof Returns the size of the dynamic array reference, which is 8 on 32 bit machines.
length + .length Get/set number of elements in the array.
dup + .ptr + Returns a pointer to the first element of the array. + +
.dup Create a dynamic array of the same size and copy the contents of the array into it.
reverse + .reverse Reverses in place the order of the elements in the array. Returns the array.
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 @@
 
 
 
 
 
+

+ What's New for + D 0.107 +

+ +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: +
      +
    1. adds EndianStream for BOM and endian support. +
    2. removes the two public imports std.string and std.file from end of + file +
    3. 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

+

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.
 
 

Shift Expressions

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