Associative arrays |
Yes |
diff -uNr dmd-0.167/dmd/html/d/expression.html dmd-0.168/dmd/html/d/expression.html
--- dmd-0.167/dmd/html/d/expression.html 2006-09-14 00:36:38.000000000 +0200
+++ dmd-0.168/dmd/html/d/expression.html 2006-10-02 02:07:38.000000000 +0200
@@ -32,7 +32,7 @@
- Last update Thu Sep 14 00:36:36 2006
+
Last update Mon Oct 2 02:07:36 2006
@@ -980,24 +980,34 @@
-PostfixExpression [ AssignExpression .. AssignExpression ]
+PostfixExpression [ ]
+PostfixExpression [ AssignExpression .. AssignExpression ]
- PostfixExpression is evaluated.
+ PostfixExpression is evaluated.
if PostfixExpression is an expression of type
static array or dynamic array, the variable length
is declared and set to be the length of the array.
A new declaration scope is created for the evaluation of the
AssignExpression..AssignExpression
and length appears in that scope only.
-
+
- The first AssignExpression is taken to be the inclusive
+ The first AssignExpression is taken to be the inclusive
lower bound
of the slice, and the second AssignExpression is the
exclusive upper bound.
The result of the expression is a slice of the PostfixExpression
array.
+
+
+ If the [ ] form is used, the slice is of the entire
+ array.
+
+
+ The type of the slice is a dynamic array of the element
+ type of the PostfixExpression.
+
diff -uNr dmd-0.167/dmd/html/d/float.html dmd-0.168/dmd/html/d/float.html
--- dmd-0.167/dmd/html/d/float.html 2006-08-20 17:04:34.000000000 +0200
+++ dmd-0.168/dmd/html/d/float.html 2006-09-24 14:01:48.000000000 +0200
@@ -32,7 +32,7 @@
- Last update Sun Aug 20 17:04:33 2006
+
Last update Sun Sep 24 14:01:46 2006
@@ -161,11 +161,58 @@
precision of the calculation. They should not degrade or
fail if the actual precision is greater. Float or double types,
as opposed to the extended type, should only be used for:
-
- - reducing memory consumption for large arrays
-
- data and function argument compatibility with C
+
+
- reducing memory consumption for large arrays
+ - when speed is more important than accuracy
+ - data and function argument compatibility with C
+Floating Point Constant Folding
+
+ Regardless of the type of the operands, floating point
+ constant folding is done in real or greater precision.
+ It is always done following IEEE 754 rules and round-to-nearest
+ is used.
+
+ Floating point constants are internally represented in
+ the implementation in at least real precision, regardless
+ of the constant's type. The extra precision is available for
+ constant folding. Committing to the precision of the result is
+ done as late as possible in the compilation process. For example:
+
+const float f = 0.2f;
+writefln(f - 0.2);
+
+ will print 0. A non-const static variable's value cannot be
+ propagated at compile time, so:
+
+static float f = 0.2f;
+writefln(f - 0.2);
+
+ will print 2.98023e-09. Hex floating point constants can also
+ be used when specific floating point bit patterns are needed that
+ are unaffected by rounding. To find the hex value of 0.2f:
+
+import std.stdio;
+
+void main()
+{
+ writefln("%a", 0.2f);
+}
+
+ which is 0x1.99999ap-3. Using the hex constant:
+
+const float f = 0x1.99999ap-3f;
+writefln(f - 0.2);
+
+
+ prints 2.98023e-09.
+
+ Different compiler settings, optimization settings,
+ and inlining settings can affect opportunities for constant
+ folding, therefore the results of floating point calculations may differ
+ depending on those settings.
+
Complex and Imaginary types
In existing languages, there is an astonishing amount of effort expended in trying to jam a
diff -uNr dmd-0.167/dmd/html/d/function.html dmd-0.168/dmd/html/d/function.html
--- dmd-0.167/dmd/html/d/function.html 2006-08-30 22:18:34.000000000 +0200
+++ dmd-0.168/dmd/html/d/function.html 2006-10-02 02:10:42.000000000 +0200
@@ -32,7 +32,7 @@
- Last update Wed Aug 30 22:18:32 2006
+
Last update Mon Oct 2 02:10:40 2006
@@ -1053,12 +1053,17 @@
}
- This combining of the environment and the function is called
+ This combining of the environment and the function is called
a dynamic closure.
-
+
- Future directions: Function pointers and delegates may merge
+ The .ptr property of a delegate will return the
+ frame pointer value as a void*.
+
+
+ Future directions: Function pointers and delegates may merge
into a common syntax and be interchangeable with each other.
+
Anonymous Functions and Anonymous Delegates
diff -uNr dmd-0.167/dmd/html/d/phobos/object.html dmd-0.168/dmd/html/d/phobos/object.html
--- dmd-0.167/dmd/html/d/phobos/object.html 2006-09-18 12:03:52.000000000 +0200
+++ dmd-0.168/dmd/html/d/phobos/object.html 2006-10-02 16:06:16.000000000 +0200
@@ -28,7 +28,7 @@
- Last update Mon Sep 18 12:03:50 2006
+
Last update Mon Oct 2 16:06:15 2006
diff -uNr dmd-0.167/dmd/html/d/phobos/std_date.html dmd-0.168/dmd/html/d/phobos/std_date.html
--- dmd-0.167/dmd/html/d/phobos/std_date.html 2006-09-18 12:03:52.000000000 +0200
+++ dmd-0.168/dmd/html/d/phobos/std_date.html 2006-10-02 16:06:16.000000000 +0200
@@ -28,7 +28,7 @@
- Last update Mon Sep 18 12:03:50 2006
+
Last update Mon Oct 2 16:06:15 2006
diff -uNr dmd-0.167/dmd/html/d/phobos/std_math.html dmd-0.168/dmd/html/d/phobos/std_math.html
--- dmd-0.167/dmd/html/d/phobos/std_math.html 2006-09-18 12:03:50.000000000 +0200
+++ dmd-0.168/dmd/html/d/phobos/std_math.html 2006-10-02 16:06:16.000000000 +0200
@@ -28,7 +28,7 @@
- Last update Mon Sep 18 12:03:49 2006
+
Last update Mon Oct 2 16:06:14 2006
diff -uNr dmd-0.167/dmd/html/d/phobos/std_socket.html dmd-0.168/dmd/html/d/phobos/std_socket.html
--- dmd-0.167/dmd/html/d/phobos/std_socket.html 2006-09-18 12:03:52.000000000 +0200
+++ dmd-0.168/dmd/html/d/phobos/std_socket.html 2006-10-02 16:06:16.000000000 +0200
@@ -28,7 +28,7 @@
- Last update Mon Sep 18 12:03:51 2006
+
Last update Mon Oct 2 16:06:15 2006
@@ -918,7 +918,13 @@
int receiveFrom(void[] buf, SocketFlags flags);
int receiveFrom(void[] buf);
-Receive data and get the remote endpoint Address. Returns the number of bytes actually received, 0 if the remote side has closed the connection, or ERROR on failure. If the socket is blocking, receiveFrom waits until there is data to be received.
+Receive data and get the remote endpoint Address.
+ If the socket is blocking, receiveFrom waits until there is data to
+ be received.
+
+Returns:
+the number of bytes actually received,
+ 0 if the remote side has closed the connection, or ERROR on failure.
diff -uNr dmd-0.167/dmd/html/d/phobos/std_socketstream.html dmd-0.168/dmd/html/d/phobos/std_socketstream.html
--- dmd-0.167/dmd/html/d/phobos/std_socketstream.html 2006-09-18 12:03:52.000000000 +0200
+++ dmd-0.168/dmd/html/d/phobos/std_socketstream.html 2006-10-02 16:06:16.000000000 +0200
@@ -28,7 +28,7 @@
- Last update Mon Sep 18 12:03:51 2006
+
Last update Mon Oct 2 16:06:15 2006
diff -uNr dmd-0.167/dmd/html/d/phobos/std_stream.html dmd-0.168/dmd/html/d/phobos/std_stream.html
--- dmd-0.167/dmd/html/d/phobos/std_stream.html 2006-09-18 12:03:50.000000000 +0200
+++ dmd-0.168/dmd/html/d/phobos/std_stream.html 2006-10-02 16:06:16.000000000 +0200
@@ -28,7 +28,7 @@
- Last update Mon Sep 18 12:03:49 2006
+
Last update Mon Oct 2 16:06:15 2006
@@ -562,25 +562,17 @@
protected bool readEOF;
Indicates whether this stream is at eof
+ after the last read attempt.
+
protected bool prevCr;
For a non-seekable stream indicates that
-
-after the last read attempt.
-
-
- For a non-seekable stream indicates that
-
-
-
-this();
-
-the last readLine or readLineW ended on a
-
-'\r' character.
+ the last readLine or readLineW ended on a
+ '\r' character.
+
diff -uNr dmd-0.167/dmd/html/d/phobos/std_uni.html dmd-0.168/dmd/html/d/phobos/std_uni.html
--- dmd-0.167/dmd/html/d/phobos/std_uni.html 2006-09-18 12:03:54.000000000 +0200
+++ dmd-0.168/dmd/html/d/phobos/std_uni.html 2006-10-02 16:06:16.000000000 +0200
@@ -28,7 +28,7 @@
- Last update Mon Sep 18 12:03:52 2006
+
Last update Mon Oct 2 16:06:15 2006
diff -uNr dmd-0.167/dmd/html/d/regular-expression.html dmd-0.168/dmd/html/d/regular-expression.html
--- dmd-0.167/dmd/html/d/regular-expression.html 2006-08-20 17:04:36.000000000 +0200
+++ dmd-0.168/dmd/html/d/regular-expression.html 2006-09-24 14:01:48.000000000 +0200
@@ -31,7 +31,7 @@
- Last update Sun Aug 20 17:04:34 2006
+
Last update Sun Sep 24 14:01:47 2006
@@ -270,7 +270,7 @@
Or even more concisely as:
-if (m; std.regexp.search("abcdef", "c"))
+if (auto m = std.regexp.search("abcdef", "c"))
writefln("%s[%s]%s", m.pre, m.match(0), m.post);